<?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>126348</bug_id>
          
          <creation_ts>2013-12-31 12:23:17 -0800</creation_ts>
          <short_desc>ScrollingStateNodes should have a reference to the ScrollingStateTree</short_desc>
          <delta_ts>2014-01-01 10:23:02 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>963539</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-12-31 12:23:17 -0800</bug_when>
    <thetext>ScrollingStateNodes should have a reference to the ScrollingStateTree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963540</commentid>
    <comment_count>1</comment_count>
      <attachid>220167</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-12-31 12:25:24 -0800</bug_when>
    <thetext>Created attachment 220167
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963577</commentid>
    <comment_count>2</comment_count>
      <attachid>220167</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-12-31 22:05:14 -0800</bug_when>
    <thetext>Comment on attachment 220167
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        In subclasses access the ScrollingStateTree through a member function.s

Tyop.s

&gt; Source/WebCore/page/scrolling/ScrollingStateTree.cpp:147
&gt; +void ScrollingStateTree::addNode(ScrollingStateNode* node)

Could this take a reference?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963611</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-01-01 10:23:02 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/161191</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220167</attachid>
            <date>2013-12-31 12:25:24 -0800</date>
            <delta_ts>2013-12-31 22:05:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126348-20131231122523.patch</filename>
            <type>text/plain</type>
            <size>31674</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxMTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzBmYzk4N2ExZTk4M2Ez
