<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>94241</bug_id>
          
          <creation_ts>2012-08-16 12:56:10 -0700</creation_ts>
          <short_desc>Frame bytes should be determined by platform image decoder</short_desc>
          <delta_ts>2012-08-28 10:48:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Images</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>94240</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hin-Chung Lam">hclam</reporter>
          <assigned_to name="Hin-Chung Lam">hclam</assigned_to>
          <cc>dongseong.hwang</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>nick</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>skyul</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>697392</commentid>
    <comment_count>0</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-08-16 12:56:10 -0700</bug_when>
    <thetext>BitmapImage assumes the cached size is always width * height * 4. For platforms that implement deferred image decoding or have platform image backed by a texture would use no system memory. For these cases it is best to query the platform image decoder to determine the frame size such that these frames are not managed by WebKit&apos;s memory cached.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697557</commentid>
    <comment_count>1</comment_count>
      <attachid>158914</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-08-16 15:04:22 -0700</bug_when>
    <thetext>Created attachment 158914
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697562</commentid>
    <comment_count>2</comment_count>
      <attachid>158917</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-08-16 15:07:59 -0700</bug_when>
    <thetext>Created attachment 158917
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697650</commentid>
    <comment_count>3</comment_count>
      <attachid>158917</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-16 16:26:02 -0700</bug_when>
    <thetext>Comment on attachment 158917
Patch

Attachment 158917 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13514553</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697776</commentid>
    <comment_count>4</comment_count>
      <attachid>158966</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-08-16 18:26:11 -0700</bug_when>
    <thetext>Created attachment 158966
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697951</commentid>
    <comment_count>5</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-17 00:04:36 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=158966) [details]
&gt; Patch

&gt; Source/WebCore/platform/image-decoders/ImageDecoder.cpp
&gt; 294    return m_size.width() * m_size.height() * 4;

You can use IntSize::area(). How about m_size.area() * sizeof(PixelData)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699826</commentid>
    <comment_count>6</comment_count>
      <attachid>159497</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-08-20 13:00:25 -0700</bug_when>
    <thetext>Created attachment 159497
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706504</commentid>
    <comment_count>7</comment_count>
      <attachid>159497</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-28 10:48:17 -0700</bug_when>
    <thetext>Comment on attachment 159497
Patch

Clearing flags on attachment: 159497

Committed r126892: &lt;http://trac.webkit.org/changeset/126892&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706505</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-28 10:48:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158914</attachid>
            <date>2012-08-16 15:04:22 -0700</date>
            <delta_ts>2012-08-16 15:07:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94241-20120816150347.patch</filename>
            <type>text/plain</type>
            <size>11570</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkyOTMwMzkwNjQ4NDc3
