<?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>76441</bug_id>
          
          <creation_ts>2012-01-17 02:12:41 -0800</creation_ts>
          <short_desc>[Chromium] Cleanup of WebPopupMenuImpl</short_desc>
          <delta_ts>2012-01-26 20:48:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>haraken</cc>
    
    <cc>morrita</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>536973</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-01-17 02:12:41 -0800</bug_when>
    <thetext>[Chromium] Cleanup of WebPopupMenuImpl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536984</commentid>
    <comment_count>1</comment_count>
      <attachid>122740</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-01-17 02:30:56 -0800</bug_when>
    <thetext>Created attachment 122740
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536987</commentid>
    <comment_count>2</comment_count>
      <attachid>122741</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-01-17 02:33:44 -0800</bug_when>
    <thetext>Created attachment 122741
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543168</commentid>
    <comment_count>3</comment_count>
      <attachid>122741</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-01-26 08:40:59 -0800</bug_when>
    <thetext>Comment on attachment 122741
Patch

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

&gt; Source/WebKit/chromium/src/WebPopupMenuImpl.cpp:169
&gt; +    deref(); // Balances ref() from WebWidget::Create.

Where is WebWidget::Create? I couldn&apos;t find it.

&gt; Source/WebKit/chromium/src/WebPopupMenuImpl.cpp:229
&gt; +    // FIXME: WebKit seems to always return false on mouse events methods. For

FIXME (jcampan)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543719</commentid>
    <comment_count>4</comment_count>
      <attachid>122741</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-01-26 18:30:41 -0800</bug_when>
    <thetext>Comment on attachment 122741
Patch

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

&gt;&gt; Source/WebKit/chromium/src/WebPopupMenuImpl.cpp:169
&gt;&gt; +    deref(); // Balances ref() from WebWidget::Create.
&gt; 
&gt; Where is WebWidget::Create? I couldn&apos;t find it.

Good catch!  It should be WebPopupMenu::create.

&gt;&gt; Source/WebKit/chromium/src/WebPopupMenuImpl.cpp:229
&gt;&gt; +    // FIXME: WebKit seems to always return false on mouse events methods. For
&gt; 
&gt; FIXME (jcampan)?

Our style is FIXME without a name.
http://www.webkit.org/coding/coding-style.html#comments-fixme</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543723</commentid>
    <comment_count>5</comment_count>
      <attachid>124232</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-01-26 18:32:09 -0800</bug_when>
    <thetext>Created attachment 124232
Patch 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543730</commentid>
    <comment_count>6</comment_count>
      <attachid>124232</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-01-26 19:00:28 -0800</bug_when>
    <thetext>Comment on attachment 124232
Patch 3

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543789</commentid>
    <comment_count>7</comment_count>
      <attachid>124232</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-26 20:48:41 -0800</bug_when>
    <thetext>Comment on attachment 124232
Patch 3

Clearing flags on attachment: 124232

Committed r106084: &lt;http://trac.webkit.org/changeset/106084&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543790</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-26 20:48:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122740</attachid>
            <date>2012-01-17 02:30:56 -0800</date>
            <delta_ts>2012-01-17 02:33:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76441-20120117193054.patch</filename>
            <type>text/plain</type>
            <size>19954</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGU2Y2RiM2Y4ZmIzODVmMmQ3MTY0OTc5MDhkYjU4MWZiOGVjNTE4NmQuLjkxNjU1NzIzZWNjYTM3
