<?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>94990</bug_id>
          
          <creation_ts>2012-08-24 17:53:48 -0700</creation_ts>
          <short_desc>Share immutable ElementAttributeData between elements with identical attributes.</short_desc>
          <delta_ts>2012-09-04 05:34:10 -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>DOM</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>704578</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-08-24 17:53:48 -0700</bug_when>
    <thetext>&lt;rdar://12141736&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704617</commentid>
    <comment_count>1</comment_count>
      <attachid>160542</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-08-24 18:54:51 -0700</bug_when>
    <thetext>Created attachment 160542
Love letter to EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704623</commentid>
    <comment_count>2</comment_count>
      <attachid>160542</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-24 19:18:41 -0700</bug_when>
    <thetext>Comment on attachment 160542
Love letter to EWS

Attachment 160542 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13574935</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704624</commentid>
    <comment_count>3</comment_count>
      <attachid>160542</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-08-24 19:21:22 -0700</bug_when>
    <thetext>Comment on attachment 160542
Love letter to EWS

Attachment 160542 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13591469</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704630</commentid>
    <comment_count>4</comment_count>
      <attachid>160545</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-08-24 19:46:38 -0700</bug_when>
    <thetext>Created attachment 160545
Love letter to EWS + cheesy GCC buildfix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710695</commentid>
    <comment_count>5</comment_count>
      <attachid>161939</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-09-03 09:42:55 -0700</bug_when>
    <thetext>Created attachment 161939
Patch!!11</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710724</commentid>
    <comment_count>6</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-09-03 11:21:11 -0700</bug_when>
    <thetext>I should note that there are a number of follow-up optimizations enabled by this, such as avoiding parsing the same style/class attributes more than once.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710748</commentid>
    <comment_count>7</comment_count>
      <attachid>161939</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-09-03 13:54:18 -0700</bug_when>
    <thetext>Comment on attachment 161939
Patch!!11

View in context: https://bugs.webkit.org/attachment.cgi?id=161939&amp;action=review

Nice. r=me