OTU4ZGVkMmI0ZmY5NzFmMWJkZGRlYzdkNC4uOWEzOWU3MzljNDVmNWE4MDAyMTFmY2FmY2I1NGM4
YTZiNTkyZGFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTA4LTE2ICBBbHBo
YSBMYW0gIDxoY2xhbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVwb3J0IGZyYW1lIGJ5dGVz
IGJ5IHBsYXRmb3JtIEltYWdlRGVjb2RlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTQyNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBEZWNvZGVkIGZyYW1lIGJ5dGVzIHNob3VsZCBiZSByZXBvcnRlZCBi
eSB0aGUgcGxhdGZvcm0gSW1hZ2VTb3VyY2UgYW5kCisgICAgICAgIEltYWdlRGVjb2Rlci4gQml0
bWFwSW1hZ2UgdXNlZCB0byBndWVzcyBzeXN0ZW0gbWVtb3J5IHVzZWQgYnkgYSBmcmFtZQorICAg
ICAgICBidXQgdGhpcyBpcyBubyBsb25nZXIgdHJ1ZSBpZiBhIGZyYW1lIGlzIGJhY2tlZCBieSBh
biBhY2NlbGVyYXRlZAorICAgICAgICBzdXJmYWNlIG9yIGRlZmVyLWRlY29kZWQuCisKKyAgICAg
ICAgQWRkcyBJbWFnZVNvdXJjZTo6ZnJhbWVCeXRlc0F0SW5kZXggYW5kIEltYWdlRGVjb2Rlcjo6
ZnJhbWVCeXRlc0F0SW5kZXgKKyAgICAgICAgc3VjaCB0aGF0IHBsYXRmb3JtIGNhbiByZXBvcnQg
bWVtb3J5IHVzYWdlIGNvcnJlY3RseS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFJlZmFjdG9y
aW5nIHdpdGhvdXQgY2hhbmdlIG9mIGJlaGF2aW9yLgorICAgICAgICBUZXN0ZWQgb24gQ2hyb21p
dW0gcG9ydCB3aXRoIHBpeGVsIHRlc3RzIHdpdGhvdXQgYW55IGNyYXNoIG9yIGZhaWx1cmUuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZGVzdHJveURlY29kZWREYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OkJpdG1hcEltYWdlOjpkZXN0cm95RGVjb2RlZERhdGFJZk5lY2Vzc2FyeSk6CisgICAgICAg
IChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZGVzdHJveU1ldGFkYXRhQW5kTm90aWZ5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpjYWNoZUZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OkJpdG1hcEltYWdlOjpkYXRhQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRGF0YTo6RnJhbWVEYXRhKToK
KyAgICAgICAgKEZyYW1lRGF0YSk6CisgICAgICAgIChCaXRtYXBJbWFnZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1h
Z2VTb3VyY2U6OmZyYW1lQnl0ZXNBdEluZGV4KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNv
dXJjZTo6ZnJhbWVCeXRlc0F0SW5kZXgpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
cGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlRGVjb2Rlcjo6ZnJhbWVCeXRlc0F0SW5kZXgpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmg6CisgICAg
ICAgIChJbWFnZURlY29kZXIpOgorCiAyMDEyLTA4LTExICBCZW5qYW1pbiBQb3VsYWluICA8YnBv
dWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIERvIHRoZSBEZWNpbWFsTnVtYmVyIHRvIFN0cmlu
ZyBjb252ZXJzaW9uIG9uIDggYml0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuY3BwCmluZGV4IGUyODZhN2M4YmY4NjE0M2JkN2VjNjQxYmEwODVl
MTdlYzBkNjZiOTYuLjk4ZjRlNGI0MmY0MWI3MDQxZTM1ZWYzZjU5N2Y1ZmE3MmUzM2FjYzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAK
QEAgLTM4LDExICszOCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGludCBm
cmFtZUJ5dGVzKGNvbnN0IEludFNpemUmIGZyYW1lU2l6ZSkKLXsKLSAgICByZXR1cm4gZnJhbWVT
aXplLndpZHRoKCkgKiBmcmFtZVNpemUuaGVpZ2h0KCkgKiA0OwotfQotCiBCaXRtYXBJbWFnZTo6
Qml0bWFwSW1hZ2UoSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgOiBJbWFnZShvYnNlcnZl
cikKICAgICAsIG1fY3VycmVudEZyYW1lKDApCkBAIC04NSwxNyArODAsMTggQEAgYm9vbCBCaXRt
YXBJbWFnZTo6aGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdAogCiB2b2lkIEJpdG1hcElt
YWdlOjpkZXN0cm95RGVjb2RlZERhdGEoYm9vbCBkZXN0cm95QWxsKQogewotICAgIGludCBmcmFt
ZXNDbGVhcmVkID0gMDsKLSAgICBjb25zdCBzaXplX3QgY2xlYXJCZWZvcmVGcmFtZSA9IGRlc3Ry
b3lBbGwgPyBtX2ZyYW1lcy5zaXplKCkgOiBtX2N1cnJlbnRGcmFtZTsKKyAgICB1bnNpZ25lZCBm
cmFtZUJ5dGVzQ2xlYXJlZCA9IDA7CisgICAgY29uc3QgdW5zaWduZWQgY2xlYXJCZWZvcmVGcmFt
ZSA9IGRlc3Ryb3lBbGwgPyBtX2ZyYW1lcy5zaXplKCkgOiBtX2N1cnJlbnRGcmFtZTsKICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGNsZWFyQmVmb3JlRnJhbWU7ICsraSkgewogICAgICAgICAv
LyBUaGUgdW5kZXJseWluZyBmcmFtZSBpc24ndCBhY3R1YWxseSBjaGFuZ2luZyAod2UncmUganVz
dCB0cnlpbmcgdG8KICAgICAgICAgLy8gc2F2ZSB0aGUgbWVtb3J5IGZvciB0aGUgZnJhbWVidWZm
ZXIgZGF0YSksIHNvIHdlIGRvbid0IG5lZWQgdG8gY2xlYXIKICAgICAgICAgLy8gdGhlIG1ldGFk
YXRhLgorICAgICAgICB1bnNpZ25lZCBmcmFtZUJ5dGVzID0gbV9mcmFtZXNbaV0ubV9mcmFtZUJ5
dGVzOwogICAgICAgICBpZiAobV9mcmFtZXNbaV0uY2xlYXIoZmFsc2UpKQotICAgICAgICAgICsr
ZnJhbWVzQ2xlYXJlZDsKKyAgICAgICAgICAgIGZyYW1lQnl0ZXNDbGVhcmVkICs9IGZyYW1lQnl0
ZXM7CiAgICAgfQogCi0gICAgZGVzdHJveU1ldGFkYXRhQW5kTm90aWZ5KGZyYW1lc0NsZWFyZWQp
OworICAgIGRlc3Ryb3lNZXRhZGF0YUFuZE5vdGlmeShmcmFtZUJ5dGVzQ2xlYXJlZCk7CiAKICAg
ICBtX3NvdXJjZS5jbGVhcihkZXN0cm95QWxsLCBjbGVhckJlZm9yZUZyYW1lLCBkYXRhKCksIG1f
YWxsRGF0YVJlY2VpdmVkKTsKICAgICByZXR1cm47CkBAIC0xMDYsMTkgKzEwMiwyMyBAQCB2b2lk
IEJpdG1hcEltYWdlOjpkZXN0cm95RGVjb2RlZERhdGFJZk5lY2Vzc2FyeShib29sIGRlc3Ryb3lB
bGwpCiAgICAgLy8gQW5pbWF0ZWQgaW1hZ2VzID41TUIgYXJlIGNvbnNpZGVyZWQgbGFyZ2UgZW5v
dWdoIHRoYXQgd2UnbGwgb25seSBoYW5nIG9uCiAgICAgLy8gdG8gb25lIGZyYW1lIGF0IGEgdGlt
ZS4KICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgY0xhcmdlQW5pbWF0aW9uQ3V0b2ZmID0gNTI0
Mjg4MDsKLSAgICBpZiAobV9mcmFtZXMuc2l6ZSgpICogZnJhbWVCeXRlcyhtX3NpemUpID4gY0xh
cmdlQW5pbWF0aW9uQ3V0b2ZmKQorICAgIHVuc2lnbmVkIGFsbEZyYW1lQnl0ZXMgPSAwOworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9mcmFtZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIGFs
bEZyYW1lQnl0ZXMgKz0gbV9mcmFtZXNbaV0ubV9mcmFtZUJ5dGVzOworCisgICAgaWYgKGFsbEZy
YW1lQnl0ZXMgPiBjTGFyZ2VBbmltYXRpb25DdXRvZmYpCiAgICAgICAgIGRlc3Ryb3lEZWNvZGVk
RGF0YShkZXN0cm95QWxsKTsKIH0KIAotdm9pZCBCaXRtYXBJbWFnZTo6ZGVzdHJveU1ldGFkYXRh
QW5kTm90aWZ5KGludCBmcmFtZXNDbGVhcmVkKQordm9pZCBCaXRtYXBJbWFnZTo6ZGVzdHJveU1l
dGFkYXRhQW5kTm90aWZ5KHVuc2lnbmVkIGZyYW1lQnl0ZXNDbGVhcmVkKQogewogICAgIG1faXNT
b2xpZENvbG9yID0gZmFsc2U7CiAgICAgbV9jaGVja2VkRm9yU29saWRDb2xvciA9IGZhbHNlOwog
ICAgIGludmFsaWRhdGVQbGF0Zm9ybURhdGEoKTsKIAotICAgIGludCBkZWx0YUJ5dGVzID0gZnJh
bWVzQ2xlYXJlZCAqIC1mcmFtZUJ5dGVzKG1fc2l6ZSk7CisgICAgaW50IGRlbHRhQnl0ZXMgPSAt
ZnJhbWVCeXRlc0NsZWFyZWQ7CiAgICAgbV9kZWNvZGVkU2l6ZSArPSBkZWx0YUJ5dGVzOwotICAg
IGlmIChmcmFtZXNDbGVhcmVkID4gMCkgeworICAgIGlmIChmcmFtZUJ5dGVzQ2xlYXJlZCA+IDAp
IHsKICAgICAgICAgZGVsdGFCeXRlcyAtPSBtX2RlY29kZWRQcm9wZXJ0aWVzU2l6ZTsKICAgICAg
ICAgbV9kZWNvZGVkUHJvcGVydGllc1NpemUgPSAwOwogICAgIH0KQEAgLTE0NCwxMiArMTQ0LDEz
IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmNhY2hlRnJhbWUoc2l6ZV90IGluZGV4KQogICAgIGlmIChy
ZXBldGl0aW9uQ291bnQoZmFsc2UpICE9IGNBbmltYXRpb25Ob25lKQogICAgICAgICBtX2ZyYW1l
c1tpbmRleF0ubV9kdXJhdGlvbiA9IG1fc291cmNlLmZyYW1lRHVyYXRpb25BdEluZGV4KGluZGV4
KTsKICAgICBtX2ZyYW1lc1tpbmRleF0ubV9oYXNBbHBoYSA9IG1fc291cmNlLmZyYW1lSGFzQWxw
aGFBdEluZGV4KGluZGV4KTsKKyAgICBtX2ZyYW1lc1tpbmRleF0ubV9mcmFtZUJ5dGVzID0gbV9z
b3VyY2UuZnJhbWVCeXRlc0F0SW5kZXgoaW5kZXgpOwogCiAgICAgY29uc3QgSW50U2l6ZSBmcmFt
ZVNpemUoaW5kZXggPyBtX3NvdXJjZS5mcmFtZVNpemVBdEluZGV4KGluZGV4KSA6IG1fc2l6ZSk7
CiAgICAgaWYgKGZyYW1lU2l6ZSAhPSBtX3NpemUpCiAgICAgICAgIG1faGFzVW5pZm9ybUZyYW1l
U2l6ZSA9IGZhbHNlOwogICAgIGlmIChtX2ZyYW1lc1tpbmRleF0ubV9mcmFtZSkgewotICAgICAg
ICBpbnQgZGVsdGFCeXRlcyA9IGZyYW1lQnl0ZXMoZnJhbWVTaXplKTsKKyAgICAgICAgaW50IGRl
bHRhQnl0ZXMgPSBtX2ZyYW1lc1tpbmRleF0ubV9mcmFtZUJ5dGVzOwogICAgICAgICBtX2RlY29k
ZWRTaXplICs9IGRlbHRhQnl0ZXM7CiAgICAgICAgIC8vIFRoZSBmdWxseS1kZWNvZGVkIGZyYW1l
IHdpbGwgc3Vic3VtZSB0aGUgcGFydGlhbGx5IGRlY29kZWQgZGF0YSB1c2VkCiAgICAgICAgIC8v
IHRvIGRldGVybWluZSBpbWFnZSBwcm9wZXJ0aWVzLgpAQCAtMjM2LDE1ICsyMzcsMTYgQEAgYm9v
bCBCaXRtYXBJbWFnZTo6ZGF0YUNoYW5nZWQoYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCiAgICAgLy8g
c3RhcnQgb2YgdGhlIGZyYW1lIGRhdGEpLCBhbmQgYW55IG9yIG5vbmUgb2YgdGhlbSBtaWdodCBi
ZSB0aGUgcGFydGljdWxhcgogICAgIC8vIGZyYW1lIGFmZmVjdGVkIGJ5IGFwcGVuZGluZyBuZXcg
ZGF0YSBoZXJlLiBUaHVzIHdlIGhhdmUgdG8gY2xlYXIgYWxsIHRoZQogICAgIC8vIGluY29tcGxl
dGUgZnJhbWVzIHRvIGJlIHNhZmUuCi0gICAgaW50IGZyYW1lc0NsZWFyZWQgPSAwOworICAgIHVu
c2lnbmVkIGZyYW1lQnl0ZXNDbGVhcmVkID0gMDsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IG1fZnJhbWVzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIC8vIE5PVEU6IERvbid0IGNhbGwgZnJh
bWVJc0NvbXBsZXRlQXRJbmRleCgpIGhlcmUsIHRoYXQgd2lsbCB0cnkgdG8KICAgICAgICAgLy8g
ZGVjb2RlIGFueSB1bmNhY2hlZCAoaS5lLiBuZXZlci1kZWNvZGVkIG9yCiAgICAgICAgIC8vIGNs
ZWFyZWQtb24tYS1wcmV2aW91cy1wYXNzKSBmcmFtZXMhCisgICAgICAgIHVuc2lnbmVkIGZyYW1l
Qnl0ZXMgPSBtX2ZyYW1lc1tpXS5tX2ZyYW1lQnl0ZXM7CiAgICAgICAgIGlmIChtX2ZyYW1lc1tp
XS5tX2hhdmVNZXRhZGF0YSAmJiAhbV9mcmFtZXNbaV0ubV9pc0NvbXBsZXRlKQotICAgICAgICAg
ICAgZnJhbWVzQ2xlYXJlZCArPSAobV9mcmFtZXNbaV0uY2xlYXIodHJ1ZSkgPyAxIDogMCk7Cisg
ICAgICAgICAgICBmcmFtZUJ5dGVzQ2xlYXJlZCArPSAobV9mcmFtZXNbaV0uY2xlYXIodHJ1ZSkg
PyBmcmFtZUJ5dGVzIDogMCk7CiAgICAgfQotICAgIGRlc3Ryb3lNZXRhZGF0YUFuZE5vdGlmeShm
cmFtZXNDbGVhcmVkKTsKKyAgICBkZXN0cm95TWV0YWRhdGFBbmROb3RpZnkoZnJhbWVCeXRlc0Ns
ZWFyZWQpOwogICAgIAogICAgIC8vIEZlZWQgYWxsIHRoZSBkYXRhIHdlJ3ZlIHNlZW4gc28gZmFy
IHRvIHRoZSBpbWFnZSBkZWNvZGVyLgogICAgIG1fYWxsRGF0YVJlY2VpdmVkID0gYWxsRGF0YVJl
Y2VpdmVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0
bWFwSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdl
LmgKaW5kZXggMDUyMTI4MDRlMmU5YWFhZWExNjk2Y2IyYTM4ODdjOGEyYmRhYmQzMy4uNjEzMmMz
Yjg3ZjYwOGUwY2M5Nzg4NDdlMzVlZmU5NWI5MzU1NDRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCkBAIC03NSw2ICs3NSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgLCBtX2hhdmVNZXRhZGF0YShmYWxzZSkKICAgICAgICAgLCBtX2lzQ29tcGxl
dGUoZmFsc2UpCiAgICAgICAgICwgbV9oYXNBbHBoYSh0cnVlKSAKKyAgICAgICAgLCBtX2ZyYW1l
Qnl0ZXMoMCkKICAgICB7CiAgICAgfQogCkBAIC05Myw2ICs5NCw3IEBAIHB1YmxpYzoKICAgICBi
b29sIG1faGF2ZU1ldGFkYXRhIDogMTsKICAgICBib29sIG1faXNDb21wbGV0ZSA6IDE7CiAgICAg
Ym9vbCBtX2hhc0FscGhhIDogMTsKKyAgICB1bnNpZ25lZCBtX2ZyYW1lQnl0ZXM7CiB9OwogCiAv
LyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0y
MzQsOCArMjM2LDggQEAgcHJvdGVjdGVkOgogCiAgICAgLy8gR2VuZXJhbGx5IGNhbGxlZCBieSBk
ZXN0cm95RGVjb2RlZERhdGEoKSwgZGVzdHJveXMgd2hvbGUtaW1hZ2UgbWV0YWRhdGEKICAgICAv
LyBhbmQgbm90aWZpZXMgb2JzZXJ2ZXJzIHRoYXQgdGhlIG1lbW9yeSBmb290cHJpbnQgaGFzICho
b3BlZnVsbHkpCi0gICAgLy8gZGVjcmVhc2VkIGJ5IHxmcmFtZXNDbGVhcmVkfCB0aW1lcyB0aGUg
c2l6ZSAoaW4gYnl0ZXMpIG9mIGEgZnJhbWUuCi0gICAgdm9pZCBkZXN0cm95TWV0YWRhdGFBbmRO
b3RpZnkoaW50IGZyYW1lc0NsZWFyZWQpOworICAgIC8vIGRlY3JlYXNlZCBieSB8ZnJhbWVCeXRl
c0NsZWFyZWR8LgorICAgIHZvaWQgZGVzdHJveU1ldGFkYXRhQW5kTm90aWZ5KHVuc2lnbmVkIGZy
YW1lQnl0ZXNDbGVhcmVkKTsKIAogICAgIC8vIFdoZXRoZXIgb3Igbm90IHNpemUgaXMgYXZhaWxh
YmxlIHlldC4gICAgCiAgICAgYm9vbCBpc1NpemVBdmFpbGFibGUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAppbmRleCBjNDMzZGU0MDEy
ZTk4OGRjNmY5MDkxNjk3ODc1NTMwNTY3MTUxYjZiLi5jYTBmOTVkNzcyMjA4Yjc3NDFmOGQyNDQx
ZWQwMDUyOTI2OGM2MjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VTb3VyY2UuY3BwCkBAIC0xOTgsNCArMTk4LDExIEBAIGJvb2wgSW1hZ2VTb3VyY2U6
OmZyYW1lSXNDb21wbGV0ZUF0SW5kZXgoc2l6ZV90IGluZGV4KQogICAgIHJldHVybiBidWZmZXIg
JiYgYnVmZmVyLT5zdGF0dXMoKSA9PSBJbWFnZUZyYW1lOjpGcmFtZUNvbXBsZXRlOwogfQogCit1
bnNpZ25lZCBJbWFnZVNvdXJjZTo6ZnJhbWVCeXRlc0F0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25z
dAoreworICAgIGlmICghbV9kZWNvZGVyKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4g
bV9kZWNvZGVyLT5mcmFtZUJ5dGVzQXRJbmRleChpbmRleCk7Cit9CisKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCmluZGV4IDQwZDc1N2ZhMDlh
M2NmNmViZTZiZDA1MjE4MzY3YzQzZWViNzAyOTYuLjdjOGIwYTcwM2UzMDc4YThlZGI4N2JlYjY4
M2FiOTRlZGVjOWY5YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VTb3VyY2UuaApAQCAtMTQ2LDYgKzE0NiwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBmcmFt
ZUlzQ29tcGxldGVBdEluZGV4KHNpemVfdCk7IC8vIFdoZXRoZXIgb3Igbm90IHRoZSBmcmFtZSBp
cyBjb21wbGV0ZWx5IGRlY29kZWQuCiAgICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbkF0
SW5kZXgoc2l6ZV90KSBjb25zdDsgLy8gRVhJRiBpbWFnZSBvcmllbnRhdGlvbgogCisgICAgLy8g
UmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gdGhlIGRlY29kZWQgZnJhbWUuIElmIHRoZSBm
cmFtZSBpcyBub3QgeWV0CisgICAgLy8gZGVjb2RlZCB0aGVuIHJldHVybiAwLgorICAgIHVuc2ln
bmVkIGZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCkgY29uc3Q7CisKICNpZiBFTkFCTEUoSU1BR0Vf
REVDT0RFUl9ET1dOX1NBTVBMSU5HKQogICAgIHN0YXRpYyB1bnNpZ25lZCBtYXhQaXhlbHNQZXJE
ZWNvZGVkSW1hZ2UoKSB7IHJldHVybiBzX21heFBpeGVsc1BlckRlY29kZWRJbWFnZTsgfQogICAg
IHN0YXRpYyB2b2lkIHNldE1heFBpeGVsc1BlckRlY29kZWRJbWFnZSh1bnNpZ25lZCBtYXhQaXhl
bHMpIHsgc19tYXhQaXhlbHNQZXJEZWNvZGVkSW1hZ2UgPSBtYXhQaXhlbHM7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHAK
aW5kZXggN2NmMDI5NjhlZGM2ZDZhODBmNWYxMTlmN2UyYzVhYmQzMDNkNGM3ZS4uN2IxZTM5ZGUx
NmU3ZGFmMDU0YTE3MzhlNzMyMmZiNTM5ZDhmMWQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHAKQEAgLTM4Niw2ICsz
ODYsMTIgQEAgYm9vbCBJbWFnZVNvdXJjZTo6ZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90KQog
ICAgIHJldHVybiB0cnVlOwogfQogCit1bnNpZ25lZCBJbWFnZVNvdXJjZTo6ZnJhbWVCeXRlc0F0
SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAoreworICAgIEludFNpemUgZnJhbWVTaXplID0gZnJh
bWVTaXplQXRJbmRleChpbmRleCwgUmVzcGVjdEltYWdlT3JpZW50YXRpb24pOworICAgIHJldHVy
biBmcmFtZVNpemUud2lkdGgoKSAqIGZyYW1lU2l6ZS5oZWlnaHQoKSAqIDQ7Cit9CisKIH0KIAog
I2VuZGlmIC8vIFVTRShDRykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lt
YWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
bWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuY3BwCmluZGV4IDk5NTExMDgyN2U1NWQ2OWE5MTA5
NjdmNGFjMTM2N2IxOGEyMjE3YzIuLjc0OTQ3ZjI3NzdjYzhhNDFkYTliOGY4ZDc4ZmYzOTY0Njky
YmIwYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L0ltYWdlRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVj
b2RlcnMvSW1hZ2VEZWNvZGVyLmNwcApAQCAtMjg2LDYgKzI4NiwxNCBAQCBib29sIEltYWdlRGVj
b2Rlcjo6ZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAogICAgIHJldHVy
biB0cnVlOwogfQogCit1bnNpZ25lZCBJbWFnZURlY29kZXI6OmZyYW1lQnl0ZXNBdEluZGV4KHNp
emVfdCBpbmRleCkgY29uc3QKK3sKKyAgICBpZiAobV9mcmFtZUJ1ZmZlckNhY2hlLnNpemUoKSA8
PSBpbmRleCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgLy8gRklYTUU6IFVzZSB0aGUgZGltZW5z
aW9uIG9mIHRoZSByZXF1ZXN0ZWQgZnJhbWUuCisgICAgcmV0dXJuIG1fc2l6ZS53aWR0aCgpICog
bV9zaXplLmhlaWdodCgpICogNDsKK30KKwogdm9pZCBJbWFnZURlY29kZXI6OnByZXBhcmVTY2Fs
ZURhdGFJZk5lY2Vzc2FyeSgpCiB7CiAgICAgbV9zY2FsZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmgKaW5k
ZXggZjJhYWVjYzQ3MDc2MDBmY2QwZjQ3M2JmODhkMjY3ZDg4MTYxN2YyNi4uYmNlMDVhZWE5N2Rm
OGZkNDcxZGIxMzdiZWMyNzA0ZjY2MjQ0M2IzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmgKQEAgLTI3OSw2ICsyNzks
OSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIE1ha2UgdGhlIGJlc3QgZWZmb3J0
IGd1ZXNzIHRvIGNoZWNrIGlmIHRoZSByZXF1ZXN0ZWQgZnJhbWUgaGFzIGFscGhhIGNoYW5uZWwu
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBmcmFtZUhhc0FscGhhQXRJbmRleChzaXplX3QpIGNvbnN0
OwogCisgICAgICAgIC8vIE51bWJlciBvZiBieXRlcyBpbiB0aGUgZGVjb2RlZCBmcmFtZSByZXF1
ZXN0LCByZXR1cm4gMCBpZiBub3QgeWV0IGRlY29kZWQuCisgICAgICAgIHZpcnR1YWwgdW5zaWdu
ZWQgZnJhbWVCeXRlc0F0SW5kZXgoc2l6ZV90KSBjb25zdDsKKwogICAgICAgICB2b2lkIHNldEln
bm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlKGJvb2wgZmxhZykgeyBtX2lnbm9yZUdhbW1hQW5kQ29s
b3JQcm9maWxlID0gZmxhZzsgfQogICAgICAgICBib29sIGlnbm9yZXNHYW1tYUFuZENvbG9yUHJv
ZmlsZSgpIGNvbnN0IHsgcmV0dXJuIG1faWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGU7IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158917</attachid>
            <date>2012-08-16 15:07:59 -0700</date>
            <delta_ts>2012-08-16 18:26:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94241-20120816150724.patch</filename>
            <type>text/plain</type>
            <size>11484</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkyOTMwMzkwNjQ4NDc3
OTU4ZGVkMmI0ZmY5NzFmMWJkZGRlYzdkNC4uOWEzOWU3MzljNDVmNWE4MDAyMTFmY2FmY2I1NGM4
YTZiNTkyZGFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTA4LTE2ICBBbHBo
YSBMYW0gIDxoY2xhbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVwb3J0IGZyYW1lIGJ5dGVz
IGJ5IHBsYXRmb3JtIEltYWdlRGVjb2RlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTQyNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBEZWNvZGVkIGZyYW1lIGJ5dGVzIHNob3VsZCBiZSByZXBvcnRlZCBi
eSB0aGUgcGxhdGZvcm0gSW1hZ2VTb3VyY2UgYW5kCisgICAgICAgIEltYWdlRGVjb2Rlci4gQml0
bWFwSW1hZ2UgdXNlZCB0byBndWVzcyBzeXN0ZW0gbWVtb3J5IHVzZWQgYnkgYSBmcmFtZQorICAg
ICAgICBidXQgdGhpcyBpcyBubyBsb25nZXIgdHJ1ZSBpZiBhIGZyYW1lIGlzIGJhY2tlZCBieSBh
biBhY2NlbGVyYXRlZAorICAgICAgICBzdXJmYWNlIG9yIGRlZmVyLWRlY29kZWQuCisKKyAgICAg
ICAgQWRkcyBJbWFnZVNvdXJjZTo6ZnJhbWVCeXRlc0F0SW5kZXggYW5kIEltYWdlRGVjb2Rlcjo6
ZnJhbWVCeXRlc0F0SW5kZXgKKyAgICAgICAgc3VjaCB0aGF0IHBsYXRmb3JtIGNhbiByZXBvcnQg
bWVtb3J5IHVzYWdlIGNvcnJlY3RseS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFJlZmFjdG9y
aW5nIHdpdGhvdXQgY2hhbmdlIG9mIGJlaGF2aW9yLgorICAgICAgICBUZXN0ZWQgb24gQ2hyb21p
dW0gcG9ydCB3aXRoIHBpeGVsIHRlc3RzIHdpdGhvdXQgYW55IGNyYXNoIG9yIGZhaWx1cmUuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZGVzdHJveURlY29kZWREYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OkJpdG1hcEltYWdlOjpkZXN0cm95RGVjb2RlZERhdGFJZk5lY2Vzc2FyeSk6CisgICAgICAg
IChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZGVzdHJveU1ldGFkYXRhQW5kTm90aWZ5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpjYWNoZUZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OkJpdG1hcEltYWdlOjpkYXRhQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRGF0YTo6RnJhbWVEYXRhKToK
KyAgICAgICAgKEZyYW1lRGF0YSk6CisgICAgICAgIChCaXRtYXBJbWFnZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1h
Z2VTb3VyY2U6OmZyYW1lQnl0ZXNBdEluZGV4KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNv
dXJjZTo6ZnJhbWVCeXRlc0F0SW5kZXgpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
cGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlRGVjb2Rlcjo6ZnJhbWVCeXRlc0F0SW5kZXgpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmg6CisgICAg
ICAgIChJbWFnZURlY29kZXIpOgorCiAyMDEyLTA4LTExICBCZW5qYW1pbiBQb3VsYWluICA8YnBv
dWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIERvIHRoZSBEZWNpbWFsTnVtYmVyIHRvIFN0cmlu
ZyBjb252ZXJzaW9uIG9uIDggYml0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuY3BwCmluZGV4IGUyODZhN2M4YmY4NjE0M2JkN2VjNjQxYmEwODVl
MTdlYzBkNjZiOTYuLjk1ZjdkM2UxZWY5YWEwNTU4ZTY0YTUzMTM5YzhhMWQwYTNiNjMwNmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAK
QEAgLTM4LDExICszOCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGludCBm
cmFtZUJ5dGVzKGNvbnN0IEludFNpemUmIGZyYW1lU2l6ZSkKLXsKLSAgICByZXR1cm4gZnJhbWVT
aXplLndpZHRoKCkgKiBmcmFtZVNpemUuaGVpZ2h0KCkgKiA0OwotfQotCiBCaXRtYXBJbWFnZTo6
Qml0bWFwSW1hZ2UoSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgOiBJbWFnZShvYnNlcnZl
cikKICAgICAsIG1fY3VycmVudEZyYW1lKDApCkBAIC04NSwxNyArODAsMTggQEAgYm9vbCBCaXRt
YXBJbWFnZTo6aGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdAogCiB2b2lkIEJpdG1hcElt
YWdlOjpkZXN0cm95RGVjb2RlZERhdGEoYm9vbCBkZXN0cm95QWxsKQogewotICAgIGludCBmcmFt
ZXNDbGVhcmVkID0gMDsKKyAgICB1bnNpZ25lZCBmcmFtZUJ5dGVzQ2xlYXJlZCA9IDA7CiAgICAg
Y29uc3Qgc2l6ZV90IGNsZWFyQmVmb3JlRnJhbWUgPSBkZXN0cm95QWxsID8gbV9mcmFtZXMuc2l6
ZSgpIDogbV9jdXJyZW50RnJhbWU7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjbGVhckJl
Zm9yZUZyYW1lOyArK2kpIHsKICAgICAgICAgLy8gVGhlIHVuZGVybHlpbmcgZnJhbWUgaXNuJ3Qg
YWN0dWFsbHkgY2hhbmdpbmcgKHdlJ3JlIGp1c3QgdHJ5aW5nIHRvCiAgICAgICAgIC8vIHNhdmUg
dGhlIG1lbW9yeSBmb3IgdGhlIGZyYW1lYnVmZmVyIGRhdGEpLCBzbyB3ZSBkb24ndCBuZWVkIHRv
IGNsZWFyCiAgICAgICAgIC8vIHRoZSBtZXRhZGF0YS4KKyAgICAgICAgdW5zaWduZWQgZnJhbWVC
eXRlcyA9IG1fZnJhbWVzW2ldLm1fZnJhbWVCeXRlczsKICAgICAgICAgaWYgKG1fZnJhbWVzW2ld
LmNsZWFyKGZhbHNlKSkKLSAgICAgICAgICArK2ZyYW1lc0NsZWFyZWQ7CisgICAgICAgICAgICBm
cmFtZUJ5dGVzQ2xlYXJlZCArPSBmcmFtZUJ5dGVzOwogICAgIH0KIAotICAgIGRlc3Ryb3lNZXRh
ZGF0YUFuZE5vdGlmeShmcmFtZXNDbGVhcmVkKTsKKyAgICBkZXN0cm95TWV0YWRhdGFBbmROb3Rp
ZnkoZnJhbWVCeXRlc0NsZWFyZWQpOwogCiAgICAgbV9zb3VyY2UuY2xlYXIoZGVzdHJveUFsbCwg
Y2xlYXJCZWZvcmVGcmFtZSwgZGF0YSgpLCBtX2FsbERhdGFSZWNlaXZlZCk7CiAgICAgcmV0dXJu
OwpAQCAtMTA2LDE5ICsxMDIsMjMgQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZGVzdHJveURlY29kZWRE
YXRhSWZOZWNlc3NhcnkoYm9vbCBkZXN0cm95QWxsKQogICAgIC8vIEFuaW1hdGVkIGltYWdlcyA+
NU1CIGFyZSBjb25zaWRlcmVkIGxhcmdlIGVub3VnaCB0aGF0IHdlJ2xsIG9ubHkgaGFuZyBvbgog
ICAgIC8vIHRvIG9uZSBmcmFtZSBhdCBhIHRpbWUuCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IGNMYXJnZUFuaW1hdGlvbkN1dG9mZiA9IDUyNDI4ODA7Ci0gICAgaWYgKG1fZnJhbWVzLnNpemUo
KSAqIGZyYW1lQnl0ZXMobV9zaXplKSA+IGNMYXJnZUFuaW1hdGlvbkN1dG9mZikKKyAgICB1bnNp
Z25lZCBhbGxGcmFtZUJ5dGVzID0gMDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fZnJh
bWVzLnNpemUoKTsgKytpKQorICAgICAgICBhbGxGcmFtZUJ5dGVzICs9IG1fZnJhbWVzW2ldLm1f
ZnJhbWVCeXRlczsKKworICAgIGlmIChhbGxGcmFtZUJ5dGVzID4gY0xhcmdlQW5pbWF0aW9uQ3V0
b2ZmKQogICAgICAgICBkZXN0cm95RGVjb2RlZERhdGEoZGVzdHJveUFsbCk7CiB9CiAKLXZvaWQg
Qml0bWFwSW1hZ2U6OmRlc3Ryb3lNZXRhZGF0YUFuZE5vdGlmeShpbnQgZnJhbWVzQ2xlYXJlZCkK
K3ZvaWQgQml0bWFwSW1hZ2U6OmRlc3Ryb3lNZXRhZGF0YUFuZE5vdGlmeSh1bnNpZ25lZCBmcmFt
ZUJ5dGVzQ2xlYXJlZCkKIHsKICAgICBtX2lzU29saWRDb2xvciA9IGZhbHNlOwogICAgIG1fY2hl
Y2tlZEZvclNvbGlkQ29sb3IgPSBmYWxzZTsKICAgICBpbnZhbGlkYXRlUGxhdGZvcm1EYXRhKCk7
CiAKLSAgICBpbnQgZGVsdGFCeXRlcyA9IGZyYW1lc0NsZWFyZWQgKiAtZnJhbWVCeXRlcyhtX3Np
emUpOworICAgIGludCBkZWx0YUJ5dGVzID0gLWZyYW1lQnl0ZXNDbGVhcmVkOwogICAgIG1fZGVj
b2RlZFNpemUgKz0gZGVsdGFCeXRlczsKLSAgICBpZiAoZnJhbWVzQ2xlYXJlZCA+IDApIHsKKyAg
ICBpZiAoZnJhbWVCeXRlc0NsZWFyZWQgPiAwKSB7CiAgICAgICAgIGRlbHRhQnl0ZXMgLT0gbV9k
ZWNvZGVkUHJvcGVydGllc1NpemU7CiAgICAgICAgIG1fZGVjb2RlZFByb3BlcnRpZXNTaXplID0g
MDsKICAgICB9CkBAIC0xNDQsMTIgKzE0NCwxMyBAQCB2b2lkIEJpdG1hcEltYWdlOjpjYWNoZUZy
YW1lKHNpemVfdCBpbmRleCkKICAgICBpZiAocmVwZXRpdGlvbkNvdW50KGZhbHNlKSAhPSBjQW5p
bWF0aW9uTm9uZSkKICAgICAgICAgbV9mcmFtZXNbaW5kZXhdLm1fZHVyYXRpb24gPSBtX3NvdXJj
ZS5mcmFtZUR1cmF0aW9uQXRJbmRleChpbmRleCk7CiAgICAgbV9mcmFtZXNbaW5kZXhdLm1faGFz
QWxwaGEgPSBtX3NvdXJjZS5mcmFtZUhhc0FscGhhQXRJbmRleChpbmRleCk7CisgICAgbV9mcmFt
ZXNbaW5kZXhdLm1fZnJhbWVCeXRlcyA9IG1fc291cmNlLmZyYW1lQnl0ZXNBdEluZGV4KGluZGV4
KTsKIAogICAgIGNvbnN0IEludFNpemUgZnJhbWVTaXplKGluZGV4ID8gbV9zb3VyY2UuZnJhbWVT
aXplQXRJbmRleChpbmRleCkgOiBtX3NpemUpOwogICAgIGlmIChmcmFtZVNpemUgIT0gbV9zaXpl
KQogICAgICAgICBtX2hhc1VuaWZvcm1GcmFtZVNpemUgPSBmYWxzZTsKICAgICBpZiAobV9mcmFt
ZXNbaW5kZXhdLm1fZnJhbWUpIHsKLSAgICAgICAgaW50IGRlbHRhQnl0ZXMgPSBmcmFtZUJ5dGVz
KGZyYW1lU2l6ZSk7CisgICAgICAgIGludCBkZWx0YUJ5dGVzID0gbV9mcmFtZXNbaW5kZXhdLm1f
ZnJhbWVCeXRlczsKICAgICAgICAgbV9kZWNvZGVkU2l6ZSArPSBkZWx0YUJ5dGVzOwogICAgICAg
ICAvLyBUaGUgZnVsbHktZGVjb2RlZCBmcmFtZSB3aWxsIHN1YnN1bWUgdGhlIHBhcnRpYWxseSBk
ZWNvZGVkIGRhdGEgdXNlZAogICAgICAgICAvLyB0byBkZXRlcm1pbmUgaW1hZ2UgcHJvcGVydGll
cy4KQEAgLTIzNiwxNSArMjM3LDE2IEBAIGJvb2wgQml0bWFwSW1hZ2U6OmRhdGFDaGFuZ2VkKGJv
b2wgYWxsRGF0YVJlY2VpdmVkKQogICAgIC8vIHN0YXJ0IG9mIHRoZSBmcmFtZSBkYXRhKSwgYW5k
IGFueSBvciBub25lIG9mIHRoZW0gbWlnaHQgYmUgdGhlIHBhcnRpY3VsYXIKICAgICAvLyBmcmFt
ZSBhZmZlY3RlZCBieSBhcHBlbmRpbmcgbmV3IGRhdGEgaGVyZS4gVGh1cyB3ZSBoYXZlIHRvIGNs
ZWFyIGFsbCB0aGUKICAgICAvLyBpbmNvbXBsZXRlIGZyYW1lcyB0byBiZSBzYWZlLgotICAgIGlu
dCBmcmFtZXNDbGVhcmVkID0gMDsKKyAgICB1bnNpZ25lZCBmcmFtZUJ5dGVzQ2xlYXJlZCA9IDA7
CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2ZyYW1lcy5zaXplKCk7ICsraSkgewogICAg
ICAgICAvLyBOT1RFOiBEb24ndCBjYWxsIGZyYW1lSXNDb21wbGV0ZUF0SW5kZXgoKSBoZXJlLCB0
aGF0IHdpbGwgdHJ5IHRvCiAgICAgICAgIC8vIGRlY29kZSBhbnkgdW5jYWNoZWQgKGkuZS4gbmV2
ZXItZGVjb2RlZCBvcgogICAgICAgICAvLyBjbGVhcmVkLW9uLWEtcHJldmlvdXMtcGFzcykgZnJh
bWVzIQorICAgICAgICB1bnNpZ25lZCBmcmFtZUJ5dGVzID0gbV9mcmFtZXNbaV0ubV9mcmFtZUJ5
dGVzOwogICAgICAgICBpZiAobV9mcmFtZXNbaV0ubV9oYXZlTWV0YWRhdGEgJiYgIW1fZnJhbWVz
W2ldLm1faXNDb21wbGV0ZSkKLSAgICAgICAgICAgIGZyYW1lc0NsZWFyZWQgKz0gKG1fZnJhbWVz
W2ldLmNsZWFyKHRydWUpID8gMSA6IDApOworICAgICAgICAgICAgZnJhbWVCeXRlc0NsZWFyZWQg
Kz0gKG1fZnJhbWVzW2ldLmNsZWFyKHRydWUpID8gZnJhbWVCeXRlcyA6IDApOwogICAgIH0KLSAg
ICBkZXN0cm95TWV0YWRhdGFBbmROb3RpZnkoZnJhbWVzQ2xlYXJlZCk7CisgICAgZGVzdHJveU1l
dGFkYXRhQW5kTm90aWZ5KGZyYW1lQnl0ZXNDbGVhcmVkKTsKICAgICAKICAgICAvLyBGZWVkIGFs
bCB0aGUgZGF0YSB3ZSd2ZSBzZWVuIHNvIGZhciB0byB0aGUgaW1hZ2UgZGVjb2Rlci4KICAgICBt
X2FsbERhdGFSZWNlaXZlZCA9IGFsbERhdGFSZWNlaXZlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCmluZGV4IDA1MjEyODA0ZTJlOWFhYWVhMTY5
NmNiMmEzODg3YzhhMmJkYWJkMzMuLjYxMzJjM2I4N2Y2MDhlMGNjOTc4ODQ3ZTM1ZWZlOTViOTM1
NTQ0ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1h
cEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuaApAQCAtNzUsNiArNzUsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9oYXZlTWV0YWRhdGEo
ZmFsc2UpCiAgICAgICAgICwgbV9pc0NvbXBsZXRlKGZhbHNlKQogICAgICAgICAsIG1faGFzQWxw
aGEodHJ1ZSkgCisgICAgICAgICwgbV9mcmFtZUJ5dGVzKDApCiAgICAgewogICAgIH0KIApAQCAt
OTMsNiArOTQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBtX2hhdmVNZXRhZGF0YSA6IDE7CiAgICAg
Ym9vbCBtX2lzQ29tcGxldGUgOiAxOwogICAgIGJvb2wgbV9oYXNBbHBoYSA6IDE7CisgICAgdW5z
aWduZWQgbV9mcmFtZUJ5dGVzOwogfTsKIAogLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMjM0LDggKzIzNiw4IEBAIHByb3RlY3RlZDoKIAog
ICAgIC8vIEdlbmVyYWxseSBjYWxsZWQgYnkgZGVzdHJveURlY29kZWREYXRhKCksIGRlc3Ryb3lz
IHdob2xlLWltYWdlIG1ldGFkYXRhCiAgICAgLy8gYW5kIG5vdGlmaWVzIG9ic2VydmVycyB0aGF0
IHRoZSBtZW1vcnkgZm9vdHByaW50IGhhcyAoaG9wZWZ1bGx5KQotICAgIC8vIGRlY3JlYXNlZCBi
eSB8ZnJhbWVzQ2xlYXJlZHwgdGltZXMgdGhlIHNpemUgKGluIGJ5dGVzKSBvZiBhIGZyYW1lLgot
ICAgIHZvaWQgZGVzdHJveU1ldGFkYXRhQW5kTm90aWZ5KGludCBmcmFtZXNDbGVhcmVkKTsKKyAg
ICAvLyBkZWNyZWFzZWQgYnkgfGZyYW1lQnl0ZXNDbGVhcmVkfC4KKyAgICB2b2lkIGRlc3Ryb3lN
ZXRhZGF0YUFuZE5vdGlmeSh1bnNpZ25lZCBmcmFtZUJ5dGVzQ2xlYXJlZCk7CiAKICAgICAvLyBX
aGV0aGVyIG9yIG5vdCBzaXplIGlzIGF2YWlsYWJsZSB5ZXQuICAgIAogICAgIGJvb2wgaXNTaXpl
QXZhaWxhYmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZVNvdXJjZS5jcHAKaW5kZXggYzQzM2RlNDAxMmU5ODhkYzZmOTA5MTY5Nzg3NTUzMDU2NzE1MWI2
Yi4uY2EwZjk1ZDc3MjIwOGI3NzQxZjhkMjQ0MWVkMDA1MjkyNjhjNjI3YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcApAQCAtMTk4LDQg
KzE5OCwxMSBAQCBib29sIEltYWdlU291cmNlOjpmcmFtZUlzQ29tcGxldGVBdEluZGV4KHNpemVf
dCBpbmRleCkKICAgICByZXR1cm4gYnVmZmVyICYmIGJ1ZmZlci0+c3RhdHVzKCkgPT0gSW1hZ2VG
cmFtZTo6RnJhbWVDb21wbGV0ZTsKIH0KIAordW5zaWduZWQgSW1hZ2VTb3VyY2U6OmZyYW1lQnl0
ZXNBdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZGVjb2RlcikKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1fZGVjb2Rlci0+ZnJhbWVCeXRlc0F0SW5kZXgo
aW5kZXgpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VTb3VyY2UuaAppbmRleCA0MGQ3NTdmYTA5YTNjZjZlYmU2YmQwNTIxODM2N2M0M2VlYjcwMjk2
Li43YzhiMGE3MDNlMzA3OGE4ZWRiODdiZWI2ODNhYjk0ZWRlYzlmOWIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKQEAgLTE0Niw2ICsxNDYs
MTAgQEAgcHVibGljOgogICAgIGJvb2wgZnJhbWVJc0NvbXBsZXRlQXRJbmRleChzaXplX3QpOyAv
LyBXaGV0aGVyIG9yIG5vdCB0aGUgZnJhbWUgaXMgY29tcGxldGVseSBkZWNvZGVkLgogICAgIElt
YWdlT3JpZW50YXRpb24gb3JpZW50YXRpb25BdEluZGV4KHNpemVfdCkgY29uc3Q7IC8vIEVYSUYg
aW1hZ2Ugb3JpZW50YXRpb24KIAorICAgIC8vIFJldHVybiB0aGUgbnVtYmVyIG9mIGJ5dGVzIGlu
IHRoZSBkZWNvZGVkIGZyYW1lLiBJZiB0aGUgZnJhbWUgaXMgbm90IHlldAorICAgIC8vIGRlY29k
ZWQgdGhlbiByZXR1cm4gMC4KKyAgICB1bnNpZ25lZCBmcmFtZUJ5dGVzQXRJbmRleChzaXplX3Qp
IGNvbnN0OworCiAjaWYgRU5BQkxFKElNQUdFX0RFQ09ERVJfRE9XTl9TQU1QTElORykKICAgICBz
dGF0aWMgdW5zaWduZWQgbWF4UGl4ZWxzUGVyRGVjb2RlZEltYWdlKCkgeyByZXR1cm4gc19tYXhQ
aXhlbHNQZXJEZWNvZGVkSW1hZ2U7IH0KICAgICBzdGF0aWMgdm9pZCBzZXRNYXhQaXhlbHNQZXJE
ZWNvZGVkSW1hZ2UodW5zaWduZWQgbWF4UGl4ZWxzKSB7IHNfbWF4UGl4ZWxzUGVyRGVjb2RlZElt
YWdlID0gbWF4UGl4ZWxzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwCmluZGV4IDdjZjAyOTY4ZWRjNmQ2YTgwZjVmMTE5
ZjdlMmM1YWJkMzAzZDRjN2UuLjdiMWUzOWRlMTZlN2RhZjA1NGExNzM4ZTczMjJmYjUzOWQ4ZjFk
MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
U291cmNlQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlU291cmNlQ0cuY3BwCkBAIC0zODYsNiArMzg2LDEyIEBAIGJvb2wgSW1hZ2VTb3VyY2U6OmZy
YW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordW5zaWdu
ZWQgSW1hZ2VTb3VyY2U6OmZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QKK3sK
KyAgICBJbnRTaXplIGZyYW1lU2l6ZSA9IGZyYW1lU2l6ZUF0SW5kZXgoaW5kZXgsIFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uKTsKKyAgICByZXR1cm4gZnJhbWVTaXplLndpZHRoKCkgKiBmcmFtZVNp
emUuaGVpZ2h0KCkgKiA0OworfQorCiB9CiAKICNlbmRpZiAvLyBVU0UoQ0cpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmNw
cAppbmRleCA5OTUxMTA4MjdlNTVkNjlhOTEwOTY3ZjRhYzEzNjdiMThhMjIxN2MyLi43NDk0N2Yy
Nzc3Y2M4YTQxZGE5YjhmOGQ3OGZmMzk2NDY5MmJiMGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5jcHAKQEAgLTI4
Niw2ICsyODYsMTQgQEAgYm9vbCBJbWFnZURlY29kZXI6OmZyYW1lSGFzQWxwaGFBdEluZGV4KHNp
emVfdCBpbmRleCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordW5zaWduZWQgSW1hZ2VE
ZWNvZGVyOjpmcmFtZUJ5dGVzQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0Cit7CisgICAgaWYg
KG1fZnJhbWVCdWZmZXJDYWNoZS5zaXplKCkgPD0gaW5kZXgpCisgICAgICAgIHJldHVybiAwOwor
ICAgIC8vIEZJWE1FOiBVc2UgdGhlIGRpbWVuc2lvbiBvZiB0aGUgcmVxdWVzdGVkIGZyYW1lLgor
ICAgIHJldHVybiBtX3NpemUud2lkdGgoKSAqIG1fc2l6ZS5oZWlnaHQoKSAqIDQ7Cit9CisKIHZv
aWQgSW1hZ2VEZWNvZGVyOjpwcmVwYXJlU2NhbGVEYXRhSWZOZWNlc3NhcnkoKQogewogICAgIG1f
c2NhbGVkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFn
ZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdl
LWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oCmluZGV4IGYyYWFlY2M0NzA3NjAwZmNkMGY0NzNiZjg4
ZDI2N2Q4ODE2MTdmMjYuLjU2YmQxZTlmZTFkNGE1MDU0YmQ2NzZmYWMwMzYwNDVhNGQyMGZiNTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdl
RGVjb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0lt
YWdlRGVjb2Rlci5oCkBAIC0yNzksNiArMjc5LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICAvLyBNYWtlIHRoZSBiZXN0IGVmZm9ydCBndWVzcyB0byBjaGVjayBpZiB0aGUgcmVxdWVz
dGVkIGZyYW1lIGhhcyBhbHBoYSBjaGFubmVsLgogICAgICAgICB2aXJ0dWFsIGJvb2wgZnJhbWVI
YXNBbHBoYUF0SW5kZXgoc2l6ZV90KSBjb25zdDsKIAorICAgICAgICAvLyBOdW1iZXIgb2YgYnl0
ZXMgaW4gdGhlIGRlY29kZWQgZnJhbWUgcmVxdWVzdC4gUmV0dXJuIDAgaWYgbm90IHlldCBkZWNv
ZGVkLgorICAgICAgICB2aXJ0dWFsIHVuc2lnbmVkIGZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCkg
Y29uc3Q7CisKICAgICAgICAgdm9pZCBzZXRJZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZShib29s
IGZsYWcpIHsgbV9pZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSA9IGZsYWc7IH0KICAgICAgICAg
Ym9vbCBpZ25vcmVzR2FtbWFBbmRDb2xvclByb2ZpbGUoKSBjb25zdCB7IHJldHVybiBtX2lnbm9y
ZUdhbW1hQW5kQ29sb3JQcm9maWxlOyB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158966</attachid>
            <date>2012-08-16 18:26:11 -0700</date>
            <delta_ts>2012-08-20 13:00:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94241-20120816182535.patch</filename>
            <type>text/plain</type>
            <size>11891</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkyOTMwMzkwNjQ4NDc3
OTU4ZGVkMmI0ZmY5NzFmMWJkZGRlYzdkNC4uOWEzOWU3MzljNDVmNWE4MDAyMTFmY2FmY2I1NGM4
YTZiNTkyZGFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTA4LTE2ICBBbHBo
YSBMYW0gIDxoY2xhbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVwb3J0IGZyYW1lIGJ5dGVz
IGJ5IHBsYXRmb3JtIEltYWdlRGVjb2RlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTQyNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBEZWNvZGVkIGZyYW1lIGJ5dGVzIHNob3VsZCBiZSByZXBvcnRlZCBi
eSB0aGUgcGxhdGZvcm0gSW1hZ2VTb3VyY2UgYW5kCisgICAgICAgIEltYWdlRGVjb2Rlci4gQml0
bWFwSW1hZ2UgdXNlZCB0byBndWVzcyBzeXN0ZW0gbWVtb3J5IHVzZWQgYnkgYSBmcmFtZQorICAg
ICAgICBidXQgdGhpcyBpcyBubyBsb25nZXIgdHJ1ZSBpZiBhIGZyYW1lIGlzIGJhY2tlZCBieSBh
biBhY2NlbGVyYXRlZAorICAgICAgICBzdXJmYWNlIG9yIGRlZmVyLWRlY29kZWQuCisKKyAgICAg
ICAgQWRkcyBJbWFnZVNvdXJjZTo6ZnJhbWVCeXRlc0F0SW5kZXggYW5kIEltYWdlRGVjb2Rlcjo6
ZnJhbWVCeXRlc0F0SW5kZXgKKyAgICAgICAgc3VjaCB0aGF0IHBsYXRmb3JtIGNhbiByZXBvcnQg
bWVtb3J5IHVzYWdlIGNvcnJlY3RseS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFJlZmFjdG9y
aW5nIHdpdGhvdXQgY2hhbmdlIG9mIGJlaGF2aW9yLgorICAgICAgICBUZXN0ZWQgb24gQ2hyb21p
dW0gcG9ydCB3aXRoIHBpeGVsIHRlc3RzIHdpdGhvdXQgYW55IGNyYXNoIG9yIGZhaWx1cmUuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZGVzdHJveURlY29kZWREYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OkJpdG1hcEltYWdlOjpkZXN0cm95RGVjb2RlZERhdGFJZk5lY2Vzc2FyeSk6CisgICAgICAg
IChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZGVzdHJveU1ldGFkYXRhQW5kTm90aWZ5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpjYWNoZUZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OkJpdG1hcEltYWdlOjpkYXRhQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRGF0YTo6RnJhbWVEYXRhKToK
KyAgICAgICAgKEZyYW1lRGF0YSk6CisgICAgICAgIChCaXRtYXBJbWFnZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1h
Z2VTb3VyY2U6OmZyYW1lQnl0ZXNBdEluZGV4KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNv
dXJjZTo6ZnJhbWVCeXRlc0F0SW5kZXgpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
cGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlRGVjb2Rlcjo6ZnJhbWVCeXRlc0F0SW5kZXgpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmg6CisgICAg
ICAgIChJbWFnZURlY29kZXIpOgorCiAyMDEyLTA4LTExICBCZW5qYW1pbiBQb3VsYWluICA8YnBv
dWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIERvIHRoZSBEZWNpbWFsTnVtYmVyIHRvIFN0cmlu
ZyBjb252ZXJzaW9uIG9uIDggYml0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuY3BwCmluZGV4IGUyODZhN2M4YmY4NjE0M2JkN2VjNjQxYmEwODVl
MTdlYzBkNjZiOTYuLjQ0MDYyOGJjNmZiNjE5NGQwZGIzMWFjM2E0MGEwMDZkMTE0MGUzMDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAK
QEAgLTM4LDExICszOCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGludCBm
cmFtZUJ5dGVzKGNvbnN0IEludFNpemUmIGZyYW1lU2l6ZSkKLXsKLSAgICByZXR1cm4gZnJhbWVT
aXplLndpZHRoKCkgKiBmcmFtZVNpemUuaGVpZ2h0KCkgKiA0OwotfQotCiBCaXRtYXBJbWFnZTo6
Qml0bWFwSW1hZ2UoSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgOiBJbWFnZShvYnNlcnZl
cikKICAgICAsIG1fY3VycmVudEZyYW1lKDApCkBAIC04NSwxNyArODAsMTggQEAgYm9vbCBCaXRt
YXBJbWFnZTo6aGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdAogCiB2b2lkIEJpdG1hcElt
YWdlOjpkZXN0cm95RGVjb2RlZERhdGEoYm9vbCBkZXN0cm95QWxsKQogewotICAgIGludCBmcmFt
ZXNDbGVhcmVkID0gMDsKKyAgICB1bnNpZ25lZCBmcmFtZUJ5dGVzQ2xlYXJlZCA9IDA7CiAgICAg
Y29uc3Qgc2l6ZV90IGNsZWFyQmVmb3JlRnJhbWUgPSBkZXN0cm95QWxsID8gbV9mcmFtZXMuc2l6
ZSgpIDogbV9jdXJyZW50RnJhbWU7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjbGVhckJl
Zm9yZUZyYW1lOyArK2kpIHsKICAgICAgICAgLy8gVGhlIHVuZGVybHlpbmcgZnJhbWUgaXNuJ3Qg
YWN0dWFsbHkgY2hhbmdpbmcgKHdlJ3JlIGp1c3QgdHJ5aW5nIHRvCiAgICAgICAgIC8vIHNhdmUg
dGhlIG1lbW9yeSBmb3IgdGhlIGZyYW1lYnVmZmVyIGRhdGEpLCBzbyB3ZSBkb24ndCBuZWVkIHRv
IGNsZWFyCiAgICAgICAgIC8vIHRoZSBtZXRhZGF0YS4KKyAgICAgICAgdW5zaWduZWQgZnJhbWVC
eXRlcyA9IG1fZnJhbWVzW2ldLm1fZnJhbWVCeXRlczsKICAgICAgICAgaWYgKG1fZnJhbWVzW2ld
LmNsZWFyKGZhbHNlKSkKLSAgICAgICAgICArK2ZyYW1lc0NsZWFyZWQ7CisgICAgICAgICAgICBm
cmFtZUJ5dGVzQ2xlYXJlZCArPSBmcmFtZUJ5dGVzOwogICAgIH0KIAotICAgIGRlc3Ryb3lNZXRh
ZGF0YUFuZE5vdGlmeShmcmFtZXNDbGVhcmVkKTsKKyAgICBkZXN0cm95TWV0YWRhdGFBbmROb3Rp
ZnkoZnJhbWVCeXRlc0NsZWFyZWQpOwogCiAgICAgbV9zb3VyY2UuY2xlYXIoZGVzdHJveUFsbCwg
Y2xlYXJCZWZvcmVGcmFtZSwgZGF0YSgpLCBtX2FsbERhdGFSZWNlaXZlZCk7CiAgICAgcmV0dXJu
OwpAQCAtMTA2LDI0ICsxMDIsMjggQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZGVzdHJveURlY29kZWRE
YXRhSWZOZWNlc3NhcnkoYm9vbCBkZXN0cm95QWxsKQogICAgIC8vIEFuaW1hdGVkIGltYWdlcyA+
NU1CIGFyZSBjb25zaWRlcmVkIGxhcmdlIGVub3VnaCB0aGF0IHdlJ2xsIG9ubHkgaGFuZyBvbgog
ICAgIC8vIHRvIG9uZSBmcmFtZSBhdCBhIHRpbWUuCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IGNMYXJnZUFuaW1hdGlvbkN1dG9mZiA9IDUyNDI4ODA7Ci0gICAgaWYgKG1fZnJhbWVzLnNpemUo
KSAqIGZyYW1lQnl0ZXMobV9zaXplKSA+IGNMYXJnZUFuaW1hdGlvbkN1dG9mZikKKyAgICB1bnNp
Z25lZCBhbGxGcmFtZUJ5dGVzID0gMDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fZnJh
bWVzLnNpemUoKTsgKytpKQorICAgICAgICBhbGxGcmFtZUJ5dGVzICs9IG1fZnJhbWVzW2ldLm1f
ZnJhbWVCeXRlczsKKworICAgIGlmIChhbGxGcmFtZUJ5dGVzID4gY0xhcmdlQW5pbWF0aW9uQ3V0
b2ZmKQogICAgICAgICBkZXN0cm95RGVjb2RlZERhdGEoZGVzdHJveUFsbCk7CiB9CiAKLXZvaWQg
Qml0bWFwSW1hZ2U6OmRlc3Ryb3lNZXRhZGF0YUFuZE5vdGlmeShpbnQgZnJhbWVzQ2xlYXJlZCkK
K3ZvaWQgQml0bWFwSW1hZ2U6OmRlc3Ryb3lNZXRhZGF0YUFuZE5vdGlmeSh1bnNpZ25lZCBmcmFt
ZUJ5dGVzQ2xlYXJlZCkKIHsKICAgICBtX2lzU29saWRDb2xvciA9IGZhbHNlOwogICAgIG1fY2hl
Y2tlZEZvclNvbGlkQ29sb3IgPSBmYWxzZTsKICAgICBpbnZhbGlkYXRlUGxhdGZvcm1EYXRhKCk7
CiAKLSAgICBpbnQgZGVsdGFCeXRlcyA9IGZyYW1lc0NsZWFyZWQgKiAtZnJhbWVCeXRlcyhtX3Np
emUpOwotICAgIG1fZGVjb2RlZFNpemUgKz0gZGVsdGFCeXRlczsKLSAgICBpZiAoZnJhbWVzQ2xl
YXJlZCA+IDApIHsKLSAgICAgICAgZGVsdGFCeXRlcyAtPSBtX2RlY29kZWRQcm9wZXJ0aWVzU2l6
ZTsKKyAgICBBU1NFUlQobV9kZWNvZGVkU2l6ZSA+PSBmcmFtZUJ5dGVzQ2xlYXJlZCk7CisgICAg
bV9kZWNvZGVkU2l6ZSAtPSBmcmFtZUJ5dGVzQ2xlYXJlZDsKKyAgICBpZiAoZnJhbWVCeXRlc0Ns
ZWFyZWQgPiAwKSB7CisgICAgICAgIGZyYW1lQnl0ZXNDbGVhcmVkICs9IG1fZGVjb2RlZFByb3Bl
cnRpZXNTaXplOwogICAgICAgICBtX2RlY29kZWRQcm9wZXJ0aWVzU2l6ZSA9IDA7CiAgICAgfQot
ICAgIGlmIChkZWx0YUJ5dGVzICYmIGltYWdlT2JzZXJ2ZXIoKSkKLSAgICAgICAgaW1hZ2VPYnNl
cnZlcigpLT5kZWNvZGVkU2l6ZUNoYW5nZWQodGhpcywgZGVsdGFCeXRlcyk7CisgICAgaWYgKGZy
YW1lQnl0ZXNDbGVhcmVkICYmIGltYWdlT2JzZXJ2ZXIoKSkKKyAgICAgICAgaW1hZ2VPYnNlcnZl
cigpLT5kZWNvZGVkU2l6ZUNoYW5nZWQodGhpcywgLXNhZmVDYXN0PGludD4oZnJhbWVCeXRlc0Ns
ZWFyZWQpKTsKIH0KIAogdm9pZCBCaXRtYXBJbWFnZTo6Y2FjaGVGcmFtZShzaXplX3QgaW5kZXgp
CkBAIC0xNDQsMTIgKzE0NCwxMyBAQCB2b2lkIEJpdG1hcEltYWdlOjpjYWNoZUZyYW1lKHNpemVf
dCBpbmRleCkKICAgICBpZiAocmVwZXRpdGlvbkNvdW50KGZhbHNlKSAhPSBjQW5pbWF0aW9uTm9u
ZSkKICAgICAgICAgbV9mcmFtZXNbaW5kZXhdLm1fZHVyYXRpb24gPSBtX3NvdXJjZS5mcmFtZUR1
cmF0aW9uQXRJbmRleChpbmRleCk7CiAgICAgbV9mcmFtZXNbaW5kZXhdLm1faGFzQWxwaGEgPSBt
X3NvdXJjZS5mcmFtZUhhc0FscGhhQXRJbmRleChpbmRleCk7CisgICAgbV9mcmFtZXNbaW5kZXhd
Lm1fZnJhbWVCeXRlcyA9IG1fc291cmNlLmZyYW1lQnl0ZXNBdEluZGV4KGluZGV4KTsKIAogICAg
IGNvbnN0IEludFNpemUgZnJhbWVTaXplKGluZGV4ID8gbV9zb3VyY2UuZnJhbWVTaXplQXRJbmRl
eChpbmRleCkgOiBtX3NpemUpOwogICAgIGlmIChmcmFtZVNpemUgIT0gbV9zaXplKQogICAgICAg
ICBtX2hhc1VuaWZvcm1GcmFtZVNpemUgPSBmYWxzZTsKICAgICBpZiAobV9mcmFtZXNbaW5kZXhd
Lm1fZnJhbWUpIHsKLSAgICAgICAgaW50IGRlbHRhQnl0ZXMgPSBmcmFtZUJ5dGVzKGZyYW1lU2l6
ZSk7CisgICAgICAgIGludCBkZWx0YUJ5dGVzID0gc2FmZUNhc3Q8aW50PihtX2ZyYW1lc1tpbmRl
eF0ubV9mcmFtZUJ5dGVzKTsKICAgICAgICAgbV9kZWNvZGVkU2l6ZSArPSBkZWx0YUJ5dGVzOwog
ICAgICAgICAvLyBUaGUgZnVsbHktZGVjb2RlZCBmcmFtZSB3aWxsIHN1YnN1bWUgdGhlIHBhcnRp
YWxseSBkZWNvZGVkIGRhdGEgdXNlZAogICAgICAgICAvLyB0byBkZXRlcm1pbmUgaW1hZ2UgcHJv
cGVydGllcy4KQEAgLTIzNiwxNSArMjM3LDE2IEBAIGJvb2wgQml0bWFwSW1hZ2U6OmRhdGFDaGFu
Z2VkKGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogICAgIC8vIHN0YXJ0IG9mIHRoZSBmcmFtZSBkYXRh
KSwgYW5kIGFueSBvciBub25lIG9mIHRoZW0gbWlnaHQgYmUgdGhlIHBhcnRpY3VsYXIKICAgICAv
LyBmcmFtZSBhZmZlY3RlZCBieSBhcHBlbmRpbmcgbmV3IGRhdGEgaGVyZS4gVGh1cyB3ZSBoYXZl
IHRvIGNsZWFyIGFsbCB0aGUKICAgICAvLyBpbmNvbXBsZXRlIGZyYW1lcyB0byBiZSBzYWZlLgot
ICAgIGludCBmcmFtZXNDbGVhcmVkID0gMDsKKyAgICB1bnNpZ25lZCBmcmFtZUJ5dGVzQ2xlYXJl
ZCA9IDA7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2ZyYW1lcy5zaXplKCk7ICsraSkg
ewogICAgICAgICAvLyBOT1RFOiBEb24ndCBjYWxsIGZyYW1lSXNDb21wbGV0ZUF0SW5kZXgoKSBo
ZXJlLCB0aGF0IHdpbGwgdHJ5IHRvCiAgICAgICAgIC8vIGRlY29kZSBhbnkgdW5jYWNoZWQgKGku
ZS4gbmV2ZXItZGVjb2RlZCBvcgogICAgICAgICAvLyBjbGVhcmVkLW9uLWEtcHJldmlvdXMtcGFz
cykgZnJhbWVzIQorICAgICAgICB1bnNpZ25lZCBmcmFtZUJ5dGVzID0gbV9mcmFtZXNbaV0ubV9m
cmFtZUJ5dGVzOwogICAgICAgICBpZiAobV9mcmFtZXNbaV0ubV9oYXZlTWV0YWRhdGEgJiYgIW1f
ZnJhbWVzW2ldLm1faXNDb21wbGV0ZSkKLSAgICAgICAgICAgIGZyYW1lc0NsZWFyZWQgKz0gKG1f
ZnJhbWVzW2ldLmNsZWFyKHRydWUpID8gMSA6IDApOworICAgICAgICAgICAgZnJhbWVCeXRlc0Ns
ZWFyZWQgKz0gKG1fZnJhbWVzW2ldLmNsZWFyKHRydWUpID8gZnJhbWVCeXRlcyA6IDApOwogICAg
IH0KLSAgICBkZXN0cm95TWV0YWRhdGFBbmROb3RpZnkoZnJhbWVzQ2xlYXJlZCk7CisgICAgZGVz
dHJveU1ldGFkYXRhQW5kTm90aWZ5KGZyYW1lQnl0ZXNDbGVhcmVkKTsKICAgICAKICAgICAvLyBG
ZWVkIGFsbCB0aGUgZGF0YSB3ZSd2ZSBzZWVuIHNvIGZhciB0byB0aGUgaW1hZ2UgZGVjb2Rlci4K
ICAgICBtX2FsbERhdGFSZWNlaXZlZCA9IGFsbERhdGFSZWNlaXZlZDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCmluZGV4IDA1MjEyODA0ZTJlOWFh
YWVhMTY5NmNiMmEzODg3YzhhMmJkYWJkMzMuLjYxMzJjM2I4N2Y2MDhlMGNjOTc4ODQ3ZTM1ZWZl
OTViOTM1NTQ0ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0JpdG1hcEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0
bWFwSW1hZ2UuaApAQCAtNzUsNiArNzUsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9oYXZlTWV0
YWRhdGEoZmFsc2UpCiAgICAgICAgICwgbV9pc0NvbXBsZXRlKGZhbHNlKQogICAgICAgICAsIG1f
aGFzQWxwaGEodHJ1ZSkgCisgICAgICAgICwgbV9mcmFtZUJ5dGVzKDApCiAgICAgewogICAgIH0K
IApAQCAtOTMsNiArOTQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBtX2hhdmVNZXRhZGF0YSA6IDE7
CiAgICAgYm9vbCBtX2lzQ29tcGxldGUgOiAxOwogICAgIGJvb2wgbV9oYXNBbHBoYSA6IDE7Cisg
ICAgdW5zaWduZWQgbV9mcmFtZUJ5dGVzOwogfTsKIAogLy8gPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMjM0LDggKzIzNiw4IEBAIHByb3RlY3Rl
ZDoKIAogICAgIC8vIEdlbmVyYWxseSBjYWxsZWQgYnkgZGVzdHJveURlY29kZWREYXRhKCksIGRl
c3Ryb3lzIHdob2xlLWltYWdlIG1ldGFkYXRhCiAgICAgLy8gYW5kIG5vdGlmaWVzIG9ic2VydmVy
cyB0aGF0IHRoZSBtZW1vcnkgZm9vdHByaW50IGhhcyAoaG9wZWZ1bGx5KQotICAgIC8vIGRlY3Jl
YXNlZCBieSB8ZnJhbWVzQ2xlYXJlZHwgdGltZXMgdGhlIHNpemUgKGluIGJ5dGVzKSBvZiBhIGZy
YW1lLgotICAgIHZvaWQgZGVzdHJveU1ldGFkYXRhQW5kTm90aWZ5KGludCBmcmFtZXNDbGVhcmVk
KTsKKyAgICAvLyBkZWNyZWFzZWQgYnkgfGZyYW1lQnl0ZXNDbGVhcmVkfC4KKyAgICB2b2lkIGRl
c3Ryb3lNZXRhZGF0YUFuZE5vdGlmeSh1bnNpZ25lZCBmcmFtZUJ5dGVzQ2xlYXJlZCk7CiAKICAg
ICAvLyBXaGV0aGVyIG9yIG5vdCBzaXplIGlzIGF2YWlsYWJsZSB5ZXQuICAgIAogICAgIGJvb2wg
aXNTaXplQXZhaWxhYmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZVNvdXJjZS5jcHAKaW5kZXggYzQzM2RlNDAxMmU5ODhkYzZmOTA5MTY5Nzg3NTUzMDU2
NzE1MWI2Yi4uY2EwZjk1ZDc3MjIwOGI3NzQxZjhkMjQ0MWVkMDA1MjkyNjhjNjI3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcApAQCAt
MTk4LDQgKzE5OCwxMSBAQCBib29sIEltYWdlU291cmNlOjpmcmFtZUlzQ29tcGxldGVBdEluZGV4
KHNpemVfdCBpbmRleCkKICAgICByZXR1cm4gYnVmZmVyICYmIGJ1ZmZlci0+c3RhdHVzKCkgPT0g
SW1hZ2VGcmFtZTo6RnJhbWVDb21wbGV0ZTsKIH0KIAordW5zaWduZWQgSW1hZ2VTb3VyY2U6OmZy
YW1lQnl0ZXNBdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZGVjb2Rl
cikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1fZGVjb2Rlci0+ZnJhbWVCeXRlc0F0
SW5kZXgoaW5kZXgpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VTb3VyY2UuaAppbmRleCA0MGQ3NTdmYTA5YTNjZjZlYmU2YmQwNTIxODM2N2M0M2Vl
YjcwMjk2Li43YzhiMGE3MDNlMzA3OGE4ZWRiODdiZWI2ODNhYjk0ZWRlYzlmOWIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKQEAgLTE0Niw2
ICsxNDYsMTAgQEAgcHVibGljOgogICAgIGJvb2wgZnJhbWVJc0NvbXBsZXRlQXRJbmRleChzaXpl
X3QpOyAvLyBXaGV0aGVyIG9yIG5vdCB0aGUgZnJhbWUgaXMgY29tcGxldGVseSBkZWNvZGVkLgog
ICAgIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb25BdEluZGV4KHNpemVfdCkgY29uc3Q7IC8v
IEVYSUYgaW1hZ2Ugb3JpZW50YXRpb24KIAorICAgIC8vIFJldHVybiB0aGUgbnVtYmVyIG9mIGJ5
dGVzIGluIHRoZSBkZWNvZGVkIGZyYW1lLiBJZiB0aGUgZnJhbWUgaXMgbm90IHlldAorICAgIC8v
IGRlY29kZWQgdGhlbiByZXR1cm4gMC4KKyAgICB1bnNpZ25lZCBmcmFtZUJ5dGVzQXRJbmRleChz
aXplX3QpIGNvbnN0OworCiAjaWYgRU5BQkxFKElNQUdFX0RFQ09ERVJfRE9XTl9TQU1QTElORykK
ICAgICBzdGF0aWMgdW5zaWduZWQgbWF4UGl4ZWxzUGVyRGVjb2RlZEltYWdlKCkgeyByZXR1cm4g
c19tYXhQaXhlbHNQZXJEZWNvZGVkSW1hZ2U7IH0KICAgICBzdGF0aWMgdm9pZCBzZXRNYXhQaXhl
bHNQZXJEZWNvZGVkSW1hZ2UodW5zaWduZWQgbWF4UGl4ZWxzKSB7IHNfbWF4UGl4ZWxzUGVyRGVj
b2RlZEltYWdlID0gbWF4UGl4ZWxzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwCmluZGV4IDdjZjAyOTY4ZWRjNmQ2YTgw
ZjVmMTE5ZjdlMmM1YWJkMzAzZDRjN2UuLjdiMWUzOWRlMTZlN2RhZjA1NGExNzM4ZTczMjJmYjUz
OWQ4ZjFkMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlU291cmNlQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0ltYWdlU291cmNlQ0cuY3BwCkBAIC0zODYsNiArMzg2LDEyIEBAIGJvb2wgSW1hZ2VTb3Vy
Y2U6OmZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAor
dW5zaWduZWQgSW1hZ2VTb3VyY2U6OmZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCBpbmRleCkgY29u
c3QKK3sKKyAgICBJbnRTaXplIGZyYW1lU2l6ZSA9IGZyYW1lU2l6ZUF0SW5kZXgoaW5kZXgsIFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uKTsKKyAgICByZXR1cm4gZnJhbWVTaXplLndpZHRoKCkgKiBm
cmFtZVNpemUuaGVpZ2h0KCkgKiA0OworfQorCiB9CiAKICNlbmRpZiAvLyBVU0UoQ0cpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29k
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNv
ZGVyLmNwcAppbmRleCA5OTUxMTA4MjdlNTVkNjlhOTEwOTY3ZjRhYzEzNjdiMThhMjIxN2MyLi43
NDk0N2YyNzc3Y2M4YTQxZGE5YjhmOGQ3OGZmMzk2NDY5MmJiMGFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5jcHAK
QEAgLTI4Niw2ICsyODYsMTQgQEAgYm9vbCBJbWFnZURlY29kZXI6OmZyYW1lSGFzQWxwaGFBdElu
ZGV4KHNpemVfdCBpbmRleCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordW5zaWduZWQg
SW1hZ2VEZWNvZGVyOjpmcmFtZUJ5dGVzQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0Cit7Cisg
ICAgaWYgKG1fZnJhbWVCdWZmZXJDYWNoZS5zaXplKCkgPD0gaW5kZXgpCisgICAgICAgIHJldHVy
biAwOworICAgIC8vIEZJWE1FOiBVc2UgdGhlIGRpbWVuc2lvbiBvZiB0aGUgcmVxdWVzdGVkIGZy
YW1lLgorICAgIHJldHVybiBtX3NpemUud2lkdGgoKSAqIG1fc2l6ZS5oZWlnaHQoKSAqIDQ7Cit9
CisKIHZvaWQgSW1hZ2VEZWNvZGVyOjpwcmVwYXJlU2NhbGVEYXRhSWZOZWNlc3NhcnkoKQogewog
ICAgIG1fc2NhbGVkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oCmluZGV4IGYyYWFlY2M0NzA3NjAwZmNkMGY0
NzNiZjg4ZDI2N2Q4ODE2MTdmMjYuLmU4YjJhMmUwYTdmMTkwMjMyYzA5Yzg1ZmQ1OWJhNzU3NTRj
NGYzMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L0ltYWdlRGVjb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29k
ZXJzL0ltYWdlRGVjb2Rlci5oCkBAIC0yNzksNiArMjc5LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICAvLyBNYWtlIHRoZSBiZXN0IGVmZm9ydCBndWVzcyB0byBjaGVjayBpZiB0aGUg
cmVxdWVzdGVkIGZyYW1lIGhhcyBhbHBoYSBjaGFubmVsLgogICAgICAgICB2aXJ0dWFsIGJvb2wg
ZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90KSBjb25zdDsKIAorICAgICAgICAvLyBOdW1iZXIg
b2YgYnl0ZXMgaW4gdGhlIGRlY29kZWQgZnJhbWUgcmVxdWVzdGVkLiBSZXR1cm4gMCBpZiBub3Qg
eWV0IGRlY29kZWQuCisgICAgICAgIHZpcnR1YWwgdW5zaWduZWQgZnJhbWVCeXRlc0F0SW5kZXgo
c2l6ZV90KSBjb25zdDsKKwogICAgICAgICB2b2lkIHNldElnbm9yZUdhbW1hQW5kQ29sb3JQcm9m
aWxlKGJvb2wgZmxhZykgeyBtX2lnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlID0gZmxhZzsgfQog
ICAgICAgICBib29sIGlnbm9yZXNHYW1tYUFuZENvbG9yUHJvZmlsZSgpIGNvbnN0IHsgcmV0dXJu
IG1faWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGU7IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159497</attachid>
            <date>2012-08-20 13:00:25 -0700</date>
            <delta_ts>2012-08-28 10:48:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94241-20120820125946.patch</filename>
            <type>text/plain</type>
            <size>11900</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkyOTMwMzkwNjQ4NDc3
OTU4ZGVkMmI0ZmY5NzFmMWJkZGRlYzdkNC4uOWEzOWU3MzljNDVmNWE4MDAyMTFmY2FmY2I1NGM4
YTZiNTkyZGFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTA4LTE2ICBBbHBo
YSBMYW0gIDxoY2xhbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVwb3J0IGZyYW1lIGJ5dGVz
IGJ5IHBsYXRmb3JtIEltYWdlRGVjb2RlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTQyNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBEZWNvZGVkIGZyYW1lIGJ5dGVzIHNob3VsZCBiZSByZXBvcnRlZCBi
eSB0aGUgcGxhdGZvcm0gSW1hZ2VTb3VyY2UgYW5kCisgICAgICAgIEltYWdlRGVjb2Rlci4gQml0
bWFwSW1hZ2UgdXNlZCB0byBndWVzcyBzeXN0ZW0gbWVtb3J5IHVzZWQgYnkgYSBmcmFtZQorICAg
ICAgICBidXQgdGhpcyBpcyBubyBsb25nZXIgdHJ1ZSBpZiBhIGZyYW1lIGlzIGJhY2tlZCBieSBh
biBhY2NlbGVyYXRlZAorICAgICAgICBzdXJmYWNlIG9yIGRlZmVyLWRlY29kZWQuCisKKyAgICAg
ICAgQWRkcyBJbWFnZVNvdXJjZTo6ZnJhbWVCeXRlc0F0SW5kZXggYW5kIEltYWdlRGVjb2Rlcjo6
ZnJhbWVCeXRlc0F0SW5kZXgKKyAgICAgICAgc3VjaCB0aGF0IHBsYXRmb3JtIGNhbiByZXBvcnQg
bWVtb3J5IHVzYWdlIGNvcnJlY3RseS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFJlZmFjdG9y
aW5nIHdpdGhvdXQgY2hhbmdlIG9mIGJlaGF2aW9yLgorICAgICAgICBUZXN0ZWQgb24gQ2hyb21p
dW0gcG9ydCB3aXRoIHBpeGVsIHRlc3RzIHdpdGhvdXQgYW55IGNyYXNoIG9yIGZhaWx1cmUuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZGVzdHJveURlY29kZWREYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OkJpdG1hcEltYWdlOjpkZXN0cm95RGVjb2RlZERhdGFJZk5lY2Vzc2FyeSk6CisgICAgICAg
IChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZGVzdHJveU1ldGFkYXRhQW5kTm90aWZ5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpjYWNoZUZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OkJpdG1hcEltYWdlOjpkYXRhQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRGF0YTo6RnJhbWVEYXRhKToK
KyAgICAgICAgKEZyYW1lRGF0YSk6CisgICAgICAgIChCaXRtYXBJbWFnZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1h
Z2VTb3VyY2U6OmZyYW1lQnl0ZXNBdEluZGV4KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNv
dXJjZTo6ZnJhbWVCeXRlc0F0SW5kZXgpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
cGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlRGVjb2Rlcjo6ZnJhbWVCeXRlc0F0SW5kZXgpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmg6CisgICAg
ICAgIChJbWFnZURlY29kZXIpOgorCiAyMDEyLTA4LTExICBCZW5qYW1pbiBQb3VsYWluICA8YnBv
dWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIERvIHRoZSBEZWNpbWFsTnVtYmVyIHRvIFN0cmlu
ZyBjb252ZXJzaW9uIG9uIDggYml0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuY3BwCmluZGV4IGUyODZhN2M4YmY4NjE0M2JkN2VjNjQxYmEwODVl
MTdlYzBkNjZiOTYuLjQ0MDYyOGJjNmZiNjE5NGQwZGIzMWFjM2E0MGEwMDZkMTE0MGUzMDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAK
QEAgLTM4LDExICszOCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGludCBm
cmFtZUJ5dGVzKGNvbnN0IEludFNpemUmIGZyYW1lU2l6ZSkKLXsKLSAgICByZXR1cm4gZnJhbWVT
aXplLndpZHRoKCkgKiBmcmFtZVNpemUuaGVpZ2h0KCkgKiA0OwotfQotCiBCaXRtYXBJbWFnZTo6
Qml0bWFwSW1hZ2UoSW1hZ2VPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgOiBJbWFnZShvYnNlcnZl
cikKICAgICAsIG1fY3VycmVudEZyYW1lKDApCkBAIC04NSwxNyArODAsMTggQEAgYm9vbCBCaXRt
YXBJbWFnZTo6aGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdAogCiB2b2lkIEJpdG1hcElt
YWdlOjpkZXN0cm95RGVjb2RlZERhdGEoYm9vbCBkZXN0cm95QWxsKQogewotICAgIGludCBmcmFt
ZXNDbGVhcmVkID0gMDsKKyAgICB1bnNpZ25lZCBmcmFtZUJ5dGVzQ2xlYXJlZCA9IDA7CiAgICAg
Y29uc3Qgc2l6ZV90IGNsZWFyQmVmb3JlRnJhbWUgPSBkZXN0cm95QWxsID8gbV9mcmFtZXMuc2l6
ZSgpIDogbV9jdXJyZW50RnJhbWU7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjbGVhckJl
Zm9yZUZyYW1lOyArK2kpIHsKICAgICAgICAgLy8gVGhlIHVuZGVybHlpbmcgZnJhbWUgaXNuJ3Qg
YWN0dWFsbHkgY2hhbmdpbmcgKHdlJ3JlIGp1c3QgdHJ5aW5nIHRvCiAgICAgICAgIC8vIHNhdmUg
dGhlIG1lbW9yeSBmb3IgdGhlIGZyYW1lYnVmZmVyIGRhdGEpLCBzbyB3ZSBkb24ndCBuZWVkIHRv
IGNsZWFyCiAgICAgICAgIC8vIHRoZSBtZXRhZGF0YS4KKyAgICAgICAgdW5zaWduZWQgZnJhbWVC
eXRlcyA9IG1fZnJhbWVzW2ldLm1fZnJhbWVCeXRlczsKICAgICAgICAgaWYgKG1fZnJhbWVzW2ld
LmNsZWFyKGZhbHNlKSkKLSAgICAgICAgICArK2ZyYW1lc0NsZWFyZWQ7CisgICAgICAgICAgICBm
cmFtZUJ5dGVzQ2xlYXJlZCArPSBmcmFtZUJ5dGVzOwogICAgIH0KIAotICAgIGRlc3Ryb3lNZXRh
ZGF0YUFuZE5vdGlmeShmcmFtZXNDbGVhcmVkKTsKKyAgICBkZXN0cm95TWV0YWRhdGFBbmROb3Rp
ZnkoZnJhbWVCeXRlc0NsZWFyZWQpOwogCiAgICAgbV9zb3VyY2UuY2xlYXIoZGVzdHJveUFsbCwg
Y2xlYXJCZWZvcmVGcmFtZSwgZGF0YSgpLCBtX2FsbERhdGFSZWNlaXZlZCk7CiAgICAgcmV0dXJu
OwpAQCAtMTA2LDI0ICsxMDIsMjggQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZGVzdHJveURlY29kZWRE
YXRhSWZOZWNlc3NhcnkoYm9vbCBkZXN0cm95QWxsKQogICAgIC8vIEFuaW1hdGVkIGltYWdlcyA+
NU1CIGFyZSBjb25zaWRlcmVkIGxhcmdlIGVub3VnaCB0aGF0IHdlJ2xsIG9ubHkgaGFuZyBvbgog
ICAgIC8vIHRvIG9uZSBmcmFtZSBhdCBhIHRpbWUuCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IGNMYXJnZUFuaW1hdGlvbkN1dG9mZiA9IDUyNDI4ODA7Ci0gICAgaWYgKG1fZnJhbWVzLnNpemUo
KSAqIGZyYW1lQnl0ZXMobV9zaXplKSA+IGNMYXJnZUFuaW1hdGlvbkN1dG9mZikKKyAgICB1bnNp
Z25lZCBhbGxGcmFtZUJ5dGVzID0gMDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fZnJh
bWVzLnNpemUoKTsgKytpKQorICAgICAgICBhbGxGcmFtZUJ5dGVzICs9IG1fZnJhbWVzW2ldLm1f
ZnJhbWVCeXRlczsKKworICAgIGlmIChhbGxGcmFtZUJ5dGVzID4gY0xhcmdlQW5pbWF0aW9uQ3V0
b2ZmKQogICAgICAgICBkZXN0cm95RGVjb2RlZERhdGEoZGVzdHJveUFsbCk7CiB9CiAKLXZvaWQg
Qml0bWFwSW1hZ2U6OmRlc3Ryb3lNZXRhZGF0YUFuZE5vdGlmeShpbnQgZnJhbWVzQ2xlYXJlZCkK
K3ZvaWQgQml0bWFwSW1hZ2U6OmRlc3Ryb3lNZXRhZGF0YUFuZE5vdGlmeSh1bnNpZ25lZCBmcmFt
ZUJ5dGVzQ2xlYXJlZCkKIHsKICAgICBtX2lzU29saWRDb2xvciA9IGZhbHNlOwogICAgIG1fY2hl
Y2tlZEZvclNvbGlkQ29sb3IgPSBmYWxzZTsKICAgICBpbnZhbGlkYXRlUGxhdGZvcm1EYXRhKCk7
CiAKLSAgICBpbnQgZGVsdGFCeXRlcyA9IGZyYW1lc0NsZWFyZWQgKiAtZnJhbWVCeXRlcyhtX3Np
emUpOwotICAgIG1fZGVjb2RlZFNpemUgKz0gZGVsdGFCeXRlczsKLSAgICBpZiAoZnJhbWVzQ2xl
YXJlZCA+IDApIHsKLSAgICAgICAgZGVsdGFCeXRlcyAtPSBtX2RlY29kZWRQcm9wZXJ0aWVzU2l6
ZTsKKyAgICBBU1NFUlQobV9kZWNvZGVkU2l6ZSA+PSBmcmFtZUJ5dGVzQ2xlYXJlZCk7CisgICAg
bV9kZWNvZGVkU2l6ZSAtPSBmcmFtZUJ5dGVzQ2xlYXJlZDsKKyAgICBpZiAoZnJhbWVCeXRlc0Ns
ZWFyZWQgPiAwKSB7CisgICAgICAgIGZyYW1lQnl0ZXNDbGVhcmVkICs9IG1fZGVjb2RlZFByb3Bl
cnRpZXNTaXplOwogICAgICAgICBtX2RlY29kZWRQcm9wZXJ0aWVzU2l6ZSA9IDA7CiAgICAgfQot
ICAgIGlmIChkZWx0YUJ5dGVzICYmIGltYWdlT2JzZXJ2ZXIoKSkKLSAgICAgICAgaW1hZ2VPYnNl
cnZlcigpLT5kZWNvZGVkU2l6ZUNoYW5nZWQodGhpcywgZGVsdGFCeXRlcyk7CisgICAgaWYgKGZy
YW1lQnl0ZXNDbGVhcmVkICYmIGltYWdlT2JzZXJ2ZXIoKSkKKyAgICAgICAgaW1hZ2VPYnNlcnZl
cigpLT5kZWNvZGVkU2l6ZUNoYW5nZWQodGhpcywgLXNhZmVDYXN0PGludD4oZnJhbWVCeXRlc0Ns
ZWFyZWQpKTsKIH0KIAogdm9pZCBCaXRtYXBJbWFnZTo6Y2FjaGVGcmFtZShzaXplX3QgaW5kZXgp
CkBAIC0xNDQsMTIgKzE0NCwxMyBAQCB2b2lkIEJpdG1hcEltYWdlOjpjYWNoZUZyYW1lKHNpemVf
dCBpbmRleCkKICAgICBpZiAocmVwZXRpdGlvbkNvdW50KGZhbHNlKSAhPSBjQW5pbWF0aW9uTm9u
ZSkKICAgICAgICAgbV9mcmFtZXNbaW5kZXhdLm1fZHVyYXRpb24gPSBtX3NvdXJjZS5mcmFtZUR1
cmF0aW9uQXRJbmRleChpbmRleCk7CiAgICAgbV9mcmFtZXNbaW5kZXhdLm1faGFzQWxwaGEgPSBt
X3NvdXJjZS5mcmFtZUhhc0FscGhhQXRJbmRleChpbmRleCk7CisgICAgbV9mcmFtZXNbaW5kZXhd
Lm1fZnJhbWVCeXRlcyA9IG1fc291cmNlLmZyYW1lQnl0ZXNBdEluZGV4KGluZGV4KTsKIAogICAg
IGNvbnN0IEludFNpemUgZnJhbWVTaXplKGluZGV4ID8gbV9zb3VyY2UuZnJhbWVTaXplQXRJbmRl
eChpbmRleCkgOiBtX3NpemUpOwogICAgIGlmIChmcmFtZVNpemUgIT0gbV9zaXplKQogICAgICAg
ICBtX2hhc1VuaWZvcm1GcmFtZVNpemUgPSBmYWxzZTsKICAgICBpZiAobV9mcmFtZXNbaW5kZXhd
Lm1fZnJhbWUpIHsKLSAgICAgICAgaW50IGRlbHRhQnl0ZXMgPSBmcmFtZUJ5dGVzKGZyYW1lU2l6
ZSk7CisgICAgICAgIGludCBkZWx0YUJ5dGVzID0gc2FmZUNhc3Q8aW50PihtX2ZyYW1lc1tpbmRl
eF0ubV9mcmFtZUJ5dGVzKTsKICAgICAgICAgbV9kZWNvZGVkU2l6ZSArPSBkZWx0YUJ5dGVzOwog
ICAgICAgICAvLyBUaGUgZnVsbHktZGVjb2RlZCBmcmFtZSB3aWxsIHN1YnN1bWUgdGhlIHBhcnRp
YWxseSBkZWNvZGVkIGRhdGEgdXNlZAogICAgICAgICAvLyB0byBkZXRlcm1pbmUgaW1hZ2UgcHJv
cGVydGllcy4KQEAgLTIzNiwxNSArMjM3LDE2IEBAIGJvb2wgQml0bWFwSW1hZ2U6OmRhdGFDaGFu
Z2VkKGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogICAgIC8vIHN0YXJ0IG9mIHRoZSBmcmFtZSBkYXRh
KSwgYW5kIGFueSBvciBub25lIG9mIHRoZW0gbWlnaHQgYmUgdGhlIHBhcnRpY3VsYXIKICAgICAv
LyBmcmFtZSBhZmZlY3RlZCBieSBhcHBlbmRpbmcgbmV3IGRhdGEgaGVyZS4gVGh1cyB3ZSBoYXZl
IHRvIGNsZWFyIGFsbCB0aGUKICAgICAvLyBpbmNvbXBsZXRlIGZyYW1lcyB0byBiZSBzYWZlLgot
ICAgIGludCBmcmFtZXNDbGVhcmVkID0gMDsKKyAgICB1bnNpZ25lZCBmcmFtZUJ5dGVzQ2xlYXJl
ZCA9IDA7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2ZyYW1lcy5zaXplKCk7ICsraSkg
ewogICAgICAgICAvLyBOT1RFOiBEb24ndCBjYWxsIGZyYW1lSXNDb21wbGV0ZUF0SW5kZXgoKSBo
ZXJlLCB0aGF0IHdpbGwgdHJ5IHRvCiAgICAgICAgIC8vIGRlY29kZSBhbnkgdW5jYWNoZWQgKGku
ZS4gbmV2ZXItZGVjb2RlZCBvcgogICAgICAgICAvLyBjbGVhcmVkLW9uLWEtcHJldmlvdXMtcGFz
cykgZnJhbWVzIQorICAgICAgICB1bnNpZ25lZCBmcmFtZUJ5dGVzID0gbV9mcmFtZXNbaV0ubV9m
cmFtZUJ5dGVzOwogICAgICAgICBpZiAobV9mcmFtZXNbaV0ubV9oYXZlTWV0YWRhdGEgJiYgIW1f
ZnJhbWVzW2ldLm1faXNDb21wbGV0ZSkKLSAgICAgICAgICAgIGZyYW1lc0NsZWFyZWQgKz0gKG1f
ZnJhbWVzW2ldLmNsZWFyKHRydWUpID8gMSA6IDApOworICAgICAgICAgICAgZnJhbWVCeXRlc0Ns
ZWFyZWQgKz0gKG1fZnJhbWVzW2ldLmNsZWFyKHRydWUpID8gZnJhbWVCeXRlcyA6IDApOwogICAg
IH0KLSAgICBkZXN0cm95TWV0YWRhdGFBbmROb3RpZnkoZnJhbWVzQ2xlYXJlZCk7CisgICAgZGVz
dHJveU1ldGFkYXRhQW5kTm90aWZ5KGZyYW1lQnl0ZXNDbGVhcmVkKTsKICAgICAKICAgICAvLyBG
ZWVkIGFsbCB0aGUgZGF0YSB3ZSd2ZSBzZWVuIHNvIGZhciB0byB0aGUgaW1hZ2UgZGVjb2Rlci4K
ICAgICBtX2FsbERhdGFSZWNlaXZlZCA9IGFsbERhdGFSZWNlaXZlZDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCmluZGV4IDA1MjEyODA0ZTJlOWFh
YWVhMTY5NmNiMmEzODg3YzhhMmJkYWJkMzMuLjYxMzJjM2I4N2Y2MDhlMGNjOTc4ODQ3ZTM1ZWZl
OTViOTM1NTQ0ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0JpdG1hcEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0
bWFwSW1hZ2UuaApAQCAtNzUsNiArNzUsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9oYXZlTWV0
YWRhdGEoZmFsc2UpCiAgICAgICAgICwgbV9pc0NvbXBsZXRlKGZhbHNlKQogICAgICAgICAsIG1f
aGFzQWxwaGEodHJ1ZSkgCisgICAgICAgICwgbV9mcmFtZUJ5dGVzKDApCiAgICAgewogICAgIH0K
IApAQCAtOTMsNiArOTQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBtX2hhdmVNZXRhZGF0YSA6IDE7
CiAgICAgYm9vbCBtX2lzQ29tcGxldGUgOiAxOwogICAgIGJvb2wgbV9oYXNBbHBoYSA6IDE7Cisg
ICAgdW5zaWduZWQgbV9mcmFtZUJ5dGVzOwogfTsKIAogLy8gPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMjM0LDggKzIzNiw4IEBAIHByb3RlY3Rl
ZDoKIAogICAgIC8vIEdlbmVyYWxseSBjYWxsZWQgYnkgZGVzdHJveURlY29kZWREYXRhKCksIGRl
c3Ryb3lzIHdob2xlLWltYWdlIG1ldGFkYXRhCiAgICAgLy8gYW5kIG5vdGlmaWVzIG9ic2VydmVy
cyB0aGF0IHRoZSBtZW1vcnkgZm9vdHByaW50IGhhcyAoaG9wZWZ1bGx5KQotICAgIC8vIGRlY3Jl
YXNlZCBieSB8ZnJhbWVzQ2xlYXJlZHwgdGltZXMgdGhlIHNpemUgKGluIGJ5dGVzKSBvZiBhIGZy
YW1lLgotICAgIHZvaWQgZGVzdHJveU1ldGFkYXRhQW5kTm90aWZ5KGludCBmcmFtZXNDbGVhcmVk
KTsKKyAgICAvLyBkZWNyZWFzZWQgYnkgfGZyYW1lQnl0ZXNDbGVhcmVkfC4KKyAgICB2b2lkIGRl
c3Ryb3lNZXRhZGF0YUFuZE5vdGlmeSh1bnNpZ25lZCBmcmFtZUJ5dGVzQ2xlYXJlZCk7CiAKICAg
ICAvLyBXaGV0aGVyIG9yIG5vdCBzaXplIGlzIGF2YWlsYWJsZSB5ZXQuICAgIAogICAgIGJvb2wg
aXNTaXplQXZhaWxhYmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZVNvdXJjZS5jcHAKaW5kZXggYzQzM2RlNDAxMmU5ODhkYzZmOTA5MTY5Nzg3NTUzMDU2
NzE1MWI2Yi4uY2EwZjk1ZDc3MjIwOGI3NzQxZjhkMjQ0MWVkMDA1MjkyNjhjNjI3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcApAQCAt
MTk4LDQgKzE5OCwxMSBAQCBib29sIEltYWdlU291cmNlOjpmcmFtZUlzQ29tcGxldGVBdEluZGV4
KHNpemVfdCBpbmRleCkKICAgICByZXR1cm4gYnVmZmVyICYmIGJ1ZmZlci0+c3RhdHVzKCkgPT0g
SW1hZ2VGcmFtZTo6RnJhbWVDb21wbGV0ZTsKIH0KIAordW5zaWduZWQgSW1hZ2VTb3VyY2U6OmZy
YW1lQnl0ZXNBdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZGVjb2Rl
cikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1fZGVjb2Rlci0+ZnJhbWVCeXRlc0F0
SW5kZXgoaW5kZXgpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VTb3VyY2UuaAppbmRleCA0MGQ3NTdmYTA5YTNjZjZlYmU2YmQwNTIxODM2N2M0M2Vl
YjcwMjk2Li43YzhiMGE3MDNlMzA3OGE4ZWRiODdiZWI2ODNhYjk0ZWRlYzlmOWIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKQEAgLTE0Niw2
ICsxNDYsMTAgQEAgcHVibGljOgogICAgIGJvb2wgZnJhbWVJc0NvbXBsZXRlQXRJbmRleChzaXpl
X3QpOyAvLyBXaGV0aGVyIG9yIG5vdCB0aGUgZnJhbWUgaXMgY29tcGxldGVseSBkZWNvZGVkLgog
ICAgIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb25BdEluZGV4KHNpemVfdCkgY29uc3Q7IC8v
IEVYSUYgaW1hZ2Ugb3JpZW50YXRpb24KIAorICAgIC8vIFJldHVybiB0aGUgbnVtYmVyIG9mIGJ5
dGVzIGluIHRoZSBkZWNvZGVkIGZyYW1lLiBJZiB0aGUgZnJhbWUgaXMgbm90IHlldAorICAgIC8v
IGRlY29kZWQgdGhlbiByZXR1cm4gMC4KKyAgICB1bnNpZ25lZCBmcmFtZUJ5dGVzQXRJbmRleChz
aXplX3QpIGNvbnN0OworCiAjaWYgRU5BQkxFKElNQUdFX0RFQ09ERVJfRE9XTl9TQU1QTElORykK
ICAgICBzdGF0aWMgdW5zaWduZWQgbWF4UGl4ZWxzUGVyRGVjb2RlZEltYWdlKCkgeyByZXR1cm4g
c19tYXhQaXhlbHNQZXJEZWNvZGVkSW1hZ2U7IH0KICAgICBzdGF0aWMgdm9pZCBzZXRNYXhQaXhl
bHNQZXJEZWNvZGVkSW1hZ2UodW5zaWduZWQgbWF4UGl4ZWxzKSB7IHNfbWF4UGl4ZWxzUGVyRGVj
b2RlZEltYWdlID0gbWF4UGl4ZWxzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwCmluZGV4IDdjZjAyOTY4ZWRjNmQ2YTgw
ZjVmMTE5ZjdlMmM1YWJkMzAzZDRjN2UuLjdiMWUzOWRlMTZlN2RhZjA1NGExNzM4ZTczMjJmYjUz
OWQ4ZjFkMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlU291cmNlQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0ltYWdlU291cmNlQ0cuY3BwCkBAIC0zODYsNiArMzg2LDEyIEBAIGJvb2wgSW1hZ2VTb3Vy
Y2U6OmZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAor
dW5zaWduZWQgSW1hZ2VTb3VyY2U6OmZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCBpbmRleCkgY29u
c3QKK3sKKyAgICBJbnRTaXplIGZyYW1lU2l6ZSA9IGZyYW1lU2l6ZUF0SW5kZXgoaW5kZXgsIFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uKTsKKyAgICByZXR1cm4gZnJhbWVTaXplLndpZHRoKCkgKiBm
cmFtZVNpemUuaGVpZ2h0KCkgKiA0OworfQorCiB9CiAKICNlbmRpZiAvLyBVU0UoQ0cpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29k
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNv
ZGVyLmNwcAppbmRleCA5OTUxMTA4MjdlNTVkNjlhOTEwOTY3ZjRhYzEzNjdiMThhMjIxN2MyLi4x
ZWUwM2VmYzZjMWE1NmRiMjQ4NmMxNmQzMDg3YzZhMTk3ZWZjYTA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5jcHAK
QEAgLTI4Niw2ICsyODYsMTQgQEAgYm9vbCBJbWFnZURlY29kZXI6OmZyYW1lSGFzQWxwaGFBdElu
ZGV4KHNpemVfdCBpbmRleCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordW5zaWduZWQg
SW1hZ2VEZWNvZGVyOjpmcmFtZUJ5dGVzQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0Cit7Cisg
ICAgaWYgKG1fZnJhbWVCdWZmZXJDYWNoZS5zaXplKCkgPD0gaW5kZXgpCisgICAgICAgIHJldHVy
biAwOworICAgIC8vIEZJWE1FOiBVc2UgdGhlIGRpbWVuc2lvbiBvZiB0aGUgcmVxdWVzdGVkIGZy
YW1lLgorICAgIHJldHVybiBtX3NpemUuYXJlYSgpICogc2l6ZW9mKEltYWdlRnJhbWU6OlBpeGVs
RGF0YSk7Cit9CisKIHZvaWQgSW1hZ2VEZWNvZGVyOjpwcmVwYXJlU2NhbGVEYXRhSWZOZWNlc3Nh
cnkoKQogewogICAgIG1fc2NhbGVkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oCmluZGV4IGYyYWFlY2M0NzA3
NjAwZmNkMGY0NzNiZjg4ZDI2N2Q4ODE2MTdmMjYuLmU4YjJhMmUwYTdmMTkwMjMyYzA5Yzg1ZmQ1
OWJhNzU3NTRjNGYzMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdl
LWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lt
YWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oCkBAIC0yNzksNiArMjc5LDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICAvLyBNYWtlIHRoZSBiZXN0IGVmZm9ydCBndWVzcyB0byBjaGVj
ayBpZiB0aGUgcmVxdWVzdGVkIGZyYW1lIGhhcyBhbHBoYSBjaGFubmVsLgogICAgICAgICB2aXJ0
dWFsIGJvb2wgZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90KSBjb25zdDsKIAorICAgICAgICAv
LyBOdW1iZXIgb2YgYnl0ZXMgaW4gdGhlIGRlY29kZWQgZnJhbWUgcmVxdWVzdGVkLiBSZXR1cm4g
MCBpZiBub3QgeWV0IGRlY29kZWQuCisgICAgICAgIHZpcnR1YWwgdW5zaWduZWQgZnJhbWVCeXRl
c0F0SW5kZXgoc2l6ZV90KSBjb25zdDsKKwogICAgICAgICB2b2lkIHNldElnbm9yZUdhbW1hQW5k
Q29sb3JQcm9maWxlKGJvb2wgZmxhZykgeyBtX2lnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlID0g
ZmxhZzsgfQogICAgICAgICBib29sIGlnbm9yZXNHYW1tYUFuZENvbG9yUHJvZmlsZSgpIGNvbnN0
IHsgcmV0dXJuIG1faWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGU7IH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>