ODY1MTJjYjQxOWYzNmRhMmNjMzhlNjIyNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzkgQEAKKzIwMTItMDEtMTcgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gQ2xlYW51cCBvZiBXZWJQb3B1cE1lbnVJbXBsCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ0MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgV2Vi
UG9wdXBNZW51SW1wbDo6aW52YWxpZGF0ZUNvbnRlbnRzKCkgYW5kIHNjcm9sbFJlY3RJbnRvVmll
dygpCisgICAgICAgIGJlY2F1c2UgdGhleSB3ZXJlIHJlbW92ZWQgZnJvbSBIb3N0V2luZG93IGlu
IHI1ODQ0NSBhbmQgcjU1ODY0LiBUaGV5CisgICAgICAgIHdlcmUgZm91bmQgYnkgT1ZFUlJJREUu
CisKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkNocm9tZUNsaWVudEltcGw6OnBvcHVwT3BlbmVkKTogUmVuYW1lIFdlYlBvcHVwTWVudUltcGw6
OkluaXQoKS4KKyAgICAgICAgKiBzcmMvV2ViUG9wdXBNZW51SW1wbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBvcHVwTWVudUltcGw6OldlYlBvcHVwTWVudUltcGwpOiBVcGRhdGUgYSBjb21t
ZW50LgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVJbXBsOjppbml0KTogUmVuYW1lZCBm
cm9tIEluaXQoKS4gVXBkYXRlIGEgY29tbWVudC4KKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBN
ZW51SW1wbDo6aGFuZGxlTW91c2VNb3ZlKTogUHJlcGVuZCAiaGFuZGxlIiB0byB0aGUgbmFtZS4K
KyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51SW1wbDo6aGFuZGxlTW91c2VMZWF2ZSk6IGRp
dHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVNb3VzZURvd24p
OiBkaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51SW1wbDo6aGFuZGxlTW91c2VV
cCk6IGRpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVNb3Vz
ZVdoZWVsKTogZGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudUltcGw6OmhhbmRs
ZUdlc3R1cmVFdmVudCk6IGRpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVJbXBs
OjpoYW5kbGVUb3VjaEV2ZW50KTogZGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVu
dUltcGw6OmhhbmRsZUtleUV2ZW50KTogZGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVw
TWVudUltcGw6OmNsb3NlKTogVXBkYXRlIGEgY29tbWVudC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UG9wdXBNZW51SW1wbDo6Y29tcG9zaXRlKTogUmVtb3ZlIGEgdW51c2VkIGFyZ3VtZW50IG5hbWUu
CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudUltcGw6OmhhbmRsZUlucHV0RXZlbnQpOiBV
cGRhdGUgYSBjb21tZW50LiBVcGRhdGUgY2FsbHNpdGVzIGZvciBoYW5kbGUqKCkuCisgICAgICAg
IChXZWJLaXQ6OldlYlBvcHVwTWVudUltcGw6OnNldEZvY3VzKTogUmVtb3ZlIGEgdW51c2VkIGFy
Z3VtZW50IG5hbWUuCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudUltcGw6OnNldENvbXBv
c2l0aW9uKTogZGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudUltcGw6OmNvbmZp
cm1Db21wb3NpdGlvbik6IGRpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVJbXBs
OjpzZXRUZXh0RGlyZWN0aW9uKTogZGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVu
dUltcGw6OnNjcm9sbCk6IFVuZm9sZCBmb2xkZWQgbGluZXMuCisgICAgICAgICogc3JjL1dlYlBv
cHVwTWVudUltcGwuaDoKKyAgICAgICAgIC0gUmVtb3ZlIHVudXNlZnVsIGFyZ3VtZW50IG5hbWVz
LgorICAgICAgICAgLSBBZGQgT1ZFUlJJREUuCisKIDIwMTItMDEtMTYgIEJpbGwgQnVkZ2UgIDxi
YnVkZ2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENoYW5nZXMgQXNzb2NpYXRlZFVSTExvYWRl
ciB0byByZW1vdmUgbm9uLXdoaXRlbGlzdGVkIEhUVFAgcmVzcG9uc2UgaGVhZGVycyBmb3IgQ09S
UyByZXF1ZXN0cywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50
SW1wbC5jcHAKaW5kZXggNWYyODUxYmI1ODc3YzlmZjc0MjZkN2E4YzFlNWQxMzg2NGZhMDJjZi4u
MTkwM2IxOTAwYTFjMDMzMGU2OTY1MjgyODYyYzhhNWFjOWFjMjhiYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTc3Myw3ICs3NzMs
NyBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OnBvcHVwT3BlbmVkKFBvcHVwQ29udGFpbmVyKiBw
b3B1cENvbnRhaW5lciwKICAgICAgICAgLy8gdHJhbnNwYXJlbnQgdG8gdGhlIFdlYlZpZXcuCiAg
ICAgICAgIG1fd2ViVmlldy0+cG9wdXBPcGVuZWQocG9wdXBDb250YWluZXIpOwogICAgIH0KLSAg
ICBzdGF0aWNfY2FzdDxXZWJQb3B1cE1lbnVJbXBsKj4od2Vid2lkZ2V0KS0+SW5pdChwb3B1cENv
bnRhaW5lciwgYm91bmRzKTsKKyAgICBzdGF0aWNfY2FzdDxXZWJQb3B1cE1lbnVJbXBsKj4od2Vi
d2lkZ2V0KS0+aW5pdChwb3B1cENvbnRhaW5lciwgYm91bmRzKTsKIH0KIAogdm9pZCBDaHJvbWVD
bGllbnRJbXBsOjpwb3B1cENsb3NlZChXZWJDb3JlOjpQb3B1cENvbnRhaW5lciogcG9wdXBDb250
YWluZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQb3B1cE1l
bnVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwu
Y3BwCmluZGV4IDg0YzY2YTZkMmNhNTg1ZjE2ZjRlZDYzZTU4ZmVmMjkxYjhiZGJhZTQuLmQyZDZl
MjQ3ZDhhYzg3YWYyYjQwNDFlYTZmMmRhZGU3OGU2N2YzZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwCkBAIC0zMiwyNSArMzIsMjMgQEAK
ICNpbmNsdWRlICJXZWJQb3B1cE1lbnVJbXBsLmgiCiAKICNpbmNsdWRlICJDdXJzb3IuaCIKLSNp
bmNsdWRlICJGcmFtZWxlc3NTY3JvbGxWaWV3LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisj
aW5jbHVkZSAiRnJhbWVsZXNzU2Nyb2xsVmlldy5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgInBhaW50aW5nL0dyYXBoaWNzQ29u
dGV4dEJ1aWxkZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQu
aCIKICNpbmNsdWRlICJQb3B1cENvbnRhaW5lci5oIgogI2luY2x1ZGUgIlBvcHVwTWVudUNocm9t
aXVtLmgiCiAjaW5jbHVkZSAiU2tpYVV0aWxzLmgiCi0KICNpbmNsdWRlICJXZWJJbnB1dEV2ZW50
LmgiCiAjaW5jbHVkZSAiV2ViSW5wdXRFdmVudENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJXZWJS
YW5nZS5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYlJlY3QuaCIKICNpbmNsdWRlICJXZWJWaWV3
Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViV2lkZ2V0Q2xpZW50LmgiCi0KKyNpbmNsdWRlICJwYWlu
dGluZy9HcmFwaGljc0NvbnRleHRCdWlsZGVyLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViUmVj
dC5oIgogI2luY2x1ZGUgPHNraWEvZXh0L3BsYXRmb3JtX2NhbnZhcy5oPgogCiAjaWYgRU5BQkxF
KEdFU1RVUkVfUkVDT0dOSVpFUikKQEAgLTc5LDcgKzc3LDcgQEAgV2ViUG9wdXBNZW51SW1wbDo6
V2ViUG9wdXBNZW51SW1wbChXZWJXaWRnZXRDbGllbnQqIGNsaWVudCkKICAgICAsIG1fZ2VzdHVy
ZVJlY29nbml6ZXIoV2ViQ29yZTo6UGxhdGZvcm1HZXN0dXJlUmVjb2duaXplcjo6Y3JlYXRlKCkp
CiAjZW5kaWYKIHsKLSAgICAvLyBzZXQgdG8gaW1wb3NzaWJsZSBwb2ludCBzbyB3ZSBhbHdheXMg
Z2V0IHRoZSBmaXJzdCBtb3VzZSBwb3MKKyAgICAvLyBTZXQgdG8gaW1wb3NzaWJsZSBwb2ludCBz
byB3ZSBhbHdheXMgZ2V0IHRoZSBmaXJzdCBtb3VzZSBwb3NpdGlvbi4KICAgICBtX2xhc3RNb3Vz
ZVBvc2l0aW9uID0gV2ViUG9pbnQoLTEsIC0xKTsKIH0KIApAQCAtODksMjAgKzg3LDIwIEBAIFdl
YlBvcHVwTWVudUltcGw6On5XZWJQb3B1cE1lbnVJbXBsKCkKICAgICAgICAgbV93aWRnZXQtPnNl
dENsaWVudCgwKTsKIH0KIAotdm9pZCBXZWJQb3B1cE1lbnVJbXBsOjpJbml0KEZyYW1lbGVzc1Nj
cm9sbFZpZXcqIHdpZGdldCwgY29uc3QgV2ViUmVjdCYgYm91bmRzKQordm9pZCBXZWJQb3B1cE1l
bnVJbXBsOjppbml0KEZyYW1lbGVzc1Njcm9sbFZpZXcqIHdpZGdldCwgY29uc3QgV2ViUmVjdCYg
Ym91bmRzKQogewogICAgIG1fd2lkZ2V0ID0gd2lkZ2V0OwogICAgIG1fd2lkZ2V0LT5zZXRDbGll
bnQodGhpcyk7CiAKICAgICBpZiAobV9jbGllbnQpIHsKICAgICAgICAgbV9jbGllbnQtPnNldFdp
bmRvd1JlY3QoYm91bmRzKTsKLSAgICAgICAgbV9jbGllbnQtPnNob3coV2ViTmF2aWdhdGlvblBv
bGljeSgpKTsgIC8vIFBvbGljeSBpcyBpZ25vcmVkCisgICAgICAgIG1fY2xpZW50LT5zaG93KFdl
Yk5hdmlnYXRpb25Qb2xpY3koKSk7IC8vIFBvbGljeSBpcyBpZ25vcmVkLgogICAgIH0KIH0KIAot
dm9pZCBXZWJQb3B1cE1lbnVJbXBsOjpNb3VzZU1vdmUoY29uc3QgV2ViTW91c2VFdmVudCYgZXZl
bnQpCit2b2lkIFdlYlBvcHVwTWVudUltcGw6OmhhbmRsZU1vdXNlTW92ZShjb25zdCBXZWJNb3Vz
ZUV2ZW50JiBldmVudCkKIHsKLSAgICAvLyBkb24ndCBzZW5kIG1vdXNlIG1vdmUgbWVzc2FnZXMg
aWYgdGhlIG1vdXNlIGhhc24ndCBtb3ZlZC4KKyAgICAvLyBEb24ndCBzZW5kIG1vdXNlIG1vdmUg
bWVzc2FnZXMgaWYgdGhlIG1vdXNlIGhhc24ndCBtb3ZlZC4KICAgICBpZiAoZXZlbnQueCAhPSBt
X2xhc3RNb3VzZVBvc2l0aW9uLnggfHwgZXZlbnQueSAhPSBtX2xhc3RNb3VzZVBvc2l0aW9uLnkp
IHsKICAgICAgICAgbV9sYXN0TW91c2VQb3NpdGlvbiA9IFdlYlBvaW50KGV2ZW50LngsIGV2ZW50
LnkpOwogICAgICAgICBtX3dpZGdldC0+aGFuZGxlTW91c2VNb3ZlRXZlbnQoUGxhdGZvcm1Nb3Vz
ZUV2ZW50QnVpbGRlcihtX3dpZGdldCwgZXZlbnQpKTsKQEAgLTExMywzNCArMTExLDM0IEBAIHZv
aWQgV2ViUG9wdXBNZW51SW1wbDo6TW91c2VNb3ZlKGNvbnN0IFdlYk1vdXNlRXZlbnQmIGV2ZW50
KQogICAgIH0KIH0KIAotdm9pZCBXZWJQb3B1cE1lbnVJbXBsOjpNb3VzZUxlYXZlKGNvbnN0IFdl
Yk1vdXNlRXZlbnQmIGV2ZW50KQordm9pZCBXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVNb3VzZUxl
YXZlKGNvbnN0IFdlYk1vdXNlRXZlbnQmIGV2ZW50KQogewogICAgIG1fd2lkZ2V0LT5oYW5kbGVN
b3VzZU1vdmVFdmVudChQbGF0Zm9ybU1vdXNlRXZlbnRCdWlsZGVyKG1fd2lkZ2V0LCBldmVudCkp
OwogfQogCi12b2lkIFdlYlBvcHVwTWVudUltcGw6Ok1vdXNlRG93bihjb25zdCBXZWJNb3VzZUV2
ZW50JiBldmVudCkKK3ZvaWQgV2ViUG9wdXBNZW51SW1wbDo6aGFuZGxlTW91c2VEb3duKGNvbnN0
IFdlYk1vdXNlRXZlbnQmIGV2ZW50KQogewogICAgIG1fd2lkZ2V0LT5oYW5kbGVNb3VzZURvd25F
dmVudChQbGF0Zm9ybU1vdXNlRXZlbnRCdWlsZGVyKG1fd2lkZ2V0LCBldmVudCkpOwogfQogCi12
b2lkIFdlYlBvcHVwTWVudUltcGw6Ok1vdXNlVXAoY29uc3QgV2ViTW91c2VFdmVudCYgZXZlbnQp
Cit2b2lkIFdlYlBvcHVwTWVudUltcGw6OmhhbmRsZU1vdXNlVXAoY29uc3QgV2ViTW91c2VFdmVu
dCYgZXZlbnQpCiB7CiAgICAgbW91c2VDYXB0dXJlTG9zdCgpOwogICAgIG1fd2lkZ2V0LT5oYW5k
bGVNb3VzZVJlbGVhc2VFdmVudChQbGF0Zm9ybU1vdXNlRXZlbnRCdWlsZGVyKG1fd2lkZ2V0LCBl
dmVudCkpOwogfQogCi12b2lkIFdlYlBvcHVwTWVudUltcGw6Ok1vdXNlV2hlZWwoY29uc3QgV2Vi
TW91c2VXaGVlbEV2ZW50JiBldmVudCkKK3ZvaWQgV2ViUG9wdXBNZW51SW1wbDo6aGFuZGxlTW91
c2VXaGVlbChjb25zdCBXZWJNb3VzZVdoZWVsRXZlbnQmIGV2ZW50KQogewogICAgIG1fd2lkZ2V0
LT5oYW5kbGVXaGVlbEV2ZW50KFBsYXRmb3JtV2hlZWxFdmVudEJ1aWxkZXIobV93aWRnZXQsIGV2
ZW50KSk7CiB9CiAKLWJvb2wgV2ViUG9wdXBNZW51SW1wbDo6R2VzdHVyZUV2ZW50KGNvbnN0IFdl
Ykdlc3R1cmVFdmVudCYgZXZlbnQpCitib29sIFdlYlBvcHVwTWVudUltcGw6OmhhbmRsZUdlc3R1
cmVFdmVudChjb25zdCBXZWJHZXN0dXJlRXZlbnQmIGV2ZW50KQogewogICAgIHJldHVybiBtX3dp
ZGdldC0+aGFuZGxlR2VzdHVyZUV2ZW50KFBsYXRmb3JtR2VzdHVyZUV2ZW50QnVpbGRlcihtX3dp
ZGdldCwgZXZlbnQpKTsKIH0KIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi1ib29sIFdlYlBv
cHVwTWVudUltcGw6OlRvdWNoRXZlbnQoY29uc3QgV2ViVG91Y2hFdmVudCYgZXZlbnQpCitib29s
IFdlYlBvcHVwTWVudUltcGw6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgV2ViVG91Y2hFdmVudCYg
ZXZlbnQpCiB7CiAKICAgICBQbGF0Zm9ybVRvdWNoRXZlbnRCdWlsZGVyIHRvdWNoRXZlbnRCdWls
ZGVyKG1fd2lkZ2V0LCBldmVudCk7CkBAIC0xNTQsNyArMTUyLDcgQEAgYm9vbCBXZWJQb3B1cE1l
bnVJbXBsOjpUb3VjaEV2ZW50KGNvbnN0IFdlYlRvdWNoRXZlbnQmIGV2ZW50KQogfQogI2VuZGlm
CiAKLWJvb2wgV2ViUG9wdXBNZW51SW1wbDo6S2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVu
dCYgZXZlbnQpCitib29sIFdlYlBvcHVwTWVudUltcGw6OmhhbmRsZUtleUV2ZW50KGNvbnN0IFdl
YktleWJvYXJkRXZlbnQmIGV2ZW50KQogewogICAgIHJldHVybiBtX3dpZGdldC0+aGFuZGxlS2V5
RXZlbnQoUGxhdGZvcm1LZXlib2FyZEV2ZW50QnVpbGRlcihldmVudCkpOwogfQpAQCAtMTY4LDcg
KzE2Niw3IEBAIHZvaWQgV2ViUG9wdXBNZW51SW1wbDo6Y2xvc2UoKQogCiAgICAgbV9jbGllbnQg
PSAwOwogCi0gICAgZGVyZWYoKTsgIC8vIEJhbGFuY2VzIHJlZigpIGZyb20gV2ViV2lkZ2V0OjpD
cmVhdGUKKyAgICBkZXJlZigpOyAvLyBCYWxhbmNlcyByZWYoKSBmcm9tIFdlYldpZGdldDo6Q3Jl
YXRlLgogfQogCiB2b2lkIFdlYlBvcHVwTWVudUltcGw6OndpbGxTdGFydExpdmVSZXNpemUoKQpA
QCAtMjE4LDcgKzIxNiw3IEBAIHZvaWQgV2ViUG9wdXBNZW51SW1wbDo6dGhlbWVDaGFuZ2VkKCkK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYlBvcHVwTWVudUltcGw6OmNvbXBv
c2l0ZShib29sIGZpbmlzaCkKK3ZvaWQgV2ViUG9wdXBNZW51SW1wbDo6Y29tcG9zaXRlKGJvb2wp
CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTIyOCwyOCArMjI2LDI4IEBAIGJvb2wg
V2ViUG9wdXBNZW51SW1wbDo6aGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJJbnB1dEV2ZW50JiBp
bnB1dEV2ZW50KQogICAgIGlmICghbV93aWRnZXQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIC8vIFRPRE8gKGpjYW1wYW4pOiBXZWJLaXQgc2VlbXMgdG8gYWx3YXlzIHJldHVybiBmYWxz
ZSBvbiBtb3VzZSBldmVudHMKLSAgICAvLyBtZXRob2RzLiBGb3Igbm93IHdlJ2xsIGFzc3VtZSBp
dCBoYXMgcHJvY2Vzc2VkIHRoZW0gKGFzIHdlIGFyZSBvbmx5Ci0gICAgLy8gaW50ZXJlc3RlZCBp
biB3aGV0aGVyIGtleWJvYXJkIGV2ZW50cyBhcmUgcHJvY2Vzc2VkKS4KKyAgICAvLyBGSVhNRTog
V2ViS2l0IHNlZW1zIHRvIGFsd2F5cyByZXR1cm4gZmFsc2Ugb24gbW91c2UgZXZlbnRzIG1ldGhv
ZHMuIEZvcgorICAgIC8vIG5vdyB3ZSdsbCBhc3N1bWUgaXQgaGFzIHByb2Nlc3NlZCB0aGVtIChh
cyB3ZSBhcmUgb25seSBpbnRlcmVzdGVkIGluCisgICAgLy8gd2hldGhlciBrZXlib2FyZCBldmVu
dHMgYXJlIHByb2Nlc3NlZCkuCiAgICAgc3dpdGNoIChpbnB1dEV2ZW50LnR5cGUpIHsKICAgICBj
YXNlIFdlYklucHV0RXZlbnQ6Ok1vdXNlTW92ZToKLSAgICAgICAgTW91c2VNb3ZlKCpzdGF0aWNf
Y2FzdDxjb25zdCBXZWJNb3VzZUV2ZW50Kj4oJmlucHV0RXZlbnQpKTsKKyAgICAgICAgaGFuZGxl
TW91c2VNb3ZlKCpzdGF0aWNfY2FzdDxjb25zdCBXZWJNb3VzZUV2ZW50Kj4oJmlucHV0RXZlbnQp
KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Ok1vdXNl
TGVhdmU6Ci0gICAgICAgIE1vdXNlTGVhdmUoKnN0YXRpY19jYXN0PGNvbnN0IFdlYk1vdXNlRXZl
bnQqPigmaW5wdXRFdmVudCkpOworICAgICAgICBoYW5kbGVNb3VzZUxlYXZlKCpzdGF0aWNfY2Fz
dDxjb25zdCBXZWJNb3VzZUV2ZW50Kj4oJmlucHV0RXZlbnQpKTsKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Ok1vdXNlV2hlZWw6Ci0gICAgICAgIE1vdXNl
V2hlZWwoKnN0YXRpY19jYXN0PGNvbnN0IFdlYk1vdXNlV2hlZWxFdmVudCo+KCZpbnB1dEV2ZW50
KSk7CisgICAgICAgIGhhbmRsZU1vdXNlV2hlZWwoKnN0YXRpY19jYXN0PGNvbnN0IFdlYk1vdXNl
V2hlZWxFdmVudCo+KCZpbnB1dEV2ZW50KSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAg
Y2FzZSBXZWJJbnB1dEV2ZW50OjpNb3VzZURvd246Ci0gICAgICAgIE1vdXNlRG93bigqc3RhdGlj
X2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVudCo+KCZpbnB1dEV2ZW50KSk7CisgICAgICAgIGhhbmRs
ZU1vdXNlRG93bigqc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVudCo+KCZpbnB1dEV2ZW50
KSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpNb3Vz
ZVVwOgotICAgICAgICBNb3VzZVVwKCpzdGF0aWNfY2FzdDxjb25zdCBXZWJNb3VzZUV2ZW50Kj4o
JmlucHV0RXZlbnQpKTsKKyAgICAgICAgaGFuZGxlTW91c2VVcCgqc3RhdGljX2Nhc3Q8Y29uc3Qg
V2ViTW91c2VFdmVudCo+KCZpbnB1dEV2ZW50KSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogCiAg
ICAgLy8gSW4gV2luZG93cywgUmF3S2V5RG93biBvbmx5IGhhcyBpbmZvcm1hdGlvbiBhYm91dCB0
aGUgcGh5c2ljYWwga2V5LCBidXQKQEAgLTI2NCwxMyArMjYyLDEzIEBAIGJvb2wgV2ViUG9wdXBN
ZW51SW1wbDo6aGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJJbnB1dEV2ZW50JiBpbnB1dEV2ZW50
KQogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6S2V5RG93bjoKICAgICBjYXNlIFdlYklucHV0RXZl
bnQ6OktleVVwOgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6Q2hhcjoKLSAgICAgICAgcmV0dXJu
IEtleUV2ZW50KCpzdGF0aWNfY2FzdDxjb25zdCBXZWJLZXlib2FyZEV2ZW50Kj4oJmlucHV0RXZl
bnQpKTsKKyAgICAgICAgcmV0dXJuIGhhbmRsZUtleUV2ZW50KCpzdGF0aWNfY2FzdDxjb25zdCBX
ZWJLZXlib2FyZEV2ZW50Kj4oJmlucHV0RXZlbnQpKTsKIAogICAgIGNhc2UgV2ViSW5wdXRFdmVu
dDo6VG91Y2hTdGFydDoKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6OlRvdWNoTW92ZToKICAgICBj
YXNlIFdlYklucHV0RXZlbnQ6OlRvdWNoRW5kOgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6VG91
Y2hDYW5jZWw6Ci0gICAgICAgIHJldHVybiBUb3VjaEV2ZW50KCpzdGF0aWNfY2FzdDxjb25zdCBX
ZWJUb3VjaEV2ZW50Kj4oJmlucHV0RXZlbnQpKTsKKyAgICAgICAgcmV0dXJuIGhhbmRsZVRvdWNo
RXZlbnQoKnN0YXRpY19jYXN0PGNvbnN0IFdlYlRvdWNoRXZlbnQqPigmaW5wdXRFdmVudCkpOwog
CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlU2Nyb2xsQmVnaW46CiAgICAgY2FzZSBX
ZWJJbnB1dEV2ZW50OjpHZXN0dXJlU2Nyb2xsRW5kOgpAQCAtMjc4LDcgKzI3Niw3IEBAIGJvb2wg
V2ViUG9wdXBNZW51SW1wbDo6aGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJJbnB1dEV2ZW50JiBp
bnB1dEV2ZW50KQogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZUZsaW5nU3RhcnQ6CiAg
ICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlRmxpbmdDYW5jZWw6CiAgICAgY2FzZSBXZWJJ
bnB1dEV2ZW50OjpHZXN0dXJlVGFwOgotICAgICAgICByZXR1cm4gR2VzdHVyZUV2ZW50KCpzdGF0
aWNfY2FzdDxjb25zdCBXZWJHZXN0dXJlRXZlbnQqPigmaW5wdXRFdmVudCkpOworICAgICAgICBy
ZXR1cm4gaGFuZGxlR2VzdHVyZUV2ZW50KCpzdGF0aWNfY2FzdDxjb25zdCBXZWJHZXN0dXJlRXZl
bnQqPigmaW5wdXRFdmVudCkpOwogCiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpVbmRlZmluZWQ6
CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpNb3VzZUVudGVyOgpAQCAtMjkyLDcgKzI5MCw3IEBA
IHZvaWQgV2ViUG9wdXBNZW51SW1wbDo6bW91c2VDYXB0dXJlTG9zdCgpCiB7CiB9CiAKLXZvaWQg
V2ViUG9wdXBNZW51SW1wbDo6c2V0Rm9jdXMoYm9vbCBlbmFibGUpCit2b2lkIFdlYlBvcHVwTWVu
dUltcGw6OnNldEZvY3VzKGJvb2wpCiB7CiB9CiAKQEAgLTMwMSw5ICsyOTksNyBAQCB2b2lkIFdl
YlBvcHVwTWVudTo6c2V0TWluaW11bVJvd0hlaWdodChpbnQgbWluaW11bVJvd0hlaWdodCkKICAg
ICBQb3B1cE1lbnVDaHJvbWl1bTo6c2V0TWluaW11bVJvd0hlaWdodChtaW5pbXVtUm93SGVpZ2h0
KTsKIH0KIAotYm9vbCBXZWJQb3B1cE1lbnVJbXBsOjpzZXRDb21wb3NpdGlvbigKLSAgICBjb25z
dCBXZWJTdHJpbmcmIHRleHQsIGNvbnN0IFdlYlZlY3RvcjxXZWJDb21wb3NpdGlvblVuZGVybGlu
ZT4mIHVuZGVybGluZXMsCi0gICAgaW50IHNlbGVjdGlvblN0YXJ0LCBpbnQgc2VsZWN0aW9uRW5k
KQorYm9vbCBXZWJQb3B1cE1lbnVJbXBsOjpzZXRDb21wb3NpdGlvbihjb25zdCBXZWJTdHJpbmcm
LCBjb25zdCBXZWJWZWN0b3I8V2ViQ29tcG9zaXRpb25VbmRlcmxpbmU+JiwgaW50LCBpbnQpCiB7
CiAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtMzEzLDcgKzMwOSw3IEBAIGJvb2wgV2ViUG9wdXBN
ZW51SW1wbDo6Y29uZmlybUNvbXBvc2l0aW9uKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJv
b2wgV2ViUG9wdXBNZW51SW1wbDo6Y29uZmlybUNvbXBvc2l0aW9uKGNvbnN0IFdlYlN0cmluZyYg
dGV4dCkKK2Jvb2wgV2ViUG9wdXBNZW51SW1wbDo6Y29uZmlybUNvbXBvc2l0aW9uKGNvbnN0IFdl
YlN0cmluZyYpCiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtMzM3LDcgKzMzMyw3IEBAIGJv
b2wgV2ViUG9wdXBNZW51SW1wbDo6Y2FyZXRPclNlbGVjdGlvblJhbmdlKHNpemVfdCogbG9jYXRp
b24sIHNpemVfdCogbGVuZ3RoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBXZWJQb3B1
cE1lbnVJbXBsOjpzZXRUZXh0RGlyZWN0aW9uKFdlYlRleHREaXJlY3Rpb24gZGlyZWN0aW9uKQor
dm9pZCBXZWJQb3B1cE1lbnVJbXBsOjpzZXRUZXh0RGlyZWN0aW9uKFdlYlRleHREaXJlY3Rpb24p
CiB7CiB9CiAKQEAgLTM0NSwxMSArMzQxLDYgQEAgdm9pZCBXZWJQb3B1cE1lbnVJbXBsOjpzZXRU
ZXh0RGlyZWN0aW9uKFdlYlRleHREaXJlY3Rpb24gZGlyZWN0aW9uKQogLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogLy8gV2ViQ29yZTo6SG9zdFdpbmRvdwogCi12b2lkIFdlYlBvcHVwTWVudUltcGw6
OmludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiwgYm9vbCkKLXsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotfQotCiB2b2lkIFdlYlBvcHVwTWVudUltcGw6OmludmFsaWRhdGVSb290Vmll
dyhjb25zdCBJbnRSZWN0JiwgYm9vbCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpAQCAtMzcy
LDkgKzM2Myw3IEBAIHZvaWQgV2ViUG9wdXBNZW51SW1wbDo6c2NoZWR1bGVBbmltYXRpb24oKQog
ewogfQogCi12b2lkIFdlYlBvcHVwTWVudUltcGw6OnNjcm9sbChjb25zdCBJbnRTaXplJiBzY3Jv
bGxEZWx0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEludFJlY3QmIHNj
cm9sbFJlY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRSZWN0JiBj
bGlwUmVjdCkKK3ZvaWQgV2ViUG9wdXBNZW51SW1wbDo6c2Nyb2xsKGNvbnN0IEludFNpemUmIHNj
cm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRSZWN0JiBjbGlw
UmVjdCkKIHsKICAgICBpZiAobV9jbGllbnQpIHsKICAgICAgICAgaW50IGR4ID0gc2Nyb2xsRGVs
dGEud2lkdGgoKTsKQEAgLTM5NSwxMiArMzg0LDYgQEAgSW50UmVjdCBXZWJQb3B1cE1lbnVJbXBs
Ojpyb290Vmlld1RvU2NyZWVuKGNvbnN0IEludFJlY3QmIHJlY3QpIGNvbnN0CiAgICAgcmV0dXJu
IEludFJlY3QoKTsKIH0KIAotdm9pZCBXZWJQb3B1cE1lbnVJbXBsOjpzY3JvbGxSZWN0SW50b1Zp
ZXcoY29uc3QgSW50UmVjdCYpIGNvbnN0Ci17Ci0gICAgLy8gTm90aGluZyB0byBiZSBkb25lIGhl
cmUgc2luY2Ugd2UgZG8gbm90IGhhdmUgdGhlIGNvbmNlcHQgb2YgYSBjb250YWluZXIKLSAgICAv
LyB0aGF0IGltcGxlbWVudHMgaXRzIG93biBzY3JvbGxpbmcuCi19Ci0KIHZvaWQgV2ViUG9wdXBN
ZW51SW1wbDo6c2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdAogewogICAgIC8vIE5vdGhp
bmcgdG8gYmUgZG9uZSBzaW5jZSB3ZSBoYXZlIG5vIGNvbmNlcHQgb2YgZGlmZmVyZW50IHNjcm9s
bGJhciBtb2Rlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBv
cHVwTWVudUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUlt
cGwuaAppbmRleCAxZGVjNzdjMjhmOTZjMjBjNTU5ZWI0ZTE3ZmQ4ZWEzOWU4YmU5MWIxLi4wYWQw
Mzk2M2E3NjY1NTVlMDU4YjE3YjBjZDdiMjczNTA3NDUwYjE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQb3B1cE1lbnVJbXBsLmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51SW1wbC5oCkBAIC0zMiw4ICszMiw4IEBACiAjZGVm
aW5lIFdlYlBvcHVwTWVudUltcGxfaAogCiAjaW5jbHVkZSAiRnJhbWVsZXNzU2Nyb2xsVmlld0Ns
aWVudC5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYlBvaW50LmgiCiAjaW5jbHVkZSAiV2ViUG9w
dXBNZW51LmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViUG9pbnQuaCIKICNpbmNsdWRlICJwbGF0
Zm9ybS9XZWJTaXplLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CkBAIC02NSw4MSArNjUsNzggQEAgY2xhc3MgV2ViUG9wdXBNZW51SW1wbCA6
IHB1YmxpYyBXZWJQb3B1cE1lbnUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFJl
ZkNvdW50ZWQ8V2ViUG9wdXBNZW51SW1wbD4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotICAgIC8vIFdlYldpZGdldAotICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpOwot
ICAgIHZpcnR1YWwgV2ViU2l6ZSBzaXplKCkgeyByZXR1cm4gbV9zaXplOyB9Ci0gICAgdmlydHVh
bCB2b2lkIHdpbGxTdGFydExpdmVSZXNpemUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzaXplKGNv
bnN0IFdlYlNpemUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbEVuZExpdmVSZXNpemUoKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgYW5pbWF0ZShkb3VibGUgZnJhbWVCZWdpblRpbWUpOwotICAgIHZpcnR1
YWwgdm9pZCBsYXlvdXQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoV2ViQ2FudmFzKiBjYW52
YXMsIGNvbnN0IFdlYlJlY3QmIHJlY3QpOwotICAgIHZpcnR1YWwgdm9pZCB0aGVtZUNoYW5nZWQo
KTsKLSAgICB2aXJ0dWFsIHZvaWQgY29tcG9zaXRlKGJvb2wgZmluaXNoKTsKLSAgICB2aXJ0dWFs
IGJvb2wgaGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJJbnB1dEV2ZW50Jik7Ci0gICAgdmlydHVh
bCB2b2lkIG1vdXNlQ2FwdHVyZUxvc3QoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9jdXMoYm9v
bCBlbmFibGUpOworICAgIC8vIFdlYldpZGdldCBmdW5jdGlvbnM6CisgICAgdmlydHVhbCB2b2lk
IGNsb3NlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJTaXplIHNpemUoKSBPVkVSUklERSB7
IHJldHVybiBtX3NpemU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0YXJ0TGl2ZVJlc2l6ZSgp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXNpemUoY29uc3QgV2ViU2l6ZSYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRW5kTGl2ZVJlc2l6ZSgpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBhbmltYXRlKGRvdWJsZSBmcmFtZUJlZ2luVGltZSkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIGxheW91dCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYWlu
dChXZWJDYW52YXMqLCBjb25zdCBXZWJSZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHRoZW1lQ2hhbmdlZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb21wb3NpdGUoYm9v
bCBmaW5pc2gpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVJbnB1dEV2ZW50KGNv
bnN0IFdlYklucHV0RXZlbnQmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbW91c2VDYXB0
dXJlTG9zdCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1cyhib29sIGVuYWJs
ZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNldENvbXBvc2l0aW9uKAogICAgICAgICBj
b25zdCBXZWJTdHJpbmcmIHRleHQsCiAgICAgICAgIGNvbnN0IFdlYlZlY3RvcjxXZWJDb21wb3Np
dGlvblVuZGVybGluZT4mIHVuZGVybGluZXMsCi0gICAgICAgIGludCBzZWxlY3Rpb25TdGFydCwg
aW50IHNlbGVjdGlvbkVuZCk7Ci0gICAgdmlydHVhbCBib29sIGNvbmZpcm1Db21wb3NpdGlvbigp
OwotICAgIHZpcnR1YWwgYm9vbCBjb25maXJtQ29tcG9zaXRpb24oY29uc3QgV2ViU3RyaW5nJiB0
ZXh0KTsKLSAgICB2aXJ0dWFsIGJvb2wgY29tcG9zaXRpb25SYW5nZShzaXplX3QqIGxvY2F0aW9u
LCBzaXplX3QqIGxlbmd0aCk7Ci0gICAgdmlydHVhbCBXZWJUZXh0SW5wdXRUeXBlIHRleHRJbnB1
dFR5cGUoKTsKLSAgICB2aXJ0dWFsIGJvb2wgY2FyZXRPclNlbGVjdGlvblJhbmdlKHNpemVfdCog
bG9jYXRpb24sIHNpemVfdCogbGVuZ3RoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dERpcmVj
dGlvbihXZWJUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbik7Ci0gICAgdmlydHVhbCBib29sIGlzQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
ICAgIGludCBzZWxlY3Rpb25TdGFydCwgaW50IHNlbGVjdGlvbkVuZCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBib29sIGNvbmZpcm1Db21wb3NpdGlvbigpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
Ym9vbCBjb25maXJtQ29tcG9zaXRpb24oY29uc3QgV2ViU3RyaW5nJiB0ZXh0KSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIGJvb2wgY29tcG9zaXRpb25SYW5nZShzaXplX3QqIGxvY2F0aW9uLCBzaXpl
X3QqIGxlbmd0aCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJUZXh0SW5wdXRUeXBlIHRleHRJ
bnB1dFR5cGUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FyZXRPclNlbGVjdGlvblJh
bmdlKHNpemVfdCogbG9jYXRpb24sIHNpemVfdCogbGVuZ3RoKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0VGV4dERpcmVjdGlvbihXZWJUZXh0RGlyZWN0aW9uKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIFdlYlBvcHVwTWVudUltcGwKLSAgICB2
b2lkIEluaXQoV2ViQ29yZTo6RnJhbWVsZXNzU2Nyb2xsVmlldyogd2lkZ2V0LAotICAgICAgICAg
ICAgICBjb25zdCBXZWJSZWN0JiBib3VuZHMpOworICAgIHZvaWQgaW5pdChXZWJDb3JlOjpGcmFt
ZWxlc3NTY3JvbGxWaWV3KiB3aWRnZXQsIGNvbnN0IFdlYlJlY3QmIGJvdW5kcyk7CiAKICAgICBX
ZWJXaWRnZXRDbGllbnQqIGNsaWVudCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKLSAgICB2b2lk
IE1vdXNlTW92ZShjb25zdCBXZWJNb3VzZUV2ZW50Jik7Ci0gICAgdm9pZCBNb3VzZUxlYXZlKGNv
bnN0IFdlYk1vdXNlRXZlbnQmKTsKLSAgICB2b2lkIE1vdXNlRG93bihjb25zdCBXZWJNb3VzZUV2
ZW50Jik7Ci0gICAgdm9pZCBNb3VzZVVwKGNvbnN0IFdlYk1vdXNlRXZlbnQmKTsKLSAgICB2b2lk
IE1vdXNlRG91YmxlQ2xpY2soY29uc3QgV2ViTW91c2VFdmVudCYpOwotICAgIHZvaWQgTW91c2VX
aGVlbChjb25zdCBXZWJNb3VzZVdoZWVsRXZlbnQmKTsKLSAgICBib29sIEdlc3R1cmVFdmVudChj
b25zdCBXZWJHZXN0dXJlRXZlbnQmKTsKLSAgICBib29sIFRvdWNoRXZlbnQoY29uc3QgV2ViVG91
Y2hFdmVudCYpOwotICAgIGJvb2wgS2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYpOwor
ICAgIHZvaWQgaGFuZGxlTW91c2VNb3ZlKGNvbnN0IFdlYk1vdXNlRXZlbnQmKTsKKyAgICB2b2lk
IGhhbmRsZU1vdXNlTGVhdmUoY29uc3QgV2ViTW91c2VFdmVudCYpOworICAgIHZvaWQgaGFuZGxl
TW91c2VEb3duKGNvbnN0IFdlYk1vdXNlRXZlbnQmKTsKKyAgICB2b2lkIGhhbmRsZU1vdXNlVXAo
Y29uc3QgV2ViTW91c2VFdmVudCYpOworICAgIHZvaWQgaGFuZGxlTW91c2VEb3VibGVDbGljayhj
b25zdCBXZWJNb3VzZUV2ZW50Jik7CisgICAgdm9pZCBoYW5kbGVNb3VzZVdoZWVsKGNvbnN0IFdl
Yk1vdXNlV2hlZWxFdmVudCYpOworICAgIGJvb2wgaGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0IFdl
Ykdlc3R1cmVFdmVudCYpOworICAgIGJvb2wgaGFuZGxlVG91Y2hFdmVudChjb25zdCBXZWJUb3Vj
aEV2ZW50Jik7CisgICAgYm9vbCBoYW5kbGVLZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50
Jik7CiAKICAgIHByb3RlY3RlZDoKLSAgICBmcmllbmQgY2xhc3MgV2ViUG9wdXBNZW51OyAgLy8g
Rm9yIFdlYlBvcHVwTWVudTo6Y3JlYXRlCisgICAgZnJpZW5kIGNsYXNzIFdlYlBvcHVwTWVudTsg
Ly8gRm9yIFdlYlBvcHVwTWVudTo6Y3JlYXRlLgogICAgIGZyaWVuZCBjbGFzcyBXVEY6OlJlZkNv
dW50ZWQ8V2ViUG9wdXBNZW51SW1wbD47CiAKLSAgICBXZWJQb3B1cE1lbnVJbXBsKFdlYldpZGdl
dENsaWVudCogY2xpZW50KTsKKyAgICBXZWJQb3B1cE1lbnVJbXBsKFdlYldpZGdldENsaWVudCop
OwogICAgIH5XZWJQb3B1cE1lbnVJbXBsKCk7CiAKICAgICAvLyBXZWJDb3JlOjpIb3N0V2luZG93
IG1ldGhvZHM6Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50cyhjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiwgYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmll
dyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIGludmFs
aWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKTsK
LSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQW5pbWF0
aW9uKCk7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiwgYm9vbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVD
b250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNj
aGVkdWxlQW5pbWF0aW9uKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbCgKICAg
ICAgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIHNjcm9sbFJlY3QsCi0gICAgICAgIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNs
aXBSZWN0KTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRvUm9vdFZpZXco
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBjb25zdDsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6Oklu
dFJlY3Qgcm9vdFZpZXdUb1NjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3Q7Ci0g
ICAgdmlydHVhbCBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3Qg
eyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9k
ZURpZENoYW5nZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2Vi
Q29yZTo6Q3Vyc29yJik7Ci0gICAgdmlydHVhbCB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91
c2VNb3Zlcyhib29sKTsKKyAgICAgICAgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3Qp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuVG9Sb290Vmll
dyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwg
V2ViQ29yZTo6SW50UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9y
bVBhZ2VDbGllbnQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCB2
b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpIE9WRVJSSURF
OwogCiAgICAgLy8gV2ViQ29yZTo6RnJhbWVsZXNzU2Nyb2xsVmlld0NsaWVudCBtZXRob2RzOgot
ICAgIHZpcnR1YWwgdm9pZCBwb3B1cENsb3NlZChXZWJDb3JlOjpGcmFtZWxlc3NTY3JvbGxWaWV3
Kik7CisgICAgdmlydHVhbCB2b2lkIHBvcHVwQ2xvc2VkKFdlYkNvcmU6OkZyYW1lbGVzc1Njcm9s
bFZpZXcqKSBPVkVSUklERTsKIAogICAgIFdlYldpZGdldENsaWVudCogbV9jbGllbnQ7CiAgICAg
V2ViU2l6ZSBtX3NpemU7CiAKICAgICBXZWJQb2ludCBtX2xhc3RNb3VzZVBvc2l0aW9uOwogCi0g
ICAgLy8gVGhpcyBpcyBhIG5vbi1vd25pbmcgcmVmLiAgVGhlIHBvcHVwIHdpbGwgbm90aWZ5IHVz
IHZpYSBwb3B1cENsb3NlZCgpCisgICAgLy8gVGhpcyBpcyBhIG5vbi1vd25pbmcgcmVmLiBUaGUg
cG9wdXAgd2lsbCBub3RpZnkgdXMgdmlhIHBvcHVwQ2xvc2VkKCkKICAgICAvLyBiZWZvcmUgaXQg
aXMgZGVzdHJveWVkLgogICAgIFdlYkNvcmU6OkZyYW1lbGVzc1Njcm9sbFZpZXcqIG1fd2lkZ2V0
OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122741</attachid>
            <date>2012-01-17 02:33:44 -0800</date>
            <delta_ts>2012-01-26 18:32:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76441-20120117193342.patch</filename>
            <type>text/plain</type>
            <size>19953</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGU2Y2RiM2Y4ZmIzODVmMmQ3MTY0OTc5MDhkYjU4MWZiOGVjNTE4NmQuLmJmODVjYWJkMzkwYTEx