&gt; Source/WebCore/dom/Document.cpp:6178
&gt; +class ImmutableAttributeDataCacheKey {

Document is super bloaty. Would be nice to factor this a separate file/class.

&gt; Source/WebCore/dom/Document.cpp:6192
&gt; +    bool operator!=(ImmutableAttributeDataCacheKey&amp; other) const

const

&gt; Source/WebCore/dom/Document.cpp:6235
&gt; +    if (!cacheHash || cacheIterator-&gt;second)

The logic here is bit strange. I suspect it could be written in a nicer way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710791</commentid>
    <comment_count>8</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-09-03 19:19:19 -0700</bug_when>
    <thetext>Committed r127438: &lt;http://trac.webkit.org/changeset/127438&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711017</commentid>
    <comment_count>9</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-09-04 05:34:10 -0700</bug_when>
    <thetext>Perf-o-matic results are in, looks like a 3.6% improvement on Parser/html5-full-render:malloc

http://webkit-perf.appspot.com/graph.html#tests=[[6268923,2001,963028]]&amp;sel=none&amp;displayrange=7&amp;datatype=running

Booyakasha!

@Antti: I agree that it can be factored better, I&apos;ll improve upon this in coming patches.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160542</attachid>
            <date>2012-08-24 18:54:51 -0700</date>
            <delta_ts>2012-08-24 19:46:38 -0700</delta_ts>
            <desc>Love letter to EWS</desc>
            <filename>for-ews-94990.diff</filename>
            <type>text/plain</type>
            <size>9747</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGI0OTVlMjIuLmI0NTg1Y2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcApAQCAtNDg3NCw2ICs0ODc0LDEwIEBAIHZvaWQgRG9jdW1lbnQ6OmZpbmlz
aGVkUGFyc2luZygpCiAKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkb21Db250
ZW50TG9hZGVkRXZlbnRGaXJlZChmLmdldCgpKTsKICAgICB9CisKKyAgICAvLyBUaGUgRWxlbWVu
dEF0dHJpYnV0ZURhdGEgc2hhcmluZyBjYWNoZSBpcyBvbmx5IHVzZWQgZHVyaW5nIHBhcnNpbmcg
c2luY2UKKyAgICAvLyB0aGF0J3Mgd2hlbiB0aGUgbWFqb3JpdHkgb2YgaW1tdXRhYmxlIGF0dHJp
YnV0ZSBkYXRhIHdpbGwgYmUgY3JlYXRlZC4KKyAgICBtX2ltbXV0YWJsZUF0dHJpYnV0ZURhdGFD
YWNoZS5jbGVhcigpOwogfQogCiBQYXNzUmVmUHRyPFhQYXRoRXhwcmVzc2lvbj4gRG9jdW1lbnQ6
OmNyZWF0ZUV4cHJlc3Npb24oY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLApAQCAtNjE2MCw0ICs2
MTY0LDczIEBAIFBhc3NSZWZQdHI8VW5kb01hbmFnZXI+IERvY3VtZW50Ojp1bmRvTWFuYWdlcigp
CiB9CiAjZW5kaWYKIAorY2xhc3MgSW1tdXRhYmxlQXR0cmlidXRlRGF0YUNhY2hlS2V5IHsKK3B1
YmxpYzoKKyAgICBJbW11dGFibGVBdHRyaWJ1dGVEYXRhQ2FjaGVLZXkoKQorICAgICAgICA6IG1f
bG9jYWxOYW1lKDApCisgICAgICAgICwgbV9hdHRyaWJ1dGVzKDApCisgICAgICAgICwgbV9hdHRy
aWJ1dGVDb3VudCgwKQorICAgIHsgfQorCisgICAgSW1tdXRhYmxlQXR0cmlidXRlRGF0YUNhY2hl
S2V5KGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lLCBjb25zdCBBdHRyaWJ1dGUqIGF0dHJp
YnV0ZXMsIHVuc2lnbmVkIGF0dHJpYnV0ZUNvdW50KQorICAgICAgICA6IG1fbG9jYWxOYW1lKGxv
Y2FsTmFtZS5pbXBsKCkpCisgICAgICAgICwgbV9hdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpCisgICAg
ICAgICwgbV9hdHRyaWJ1dGVDb3VudChhdHRyaWJ1dGVDb3VudCkKKyAgICB7IH0KKworICAgIGJv
b2wgb3BlcmF0b3IhPShJbW11dGFibGVBdHRyaWJ1dGVEYXRhQ2FjaGVLZXkmIG90aGVyKSBjb25z
dAorICAgIHsKKyAgICAgICAgaWYgKG1fbG9jYWxOYW1lICE9IG90aGVyLm1fbG9jYWxOYW1lKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChtX2F0dHJpYnV0ZUNvdW50ICE9
IG90aGVyLm1fYXR0cmlidXRlQ291bnQpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgcmV0dXJuIG1lbWNtcChtX2F0dHJpYnV0ZXMsIG90aGVyLm1fYXR0cmlidXRlcywgc2l6ZW9m
KEF0dHJpYnV0ZSkgKiBtX2F0dHJpYnV0ZUNvdW50KTsKKyAgICB9CisKKyAgICB1bnNpZ25lZCBo
YXNoKCkgY29uc3QKKyAgICB7CisgICAgICAgIHVuc2lnbmVkIGF0dHJpYnV0ZUhhc2ggPSBTdHJp
bmdIYXNoZXI6Omhhc2hNZW1vcnkobV9hdHRyaWJ1dGVzLCBtX2F0dHJpYnV0ZUNvdW50ICogc2l6
ZW9mKEF0dHJpYnV0ZSkpOworICAgICAgICByZXR1cm4gV1RGOjppbnRIYXNoKChzdGF0aWNfY2Fz
dDx1aW50NjRfdD4obV9sb2NhbE5hbWUtPmV4aXN0aW5nSGFzaCgpKSA8PCAzMiB8IGF0dHJpYnV0
ZUhhc2gpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQXRvbWljU3RyaW5nSW1wbCogbV9sb2Nh
bE5hbWU7CisgICAgY29uc3QgQXR0cmlidXRlKiBtX2F0dHJpYnV0ZXM7CisgICAgdW5zaWduZWQg
bV9hdHRyaWJ1dGVDb3VudDsKK307CisKK3N0cnVjdCBJbW11dGFibGVBdHRyaWJ1dGVEYXRhQ2Fj
aGVFbnRyeSB7CisgICAgSW1tdXRhYmxlQXR0cmlidXRlRGF0YUNhY2hlS2V5IGtleTsKKyAgICBS
ZWZQdHI8RWxlbWVudEF0dHJpYnV0ZURhdGE+IHZhbHVlOworfTsKKworUGFzc1JlZlB0cjxFbGVt
ZW50QXR0cmlidXRlRGF0YT4gRG9jdW1lbnQ6OmNhY2hlZEltbXV0YWJsZUF0dHJpYnV0ZURhdGEo
Y29uc3QgRWxlbWVudCogZWxlbWVudCwgY29uc3QgVmVjdG9yPEF0dHJpYnV0ZT4mIGF0dHJpYnV0
ZXMpCit7CisgICAgQVNTRVJUKCFhdHRyaWJ1dGVzLmlzRW1wdHkoKSk7CisKKyAgICBJbW11dGFi
bGVBdHRyaWJ1dGVEYXRhQ2FjaGVLZXkgY2FjaGVLZXkoZWxlbWVudC0+bG9jYWxOYW1lKCksIGF0
dHJpYnV0ZXMuZGF0YSgpLCBhdHRyaWJ1dGVzLnNpemUoKSk7CisgICAgdW5zaWduZWQgY2FjaGVI
YXNoID0gY2FjaGVLZXkuaGFzaCgpOworCisgICAgSW1tdXRhYmxlQXR0cmlidXRlRGF0YUNhY2hl
OjppdGVyYXRvciBjYWNoZUl0ZXJhdG9yID0gbV9pbW11dGFibGVBdHRyaWJ1dGVEYXRhQ2FjaGUu
YWRkKGNhY2hlSGFzaCwgbnVsbHB0cikuaXRlcmF0b3I7CisgICAgaWYgKGNhY2hlSXRlcmF0b3It
PnNlY29uZCAmJiBjYWNoZUl0ZXJhdG9yLT5zZWNvbmQtPmtleSAhPSBjYWNoZUtleSkKKyAgICAg
ICAgY2FjaGVIYXNoID0gMDsKKworICAgIFJlZlB0cjxFbGVtZW50QXR0cmlidXRlRGF0YT4gYXR0
cmlidXRlRGF0YTsKKyAgICBpZiAoY2FjaGVIYXNoICYmIGNhY2hlSXRlcmF0b3ItPnNlY29uZCkK
KyAgICAgICAgYXR0cmlidXRlRGF0YSA9IGNhY2hlSXRlcmF0b3ItPnNlY29uZC0+dmFsdWU7Cisg
ICAgZWxzZQorICAgICAgICBhdHRyaWJ1dGVEYXRhID0gRWxlbWVudEF0dHJpYnV0ZURhdGE6OmNy
ZWF0ZUltbXV0YWJsZShhdHRyaWJ1dGVzKTsKKworICAgIGlmICghY2FjaGVIYXNoIHx8IGNhY2hl
SXRlcmF0b3ItPnNlY29uZCkKKyAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZURhdGEucmVsZWFzZSgp
OworCisgICAgT3duUHRyPEltbXV0YWJsZUF0dHJpYnV0ZURhdGFDYWNoZUVudHJ5PiBuZXdFbnRy
eSA9IGFkb3B0UHRyKG5ldyBJbW11dGFibGVBdHRyaWJ1dGVEYXRhQ2FjaGVFbnRyeSk7CisgICAg
bmV3RW50cnktPmtleSA9IEltbXV0YWJsZUF0dHJpYnV0ZURhdGFDYWNoZUtleShlbGVtZW50LT5s
b2NhbE5hbWUoKSwgY29uc3RfY2FzdDxjb25zdCBFbGVtZW50QXR0cmlidXRlRGF0YSo+KGF0dHJp
YnV0ZURhdGEuZ2V0KCkpLT5hdHRyaWJ1dGVJdGVtKDApLCBhdHRyaWJ1dGVEYXRhLT5sZW5ndGgo
KSk7CisgICAgbmV3RW50cnktPnZhbHVlID0gYXR0cmlidXRlRGF0YTsKKworICAgIGNhY2hlSXRl
cmF0b3ItPnNlY29uZCA9IG5ld0VudHJ5LnJlbGVhc2UoKTsKKworICAgIHJldHVybiBhdHRyaWJ1
dGVEYXRhLnJlbGVhc2UoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaAppbmRleCBhMDQxOWFhLi40MTQ3NWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAt
ODIsNiArODIsNyBAQCBjbGFzcyBEb2N1bWVudFdlYWtSZWZlcmVuY2U7CiBjbGFzcyBEeW5hbWlj
Tm9kZUxpc3RDYWNoZUJhc2U7CiBjbGFzcyBFZGl0aW5nVGV4dDsKIGNsYXNzIEVsZW1lbnQ7Citj
bGFzcyBFbGVtZW50QXR0cmlidXRlRGF0YTsKIGNsYXNzIEVudGl0eVJlZmVyZW5jZTsKIGNsYXNz
IEV2ZW50OwogY2xhc3MgRXZlbnRMaXN0ZW5lcjsKQEAgLTIwNSw2ICsyMDYsOSBAQCBlbnVtIE5v
ZGVMaXN0SW52YWxpZGF0aW9uVHlwZSB7CiB9OwogY29uc3QgaW50IG51bU5vZGVMaXN0SW52YWxp
ZGF0aW9uVHlwZXMgPSBJbnZhbGlkYXRlT25BbnlBdHRyQ2hhbmdlICsgMTsKIAorc3RydWN0IElt
bXV0YWJsZUF0dHJpYnV0ZURhdGFDYWNoZUVudHJ5OwordHlwZWRlZiBIYXNoTWFwPHVuc2lnbmVk
LCBPd25QdHI8SW1tdXRhYmxlQXR0cmlidXRlRGF0YUNhY2hlRW50cnk+LCBBbHJlYWR5SGFzaGVk
PiBJbW11dGFibGVBdHRyaWJ1dGVEYXRhQ2FjaGU7CisKIGNsYXNzIERvY3VtZW50IDogcHVibGlj
IENvbnRhaW5lck5vZGUsIHB1YmxpYyBUcmVlU2NvcGUsIHB1YmxpYyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudD4gY3JlYXRl
KEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsKQpAQCAtMTE4MSw2ICsxMTg1LDggQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qKSBjb25zdCBPVkVSUklERTsKIAorICAgIFBhc3NSZWZQdHI8RWxlbWVudEF0dHJpYnV0ZURh
dGE+IGNhY2hlZEltbXV0YWJsZUF0dHJpYnV0ZURhdGEoY29uc3QgRWxlbWVudCosIGNvbnN0IFZl
Y3RvcjxBdHRyaWJ1dGU+Jik7CisKIHByb3RlY3RlZDoKICAgICBEb2N1bWVudChGcmFtZSosIGNv
bnN0IEtVUkwmLCBib29sIGlzWEhUTUwsIGJvb2wgaXNIVE1MKTsKIApAQCAtMTU2Niw2ICsxNTcy
LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8RE9NU2VjdXJpdHlQb2xpY3k+IG1fZG9tU2VjdXJp
dHlQb2xpY3k7CiAjZW5kaWYKIAorICAgIEltbXV0YWJsZUF0dHJpYnV0ZURhdGFDYWNoZSBtX2lt
bXV0YWJsZUF0dHJpYnV0ZURhdGFDYWNoZTsKKwogI2lmbmRlZiBOREVCVUcKICAgICBib29sIG1f
ZGlkRGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNDaGFuZ2VkOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKaW5kZXggMDRiYzIwYi4uOTRhODJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApA
QCAtODIzLDcgKzgyMywxNSBAQCB2b2lkIEVsZW1lbnQ6OnBhcnNlclNldEF0dHJpYnV0ZXMoY29u
c3QgVmVjdG9yPEF0dHJpYnV0ZT4mIGF0dHJpYnV0ZVZlY3RvciwgRnJhZwogICAgICAgICB9CiAg
ICAgfQogCi0gICAgbV9hdHRyaWJ1dGVEYXRhID0gRWxlbWVudEF0dHJpYnV0ZURhdGE6OmNyZWF0
ZUltbXV0YWJsZShmaWx0ZXJlZEF0dHJpYnV0ZXMpOworICAgIC8vIFdoZW4gdGhlIGRvY3VtZW50
IGlzIGluIHBhcnNpbmcgc3RhdGUsIHdlIGNhY2hlIGltbXV0YWJsZSBFbGVtZW50QXR0cmlidXRl
RGF0YSBvYmplY3RzIHdpdGggdGhlCisgICAgLy8gaW5wdXQgYXR0cmlidXRlIHZlY3RvciBhcyBr
ZXkuIChUaGlzIGNhY2hlIGlzIGhlbGQgYnkgRG9jdW1lbnQuKQorICAgIGlmICghZG9jdW1lbnQo
KSB8fCAhZG9jdW1lbnQoKS0+cGFyc2luZygpKQorICAgICAgICBtX2F0dHJpYnV0ZURhdGEgPSBF
bGVtZW50QXR0cmlidXRlRGF0YTo6Y3JlYXRlSW1tdXRhYmxlKGZpbHRlcmVkQXR0cmlidXRlcyk7
CisgICAgZWxzZSBpZiAoIWlzSFRNTEVsZW1lbnQoKSkgeworICAgICAgICAvLyBGSVhNRTogU3Vw
cG9ydCBhdHRyaWJ1dGUgZGF0YSBzaGFyaW5nIGZvciBub24tSFRNTCBlbGVtZW50cy4KKyAgICAg
ICAgbV9hdHRyaWJ1dGVEYXRhID0gRWxlbWVudEF0dHJpYnV0ZURhdGE6OmNyZWF0ZUltbXV0YWJs
ZShmaWx0ZXJlZEF0dHJpYnV0ZXMpOworICAgIH0gZWxzZQorICAgICAgICBtX2F0dHJpYnV0ZURh
dGEgPSBkb2N1bWVudCgpLT5jYWNoZWRJbW11dGFibGVBdHRyaWJ1dGVEYXRhKHRoaXMsIGZpbHRl
cmVkQXR0cmlidXRlcyk7CiAKICAgICAvLyBJdGVyYXRlIG92ZXIgdGhlIHNldCBvZiBhdHRyaWJ1
dGVzIHdlIGFscmVhZHkgaGF2ZSBvbiB0aGUgc3RhY2sgaW4gY2FzZQogICAgIC8vIGF0dHJpYnV0
ZUNoYW5nZWQgbXV0YXRlcyBtX2F0dHJpYnV0ZURhdGEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCBm
NzkyMjdlLi5mZTUyMGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTUxOSw3ICs1MTksNyBAQCBw
cml2YXRlOgogICAgIEVsZW1lbnRSYXJlRGF0YSogZWxlbWVudFJhcmVEYXRhKCkgY29uc3Q7CiAg
ICAgRWxlbWVudFJhcmVEYXRhKiBlbnN1cmVFbGVtZW50UmFyZURhdGEoKTsKIAotICAgIE93blB0
cjxFbGVtZW50QXR0cmlidXRlRGF0YT4gbV9hdHRyaWJ1dGVEYXRhOworICAgIFJlZlB0cjxFbGVt
ZW50QXR0cmlidXRlRGF0YT4gbV9hdHRyaWJ1dGVEYXRhOwogfTsKICAgICAKIGlubGluZSBFbGVt
ZW50KiB0b0VsZW1lbnQoTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50QXR0cmlidXRlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0
dHJpYnV0ZURhdGEuY3BwCmluZGV4IDQ3MWU1MTkuLmU3MDM5NDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmNwcApAQCAtMzksMTAgKzM5LDEwIEBAIHN0YXRp
YyBzaXplX3QgaW1tdXRhYmxlRWxlbWVudEF0dHJpYnV0ZURhdGFTaXplKHVuc2lnbmVkIGNvdW50
KQogICAgIHJldHVybiBzaXplb2YoRWxlbWVudEF0dHJpYnV0ZURhdGEpIC0gc2l6ZW9mKHZvaWQq
KSArIHNpemVvZihBdHRyaWJ1dGUpICogY291bnQ7CiB9CiAKLVBhc3NPd25QdHI8RWxlbWVudEF0
dHJpYnV0ZURhdGE+IEVsZW1lbnRBdHRyaWJ1dGVEYXRhOjpjcmVhdGVJbW11dGFibGUoY29uc3Qg
VmVjdG9yPEF0dHJpYnV0ZT4mIGF0dHJpYnV0ZXMpCitQYXNzUmVmUHRyPEVsZW1lbnRBdHRyaWJ1
dGVEYXRhPiBFbGVtZW50QXR0cmlidXRlRGF0YTo6Y3JlYXRlSW1tdXRhYmxlKGNvbnN0IFZlY3Rv
cjxBdHRyaWJ1dGU+JiBhdHRyaWJ1dGVzKQogewogICAgIHZvaWQqIHNsb3QgPSBXVEY6OmZhc3RN
YWxsb2MoaW1tdXRhYmxlRWxlbWVudEF0dHJpYnV0ZURhdGFTaXplKGF0dHJpYnV0ZXMuc2l6ZSgp
KSk7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyAoc2xvdCkgRWxlbWVudEF0dHJpYnV0ZURhdGEo
YXR0cmlidXRlcykpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgKHNsb3QpIEVsZW1lbnRBdHRy
aWJ1dGVEYXRhKGF0dHJpYnV0ZXMpKTsKIH0KIAogRWxlbWVudEF0dHJpYnV0ZURhdGE6OkVsZW1l
bnRBdHRyaWJ1dGVEYXRhKCkKQEAgLTYyLDggKzYyLDcgQEAgRWxlbWVudEF0dHJpYnV0ZURhdGE6
OkVsZW1lbnRBdHRyaWJ1dGVEYXRhKGNvbnN0IFZlY3RvcjxBdHRyaWJ1dGU+JiBhdHRyaWJ1dGVz
KQogfQogCiBFbGVtZW50QXR0cmlidXRlRGF0YTo6RWxlbWVudEF0dHJpYnV0ZURhdGEoY29uc3Qg
RWxlbWVudEF0dHJpYnV0ZURhdGEmIG90aGVyKQotICAgIDogbV9pbmxpbmVTdHlsZURlY2wob3Ro
ZXIubV9pbmxpbmVTdHlsZURlY2wpCi0gICAgLCBtX2F0dHJpYnV0ZVN0eWxlKG90aGVyLm1fYXR0
cmlidXRlU3R5bGUpCisgICAgOiBtX2F0dHJpYnV0ZVN0eWxlKG90aGVyLm1fYXR0cmlidXRlU3R5
bGUpCiAgICAgLCBtX2NsYXNzTmFtZXMob3RoZXIubV9jbGFzc05hbWVzKQogICAgICwgbV9pZEZv
clN0eWxlUmVzb2x1dGlvbihvdGhlci5tX2lkRm9yU3R5bGVSZXNvbHV0aW9uKQogICAgICwgbV9p
c011dGFibGUodHJ1ZSkKQEAgLTczLDYgKzcyLDEwIEBAIEVsZW1lbnRBdHRyaWJ1dGVEYXRhOjpF
bGVtZW50QXR0cmlidXRlRGF0YShjb25zdCBFbGVtZW50QXR0cmlidXRlRGF0YSYgb3RoZXIpCiAg
ICAgLy8gVGhpcyBjb3B5IGNvbnN0cnVjdG9yIHNob3VsZCBvbmx5IGJlIHVzZWQgYnkgbWFrZU11
dGFibGUoKSB0byBnbyBmcm9tIGltbXV0YWJsZSB0byBtdXRhYmxlLgogICAgIEFTU0VSVCghb3Ro
ZXIubV9pc011dGFibGUpOwogCisgICAgLy8gQW4gaW1tdXRhYmxlIEVsZW1lbnRBdHRyaWJ1dGVE
YXRhIHNob3VsZCBuZXZlciBoYXZlIGEgbXV0YWJsZSBpbmxpbmUgU3R5bGVQcm9wZXJ0eVNldCBh
dHRhY2hlZC4KKyAgICBBU1NFUlQoIW90aGVyLm1faW5saW5lU3R5bGVEZWNsIHx8ICFvdGhlci5t
X2lubGluZVN0eWxlRGVjbC0+aXNNdXRhYmxlKCkpOworICAgIG1faW5saW5lU3R5bGVEZWNsID0g
b3RoZXIubV9pbmxpbmVTdHlsZURlY2w7CisKICAgICBjb25zdCBBdHRyaWJ1dGUqIG90aGVyQnVm
ZmVyID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBBdHRyaWJ1dGUqPigmb3RoZXIubV9hdHRyaWJ1
dGVzKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgb3RoZXIubV9hcnJheVNpemU7ICsr
aSkKICAgICAgICAgbV9tdXRhYmxlQXR0cmlidXRlVmVjdG9yLT5hcHBlbmQob3RoZXJCdWZmZXJb
aV0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRh
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuaAppbmRleCBiOTZi
OTViLi4wZTM4NjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJp
YnV0ZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJpYnV0ZURhdGEu
aApAQCAtMzksMTEgKzM5LDExIEBAIGNsYXNzIE1lbW9yeU9iamVjdEluZm87CiAKIGVudW0gU3lu
Y2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlIHsgTm90SW5TeW5jaHJvbml6YXRpb25PZkxhenlB
dHRyaWJ1dGUsIEluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlIH07CiAKLWNsYXNzIEVs
ZW1lbnRBdHRyaWJ1dGVEYXRhIHsKK2NsYXNzIEVsZW1lbnRBdHRyaWJ1dGVEYXRhIDogcHVibGlj
IFJlZkNvdW50ZWQ8RWxlbWVudEF0dHJpYnV0ZURhdGE+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxFbGVtZW50QXR0cmlidXRl
RGF0YT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRQdHIobmV3IEVsZW1lbnRBdHRyaWJ1dGVEYXRh
KTsgfQotICAgIHN0YXRpYyBQYXNzT3duUHRyPEVsZW1lbnRBdHRyaWJ1dGVEYXRhPiBjcmVhdGVJ
bW11dGFibGUoY29uc3QgVmVjdG9yPEF0dHJpYnV0ZT4mKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxFbGVtZW50QXR0cmlidXRlRGF0YT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEVs
ZW1lbnRBdHRyaWJ1dGVEYXRhKTsgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEVsZW1lbnRBdHRy
aWJ1dGVEYXRhPiBjcmVhdGVJbW11dGFibGUoY29uc3QgVmVjdG9yPEF0dHJpYnV0ZT4mKTsKICAg
ICB+RWxlbWVudEF0dHJpYnV0ZURhdGEoKTsKIAogICAgIHZvaWQgY2xlYXJDbGFzcygpIHsgbV9j
bGFzc05hbWVzLmNsZWFyKCk7IH0KQEAgLTExMSw3ICsxMTEsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgcmVwbGFjZUF0dHJpYnV0ZShzaXplX3QgaW5kZXgsIGNvbnN0IEF0dHJpYnV0ZSYsIEVsZW1l
bnQqKTsKIAogICAgIGJvb2wgaXNNdXRhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9pc011dGFibGU7
IH0KLSAgICBQYXNzT3duUHRyPEVsZW1lbnRBdHRyaWJ1dGVEYXRhPiBtYWtlTXV0YWJsZSgpIGNv
bnN0IHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBFbGVtZW50QXR0cmlidXRlRGF0YSgqdGhpcykpOyB9
CisgICAgUGFzc1JlZlB0cjxFbGVtZW50QXR0cmlidXRlRGF0YT4gbWFrZU11dGFibGUoKSBjb25z
dCB7IHJldHVybiBhZG9wdFJlZihuZXcgRWxlbWVudEF0dHJpYnV0ZURhdGEoKnRoaXMpKTsgfQog
CiAgICAgbXV0YWJsZSBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gbV9pbmxpbmVTdHlsZURlY2w7
CiAgICAgbXV0YWJsZSBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gbV9hdHRyaWJ1dGVTdHlsZTsK
</data>
<flag name="commit-queue"
          id="171129"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160545</attachid>
            <date>2012-08-24 19:46:38 -0700</date>
            <delta_ts>2012-09-03 09:42:55 -0700</delta_ts>
            <desc>Love letter to EWS + cheesy GCC buildfix</desc>
            <filename>for-ews-94990-gcc-lol.diff</filename>
            <type>text/plain</type>
            <size>9716</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGI0OTVlMjIuLmI0NTg1Y2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcApAQCAtNDg3NCw2ICs0ODc0LDEwIEBAIHZvaWQgRG9jdW1lbnQ6OmZpbmlz
aGVkUGFyc2luZygpCiAKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkb21Db250
ZW50TG9hZGVkRXZlbnRGaXJlZChmLmdldCgpKTsKICAgICB9CisKKyAgICAvLyBUaGUgRWxlbWVu
dEF0dHJpYnV0ZURhdGEgc2hhcmluZyBjYWNoZSBpcyBvbmx5IHVzZWQgZHVyaW5nIHBhcnNpbmcg
c2luY2UKKyAgICAvLyB0aGF0J3Mgd2hlbiB0aGUgbWFqb3JpdHkgb2YgaW1tdXRhYmxlIGF0dHJp
YnV0ZSBkYXRhIHdpbGwgYmUgY3JlYXRlZC4KKyAgICBtX2ltbXV0YWJsZUF0dHJpYnV0ZURhdGFD
YWNoZS5jbGVhcigpOwogfQogCiBQYXNzUmVmUHRyPFhQYXRoRXhwcmVzc2lvbj4gRG9jdW1lbnQ6
OmNyZWF0ZUV4cHJlc3Npb24oY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLApAQCAtNjE2MCw0ICs2
MTY0LDczIEBAIFBhc3NSZWZQdHI8VW5kb01hbmFnZXI+IERvY3VtZW50Ojp1bmRvTWFuYWdlcigp
CiB9CiAjZW5kaWYKIAorY2xhc3MgSW1tdXRhYmxlQXR0cmlidXRlRGF0YUNhY2hlS2V5IHsKK3B1
YmxpYzoKKyAgICBJbW11dGFibGVBdHRyaWJ1dGVEYXRhQ2FjaGVLZXkoKQorICAgICAgICA6IG1f
bG9jYWxOYW1lKDApCisgICAgICAgICwgbV9hdHRyaWJ1dGVzKDApCisgICAgICAgICwgbV9hdHRy
aWJ1dGVDb3VudCgwKQorICAgIHsgfQorCisgICAgSW1tdXRhYmxlQXR0cmlidXRlRGF0YUNhY2hl
S2V5KGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lLCBjb25zdCBBdHRyaWJ1dGUqIGF0dHJp
YnV0ZXMsIHVuc2lnbmVkIGF0dHJpYnV0ZUNvdW50KQorICAgICAgICA6IG1fbG9jYWxOYW1lKGxv
Y2FsTmFtZS5pbXBsKCkpCisgICAgICAgICwgbV9hdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpCisgICAg
ICAgICwgbV9hdHRyaWJ1dGVDb3VudChhdHRyaWJ1dGVDb3VudCkKKyAgICB7IH0KKworICAgIGJv
b2wgb3BlcmF0b3IhPShJbW11dGFibGVBdHRyaWJ1dGVEYXRhQ2FjaGVLZXkmIG90aGVyKSBjb25z
dAorICAgIHsKKyAgICAgICAgaWYgKG1fbG9jYWxOYW1lICE9IG90aGVyLm1fbG9jYWxOYW1lKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChtX2F0dHJpYnV0ZUNvdW50ICE9
IG90aGVyLm1fYXR0cmlidXRlQ291bnQpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgcmV0dXJuIG1lbWNtcChtX2F0dHJpYnV0ZXMsIG90aGVyLm1fYXR0cmlidXRlcywgc2l6ZW9m
KEF0dHJpYnV0ZSkgKiBtX2F0dHJpYnV0ZUNvdW50KTsKKyAgICB9CisKKyAgICB1bnNpZ25lZCBo
YXNoKCkgY29uc3QKKyAgICB7CisgICAgICAgIHVuc2lnbmVkIGF0dHJpYnV0ZUhhc2ggPSBTdHJp
bmdIYXNoZXI6Omhhc2hNZW1vcnkobV9hdHRyaWJ1dGVzLCBtX2F0dHJpYnV0ZUNvdW50ICogc2l6
ZW9mKEF0dHJpYnV0ZSkpOworICAgICAgICByZXR1cm4gV1RGOjppbnRIYXNoKChzdGF0aWNfY2Fz
dDx1aW50NjRfdD4obV9sb2NhbE5hbWUtPmV4aXN0aW5nSGFzaCgpKSA8PCAzMiB8IGF0dHJpYnV0
ZUhhc2gpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQXRvbWljU3RyaW5nSW1wbCogbV9sb2Nh
bE5hbWU7CisgICAgY29uc3QgQXR0cmlidXRlKiBtX2F0dHJpYnV0ZXM7CisgICAgdW5zaWduZWQg
bV9hdHRyaWJ1dGVDb3VudDsKK307CisKK3N0cnVjdCBJbW11dGFibGVBdHRyaWJ1dGVEYXRhQ2Fj
aGVFbnRyeSB7CisgICAgSW1tdXRhYmxlQXR0cmlidXRlRGF0YUNhY2hlS2V5IGtleTsKKyAgICBS
ZWZQdHI8RWxlbWVudEF0dHJpYnV0ZURhdGE+IHZhbHVlOworfTsKKworUGFzc1JlZlB0cjxFbGVt
ZW50QXR0cmlidXRlRGF0YT4gRG9jdW1lbnQ6OmNhY2hlZEltbXV0YWJsZUF0dHJpYnV0ZURhdGEo
Y29uc3QgRWxlbWVudCogZWxlbWVudCwgY29uc3QgVmVjdG9yPEF0dHJpYnV0ZT4mIGF0dHJpYnV0
ZXMpCit7CisgICAgQVNTRVJUKCFhdHRyaWJ1dGVzLmlzRW1wdHkoKSk7CisKKyAgICBJbW11dGFi
bGVBdHRyaWJ1dGVEYXRhQ2FjaGVLZXkgY2FjaGVLZXkoZWxlbWVudC0+bG9jYWxOYW1lKCksIGF0
dHJpYnV0ZXMuZGF0YSgpLCBhdHRyaWJ1dGVzLnNpemUoKSk7CisgICAgdW5zaWduZWQgY2FjaGVI
YXNoID0gY2FjaGVLZXkuaGFzaCgpOworCisgICAgSW1tdXRhYmxlQXR0cmlidXRlRGF0YUNhY2hl
OjppdGVyYXRvciBjYWNoZUl0ZXJhdG9yID0gbV9pbW11dGFibGVBdHRyaWJ1dGVEYXRhQ2FjaGUu
YWRkKGNhY2hlSGFzaCwgbnVsbHB0cikuaXRlcmF0b3I7CisgICAgaWYgKGNhY2hlSXRlcmF0b3It
PnNlY29uZCAmJiBjYWNoZUl0ZXJhdG9yLT5zZWNvbmQtPmtleSAhPSBjYWNoZUtleSkKKyAgICAg
ICAgY2FjaGVIYXNoID0gMDsKKworICAgIFJlZlB0cjxFbGVtZW50QXR0cmlidXRlRGF0YT4gYXR0
cmlidXRlRGF0YTsKKyAgICBpZiAoY2FjaGVIYXNoICYmIGNhY2hlSXRlcmF0b3ItPnNlY29uZCkK
KyAgICAgICAgYXR0cmlidXRlRGF0YSA9IGNhY2hlSXRlcmF0b3ItPnNlY29uZC0+dmFsdWU7Cisg
ICAgZWxzZQorICAgICAgICBhdHRyaWJ1dGVEYXRhID0gRWxlbWVudEF0dHJpYnV0ZURhdGE6OmNy
ZWF0ZUltbXV0YWJsZShhdHRyaWJ1dGVzKTsKKworICAgIGlmICghY2FjaGVIYXNoIHx8IGNhY2hl
SXRlcmF0b3ItPnNlY29uZCkKKyAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZURhdGEucmVsZWFzZSgp
OworCisgICAgT3duUHRyPEltbXV0YWJsZUF0dHJpYnV0ZURhdGFDYWNoZUVudHJ5PiBuZXdFbnRy
eSA9IGFkb3B0UHRyKG5ldyBJbW11dGFibGVBdHRyaWJ1dGVEYXRhQ2FjaGVFbnRyeSk7CisgICAg
bmV3RW50cnktPmtleSA9IEltbXV0YWJsZUF0dHJpYnV0ZURhdGFDYWNoZUtleShlbGVtZW50LT5s
b2NhbE5hbWUoKSwgY29uc3RfY2FzdDxjb25zdCBFbGVtZW50QXR0cmlidXRlRGF0YSo+KGF0dHJp
YnV0ZURhdGEuZ2V0KCkpLT5hdHRyaWJ1dGVJdGVtKDApLCBhdHRyaWJ1dGVEYXRhLT5sZW5ndGgo
KSk7CisgICAgbmV3RW50cnktPnZhbHVlID0gYXR0cmlidXRlRGF0YTsKKworICAgIGNhY2hlSXRl
cmF0b3ItPnNlY29uZCA9IG5ld0VudHJ5LnJlbGVhc2UoKTsKKworICAgIHJldHVybiBhdHRyaWJ1
dGVEYXRhLnJlbGVhc2UoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaAppbmRleCBhMDQxOWFhLi40MTQ3NWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAt
ODIsNiArODIsNyBAQCBjbGFzcyBEb2N1bWVudFdlYWtSZWZlcmVuY2U7CiBjbGFzcyBEeW5hbWlj
Tm9kZUxpc3RDYWNoZUJhc2U7CiBjbGFzcyBFZGl0aW5nVGV4dDsKIGNsYXNzIEVsZW1lbnQ7Citj
bGFzcyBFbGVtZW50QXR0cmlidXRlRGF0YTsKIGNsYXNzIEVudGl0eVJlZmVyZW5jZTsKIGNsYXNz
IEV2ZW50OwogY2xhc3MgRXZlbnRMaXN0ZW5lcjsKQEAgLTIwNSw2ICsyMDYsOSBAQCBlbnVtIE5v
ZGVMaXN0SW52YWxpZGF0aW9uVHlwZSB7CiB9OwogY29uc3QgaW50IG51bU5vZGVMaXN0SW52YWxp
ZGF0aW9uVHlwZXMgPSBJbnZhbGlkYXRlT25BbnlBdHRyQ2hhbmdlICsgMTsKIAorc3RydWN0IElt
bXV0YWJsZUF0dHJpYnV0ZURhdGFDYWNoZUVudHJ5OwordHlwZWRlZiBIYXNoTWFwPHVuc2lnbmVk
LCBPd25QdHI8SW1tdXRhYmxlQXR0cmlidXRlRGF0YUNhY2hlRW50cnk+LCBBbHJlYWR5SGFzaGVk
PiBJbW11dGFibGVBdHRyaWJ1dGVEYXRhQ2FjaGU7CisKIGNsYXNzIERvY3VtZW50IDogcHVibGlj
IENvbnRhaW5lck5vZGUsIHB1YmxpYyBUcmVlU2NvcGUsIHB1YmxpYyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudD4gY3JlYXRl
KEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsKQpAQCAtMTE4MSw2ICsxMTg1LDggQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qKSBjb25zdCBPVkVSUklERTsKIAorICAgIFBhc3NSZWZQdHI8RWxlbWVudEF0dHJpYnV0ZURh
dGE+IGNhY2hlZEltbXV0YWJsZUF0dHJpYnV0ZURhdGEoY29uc3QgRWxlbWVudCosIGNvbnN0IFZl
Y3RvcjxBdHRyaWJ1dGU+Jik7CisKIHByb3RlY3RlZDoKICAgICBEb2N1bWVudChGcmFtZSosIGNv
bnN0IEtVUkwmLCBib29sIGlzWEhUTUwsIGJvb2wgaXNIVE1MKTsKIApAQCAtMTU2Niw2ICsxNTcy
LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8RE9NU2VjdXJpdHlQb2xpY3k+IG1fZG9tU2VjdXJp
dHlQb2xpY3k7CiAjZW5kaWYKIAorICAgIEltbXV0YWJsZUF0dHJpYnV0ZURhdGFDYWNoZSBtX2lt
bXV0YWJsZUF0dHJpYnV0ZURhdGFDYWNoZTsKKwogI2lmbmRlZiBOREVCVUcKICAgICBib29sIG1f
ZGlkRGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNDaGFuZ2VkOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKaW5kZXggMDRiYzIwYi4uOTRhODJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApA
QCAtODIzLDcgKzgyMywxNSBAQCB2b2lkIEVsZW1lbnQ6OnBhcnNlclNldEF0dHJpYnV0ZXMoY29u
c3QgVmVjdG9yPEF0dHJpYnV0ZT4mIGF0dHJpYnV0ZVZlY3RvciwgRnJhZwogICAgICAgICB9CiAg
ICAgfQogCi0gICAgbV9hdHRyaWJ1dGVEYXRhID0gRWxlbWVudEF0dHJpYnV0ZURhdGE6OmNyZWF0
ZUltbXV0YWJsZShmaWx0ZXJlZEF0dHJpYnV0ZXMpOworICAgIC8vIFdoZW4gdGhlIGRvY3VtZW50
IGlzIGluIHBhcnNpbmcgc3RhdGUsIHdlIGNhY2hlIGltbXV0YWJsZSBFbGVtZW50QXR0cmlidXRl
RGF0YSBvYmplY3RzIHdpdGggdGhlCisgICAgLy8gaW5wdXQgYXR0cmlidXRlIHZlY3RvciBhcyBr
ZXkuIChUaGlzIGNhY2hlIGlzIGhlbGQgYnkgRG9jdW1lbnQuKQorICAgIGlmICghZG9jdW1lbnQo
KSB8fCAhZG9jdW1lbnQoKS0+cGFyc2luZygpKQorICAgICAgICBtX2F0dHJpYnV0ZURhdGEgPSBF
bGVtZW50QXR0cmlidXRlRGF0YTo6Y3JlYXRlSW1tdXRhYmxlKGZpbHRlcmVkQXR0cmlidXRlcyk7
CisgICAgZWxzZSBpZiAoIWlzSFRNTEVsZW1lbnQoKSkgeworICAgICAgICAvLyBGSVhNRTogU3Vw
cG9ydCBhdHRyaWJ1dGUgZGF0YSBzaGFyaW5nIGZvciBub24tSFRNTCBlbGVtZW50cy4KKyAgICAg
ICAgbV9hdHRyaWJ1dGVEYXRhID0gRWxlbWVudEF0dHJpYnV0ZURhdGE6OmNyZWF0ZUltbXV0YWJs
ZShmaWx0ZXJlZEF0dHJpYnV0ZXMpOworICAgIH0gZWxzZQorICAgICAgICBtX2F0dHJpYnV0ZURh
dGEgPSBkb2N1bWVudCgpLT5jYWNoZWRJbW11dGFibGVBdHRyaWJ1dGVEYXRhKHRoaXMsIGZpbHRl
cmVkQXR0cmlidXRlcyk7CiAKICAgICAvLyBJdGVyYXRlIG92ZXIgdGhlIHNldCBvZiBhdHRyaWJ1
dGVzIHdlIGFscmVhZHkgaGF2ZSBvbiB0aGUgc3RhY2sgaW4gY2FzZQogICAgIC8vIGF0dHJpYnV0
ZUNoYW5nZWQgbXV0YXRlcyBtX2F0dHJpYnV0ZURhdGEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCBm
NzkyMjdlLi5mZTUyMGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTUxOSw3ICs1MTksNyBAQCBw
cml2YXRlOgogICAgIEVsZW1lbnRSYXJlRGF0YSogZWxlbWVudFJhcmVEYXRhKCkgY29uc3Q7CiAg
ICAgRWxlbWVudFJhcmVEYXRhKiBlbnN1cmVFbGVtZW50UmFyZURhdGEoKTsKIAotICAgIE93blB0
cjxFbGVtZW50QXR0cmlidXRlRGF0YT4gbV9hdHRyaWJ1dGVEYXRhOworICAgIFJlZlB0cjxFbGVt
ZW50QXR0cmlidXRlRGF0YT4gbV9hdHRyaWJ1dGVEYXRhOwogfTsKICAgICAKIGlubGluZSBFbGVt
ZW50KiB0b0VsZW1lbnQoTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50QXR0cmlidXRlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0
dHJpYnV0ZURhdGEuY3BwCmluZGV4IDQ3MWU1MTkuLmE0NmRmYTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmNwcApAQCAtMzksMTAgKzM5LDEwIEBAIHN0YXRp
YyBzaXplX3QgaW1tdXRhYmxlRWxlbWVudEF0dHJpYnV0ZURhdGFTaXplKHVuc2lnbmVkIGNvdW50
KQogICAgIHJldHVybiBzaXplb2YoRWxlbWVudEF0dHJpYnV0ZURhdGEpIC0gc2l6ZW9mKHZvaWQq
KSArIHNpemVvZihBdHRyaWJ1dGUpICogY291bnQ7CiB9CiAKLVBhc3NPd25QdHI8RWxlbWVudEF0
dHJpYnV0ZURhdGE+IEVsZW1lbnRBdHRyaWJ1dGVEYXRhOjpjcmVhdGVJbW11dGFibGUoY29uc3Qg
VmVjdG9yPEF0dHJpYnV0ZT4mIGF0dHJpYnV0ZXMpCitQYXNzUmVmUHRyPEVsZW1lbnRBdHRyaWJ1
dGVEYXRhPiBFbGVtZW50QXR0cmlidXRlRGF0YTo6Y3JlYXRlSW1tdXRhYmxlKGNvbnN0IFZlY3Rv
cjxBdHRyaWJ1dGU+JiBhdHRyaWJ1dGVzKQogewogICAgIHZvaWQqIHNsb3QgPSBXVEY6OmZhc3RN
YWxsb2MoaW1tdXRhYmxlRWxlbWVudEF0dHJpYnV0ZURhdGFTaXplKGF0dHJpYnV0ZXMuc2l6ZSgp
KSk7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyAoc2xvdCkgRWxlbWVudEF0dHJpYnV0ZURhdGEo
YXR0cmlidXRlcykpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgKHNsb3QpIEVsZW1lbnRBdHRy
aWJ1dGVEYXRhKGF0dHJpYnV0ZXMpKTsKIH0KIAogRWxlbWVudEF0dHJpYnV0ZURhdGE6OkVsZW1l
bnRBdHRyaWJ1dGVEYXRhKCkKQEAgLTYyLDcgKzYyLDcgQEAgRWxlbWVudEF0dHJpYnV0ZURhdGE6
OkVsZW1lbnRBdHRyaWJ1dGVEYXRhKGNvbnN0IFZlY3RvcjxBdHRyaWJ1dGU+JiBhdHRyaWJ1dGVz
KQogfQogCiBFbGVtZW50QXR0cmlidXRlRGF0YTo6RWxlbWVudEF0dHJpYnV0ZURhdGEoY29uc3Qg
RWxlbWVudEF0dHJpYnV0ZURhdGEmIG90aGVyKQotICAgIDogbV9pbmxpbmVTdHlsZURlY2wob3Ro
ZXIubV9pbmxpbmVTdHlsZURlY2wpCisgICAgOiBSZWZDb3VudGVkPEVsZW1lbnRBdHRyaWJ1dGVE
YXRhPigpCiAgICAgLCBtX2F0dHJpYnV0ZVN0eWxlKG90aGVyLm1fYXR0cmlidXRlU3R5bGUpCiAg
ICAgLCBtX2NsYXNzTmFtZXMob3RoZXIubV9jbGFzc05hbWVzKQogICAgICwgbV9pZEZvclN0eWxl
UmVzb2x1dGlvbihvdGhlci5tX2lkRm9yU3R5bGVSZXNvbHV0aW9uKQpAQCAtNzMsNiArNzMsMTAg
QEAgRWxlbWVudEF0dHJpYnV0ZURhdGE6OkVsZW1lbnRBdHRyaWJ1dGVEYXRhKGNvbnN0IEVsZW1l
bnRBdHRyaWJ1dGVEYXRhJiBvdGhlcikKICAgICAvLyBUaGlzIGNvcHkgY29uc3RydWN0b3Igc2hv
dWxkIG9ubHkgYmUgdXNlZCBieSBtYWtlTXV0YWJsZSgpIHRvIGdvIGZyb20gaW1tdXRhYmxlIHRv
IG11dGFibGUuCiAgICAgQVNTRVJUKCFvdGhlci5tX2lzTXV0YWJsZSk7CiAKKyAgICAvLyBBbiBp
bW11dGFibGUgRWxlbWVudEF0dHJpYnV0ZURhdGEgc2hvdWxkIG5ldmVyIGhhdmUgYSBtdXRhYmxl
IGlubGluZSBTdHlsZVByb3BlcnR5U2V0IGF0dGFjaGVkLgorICAgIEFTU0VSVCghb3RoZXIubV9p
bmxpbmVTdHlsZURlY2wgfHwgIW90aGVyLm1faW5saW5lU3R5bGVEZWNsLT5pc011dGFibGUoKSk7
CisgICAgbV9pbmxpbmVTdHlsZURlY2wgPSBvdGhlci5tX2lubGluZVN0eWxlRGVjbDsKKwogICAg
IGNvbnN0IEF0dHJpYnV0ZSogb3RoZXJCdWZmZXIgPSByZWludGVycHJldF9jYXN0PGNvbnN0IEF0
dHJpYnV0ZSo+KCZvdGhlci5tX2F0dHJpYnV0ZXMpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBvdGhlci5tX2FycmF5U2l6ZTsgKytpKQogICAgICAgICBtX211dGFibGVBdHRyaWJ1dGVW
ZWN0b3ItPmFwcGVuZChvdGhlckJ1ZmZlcltpXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
QXR0cmlidXRlRGF0YS5oCmluZGV4IGI5NmI5NWIuLjBlMzg2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5oCkBAIC0zOSwxMSArMzksMTEgQEAgY2xhc3MgTWVt
b3J5T2JqZWN0SW5mbzsKIAogZW51bSBTeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUgeyBO
b3RJblN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSwgSW5TeW5jaHJvbml6YXRpb25PZkxh
enlBdHRyaWJ1dGUgfTsKIAotY2xhc3MgRWxlbWVudEF0dHJpYnV0ZURhdGEgeworY2xhc3MgRWxl
bWVudEF0dHJpYnV0ZURhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxFbGVtZW50QXR0cmlidXRlRGF0
YT4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzT3duUHRyPEVsZW1lbnRBdHRyaWJ1dGVEYXRhPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFB0
cihuZXcgRWxlbWVudEF0dHJpYnV0ZURhdGEpOyB9Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8RWxl
bWVudEF0dHJpYnV0ZURhdGE+IGNyZWF0ZUltbXV0YWJsZShjb25zdCBWZWN0b3I8QXR0cmlidXRl
PiYpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEVsZW1lbnRBdHRyaWJ1dGVEYXRhPiBjcmVhdGUo
KSB7IHJldHVybiBhZG9wdFJlZihuZXcgRWxlbWVudEF0dHJpYnV0ZURhdGEpOyB9CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8RWxlbWVudEF0dHJpYnV0ZURhdGE+IGNyZWF0ZUltbXV0YWJsZShjb25z
dCBWZWN0b3I8QXR0cmlidXRlPiYpOwogICAgIH5FbGVtZW50QXR0cmlidXRlRGF0YSgpOwogCiAg
ICAgdm9pZCBjbGVhckNsYXNzKCkgeyBtX2NsYXNzTmFtZXMuY2xlYXIoKTsgfQpAQCAtMTExLDcg
KzExMSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXBsYWNlQXR0cmlidXRlKHNpemVfdCBpbmRl
eCwgY29uc3QgQXR0cmlidXRlJiwgRWxlbWVudCopOwogCiAgICAgYm9vbCBpc011dGFibGUoKSBj
b25zdCB7IHJldHVybiBtX2lzTXV0YWJsZTsgfQotICAgIFBhc3NPd25QdHI8RWxlbWVudEF0dHJp
YnV0ZURhdGE+IG1ha2VNdXRhYmxlKCkgY29uc3QgeyByZXR1cm4gYWRvcHRQdHIobmV3IEVsZW1l
bnRBdHRyaWJ1dGVEYXRhKCp0aGlzKSk7IH0KKyAgICBQYXNzUmVmUHRyPEVsZW1lbnRBdHRyaWJ1
dGVEYXRhPiBtYWtlTXV0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBFbGVtZW50
QXR0cmlidXRlRGF0YSgqdGhpcykpOyB9CiAKICAgICBtdXRhYmxlIFJlZlB0cjxTdHlsZVByb3Bl
cnR5U2V0PiBtX2lubGluZVN0eWxlRGVjbDsKICAgICBtdXRhYmxlIFJlZlB0cjxTdHlsZVByb3Bl
cnR5U2V0PiBtX2F0dHJpYnV0ZVN0eWxlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161939</attachid>
            <date>2012-09-03 09:42:55 -0700</date>
            <delta_ts>2012-09-03 13:54:17 -0700</delta_ts>
            <desc>Patch!!11</desc>
            <filename>bug-94990.diff</filename>
            <type>text/plain</type>
            <size>12221</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmZjJlMjU4Li4zZTRiYmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEg
QEAKKzIwMTItMDktMDMgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgorCisgICAg
ICAgIFNoYXJlIGltbXV0YWJsZSBFbGVtZW50QXR0cmlidXRlRGF0YSBiZXR3ZWVuIGVsZW1lbnRz
IHdpdGggaWRlbnRpY2FsIGF0dHJpYnV0ZXMuCisgICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9i
Lzk0OTkwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEtlZXAgYSBjYWNoZSBvZiBFbGVtZW50QXR0cmlidXRlRGF0YSBvYmplY3RzIGZvciBhIGdpdmVu
IHNldCBvZiBhdHRyaWJ1dGVzIGFuZCByZXVzZQorICAgICAgICB0aGVtIGluIGVsZW1lbnRzIHdp
dGggaWRlbnRpY2FsIGF0dHJpYnV0ZSBtYXBzLiBFbGVtZW50QXR0cmlidXRlRGF0YSBpcyBtYWRl
IHJlZi1jb3VudGVkCisgICAgICAgIHRvIGZhY2lsaXRhdGUgdGhpcy4gQSBjb3B5LW9uLXdyaXRl
IG1lY2hhbmlzbSBpcyBhbHJlYWR5IGluIHBsYWNlLCBzaW5jZSBtdXRhdGluZyBjYWxsCisgICAg
ICAgIHNpdGVzIGhhdmUgdG8gZ28gdmlhIEVsZW1lbnQ6Om11dGFibGVBdHRyaWJ1dGVEYXRhKCku
CisKKyAgICAgICAgVGhlIGNhY2hlIGlzIGhlbGQgYnkgRG9jdW1lbnQgYW5kIGNsZWFyZWQgaW4g
RG9jdW1lbnQ6OmZpbmlzaGVkUGFyc2luZygpIHNpbmNlIHRoZSB2YXN0CisgICAgICAgIG1ham9y
aXR5IG9mIGltbXV0YWJsZSBFbGVtZW50QXR0cmlidXRlRGF0YSB3aWxsIGJlIGNvbnN0cnVjdGVk
IGR1cmluZyBwYXJzaW5nLgorCisgICAgICAgIE9uIHRoZSBIVE1MNSBzcGVjIGF0IDxodHRwOi8v
d2hhdHdnLm9yZy9jLz4sIHdlIGdldCBhIGNhY2hlIGhpdCByYXRlIG9mIG5lYXJseSA4MCUsCisg
ICAgICAgIHRyYW5zbGF0aW5nIGludG8gYSA0LjVNQiByZWR1Y3Rpb24gaW4gbWVtb3J5IHVzZS4K
KworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6ZmluaXNoZWRQYXJzaW5nKToKKyAgICAgICAgKEltbXV0YWJsZUF0dHJpYnV0ZURhdGFDYWNo
ZUtleSk6CisgICAgICAgIChXZWJDb3JlOjpJbW11dGFibGVBdHRyaWJ1dGVEYXRhQ2FjaGVLZXk6
OkltbXV0YWJsZUF0dHJpYnV0ZURhdGFDYWNoZUtleSk6CisgICAgICAgIChXZWJDb3JlOjpJbW11
dGFibGVBdHRyaWJ1dGVEYXRhQ2FjaGVLZXk6Om9wZXJhdG9yIT0pOgorICAgICAgICAoV2ViQ29y
ZTo6SW1tdXRhYmxlQXR0cmlidXRlRGF0YUNhY2hlS2V5OjpoYXNoKToKKyAgICAgICAgKEltbXV0
YWJsZUF0dHJpYnV0ZURhdGFDYWNoZUVudHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpjYWNoZWRJbW11dGFibGVBdHRyaWJ1dGVEYXRhKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
OjpwYXJzZXJTZXRBdHRyaWJ1dGVzKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAg
ICAqIGRvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50QXR0cmlidXRlRGF0YTo6Y3JlYXRlSW1tdXRhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnRBdHRyaWJ1dGVEYXRhOjpFbGVtZW50QXR0cmlidXRlRGF0YSk6CisgICAgICAgICogZG9t
L0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50QXR0cmli
dXRlRGF0YTo6Y3JlYXRlKToKKyAgICAgICAgKEVsZW1lbnRBdHRyaWJ1dGVEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnRBdHRyaWJ1dGVEYXRhOjptYWtlTXV0YWJsZSk6CisKIDIwMTIt
MDktMDMgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiB1c2UgbGlua2lmeVJlc291cmNlQXNOb2RlLCBub3QgbGlua2lmeUxvY2F0
aW9uIHdoZW4gbGlua2lmeWluZyByZXNvdXJjZXMgaW4gVGltZWxpbmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCmluZGV4IDMwMzA0ZGEuLjNlZWRmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtNDg4NSw2ICs0ODg1LDEwIEBAIHZvaWQgRG9jdW1lbnQ6OmZpbmlzaGVkUGFyc2luZygpCiAK
ICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkb21Db250ZW50TG9hZGVkRXZlbnRG
aXJlZChmLmdldCgpKTsKICAgICB9CisKKyAgICAvLyBUaGUgRWxlbWVudEF0dHJpYnV0ZURhdGEg
c2hhcmluZyBjYWNoZSBpcyBvbmx5IHVzZWQgZHVyaW5nIHBhcnNpbmcgc2luY2UKKyAgICAvLyB0
aGF0J3Mgd2hlbiB0aGUgbWFqb3JpdHkgb2YgaW1tdXRhYmxlIGF0dHJpYnV0ZSBkYXRhIHdpbGwg
YmUgY3JlYXRlZC4KKyAgICBtX2ltbXV0YWJsZUF0dHJpYnV0ZURhdGFDYWNoZS5jbGVhcigpOwog
fQogCiBQYXNzUmVmUHRyPFhQYXRoRXhwcmVzc2lvbj4gRG9jdW1lbnQ6OmNyZWF0ZUV4cHJlc3Np
b24oY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLApAQCAtNjE3MSw0ICs2MTc1LDczIEBAIFBhc3NS
ZWZQdHI8VW5kb01hbmFnZXI+IERvY3VtZW50Ojp1bmRvTWFuYWdlcigpCiB9CiAjZW5kaWYKIAor
Y2xhc3MgSW1tdXRhYmxlQXR0cmlidXRlRGF0YUNhY2hlS2V5IHsKK3B1YmxpYzoKKyAgICBJbW11
dGFibGVBdHRyaWJ1dGVEYXRhQ2FjaGVLZXkoKQorICAgICAgICA6IG1fbG9jYWxOYW1lKDApCisg
ICAgICAgICwgbV9hdHRyaWJ1dGVzKDApCisgICAgICAgICwgbV9hdHRyaWJ1dGVDb3VudCgwKQor
ICAgIHsgfQorCisgICAgSW1tdXRhYmxlQXR0cmlidXRlRGF0YUNhY2hlS2V5KGNvbnN0IEF0b21p
Y1N0cmluZyYgbG9jYWxOYW1lLCBjb25zdCBBdHRyaWJ1dGUqIGF0dHJpYnV0ZXMsIHVuc2lnbmVk
IGF0dHJpYnV0ZUNvdW50KQorICAgICAgICA6IG1fbG9jYWxOYW1lKGxvY2FsTmFtZS5pbXBsKCkp
CisgICAgICAgICwgbV9hdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpCisgICAgICAgICwgbV9hdHRyaWJ1
dGVDb3VudChhdHRyaWJ1dGVDb3VudCkKKyAgICB7IH0KKworICAgIGJvb2wgb3BlcmF0b3IhPShJ
bW11dGFibGVBdHRyaWJ1dGVEYXRhQ2FjaGVLZXkmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAg
ICAgaWYgKG1fbG9jYWxOYW1lICE9IG90aGVyLm1fbG9jYWxOYW1lKQorICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIGlmIChtX2F0dHJpYnV0ZUNvdW50ICE9IG90aGVyLm1fYXR0cmli
dXRlQ291bnQpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIG1lbWNt
cChtX2F0dHJpYnV0ZXMsIG90aGVyLm1fYXR0cmlidXRlcywgc2l6ZW9mKEF0dHJpYnV0ZSkgKiBt
X2F0dHJpYnV0ZUNvdW50KTsKKyAgICB9CisKKyAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3QKKyAg
ICB7CisgICAgICAgIHVuc2lnbmVkIGF0dHJpYnV0ZUhhc2ggPSBTdHJpbmdIYXNoZXI6Omhhc2hN
ZW1vcnkobV9hdHRyaWJ1dGVzLCBtX2F0dHJpYnV0ZUNvdW50ICogc2l6ZW9mKEF0dHJpYnV0ZSkp
OworICAgICAgICByZXR1cm4gV1RGOjppbnRIYXNoKChzdGF0aWNfY2FzdDx1aW50NjRfdD4obV9s
b2NhbE5hbWUtPmV4aXN0aW5nSGFzaCgpKSA8PCAzMiB8IGF0dHJpYnV0ZUhhc2gpKTsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgQXRvbWljU3RyaW5nSW1wbCogbV9sb2NhbE5hbWU7CisgICAgY29u
c3QgQXR0cmlidXRlKiBtX2F0dHJpYnV0ZXM7CisgICAgdW5zaWduZWQgbV9hdHRyaWJ1dGVDb3Vu
dDsKK307CisKK3N0cnVjdCBJbW11dGFibGVBdHRyaWJ1dGVEYXRhQ2FjaGVFbnRyeSB7CisgICAg
SW1tdXRhYmxlQXR0cmlidXRlRGF0YUNhY2hlS2V5IGtleTsKKyAgICBSZWZQdHI8RWxlbWVudEF0
dHJpYnV0ZURhdGE+IHZhbHVlOworfTsKKworUGFzc1JlZlB0cjxFbGVtZW50QXR0cmlidXRlRGF0
YT4gRG9jdW1lbnQ6OmNhY2hlZEltbXV0YWJsZUF0dHJpYnV0ZURhdGEoY29uc3QgRWxlbWVudCog
ZWxlbWVudCwgY29uc3QgVmVjdG9yPEF0dHJpYnV0ZT4mIGF0dHJpYnV0ZXMpCit7CisgICAgQVNT
RVJUKCFhdHRyaWJ1dGVzLmlzRW1wdHkoKSk7CisKKyAgICBJbW11dGFibGVBdHRyaWJ1dGVEYXRh
Q2FjaGVLZXkgY2FjaGVLZXkoZWxlbWVudC0+bG9jYWxOYW1lKCksIGF0dHJpYnV0ZXMuZGF0YSgp
LCBhdHRyaWJ1dGVzLnNpemUoKSk7CisgICAgdW5zaWduZWQgY2FjaGVIYXNoID0gY2FjaGVLZXku
aGFzaCgpOworCisgICAgSW1tdXRhYmxlQXR0cmlidXRlRGF0YUNhY2hlOjppdGVyYXRvciBjYWNo
ZUl0ZXJhdG9yID0gbV9pbW11dGFibGVBdHRyaWJ1dGVEYXRhQ2FjaGUuYWRkKGNhY2hlSGFzaCwg
bnVsbHB0cikuaXRlcmF0b3I7CisgICAgaWYgKGNhY2hlSXRlcmF0b3ItPnNlY29uZCAmJiBjYWNo
ZUl0ZXJhdG9yLT5zZWNvbmQtPmtleSAhPSBjYWNoZUtleSkKKyAgICAgICAgY2FjaGVIYXNoID0g
MDsKKworICAgIFJlZlB0cjxFbGVtZW50QXR0cmlidXRlRGF0YT4gYXR0cmlidXRlRGF0YTsKKyAg
ICBpZiAoY2FjaGVIYXNoICYmIGNhY2hlSXRlcmF0b3ItPnNlY29uZCkKKyAgICAgICAgYXR0cmli
dXRlRGF0YSA9IGNhY2hlSXRlcmF0b3ItPnNlY29uZC0+dmFsdWU7CisgICAgZWxzZQorICAgICAg
ICBhdHRyaWJ1dGVEYXRhID0gRWxlbWVudEF0dHJpYnV0ZURhdGE6OmNyZWF0ZUltbXV0YWJsZShh
dHRyaWJ1dGVzKTsKKworICAgIGlmICghY2FjaGVIYXNoIHx8IGNhY2hlSXRlcmF0b3ItPnNlY29u
ZCkKKyAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZURhdGEucmVsZWFzZSgpOworCisgICAgT3duUHRy
PEltbXV0YWJsZUF0dHJpYnV0ZURhdGFDYWNoZUVudHJ5PiBuZXdFbnRyeSA9IGFkb3B0UHRyKG5l
dyBJbW11dGFibGVBdHRyaWJ1dGVEYXRhQ2FjaGVFbnRyeSk7CisgICAgbmV3RW50cnktPmtleSA9
IEltbXV0YWJsZUF0dHJpYnV0ZURhdGFDYWNoZUtleShlbGVtZW50LT5sb2NhbE5hbWUoKSwgY29u
c3RfY2FzdDxjb25zdCBFbGVtZW50QXR0cmlidXRlRGF0YSo+KGF0dHJpYnV0ZURhdGEuZ2V0KCkp
LT5hdHRyaWJ1dGVJdGVtKDApLCBhdHRyaWJ1dGVEYXRhLT5sZW5ndGgoKSk7CisgICAgbmV3RW50
cnktPnZhbHVlID0gYXR0cmlidXRlRGF0YTsKKworICAgIGNhY2hlSXRlcmF0b3ItPnNlY29uZCA9
IG5ld0VudHJ5LnJlbGVhc2UoKTsKKworICAgIHJldHVybiBhdHRyaWJ1dGVEYXRhLnJlbGVhc2Uo
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBi
NjU1ZGNlLi40NmNiOTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtODMsNiArODMsNyBAQCBj
bGFzcyBEb2N1bWVudFdlYWtSZWZlcmVuY2U7CiBjbGFzcyBEeW5hbWljTm9kZUxpc3RDYWNoZUJh
c2U7CiBjbGFzcyBFZGl0aW5nVGV4dDsKIGNsYXNzIEVsZW1lbnQ7CitjbGFzcyBFbGVtZW50QXR0
cmlidXRlRGF0YTsKIGNsYXNzIEVudGl0eVJlZmVyZW5jZTsKIGNsYXNzIEV2ZW50OwogY2xhc3Mg
RXZlbnRMaXN0ZW5lcjsKQEAgLTIwNiw2ICsyMDcsOSBAQCBlbnVtIE5vZGVMaXN0SW52YWxpZGF0
aW9uVHlwZSB7CiB9OwogY29uc3QgaW50IG51bU5vZGVMaXN0SW52YWxpZGF0aW9uVHlwZXMgPSBJ
bnZhbGlkYXRlT25BbnlBdHRyQ2hhbmdlICsgMTsKIAorc3RydWN0IEltbXV0YWJsZUF0dHJpYnV0
ZURhdGFDYWNoZUVudHJ5OwordHlwZWRlZiBIYXNoTWFwPHVuc2lnbmVkLCBPd25QdHI8SW1tdXRh
YmxlQXR0cmlidXRlRGF0YUNhY2hlRW50cnk+LCBBbHJlYWR5SGFzaGVkPiBJbW11dGFibGVBdHRy
aWJ1dGVEYXRhQ2FjaGU7CisKIGNsYXNzIERvY3VtZW50IDogcHVibGljIENvbnRhaW5lck5vZGUs
IHB1YmxpYyBUcmVlU2NvcGUsIHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0IHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudD4gY3JlYXRlKEZyYW1lKiBmcmFtZSwg
Y29uc3QgS1VSTCYgdXJsKQpAQCAtMTE4Myw2ICsxMTg3LDggQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVS
UklERTsKIAorICAgIFBhc3NSZWZQdHI8RWxlbWVudEF0dHJpYnV0ZURhdGE+IGNhY2hlZEltbXV0
YWJsZUF0dHJpYnV0ZURhdGEoY29uc3QgRWxlbWVudCosIGNvbnN0IFZlY3RvcjxBdHRyaWJ1dGU+
Jik7CisKIHByb3RlY3RlZDoKICAgICBEb2N1bWVudChGcmFtZSosIGNvbnN0IEtVUkwmLCBib29s
IGlzWEhUTUwsIGJvb2wgaXNIVE1MKTsKIApAQCAtMTU2OCw2ICsxNTc0LDggQEAgcHJpdmF0ZToK
ICAgICBSZWZQdHI8RE9NU2VjdXJpdHlQb2xpY3k+IG1fZG9tU2VjdXJpdHlQb2xpY3k7CiAjZW5k
aWYKIAorICAgIEltbXV0YWJsZUF0dHJpYnV0ZURhdGFDYWNoZSBtX2ltbXV0YWJsZUF0dHJpYnV0
ZURhdGFDYWNoZTsKKwogI2lmbmRlZiBOREVCVUcKICAgICBib29sIG1fZGlkRGlzcGF0Y2hWaWV3
cG9ydFByb3BlcnRpZXNDaGFuZ2VkOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXgg
YWJjODFkOS4uNzMwNTJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtODIzLDcgKzgyMywx
NSBAQCB2b2lkIEVsZW1lbnQ6OnBhcnNlclNldEF0dHJpYnV0ZXMoY29uc3QgVmVjdG9yPEF0dHJp
YnV0ZT4mIGF0dHJpYnV0ZVZlY3RvciwgRnJhZwogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9h
dHRyaWJ1dGVEYXRhID0gRWxlbWVudEF0dHJpYnV0ZURhdGE6OmNyZWF0ZUltbXV0YWJsZShmaWx0
ZXJlZEF0dHJpYnV0ZXMpOworICAgIC8vIFdoZW4gdGhlIGRvY3VtZW50IGlzIGluIHBhcnNpbmcg
c3RhdGUsIHdlIGNhY2hlIGltbXV0YWJsZSBFbGVtZW50QXR0cmlidXRlRGF0YSBvYmplY3RzIHdp
dGggdGhlCisgICAgLy8gaW5wdXQgYXR0cmlidXRlIHZlY3RvciBhcyBrZXkuIChUaGlzIGNhY2hl
IGlzIGhlbGQgYnkgRG9jdW1lbnQuKQorICAgIGlmICghZG9jdW1lbnQoKSB8fCAhZG9jdW1lbnQo
KS0+cGFyc2luZygpKQorICAgICAgICBtX2F0dHJpYnV0ZURhdGEgPSBFbGVtZW50QXR0cmlidXRl
RGF0YTo6Y3JlYXRlSW1tdXRhYmxlKGZpbHRlcmVkQXR0cmlidXRlcyk7CisgICAgZWxzZSBpZiAo
IWlzSFRNTEVsZW1lbnQoKSkgeworICAgICAgICAvLyBGSVhNRTogU3VwcG9ydCBhdHRyaWJ1dGUg
ZGF0YSBzaGFyaW5nIGZvciBub24tSFRNTCBlbGVtZW50cy4KKyAgICAgICAgbV9hdHRyaWJ1dGVE
YXRhID0gRWxlbWVudEF0dHJpYnV0ZURhdGE6OmNyZWF0ZUltbXV0YWJsZShmaWx0ZXJlZEF0dHJp
YnV0ZXMpOworICAgIH0gZWxzZQorICAgICAgICBtX2F0dHJpYnV0ZURhdGEgPSBkb2N1bWVudCgp
LT5jYWNoZWRJbW11dGFibGVBdHRyaWJ1dGVEYXRhKHRoaXMsIGZpbHRlcmVkQXR0cmlidXRlcyk7
CiAKICAgICAvLyBJdGVyYXRlIG92ZXIgdGhlIHNldCBvZiBhdHRyaWJ1dGVzIHdlIGFscmVhZHkg
aGF2ZSBvbiB0aGUgc3RhY2sgaW4gY2FzZQogICAgIC8vIGF0dHJpYnV0ZUNoYW5nZWQgbXV0YXRl
cyBtX2F0dHJpYnV0ZURhdGEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCAxOWM0YWEzLi4xNDBiYzBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTUxOSw3ICs1MTksNyBAQCBwcml2YXRlOgogICAgIEVs
ZW1lbnRSYXJlRGF0YSogZWxlbWVudFJhcmVEYXRhKCkgY29uc3Q7CiAgICAgRWxlbWVudFJhcmVE
YXRhKiBlbnN1cmVFbGVtZW50UmFyZURhdGEoKTsKIAotICAgIE93blB0cjxFbGVtZW50QXR0cmli
dXRlRGF0YT4gbV9hdHRyaWJ1dGVEYXRhOworICAgIFJlZlB0cjxFbGVtZW50QXR0cmlidXRlRGF0
YT4gbV9hdHRyaWJ1dGVEYXRhOwogfTsKICAgICAKIGlubGluZSBFbGVtZW50KiB0b0VsZW1lbnQo
Tm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmli
dXRlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuY3Bw
CmluZGV4IDlhZGE5MmYuLmQwNzhmYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50QXR0cmlidXRlRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRB
dHRyaWJ1dGVEYXRhLmNwcApAQCAtMzksMTAgKzM5LDEwIEBAIHN0YXRpYyBzaXplX3QgaW1tdXRh
YmxlRWxlbWVudEF0dHJpYnV0ZURhdGFTaXplKHVuc2lnbmVkIGNvdW50KQogICAgIHJldHVybiBz
aXplb2YoRWxlbWVudEF0dHJpYnV0ZURhdGEpIC0gc2l6ZW9mKHZvaWQqKSArIHNpemVvZihBdHRy
aWJ1dGUpICogY291bnQ7CiB9CiAKLVBhc3NPd25QdHI8RWxlbWVudEF0dHJpYnV0ZURhdGE+IEVs
ZW1lbnRBdHRyaWJ1dGVEYXRhOjpjcmVhdGVJbW11dGFibGUoY29uc3QgVmVjdG9yPEF0dHJpYnV0
ZT4mIGF0dHJpYnV0ZXMpCitQYXNzUmVmUHRyPEVsZW1lbnRBdHRyaWJ1dGVEYXRhPiBFbGVtZW50
QXR0cmlidXRlRGF0YTo6Y3JlYXRlSW1tdXRhYmxlKGNvbnN0IFZlY3RvcjxBdHRyaWJ1dGU+JiBh
dHRyaWJ1dGVzKQogewogICAgIHZvaWQqIHNsb3QgPSBXVEY6OmZhc3RNYWxsb2MoaW1tdXRhYmxl
RWxlbWVudEF0dHJpYnV0ZURhdGFTaXplKGF0dHJpYnV0ZXMuc2l6ZSgpKSk7Ci0gICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyAoc2xvdCkgRWxlbWVudEF0dHJpYnV0ZURhdGEoYXR0cmlidXRlcykpOwor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgKHNsb3QpIEVsZW1lbnRBdHRyaWJ1dGVEYXRhKGF0dHJp
YnV0ZXMpKTsKIH0KIAogRWxlbWVudEF0dHJpYnV0ZURhdGE6OkVsZW1lbnRBdHRyaWJ1dGVEYXRh
KCkKQEAgLTYyLDE3ICs2MiwyMSBAQCBFbGVtZW50QXR0cmlidXRlRGF0YTo6RWxlbWVudEF0dHJp
YnV0ZURhdGEoY29uc3QgVmVjdG9yPEF0dHJpYnV0ZT4mIGF0dHJpYnV0ZXMpCiB9CiAKIEVsZW1l
bnRBdHRyaWJ1dGVEYXRhOjpFbGVtZW50QXR0cmlidXRlRGF0YShjb25zdCBFbGVtZW50QXR0cmli
dXRlRGF0YSYgb3RoZXIpCi0gICAgOiBtX2lubGluZVN0eWxlRGVjbChvdGhlci5tX2lubGluZVN0
eWxlRGVjbCkKKyAgICA6IFJlZkNvdW50ZWQ8RWxlbWVudEF0dHJpYnV0ZURhdGE+KCkKKyAgICAs
IG1faXNNdXRhYmxlKHRydWUpCisgICAgLCBtX2FycmF5U2l6ZSgwKQorICAgICwgbV9pbmxpbmVT
dHlsZURlY2wob3RoZXIubV9pbmxpbmVTdHlsZURlY2wpCiAgICAgLCBtX2F0dHJpYnV0ZVN0eWxl
KG90aGVyLm1fYXR0cmlidXRlU3R5bGUpCiAgICAgLCBtX2NsYXNzTmFtZXMob3RoZXIubV9jbGFz
c05hbWVzKQogICAgICwgbV9pZEZvclN0eWxlUmVzb2x1dGlvbihvdGhlci5tX2lkRm9yU3R5bGVS
ZXNvbHV0aW9uKQotICAgICwgbV9pc011dGFibGUodHJ1ZSkKLSAgICAsIG1fYXJyYXlTaXplKDAp
CiAgICAgLCBtX211dGFibGVBdHRyaWJ1dGVWZWN0b3IobmV3IFZlY3RvcjxBdHRyaWJ1dGUsIDQ+
KQogewogICAgIC8vIFRoaXMgY29weSBjb25zdHJ1Y3RvciBzaG91bGQgb25seSBiZSB1c2VkIGJ5
IG1ha2VNdXRhYmxlKCkgdG8gZ28gZnJvbSBpbW11dGFibGUgdG8gbXV0YWJsZS4KICAgICBBU1NF
UlQoIW90aGVyLm1faXNNdXRhYmxlKTsKIAorICAgIC8vIEFuIGltbXV0YWJsZSBFbGVtZW50QXR0
cmlidXRlRGF0YSBzaG91bGQgbmV2ZXIgaGF2ZSBhIG11dGFibGUgaW5saW5lIFN0eWxlUHJvcGVy
dHlTZXQgYXR0YWNoZWQuCisgICAgQVNTRVJUKCFvdGhlci5tX2lubGluZVN0eWxlRGVjbCB8fCAh
b3RoZXIubV9pbmxpbmVTdHlsZURlY2wtPmlzTXV0YWJsZSgpKTsKKwogICAgIGNvbnN0IEF0dHJp
YnV0ZSogb3RoZXJCdWZmZXIgPSByZWludGVycHJldF9jYXN0PGNvbnN0IEF0dHJpYnV0ZSo+KCZv
dGhlci5tX2F0dHJpYnV0ZXMpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBvdGhlci5t
X2FycmF5U2l6ZTsgKytpKQogICAgICAgICBtX211dGFibGVBdHRyaWJ1dGVWZWN0b3ItPmFwcGVu
ZChvdGhlckJ1ZmZlcltpXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dEF0dHJpYnV0ZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0
YS5oCmluZGV4IGQ3ZGIwZjkuLjcyMTI1ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50QXR0cmlidXRlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
QXR0cmlidXRlRGF0YS5oCkBAIC0zOSwxMSArMzksMTEgQEAgY2xhc3MgTWVtb3J5T2JqZWN0SW5m
bzsKIAogZW51bSBTeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUgeyBOb3RJblN5bmNocm9u
aXphdGlvbk9mTGF6eUF0dHJpYnV0ZSwgSW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUg
fTsKIAotY2xhc3MgRWxlbWVudEF0dHJpYnV0ZURhdGEgeworY2xhc3MgRWxlbWVudEF0dHJpYnV0
ZURhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxFbGVtZW50QXR0cmlidXRlRGF0YT4gewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEVs
ZW1lbnRBdHRyaWJ1dGVEYXRhPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFB0cihuZXcgRWxlbWVu
dEF0dHJpYnV0ZURhdGEpOyB9Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8RWxlbWVudEF0dHJpYnV0
ZURhdGE+IGNyZWF0ZUltbXV0YWJsZShjb25zdCBWZWN0b3I8QXR0cmlidXRlPiYpOworICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEVsZW1lbnRBdHRyaWJ1dGVEYXRhPiBjcmVhdGUoKSB7IHJldHVybiBh
ZG9wdFJlZihuZXcgRWxlbWVudEF0dHJpYnV0ZURhdGEpOyB9CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8RWxlbWVudEF0dHJpYnV0ZURhdGE+IGNyZWF0ZUltbXV0YWJsZShjb25zdCBWZWN0b3I8QXR0
cmlidXRlPiYpOwogICAgIH5FbGVtZW50QXR0cmlidXRlRGF0YSgpOwogCiAgICAgdm9pZCBjbGVh
ckNsYXNzKCkgeyBtX2NsYXNzTmFtZXMuY2xlYXIoKTsgfQpAQCAtMTEwLDE2ICsxMTAsMTYgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGNsZWFyQXR0cmlidXRlcyhFbGVtZW50Kik7CiAKICAgICBib29s
IGlzTXV0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNNdXRhYmxlOyB9Ci0gICAgUGFzc093blB0
cjxFbGVtZW50QXR0cmlidXRlRGF0YT4gbWFrZU11dGFibGUoKSBjb25zdCB7IHJldHVybiBhZG9w
dFB0cihuZXcgRWxlbWVudEF0dHJpYnV0ZURhdGEoKnRoaXMpKTsgfQorICAgIFBhc3NSZWZQdHI8
RWxlbWVudEF0dHJpYnV0ZURhdGE+IG1ha2VNdXRhYmxlKCkgY29uc3QgeyByZXR1cm4gYWRvcHRS
ZWYobmV3IEVsZW1lbnRBdHRyaWJ1dGVEYXRhKCp0aGlzKSk7IH0KKworICAgIHVuc2lnbmVkIG1f
aXNNdXRhYmxlIDogMTsKKyAgICB1bnNpZ25lZCBtX2FycmF5U2l6ZSA6IDMxOwogCiAgICAgbXV0
YWJsZSBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gbV9pbmxpbmVTdHlsZURlY2w7CiAgICAgbXV0
YWJsZSBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gbV9hdHRyaWJ1dGVTdHlsZTsKICAgICBtdXRh
YmxlIFNwYWNlU3BsaXRTdHJpbmcgbV9jbGFzc05hbWVzOwogICAgIG11dGFibGUgQXRvbWljU3Ry
aW5nIG1faWRGb3JTdHlsZVJlc29sdXRpb247CiAKLSAgICB1bnNpZ25lZCBtX2lzTXV0YWJsZSA6
IDE7Ci0gICAgdW5zaWduZWQgbV9hcnJheVNpemUgOiAzMTsKLQogICAgIHVuaW9uIHsKICAgICAg
ICAgVmVjdG9yPEF0dHJpYnV0ZSwgND4qIG1fbXV0YWJsZUF0dHJpYnV0ZVZlY3RvcjsKICAgICAg
ICAgdm9pZCogbV9hdHRyaWJ1dGVzOwo=
</data>
<flag name="review"
          id="172883"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>