NWEyZTY5ODY0YTQzZjQ1ZTIxMTBiNmY1Yy4uNTJiODFhZGY3YWZhN2I5MzJkZTNlNjQ2MjlhNWRi
YzZlN2NmZDRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDEzLTEyLTMxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9sbGluZ1N0
YXRlTm9kZXMgc2hvdWxkIGhhdmUgYSByZWZlcmVuY2UgdG8gdGhlIFNjcm9sbGluZ1N0YXRlVHJl
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2MzQ4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBT
Y3JvbGxpbmdTdGF0ZU5vZGVzIGFsd2F5cyBiZWxvbmcgdG8gYSBTY3JvbGxpbmdTdGF0ZVRyZWUs
IGFuZCB0aHVzCisgICAgICAgIGhhdmUgYSByZWZlcmVuY2UgdG8gdGhlIHRyZWUgcmF0aGVyIHRo
YW4gYSBwb2ludGVyLiBXaGVuIGNsb25pbmcgbm9kZXMsCisgICAgICAgIHRoZXkgYXJlIGFkb3B0
ZWQgYnkgYSBuZXcgU2Nyb2xsaW5nU3RhdGVUcmVlLCB3aGljaCBhZGRzIHRoZW0gdG8gaXRzCisg
ICAgICAgIG5vZGUgbWFwICh3aGljaCBkaWRuJ3QgaGFwcGVuIGJlZm9yZSkuCisgICAgICAgIAor
ICAgICAgICBJbiBzdWJjbGFzc2VzIGFjY2VzcyB0aGUgU2Nyb2xsaW5nU3RhdGVUcmVlIHRocm91
Z2ggYSBtZW1iZXIgZnVuY3Rpb24ucworCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nU3RhdGVGaXhlZE5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVG
aXhlZE5vZGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZUZpeGVk
Tm9kZTo6U2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nU3RhdGVGaXhlZE5vZGU6OmNsb25lKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0
YXRlRml4ZWROb2RlOjp1cGRhdGVDb25zdHJhaW50cyk6CisgICAgICAgICogcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdTdGF0ZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVO
b2RlOjpTY3JvbGxpbmdTdGF0ZU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3Rh
dGVOb2RlOjpjbG9uZUFuZFJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRl
Tm9kZTo6Y2xvbmVBbmRSZXNldENoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1N0YXRlTm9kZTo6d2lsbEJlUmVtb3ZlZEZyb21TdGF0ZVRyZWUpOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nU3RhdGVOb2RlOjpzY3JvbGxpbmdTdGF0ZVRyZWUpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmNsb25lKToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0Vmlld3Bv
cnRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6
c2V0VG90YWxDb250ZW50c1NpemUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMpOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRGcmFtZVNjYWxl
RmFjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6
c2V0Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRXaGVlbEV2ZW50SGFuZGxlckNvdW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U3luY2hyb25vdXNTY3Jv
bGxpbmdSZWFzb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZTo6c2V0U2Nyb2xsQmVoYXZpb3JGb3JGaXhlZEVsZW1lbnRzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRI
ZWFkZXJIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlOjpzZXRGb290ZXJIZWlnaHQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1N0YXRlU3RpY2t5Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVN0
aWNreU5vZGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVN0aWNr
eU5vZGU6OlNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdTdGF0ZVN0aWNreU5vZGU6OmNsb25lKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1N0YXRlU3RpY2t5Tm9kZTo6dXBkYXRlQ29uc3RyYWludHMpOgorICAgICAgICAqIHBhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdT
dGF0ZVRyZWU6OmF0dGFjaE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVU
cmVlOjpjb21taXQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVUcmVlOjphZGRO
b2RlKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuaDoKKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nU3RhdGVOb2RlTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVOb2RlOjpzZXRTY3JvbGxMYXllcik6CisgICAg
ICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZU1hYy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0Q291
bnRlclNjcm9sbGluZ0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZTo6c2V0SGVhZGVyTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRGb290ZXJMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbGJhclBhaW50ZXJzRnJvbVNjcm9s
bGJhcnMpOgorCiAyMDEzLTEyLTMxICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4K
IAogICAgICAgICBPdXQtb2YtbGluZSBSZW5kZXJTdHlsZSBzdWJzdHJ1Y3R1cmUgY29weWluZyBo
ZWxwZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nU3RhdGVGaXhlZE5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nU3RhdGVGaXhlZE5vZGUuY3BwCmluZGV4IDJiZDBmM2RmZjI4MTdkZWU2NWVhMWY3ZWVm
YmQzNDAyYTA5OTA0N2IuLmMxMzk1MWEzNGFjMTZiOGU1MmNkOWE1MDM5ODFmYzI3ZDAzZWMxMWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRl
Rml4ZWROb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdTdGF0ZUZpeGVkTm9kZS5jcHAKQEAgLTM1LDE4ICszNSwxOCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLVBhc3NPd25QdHI8U2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGU+IFNjcm9sbGluZ1N0
YXRlRml4ZWROb2RlOjpjcmVhdGUoU2Nyb2xsaW5nU3RhdGVUcmVlKiBzdGF0ZVRyZWUsIFNjcm9s
bGluZ05vZGVJRCBub2RlSUQpCitQYXNzT3duUHRyPFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlPiBT
Y3JvbGxpbmdTdGF0ZUZpeGVkTm9kZTo6Y3JlYXRlKFNjcm9sbGluZ1N0YXRlVHJlZSYgc3RhdGVU
cmVlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQogewogICAgIHJldHVybiBhZG9wdFB0cihuZXcg
U2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUoc3RhdGVUcmVlLCBub2RlSUQpKTsKIH0KIAotU2Nyb2xs
aW5nU3RhdGVGaXhlZE5vZGU6OlNjcm9sbGluZ1N0YXRlRml4ZWROb2RlKFNjcm9sbGluZ1N0YXRl
VHJlZSogdHJlZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK1Njcm9sbGluZ1N0YXRlRml4ZWRO
b2RlOjpTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZShTY3JvbGxpbmdTdGF0ZVRyZWUmIHRyZWUsIFNj
cm9sbGluZ05vZGVJRCBub2RlSUQpCiAgICAgOiBTY3JvbGxpbmdTdGF0ZU5vZGUodHJlZSwgbm9k
ZUlEKQogewogfQogCi1TY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZTo6U2Nyb2xsaW5nU3RhdGVGaXhl
ZE5vZGUoY29uc3QgU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUmIG5vZGUpCi0gICAgOiBTY3JvbGxp
bmdTdGF0ZU5vZGUobm9kZSkKK1Njcm9sbGluZ1N0YXRlRml4ZWROb2RlOjpTY3JvbGxpbmdTdGF0
ZUZpeGVkTm9kZShjb25zdCBTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZSYgbm9kZSwgU2Nyb2xsaW5n
U3RhdGVUcmVlJiBhZG9wdGl2ZVRyZWUpCisgICAgOiBTY3JvbGxpbmdTdGF0ZU5vZGUobm9kZSwg
YWRvcHRpdmVUcmVlKQogICAgICwgbV9jb25zdHJhaW50cyhGaXhlZFBvc2l0aW9uVmlld3BvcnRD
b25zdHJhaW50cyhub2RlLnZpZXdwb3J0Q29uc3RyYWludHMoKSkpCiB7CiB9CkBAIC01NSw5ICs1
NSw5IEBAIFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlOjp+U2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUo
KQogewogfQogCi1QYXNzT3duUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gU2Nyb2xsaW5nU3RhdGVG
aXhlZE5vZGU6OmNsb25lKCkKK1Bhc3NPd25QdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBTY3JvbGxp
bmdTdGF0ZUZpeGVkTm9kZTo6Y2xvbmUoU2Nyb2xsaW5nU3RhdGVUcmVlJiBhZG9wdGl2ZVRyZWUp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZSgqdGhp
cykpOworICAgIHJldHVybiBhZG9wdFB0cihuZXcgU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUoKnRo
aXMsIGFkb3B0aXZlVHJlZSkpOwogfQogCiB2b2lkIFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlOjp1
cGRhdGVDb25zdHJhaW50cyhjb25zdCBGaXhlZFBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50cyYg
Y29uc3RyYWludHMpCkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVGaXhlZE5v
ZGU6OnVwZGF0ZUNvbnN0cmFpbnRzKGNvbnN0IEZpeGVkUG9zaXRpb25WaWV3cG9ydENvbnN0CiAK
ICAgICBtX2NvbnN0cmFpbnRzID0gY29uc3RyYWludHM7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2Vk
KFZpZXdwb3J0Q29uc3RyYWludHMpOwotICAgIG1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5zZXRIYXND
aGFuZ2VkUHJvcGVydGllcyh0cnVlKTsKKyAgICBzY3JvbGxpbmdTdGF0ZVRyZWUoKS5zZXRIYXND
aGFuZ2VkUHJvcGVydGllcyh0cnVlKTsKIH0KIAogdm9pZCBTY3JvbGxpbmdTdGF0ZUZpeGVkTm9k
ZTo6c3luY0xheWVyUG9zaXRpb25Gb3JWaWV3cG9ydFJlY3QoY29uc3QgTGF5b3V0UmVjdCYgdmll
d3BvcnRSZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nU3RhdGVGaXhlZE5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1N0YXRlRml4ZWROb2RlLmgKaW5kZXggNjllZjQ2OGY5ODA3ZjQ2ZjU4ZWRkZWEwMDMz
ZjJmZmEzODA5OGQ5My4uOTI5MjhiNGQ2MTkwOWJhOTRkMGQ5MjBkMmZkNTRhNDVlZDNlYjBjYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVG
aXhlZE5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdT
dGF0ZUZpeGVkTm9kZS5oCkBAIC0zOSw5ICszOSw5IEBAIGNsYXNzIEZpeGVkUG9zaXRpb25WaWV3
cG9ydENvbnN0cmFpbnRzOwogCiBjbGFzcyBTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZSBGSU5BTCA6
IHB1YmxpYyBTY3JvbGxpbmdTdGF0ZU5vZGUgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3du
UHRyPFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlPiBjcmVhdGUoU2Nyb2xsaW5nU3RhdGVUcmVlKiwg
U2Nyb2xsaW5nTm9kZUlEKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxTY3JvbGxpbmdTdGF0ZUZp
eGVkTm9kZT4gY3JlYXRlKFNjcm9sbGluZ1N0YXRlVHJlZSYsIFNjcm9sbGluZ05vZGVJRCk7CiAK
LSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjbG9uZSgpOworICAg
IHZpcnR1YWwgUGFzc093blB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IGNsb25lKFNjcm9sbGluZ1N0
YXRlVHJlZSYpOwogCiAgICAgdmlydHVhbCB+U2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUoKTsKIApA
QCAtNTMsOCArNTMsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgRml4ZWRQb3NpdGlvblZpZXdwb3J0
Q29uc3RyYWludHMmIHZpZXdwb3J0Q29uc3RyYWludHMoKSBjb25zdCB7IHJldHVybiBtX2NvbnN0
cmFpbnRzOyB9CiAKIHByaXZhdGU6Ci0gICAgU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUoU2Nyb2xs
aW5nU3RhdGVUcmVlKiwgU2Nyb2xsaW5nTm9kZUlEKTsKLSAgICBTY3JvbGxpbmdTdGF0ZUZpeGVk
Tm9kZShjb25zdCBTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZSYpOworICAgIFNjcm9sbGluZ1N0YXRl
Rml4ZWROb2RlKFNjcm9sbGluZ1N0YXRlVHJlZSYsIFNjcm9sbGluZ05vZGVJRCk7CisgICAgU2Ny
b2xsaW5nU3RhdGVGaXhlZE5vZGUoY29uc3QgU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUmLCBTY3Jv
bGxpbmdTdGF0ZVRyZWUmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0ZpeGVkTm9kZSgpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5jcHAKaW5kZXggNGNiNGU4Mjc3NzhhYjdh
ZTQxM2NkODJkY2YwNzhlM2FkNDFkZmY4Ny4uMWM1ZTYwMWY4Y2I5ZTNhNjQ0NGRiYjIwNGJmNTlm
MTQ0YmQwMjg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nU3RhdGVOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdTdGF0ZU5vZGUuY3BwCkBAIC0zNiwxMCArMzYsMTAgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1TY3JvbGxpbmdTdGF0ZU5vZGU6OlNjcm9sbGluZ1N0YXRlTm9kZShTY3JvbGxp
bmdTdGF0ZVRyZWUqIHNjcm9sbGluZ1N0YXRlVHJlZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkK
LSAgICA6IG1fc2Nyb2xsaW5nU3RhdGVUcmVlKHNjcm9sbGluZ1N0YXRlVHJlZSkKLSAgICAsIG1f
bm9kZUlEKG5vZGVJRCkKK1Njcm9sbGluZ1N0YXRlTm9kZTo6U2Nyb2xsaW5nU3RhdGVOb2RlKFNj
cm9sbGluZ1N0YXRlVHJlZSYgc2Nyb2xsaW5nU3RhdGVUcmVlLCBTY3JvbGxpbmdOb2RlSUQgbm9k
ZUlEKQorICAgIDogbV9ub2RlSUQobm9kZUlEKQogICAgICwgbV9jaGFuZ2VkUHJvcGVydGllcygw
KQorICAgICwgbV9zY3JvbGxpbmdTdGF0ZVRyZWUoc2Nyb2xsaW5nU3RhdGVUcmVlKQogICAgICwg
bV9wYXJlbnQoMCkKIHsKIH0KQEAgLTQ3LDM5ICs0Nyw0MCBAQCBTY3JvbGxpbmdTdGF0ZU5vZGU6
OlNjcm9sbGluZ1N0YXRlTm9kZShTY3JvbGxpbmdTdGF0ZVRyZWUqIHNjcm9sbGluZ1N0YXRlVHJl
ZSwgUwogLy8gVGhpcyBjb3B5IGNvbnN0cnVjdG9yIGlzIHVzZWQgZm9yIGNsb25pbmcgbm9kZXMg
aW4gdGhlIHRyZWUsIGFuZCBpdCBkb2Vzbid0IG1ha2Ugc2Vuc2UKIC8vIHRvIGNsb25lIHRoZSBy
ZWxhdGlvbnNoaXAgcG9pbnRlcnMsIHNvIGRvbid0IGNvcHkgdGhhdCBpbmZvcm1hdGlvbiBmcm9t
IHRoZSBvcmlnaW5hbAogLy8gbm9kZS4KLVNjcm9sbGluZ1N0YXRlTm9kZTo6U2Nyb2xsaW5nU3Rh
dGVOb2RlKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYgc3RhdGVOb2RlKQotICAgIDogbV9zY3Jv
bGxpbmdTdGF0ZVRyZWUoMCkKLSAgICAsIG1fbm9kZUlEKHN0YXRlTm9kZS5zY3JvbGxpbmdOb2Rl
SUQoKSkKK1Njcm9sbGluZ1N0YXRlTm9kZTo6U2Nyb2xsaW5nU3RhdGVOb2RlKGNvbnN0IFNjcm9s
bGluZ1N0YXRlTm9kZSYgc3RhdGVOb2RlLCBTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJl
ZSkKKyAgICA6IG1fbm9kZUlEKHN0YXRlTm9kZS5zY3JvbGxpbmdOb2RlSUQoKSkKICAgICAsIG1f
Y2hhbmdlZFByb3BlcnRpZXMoc3RhdGVOb2RlLmNoYW5nZWRQcm9wZXJ0aWVzKCkpCisgICAgLCBt
X3Njcm9sbGluZ1N0YXRlVHJlZShhZG9wdGl2ZVRyZWUpCiAgICAgLCBtX3BhcmVudCgwKQogewog
ICAgIC8vIEZJWE1FOiB3aHkgZG9lc24ndCB0aGlzIHNldCB0aGUgR3JhcGhpY3NMYXllcj8KICAg
ICBzZXRTY3JvbGxQbGF0Zm9ybUxheWVyKHN0YXRlTm9kZS5wbGF0Zm9ybVNjcm9sbExheWVyKCkp
OworICAgIHNjcm9sbGluZ1N0YXRlVHJlZSgpLmFkZE5vZGUodGhpcyk7CiB9CiAKIFNjcm9sbGlu
Z1N0YXRlTm9kZTo6flNjcm9sbGluZ1N0YXRlTm9kZSgpCiB7CiB9CiAKLVBhc3NPd25QdHI8U2Ny
b2xsaW5nU3RhdGVOb2RlPiBTY3JvbGxpbmdTdGF0ZU5vZGU6OmNsb25lQW5kUmVzZXQoKQorUGFz
c093blB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IFNjcm9sbGluZ1N0YXRlTm9kZTo6Y2xvbmVBbmRS
ZXNldChTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSkKIHsKLSAgICBPd25QdHI8U2Ny
b2xsaW5nU3RhdGVOb2RlPiBjbG9uZSA9IHRoaXMtPmNsb25lKCk7CisgICAgT3duUHRyPFNjcm9s
bGluZ1N0YXRlTm9kZT4gY2xvbmUgPSB0aGlzLT5jbG9uZShhZG9wdGl2ZVRyZWUpOwogCiAgICAg
Ly8gTm93IHRoYXQgdGhpcyBub2RlIGlzIGNsb25lZCwgcmVzZXQgb3VyIGNoYW5nZSBwcm9wZXJ0
aWVzLgogICAgIHJlc2V0Q2hhbmdlZFByb3BlcnRpZXMoKTsKIAotICAgIGNsb25lQW5kUmVzZXRD
aGlsZHJlbihjbG9uZS5nZXQoKSk7CisgICAgY2xvbmVBbmRSZXNldENoaWxkcmVuKCpjbG9uZSwg
YWRvcHRpdmVUcmVlKTsKICAgICByZXR1cm4gY2xvbmUucmVsZWFzZSgpOwogfQogCi12b2lkIFNj
cm9sbGluZ1N0YXRlTm9kZTo6Y2xvbmVBbmRSZXNldENoaWxkcmVuKFNjcm9sbGluZ1N0YXRlTm9k
ZSogY2xvbmUpCit2b2lkIFNjcm9sbGluZ1N0YXRlTm9kZTo6Y2xvbmVBbmRSZXNldENoaWxkcmVu
KFNjcm9sbGluZ1N0YXRlTm9kZSYgY2xvbmUsIFNjcm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRpdmVU
cmVlKQogewogICAgIGlmICghbV9jaGlsZHJlbikKICAgICAgICAgcmV0dXJuOwogCiAgICAgc2l6
ZV90IHNpemUgPSBtX2NoaWxkcmVuLT5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBzaXplOyArK2kpCi0gICAgICAgIGNsb25lLT5hcHBlbmRDaGlsZChtX2NoaWxkcmVuLT5hdChp
KS0+Y2xvbmVBbmRSZXNldCgpKTsKKyAgICAgICAgY2xvbmUuYXBwZW5kQ2hpbGQobV9jaGlsZHJl
bi0+YXQoaSktPmNsb25lQW5kUmVzZXQoYWRvcHRpdmVUcmVlKSk7CiB9CiAKIHZvaWQgU2Nyb2xs
aW5nU3RhdGVOb2RlOjphcHBlbmRDaGlsZChQYXNzT3duUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4g
Y2hpbGROb2RlKQpAQCAtMTE0LDkgKzExNSw3IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVOb2RlOjpy
ZW1vdmVDaGlsZChTY3JvbGxpbmdTdGF0ZU5vZGUqIG5vZGUpCiAKIHZvaWQgU2Nyb2xsaW5nU3Rh
dGVOb2RlOjp3aWxsQmVSZW1vdmVkRnJvbVN0YXRlVHJlZSgpCiB7Ci0gICAgQVNTRVJUKG1fc2Ny
b2xsaW5nU3RhdGVUcmVlKTsKLQotICAgIG1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5kaWRSZW1vdmVO
b2RlKHNjcm9sbGluZ05vZGVJRCgpKTsKKyAgICBzY3JvbGxpbmdTdGF0ZVRyZWUoKS5kaWRSZW1v
dmVOb2RlKHNjcm9sbGluZ05vZGVJRCgpKTsKIAogICAgIGlmICghbV9jaGlsZHJlbikKICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nU3RhdGVOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdTdGF0ZU5vZGUuaAppbmRleCAwYzIwMzU4NzEwMGExZjc2MDRhYmY5NjE2YWExY2JjMjlhZTRh
MDQ3Li5iNjZjMWI1ZmYzNTUwNTY1NzdlZWUzYWY0MTE3N2Y2YjNkNzE4ODAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuaApAQCAt
NDYsMTYgKzQ2LDE2IEBAIGNsYXNzIFRleHRTdHJlYW07CiAKIGNsYXNzIFNjcm9sbGluZ1N0YXRl
Tm9kZSB7CiBwdWJsaWM6Ci0gICAgU2Nyb2xsaW5nU3RhdGVOb2RlKFNjcm9sbGluZ1N0YXRlVHJl
ZSosIFNjcm9sbGluZ05vZGVJRCk7CisgICAgU2Nyb2xsaW5nU3RhdGVOb2RlKFNjcm9sbGluZ1N0
YXRlVHJlZSYsIFNjcm9sbGluZ05vZGVJRCk7CiAgICAgdmlydHVhbCB+U2Nyb2xsaW5nU3RhdGVO
b2RlKCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNTY3JvbGxpbmdOb2RlKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNGaXhlZE5vZGUoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1N0aWNreU5vZGUoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogCi0gICAgdmlydHVhbCBQYXNzT3duUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4g
Y2xvbmUoKSA9IDA7Ci0gICAgUGFzc093blB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IGNsb25lQW5k
UmVzZXQoKTsKLSAgICB2b2lkIGNsb25lQW5kUmVzZXRDaGlsZHJlbihTY3JvbGxpbmdTdGF0ZU5v
ZGUqKTsKKyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjbG9uZShT
Y3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSkgPSAwOworICAgIFBhc3NPd25QdHI8U2Ny
b2xsaW5nU3RhdGVOb2RlPiBjbG9uZUFuZFJlc2V0KFNjcm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRp
dmVUcmVlKTsKKyAgICB2b2lkIGNsb25lQW5kUmVzZXRDaGlsZHJlbihTY3JvbGxpbmdTdGF0ZU5v
ZGUmLCBTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSk7CiAKICAgICBlbnVtIHsKICAg
ICAgICAgU2Nyb2xsTGF5ZXIgPSAwLApAQCAtNzUsOCArNzUsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRTY3JvbGxMYXllcihHcmFwaGljc0xheWVyKik7CiAgICAgdm9pZCBzZXRTY3JvbGxQbGF0
Zm9ybUxheWVyKFBsYXRmb3JtTGF5ZXIqKTsKIAotICAgIFNjcm9sbGluZ1N0YXRlVHJlZSogc2Ny
b2xsaW5nU3RhdGVUcmVlKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxpbmdTdGF0ZVRyZWU7IH0K
LSAgICB2b2lkIHNldFNjcm9sbGluZ1N0YXRlVHJlZShTY3JvbGxpbmdTdGF0ZVRyZWUqIHRyZWUp
IHsgbV9zY3JvbGxpbmdTdGF0ZVRyZWUgPSB0cmVlOyB9CisgICAgU2Nyb2xsaW5nU3RhdGVUcmVl
JiBzY3JvbGxpbmdTdGF0ZVRyZWUoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGluZ1N0YXRlVHJl
ZTsgfQogCiAgICAgU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fbm9kZUlEOyB9CiAKQEAgLTkxLDkgKzkwLDcgQEAgcHVibGljOgogICAgIFN0cmluZyBz
Y3JvbGxpbmdTdGF0ZVRyZWVBc1RleHQoKSBjb25zdDsKIAogcHJvdGVjdGVkOgotICAgIFNjcm9s
bGluZ1N0YXRlTm9kZShjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmKTsKLQotICAgIFNjcm9sbGlu
Z1N0YXRlVHJlZSogbV9zY3JvbGxpbmdTdGF0ZVRyZWU7CisgICAgU2Nyb2xsaW5nU3RhdGVOb2Rl
KGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYsIFNjcm9sbGluZ1N0YXRlVHJlZSYpOwogCiBwcml2
YXRlOgogICAgIHZvaWQgZHVtcChUZXh0U3RyZWFtJiwgaW50IGluZGVudCkgY29uc3Q7CkBAIC0x
MDUsNiArMTAyLDggQEAgcHJpdmF0ZToKICAgICBTY3JvbGxpbmdOb2RlSUQgbV9ub2RlSUQ7CiAg
ICAgQ2hhbmdlZFByb3BlcnRpZXMgbV9jaGFuZ2VkUHJvcGVydGllczsKIAorICAgIFNjcm9sbGlu
Z1N0YXRlVHJlZSYgbV9zY3JvbGxpbmdTdGF0ZVRyZWU7CisKICAgICBTY3JvbGxpbmdTdGF0ZU5v
ZGUqIG1fcGFyZW50OwogICAgIE93blB0cjxWZWN0b3I8T3duUHRyPFNjcm9sbGluZ1N0YXRlTm9k
ZT4+PiBtX2NoaWxkcmVuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCAyNTUzYjgz
OTMwYWM4ODZlMTEzZGJkYzQ3ZTlhZWI4OTlmYjM2NzJjLi5mNTQzNmY1N2FhNDI0M2I1MTY4ZmYz
ODM2ZWZhZjUzYTk5MjZiY2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTM0LDEy
ICszNCwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NPd25QdHI8U2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlPiBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmNyZWF0ZShT
Y3JvbGxpbmdTdGF0ZVRyZWUqIHN0YXRlVHJlZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK1Bh
c3NPd25QdHI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPiBTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OmNyZWF0ZShTY3JvbGxpbmdTdGF0ZVRyZWUmIHN0YXRlVHJlZSwgU2Nyb2xsaW5n
Tm9kZUlEIG5vZGVJRCkKIHsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZShzdGF0ZVRyZWUsIG5vZGVJRCkpOwogfQogCi1TY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZShTY3JvbGxpbmdTdGF0ZVRy
ZWUqIHN0YXRlVHJlZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK1Njcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlKFNjcm9sbGluZ1N0YXRlVHJl
ZSYgc3RhdGVUcmVlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQogICAgIDogU2Nyb2xsaW5nU3Rh
dGVOb2RlKHN0YXRlVHJlZSwgbm9kZUlEKQogICAgICwgbV9jb3VudGVyU2Nyb2xsaW5nTGF5ZXIo
MCkKICAgICAsIG1faGVhZGVyTGF5ZXIoMCkKQEAgLTU4LDggKzU4LDggQEAgU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoU2Nyb2xsaW5nU3Rh
dGVUcmVlKiBzdGEKIHsKIH0KIAotU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGUoY29uc3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBz
dGF0ZU5vZGUpCi0gICAgOiBTY3JvbGxpbmdTdGF0ZU5vZGUoc3RhdGVOb2RlKQorU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoY29uc3QgU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBzdGF0ZU5vZGUsIFNjcm9sbGluZ1N0YXRlVHJlZSYg
YWRvcHRpdmVUcmVlKQorICAgIDogU2Nyb2xsaW5nU3RhdGVOb2RlKHN0YXRlTm9kZSwgYWRvcHRp
dmVUcmVlKQogI2lmIFBMQVRGT1JNKE1BQykKICAgICAsIG1fdmVydGljYWxTY3JvbGxiYXJQYWlu
dGVyKHN0YXRlTm9kZS52ZXJ0aWNhbFNjcm9sbGJhclBhaW50ZXIoKSkKICAgICAsIG1faG9yaXpv
bnRhbFNjcm9sbGJhclBhaW50ZXIoc3RhdGVOb2RlLmhvcml6b250YWxTY3JvbGxiYXJQYWludGVy
KCkpCkBAIC04Nyw5ICs4Nyw5IEBAIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6flNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSgpCiB7CiB9CiAKLVBhc3NPd25QdHI8U2Nyb2xsaW5nU3Rh
dGVOb2RlPiBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmNsb25lKCkKK1Bhc3NPd25QdHI8
U2Nyb2xsaW5nU3RhdGVOb2RlPiBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmNsb25lKFNj
cm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRpdmVUcmVlKQogewotICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlKCp0aGlzKSk7CisgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoKnRoaXMsIGFkb3B0aXZlVHJlZSkp
OwogfQogCiB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0Vmlld3BvcnRSZWN0
KGNvbnN0IEludFJlY3QmIHZpZXdwb3J0UmVjdCkKQEAgLTk5LDcgKzk5LDcgQEAgdm9pZCBTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFZpZXdwb3J0UmVjdChjb25zdCBJbnRSZWN0JiB2
aWV3cG9ydFJlY3QpCiAKICAgICBtX3ZpZXdwb3J0UmVjdCA9IHZpZXdwb3J0UmVjdDsKICAgICBz
ZXRQcm9wZXJ0eUNoYW5nZWQoVmlld3BvcnRSZWN0KTsKLSAgICBtX3Njcm9sbGluZ1N0YXRlVHJl
ZS0+c2V0SGFzQ2hhbmdlZFByb3BlcnRpZXModHJ1ZSk7CisgICAgc2Nyb2xsaW5nU3RhdGVUcmVl
KCkuc2V0SGFzQ2hhbmdlZFByb3BlcnRpZXModHJ1ZSk7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlOjpzZXRUb3RhbENvbnRlbnRzU2l6ZShjb25zdCBJbnRTaXplJiB0b3Rh
bENvbnRlbnRzU2l6ZSkKQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZTo6c2V0VG90YWxDb250ZW50c1NpemUoY29uc3QgSW50U2l6ZSYgdG90YWxDb250
ZQogCiAgICAgbV90b3RhbENvbnRlbnRzU2l6ZSA9IHRvdGFsQ29udGVudHNTaXplOwogICAgIHNl
dFByb3BlcnR5Q2hhbmdlZChUb3RhbENvbnRlbnRzU2l6ZSk7Ci0gICAgbV9zY3JvbGxpbmdTdGF0
ZVRyZWUtPnNldEhhc0NoYW5nZWRQcm9wZXJ0aWVzKHRydWUpOworICAgIHNjcm9sbGluZ1N0YXRl
VHJlZSgpLnNldEhhc0NoYW5nZWRQcm9wZXJ0aWVzKHRydWUpOwogfQogCiB2b2lkIFNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsT3JpZ2luKGNvbnN0IEludFBvaW50JiBzY3Jv
bGxPcmlnaW4pCkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6OnNldFNjcm9sbE9yaWdpbihjb25zdCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKQogCiAg
ICAgbV9zY3JvbGxPcmlnaW4gPSBzY3JvbGxPcmlnaW47CiAgICAgc2V0UHJvcGVydHlDaGFuZ2Vk
KFNjcm9sbE9yaWdpbik7Ci0gICAgbV9zY3JvbGxpbmdTdGF0ZVRyZWUtPnNldEhhc0NoYW5nZWRQ
cm9wZXJ0aWVzKHRydWUpOworICAgIHNjcm9sbGluZ1N0YXRlVHJlZSgpLnNldEhhc0NoYW5nZWRQ
cm9wZXJ0aWVzKHRydWUpOwogfQogCiB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6
c2V0U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKGNvbnN0IFNjcm9sbGFibGVBcmVhUGFyYW1ldGVy
cyYgcGFyYW1ldGVycykKQEAgLTEyOSw3ICsxMjksNyBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZTo6c2V0U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKGNvbnN0IFNjcm9sbGFibGVB
cgogCiAgICAgbV9zY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzOwogICAgIHNl
dFByb3BlcnR5Q2hhbmdlZChTY3JvbGxhYmxlQXJlYVBhcmFtcyk7Ci0gICAgbV9zY3JvbGxpbmdT
dGF0ZVRyZWUtPnNldEhhc0NoYW5nZWRQcm9wZXJ0aWVzKHRydWUpOworICAgIHNjcm9sbGluZ1N0
YXRlVHJlZSgpLnNldEhhc0NoYW5nZWRQcm9wZXJ0aWVzKHRydWUpOwogfQogCiB2b2lkIFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0RnJhbWVTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZh
Y3RvcikKQEAgLTE0MCw3ICsxNDAsNyBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZTo6c2V0RnJhbWVTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvcikKICAgICBtX2ZyYW1lU2Nh
bGVGYWN0b3IgPSBzY2FsZUZhY3RvcjsKIAogICAgIHNldFByb3BlcnR5Q2hhbmdlZChGcmFtZVNj
YWxlRmFjdG9yKTsKLSAgICBtX3Njcm9sbGluZ1N0YXRlVHJlZS0+c2V0SGFzQ2hhbmdlZFByb3Bl
cnRpZXModHJ1ZSk7CisgICAgc2Nyb2xsaW5nU3RhdGVUcmVlKCkuc2V0SGFzQ2hhbmdlZFByb3Bl
cnRpZXModHJ1ZSk7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRO
b25GYXN0U2Nyb2xsYWJsZVJlZ2lvbihjb25zdCBSZWdpb24mIG5vbkZhc3RTY3JvbGxhYmxlUmVn
aW9uKQpAQCAtMTUwLDcgKzE1MCw3IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
OjpzZXROb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbihjb25zdCBSZWdpb24mIG5vbkZhCiAKICAgICBt
X25vbkZhc3RTY3JvbGxhYmxlUmVnaW9uID0gbm9uRmFzdFNjcm9sbGFibGVSZWdpb247CiAgICAg
c2V0UHJvcGVydHlDaGFuZ2VkKE5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKTsKLSAgICBtX3Njcm9s
bGluZ1N0YXRlVHJlZS0+c2V0SGFzQ2hhbmdlZFByb3BlcnRpZXModHJ1ZSk7CisgICAgc2Nyb2xs
aW5nU3RhdGVUcmVlKCkuc2V0SGFzQ2hhbmdlZFByb3BlcnRpZXModHJ1ZSk7CiB9CiAKIHZvaWQg
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRXaGVlbEV2ZW50SGFuZGxlckNvdW50KHVu
c2lnbmVkIHdoZWVsRXZlbnRIYW5kbGVyQ291bnQpCkBAIC0xNjAsNyArMTYwLDcgQEAgdm9pZCBT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFdoZWVsRXZlbnRIYW5kbGVyQ291bnQodW5z
aWduZWQgd2hlZWxFdmVudEgKIAogICAgIG1fd2hlZWxFdmVudEhhbmRsZXJDb3VudCA9IHdoZWVs
RXZlbnRIYW5kbGVyQ291bnQ7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFdoZWVsRXZlbnRIYW5k
bGVyQ291bnQpOwotICAgIG1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5zZXRIYXNDaGFuZ2VkUHJvcGVy
dGllcyh0cnVlKTsKKyAgICBzY3JvbGxpbmdTdGF0ZVRyZWUoKS5zZXRIYXNDaGFuZ2VkUHJvcGVy
dGllcyh0cnVlKTsKIH0KIAogdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFN5
bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucyhTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMgcmVh
c29ucykKQEAgLTE3MCw3ICsxNzAsNyBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZTo6c2V0U3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKFN5bmNocm9ub3VzU2NybwogCiAgICAg
bV9zeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMgPSByZWFzb25zOwogICAgIHNldFByb3BlcnR5
Q2hhbmdlZChSZWFzb25zRm9yU3luY2hyb25vdXNTY3JvbGxpbmcpOwotICAgIG1fc2Nyb2xsaW5n
U3RhdGVUcmVlLT5zZXRIYXNDaGFuZ2VkUHJvcGVydGllcyh0cnVlKTsKKyAgICBzY3JvbGxpbmdT
dGF0ZVRyZWUoKS5zZXRIYXNDaGFuZ2VkUHJvcGVydGllcyh0cnVlKTsKIH0KIAogdm9pZCBTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbEJlaGF2aW9yRm9yRml4ZWRFbGVtZW50
cyhTY3JvbGxCZWhhdmlvckZvckZpeGVkRWxlbWVudHMgYmVoYXZpb3JGb3JGaXhlZCkKQEAgLTE4
MCw3ICsxODAsNyBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xs
QmVoYXZpb3JGb3JGaXhlZEVsZW1lbnRzKFNjcm9sbEJlaGF2aQogCiAgICAgbV9iZWhhdmlvckZv
ckZpeGVkID0gYmVoYXZpb3JGb3JGaXhlZDsKICAgICBzZXRQcm9wZXJ0eUNoYW5nZWQoQmVoYXZp
b3JGb3JGaXhlZEVsZW1lbnRzKTsKLSAgICBtX3Njcm9sbGluZ1N0YXRlVHJlZS0+c2V0SGFzQ2hh
bmdlZFByb3BlcnRpZXModHJ1ZSk7CisgICAgc2Nyb2xsaW5nU3RhdGVUcmVlKCkuc2V0SGFzQ2hh
bmdlZFByb3BlcnRpZXModHJ1ZSk7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlOjpzZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgcmVxdWVzdGVk
U2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkKQEAgLTE4
OCw3ICsxODgsNyBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0UmVxdWVz
dGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmIHJlcQogICAgIG1fcmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb24gPSByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsKICAgICBtX3JlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCA9IHJlcHJlc2VudHNQcm9n
cmFtbWF0aWNTY3JvbGw7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFJlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uKTsKLSAgICBtX3Njcm9sbGluZ1N0YXRlVHJlZS0+c2V0SGFzQ2hhbmdlZFByb3BlcnRp
ZXModHJ1ZSk7CisgICAgc2Nyb2xsaW5nU3RhdGVUcmVlKCkuc2V0SGFzQ2hhbmdlZFByb3BlcnRp
ZXModHJ1ZSk7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRIZWFk
ZXJIZWlnaHQoaW50IGhlYWRlckhlaWdodCkKQEAgLTE5OCw3ICsxOTgsNyBAQCB2b2lkIFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0SGVhZGVySGVpZ2h0KGludCBoZWFkZXJIZWlnaHQp
CiAKICAgICBtX2hlYWRlckhlaWdodCA9IGhlYWRlckhlaWdodDsKICAgICBzZXRQcm9wZXJ0eUNo
YW5nZWQoSGVhZGVySGVpZ2h0KTsKLSAgICBtX3Njcm9sbGluZ1N0YXRlVHJlZS0+c2V0SGFzQ2hh
bmdlZFByb3BlcnRpZXModHJ1ZSk7CisgICAgc2Nyb2xsaW5nU3RhdGVUcmVlKCkuc2V0SGFzQ2hh
bmdlZFByb3BlcnRpZXModHJ1ZSk7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlOjpzZXRGb290ZXJIZWlnaHQoaW50IGZvb3RlckhlaWdodCkKQEAgLTIwOCw3ICsyMDgsNyBA
QCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0Rm9vdGVySGVpZ2h0KGludCBm
b290ZXJIZWlnaHQpCiAKICAgICBtX2Zvb3RlckhlaWdodCA9IGZvb3RlckhlaWdodDsKICAgICBz
ZXRQcm9wZXJ0eUNoYW5nZWQoRm9vdGVySGVpZ2h0KTsKLSAgICBtX3Njcm9sbGluZ1N0YXRlVHJl
ZS0+c2V0SGFzQ2hhbmdlZFByb3BlcnRpZXModHJ1ZSk7CisgICAgc2Nyb2xsaW5nU3RhdGVUcmVl
KCkuc2V0SGFzQ2hhbmdlZFByb3BlcnRpZXModHJ1ZSk7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlOjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgaW50IGluZGVu
dCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgKaW5kZXggOWJmZGI5YTBjY2M3ODQ3MDIyYTg2
MjEzMGJiNDgwOTA2NWE5ZWIzNy4uMjUyNmIxNTBjYmY0MGI1ZDU3YmIxZjVhZTNkZDJmMTU5YWQx
MWFmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgKQEAgLTQyLDkgKzQyLDkgQEAgY2xhc3MgU2Ny
b2xsYmFyOwogCiBjbGFzcyBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUgRklOQUwgOiBwdWJs
aWMgU2Nyb2xsaW5nU3RhdGVOb2RlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+IGNyZWF0ZShTY3JvbGxpbmdTdGF0ZVRyZWUqLCBT
Y3JvbGxpbmdOb2RlSUQpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZT4gY3JlYXRlKFNjcm9sbGluZ1N0YXRlVHJlZSYsIFNjcm9sbGluZ05vZGVJRCk7
CiAKLSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjbG9uZSgpOwor
ICAgIHZpcnR1YWwgUGFzc093blB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IGNsb25lKFNjcm9sbGlu
Z1N0YXRlVHJlZSYpOwogCiAgICAgdmlydHVhbCB+U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
KCk7CiAKQEAgLTEyOSw4ICsxMjksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGR1bXBQ
cm9wZXJ0aWVzKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50KSBjb25zdCBPVkVSUklERTsKIAogcHJp
dmF0ZToKLSAgICBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoU2Nyb2xsaW5nU3RhdGVUcmVl
KiwgU2Nyb2xsaW5nTm9kZUlEKTsKLSAgICBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoY29u
c3QgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJik7CisgICAgU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlKFNjcm9sbGluZ1N0YXRlVHJlZSYsIFNjcm9sbGluZ05vZGVJRCk7CisgICAgU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlKGNvbnN0IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZSYsIFNjcm9sbGluZ1N0YXRlVHJlZSYpOwogCiAgICAgdmlydHVhbCBib29sIGlzU2Nyb2xsaW5n
Tm9kZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5j
cHAKaW5kZXggYWY4NjhkODY5YmJmYmE0NmUyMDM2Yzc4ZmVlNjEwNDljNTlkYmU2ZC4uZTdjZjQ2
ZGYyMWQ4OTBhMTU2Y2FhNWY2YzEyOWUzYzQ2NjgwYzQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuY3Bw
CkBAIC0zNSwxOCArMzUsMTggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzT3duUHRy
PFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZT4gU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlOjpjcmVh
dGUoU2Nyb2xsaW5nU3RhdGVUcmVlKiBzdGF0ZVRyZWUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQp
CitQYXNzT3duUHRyPFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZT4gU2Nyb2xsaW5nU3RhdGVTdGlj
a3lOb2RlOjpjcmVhdGUoU2Nyb2xsaW5nU3RhdGVUcmVlJiBzdGF0ZVRyZWUsIFNjcm9sbGluZ05v
ZGVJRCBub2RlSUQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTY3JvbGxpbmdTdGF0ZVN0
aWNreU5vZGUoc3RhdGVUcmVlLCBub2RlSUQpKTsKIH0KIAotU2Nyb2xsaW5nU3RhdGVTdGlja3lO
b2RlOjpTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUoU2Nyb2xsaW5nU3RhdGVUcmVlKiB0cmVlLCBT
Y3JvbGxpbmdOb2RlSUQgbm9kZUlEKQorU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlOjpTY3JvbGxp
bmdTdGF0ZVN0aWNreU5vZGUoU2Nyb2xsaW5nU3RhdGVUcmVlJiB0cmVlLCBTY3JvbGxpbmdOb2Rl
SUQgbm9kZUlEKQogICAgIDogU2Nyb2xsaW5nU3RhdGVOb2RlKHRyZWUsIG5vZGVJRCkKIHsKIH0K
IAotU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlOjpTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUoY29u
c3QgU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlJiBub2RlKQotICAgIDogU2Nyb2xsaW5nU3RhdGVO
b2RlKG5vZGUpCitTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGU6OlNjcm9sbGluZ1N0YXRlU3RpY2t5
Tm9kZShjb25zdCBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUmIG5vZGUsIFNjcm9sbGluZ1N0YXRl
VHJlZSYgYWRvcHRpdmVUcmVlKQorICAgIDogU2Nyb2xsaW5nU3RhdGVOb2RlKG5vZGUsIGFkb3B0
aXZlVHJlZSkKICAgICAsIG1fY29uc3RyYWludHMoU3RpY2t5UG9zaXRpb25WaWV3cG9ydENvbnN0
cmFpbnRzKG5vZGUudmlld3BvcnRDb25zdHJhaW50cygpKSkKIHsKIH0KQEAgLTU1LDkgKzU1LDkg
QEAgU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlOjp+U2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlKCkK
IHsKIH0KIAotUGFzc093blB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IFNjcm9sbGluZ1N0YXRlU3Rp
Y2t5Tm9kZTo6Y2xvbmUoKQorUGFzc093blB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IFNjcm9sbGlu
Z1N0YXRlU3RpY2t5Tm9kZTo6Y2xvbmUoU2Nyb2xsaW5nU3RhdGVUcmVlJiBhZG9wdGl2ZVRyZWUp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUoKnRo
aXMpKTsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZSgq
dGhpcywgYWRvcHRpdmVUcmVlKSk7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2Rl
Ojp1cGRhdGVDb25zdHJhaW50cyhjb25zdCBTdGlja3lQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWlu
dHMmIGNvbnN0cmFpbnRzKQpAQCAtNjcsNyArNjcsNyBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU3Rp
Y2t5Tm9kZTo6dXBkYXRlQ29uc3RyYWludHMoY29uc3QgU3RpY2t5UG9zaXRpb25WaWV3cG9ydENv
bgogCiAgICAgbV9jb25zdHJhaW50cyA9IGNvbnN0cmFpbnRzOwogICAgIHNldFByb3BlcnR5Q2hh
bmdlZChWaWV3cG9ydENvbnN0cmFpbnRzKTsKLSAgICBtX3Njcm9sbGluZ1N0YXRlVHJlZS0+c2V0
SGFzQ2hhbmdlZFByb3BlcnRpZXModHJ1ZSk7CisgICAgc2Nyb2xsaW5nU3RhdGVUcmVlKCkuc2V0
SGFzQ2hhbmdlZFByb3BlcnRpZXModHJ1ZSk7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nU3RhdGVTdGlj
a3lOb2RlOjpzeW5jTGF5ZXJQb3NpdGlvbkZvclZpZXdwb3J0UmVjdChjb25zdCBMYXlvdXRSZWN0
JiB2aWV3cG9ydFJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5oCmluZGV4IDg1NjFlZTFmODhjYmVhZTNlMDMx
NTUzODIzN2FkNDc2Mzc0ODM3ZGYuLjU3ZjM5ZWI4ODNhZGViMzAwMTU0MzU4YTdkNGUwYTI3NmZk
MDRjZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1N0YXRlU3RpY2t5Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5oCkBAIC0zOSw5ICszOSw5IEBAIGNsYXNzIFN0aWNreVBv
c2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsKIAogY2xhc3MgU2Nyb2xsaW5nU3RhdGVTdGlja3lO
b2RlIEZJTkFMIDogcHVibGljIFNjcm9sbGluZ1N0YXRlTm9kZSB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NPd25QdHI8U2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlPiBjcmVhdGUoU2Nyb2xsaW5n
U3RhdGVUcmVlKiwgU2Nyb2xsaW5nTm9kZUlEKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxTY3Jv
bGxpbmdTdGF0ZVN0aWNreU5vZGU+IGNyZWF0ZShTY3JvbGxpbmdTdGF0ZVRyZWUmLCBTY3JvbGxp
bmdOb2RlSUQpOwogCi0gICAgdmlydHVhbCBQYXNzT3duUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4g
Y2xvbmUoKTsKKyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjbG9u
ZShTY3JvbGxpbmdTdGF0ZVRyZWUmKTsKIAogICAgIHZpcnR1YWwgflNjcm9sbGluZ1N0YXRlU3Rp
Y2t5Tm9kZSgpOwogCkBAIC01Myw4ICs1Myw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdGlja3lQ
b3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHMmIHZpZXdwb3J0Q29uc3RyYWludHMoKSBjb25zdCB7
IHJldHVybiBtX2NvbnN0cmFpbnRzOyB9CiAKIHByaXZhdGU6Ci0gICAgU2Nyb2xsaW5nU3RhdGVT
dGlja3lOb2RlKFNjcm9sbGluZ1N0YXRlVHJlZSosIFNjcm9sbGluZ05vZGVJRCk7Ci0gICAgU2Ny
b2xsaW5nU3RhdGVTdGlja3lOb2RlKGNvbnN0IFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZSYpOwor
ICAgIFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZShTY3JvbGxpbmdTdGF0ZVRyZWUmLCBTY3JvbGxp
bmdOb2RlSUQpOworICAgIFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZShjb25zdCBTY3JvbGxpbmdT
dGF0ZVN0aWNreU5vZGUmLCBTY3JvbGxpbmdTdGF0ZVRyZWUmKTsKIAogICAgIHZpcnR1YWwgYm9v
bCBpc1N0aWNreU5vZGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuY3Bw
CmluZGV4IDA2NDEzNDg2NDZjNDFlY2YxYzZlN2YyMTExN2IyZDQzNWEzY2YxNWUuLjc1MGUyYjk2
OTkzYzQwY2JmZmRmNWJiY2RiY2Y4ZmU4YjAyMjk4MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcApAQCAtNjksNyArNjks
NyBAQCBTY3JvbGxpbmdOb2RlSUQgU2Nyb2xsaW5nU3RhdGVUcmVlOjphdHRhY2hOb2RlKFNjcm9s
bGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbAogICAgICAgICAvLyBJZiB3ZSdyZSByZXNldHRp
bmcgdGhlIHJvb3Qgbm9kZSwgd2Ugc2hvdWxkIGNsZWFyIHRoZSBIYXNoTWFwIGFuZCBkZXN0cm95
IHRoZSBjdXJyZW50IGNoaWxkcmVuLgogICAgICAgICBjbGVhcigpOwogCi0gICAgICAgIHNldFJv
b3RTdGF0ZU5vZGUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpjcmVhdGUodGhpcywgbmV3
Tm9kZUlEKSk7CisgICAgICAgIHNldFJvb3RTdGF0ZU5vZGUoU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlOjpjcmVhdGUoKnRoaXMsIG5ld05vZGVJRCkpOwogICAgICAgICBuZXdOb2RlID0gcm9v
dFN0YXRlTm9kZSgpOwogICAgICAgICBtX2hhc05ld1Jvb3RTdGF0ZU5vZGUgPSB0cnVlOwogICAg
IH0gZWxzZSB7CkBAIC03OSwxMyArNzksMTMgQEAgU2Nyb2xsaW5nTm9kZUlEIFNjcm9sbGluZ1N0
YXRlVHJlZTo6YXR0YWNoTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2wKIAog
ICAgICAgICBzd2l0Y2ggKG5vZGVUeXBlKSB7CiAgICAgICAgIGNhc2UgRml4ZWROb2RlOiB7Ci0g
ICAgICAgICAgICBPd25QdHI8U2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGU+IGZpeGVkTm9kZSA9IFNj
cm9sbGluZ1N0YXRlRml4ZWROb2RlOjpjcmVhdGUodGhpcywgbmV3Tm9kZUlEKTsKKyAgICAgICAg
ICAgIE93blB0cjxTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZT4gZml4ZWROb2RlID0gU2Nyb2xsaW5n
U3RhdGVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhpcywgbmV3Tm9kZUlEKTsKICAgICAgICAgICAgIG5l
d05vZGUgPSBmaXhlZE5vZGUuZ2V0KCk7CiAgICAgICAgICAgICBwYXJlbnQtPmFwcGVuZENoaWxk
KGZpeGVkTm9kZS5yZWxlYXNlKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg
ICAgICAgY2FzZSBTdGlja3lOb2RlOiB7Ci0gICAgICAgICAgICBPd25QdHI8U2Nyb2xsaW5nU3Rh
dGVTdGlja3lOb2RlPiBzdGlja3lOb2RlID0gU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlOjpjcmVh
dGUodGhpcywgbmV3Tm9kZUlEKTsKKyAgICAgICAgICAgIE93blB0cjxTY3JvbGxpbmdTdGF0ZVN0
aWNreU5vZGU+IHN0aWNreU5vZGUgPSBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGU6OmNyZWF0ZSgq
dGhpcywgbmV3Tm9kZUlEKTsKICAgICAgICAgICAgIG5ld05vZGUgPSBzdGlja3lOb2RlLmdldCgp
OwogICAgICAgICAgICAgcGFyZW50LT5hcHBlbmRDaGlsZChzdGlja3lOb2RlLnJlbGVhc2UoKSk7
CiAgICAgICAgICAgICBicmVhazsKQEAgLTkzLDcgKzkzLDcgQEAgU2Nyb2xsaW5nTm9kZUlEIFNj
cm9sbGluZ1N0YXRlVHJlZTo6YXR0YWNoTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwg
U2Nyb2wKICAgICAgICAgY2FzZSBTY3JvbGxpbmdOb2RlOiB7CiAgICAgICAgICAgICAvLyBGSVhN
RTogV2UgY3VycmVudGx5IG9ubHkgc3VwcG9ydCBjaGlsZCBub2RlcyB0aGF0IGFyZSBmaXhlZC4K
ICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgT3duUHRyPFNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT4gc2Nyb2xsaW5nTm9kZSA9IFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZTo6Y3JlYXRlKHRoaXMsIG5ld05vZGVJRCk7CisgICAgICAgICAgICBPd25Q
dHI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPiBzY3JvbGxpbmdOb2RlID0gU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlOjpjcmVhdGUoKnRoaXMsIG5ld05vZGVJRCk7CiAgICAgICAgICAg
ICBuZXdOb2RlID0gc2Nyb2xsaW5nTm9kZS5nZXQoKTsKICAgICAgICAgICAgIHBhcmVudC0+YXBw
ZW5kQ2hpbGQoc2Nyb2xsaW5nTm9kZS5yZWxlYXNlKCkpOwogICAgICAgICAgICAgYnJlYWs7CkBA
IC0xMjksNyArMTI5LDcgQEAgUGFzc093blB0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+IFNjcm9sbGlu
Z1N0YXRlVHJlZTo6Y29tbWl0KCkKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGNsb25lcyBhbmQgcmVz
ZXRzIHRoZSBjdXJyZW50IHN0YXRlIHRyZWUsIGJ1dCBsZWF2ZXMgdGhlIHRyZWUgc3RydWN0dXJl
IGludGFjdC4KICAgICBPd25QdHI8U2Nyb2xsaW5nU3RhdGVUcmVlPiB0cmVlU3RhdGVDbG9uZSA9
IFNjcm9sbGluZ1N0YXRlVHJlZTo6Y3JlYXRlKCk7CiAgICAgaWYgKG1fcm9vdFN0YXRlTm9kZSkK
LSAgICAgICAgdHJlZVN0YXRlQ2xvbmUtPnNldFJvb3RTdGF0ZU5vZGUoc3RhdGljX3BvaW50ZXJf
Y2FzdDxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+KG1fcm9vdFN0YXRlTm9kZS0+Y2xvbmVB
bmRSZXNldCgpKSk7CisgICAgICAgIHRyZWVTdGF0ZUNsb25lLT5zZXRSb290U3RhdGVOb2RlKHN0
YXRpY19wb2ludGVyX2Nhc3Q8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPihtX3Jvb3RTdGF0
ZU5vZGUtPmNsb25lQW5kUmVzZXQoKnRyZWVTdGF0ZUNsb25lKSkpOwogCiAgICAgLy8gQ29weSB0
aGUgSURzIG9mIHRoZSBub2RlcyB0aGF0IGhhdmUgYmVlbiByZW1vdmVkIHNpbmNlIHRoZSBsYXN0
IGNvbW1pdCBpbnRvIHRoZSBjbG9uZS4KICAgICB0cmVlU3RhdGVDbG9uZS0+bV9ub2Rlc1JlbW92
ZWRTaW5jZUxhc3RDb21taXQuc3dhcChtX25vZGVzUmVtb3ZlZFNpbmNlTGFzdENvbW1pdCk7CkBA
IC0xNDQsNiArMTQ0LDExIEBAIFBhc3NPd25QdHI8U2Nyb2xsaW5nU3RhdGVUcmVlPiBTY3JvbGxp
bmdTdGF0ZVRyZWU6OmNvbW1pdCgpCiAgICAgcmV0dXJuIHRyZWVTdGF0ZUNsb25lLnJlbGVhc2Uo
KTsKIH0KIAordm9pZCBTY3JvbGxpbmdTdGF0ZVRyZWU6OmFkZE5vZGUoU2Nyb2xsaW5nU3RhdGVO
b2RlKiBub2RlKQoreworICAgIG1fc3RhdGVOb2RlTWFwLmFkZChub2RlLT5zY3JvbGxpbmdOb2Rl
SUQoKSwgbm9kZSk7Cit9CisKIHZvaWQgU2Nyb2xsaW5nU3RhdGVUcmVlOjpyZW1vdmVOb2RlKFNj
cm9sbGluZ1N0YXRlTm9kZSogbm9kZSkKIHsKICAgICBpZiAoIW5vZGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5oCmluZGV4IGQxMzBk
MThiZmVhZTlkM2RkMjRiMDI3ZDA0NThmOWQyNDhmNjYwOTUuLjgzMzBmZGI3ZjYxMTQwZDdlMGVk
OWJiMDMxYzI0ODZiZDk4Y2VkZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5oCkBAIC02OCw2ICs2OCw3IEBAIHByaXZhdGU6CiAg
ICAgU2Nyb2xsaW5nU3RhdGVUcmVlKCk7CiAKICAgICB2b2lkIHNldFJvb3RTdGF0ZU5vZGUoUGFz
c093blB0cjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+IHJvb3RTdGF0ZU5vZGUpIHsgbV9y
b290U3RhdGVOb2RlID0gcm9vdFN0YXRlTm9kZTsgfQorICAgIHZvaWQgYWRkTm9kZShTY3JvbGxp
bmdTdGF0ZU5vZGUqKTsKICAgICB2b2lkIHJlbW92ZU5vZGUoU2Nyb2xsaW5nU3RhdGVOb2RlKik7
CiAgICAgdm9pZCBkaWRSZW1vdmVOb2RlKFNjcm9sbGluZ05vZGVJRCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdTdGF0ZU5vZGVNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nU3RhdGVOb2Rl
TWFjLm1tCmluZGV4IGNmMDYyZDFlMjRlMjU4YWIyNTdlNTQwODViZjExYWJhOTdkYTJjNjUuLmE5
ZjE2MjhjNzE5YmE3YTk2OGQzMmE2NDJiY2YzYTBlZjY2MGM2ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdTdGF0ZU5vZGVNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1N0YXRlTm9kZU1h
Yy5tbQpAQCAtNTQsNyArNTQsNyBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlTm9kZTo6c2V0U2Nyb2xs
TGF5ZXIoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKICAgICBtX2dyYXBoaWNzTGF5ZXIg
PSBncmFwaGljc0xheWVyOwogCiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFNjcm9sbExheWVyKTsK
LSAgICBtX3Njcm9sbGluZ1N0YXRlVHJlZS0+c2V0SGFzQ2hhbmdlZFByb3BlcnRpZXModHJ1ZSk7
CisgICAgc2Nyb2xsaW5nU3RhdGVUcmVlKCkuc2V0SGFzQ2hhbmdlZFByb3BlcnRpZXModHJ1ZSk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGVNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlTWFjLm1tCmluZGV4IDRiYzdmZDlkNTc1YWRjNDZiOGZkMTFlZmE0Yzk2ODY0MWM3ZGQwN2Iu
LjU0NDIzYWUxZjU5OTViMzUwMzk1ZmVjZjc1MGRkYTYyNzQ5MDNkYTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZU1hYy5tbQpAQCAtNTAsOCArNTAsNyBAQCB2b2lkIFNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0Q291bnRlclNjcm9sbGluZ0xheWVyKEdyYXBoaWNzTGF5
ZXIqIGdyYXBoaQogICAgIG1fY291bnRlclNjcm9sbGluZ0xheWVyID0gZ3JhcGhpY3NMYXllcjsK
IAogICAgIHNldFByb3BlcnR5Q2hhbmdlZChDb3VudGVyU2Nyb2xsaW5nTGF5ZXIpOwotICAgIGlm
IChtX3Njcm9sbGluZ1N0YXRlVHJlZSkKLSAgICAgICAgbV9zY3JvbGxpbmdTdGF0ZVRyZWUtPnNl
dEhhc0NoYW5nZWRQcm9wZXJ0aWVzKHRydWUpOworICAgIHNjcm9sbGluZ1N0YXRlVHJlZSgpLnNl
dEhhc0NoYW5nZWRQcm9wZXJ0aWVzKHRydWUpOwogfQogCiBQbGF0Zm9ybUxheWVyKiBTY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGU6OmhlYWRlclBsYXRmb3JtTGF5ZXIoKSBjb25zdApAQCAtNjks
OCArNjgsNyBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0SGVhZGVyTGF5
ZXIoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKICAgICBtX2hlYWRlckxheWVyID0gZ3Jh
cGhpY3NMYXllcjsKIAogICAgIHNldFByb3BlcnR5Q2hhbmdlZChIZWFkZXJMYXllcik7Ci0gICAg
aWYgKG1fc2Nyb2xsaW5nU3RhdGVUcmVlKQotICAgICAgICBtX3Njcm9sbGluZ1N0YXRlVHJlZS0+
c2V0SGFzQ2hhbmdlZFByb3BlcnRpZXModHJ1ZSk7CisgICAgc2Nyb2xsaW5nU3RhdGVUcmVlKCku
c2V0SGFzQ2hhbmdlZFByb3BlcnRpZXModHJ1ZSk7CiB9CiAKIFBsYXRmb3JtTGF5ZXIqIFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6Zm9vdGVyUGxhdGZvcm1MYXllcigpIGNvbnN0CkBAIC04
OCw4ICs4Niw3IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRGb290ZXJM
YXllcihHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQogICAgIG1fZm9vdGVyTGF5ZXIgPSBn
cmFwaGljc0xheWVyOwogCiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKEZvb3RlckxheWVyKTsKLSAg
ICBpZiAobV9zY3JvbGxpbmdTdGF0ZVRyZWUpCi0gICAgICAgIG1fc2Nyb2xsaW5nU3RhdGVUcmVl
LT5zZXRIYXNDaGFuZ2VkUHJvcGVydGllcyh0cnVlKTsKKyAgICBzY3JvbGxpbmdTdGF0ZVRyZWUo
KS5zZXRIYXNDaGFuZ2VkUHJvcGVydGllcyh0cnVlKTsKIH0KIAogdm9pZCBTY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbGJhclBhaW50ZXJzRnJvbVNjcm9sbGJhcnMoU2Nyb2xs
YmFyKiB2ZXJ0aWNhbFNjcm9sbGJhciwgU2Nyb2xsYmFyKiBob3Jpem9udGFsU2Nyb2xsYmFyKQpA
QCAtMTExLDggKzEwOCw3IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRT
Y3JvbGxiYXJQYWludGVyc0Zyb21TY3JvbGxiYXJzKFNjcm9sbGJhcioKICAgICBtX2hvcml6b250
YWxTY3JvbGxiYXJQYWludGVyID0gaG9yaXpvbnRhbFBhaW50ZXI7CiAKICAgICBzZXRQcm9wZXJ0
eUNoYW5nZWQoUGFpbnRlckZvclNjcm9sbGJhcik7Ci0gICAgaWYgKG1fc2Nyb2xsaW5nU3RhdGVU
cmVlKQotICAgICAgICBtX3Njcm9sbGluZ1N0YXRlVHJlZS0+c2V0SGFzQ2hhbmdlZFByb3BlcnRp
ZXModHJ1ZSk7CisgICAgc2Nyb2xsaW5nU3RhdGVUcmVlKCkuc2V0SGFzQ2hhbmdlZFByb3BlcnRp
ZXModHJ1ZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>
<flag name="review"
          id="243845"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>