NGRhOWJlMzAzMjNmZmIwMDBmOTRlZmJkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzkgQEAKKzIwMTItMDEtMTcgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gQ2xlYW51cCBvZiBXZWJQb3B1cE1lbnVJbXBsCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ0MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgV2Vi
UG9wdXBNZW51SW1wbDo6aW52YWxpZGF0ZUNvbnRlbnRzKCkgYW5kIHNjcm9sbFJlY3RJbnRvVmll
dygpCisgICAgICAgIGJlY2F1c2UgdGhleSB3ZXJlIHJlbW92ZWQgZnJvbSBIb3N0V2luZG93IGlu
IHI1ODQ0NSBhbmQgcjU1ODY0LiBUaGV5CisgICAgICAgIHdlcmUgZm91bmQgYnkgT1ZFUlJJREUu
CisKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkNocm9tZUNsaWVudEltcGw6OnBvcHVwT3BlbmVkKTogUmVuYW1lIFdlYlBvcHVwTWVudUltcGw6
OkluaXQoKS4KKyAgICAgICAgKiBzcmMvV2ViUG9wdXBNZW51SW1wbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBvcHVwTWVudUltcGw6OldlYlBvcHVwTWVudUltcGwpOiBVcGRhdGUgYSBjb21t
ZW50LgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVJbXBsOjppbml0KTogUmVuYW1lZCBm
cm9tIEluaXQoKS4gVXBkYXRlIGEgY29tbWVudC4KKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBN
ZW51SW1wbDo6aGFuZGxlTW91c2VNb3ZlKTogUHJlcGVuZCAiaGFuZGxlIiB0byB0aGUgbmFtZS4K
KyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51SW1wbDo6aGFuZGxlTW91c2VMZWF2ZSk6IGRp
dHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVNb3VzZURvd24p
OiBkaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51SW1wbDo6aGFuZGxlTW91c2VV
cCk6IGRpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVNb3Vz
ZVdoZWVsKTogZGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudUltcGw6OmhhbmRs
ZUdlc3R1cmVFdmVudCk6IGRpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVJbXBs
OjpoYW5kbGVUb3VjaEV2ZW50KTogZGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVu
dUltcGw6OmhhbmRsZUtleUV2ZW50KTogZGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVw
TWVudUltcGw6OmNsb3NlKTogVXBkYXRlIGEgY29tbWVudC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UG9wdXBNZW51SW1wbDo6Y29tcG9zaXRlKTogUmVtb3ZlIGEgdW51c2VkIGFyZ3VtZW50IG5hbWUu
CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudUltcGw6OmhhbmRsZUlucHV0RXZlbnQpOiBV
cGRhdGUgYSBjb21tZW50LiBVcGRhdGUgY2FsbHNpdGVzIGZvciBoYW5kbGUqKCkuCisgICAgICAg
IChXZWJLaXQ6OldlYlBvcHVwTWVudUltcGw6OnNldEZvY3VzKTogUmVtb3ZlIGEgdW51c2VkIGFy
Z3VtZW50IG5hbWUuCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudUltcGw6OnNldENvbXBv
c2l0aW9uKTogZGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudUltcGw6OmNvbmZp
cm1Db21wb3NpdGlvbik6IGRpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVJbXBs
OjpzZXRUZXh0RGlyZWN0aW9uKTogZGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVu
dUltcGw6OnNjcm9sbCk6IFVuZm9sZCBmb2xkZWQgbGluZXMuCisgICAgICAgICogc3JjL1dlYlBv
cHVwTWVudUltcGwuaDoKKyAgICAgICAgIC0gUmVtb3ZlIHVzZWxlc3MgYXJndW1lbnQgbmFtZXMu
CisgICAgICAgICAtIEFkZCBPVkVSUklERS4KKwogMjAxMi0wMS0xNiAgQmlsbCBCdWRnZSAgPGJi
dWRnZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ2hhbmdlcyBBc3NvY2lhdGVkVVJMTG9hZGVy
IHRvIHJlbW92ZSBub24td2hpdGVsaXN0ZWQgSFRUUCByZXNwb25zZSBoZWFkZXJzIGZvciBDT1JT
IHJlcXVlc3RzLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21l
Q2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJ
bXBsLmNwcAppbmRleCA1ZjI4NTFiYjU4NzdjOWZmNzQyNmQ3YThjMWU1ZDEzODY0ZmEwMmNmLi4x
OTAzYjE5MDBhMWMwMzMwZTY5NjUyODI4NjJjOGE1YWM5YWMyOGJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtNzczLDcgKzc3Myw3
IEBAIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6cG9wdXBPcGVuZWQoUG9wdXBDb250YWluZXIqIHBv
cHVwQ29udGFpbmVyLAogICAgICAgICAvLyB0cmFuc3BhcmVudCB0byB0aGUgV2ViVmlldy4KICAg
ICAgICAgbV93ZWJWaWV3LT5wb3B1cE9wZW5lZChwb3B1cENvbnRhaW5lcik7CiAgICAgfQotICAg
IHN0YXRpY19jYXN0PFdlYlBvcHVwTWVudUltcGwqPih3ZWJ3aWRnZXQpLT5Jbml0KHBvcHVwQ29u
dGFpbmVyLCBib3VuZHMpOworICAgIHN0YXRpY19jYXN0PFdlYlBvcHVwTWVudUltcGwqPih3ZWJ3
aWRnZXQpLT5pbml0KHBvcHVwQ29udGFpbmVyLCBib3VuZHMpOwogfQogCiB2b2lkIENocm9tZUNs
aWVudEltcGw6OnBvcHVwQ2xvc2VkKFdlYkNvcmU6OlBvcHVwQ29udGFpbmVyKiBwb3B1cENvbnRh
aW5lcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVu
dUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51SW1wbC5j
cHAKaW5kZXggODRjNjZhNmQyY2E1ODVmMTZmNGVkNjNlNThmZWYyOTFiOGJkYmFlNC4uZDJkNmUy
NDdkOGFjODdhZjJiNDA0MWVhNmYyZGFkZTc4ZTY3ZjNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51SW1wbC5jcHAKQEAgLTMyLDI1ICszMiwyMyBAQAog
I2luY2x1ZGUgIldlYlBvcHVwTWVudUltcGwuaCIKIAogI2luY2x1ZGUgIkN1cnNvci5oIgotI2lu
Y2x1ZGUgIkZyYW1lbGVzc1Njcm9sbFZpZXcuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNp
bmNsdWRlICJGcmFtZWxlc3NTY3JvbGxWaWV3LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSAicGFpbnRpbmcvR3JhcGhpY3NDb250
ZXh0QnVpbGRlci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5o
IgogI2luY2x1ZGUgIlBvcHVwQ29udGFpbmVyLmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51Q2hyb21p
dW0uaCIKICNpbmNsdWRlICJTa2lhVXRpbHMuaCIKLQogI2luY2x1ZGUgIldlYklucHV0RXZlbnQu
aCIKICNpbmNsdWRlICJXZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIldlYlJh
bmdlLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViUmVjdC5oIgogI2luY2x1ZGUgIldlYlZpZXdD
bGllbnQuaCIKICNpbmNsdWRlICJXZWJXaWRnZXRDbGllbnQuaCIKLQorI2luY2x1ZGUgInBhaW50
aW5nL0dyYXBoaWNzQ29udGV4dEJ1aWxkZXIuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJSZWN0
LmgiCiAjaW5jbHVkZSA8c2tpYS9leHQvcGxhdGZvcm1fY2FudmFzLmg+CiAKICNpZiBFTkFCTEUo
R0VTVFVSRV9SRUNPR05JWkVSKQpAQCAtNzksNyArNzcsNyBAQCBXZWJQb3B1cE1lbnVJbXBsOjpX
ZWJQb3B1cE1lbnVJbXBsKFdlYldpZGdldENsaWVudCogY2xpZW50KQogICAgICwgbV9nZXN0dXJl
UmVjb2duaXplcihXZWJDb3JlOjpQbGF0Zm9ybUdlc3R1cmVSZWNvZ25pemVyOjpjcmVhdGUoKSkK
ICNlbmRpZgogewotICAgIC8vIHNldCB0byBpbXBvc3NpYmxlIHBvaW50IHNvIHdlIGFsd2F5cyBn
ZXQgdGhlIGZpcnN0IG1vdXNlIHBvcworICAgIC8vIFNldCB0byBpbXBvc3NpYmxlIHBvaW50IHNv
IHdlIGFsd2F5cyBnZXQgdGhlIGZpcnN0IG1vdXNlIHBvc2l0aW9uLgogICAgIG1fbGFzdE1vdXNl
UG9zaXRpb24gPSBXZWJQb2ludCgtMSwgLTEpOwogfQogCkBAIC04OSwyMCArODcsMjAgQEAgV2Vi
UG9wdXBNZW51SW1wbDo6fldlYlBvcHVwTWVudUltcGwoKQogICAgICAgICBtX3dpZGdldC0+c2V0
Q2xpZW50KDApOwogfQogCi12b2lkIFdlYlBvcHVwTWVudUltcGw6OkluaXQoRnJhbWVsZXNzU2Ny
b2xsVmlldyogd2lkZ2V0LCBjb25zdCBXZWJSZWN0JiBib3VuZHMpCit2b2lkIFdlYlBvcHVwTWVu
dUltcGw6OmluaXQoRnJhbWVsZXNzU2Nyb2xsVmlldyogd2lkZ2V0LCBjb25zdCBXZWJSZWN0JiBi
b3VuZHMpCiB7CiAgICAgbV93aWRnZXQgPSB3aWRnZXQ7CiAgICAgbV93aWRnZXQtPnNldENsaWVu
dCh0aGlzKTsKIAogICAgIGlmIChtX2NsaWVudCkgewogICAgICAgICBtX2NsaWVudC0+c2V0V2lu
ZG93UmVjdChib3VuZHMpOwotICAgICAgICBtX2NsaWVudC0+c2hvdyhXZWJOYXZpZ2F0aW9uUG9s
aWN5KCkpOyAgLy8gUG9saWN5IGlzIGlnbm9yZWQKKyAgICAgICAgbV9jbGllbnQtPnNob3coV2Vi
TmF2aWdhdGlvblBvbGljeSgpKTsgLy8gUG9saWN5IGlzIGlnbm9yZWQuCiAgICAgfQogfQogCi12
b2lkIFdlYlBvcHVwTWVudUltcGw6Ok1vdXNlTW92ZShjb25zdCBXZWJNb3VzZUV2ZW50JiBldmVu
dCkKK3ZvaWQgV2ViUG9wdXBNZW51SW1wbDo6aGFuZGxlTW91c2VNb3ZlKGNvbnN0IFdlYk1vdXNl
RXZlbnQmIGV2ZW50KQogewotICAgIC8vIGRvbid0IHNlbmQgbW91c2UgbW92ZSBtZXNzYWdlcyBp
ZiB0aGUgbW91c2UgaGFzbid0IG1vdmVkLgorICAgIC8vIERvbid0IHNlbmQgbW91c2UgbW92ZSBt
ZXNzYWdlcyBpZiB0aGUgbW91c2UgaGFzbid0IG1vdmVkLgogICAgIGlmIChldmVudC54ICE9IG1f
bGFzdE1vdXNlUG9zaXRpb24ueCB8fCBldmVudC55ICE9IG1fbGFzdE1vdXNlUG9zaXRpb24ueSkg
ewogICAgICAgICBtX2xhc3RNb3VzZVBvc2l0aW9uID0gV2ViUG9pbnQoZXZlbnQueCwgZXZlbnQu
eSk7CiAgICAgICAgIG1fd2lkZ2V0LT5oYW5kbGVNb3VzZU1vdmVFdmVudChQbGF0Zm9ybU1vdXNl
RXZlbnRCdWlsZGVyKG1fd2lkZ2V0LCBldmVudCkpOwpAQCAtMTEzLDM0ICsxMTEsMzQgQEAgdm9p
ZCBXZWJQb3B1cE1lbnVJbXBsOjpNb3VzZU1vdmUoY29uc3QgV2ViTW91c2VFdmVudCYgZXZlbnQp
CiAgICAgfQogfQogCi12b2lkIFdlYlBvcHVwTWVudUltcGw6Ok1vdXNlTGVhdmUoY29uc3QgV2Vi
TW91c2VFdmVudCYgZXZlbnQpCit2b2lkIFdlYlBvcHVwTWVudUltcGw6OmhhbmRsZU1vdXNlTGVh
dmUoY29uc3QgV2ViTW91c2VFdmVudCYgZXZlbnQpCiB7CiAgICAgbV93aWRnZXQtPmhhbmRsZU1v
dXNlTW92ZUV2ZW50KFBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXIobV93aWRnZXQsIGV2ZW50KSk7
CiB9CiAKLXZvaWQgV2ViUG9wdXBNZW51SW1wbDo6TW91c2VEb3duKGNvbnN0IFdlYk1vdXNlRXZl
bnQmIGV2ZW50KQordm9pZCBXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVNb3VzZURvd24oY29uc3Qg
V2ViTW91c2VFdmVudCYgZXZlbnQpCiB7CiAgICAgbV93aWRnZXQtPmhhbmRsZU1vdXNlRG93bkV2
ZW50KFBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXIobV93aWRnZXQsIGV2ZW50KSk7CiB9CiAKLXZv
aWQgV2ViUG9wdXBNZW51SW1wbDo6TW91c2VVcChjb25zdCBXZWJNb3VzZUV2ZW50JiBldmVudCkK
K3ZvaWQgV2ViUG9wdXBNZW51SW1wbDo6aGFuZGxlTW91c2VVcChjb25zdCBXZWJNb3VzZUV2ZW50
JiBldmVudCkKIHsKICAgICBtb3VzZUNhcHR1cmVMb3N0KCk7CiAgICAgbV93aWRnZXQtPmhhbmRs
ZU1vdXNlUmVsZWFzZUV2ZW50KFBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXIobV93aWRnZXQsIGV2
ZW50KSk7CiB9CiAKLXZvaWQgV2ViUG9wdXBNZW51SW1wbDo6TW91c2VXaGVlbChjb25zdCBXZWJN
b3VzZVdoZWVsRXZlbnQmIGV2ZW50KQordm9pZCBXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVNb3Vz
ZVdoZWVsKGNvbnN0IFdlYk1vdXNlV2hlZWxFdmVudCYgZXZlbnQpCiB7CiAgICAgbV93aWRnZXQt
PmhhbmRsZVdoZWVsRXZlbnQoUGxhdGZvcm1XaGVlbEV2ZW50QnVpbGRlcihtX3dpZGdldCwgZXZl
bnQpKTsKIH0KIAotYm9vbCBXZWJQb3B1cE1lbnVJbXBsOjpHZXN0dXJlRXZlbnQoY29uc3QgV2Vi
R2VzdHVyZUV2ZW50JiBldmVudCkKK2Jvb2wgV2ViUG9wdXBNZW51SW1wbDo6aGFuZGxlR2VzdHVy
ZUV2ZW50KGNvbnN0IFdlYkdlc3R1cmVFdmVudCYgZXZlbnQpCiB7CiAgICAgcmV0dXJuIG1fd2lk
Z2V0LT5oYW5kbGVHZXN0dXJlRXZlbnQoUGxhdGZvcm1HZXN0dXJlRXZlbnRCdWlsZGVyKG1fd2lk
Z2V0LCBldmVudCkpOwogfQogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLWJvb2wgV2ViUG9w
dXBNZW51SW1wbDo6VG91Y2hFdmVudChjb25zdCBXZWJUb3VjaEV2ZW50JiBldmVudCkKK2Jvb2wg
V2ViUG9wdXBNZW51SW1wbDo6aGFuZGxlVG91Y2hFdmVudChjb25zdCBXZWJUb3VjaEV2ZW50JiBl
dmVudCkKIHsKIAogICAgIFBsYXRmb3JtVG91Y2hFdmVudEJ1aWxkZXIgdG91Y2hFdmVudEJ1aWxk
ZXIobV93aWRnZXQsIGV2ZW50KTsKQEAgLTE1NCw3ICsxNTIsNyBAQCBib29sIFdlYlBvcHVwTWVu
dUltcGw6OlRvdWNoRXZlbnQoY29uc3QgV2ViVG91Y2hFdmVudCYgZXZlbnQpCiB9CiAjZW5kaWYK
IAotYm9vbCBXZWJQb3B1cE1lbnVJbXBsOjpLZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50
JiBldmVudCkKK2Jvb2wgV2ViUG9wdXBNZW51SW1wbDo6aGFuZGxlS2V5RXZlbnQoY29uc3QgV2Vi
S2V5Ym9hcmRFdmVudCYgZXZlbnQpCiB7CiAgICAgcmV0dXJuIG1fd2lkZ2V0LT5oYW5kbGVLZXlF
dmVudChQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyKGV2ZW50KSk7CiB9CkBAIC0xNjgsNyAr
MTY2LDcgQEAgdm9pZCBXZWJQb3B1cE1lbnVJbXBsOjpjbG9zZSgpCiAKICAgICBtX2NsaWVudCA9
IDA7CiAKLSAgICBkZXJlZigpOyAgLy8gQmFsYW5jZXMgcmVmKCkgZnJvbSBXZWJXaWRnZXQ6OkNy
ZWF0ZQorICAgIGRlcmVmKCk7IC8vIEJhbGFuY2VzIHJlZigpIGZyb20gV2ViV2lkZ2V0OjpDcmVh
dGUuCiB9CiAKIHZvaWQgV2ViUG9wdXBNZW51SW1wbDo6d2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpCkBA
IC0yMTgsNyArMjE2LDcgQEAgdm9pZCBXZWJQb3B1cE1lbnVJbXBsOjp0aGVtZUNoYW5nZWQoKQog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgV2ViUG9wdXBNZW51SW1wbDo6Y29tcG9z
aXRlKGJvb2wgZmluaXNoKQordm9pZCBXZWJQb3B1cE1lbnVJbXBsOjpjb21wb3NpdGUoYm9vbCkK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtMjI4LDI4ICsyMjYsMjggQEAgYm9vbCBX
ZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmIGlu
cHV0RXZlbnQpCiAgICAgaWYgKCFtX3dpZGdldCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgLy8gVE9ETyAoamNhbXBhbik6IFdlYktpdCBzZWVtcyB0byBhbHdheXMgcmV0dXJuIGZhbHNl
IG9uIG1vdXNlIGV2ZW50cwotICAgIC8vIG1ldGhvZHMuIEZvciBub3cgd2UnbGwgYXNzdW1lIGl0
IGhhcyBwcm9jZXNzZWQgdGhlbSAoYXMgd2UgYXJlIG9ubHkKLSAgICAvLyBpbnRlcmVzdGVkIGlu
IHdoZXRoZXIga2V5Ym9hcmQgZXZlbnRzIGFyZSBwcm9jZXNzZWQpLgorICAgIC8vIEZJWE1FOiBX
ZWJLaXQgc2VlbXMgdG8gYWx3YXlzIHJldHVybiBmYWxzZSBvbiBtb3VzZSBldmVudHMgbWV0aG9k
cy4gRm9yCisgICAgLy8gbm93IHdlJ2xsIGFzc3VtZSBpdCBoYXMgcHJvY2Vzc2VkIHRoZW0gKGFz
IHdlIGFyZSBvbmx5IGludGVyZXN0ZWQgaW4KKyAgICAvLyB3aGV0aGVyIGtleWJvYXJkIGV2ZW50
cyBhcmUgcHJvY2Vzc2VkKS4KICAgICBzd2l0Y2ggKGlucHV0RXZlbnQudHlwZSkgewogICAgIGNh
c2UgV2ViSW5wdXRFdmVudDo6TW91c2VNb3ZlOgotICAgICAgICBNb3VzZU1vdmUoKnN0YXRpY19j
YXN0PGNvbnN0IFdlYk1vdXNlRXZlbnQqPigmaW5wdXRFdmVudCkpOworICAgICAgICBoYW5kbGVN
b3VzZU1vdmUoKnN0YXRpY19jYXN0PGNvbnN0IFdlYk1vdXNlRXZlbnQqPigmaW5wdXRFdmVudCkp
OwogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6TW91c2VM
ZWF2ZToKLSAgICAgICAgTW91c2VMZWF2ZSgqc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVu
dCo+KCZpbnB1dEV2ZW50KSk7CisgICAgICAgIGhhbmRsZU1vdXNlTGVhdmUoKnN0YXRpY19jYXN0
PGNvbnN0IFdlYk1vdXNlRXZlbnQqPigmaW5wdXRFdmVudCkpOwogICAgICAgICByZXR1cm4gdHJ1
ZTsKIAogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6TW91c2VXaGVlbDoKLSAgICAgICAgTW91c2VX
aGVlbCgqc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VXaGVlbEV2ZW50Kj4oJmlucHV0RXZlbnQp
KTsKKyAgICAgICAgaGFuZGxlTW91c2VXaGVlbCgqc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VX
aGVlbEV2ZW50Kj4oJmlucHV0RXZlbnQpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBj
YXNlIFdlYklucHV0RXZlbnQ6Ok1vdXNlRG93bjoKLSAgICAgICAgTW91c2VEb3duKCpzdGF0aWNf
Y2FzdDxjb25zdCBXZWJNb3VzZUV2ZW50Kj4oJmlucHV0RXZlbnQpKTsKKyAgICAgICAgaGFuZGxl
TW91c2VEb3duKCpzdGF0aWNfY2FzdDxjb25zdCBXZWJNb3VzZUV2ZW50Kj4oJmlucHV0RXZlbnQp
KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Ok1vdXNl
VXA6Ci0gICAgICAgIE1vdXNlVXAoKnN0YXRpY19jYXN0PGNvbnN0IFdlYk1vdXNlRXZlbnQqPigm
aW5wdXRFdmVudCkpOworICAgICAgICBoYW5kbGVNb3VzZVVwKCpzdGF0aWNfY2FzdDxjb25zdCBX
ZWJNb3VzZUV2ZW50Kj4oJmlucHV0RXZlbnQpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAg
ICAvLyBJbiBXaW5kb3dzLCBSYXdLZXlEb3duIG9ubHkgaGFzIGluZm9ybWF0aW9uIGFib3V0IHRo
ZSBwaHlzaWNhbCBrZXksIGJ1dApAQCAtMjY0LDEzICsyNjIsMTMgQEAgYm9vbCBXZWJQb3B1cE1l
bnVJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmIGlucHV0RXZlbnQp
CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpLZXlEb3duOgogICAgIGNhc2UgV2ViSW5wdXRFdmVu
dDo6S2V5VXA6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpDaGFyOgotICAgICAgICByZXR1cm4g
S2V5RXZlbnQoKnN0YXRpY19jYXN0PGNvbnN0IFdlYktleWJvYXJkRXZlbnQqPigmaW5wdXRFdmVu
dCkpOworICAgICAgICByZXR1cm4gaGFuZGxlS2V5RXZlbnQoKnN0YXRpY19jYXN0PGNvbnN0IFdl
YktleWJvYXJkRXZlbnQqPigmaW5wdXRFdmVudCkpOwogCiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50
OjpUb3VjaFN0YXJ0OgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6VG91Y2hNb3ZlOgogICAgIGNh
c2UgV2ViSW5wdXRFdmVudDo6VG91Y2hFbmQ6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpUb3Vj
aENhbmNlbDoKLSAgICAgICAgcmV0dXJuIFRvdWNoRXZlbnQoKnN0YXRpY19jYXN0PGNvbnN0IFdl
YlRvdWNoRXZlbnQqPigmaW5wdXRFdmVudCkpOworICAgICAgICByZXR1cm4gaGFuZGxlVG91Y2hF
dmVudCgqc3RhdGljX2Nhc3Q8Y29uc3QgV2ViVG91Y2hFdmVudCo+KCZpbnB1dEV2ZW50KSk7CiAK
ICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxCZWdpbjoKICAgICBjYXNlIFdl
YklucHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxFbmQ6CkBAIC0yNzgsNyArMjc2LDcgQEAgYm9vbCBX
ZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmIGlu
cHV0RXZlbnQpCiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlRmxpbmdTdGFydDoKICAg
ICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVGbGluZ0NhbmNlbDoKICAgICBjYXNlIFdlYklu
cHV0RXZlbnQ6Okdlc3R1cmVUYXA6Ci0gICAgICAgIHJldHVybiBHZXN0dXJlRXZlbnQoKnN0YXRp
Y19jYXN0PGNvbnN0IFdlYkdlc3R1cmVFdmVudCo+KCZpbnB1dEV2ZW50KSk7CisgICAgICAgIHJl
dHVybiBoYW5kbGVHZXN0dXJlRXZlbnQoKnN0YXRpY19jYXN0PGNvbnN0IFdlYkdlc3R1cmVFdmVu
dCo+KCZpbnB1dEV2ZW50KSk7CiAKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6OlVuZGVmaW5lZDoK
ICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Ok1vdXNlRW50ZXI6CkBAIC0yOTIsNyArMjkwLDcgQEAg
dm9pZCBXZWJQb3B1cE1lbnVJbXBsOjptb3VzZUNhcHR1cmVMb3N0KCkKIHsKIH0KIAotdm9pZCBX
ZWJQb3B1cE1lbnVJbXBsOjpzZXRGb2N1cyhib29sIGVuYWJsZSkKK3ZvaWQgV2ViUG9wdXBNZW51
SW1wbDo6c2V0Rm9jdXMoYm9vbCkKIHsKIH0KIApAQCAtMzAxLDkgKzI5OSw3IEBAIHZvaWQgV2Vi
UG9wdXBNZW51OjpzZXRNaW5pbXVtUm93SGVpZ2h0KGludCBtaW5pbXVtUm93SGVpZ2h0KQogICAg
IFBvcHVwTWVudUNocm9taXVtOjpzZXRNaW5pbXVtUm93SGVpZ2h0KG1pbmltdW1Sb3dIZWlnaHQp
OwogfQogCi1ib29sIFdlYlBvcHVwTWVudUltcGw6OnNldENvbXBvc2l0aW9uKAotICAgIGNvbnN0
IFdlYlN0cmluZyYgdGV4dCwgY29uc3QgV2ViVmVjdG9yPFdlYkNvbXBvc2l0aW9uVW5kZXJsaW5l
PiYgdW5kZXJsaW5lcywKLSAgICBpbnQgc2VsZWN0aW9uU3RhcnQsIGludCBzZWxlY3Rpb25FbmQp
Citib29sIFdlYlBvcHVwTWVudUltcGw6OnNldENvbXBvc2l0aW9uKGNvbnN0IFdlYlN0cmluZyYs
IGNvbnN0IFdlYlZlY3RvcjxXZWJDb21wb3NpdGlvblVuZGVybGluZT4mLCBpbnQsIGludCkKIHsK
ICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC0zMTMsNyArMzA5LDcgQEAgYm9vbCBXZWJQb3B1cE1l
bnVJbXBsOjpjb25maXJtQ29tcG9zaXRpb24oKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9v
bCBXZWJQb3B1cE1lbnVJbXBsOjpjb25maXJtQ29tcG9zaXRpb24oY29uc3QgV2ViU3RyaW5nJiB0
ZXh0KQorYm9vbCBXZWJQb3B1cE1lbnVJbXBsOjpjb25maXJtQ29tcG9zaXRpb24oY29uc3QgV2Vi
U3RyaW5nJikKIHsKICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC0zMzcsNyArMzMzLDcgQEAgYm9v
bCBXZWJQb3B1cE1lbnVJbXBsOjpjYXJldE9yU2VsZWN0aW9uUmFuZ2Uoc2l6ZV90KiBsb2NhdGlv
biwgc2l6ZV90KiBsZW5ndGgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFdlYlBvcHVw
TWVudUltcGw6OnNldFRleHREaXJlY3Rpb24oV2ViVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCit2
b2lkIFdlYlBvcHVwTWVudUltcGw6OnNldFRleHREaXJlY3Rpb24oV2ViVGV4dERpcmVjdGlvbikK
IHsKIH0KIApAQCAtMzQ1LDExICszNDEsNiBAQCB2b2lkIFdlYlBvcHVwTWVudUltcGw6OnNldFRl
eHREaXJlY3Rpb24oV2ViVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCiAvLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAvLyBXZWJDb3JlOjpIb3N0V2luZG93CiAKLXZvaWQgV2ViUG9wdXBNZW51SW1wbDo6
aW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmLCBib29sKQotewotICAgIG5vdEltcGxl
bWVudGVkKCk7Ci19Ci0KIHZvaWQgV2ViUG9wdXBNZW51SW1wbDo6aW52YWxpZGF0ZVJvb3RWaWV3
KGNvbnN0IEludFJlY3QmLCBib29sKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC0zNzIs
OSArMzYzLDcgQEAgdm9pZCBXZWJQb3B1cE1lbnVJbXBsOjpzY2hlZHVsZUFuaW1hdGlvbigpCiB7
CiB9CiAKLXZvaWQgV2ViUG9wdXBNZW51SW1wbDo6c2Nyb2xsKGNvbnN0IEludFNpemUmIHNjcm9s
bERlbHRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgc2Ny
b2xsUmVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEludFJlY3QmIGNs
aXBSZWN0KQordm9pZCBXZWJQb3B1cE1lbnVJbXBsOjpzY3JvbGwoY29uc3QgSW50U2l6ZSYgc2Ny
b2xsRGVsdGEsIGNvbnN0IEludFJlY3QmIHNjcm9sbFJlY3QsIGNvbnN0IEludFJlY3QmIGNsaXBS
ZWN0KQogewogICAgIGlmIChtX2NsaWVudCkgewogICAgICAgICBpbnQgZHggPSBzY3JvbGxEZWx0
YS53aWR0aCgpOwpAQCAtMzk1LDEyICszODQsNiBAQCBJbnRSZWN0IFdlYlBvcHVwTWVudUltcGw6
OnJvb3RWaWV3VG9TY3JlZW4oY29uc3QgSW50UmVjdCYgcmVjdCkgY29uc3QKICAgICByZXR1cm4g
SW50UmVjdCgpOwogfQogCi12b2lkIFdlYlBvcHVwTWVudUltcGw6OnNjcm9sbFJlY3RJbnRvVmll
dyhjb25zdCBJbnRSZWN0JikgY29uc3QKLXsKLSAgICAvLyBOb3RoaW5nIHRvIGJlIGRvbmUgaGVy
ZSBzaW5jZSB3ZSBkbyBub3QgaGF2ZSB0aGUgY29uY2VwdCBvZiBhIGNvbnRhaW5lcgotICAgIC8v
IHRoYXQgaW1wbGVtZW50cyBpdHMgb3duIHNjcm9sbGluZy4KLX0KLQogdm9pZCBXZWJQb3B1cE1l
bnVJbXBsOjpzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0CiB7CiAgICAgLy8gTm90aGlu
ZyB0byBiZSBkb25lIHNpbmNlIHdlIGhhdmUgbm8gY29uY2VwdCBvZiBkaWZmZXJlbnQgc2Nyb2xs
YmFyIG1vZGVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9w
dXBNZW51SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51SW1w
bC5oCmluZGV4IDFkZWM3N2MyOGY5NmMyMGM1NTllYjRlMTdmZDhlYTM5ZThiZTkxYjEuLjBhZDAz
OTYzYTc2NjU1NWUwNThiMTdiMGNkN2IyNzM1MDc0NTBiMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJQb3B1cE1lbnVJbXBsLmgKQEAgLTMyLDggKzMyLDggQEAKICNkZWZp
bmUgV2ViUG9wdXBNZW51SW1wbF9oCiAKICNpbmNsdWRlICJGcmFtZWxlc3NTY3JvbGxWaWV3Q2xp
ZW50LmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViUG9pbnQuaCIKICNpbmNsdWRlICJXZWJQb3B1
cE1lbnUuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJQb2ludC5oIgogI2luY2x1ZGUgInBsYXRm
b3JtL1dlYlNpemUuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KQEAgLTY1LDgxICs2NSw3OCBAQCBjbGFzcyBXZWJQb3B1cE1lbnVJbXBsIDog
cHVibGljIFdlYlBvcHVwTWVudSwKICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgUmVm
Q291bnRlZDxXZWJQb3B1cE1lbnVJbXBsPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6Ci0gICAgLy8gV2ViV2lkZ2V0Ci0gICAgdmlydHVhbCB2b2lkIGNsb3NlKCk7Ci0g
ICAgdmlydHVhbCBXZWJTaXplIHNpemUoKSB7IHJldHVybiBtX3NpemU7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgd2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpOwotICAgIHZpcnR1YWwgdm9pZCByZXNpemUoY29u
c3QgV2ViU2l6ZSYpOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRW5kTGl2ZVJlc2l6ZSgpOwotICAg
IHZpcnR1YWwgdm9pZCBhbmltYXRlKGRvdWJsZSBmcmFtZUJlZ2luVGltZSk7Ci0gICAgdmlydHVh
bCB2b2lkIGxheW91dCgpOwotICAgIHZpcnR1YWwgdm9pZCBwYWludChXZWJDYW52YXMqIGNhbnZh
cywgY29uc3QgV2ViUmVjdCYgcmVjdCk7Ci0gICAgdmlydHVhbCB2b2lkIHRoZW1lQ2hhbmdlZCgp
OwotICAgIHZpcnR1YWwgdm9pZCBjb21wb3NpdGUoYm9vbCBmaW5pc2gpOwotICAgIHZpcnR1YWwg
Ym9vbCBoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmKTsKLSAgICB2aXJ0dWFs
IHZvaWQgbW91c2VDYXB0dXJlTG9zdCgpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1cyhib29s
IGVuYWJsZSk7CisgICAgLy8gV2ViV2lkZ2V0IGZ1bmN0aW9uczoKKyAgICB2aXJ0dWFsIHZvaWQg
Y2xvc2UoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYlNpemUgc2l6ZSgpIE9WRVJSSURFIHsg
cmV0dXJuIG1fc2l6ZTsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxsU3RhcnRMaXZlUmVzaXplKCkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlc2l6ZShjb25zdCBXZWJTaXplJikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxFbmRMaXZlUmVzaXplKCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIGFuaW1hdGUoZG91YmxlIGZyYW1lQmVnaW5UaW1lKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhaW50
KFdlYkNhbnZhcyosIGNvbnN0IFdlYlJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
dGhlbWVDaGFuZ2VkKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNvbXBvc2l0ZShib29s
IGZpbmlzaCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGhhbmRsZUlucHV0RXZlbnQoY29u
c3QgV2ViSW5wdXRFdmVudCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtb3VzZUNhcHR1
cmVMb3N0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEZvY3VzKGJvb2wgZW5hYmxl
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc2V0Q29tcG9zaXRpb24oCiAgICAgICAgIGNv
bnN0IFdlYlN0cmluZyYgdGV4dCwKICAgICAgICAgY29uc3QgV2ViVmVjdG9yPFdlYkNvbXBvc2l0
aW9uVW5kZXJsaW5lPiYgdW5kZXJsaW5lcywKLSAgICAgICAgaW50IHNlbGVjdGlvblN0YXJ0LCBp
bnQgc2VsZWN0aW9uRW5kKTsKLSAgICB2aXJ0dWFsIGJvb2wgY29uZmlybUNvbXBvc2l0aW9uKCk7
Ci0gICAgdmlydHVhbCBib29sIGNvbmZpcm1Db21wb3NpdGlvbihjb25zdCBXZWJTdHJpbmcmIHRl
eHQpOwotICAgIHZpcnR1YWwgYm9vbCBjb21wb3NpdGlvblJhbmdlKHNpemVfdCogbG9jYXRpb24s
IHNpemVfdCogbGVuZ3RoKTsKLSAgICB2aXJ0dWFsIFdlYlRleHRJbnB1dFR5cGUgdGV4dElucHV0
VHlwZSgpOwotICAgIHZpcnR1YWwgYm9vbCBjYXJldE9yU2VsZWN0aW9uUmFuZ2Uoc2l6ZV90KiBs
b2NhdGlvbiwgc2l6ZV90KiBsZW5ndGgpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0RGlyZWN0
aW9uKFdlYlRleHREaXJlY3Rpb24gZGlyZWN0aW9uKTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAg
ICAgaW50IHNlbGVjdGlvblN0YXJ0LCBpbnQgc2VsZWN0aW9uRW5kKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGJvb2wgY29uZmlybUNvbXBvc2l0aW9uKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBi
b29sIGNvbmZpcm1Db21wb3NpdGlvbihjb25zdCBXZWJTdHJpbmcmIHRleHQpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgYm9vbCBjb21wb3NpdGlvblJhbmdlKHNpemVfdCogbG9jYXRpb24sIHNpemVf
dCogbGVuZ3RoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYlRleHRJbnB1dFR5cGUgdGV4dElu
cHV0VHlwZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBjYXJldE9yU2VsZWN0aW9uUmFu
Z2Uoc2l6ZV90KiBsb2NhdGlvbiwgc2l6ZV90KiBsZW5ndGgpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBzZXRUZXh0RGlyZWN0aW9uKFdlYlRleHREaXJlY3Rpb24pIE9WRVJSSURFOworICAg
IHZpcnR1YWwgYm9vbCBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gV2ViUG9wdXBNZW51SW1wbAotICAgIHZv
aWQgSW5pdChXZWJDb3JlOjpGcmFtZWxlc3NTY3JvbGxWaWV3KiB3aWRnZXQsCi0gICAgICAgICAg
ICAgIGNvbnN0IFdlYlJlY3QmIGJvdW5kcyk7CisgICAgdm9pZCBpbml0KFdlYkNvcmU6OkZyYW1l
bGVzc1Njcm9sbFZpZXcqIHdpZGdldCwgY29uc3QgV2ViUmVjdCYgYm91bmRzKTsKIAogICAgIFdl
YldpZGdldENsaWVudCogY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KIAotICAgIHZvaWQg
TW91c2VNb3ZlKGNvbnN0IFdlYk1vdXNlRXZlbnQmKTsKLSAgICB2b2lkIE1vdXNlTGVhdmUoY29u
c3QgV2ViTW91c2VFdmVudCYpOwotICAgIHZvaWQgTW91c2VEb3duKGNvbnN0IFdlYk1vdXNlRXZl
bnQmKTsKLSAgICB2b2lkIE1vdXNlVXAoY29uc3QgV2ViTW91c2VFdmVudCYpOwotICAgIHZvaWQg
TW91c2VEb3VibGVDbGljayhjb25zdCBXZWJNb3VzZUV2ZW50Jik7Ci0gICAgdm9pZCBNb3VzZVdo
ZWVsKGNvbnN0IFdlYk1vdXNlV2hlZWxFdmVudCYpOwotICAgIGJvb2wgR2VzdHVyZUV2ZW50KGNv
bnN0IFdlYkdlc3R1cmVFdmVudCYpOwotICAgIGJvb2wgVG91Y2hFdmVudChjb25zdCBXZWJUb3Vj
aEV2ZW50Jik7Ci0gICAgYm9vbCBLZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50Jik7Cisg
ICAgdm9pZCBoYW5kbGVNb3VzZU1vdmUoY29uc3QgV2ViTW91c2VFdmVudCYpOworICAgIHZvaWQg
aGFuZGxlTW91c2VMZWF2ZShjb25zdCBXZWJNb3VzZUV2ZW50Jik7CisgICAgdm9pZCBoYW5kbGVN
b3VzZURvd24oY29uc3QgV2ViTW91c2VFdmVudCYpOworICAgIHZvaWQgaGFuZGxlTW91c2VVcChj
b25zdCBXZWJNb3VzZUV2ZW50Jik7CisgICAgdm9pZCBoYW5kbGVNb3VzZURvdWJsZUNsaWNrKGNv
bnN0IFdlYk1vdXNlRXZlbnQmKTsKKyAgICB2b2lkIGhhbmRsZU1vdXNlV2hlZWwoY29uc3QgV2Vi
TW91c2VXaGVlbEV2ZW50Jik7CisgICAgYm9vbCBoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgV2Vi
R2VzdHVyZUV2ZW50Jik7CisgICAgYm9vbCBoYW5kbGVUb3VjaEV2ZW50KGNvbnN0IFdlYlRvdWNo
RXZlbnQmKTsKKyAgICBib29sIGhhbmRsZUtleUV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQm
KTsKIAogICAgcHJvdGVjdGVkOgotICAgIGZyaWVuZCBjbGFzcyBXZWJQb3B1cE1lbnU7ICAvLyBG
b3IgV2ViUG9wdXBNZW51OjpjcmVhdGUKKyAgICBmcmllbmQgY2xhc3MgV2ViUG9wdXBNZW51OyAv
LyBGb3IgV2ViUG9wdXBNZW51OjpjcmVhdGUuCiAgICAgZnJpZW5kIGNsYXNzIFdURjo6UmVmQ291
bnRlZDxXZWJQb3B1cE1lbnVJbXBsPjsKIAotICAgIFdlYlBvcHVwTWVudUltcGwoV2ViV2lkZ2V0
Q2xpZW50KiBjbGllbnQpOworICAgIFdlYlBvcHVwTWVudUltcGwoV2ViV2lkZ2V0Q2xpZW50Kik7
CiAgICAgfldlYlBvcHVwTWVudUltcGwoKTsKIAogICAgIC8vIFdlYkNvcmU6Okhvc3RXaW5kb3cg
bWV0aG9kczoKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmLCBib29sKTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxp
ZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpOwot
ICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmLCBib29sKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVBbmltYXRp
b24oKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmLCBib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNv
bnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmLCBib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2No
ZWR1bGVBbmltYXRpb24oKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKAogICAg
ICAgICBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgc2Nyb2xsUmVjdCwKLSAgICAgICAgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xp
cFJlY3QpOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuVG9Sb290Vmlldyhj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0OwotICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50
UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCB7
IHJldHVybiAwOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JikgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHNjcm9sbGJhcnNNb2Rl
RGlkQ2hhbmdlKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJD
b3JlOjpDdXJzb3ImKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3Vz
ZU1vdmVzKGJvb2wpOworICAgICAgICBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5Ub1Jvb3RWaWV3
KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBX
ZWJDb3JlOjpJbnRSZWN0IHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYp
IGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3Jt
UGFnZUNsaWVudCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCkgT1ZFUlJJREU7
CiAKICAgICAvLyBXZWJDb3JlOjpGcmFtZWxlc3NTY3JvbGxWaWV3Q2xpZW50IG1ldGhvZHM6Ci0g
ICAgdmlydHVhbCB2b2lkIHBvcHVwQ2xvc2VkKFdlYkNvcmU6OkZyYW1lbGVzc1Njcm9sbFZpZXcq
KTsKKyAgICB2aXJ0dWFsIHZvaWQgcG9wdXBDbG9zZWQoV2ViQ29yZTo6RnJhbWVsZXNzU2Nyb2xs
VmlldyopIE9WRVJSSURFOwogCiAgICAgV2ViV2lkZ2V0Q2xpZW50KiBtX2NsaWVudDsKICAgICBX
ZWJTaXplIG1fc2l6ZTsKIAogICAgIFdlYlBvaW50IG1fbGFzdE1vdXNlUG9zaXRpb247CiAKLSAg
ICAvLyBUaGlzIGlzIGEgbm9uLW93bmluZyByZWYuICBUaGUgcG9wdXAgd2lsbCBub3RpZnkgdXMg
dmlhIHBvcHVwQ2xvc2VkKCkKKyAgICAvLyBUaGlzIGlzIGEgbm9uLW93bmluZyByZWYuIFRoZSBw
b3B1cCB3aWxsIG5vdGlmeSB1cyB2aWEgcG9wdXBDbG9zZWQoKQogICAgIC8vIGJlZm9yZSBpdCBp
cyBkZXN0cm95ZWQuCiAgICAgV2ViQ29yZTo6RnJhbWVsZXNzU2Nyb2xsVmlldyogbV93aWRnZXQ7
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124232</attachid>
            <date>2012-01-26 18:32:09 -0800</date>
            <delta_ts>2012-01-26 20:48:41 -0800</delta_ts>
            <desc>Patch 3</desc>
            <filename>bug-76441-20120127113207.patch</filename>
            <type>text/plain</type>
            <size>19942</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDkzZmYyMTZmZGMxNzBmNDQ5NDM5YzA5MDRhZjQwZTNmMDljYmNlMzUuLmNhZTc2YmJkOTcxNWE0
Y2I5OWIzM2ExZTk1NzczYTg3NmZlNGQ2OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzkgQEAKKzIwMTItMDEtMTcgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gQ2xlYW51cCBvZiBXZWJQb3B1cE1lbnVJbXBsCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ0MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgV2Vi
UG9wdXBNZW51SW1wbDo6aW52YWxpZGF0ZUNvbnRlbnRzKCkgYW5kIHNjcm9sbFJlY3RJbnRvVmll
dygpCisgICAgICAgIGJlY2F1c2UgdGhleSB3ZXJlIHJlbW92ZWQgZnJvbSBIb3N0V2luZG93IGlu
IHI1ODQ0NSBhbmQgcjU1ODY0LiBUaGV5CisgICAgICAgIHdlcmUgZm91bmQgYnkgT1ZFUlJJREUu
CisKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkNocm9tZUNsaWVudEltcGw6OnBvcHVwT3BlbmVkKTogUmVuYW1lIFdlYlBvcHVwTWVudUltcGw6
OkluaXQoKS4KKyAgICAgICAgKiBzcmMvV2ViUG9wdXBNZW51SW1wbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBvcHVwTWVudUltcGw6OldlYlBvcHVwTWVudUltcGwpOiBVcGRhdGUgYSBjb21t
ZW50LgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVJbXBsOjppbml0KTogUmVuYW1lZCBm
cm9tIEluaXQoKS4gVXBkYXRlIGEgY29tbWVudC4KKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBN
ZW51SW1wbDo6aGFuZGxlTW91c2VNb3ZlKTogUHJlcGVuZCAiaGFuZGxlIiB0byB0aGUgbmFtZS4K
KyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51SW1wbDo6aGFuZGxlTW91c2VMZWF2ZSk6IGRp
dHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVNb3VzZURvd24p
OiBkaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51SW1wbDo6aGFuZGxlTW91c2VV
cCk6IGRpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVNb3Vz
ZVdoZWVsKTogZGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudUltcGw6OmhhbmRs
ZUdlc3R1cmVFdmVudCk6IGRpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVJbXBs
OjpoYW5kbGVUb3VjaEV2ZW50KTogZGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVu
dUltcGw6OmhhbmRsZUtleUV2ZW50KTogZGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVw
TWVudUltcGw6OmNsb3NlKTogVXBkYXRlIGEgY29tbWVudC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UG9wdXBNZW51SW1wbDo6Y29tcG9zaXRlKTogUmVtb3ZlIGEgdW51c2VkIGFyZ3VtZW50IG5hbWUu
CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudUltcGw6OmhhbmRsZUlucHV0RXZlbnQpOiBV
cGRhdGUgYSBjb21tZW50LiBVcGRhdGUgY2FsbHNpdGVzIGZvciBoYW5kbGUqKCkuCisgICAgICAg
IChXZWJLaXQ6OldlYlBvcHVwTWVudUltcGw6OnNldEZvY3VzKTogUmVtb3ZlIGEgdW51c2VkIGFy
Z3VtZW50IG5hbWUuCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudUltcGw6OnNldENvbXBv
c2l0aW9uKTogZGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudUltcGw6OmNvbmZp
cm1Db21wb3NpdGlvbik6IGRpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVJbXBs
OjpzZXRUZXh0RGlyZWN0aW9uKTogZGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVu
dUltcGw6OnNjcm9sbCk6IFVuZm9sZCBmb2xkZWQgbGluZXMuCisgICAgICAgICogc3JjL1dlYlBv
cHVwTWVudUltcGwuaDoKKyAgICAgICAgIC0gUmVtb3ZlIHVzZWxlc3MgYXJndW1lbnQgbmFtZXMu
CisgICAgICAgICAtIEFkZCBPVkVSUklERS4KKwogMjAxMi0wMS0yNiAgU2FkcnVsIEhhYmliIENo
b3dkaHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIEdlc3R1cmVUYXBE
b3duIGFuZCBHZXN0dXJlRG91YmxlVGFwIGdlc3R1cmUgdHlwZXMgdG8gV2ViR2VzdHVyZUV2ZW50
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApp
bmRleCA1NjJhZGUyYjU3ZmU1MTcwYWIwMDg2YmUxMTRhZjI4MWYyYmQzY2QyLi5mYjA3YjRjMTAz
ZmIyNzlhMjRjNGYxNjc4ZWI1OTg4ZjMyMTczYmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtNzczLDcgKzc3Myw3IEBAIHZvaWQg
Q2hyb21lQ2xpZW50SW1wbDo6cG9wdXBPcGVuZWQoUG9wdXBDb250YWluZXIqIHBvcHVwQ29udGFp
bmVyLAogICAgICAgICAvLyB0cmFuc3BhcmVudCB0byB0aGUgV2ViVmlldy4KICAgICAgICAgbV93
ZWJWaWV3LT5wb3B1cE9wZW5lZChwb3B1cENvbnRhaW5lcik7CiAgICAgfQotICAgIHN0YXRpY19j
YXN0PFdlYlBvcHVwTWVudUltcGwqPih3ZWJ3aWRnZXQpLT5Jbml0KHBvcHVwQ29udGFpbmVyLCBi
b3VuZHMpOworICAgIHN0YXRpY19jYXN0PFdlYlBvcHVwTWVudUltcGwqPih3ZWJ3aWRnZXQpLT5p
bml0KHBvcHVwQ29udGFpbmVyLCBib3VuZHMpOwogfQogCiB2b2lkIENocm9tZUNsaWVudEltcGw6
OnBvcHVwQ2xvc2VkKFdlYkNvcmU6OlBvcHVwQ29udGFpbmVyKiBwb3B1cENvbnRhaW5lcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51SW1wbC5jcHAKaW5kZXgg
NzQ1NmVmN2MzOTQ1Y2ZjYTJkZTUyMmZiZjhmZjE5MzRjMDk2MmQ3NC4uNjg3YjAzMzYwOTA4ZGVj
MGUxYTFkNDYyYTQ2NmE0N2FjY2NlZjJjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViUG9wdXBNZW51SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViUG9wdXBNZW51SW1wbC5jcHAKQEAgLTMyLDI1ICszMiwyMyBAQAogI2luY2x1ZGUg
IldlYlBvcHVwTWVudUltcGwuaCIKIAogI2luY2x1ZGUgIkN1cnNvci5oIgotI2luY2x1ZGUgIkZy
YW1lbGVzc1Njcm9sbFZpZXcuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJG
cmFtZWxlc3NTY3JvbGxWaWV3LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIk5v
dEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSAicGFpbnRpbmcvR3JhcGhpY3NDb250ZXh0QnVpbGRl
ci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgogI2luY2x1
ZGUgIlBvcHVwQ29udGFpbmVyLmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51Q2hyb21pdW0uaCIKICNp
bmNsdWRlICJTa2lhVXRpbHMuaCIKLQogI2luY2x1ZGUgIldlYklucHV0RXZlbnQuaCIKICNpbmNs
dWRlICJXZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIldlYlJhbmdlLmgiCi0j
aW5jbHVkZSAicGxhdGZvcm0vV2ViUmVjdC5oIgogI2luY2x1ZGUgIldlYlZpZXdDbGllbnQuaCIK
ICNpbmNsdWRlICJXZWJXaWRnZXRDbGllbnQuaCIKLQorI2luY2x1ZGUgInBhaW50aW5nL0dyYXBo
aWNzQ29udGV4dEJ1aWxkZXIuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJSZWN0LmgiCiAjaW5j
bHVkZSA8c2tpYS9leHQvcGxhdGZvcm1fY2FudmFzLmg+CiAKICNpZiBFTkFCTEUoR0VTVFVSRV9S
RUNPR05JWkVSKQpAQCAtNzksNyArNzcsNyBAQCBXZWJQb3B1cE1lbnVJbXBsOjpXZWJQb3B1cE1l
bnVJbXBsKFdlYldpZGdldENsaWVudCogY2xpZW50KQogICAgICwgbV9nZXN0dXJlUmVjb2duaXpl
cihXZWJDb3JlOjpQbGF0Zm9ybUdlc3R1cmVSZWNvZ25pemVyOjpjcmVhdGUoKSkKICNlbmRpZgog
ewotICAgIC8vIHNldCB0byBpbXBvc3NpYmxlIHBvaW50IHNvIHdlIGFsd2F5cyBnZXQgdGhlIGZp
cnN0IG1vdXNlIHBvcworICAgIC8vIFNldCB0byBpbXBvc3NpYmxlIHBvaW50IHNvIHdlIGFsd2F5
cyBnZXQgdGhlIGZpcnN0IG1vdXNlIHBvc2l0aW9uLgogICAgIG1fbGFzdE1vdXNlUG9zaXRpb24g
PSBXZWJQb2ludCgtMSwgLTEpOwogfQogCkBAIC04OSwyMCArODcsMjAgQEAgV2ViUG9wdXBNZW51
SW1wbDo6fldlYlBvcHVwTWVudUltcGwoKQogICAgICAgICBtX3dpZGdldC0+c2V0Q2xpZW50KDAp
OwogfQogCi12b2lkIFdlYlBvcHVwTWVudUltcGw6OkluaXQoRnJhbWVsZXNzU2Nyb2xsVmlldyog
d2lkZ2V0LCBjb25zdCBXZWJSZWN0JiBib3VuZHMpCit2b2lkIFdlYlBvcHVwTWVudUltcGw6Omlu
aXQoRnJhbWVsZXNzU2Nyb2xsVmlldyogd2lkZ2V0LCBjb25zdCBXZWJSZWN0JiBib3VuZHMpCiB7
CiAgICAgbV93aWRnZXQgPSB3aWRnZXQ7CiAgICAgbV93aWRnZXQtPnNldENsaWVudCh0aGlzKTsK
IAogICAgIGlmIChtX2NsaWVudCkgewogICAgICAgICBtX2NsaWVudC0+c2V0V2luZG93UmVjdChi
b3VuZHMpOwotICAgICAgICBtX2NsaWVudC0+c2hvdyhXZWJOYXZpZ2F0aW9uUG9saWN5KCkpOyAg
Ly8gUG9saWN5IGlzIGlnbm9yZWQKKyAgICAgICAgbV9jbGllbnQtPnNob3coV2ViTmF2aWdhdGlv
blBvbGljeSgpKTsgLy8gUG9saWN5IGlzIGlnbm9yZWQuCiAgICAgfQogfQogCi12b2lkIFdlYlBv
cHVwTWVudUltcGw6Ok1vdXNlTW92ZShjb25zdCBXZWJNb3VzZUV2ZW50JiBldmVudCkKK3ZvaWQg
V2ViUG9wdXBNZW51SW1wbDo6aGFuZGxlTW91c2VNb3ZlKGNvbnN0IFdlYk1vdXNlRXZlbnQmIGV2
ZW50KQogewotICAgIC8vIGRvbid0IHNlbmQgbW91c2UgbW92ZSBtZXNzYWdlcyBpZiB0aGUgbW91
c2UgaGFzbid0IG1vdmVkLgorICAgIC8vIERvbid0IHNlbmQgbW91c2UgbW92ZSBtZXNzYWdlcyBp
ZiB0aGUgbW91c2UgaGFzbid0IG1vdmVkLgogICAgIGlmIChldmVudC54ICE9IG1fbGFzdE1vdXNl
UG9zaXRpb24ueCB8fCBldmVudC55ICE9IG1fbGFzdE1vdXNlUG9zaXRpb24ueSkgewogICAgICAg
ICBtX2xhc3RNb3VzZVBvc2l0aW9uID0gV2ViUG9pbnQoZXZlbnQueCwgZXZlbnQueSk7CiAgICAg
ICAgIG1fd2lkZ2V0LT5oYW5kbGVNb3VzZU1vdmVFdmVudChQbGF0Zm9ybU1vdXNlRXZlbnRCdWls
ZGVyKG1fd2lkZ2V0LCBldmVudCkpOwpAQCAtMTEzLDM0ICsxMTEsMzQgQEAgdm9pZCBXZWJQb3B1
cE1lbnVJbXBsOjpNb3VzZU1vdmUoY29uc3QgV2ViTW91c2VFdmVudCYgZXZlbnQpCiAgICAgfQog
fQogCi12b2lkIFdlYlBvcHVwTWVudUltcGw6Ok1vdXNlTGVhdmUoY29uc3QgV2ViTW91c2VFdmVu
dCYgZXZlbnQpCit2b2lkIFdlYlBvcHVwTWVudUltcGw6OmhhbmRsZU1vdXNlTGVhdmUoY29uc3Qg
V2ViTW91c2VFdmVudCYgZXZlbnQpCiB7CiAgICAgbV93aWRnZXQtPmhhbmRsZU1vdXNlTW92ZUV2
ZW50KFBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXIobV93aWRnZXQsIGV2ZW50KSk7CiB9CiAKLXZv
aWQgV2ViUG9wdXBNZW51SW1wbDo6TW91c2VEb3duKGNvbnN0IFdlYk1vdXNlRXZlbnQmIGV2ZW50
KQordm9pZCBXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVNb3VzZURvd24oY29uc3QgV2ViTW91c2VF
dmVudCYgZXZlbnQpCiB7CiAgICAgbV93aWRnZXQtPmhhbmRsZU1vdXNlRG93bkV2ZW50KFBsYXRm
b3JtTW91c2VFdmVudEJ1aWxkZXIobV93aWRnZXQsIGV2ZW50KSk7CiB9CiAKLXZvaWQgV2ViUG9w
dXBNZW51SW1wbDo6TW91c2VVcChjb25zdCBXZWJNb3VzZUV2ZW50JiBldmVudCkKK3ZvaWQgV2Vi
UG9wdXBNZW51SW1wbDo6aGFuZGxlTW91c2VVcChjb25zdCBXZWJNb3VzZUV2ZW50JiBldmVudCkK
IHsKICAgICBtb3VzZUNhcHR1cmVMb3N0KCk7CiAgICAgbV93aWRnZXQtPmhhbmRsZU1vdXNlUmVs
ZWFzZUV2ZW50KFBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXIobV93aWRnZXQsIGV2ZW50KSk7CiB9
CiAKLXZvaWQgV2ViUG9wdXBNZW51SW1wbDo6TW91c2VXaGVlbChjb25zdCBXZWJNb3VzZVdoZWVs
RXZlbnQmIGV2ZW50KQordm9pZCBXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVNb3VzZVdoZWVsKGNv
bnN0IFdlYk1vdXNlV2hlZWxFdmVudCYgZXZlbnQpCiB7CiAgICAgbV93aWRnZXQtPmhhbmRsZVdo
ZWVsRXZlbnQoUGxhdGZvcm1XaGVlbEV2ZW50QnVpbGRlcihtX3dpZGdldCwgZXZlbnQpKTsKIH0K
IAotYm9vbCBXZWJQb3B1cE1lbnVJbXBsOjpHZXN0dXJlRXZlbnQoY29uc3QgV2ViR2VzdHVyZUV2
ZW50JiBldmVudCkKK2Jvb2wgV2ViUG9wdXBNZW51SW1wbDo6aGFuZGxlR2VzdHVyZUV2ZW50KGNv
bnN0IFdlYkdlc3R1cmVFdmVudCYgZXZlbnQpCiB7CiAgICAgcmV0dXJuIG1fd2lkZ2V0LT5oYW5k
bGVHZXN0dXJlRXZlbnQoUGxhdGZvcm1HZXN0dXJlRXZlbnRCdWlsZGVyKG1fd2lkZ2V0LCBldmVu
dCkpOwogfQogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLWJvb2wgV2ViUG9wdXBNZW51SW1w
bDo6VG91Y2hFdmVudChjb25zdCBXZWJUb3VjaEV2ZW50JiBldmVudCkKK2Jvb2wgV2ViUG9wdXBN
ZW51SW1wbDo6aGFuZGxlVG91Y2hFdmVudChjb25zdCBXZWJUb3VjaEV2ZW50JiBldmVudCkKIHsK
IAogICAgIFBsYXRmb3JtVG91Y2hFdmVudEJ1aWxkZXIgdG91Y2hFdmVudEJ1aWxkZXIobV93aWRn
ZXQsIGV2ZW50KTsKQEAgLTE1NCw3ICsxNTIsNyBAQCBib29sIFdlYlBvcHVwTWVudUltcGw6OlRv
dWNoRXZlbnQoY29uc3QgV2ViVG91Y2hFdmVudCYgZXZlbnQpCiB9CiAjZW5kaWYKIAotYm9vbCBX
ZWJQb3B1cE1lbnVJbXBsOjpLZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50JiBldmVudCkK
K2Jvb2wgV2ViUG9wdXBNZW51SW1wbDo6aGFuZGxlS2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRF
dmVudCYgZXZlbnQpCiB7CiAgICAgcmV0dXJuIG1fd2lkZ2V0LT5oYW5kbGVLZXlFdmVudChQbGF0
Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyKGV2ZW50KSk7CiB9CkBAIC0xNjgsNyArMTY2LDcgQEAg
dm9pZCBXZWJQb3B1cE1lbnVJbXBsOjpjbG9zZSgpCiAKICAgICBtX2NsaWVudCA9IDA7CiAKLSAg
ICBkZXJlZigpOyAgLy8gQmFsYW5jZXMgcmVmKCkgZnJvbSBXZWJXaWRnZXQ6OkNyZWF0ZQorICAg
IGRlcmVmKCk7IC8vIEJhbGFuY2VzIHJlZigpIGZyb20gV2ViUG9wdXBNZW51OjpjcmVhdGUuCiB9
CiAKIHZvaWQgV2ViUG9wdXBNZW51SW1wbDo6d2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpCkBAIC0yMTgs
NyArMjE2LDcgQEAgdm9pZCBXZWJQb3B1cE1lbnVJbXBsOjp0aGVtZUNoYW5nZWQoKQogICAgIG5v
dEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgV2ViUG9wdXBNZW51SW1wbDo6Y29tcG9zaXRlKGJv
b2wgZmluaXNoKQordm9pZCBXZWJQb3B1cE1lbnVJbXBsOjpjb21wb3NpdGUoYm9vbCkKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtMjI4LDI4ICsyMjYsMjggQEAgYm9vbCBXZWJQb3B1
cE1lbnVJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmIGlucHV0RXZl
bnQpCiAgICAgaWYgKCFtX3dpZGdldCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgLy8g
VE9ETyAoamNhbXBhbik6IFdlYktpdCBzZWVtcyB0byBhbHdheXMgcmV0dXJuIGZhbHNlIG9uIG1v
dXNlIGV2ZW50cwotICAgIC8vIG1ldGhvZHMuIEZvciBub3cgd2UnbGwgYXNzdW1lIGl0IGhhcyBw
cm9jZXNzZWQgdGhlbSAoYXMgd2UgYXJlIG9ubHkKLSAgICAvLyBpbnRlcmVzdGVkIGluIHdoZXRo
ZXIga2V5Ym9hcmQgZXZlbnRzIGFyZSBwcm9jZXNzZWQpLgorICAgIC8vIEZJWE1FOiBXZWJLaXQg
c2VlbXMgdG8gYWx3YXlzIHJldHVybiBmYWxzZSBvbiBtb3VzZSBldmVudHMgbWV0aG9kcy4gRm9y
CisgICAgLy8gbm93IHdlJ2xsIGFzc3VtZSBpdCBoYXMgcHJvY2Vzc2VkIHRoZW0gKGFzIHdlIGFy
ZSBvbmx5IGludGVyZXN0ZWQgaW4KKyAgICAvLyB3aGV0aGVyIGtleWJvYXJkIGV2ZW50cyBhcmUg
cHJvY2Vzc2VkKS4KICAgICBzd2l0Y2ggKGlucHV0RXZlbnQudHlwZSkgewogICAgIGNhc2UgV2Vi
SW5wdXRFdmVudDo6TW91c2VNb3ZlOgotICAgICAgICBNb3VzZU1vdmUoKnN0YXRpY19jYXN0PGNv
bnN0IFdlYk1vdXNlRXZlbnQqPigmaW5wdXRFdmVudCkpOworICAgICAgICBoYW5kbGVNb3VzZU1v
dmUoKnN0YXRpY19jYXN0PGNvbnN0IFdlYk1vdXNlRXZlbnQqPigmaW5wdXRFdmVudCkpOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6TW91c2VMZWF2ZToK
LSAgICAgICAgTW91c2VMZWF2ZSgqc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVudCo+KCZp
bnB1dEV2ZW50KSk7CisgICAgICAgIGhhbmRsZU1vdXNlTGVhdmUoKnN0YXRpY19jYXN0PGNvbnN0
IFdlYk1vdXNlRXZlbnQqPigmaW5wdXRFdmVudCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKIAog
ICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6TW91c2VXaGVlbDoKLSAgICAgICAgTW91c2VXaGVlbCgq
c3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VXaGVlbEV2ZW50Kj4oJmlucHV0RXZlbnQpKTsKKyAg
ICAgICAgaGFuZGxlTW91c2VXaGVlbCgqc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VXaGVlbEV2
ZW50Kj4oJmlucHV0RXZlbnQpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBjYXNlIFdl
YklucHV0RXZlbnQ6Ok1vdXNlRG93bjoKLSAgICAgICAgTW91c2VEb3duKCpzdGF0aWNfY2FzdDxj
b25zdCBXZWJNb3VzZUV2ZW50Kj4oJmlucHV0RXZlbnQpKTsKKyAgICAgICAgaGFuZGxlTW91c2VE
b3duKCpzdGF0aWNfY2FzdDxjb25zdCBXZWJNb3VzZUV2ZW50Kj4oJmlucHV0RXZlbnQpKTsKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Ok1vdXNlVXA6Ci0g
ICAgICAgIE1vdXNlVXAoKnN0YXRpY19jYXN0PGNvbnN0IFdlYk1vdXNlRXZlbnQqPigmaW5wdXRF
dmVudCkpOworICAgICAgICBoYW5kbGVNb3VzZVVwKCpzdGF0aWNfY2FzdDxjb25zdCBXZWJNb3Vz
ZUV2ZW50Kj4oJmlucHV0RXZlbnQpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBJ
biBXaW5kb3dzLCBSYXdLZXlEb3duIG9ubHkgaGFzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwaHlz
aWNhbCBrZXksIGJ1dApAQCAtMjY0LDEzICsyNjIsMTMgQEAgYm9vbCBXZWJQb3B1cE1lbnVJbXBs
OjpoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmIGlucHV0RXZlbnQpCiAgICAg
Y2FzZSBXZWJJbnB1dEV2ZW50OjpLZXlEb3duOgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6S2V5
VXA6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpDaGFyOgotICAgICAgICByZXR1cm4gS2V5RXZl
bnQoKnN0YXRpY19jYXN0PGNvbnN0IFdlYktleWJvYXJkRXZlbnQqPigmaW5wdXRFdmVudCkpOwor
ICAgICAgICByZXR1cm4gaGFuZGxlS2V5RXZlbnQoKnN0YXRpY19jYXN0PGNvbnN0IFdlYktleWJv
YXJkRXZlbnQqPigmaW5wdXRFdmVudCkpOwogCiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpUb3Vj
aFN0YXJ0OgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6VG91Y2hNb3ZlOgogICAgIGNhc2UgV2Vi
SW5wdXRFdmVudDo6VG91Y2hFbmQ6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpUb3VjaENhbmNl
bDoKLSAgICAgICAgcmV0dXJuIFRvdWNoRXZlbnQoKnN0YXRpY19jYXN0PGNvbnN0IFdlYlRvdWNo
RXZlbnQqPigmaW5wdXRFdmVudCkpOworICAgICAgICByZXR1cm4gaGFuZGxlVG91Y2hFdmVudCgq
c3RhdGljX2Nhc3Q8Y29uc3QgV2ViVG91Y2hFdmVudCo+KCZpbnB1dEV2ZW50KSk7CiAKICAgICBj
YXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxCZWdpbjoKICAgICBjYXNlIFdlYklucHV0
RXZlbnQ6Okdlc3R1cmVTY3JvbGxFbmQ6CkBAIC0yODAsNyArMjc4LDcgQEAgYm9vbCBXZWJQb3B1
cE1lbnVJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmIGlucHV0RXZl
bnQpCiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwOgogICAgIGNhc2UgV2ViSW5w
dXRFdmVudDo6R2VzdHVyZVRhcERvd246CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJl
RG91YmxlVGFwOgotICAgICAgICByZXR1cm4gR2VzdHVyZUV2ZW50KCpzdGF0aWNfY2FzdDxjb25z
dCBXZWJHZXN0dXJlRXZlbnQqPigmaW5wdXRFdmVudCkpOworICAgICAgICByZXR1cm4gaGFuZGxl
R2VzdHVyZUV2ZW50KCpzdGF0aWNfY2FzdDxjb25zdCBXZWJHZXN0dXJlRXZlbnQqPigmaW5wdXRF
dmVudCkpOwogCiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpVbmRlZmluZWQ6CiAgICAgY2FzZSBX
ZWJJbnB1dEV2ZW50OjpNb3VzZUVudGVyOgpAQCAtMjk0LDcgKzI5Miw3IEBAIHZvaWQgV2ViUG9w
dXBNZW51SW1wbDo6bW91c2VDYXB0dXJlTG9zdCgpCiB7CiB9CiAKLXZvaWQgV2ViUG9wdXBNZW51
SW1wbDo6c2V0Rm9jdXMoYm9vbCBlbmFibGUpCit2b2lkIFdlYlBvcHVwTWVudUltcGw6OnNldEZv
Y3VzKGJvb2wpCiB7CiB9CiAKQEAgLTMwMyw5ICszMDEsNyBAQCB2b2lkIFdlYlBvcHVwTWVudTo6
c2V0TWluaW11bVJvd0hlaWdodChpbnQgbWluaW11bVJvd0hlaWdodCkKICAgICBQb3B1cE1lbnVD
aHJvbWl1bTo6c2V0TWluaW11bVJvd0hlaWdodChtaW5pbXVtUm93SGVpZ2h0KTsKIH0KIAotYm9v
bCBXZWJQb3B1cE1lbnVJbXBsOjpzZXRDb21wb3NpdGlvbigKLSAgICBjb25zdCBXZWJTdHJpbmcm
IHRleHQsIGNvbnN0IFdlYlZlY3RvcjxXZWJDb21wb3NpdGlvblVuZGVybGluZT4mIHVuZGVybGlu
ZXMsCi0gICAgaW50IHNlbGVjdGlvblN0YXJ0LCBpbnQgc2VsZWN0aW9uRW5kKQorYm9vbCBXZWJQ
b3B1cE1lbnVJbXBsOjpzZXRDb21wb3NpdGlvbihjb25zdCBXZWJTdHJpbmcmLCBjb25zdCBXZWJW
ZWN0b3I8V2ViQ29tcG9zaXRpb25VbmRlcmxpbmU+JiwgaW50LCBpbnQpCiB7CiAgICAgcmV0dXJu
IGZhbHNlOwogfQpAQCAtMzE1LDcgKzMxMSw3IEBAIGJvb2wgV2ViUG9wdXBNZW51SW1wbDo6Y29u
ZmlybUNvbXBvc2l0aW9uKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgV2ViUG9wdXBN
ZW51SW1wbDo6Y29uZmlybUNvbXBvc2l0aW9uKGNvbnN0IFdlYlN0cmluZyYgdGV4dCkKK2Jvb2wg
V2ViUG9wdXBNZW51SW1wbDo6Y29uZmlybUNvbXBvc2l0aW9uKGNvbnN0IFdlYlN0cmluZyYpCiB7
CiAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtMzM5LDcgKzMzNSw3IEBAIGJvb2wgV2ViUG9wdXBN
ZW51SW1wbDo6Y2FyZXRPclNlbGVjdGlvblJhbmdlKHNpemVfdCogbG9jYXRpb24sIHNpemVfdCog
bGVuZ3RoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBXZWJQb3B1cE1lbnVJbXBsOjpz
ZXRUZXh0RGlyZWN0aW9uKFdlYlRleHREaXJlY3Rpb24gZGlyZWN0aW9uKQordm9pZCBXZWJQb3B1
cE1lbnVJbXBsOjpzZXRUZXh0RGlyZWN0aW9uKFdlYlRleHREaXJlY3Rpb24pCiB7CiB9CiAKQEAg
LTM0NywxMSArMzQzLDYgQEAgdm9pZCBXZWJQb3B1cE1lbnVJbXBsOjpzZXRUZXh0RGlyZWN0aW9u
KFdlYlRleHREaXJlY3Rpb24gZGlyZWN0aW9uKQogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8g
V2ViQ29yZTo6SG9zdFdpbmRvdwogCi12b2lkIFdlYlBvcHVwTWVudUltcGw6OmludmFsaWRhdGVD
b250ZW50cyhjb25zdCBJbnRSZWN0JiwgYm9vbCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwot
fQotCiB2b2lkIFdlYlBvcHVwTWVudUltcGw6OmludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRS
ZWN0JiwgYm9vbCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpAQCAtMzc0LDkgKzM2NSw3IEBA
IHZvaWQgV2ViUG9wdXBNZW51SW1wbDo6c2NoZWR1bGVBbmltYXRpb24oKQogewogfQogCi12b2lk
IFdlYlBvcHVwTWVudUltcGw6OnNjcm9sbChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEludFJlY3QmIHNjcm9sbFJlY3QsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkKK3Zv
aWQgV2ViUG9wdXBNZW51SW1wbDo6c2Nyb2xsKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBj
b25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkKIHsKICAg
ICBpZiAobV9jbGllbnQpIHsKICAgICAgICAgaW50IGR4ID0gc2Nyb2xsRGVsdGEud2lkdGgoKTsK
QEAgLTM5NywxMiArMzg2LDYgQEAgSW50UmVjdCBXZWJQb3B1cE1lbnVJbXBsOjpyb290Vmlld1Rv
U2NyZWVuKGNvbnN0IEludFJlY3QmIHJlY3QpIGNvbnN0CiAgICAgcmV0dXJuIEludFJlY3QoKTsK
IH0KIAotdm9pZCBXZWJQb3B1cE1lbnVJbXBsOjpzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50
UmVjdCYpIGNvbnN0Ci17Ci0gICAgLy8gTm90aGluZyB0byBiZSBkb25lIGhlcmUgc2luY2Ugd2Ug
ZG8gbm90IGhhdmUgdGhlIGNvbmNlcHQgb2YgYSBjb250YWluZXIKLSAgICAvLyB0aGF0IGltcGxl
bWVudHMgaXRzIG93biBzY3JvbGxpbmcuCi19Ci0KIHZvaWQgV2ViUG9wdXBNZW51SW1wbDo6c2Ny
b2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdAogewogICAgIC8vIE5vdGhpbmcgdG8gYmUgZG9u
ZSBzaW5jZSB3ZSBoYXZlIG5vIGNvbmNlcHQgb2YgZGlmZmVyZW50IHNjcm9sbGJhciBtb2Rlcy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwu
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuaAppbmRleCAx
ZGVjNzdjMjhmOTZjMjBjNTU5ZWI0ZTE3ZmQ4ZWEzOWU4YmU5MWIxLi4wYWQwMzk2M2E3NjY1NTVl
MDU4YjE3YjBjZDdiMjczNTA3NDUwYjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJQb3B1cE1lbnVJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViUG9wdXBNZW51SW1wbC5oCkBAIC0zMiw4ICszMiw4IEBACiAjZGVmaW5lIFdlYlBvcHVw
TWVudUltcGxfaAogCiAjaW5jbHVkZSAiRnJhbWVsZXNzU2Nyb2xsVmlld0NsaWVudC5oIgotI2lu
Y2x1ZGUgInBsYXRmb3JtL1dlYlBvaW50LmgiCiAjaW5jbHVkZSAiV2ViUG9wdXBNZW51LmgiCisj
aW5jbHVkZSAicGxhdGZvcm0vV2ViUG9pbnQuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJTaXpl
LmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CkBAIC02NSw4MSArNjUsNzggQEAgY2xhc3MgV2ViUG9wdXBNZW51SW1wbCA6IHB1YmxpYyBXZWJQ
b3B1cE1lbnUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFJlZkNvdW50ZWQ8V2Vi
UG9wdXBNZW51SW1wbD4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgot
ICAgIC8vIFdlYldpZGdldAotICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpOwotICAgIHZpcnR1YWwg
V2ViU2l6ZSBzaXplKCkgeyByZXR1cm4gbV9zaXplOyB9Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxT
dGFydExpdmVSZXNpemUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzaXplKGNvbnN0IFdlYlNpemUm
KTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbEVuZExpdmVSZXNpemUoKTsKLSAgICB2aXJ0dWFsIHZv
aWQgYW5pbWF0ZShkb3VibGUgZnJhbWVCZWdpblRpbWUpOwotICAgIHZpcnR1YWwgdm9pZCBsYXlv
dXQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoV2ViQ2FudmFzKiBjYW52YXMsIGNvbnN0IFdl
YlJlY3QmIHJlY3QpOwotICAgIHZpcnR1YWwgdm9pZCB0aGVtZUNoYW5nZWQoKTsKLSAgICB2aXJ0
dWFsIHZvaWQgY29tcG9zaXRlKGJvb2wgZmluaXNoKTsKLSAgICB2aXJ0dWFsIGJvb2wgaGFuZGxl
SW5wdXRFdmVudChjb25zdCBXZWJJbnB1dEV2ZW50Jik7Ci0gICAgdmlydHVhbCB2b2lkIG1vdXNl
Q2FwdHVyZUxvc3QoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9jdXMoYm9vbCBlbmFibGUpOwor
ICAgIC8vIFdlYldpZGdldCBmdW5jdGlvbnM6CisgICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBXZWJTaXplIHNpemUoKSBPVkVSUklERSB7IHJldHVybiBtX3Np
emU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCByZXNpemUoY29uc3QgV2ViU2l6ZSYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCB3aWxsRW5kTGl2ZVJlc2l6ZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBhbmltYXRlKGRvdWJsZSBmcmFtZUJlZ2luVGltZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGxheW91dCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYWludChXZWJDYW52YXMq
LCBjb25zdCBXZWJSZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHRoZW1lQ2hhbmdl
ZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb21wb3NpdGUoYm9vbCBmaW5pc2gpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0
RXZlbnQmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbW91c2VDYXB0dXJlTG9zdCgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1cyhib29sIGVuYWJsZSkgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBib29sIHNldENvbXBvc2l0aW9uKAogICAgICAgICBjb25zdCBXZWJTdHJp
bmcmIHRleHQsCiAgICAgICAgIGNvbnN0IFdlYlZlY3RvcjxXZWJDb21wb3NpdGlvblVuZGVybGlu
ZT4mIHVuZGVybGluZXMsCi0gICAgICAgIGludCBzZWxlY3Rpb25TdGFydCwgaW50IHNlbGVjdGlv
bkVuZCk7Ci0gICAgdmlydHVhbCBib29sIGNvbmZpcm1Db21wb3NpdGlvbigpOwotICAgIHZpcnR1
YWwgYm9vbCBjb25maXJtQ29tcG9zaXRpb24oY29uc3QgV2ViU3RyaW5nJiB0ZXh0KTsKLSAgICB2
aXJ0dWFsIGJvb2wgY29tcG9zaXRpb25SYW5nZShzaXplX3QqIGxvY2F0aW9uLCBzaXplX3QqIGxl
bmd0aCk7Ci0gICAgdmlydHVhbCBXZWJUZXh0SW5wdXRUeXBlIHRleHRJbnB1dFR5cGUoKTsKLSAg
ICB2aXJ0dWFsIGJvb2wgY2FyZXRPclNlbGVjdGlvblJhbmdlKHNpemVfdCogbG9jYXRpb24sIHNp
emVfdCogbGVuZ3RoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dERpcmVjdGlvbihXZWJUZXh0
RGlyZWN0aW9uIGRpcmVjdGlvbik7Ci0gICAgdmlydHVhbCBib29sIGlzQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAgIGludCBzZWxl
Y3Rpb25TdGFydCwgaW50IHNlbGVjdGlvbkVuZCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29s
IGNvbmZpcm1Db21wb3NpdGlvbigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBjb25maXJt
Q29tcG9zaXRpb24oY29uc3QgV2ViU3RyaW5nJiB0ZXh0KSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IGJvb2wgY29tcG9zaXRpb25SYW5nZShzaXplX3QqIGxvY2F0aW9uLCBzaXplX3QqIGxlbmd0aCkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJUZXh0SW5wdXRUeXBlIHRleHRJbnB1dFR5cGUoKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FyZXRPclNlbGVjdGlvblJhbmdlKHNpemVfdCog
bG9jYXRpb24sIHNpemVfdCogbGVuZ3RoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
VGV4dERpcmVjdGlvbihXZWJUZXh0RGlyZWN0aW9uKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJv
b2wgaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1
cm4gZmFsc2U7IH0KIAogICAgIC8vIFdlYlBvcHVwTWVudUltcGwKLSAgICB2b2lkIEluaXQoV2Vi
Q29yZTo6RnJhbWVsZXNzU2Nyb2xsVmlldyogd2lkZ2V0LAotICAgICAgICAgICAgICBjb25zdCBX
ZWJSZWN0JiBib3VuZHMpOworICAgIHZvaWQgaW5pdChXZWJDb3JlOjpGcmFtZWxlc3NTY3JvbGxW
aWV3KiB3aWRnZXQsIGNvbnN0IFdlYlJlY3QmIGJvdW5kcyk7CiAKICAgICBXZWJXaWRnZXRDbGll
bnQqIGNsaWVudCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKLSAgICB2b2lkIE1vdXNlTW92ZShj
b25zdCBXZWJNb3VzZUV2ZW50Jik7Ci0gICAgdm9pZCBNb3VzZUxlYXZlKGNvbnN0IFdlYk1vdXNl
RXZlbnQmKTsKLSAgICB2b2lkIE1vdXNlRG93bihjb25zdCBXZWJNb3VzZUV2ZW50Jik7Ci0gICAg
dm9pZCBNb3VzZVVwKGNvbnN0IFdlYk1vdXNlRXZlbnQmKTsKLSAgICB2b2lkIE1vdXNlRG91Ymxl
Q2xpY2soY29uc3QgV2ViTW91c2VFdmVudCYpOwotICAgIHZvaWQgTW91c2VXaGVlbChjb25zdCBX
ZWJNb3VzZVdoZWVsRXZlbnQmKTsKLSAgICBib29sIEdlc3R1cmVFdmVudChjb25zdCBXZWJHZXN0
dXJlRXZlbnQmKTsKLSAgICBib29sIFRvdWNoRXZlbnQoY29uc3QgV2ViVG91Y2hFdmVudCYpOwot
ICAgIGJvb2wgS2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYpOworICAgIHZvaWQgaGFu
ZGxlTW91c2VNb3ZlKGNvbnN0IFdlYk1vdXNlRXZlbnQmKTsKKyAgICB2b2lkIGhhbmRsZU1vdXNl
TGVhdmUoY29uc3QgV2ViTW91c2VFdmVudCYpOworICAgIHZvaWQgaGFuZGxlTW91c2VEb3duKGNv
bnN0IFdlYk1vdXNlRXZlbnQmKTsKKyAgICB2b2lkIGhhbmRsZU1vdXNlVXAoY29uc3QgV2ViTW91
c2VFdmVudCYpOworICAgIHZvaWQgaGFuZGxlTW91c2VEb3VibGVDbGljayhjb25zdCBXZWJNb3Vz
ZUV2ZW50Jik7CisgICAgdm9pZCBoYW5kbGVNb3VzZVdoZWVsKGNvbnN0IFdlYk1vdXNlV2hlZWxF
dmVudCYpOworICAgIGJvb2wgaGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0IFdlYkdlc3R1cmVFdmVu
dCYpOworICAgIGJvb2wgaGFuZGxlVG91Y2hFdmVudChjb25zdCBXZWJUb3VjaEV2ZW50Jik7Cisg
ICAgYm9vbCBoYW5kbGVLZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50Jik7CiAKICAgIHBy
b3RlY3RlZDoKLSAgICBmcmllbmQgY2xhc3MgV2ViUG9wdXBNZW51OyAgLy8gRm9yIFdlYlBvcHVw
TWVudTo6Y3JlYXRlCisgICAgZnJpZW5kIGNsYXNzIFdlYlBvcHVwTWVudTsgLy8gRm9yIFdlYlBv
cHVwTWVudTo6Y3JlYXRlLgogICAgIGZyaWVuZCBjbGFzcyBXVEY6OlJlZkNvdW50ZWQ8V2ViUG9w
dXBNZW51SW1wbD47CiAKLSAgICBXZWJQb3B1cE1lbnVJbXBsKFdlYldpZGdldENsaWVudCogY2xp
ZW50KTsKKyAgICBXZWJQb3B1cE1lbnVJbXBsKFdlYldpZGdldENsaWVudCopOwogICAgIH5XZWJQ
b3B1cE1lbnVJbXBsKCk7CiAKICAgICAvLyBXZWJDb3JlOjpIb3N0V2luZG93IG1ldGhvZHM6Ci0g
ICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50cyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiwgYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiwgYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50
c0FuZFJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKTsKLSAgICB2aXJ0dWFs
IHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiwgYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCk7CisgICAg
dmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jiwg
Ym9vbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJv
b3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiwgYm9vbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQW5pbWF0
aW9uKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbCgKICAgICAgICAgY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNj
cm9sbFJlY3QsCi0gICAgICAgIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KTsKLSAg
ICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmKSBjb25zdDsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3Qgcm9vdFZp
ZXdUb1NjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3Q7Ci0gICAgdmlydHVhbCBQ
bGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gMDsg
fQotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgp
IGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29y
Jik7Ci0gICAgdmlydHVhbCB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29s
KTsKKyAgICAgICAgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuVG9Sb290Vmlldyhjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50
UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbGJh
cnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEN1
cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpIE9WRVJSSURFOwogCiAgICAgLy8g
V2ViQ29yZTo6RnJhbWVsZXNzU2Nyb2xsVmlld0NsaWVudCBtZXRob2RzOgotICAgIHZpcnR1YWwg
dm9pZCBwb3B1cENsb3NlZChXZWJDb3JlOjpGcmFtZWxlc3NTY3JvbGxWaWV3Kik7CisgICAgdmly
dHVhbCB2b2lkIHBvcHVwQ2xvc2VkKFdlYkNvcmU6OkZyYW1lbGVzc1Njcm9sbFZpZXcqKSBPVkVS
UklERTsKIAogICAgIFdlYldpZGdldENsaWVudCogbV9jbGllbnQ7CiAgICAgV2ViU2l6ZSBtX3Np
emU7CiAKICAgICBXZWJQb2ludCBtX2xhc3RNb3VzZVBvc2l0aW9uOwogCi0gICAgLy8gVGhpcyBp
cyBhIG5vbi1vd25pbmcgcmVmLiAgVGhlIHBvcHVwIHdpbGwgbm90aWZ5IHVzIHZpYSBwb3B1cENs
b3NlZCgpCisgICAgLy8gVGhpcyBpcyBhIG5vbi1vd25pbmcgcmVmLiBUaGUgcG9wdXAgd2lsbCBu
b3RpZnkgdXMgdmlhIHBvcHVwQ2xvc2VkKCkKICAgICAvLyBiZWZvcmUgaXQgaXMgZGVzdHJveWVk
LgogICAgIFdlYkNvcmU6OkZyYW1lbGVzc1Njcm9sbFZpZXcqIG1fd2lkZ2V0OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>