<?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>180507</bug_id>
          
          <creation_ts>2017-12-06 14:26:04 -0800</creation_ts>
          <short_desc>Use StaticLock instead of NeverDestroyed&lt;Lock&gt;</short_desc>
          <delta_ts>2017-12-07 17:33: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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1378818</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-06 14:26:04 -0800</bug_when>
    <thetext>Use StaticLock instead of NeverDestroyed&lt;Lock&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378821</commentid>
    <comment_count>1</comment_count>
      <attachid>328629</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-06 14:26:52 -0800</bug_when>
    <thetext>Created attachment 328629
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379079</commentid>
    <comment_count>2</comment_count>
      <attachid>328688</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-07 04:40:35 -0800</bug_when>
    <thetext>Created attachment 328688
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379141</commentid>
    <comment_count>3</comment_count>
      <attachid>328688</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-12-07 10:21:20 -0800</bug_when>
    <thetext>Comment on attachment 328688
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379378</commentid>
    <comment_count>4</comment_count>
      <attachid>328688</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-07 17:10:39 -0800</bug_when>
    <thetext>Comment on attachment 328688
Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379395</commentid>
    <comment_count>5</comment_count>
      <attachid>328688</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-07 17:31:15 -0800</bug_when>
    <thetext>Comment on attachment 328688
Patch

Clearing flags on attachment: 328688

Committed r225662: &lt;https://trac.webkit.org/changeset/225662&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379396</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-07 17:31:16 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379399</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-07 17:33:46 -0800</bug_when>
    <thetext>&lt;rdar://problem/35924558&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328629</attachid>
            <date>2017-12-06 14:26:52 -0800</date>
            <delta_ts>2017-12-07 04:40:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180507-20171207072651.patch</filename>
            <type>text/plain</type>
            <size>26691</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGVhYTYwOTlkYzgxZTgy
MDA1ZDA2NGQwMThjMjViODc5YjQxODU3Yy4uMTE2YTUwYWE3YjFmMTA3NDI3MzdiNGFjZGVlOTcx
YjBiMTE0NjRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE3LTEyLTA2ICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFVzZSBTdGF0aWNM
b2NrIGluc3RlYWQgb2YgTmV2ZXJEZXN0cm95ZWQ8TG9jaz4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDUwNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXRpY0xvY2sgY2FuIGJlIHVzZWQgaW5zdGVh
ZCBvZiB1c2luZyBOZXZlckRlc3Ryb3llZDxMb2NrPi4KKworICAgICAgICBObyBiZWhhdmlvciBj
aGFuZ2UuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcmlmeSk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0YWJhc2VNdXRleCk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRhYmFzZVRyYWNrZXI6OmVtcHR5RGF0YWJhc2VGaWxlc1JlbW92YWxUYXNrV2lsbEJl
U2NoZWR1bGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6ZW1wdHlEYXRh
YmFzZUZpbGVzUmVtb3ZhbFRhc2tEaWRGaW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJh
c2VUcmFja2VyOjpzY2hlZHVsZU5vdGlmeURhdGFiYXNlQ2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRhYmFzZVRyYWNrZXI6OnNjaGVkdWxlRm9yTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6bm90aWZ5RGF0YWJhc2VzQ2hhbmdlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpub3RpZmljYXRpb25NdXRleCk6IERlbGV0ZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9V
UkwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVnaXN0ZXJEZWZhdWx0UG9ydEZvclByb3RvY29s
Rm9yVGVzdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjbGVhckRlZmF1bHRQb3J0Rm9yUHJvdG9j
b2xNYXBGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmRlZmF1bHRQb3J0Rm9yUHJvdG9j
b2wpOgorICAgICAgICAoV2ViQ29yZTo6ZGVmYXVsdFBvcnRGb3JQcm90b2NvbE1hcEZvclRlc3Rp
bmdMb2NrKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpidWlsZE1lZGlhRW5naW5lc1ZlY3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjppbnN0YWxsZWRNZWRpYUVuZ2luZXMpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6OnJlc2V0TWVkaWFFbmdpbmVzKToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlh
RW5naW5lVmVjdG9yTG9jayk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zL1F1aWNr
TG9vay5tbToKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZVFMUHJldmlld0NvbnZlcnRlckZvclVS
TCk6CisgICAgICAgIChXZWJDb3JlOjphZGRRTFByZXZpZXdDb252ZXJ0ZXJXaXRoRmlsZUZvclVS
TCk6CisgICAgICAgIChXZWJDb3JlOjpxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgp
OiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJTUUxpdGVEYXRhYmFzZVRyYWNr
ZXJDbGllbnQubW06CisgICAgICAgICgrW1dlYkRhdGFiYXNlVHJhbnNhY3Rpb25CYWNrZ3JvdW5k
VGFza0NvbnRyb2xsZXIgc3RhcnRCYWNrZ3JvdW5kVGFza10pOgorICAgICAgICAoK1tXZWJEYXRh
YmFzZVRyYW5zYWN0aW9uQmFja2dyb3VuZFRhc2tDb250cm9sbGVyIGVuZEJhY2tncm91bmRUYXNr
XSk6CisgICAgICAgICh0cmFuc2FjdGlvbkJhY2tncm91bmRUYXNrSWRlbnRpZmllckxvY2spOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDdXJsU2hhcmVIYW5kbGU6OmxvY2tDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpDdXJsU2hhcmVIYW5kbGU6OnVubG9ja0NhbGxiYWNrKToKKyAgICAgICAg
KFdlYkNvcmU6OkN1cmxTaGFyZUhhbmRsZTo6bXV0ZXhGb3IpOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5oOgorCiAyMDE3LTEyLTA2ICBKZXIgTm9ibGUgIDxq
ZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtFTUVdIE1ha2UgQ0RNSW5zdGFuY2UmIHBh
cmFtZXRlciBwYXNzZWQgdGhyb3VnaCBNZWRpYVBsYXllciBub24tY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
aW9zL0NoYW5nZUxvZwppbmRleCAyMzRmZjY0ZDE2Njk2NzE3NTExMThiY2VmM2MwYTJkYjNiMjA0
NzgyLi5iNTU0YmQ3ZTcwYjIxNjVlMDRiZTlmNTVlYjU4MjNmZWVmNDU5NmJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9pb3MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTctMTItMDYgIFl1c3VrZSBT
dXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgVXNlIFN0YXRpY0xvY2sg
aW5zdGVhZCBvZiBOZXZlckRlc3Ryb3llZDxMb2NrPgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwNTA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9u
Q29udGVudC5tbToKKyAgICAgICAgKC1bV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQgc2Nyb2xsT3Ja
b29tQ2hhbmdlZDpdKToKKyAgICAgICAgKC1bV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQgb3ZlcmZs
b3dTY3JvbGxQb3NpdGlvbkZvckxheWVyOmNoYW5nZWRUbzpdKToKKyAgICAgICAgKC1bV2ViRml4
ZWRQb3NpdGlvbkNvbnRlbnQgc2V0Vmlld3BvcnRDb25zdHJhaW5lZExheWVyczpzdGlja3lDb250
YWluZXJNYXA6XSk6CisgICAgICAgICgtW1dlYkZpeGVkUG9zaXRpb25Db250ZW50IGhhc0ZpeGVk
T3JTdGlja3lQb3NpdGlvbkxheWVyc10pOgorICAgICAgICAoV2ViRml4ZWRQb3NpdGlvbkNvbnRl
bnREYXRhTG9jayk6IERlbGV0ZWQuCisKIDIwMTctMTEtMTEgIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggYSBGSVhNRXMgaW4gV2ViRnJhbWVJ
T1MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCBiMDdlYWZiNGE5YWNkNDA0N2Y0MjU5
YTdhYTYwNDIwNGIwNTk5OGQ3Li5kM2ZmMGQ3ZjkzYmY3MTM2MzAwYWQ0MTAzMzdiOTk2OTdlODA5
ZGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTct
MTItMDYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAg
VXNlIFN0YXRpY0xvY2sgaW5zdGVhZCBvZiBOZXZlckRlc3Ryb3llZDxMb2NrPgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwNTA3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJMb2NhbGl6YWJsZVN0
cmluZ3MuY3BwOgorICAgICAgICAoZmluZENhY2hlZFN0cmluZyk6CisgICAgICAgIChjYWNoZVN0
cmluZyk6CisgICAgICAgIChtYWluQnVuZGxlTG9jU3RyaW5ncyk6IERlbGV0ZWQuCisgICAgICAg
IChmcmFtZXdvcmtMb2NTdHJpbmdzTXV0ZXgpOiBEZWxldGVkLgorCiAyMDE3LTEyLTA1ICBQZXIg
QXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBTY3JvbGxi
YXJzIGFyZSBzb21ldGltZXMgbm90IHJlbmRlcmVkIGluIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5n
IG1vZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2Uu
Y3BwCmluZGV4IGJkZWNmYTAxNmUzZTcwZTcxNjVjZjA4MjNjODY2MTc5MmM0YmMxZDUuLmRkNzVh
M2Q0ZDVhOTA3NDQwMDY5MTI2MDQ2Zjc0NmYxZGM3NzBmMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCkBAIC0zNDEsNyArMzQxLDcgQEAg
RXhjZXB0aW9uT3I8dm9pZD4gRGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wgc2hv
dWxkU2V0VmVyc2lvbkluTmV3RGF0YWIKICNpZiBQTEFURk9STShJT1MpCiAgICAgewogICAgICAg
ICAvLyBNYWtlIHN1cmUgd2Ugd2FpdCB0aWxsIHRoZSBiYWNrZ3JvdW5kIHJlbW92YWwgb2YgdGhl
IGVtcHR5IGRhdGFiYXNlIGZpbGVzIGZpbmlzaGVkIGJlZm9yZSB0cnlpbmcgdG8gb3BlbiBhbnkg
ZGF0YWJhc2UuCi0gICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKERhdGFiYXNlVHJhY2tlcjo6b3Bl
bkRhdGFiYXNlTXV0ZXgoKSk7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soRGF0YWJh
c2VUcmFja2VyOjpvcGVuRGF0YWJhc2VNdXRleCgpKTsKICAgICB9CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIu
Y3BwCmluZGV4IGZlYTFiZTVlNWIyNzQ5ZTE3ZmMyMjMwYzA2NWY1ZjQ2NTFhOGM3YzcuLjQyNzkw
MzgwN2FhMzIxM2I5ZjIwNDA1Nzg4NTMwOTBlNTU0YjViZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKQEAgLTEy
NzUsMjIgKzEyNzUsMjIgQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRlbGV0ZURhdGFiYXNlRmls
ZUlmRW1wdHkoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIHJldHVybiBTUUxpdGVGaWxlU3lzdGVt
OjpkZWxldGVEYXRhYmFzZUZpbGUocGF0aCk7CiB9CiAKLUxvY2smIERhdGFiYXNlVHJhY2tlcjo6
b3BlbkRhdGFiYXNlTXV0ZXgoKQorc3RhdGljIFN0YXRpY0xvY2sgb3BlbkRhdGFiYXNlTG9jazsK
K1N0YXRpY0xvY2smIERhdGFiYXNlVHJhY2tlcjo6b3BlbkRhdGFiYXNlTXV0ZXgoKQogewotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMb2NrPiBtdXRleDsKLSAgICByZXR1cm4gbXV0ZXg7Cisg
ICAgcmV0dXJuIG9wZW5EYXRhYmFzZUxvY2s7CiB9CiAKIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpl
bXB0eURhdGFiYXNlRmlsZXNSZW1vdmFsVGFza1dpbGxCZVNjaGVkdWxlZCgpCiB7CiAgICAgLy8g
TG9jayB0aGUgZGF0YWJhc2UgZnJvbSBvcGVuaW5nIGFueSBkYXRhYmFzZSB1bnRpbCB3ZSBhcmUg
ZG9uZSB3aXRoIHNjYW5uaW5nIHRoZSBmaWxlIHN5c3RlbSBmb3IKICAgICAvLyB6ZXJvIGJ5dGUg
ZGF0YWJhc2UgZmlsZXMgdG8gcmVtb3ZlLgotICAgIG9wZW5EYXRhYmFzZU11dGV4KCkubG9jaygp
OworICAgIG9wZW5EYXRhYmFzZUxvY2subG9jaygpOwogfQogCiB2b2lkIERhdGFiYXNlVHJhY2tl
cjo6ZW1wdHlEYXRhYmFzZUZpbGVzUmVtb3ZhbFRhc2tEaWRGaW5pc2goKQogewotICAgIG9wZW5E
YXRhYmFzZU11dGV4KCkudW5sb2NrKCk7CisgICAgb3BlbkRhdGFiYXNlTG9jay51bmxvY2soKTsK
IH0KIAogI2VuZGlmCkBAIC0xMzAwLDExICsxMzAwLDcgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6
OnNldENsaWVudChEYXRhYmFzZU1hbmFnZXJDbGllbnQqIGNsaWVudCkKICAgICBtX2NsaWVudCA9
IGNsaWVudDsKIH0KIAotc3RhdGljIExvY2smIG5vdGlmaWNhdGlvbk11dGV4KCkKLXsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TG9jaz4gbXV0ZXg7Ci0gICAgcmV0dXJuIG11dGV4OwotfQor
c3RhdGljIFN0YXRpY0xvY2sgbm90aWZpY2F0aW9uTG9jazsKIAogdXNpbmcgTm90aWZpY2F0aW9u
UXVldWUgPSBWZWN0b3I8c3RkOjpwYWlyPFNlY3VyaXR5T3JpZ2luRGF0YSwgU3RyaW5nPj47CiAK
QEAgLTEzMTYsNyArMTMxMiw3IEBAIHN0YXRpYyBOb3RpZmljYXRpb25RdWV1ZSYgbm90aWZpY2F0
aW9uUXVldWUoKQogCiB2b2lkIERhdGFiYXNlVHJhY2tlcjo6c2NoZWR1bGVOb3RpZnlEYXRhYmFz
ZUNoYW5nZWQoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYg
bmFtZSkKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihub3RpZmljYXRpb25NdXRleCgpKTsKKyAg
ICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG5vdGlmaWNhdGlvbkxvY2spOwogICAgIG5vdGlmaWNh
dGlvblF1ZXVlKCkuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKG9yaWdpbi5pc29sYXRlZENvcHkoKSwg
bmFtZS5pc29sYXRlZENvcHkoKSkpOwogICAgIHNjaGVkdWxlRm9yTm90aWZpY2F0aW9uKCk7CiB9
CkBAIC0xMzI1LDcgKzEzMjEsNyBAQCBzdGF0aWMgYm9vbCBub3RpZmljYXRpb25TY2hlZHVsZWQg
PSBmYWxzZTsKIAogdm9pZCBEYXRhYmFzZVRyYWNrZXI6OnNjaGVkdWxlRm9yTm90aWZpY2F0aW9u
KCkKIHsKLSAgICBBU1NFUlQoIW5vdGlmaWNhdGlvbk11dGV4KCkudHJ5TG9jaygpKTsKKyAgICBB
U1NFUlQoIW5vdGlmaWNhdGlvbkxvY2sudHJ5TG9jaygpKTsKIAogICAgIGlmICghbm90aWZpY2F0
aW9uU2NoZWR1bGVkKSB7CiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW10gewpAQCAtMTM0Myw3
ICsxMzM5LDcgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6Om5vdGlmeURhdGFiYXNlc0NoYW5nZWQo
KQogCiAgICAgTm90aWZpY2F0aW9uUXVldWUgbm90aWZpY2F0aW9uczsKICAgICB7Ci0gICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG5vdGlmaWNhdGlvbk11dGV4KCkpOworICAgICAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKG5vdGlmaWNhdGlvbkxvY2spOwogICAgICAgICBub3RpZmljYXRpb25z
LnN3YXAobm90aWZpY2F0aW9uUXVldWUoKSk7CiAgICAgICAgIG5vdGlmaWNhdGlvblNjaGVkdWxl
ZCA9IGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlVHJhY2tlci5oCmluZGV4IGM3NjYxNGY1NGNhY2Y0YzAzODc2M2VmZWQw
NWIyNjFmMGJhOGIyMzkuLmQ1ODAyYTE3OGVhZmNlNWQ2NmJjMmFiN2VkY2QxNWQ0YWZkYzAwYmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VU
cmFja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZVRyYWNrZXIuaApAQCAtMTAwLDcgKzEwMCw3IEBAIGNsYXNzIERhdGFiYXNlVHJhY2tlciB7CiAg
ICAgLy8gTW9iaWxlU2FmYXJpIHdpbGwgZ3JhYiB0aGlzIG11dGV4IG9uIHRoZSBtYWluIHRocmVh
ZCBiZWZvcmUgZGlzcGF0Y2hpbmcgdGhlIHRhc2sgdG8gCiAgICAgLy8gY2xlYW4gdXAgemVybyBi
eXRlIGRhdGFiYXNlIGZpbGVzLiAgQW55IG9wZXJhdGlvbnMgdG8gb3BlbiBuZXcgZGF0YWJhc2Ug
d2lsbCBoYXZlIHRvCiAgICAgLy8gd2FpdCBmb3IgdGhhdCB0YXNrIHRvIGZpbmlzaCBieSB3YWl0
aW5nIG9uIHRoaXMgbXV0ZXguCi0gICAgc3RhdGljIExvY2smIG9wZW5EYXRhYmFzZU11dGV4KCk7
CisgICAgc3RhdGljIFN0YXRpY0xvY2smIG9wZW5EYXRhYmFzZU11dGV4KCk7CiAgICAgCiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZW1wdHlEYXRhYmFzZUZpbGVzUmVtb3ZhbFRhc2tX
aWxsQmVTY2hlZHVsZWQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBlbXB0eURh
dGFiYXNlRmlsZXNSZW1vdmFsVGFza0RpZEZpbmlzaCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVVJMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAK
aW5kZXggMmYzNTVhOTdlZGQ2ZWEyMWM2NDRhYjcwYjkxMDNkZTJkZTkzOTdjOS4uZGMxOWExNDYx
OTc4OTZmZGZkYzQyNzNlMzFiNjdlZGZiMDc4ZGNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVVJMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3Bw
CkBAIC0yNzUsMTEgKzI3NSw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydFByb3RvY29sSXNHb29kKFN0
cmluZ1ZpZXcgcHJvdG9jb2wpCiAKICNlbmRpZgogCi1zdGF0aWMgTG9jayYgZGVmYXVsdFBvcnRG
b3JQcm90b2NvbE1hcEZvclRlc3RpbmdMb2NrKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8TG9jaz4gbG9jazsKLSAgICByZXR1cm4gbG9jazsKLX0KK3N0YXRpYyBTdGF0aWNMb2NrIGRl
ZmF1bHRQb3J0Rm9yUHJvdG9jb2xNYXBGb3JUZXN0aW5nTG9jazsKIAogdXNpbmcgRGVmYXVsdFBv
cnRGb3JQcm90b2NvbE1hcEZvclRlc3RpbmcgPSBIYXNoTWFwPFN0cmluZywgdWludDE2X3Q+Owog
c3RhdGljIERlZmF1bHRQb3J0Rm9yUHJvdG9jb2xNYXBGb3JUZXN0aW5nKiYgZGVmYXVsdFBvcnRG
b3JQcm90b2NvbE1hcEZvclRlc3RpbmcoKQpAQCAtMjk4LDEzICsyOTQsMTMgQEAgc3RhdGljIERl
ZmF1bHRQb3J0Rm9yUHJvdG9jb2xNYXBGb3JUZXN0aW5nJiBlbnN1cmVEZWZhdWx0UG9ydEZvclBy
b3RvY29sTWFwRm9yVGUKIAogdm9pZCByZWdpc3RlckRlZmF1bHRQb3J0Rm9yUHJvdG9jb2xGb3JU
ZXN0aW5nKHVpbnQxNl90IHBvcnQsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpCiB7Ci0gICAgTG9j
a0hvbGRlciBsb2NrZXIoZGVmYXVsdFBvcnRGb3JQcm90b2NvbE1hcEZvclRlc3RpbmdMb2NrKCkp
OworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soZGVmYXVsdFBvcnRGb3JQcm90b2NvbE1hcEZv
clRlc3RpbmdMb2NrKTsKICAgICBlbnN1cmVEZWZhdWx0UG9ydEZvclByb3RvY29sTWFwRm9yVGVz
dGluZygpLmFkZChwcm90b2NvbCwgcG9ydCk7CiB9CiAKIHZvaWQgY2xlYXJEZWZhdWx0UG9ydEZv
clByb3RvY29sTWFwRm9yVGVzdGluZygpCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIoZGVmYXVs
dFBvcnRGb3JQcm90b2NvbE1hcEZvclRlc3RpbmdMb2NrKCkpOworICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2soZGVmYXVsdFBvcnRGb3JQcm90b2NvbE1hcEZvclRlc3RpbmdMb2NrKTsKICAgICBp
ZiAoYXV0byogbWFwID0gZGVmYXVsdFBvcnRGb3JQcm90b2NvbE1hcEZvclRlc3RpbmcoKSkKICAg
ICAgICAgbWFwLT5jbGVhcigpOwogfQpAQCAtMzEyLDcgKzMwOCw3IEBAIHZvaWQgY2xlYXJEZWZh
dWx0UG9ydEZvclByb3RvY29sTWFwRm9yVGVzdGluZygpCiBzdGQ6Om9wdGlvbmFsPHVpbnQxNl90
PiBkZWZhdWx0UG9ydEZvclByb3RvY29sKFN0cmluZ1ZpZXcgcHJvdG9jb2wpCiB7CiAgICAgaWYg
KGF1dG8qIG92ZXJyaWRlTWFwID0gZGVmYXVsdFBvcnRGb3JQcm90b2NvbE1hcEZvclRlc3Rpbmco
KSkgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihkZWZhdWx0UG9ydEZvclByb3RvY29sTWFw
Rm9yVGVzdGluZ0xvY2soKSk7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soZGVmYXVs
dFBvcnRGb3JQcm90b2NvbE1hcEZvclRlc3RpbmdMb2NrKTsKICAgICAgICAgQVNTRVJUKG92ZXJy
aWRlTWFwKTsgLy8gTm8gbmVlZCB0byBudWxsIGNoZWNrIGFnYWluIGhlcmUgc2luY2Ugb3ZlcnJp
ZGVNYXAgY2Fubm90IGJlY29tZSBudWxsIGFmdGVyIGJlaW5nIG5vbi1udWxsLgogICAgICAgICBh
dXRvIGl0ZXJhdG9yID0gb3ZlcnJpZGVNYXAtPmZpbmQocHJvdG9jb2wudG9TdHJpbmdXaXRob3V0
Q29weWluZygpKTsKICAgICAgICAgaWYgKGl0ZXJhdG9yICE9IG92ZXJyaWRlTWFwLT5lbmQoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApp
bmRleCAzNWM1YTVlZjRjNmVhNzBkNDk4ZmEzZjY1MjVhZmYyMjZkYjdmZGU1Li40YTQ3M2FmODRl
NTE5NjlkZDhkODA5OTQxYjY2M2Y1MTBjNTQ0MDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0yMTAsMTEgKzIxMCw3IEBAIHN0
cnVjdCBNZWRpYVBsYXllckZhY3RvcnkgewogCiBzdGF0aWMgdm9pZCBhZGRNZWRpYUVuZ2luZShD
cmVhdGVNZWRpYUVuZ2luZVBsYXllciYmLCBNZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVzLCBNZWRp
YUVuZ2luZVN1cHBvcnRzVHlwZSwgTWVkaWFFbmdpbmVPcmlnaW5zSW5NZWRpYUNhY2hlLCBNZWRp
YUVuZ2luZUNsZWFyTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JPcmln
aW5zLCBNZWRpYUVuZ2luZVN1cHBvcnRzS2V5U3lzdGVtKTsKIAotc3RhdGljIExvY2smIG1lZGlh
RW5naW5lVmVjdG9yTG9jaygpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExvY2s+IGxv
Y2s7Ci0gICAgcmV0dXJuIGxvY2s7Ci19CitzdGF0aWMgU3RhdGljTG9jayBtZWRpYUVuZ2luZVZl
Y3RvckxvY2s7CiAKIHN0YXRpYyBib29sJiBoYXZlTWVkaWFFbmdpbmVzVmVjdG9yKCkKIHsKQEAg
LTIzMCw3ICsyMjYsNyBAQCBzdGF0aWMgVmVjdG9yPE1lZGlhUGxheWVyRmFjdG9yeT4mIG11dGFi
bGVJbnN0YWxsZWRNZWRpYUVuZ2luZXNWZWN0b3IoKQogCiBzdGF0aWMgdm9pZCBidWlsZE1lZGlh
RW5naW5lc1ZlY3RvcigpCiB7Ci0gICAgQVNTRVJUKG1lZGlhRW5naW5lVmVjdG9yTG9jaygpLmlz
TG9ja2VkKCkpOworICAgIEFTU0VSVChtZWRpYUVuZ2luZVZlY3RvckxvY2suaXNMb2NrZWQoKSk7
CiAKICNpZiBVU0UoQVZGT1VOREFUSU9OKQogICAgIGlmIChEZXByZWNhdGVkR2xvYmFsU2V0dGlu
Z3M6OmlzQVZGb3VuZGF0aW9uRW5hYmxlZCgpKSB7CkBAIC0yNzYsNyArMjcyLDcgQEAgc3RhdGlj
IHZvaWQgYnVpbGRNZWRpYUVuZ2luZXNWZWN0b3IoKQogc3RhdGljIGNvbnN0IFZlY3RvcjxNZWRp
YVBsYXllckZhY3Rvcnk+JiBpbnN0YWxsZWRNZWRpYUVuZ2luZXMoKQogewogICAgIHsKLSAgICAg
ICAgTG9ja0hvbGRlciBsb2NrKG1lZGlhRW5naW5lVmVjdG9yTG9jaygpKTsKKyAgICAgICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhtZWRpYUVuZ2luZVZlY3RvckxvY2spOwogICAgICAgICBpZiAo
IWhhdmVNZWRpYUVuZ2luZXNWZWN0b3IoKSkKICAgICAgICAgICAgIGJ1aWxkTWVkaWFFbmdpbmVz
VmVjdG9yKCk7CiAgICAgfQpAQCAtMTM4OCw3ICsxMzg0LDcgQEAgVmVjdG9yPFJlZlB0cjxQbGF0
Zm9ybVRleHRUcmFjaz4+IE1lZGlhUGxheWVyOjpvdXRPZkJhbmRUcmFja1NvdXJjZXMoKQogCiB2
b2lkIE1lZGlhUGxheWVyOjpyZXNldE1lZGlhRW5naW5lcygpCiB7Ci0gICAgTG9ja0hvbGRlciBs
b2NrKG1lZGlhRW5naW5lVmVjdG9yTG9jaygpKTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2Nr
KG1lZGlhRW5naW5lVmVjdG9yTG9jayk7CiAKICAgICBtdXRhYmxlSW5zdGFsbGVkTWVkaWFFbmdp
bmVzVmVjdG9yKCkuY2xlYXIoKTsKICAgICBoYXZlTWVkaWFFbmdpbmVzVmVjdG9yKCkgPSBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9RdWlja0xvb2subW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUXVpY2tMb29rLm1tCmluZGV4IGQzZGY4ZWVl
ZmZlMTY4NGEzNWU1Yjg0NWEwNWE0NzUxODUzMzQxYWYuLmYzYjBkZjZkMTUxMzRhZmZkMzlhZTBh
ZTFlYWVhMjM5MGUzMmMwN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9RdWlja0xvb2subW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1F1aWNrTG9v
ay5tbQpAQCAtNDYsMTEgKzQ2LDcgQEAgTlNTZXQgKlFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVU
eXBlc1NldCgpCiAgICAgcmV0dXJuIHNldDsKIH0KIAotc3RhdGljIExvY2smIHFsUHJldmlld0Nv
bnZlcnRlckRpY3Rpb25hcnlNdXRleCgpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExv
Y2s+IG11dGV4OwotICAgIHJldHVybiBtdXRleDsKLX0KK3N0YXRpYyBTdGF0aWNMb2NrIHFsUHJl
dmlld0NvbnZlcnRlckRpY3Rpb25hcnlMb2NrOwogCiBzdGF0aWMgTlNNdXRhYmxlRGljdGlvbmFy
eSAqUUxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeSgpCiB7CkBAIC02Niw3ICs2Miw3IEBAIHN0
YXRpYyBOU011dGFibGVEaWN0aW9uYXJ5ICpRTENvbnRlbnREaWN0aW9uYXJ5KCkKIAogdm9pZCBy
ZW1vdmVRTFByZXZpZXdDb252ZXJ0ZXJGb3JVUkwoTlNVUkwgKnVybCkKIHsKLSAgICBMb2NrSG9s
ZGVyIGxvY2socWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkpOworICAgIGF1dG8g
bG9ja2VyID0gaG9sZExvY2socWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeUxvY2spOwogICAg
IFtRTFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5KCkgcmVtb3ZlT2JqZWN0Rm9yS2V5OnVybF07
CiAgICAgW1FMQ29udGVudERpY3Rpb25hcnkoKSByZW1vdmVPYmplY3RGb3JLZXk6dXJsXTsKIH0K
QEAgLTc1LDcgKzcxLDcgQEAgc3RhdGljIHZvaWQgYWRkUUxQcmV2aWV3Q29udmVydGVyV2l0aEZp
bGVGb3JVUkwoTlNVUkwgKnVybCwgaWQgY29udmVydGVyLCBOU1N0cmkKIHsKICAgICBBU1NFUlQo
dXJsKTsKICAgICBBU1NFUlQoY29udmVydGVyKTsKLSAgICBMb2NrSG9sZGVyIGxvY2socWxQcmV2
aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExv
Y2socWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeUxvY2spOwogICAgIFtRTFByZXZpZXdDb252
ZXJ0ZXJEaWN0aW9uYXJ5KCkgc2V0T2JqZWN0OmNvbnZlcnRlciBmb3JLZXk6dXJsXTsKICAgICBb
UUxDb250ZW50RGljdGlvbmFyeSgpIHNldE9iamVjdDooZmlsZU5hbWUgPyBmaWxlTmFtZSA6IEAi
IikgZm9yS2V5OnVybF07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudC5tbQppbmRleCA0YmQzZmEx
ZjYxNmE5ZjZkMThlZmE5MzQwMzVhMTAwZThhMTQ2ZjJkLi45NmZjYmYxYzhlNTc0ZGViNGFhNDMw
ZDE2YWFmZjY3NDBiZmQ4ZDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQubW0KQEAgLTg0LDEx
ICs4NCw3IEBAIHZvaWQgV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50OjpoeXN0ZXJlc2lz
VXBkYXRlZChQQUw6Okh5c3RlcmVzaXNTdGF0ZSBzdGF0CiAKIH0KIAotc3RhdGljIExvY2smIHRy
YW5zYWN0aW9uQmFja2dyb3VuZFRhc2tJZGVudGlmaWVyTG9jaygpCi17Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPExvY2s+IG11dGV4OwotICAgIHJldHVybiBtdXRleDsKLX0KK3N0YXRpYyBT
dGF0aWNMb2NrIHRyYW5zYWN0aW9uQmFja2dyb3VuZFRhc2tJZGVudGlmaWVyTG9jazsKIAogc3Rh
dGljIE5TVUludGVnZXIgdHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXI7CiAKQEAg
LTExMSw3ICsxMDcsNyBAQCBAaW1wbGVtZW50YXRpb24gV2ViRGF0YWJhc2VUcmFuc2FjdGlvbkJh
Y2tncm91bmRUYXNrQ29udHJvbGxlcgogCiArICh2b2lkKXN0YXJ0QmFja2dyb3VuZFRhc2sKIHsK
LSAgICBMb2NrSG9sZGVyIGxvY2sodHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJM
b2NrKCkpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sodHJhbnNhY3Rpb25CYWNrZ3JvdW5k
VGFza0lkZW50aWZpZXJMb2NrKTsKIAogICAgIC8vIElmIHRoZXJlJ3MgYWxyZWFkeSBhbiBleGlz
dGluZyBiYWNrZ3JvdW5kIHRhc2sgZ29pbmcgb24sIHRoZXJlJ3Mgbm8gbmVlZCB0byBzdGFydCBh
IG5ldyBvbmUuCiAgICAgV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyICpiYWNrZ3JvdW5kVGFz
a0NvbnRyb2xsZXIgPSBbV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyIHNoYXJlZENvbnRyb2xs
ZXJdOwpAQCAtMTI2LDcgKzEyMiw3IEBAICsgKHZvaWQpc3RhcnRCYWNrZ3JvdW5kVGFzawogCiAr
ICh2b2lkKWVuZEJhY2tncm91bmRUYXNrCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrKHRyYW5zYWN0
aW9uQmFja2dyb3VuZFRhc2tJZGVudGlmaWVyTG9jaygpKTsKKyAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKHRyYW5zYWN0aW9uQmFja2dyb3VuZFRhc2tJZGVudGlmaWVyTG9jayk7CiAKICAgICAv
LyBJdCBpcyBwb3NzaWJsZSB0aGF0IHdlIHdlcmUgdW5hYmxlIHRvIHN0YXJ0IHRoZSBiYWNrZ3Jv
dW5kIHRhc2sgd2hlbiB0aGUgZmlyc3QgdHJhbnNhY3Rpb24gYmVnYW4uCiAgICAgLy8gRG9uJ3Qg
dHJ5IHRvIGVuZCB0aGUgdGFzayBpbiB0aGF0IGNhc2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcAppbmRleCBkZWEzNjAyYzgz
MDBmOGFjMmRiYmNmNWM3ODBmYmJmYmQzODliNDIzLi44YmNkMDhkZTM1YzE4M2MwZjZkOWE4NzU3
N2ZkYmMwNDFhNTZjMDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKQEAgLTE3OCwyOSArMTc4LDI5IEBAIEN1cmxTaGFy
ZUhhbmRsZTo6fkN1cmxTaGFyZUhhbmRsZSgpCiAKIHZvaWQgQ3VybFNoYXJlSGFuZGxlOjpsb2Nr
Q2FsbGJhY2soQ1VSTCosIGN1cmxfbG9ja19kYXRhIGRhdGEsIGN1cmxfbG9ja19hY2Nlc3MsIHZv
aWQqKQogewotICAgIGlmIChMb2NrKiBtdXRleCA9IG11dGV4Rm9yKGRhdGEpKQorICAgIGlmIChh
dXRvKiBtdXRleCA9IG11dGV4Rm9yKGRhdGEpKQogICAgICAgICBtdXRleC0+bG9jaygpOwogfQog
CiB2b2lkIEN1cmxTaGFyZUhhbmRsZTo6dW5sb2NrQ2FsbGJhY2soQ1VSTCosIGN1cmxfbG9ja19k
YXRhIGRhdGEsIHZvaWQqKQogewotICAgIGlmIChMb2NrKiBtdXRleCA9IG11dGV4Rm9yKGRhdGEp
KQorICAgIGlmIChhdXRvKiBtdXRleCA9IG11dGV4Rm9yKGRhdGEpKQogICAgICAgICBtdXRleC0+
dW5sb2NrKCk7CiB9CiAKLUxvY2sqIEN1cmxTaGFyZUhhbmRsZTo6bXV0ZXhGb3IoY3VybF9sb2Nr
X2RhdGEgZGF0YSkKK1N0YXRpY0xvY2sqIEN1cmxTaGFyZUhhbmRsZTo6bXV0ZXhGb3IoY3VybF9s
b2NrX2RhdGEgZGF0YSkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TG9jaz4gY29va2ll
TXV0ZXg7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExvY2s+IGRuc011dGV4OwotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxMb2NrPiBzaGFyZU11dGV4OworICAgIHN0YXRpYyBTdGF0aWNM
b2NrIGNvb2tpZU11dGV4OworICAgIHN0YXRpYyBTdGF0aWNMb2NrIGRuc011dGV4OworICAgIHN0
YXRpYyBTdGF0aWNMb2NrIHNoYXJlTXV0ZXg7CiAKICAgICBzd2l0Y2ggKGRhdGEpIHsKICAgICBj
YXNlIENVUkxfTE9DS19EQVRBX0NPT0tJRToKLSAgICAgICAgcmV0dXJuICZjb29raWVNdXRleC5n
ZXQoKTsKKyAgICAgICAgcmV0dXJuICZjb29raWVNdXRleDsKICAgICBjYXNlIENVUkxfTE9DS19E
QVRBX0ROUzoKLSAgICAgICAgcmV0dXJuICZkbnNNdXRleC5nZXQoKTsKKyAgICAgICAgcmV0dXJu
ICZkbnNNdXRleDsKICAgICBjYXNlIENVUkxfTE9DS19EQVRBX1NIQVJFOgotICAgICAgICByZXR1
cm4gJnNoYXJlTXV0ZXguZ2V0KCk7CisgICAgICAgIHJldHVybiAmc2hhcmVNdXRleDsKICAgICBk
ZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q3VybENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJs
Q29udGV4dC5oCmluZGV4IDkyZDNiYWM2ZmMwZjk5ZjQ4MmNkOWY5ZWFiNjQ2MzVkMGI1NTIxYzUu
Ljk2ODQ2NTM3ODA3NGM4ZjI3M2FhMWNkZmRhY2E0OWIwOTkwZDQyN2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5oCkBAIC04Myw3
ICs4Myw3IEBAIGNsYXNzIEN1cmxTaGFyZUhhbmRsZSB7CiBwcml2YXRlOgogICAgIHN0YXRpYyB2
b2lkIGxvY2tDYWxsYmFjayhDVVJMKiwgY3VybF9sb2NrX2RhdGEsIGN1cmxfbG9ja19hY2Nlc3Ms
IHZvaWQqKTsKICAgICBzdGF0aWMgdm9pZCB1bmxvY2tDYWxsYmFjayhDVVJMKiwgY3VybF9sb2Nr
X2RhdGEsIHZvaWQqKTsKLSAgICBzdGF0aWMgTG9jayogbXV0ZXhGb3IoY3VybF9sb2NrX2RhdGEp
OworICAgIHN0YXRpYyBTdGF0aWNMb2NrKiBtdXRleEZvcihjdXJsX2xvY2tfZGF0YSk7CiAKICAg
ICBDVVJMU0gqIG1fc2hhcmVIYW5kbGUgeyBudWxscHRyIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViRml4ZWRQb3NpdGlvbkNvbnRl
bnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBv
c2l0aW9uQ29udGVudC5tbQppbmRleCBmNWQzNTkyOWU3YzRhZTEzYWViZjRhOWQ5MTM4NjUxOTNi
MDU4N2UyLi5mMjdkYmE3ODNhZmI1Y2M5MTA5MzVkNGY1OWQ5MWU0ZTA2N2I4ZDYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0
aW9uQ29udGVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJDb3JlU3VwcG9y
dC9XZWJGaXhlZFBvc2l0aW9uQ29udGVudC5tbQpAQCAtNDksMTEgKzQ5LDcgQEAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAotc3RhdGljIExvY2smIFdl
YkZpeGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2soKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxMb2NrPiBtdXRleDsKLSAgICByZXR1cm4gbXV0ZXg7Ci19CitzdGF0aWMgU3RhdGljTG9j
ayB3ZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFMb2NrOwogCiBzdHJ1Y3QgVmlld3BvcnRDb25z
dHJhaW5lZExheWVyRGF0YSB7CiAgICAgVmlld3BvcnRDb25zdHJhaW5lZExheWVyRGF0YSgpCkBA
IC0xMDQsNyArMTAwLDcgQEAgLSAodm9pZClkZWFsbG9jCiAKIC0gKHZvaWQpc2Nyb2xsT3Jab29t
Q2hhbmdlZDooQ0dSZWN0KXBvc2l0aW9uZWRPYmplY3RzUmVjdAogewotICAgIExvY2tIb2xkZXIg
bG9jayhXZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFMb2NrKCkpOworICAgIGF1dG8gbG9ja2Vy
ID0gaG9sZExvY2sod2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jayk7CiAKICAgICBMYXll
ckluZm9NYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IF9wcml2YXRlLT5tX3ZpZXdwb3J0Q29uc3Ry
YWluZWRMYXllcnMuZW5kKCk7CiAgICAgZm9yIChMYXllckluZm9NYXA6OmNvbnN0X2l0ZXJhdG9y
IGl0ID0gX3ByaXZhdGUtPm1fdmlld3BvcnRDb25zdHJhaW5lZExheWVycy5iZWdpbigpOyBpdCAh
PSBlbmQ7ICsraXQpIHsKQEAgLTE0Myw3ICsxMzksNyBAQCAtICh2b2lkKXNjcm9sbE9yWm9vbUNo
YW5nZWQ6KENHUmVjdClwb3NpdGlvbmVkT2JqZWN0c1JlY3QKIAogLSAodm9pZClvdmVyZmxvd1Nj
cm9sbFBvc2l0aW9uRm9yTGF5ZXI6KENBTGF5ZXIgKilzY3JvbGxMYXllciBjaGFuZ2VkVG86KENH
UG9pbnQpc2Nyb2xsUG9zaXRpb24KIHsKLSAgICBMb2NrSG9sZGVyIGxvY2soV2ViRml4ZWRQb3Np
dGlvbkNvbnRlbnREYXRhTG9jaygpKTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKHdlYkZp
eGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2spOwogCiAgICAgTGF5ZXJJbmZvTWFwOjpjb25zdF9p
dGVyYXRvciBlbmQgPSBfcHJpdmF0ZS0+bV92aWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzLmVuZCgp
OwogICAgIGZvciAoTGF5ZXJJbmZvTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IF9wcml2YXRlLT5t
X3ZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CkBA
IC0xNzYsNyArMTcyLDcgQEAgLSAodm9pZClkaWRGaW5pc2hTY3JvbGxpbmdPclpvb21pbmcKIAog
LSAodm9pZClzZXRWaWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzOihXVEY6Okhhc2hNYXA8Q0FMYXll
ciAqLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Vmlld3BvcnRDb25zdHJhaW50cz4+JilsYXll
ck1hcCBzdGlja3lDb250YWluZXJNYXA6KFdURjo6SGFzaE1hcDxDQUxheWVyKiwgQ0FMYXllcio+
JilzdGlja3lDb250YWluZXJzCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrKFdlYkZpeGVkUG9zaXRp
b25Db250ZW50RGF0YUxvY2soKSk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayh3ZWJGaXhl
ZFBvc2l0aW9uQ29udGVudERhdGFMb2NrKTsKIAogICAgIF9wcml2YXRlLT5tX3ZpZXdwb3J0Q29u
c3RyYWluZWRMYXllcnMuY2xlYXIoKTsKIApAQCAtMTkzLDcgKzE4OSw3IEBAIC0gKHZvaWQpc2V0
Vmlld3BvcnRDb25zdHJhaW5lZExheWVyczooV1RGOjpIYXNoTWFwPENBTGF5ZXIgKiwgc3RkOjp1
bmlxdWVfcHRyPFdlCiAKIC0gKEJPT0wpaGFzRml4ZWRPclN0aWNreVBvc2l0aW9uTGF5ZXJzCiB7
Ci0gICAgTG9ja0hvbGRlciBsb2NrKFdlYkZpeGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7
CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayh3ZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFM
b2NrKTsKICAgICByZXR1cm4gIV9wcml2YXRlLT5tX3ZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnMu
aXNFbXB0eSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJM
b2NhbGl6YWJsZVN0cmluZ3MuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViTG9jYWxp
emFibGVTdHJpbmdzLmNwcAppbmRleCBiNzU3MzkxNTlmZWZkMjFlZDZmYTMzNjg4ODBhMTliOWJj
MTQyMWUxLi4yZTMxMWVlMDdmZjZhMDBhNjlkYjZlNTNmNTJhYWYxMzU4MGM4OGNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJMb2NhbGl6YWJsZVN0cmluZ3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkxvY2FsaXphYmxlU3RyaW5ncy5jcHAKQEAg
LTQ1LDExICs0NSw3IEBAIFdlYkxvY2FsaXphYmxlU3RyaW5nc0J1bmRsZSBXZWJLaXRMb2NhbGl6
YWJsZVN0cmluZ3NCdW5kbGUgPSB7ICJjb20uYXBwbGUuV2ViS2l0CiAKIHR5cGVkZWYgSGFzaE1h
cDxTdHJpbmcsIExvY2FsaXplZFN0cmluZyo+IExvY2FsaXplZFN0cmluZ01hcDsKIAotc3RhdGlj
IExvY2smIG1haW5CdW5kbGVMb2NTdHJpbmdzTXV0ZXgoKQotewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxMb2NrPiBtdXRleDsKLSAgICByZXR1cm4gbXV0ZXg7Ci19CitzdGF0aWMgU3RhdGlj
TG9jayBtYWluQnVuZGxlTG9jU3RyaW5nc0xvY2s7CiAKIHN0YXRpYyBMb2NhbGl6ZWRTdHJpbmdN
YXAmIG1haW5CdW5kbGVMb2NTdHJpbmdzKCkKIHsKQEAgLTU3LDExICs1Myw3IEBAIHN0YXRpYyBM
b2NhbGl6ZWRTdHJpbmdNYXAmIG1haW5CdW5kbGVMb2NTdHJpbmdzKCkKICAgICByZXR1cm4gbWFw
OwogfQogCi1zdGF0aWMgTG9jayYgZnJhbWV3b3JrTG9jU3RyaW5nc011dGV4KCkKLXsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TG9jaz4gbXV0ZXg7Ci0gICAgcmV0dXJuIG11dGV4OwotfQor
c3RhdGljIFN0YXRpY0xvY2sgZnJhbWV3b3JrTG9jU3RyaW5nc0xvY2s7CiAKIHN0YXRpYyBMb2Nh
bGl6ZWRTdHJpbmdNYXAgZnJhbWV3b3JrTG9jU3RyaW5ncygpCiB7CkBAIC0xNzYsMTIgKzE2OCwx
MiBAQCBzdGF0aWMgQ0ZTdHJpbmdSZWYgY29weUxvY2FsaXplZFN0cmluZ0Zyb21CdW5kbGUoV2Vi
TG9jYWxpemFibGVTdHJpbmdzQnVuZGxlKiBzdAogc3RhdGljIExvY2FsaXplZFN0cmluZyogZmlu
ZENhY2hlZFN0cmluZyhXZWJMb2NhbGl6YWJsZVN0cmluZ3NCdW5kbGUqIHN0cmluZ3NCdW5kbGUs
IGNvbnN0IFN0cmluZyYga2V5KQogewogICAgIGlmICghc3RyaW5nc0J1bmRsZSkgewotICAgICAg
ICBMb2NrSG9sZGVyIGxvY2sobWFpbkJ1bmRsZUxvY1N0cmluZ3NNdXRleCgpKTsKKyAgICAgICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jayhtYWluQnVuZGxlTG9jU3RyaW5nc0xvY2spOwogICAgICAg
ICByZXR1cm4gbWFpbkJ1bmRsZUxvY1N0cmluZ3MoKS5nZXQoa2V5KTsKICAgICB9CiAKICAgICBp
ZiAoc3RyaW5nc0J1bmRsZS0+YnVuZGxlID09IFdlYktpdExvY2FsaXphYmxlU3RyaW5nc0J1bmRs
ZS5idW5kbGUpIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrKGZyYW1ld29ya0xvY1N0cmluZ3NN
dXRleCgpKTsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhmcmFtZXdvcmtMb2NTdHJp
bmdzTG9jayk7CiAgICAgICAgIHJldHVybiBmcmFtZXdvcmtMb2NTdHJpbmdzKCkuZ2V0KGtleSk7
CiAgICAgfQogCkBAIC0xOTEsMTIgKzE4MywxMiBAQCBzdGF0aWMgTG9jYWxpemVkU3RyaW5nKiBm
aW5kQ2FjaGVkU3RyaW5nKFdlYkxvY2FsaXphYmxlU3RyaW5nc0J1bmRsZSogc3RyaW5nc0J1bgog
c3RhdGljIHZvaWQgY2FjaGVTdHJpbmcoV2ViTG9jYWxpemFibGVTdHJpbmdzQnVuZGxlKiBzdHJp
bmdzQnVuZGxlLCBjb25zdCBTdHJpbmcmIGtleSwgTG9jYWxpemVkU3RyaW5nKiB2YWx1ZSkKIHsK
ICAgICBpZiAoIXN0cmluZ3NCdW5kbGUpIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1haW5C
dW5kbGVMb2NTdHJpbmdzTXV0ZXgoKSk7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
bWFpbkJ1bmRsZUxvY1N0cmluZ3NMb2NrKTsKICAgICAgICAgbWFpbkJ1bmRsZUxvY1N0cmluZ3Mo
KS5zZXQoa2V5LCB2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBMb2NrSG9s
ZGVyIGxvY2soZnJhbWV3b3JrTG9jU3RyaW5nc011dGV4KCkpOworICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2soZnJhbWV3b3JrTG9jU3RyaW5nc0xvY2spOwogICAgIGZyYW1ld29ya0xvY1N0cmlu
Z3MoKS5zZXQoa2V5LCB2YWx1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwYzM4YWI4N2IzYmU4MjUyNWU3ZTViMWMwMjY0MTZhNjBl
Y2ZmMmQyLi44ZTVlYjQ2MTcxZDI1OTU2ZmJjZWRkY2VhYjRmZTVjYjE0ODk2ZjMxIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTctMTItMDYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisK
KyAgICAgICAgVXNlIFN0YXRpY0xvY2sgaW5zdGVhZCBvZiBOZXZlckRlc3Ryb3llZDxMb2NrPgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwNTA3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcDoKKyAgICAgICAgKGphdmFTY3JpcHRUaHJl
YWRzKToKKyAgICAgICAgKHJ1bkphdmFTY3JpcHRUaHJlYWQpOgorICAgICAgICAoc3RhcnRKYXZh
U2NyaXB0VGhyZWFkcyk6CisgICAgICAgIChzdG9wSmF2YVNjcmlwdFRocmVhZHMpOgorICAgICAg
ICAoamF2YVNjcmlwdFRocmVhZHNNdXRleCk6IERlbGV0ZWQuCisKIDIwMTctMTItMDUgIFN0ZXBo
YW4gU3phYm8gIDxzdGVwaGFuLnN6YWJvQHNvbnkuY29tPgogCiAgICAgICAgIFN3aXRjaCB3aW5k
b3dzIGJ1aWxkIHRvIFZpc3VhbCBTdHVkaW8gMjAxNwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvSmF2YVNjcmlwdFRocmVhZGluZy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9K
YXZhU2NyaXB0VGhyZWFkaW5nLmNwcAppbmRleCA1MzUxN2JmMDY5NGUwZjFjZTZmNGFkZDk0NWQ4
ZmJhZDc3NWEwNTFkLi44MGEwODJiZDFmNmMyNmQ4NTNjYmFiNzFiNTIxYjExZWNiNDZlN2Q5IDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcApAQCAtNDUs
MTggKzQ1LDEzIEBACiBzdGF0aWMgY29uc3Qgc2l6ZV90IGphdmFTY3JpcHRUaHJlYWRzQ291bnQg
PSA0Owogc3RhdGljIGJvb2wgamF2YVNjcmlwdFRocmVhZHNTaG91bGRUZXJtaW5hdGU7CiBzdGF0
aWMgSlNDb250ZXh0R3JvdXBSZWYgamF2YVNjcmlwdFRocmVhZHNHcm91cDsKLQotc3RhdGljIExv
Y2smIGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxMb2NrPiBzdGF0aWNNdXRleDsKLSAgICByZXR1cm4gc3RhdGljTXV0ZXg7Ci19CitzdGF0aWMg
U3RhdGljTG9jayBqYXZhU2NyaXB0VGhyZWFkc0xvY2s7CiAKIHR5cGVkZWYgSGFzaFNldDxSZWZQ
dHI8VGhyZWFkPj4gVGhyZWFkU2V0Owogc3RhdGljIFRocmVhZFNldCYgamF2YVNjcmlwdFRocmVh
ZHMoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxUaHJlYWRTZXQ+IHN0YXRpY0phdmFT
Y3JpcHRUaHJlYWRzOwotICAgIEFTU0VSVCghamF2YVNjcmlwdFRocmVhZHNNdXRleCgpLnRyeUxv
Y2soKSk7CisgICAgQVNTRVJUKCFqYXZhU2NyaXB0VGhyZWFkc0xvY2sudHJ5TG9jaygpKTsKICAg
ICByZXR1cm4gc3RhdGljSmF2YVNjcmlwdFRocmVhZHM7CiB9CiAKQEAgLTcyLDI2ICs2NywyNiBA
QCB2b2lkIHJ1bkphdmFTY3JpcHRUaHJlYWQoKQogCiAgICAgSlNHbG9iYWxDb250ZXh0UmVmIGN0
eDsKICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0
ZXgoKSk7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soamF2YVNjcmlwdFRocmVhZHNM
b2NrKTsKICAgICAgICAgY3R4ID0gSlNHbG9iYWxDb250ZXh0Q3JlYXRlSW5Hcm91cChqYXZhU2Ny
aXB0VGhyZWFkc0dyb3VwLCAwKTsKICAgICB9CiAKICAgICBKU1N0cmluZ1JlZiBzY3JpcHRSZWY7
CiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4
KCkpOworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKGphdmFTY3JpcHRUaHJlYWRzTG9j
ayk7CiAgICAgICAgIHNjcmlwdFJlZiA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNj
cmlwdCk7CiAgICAgfQogCiAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgewotICAgICAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICAgICAg
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soamF2YVNjcmlwdFRocmVhZHNMb2NrKTsKICAgICAg
ICAgICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uID0gMDsKICAgICAgICAgICAgIEpTRXZhbHVhdGVT
Y3JpcHQoY3R4LCBzY3JpcHRSZWYsIDAsIDAsIDEsICZleGNlcHRpb24pOwogICAgICAgICAgICAg
QVNTRVJUKCFleGNlcHRpb24pOwogICAgICAgICB9CiAKICAgICAgICAgewotICAgICAgICAgICAg
TG9ja0hvbGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICAgICAgICAg
IGF1dG8gbG9ja2VyID0gaG9sZExvY2soamF2YVNjcmlwdFRocmVhZHNMb2NrKTsKICAgICAgICAg
ICAgIGNvbnN0IHNpemVfdCB2YWx1ZXNDb3VudCA9IDEwMjQ7CiAgICAgICAgICAgICBKU1ZhbHVl
UmVmIHZhbHVlc1t2YWx1ZXNDb3VudF07CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IHZhbHVlc0NvdW50OyArK2kpCkBAIC05OSw3ICs5NCw3IEBAIHZvaWQgcnVuSmF2YVNjcmlw
dFRocmVhZCgpCiAgICAgICAgIH0KIAogICAgICAgICB7Ci0gICAgICAgICAgICBMb2NrSG9sZGVy
IGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICAgICAgYXV0byBsb2Nr
ZXIgPSBob2xkTG9jayhqYXZhU2NyaXB0VGhyZWFkc0xvY2spOwogICAgICAgICAgICAgaWYgKGph
dmFTY3JpcHRUaHJlYWRzU2hvdWxkVGVybWluYXRlKQogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CkBAIC0xMDgsNyArMTAzLDcgQEAgdm9pZCBydW5KYXZhU2NyaXB0VGhyZWFkKCkK
ICAgICAgICAgaWYgKHJhbmQoKSAlIDUpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICBh
dXRvIGxvY2tlciA9IGhvbGRMb2NrKGphdmFTY3JpcHRUaHJlYWRzTG9jayk7CiAgICAgICAgIFRo
cmVhZCYgdGhyZWFkID0gVGhyZWFkOjpjdXJyZW50KCk7CiAgICAgICAgIHRocmVhZC5kZXRhY2go
KTsKICAgICAgICAgamF2YVNjcmlwdFRocmVhZHMoKS5yZW1vdmUoJnRocmVhZCk7CkBAIC0xMTYs
NyArMTExLDcgQEAgdm9pZCBydW5KYXZhU2NyaXB0VGhyZWFkKCkKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogCi0gICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRleCgpKTsK
KyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKGphdmFTY3JpcHRUaHJlYWRzTG9jayk7CiAgICAg
SlNTdHJpbmdSZWxlYXNlKHNjcmlwdFJlZik7CiAgICAgSlNHYXJiYWdlQ29sbGVjdChjdHgpOwog
ICAgIEpTR2xvYmFsQ29udGV4dFJlbGVhc2UoY3R4KTsKQEAgLTEyNiw3ICsxMjEsNyBAQCB2b2lk
IHN0YXJ0SmF2YVNjcmlwdFRocmVhZHMoKQogewogICAgIGphdmFTY3JpcHRUaHJlYWRzR3JvdXAg
PSBKU0NvbnRleHRHcm91cENyZWF0ZSgpOwogCi0gICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNj
cmlwdFRocmVhZHNNdXRleCgpKTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKGphdmFTY3Jp
cHRUaHJlYWRzTG9jayk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGphdmFTY3JpcHRU
aHJlYWRzQ291bnQ7ICsraSkKICAgICAgICAgamF2YVNjcmlwdFRocmVhZHMoKS5hZGQoVGhyZWFk
OjpjcmVhdGUoIkphdmFTY3JpcHQgVGhyZWFkIiwgJnJ1bkphdmFTY3JpcHRUaHJlYWQpKTsKQEAg
LTEzNSwxMyArMTMwLDEzIEBAIHZvaWQgc3RhcnRKYXZhU2NyaXB0VGhyZWFkcygpCiB2b2lkIHN0
b3BKYXZhU2NyaXB0VGhyZWFkcygpCiB7CiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tl
cihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRM
b2NrKGphdmFTY3JpcHRUaHJlYWRzTG9jayk7CiAgICAgICAgIGphdmFTY3JpcHRUaHJlYWRzU2hv
dWxkVGVybWluYXRlID0gdHJ1ZTsKICAgICB9CiAKICAgICBWZWN0b3I8UmVmUHRyPFRocmVhZD4s
IGphdmFTY3JpcHRUaHJlYWRzQ291bnQ+IHRocmVhZHM7CiAgICAgewotICAgICAgICBMb2NrSG9s
ZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKGphdmFTY3JpcHRUaHJlYWRzTG9jayk7CiAgICAgICAgIHRocmVhZHMgPSBj
b3B5VG9WZWN0b3IoamF2YVNjcmlwdFRocmVhZHMoKSk7CiAgICAgICAgIEFTU0VSVCh0aHJlYWRz
LnNpemUoKSA9PSBqYXZhU2NyaXB0VGhyZWFkc0NvdW50KTsKICAgICB9CkBAIC0xNTAsNyArMTQ1
LDcgQEAgdm9pZCBzdG9wSmF2YVNjcmlwdFRocmVhZHMoKQogICAgICAgICB0aHJlYWRzW2ldLT53
YWl0Rm9yQ29tcGxldGlvbigpOwogCiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihq
YXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2Nr
KGphdmFTY3JpcHRUaHJlYWRzTG9jayk7CiAgICAgICAgIGphdmFTY3JpcHRUaHJlYWRzKCkuY2xl
YXIoKTsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328688</attachid>
            <date>2017-12-07 04:40:35 -0800</date>
            <delta_ts>2017-12-07 17:31:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180507-20171207214034.patch</filename>
            <type>text/plain</type>
            <size>26696</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY4MzlmNmEyZWEwNjA1
OWVjNmNjNzI1NGExOTJhZGI5NTJiZjAxZS4uZDE2YjZlMmU4MTgzOTY5N2JhZTE2ZDJjMWE1Njdm
MmFmNjMyNmUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE3LTEyLTA3ICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFVzZSBTdGF0aWNM
b2NrIGluc3RlYWQgb2YgTmV2ZXJEZXN0cm95ZWQ8TG9jaz4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDUwNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXRpY0xvY2sgY2FuIGJlIHVzZWQgaW5zdGVh
ZCBvZiB1c2luZyBOZXZlckRlc3Ryb3llZDxMb2NrPi4KKworICAgICAgICBObyBiZWhhdmlvciBj
aGFuZ2UuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcmlmeSk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0YWJhc2VNdXRleCk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRhYmFzZVRyYWNrZXI6OmVtcHR5RGF0YWJhc2VGaWxlc1JlbW92YWxUYXNrV2lsbEJl
U2NoZWR1bGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6ZW1wdHlEYXRh
YmFzZUZpbGVzUmVtb3ZhbFRhc2tEaWRGaW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJh
c2VUcmFja2VyOjpzY2hlZHVsZU5vdGlmeURhdGFiYXNlQ2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRhYmFzZVRyYWNrZXI6OnNjaGVkdWxlRm9yTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6bm90aWZ5RGF0YWJhc2VzQ2hhbmdlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpub3RpZmljYXRpb25NdXRleCk6IERlbGV0ZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9V
UkwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVnaXN0ZXJEZWZhdWx0UG9ydEZvclByb3RvY29s
Rm9yVGVzdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjbGVhckRlZmF1bHRQb3J0Rm9yUHJvdG9j
b2xNYXBGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmRlZmF1bHRQb3J0Rm9yUHJvdG9j
b2wpOgorICAgICAgICAoV2ViQ29yZTo6ZGVmYXVsdFBvcnRGb3JQcm90b2NvbE1hcEZvclRlc3Rp
bmdMb2NrKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpidWlsZE1lZGlhRW5naW5lc1ZlY3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjppbnN0YWxsZWRNZWRpYUVuZ2luZXMpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6OnJlc2V0TWVkaWFFbmdpbmVzKToKKyAgICAgICAgKFdlYkNvcmU6Om1lZGlh
RW5naW5lVmVjdG9yTG9jayk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zL1F1aWNr
TG9vay5tbToKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZVFMUHJldmlld0NvbnZlcnRlckZvclVS
TCk6CisgICAgICAgIChXZWJDb3JlOjphZGRRTFByZXZpZXdDb252ZXJ0ZXJXaXRoRmlsZUZvclVS
TCk6CisgICAgICAgIChXZWJDb3JlOjpxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgp
OiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJTUUxpdGVEYXRhYmFzZVRyYWNr
ZXJDbGllbnQubW06CisgICAgICAgICgrW1dlYkRhdGFiYXNlVHJhbnNhY3Rpb25CYWNrZ3JvdW5k
VGFza0NvbnRyb2xsZXIgc3RhcnRCYWNrZ3JvdW5kVGFza10pOgorICAgICAgICAoK1tXZWJEYXRh
YmFzZVRyYW5zYWN0aW9uQmFja2dyb3VuZFRhc2tDb250cm9sbGVyIGVuZEJhY2tncm91bmRUYXNr
XSk6CisgICAgICAgICh0cmFuc2FjdGlvbkJhY2tncm91bmRUYXNrSWRlbnRpZmllckxvY2spOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDdXJsU2hhcmVIYW5kbGU6OmxvY2tDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpDdXJsU2hhcmVIYW5kbGU6OnVubG9ja0NhbGxiYWNrKToKKyAgICAgICAg
KFdlYkNvcmU6OkN1cmxTaGFyZUhhbmRsZTo6bXV0ZXhGb3IpOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5oOgorCiAyMDE3LTEyLTA3ICBNaWNoYWVsIENhdGFu
emFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXVtHVEtdIFVwZGF0
ZSB1c2VyIGFnZW50IHF1aXJrIHZlcnNpb24gc3RyaW5ncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdl
TG9nCmluZGV4IDIzNGZmNjRkMTY2OTY3MTc1MTExOGJjZWYzYzBhMmRiM2IyMDQ3ODIuLmE3Y2Jh
YzIyNmI3ODc1OWM4YWJiYTVlYzc4YWZiNWZmZWM0NGE1NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNy0xMi0wNyAgWXVzdWtlIFN1enVraSAgPHV0
YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBVc2UgU3RhdGljTG9jayBpbnN0ZWFkIG9m
IE5ldmVyRGVzdHJveWVkPExvY2s+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODA1MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRpb25Db250ZW50Lm1t
OgorICAgICAgICAoLVtXZWJGaXhlZFBvc2l0aW9uQ29udGVudCBzY3JvbGxPclpvb21DaGFuZ2Vk
Ol0pOgorICAgICAgICAoLVtXZWJGaXhlZFBvc2l0aW9uQ29udGVudCBvdmVyZmxvd1Njcm9sbFBv
c2l0aW9uRm9yTGF5ZXI6Y2hhbmdlZFRvOl0pOgorICAgICAgICAoLVtXZWJGaXhlZFBvc2l0aW9u
Q29udGVudCBzZXRWaWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzOnN0aWNreUNvbnRhaW5lck1hcDpd
KToKKyAgICAgICAgKC1bV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQgaGFzRml4ZWRPclN0aWNreVBv
c2l0aW9uTGF5ZXJzXSk6CisgICAgICAgIChXZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFMb2Nr
KTogRGVsZXRlZC4KKwogMjAxNy0xMS0xMSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBhIEZJWE1FcyBpbiBXZWJGcmFtZUlPUwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IGIwN2VhZmI0YTlhY2Q0MDQ3ZjQyNTlhN2FhNjA0MjA0
YjA1OTk4ZDcuLjg3ZTc5MGExOTBjMTdjNjU3NWU1MTc5OTY1YTcyOTgyZDc2YzVmYWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNy0xMi0wNyAgWXVz
dWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBVc2UgU3RhdGlj
TG9jayBpbnN0ZWFkIG9mIE5ldmVyRGVzdHJveWVkPExvY2s+CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA1MDcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkxvY2FsaXphYmxlU3RyaW5ncy5jcHA6
CisgICAgICAgIChmaW5kQ2FjaGVkU3RyaW5nKToKKyAgICAgICAgKGNhY2hlU3RyaW5nKToKKyAg
ICAgICAgKG1haW5CdW5kbGVMb2NTdHJpbmdzKTogRGVsZXRlZC4KKyAgICAgICAgKGZyYW1ld29y
a0xvY1N0cmluZ3NNdXRleCk6IERlbGV0ZWQuCisKIDIwMTctMTItMDUgIFBlciBBcm5lIFZvbGxh
biAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXaW5dIFNjcm9sbGJhcnMgYXJlIHNv
bWV0aW1lcyBub3QgcmVuZGVyZWQgaW4gYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgbW9kZS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKaW5kZXgg
YmRlY2ZhMDE2ZTNlNzBlNzE2NWNmMDgyM2M4NjYxNzkyYzRiYzFkNS4uZGQ3NWEzZDRkNWE5MDc0
NDAwNjkxMjYwNDZmNzQ2ZjFkYzc3MGYwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKQEAgLTM0MSw3ICszNDEsNyBAQCBFeGNlcHRpb25P
cjx2b2lkPiBEYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRWZXJpZnkoYm9vbCBzaG91bGRTZXRWZXJz
aW9uSW5OZXdEYXRhYgogI2lmIFBMQVRGT1JNKElPUykKICAgICB7CiAgICAgICAgIC8vIE1ha2Ug
c3VyZSB3ZSB3YWl0IHRpbGwgdGhlIGJhY2tncm91bmQgcmVtb3ZhbCBvZiB0aGUgZW1wdHkgZGF0
YWJhc2UgZmlsZXMgZmluaXNoZWQgYmVmb3JlIHRyeWluZyB0byBvcGVuIGFueSBkYXRhYmFzZS4K
LSAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoRGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0YWJhc2VN
dXRleCgpKTsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhEYXRhYmFzZVRyYWNrZXI6
Om9wZW5EYXRhYmFzZU11dGV4KCkpOwogICAgIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKaW5kZXgg
ZmVhMWJlNWU1YjI3NDllMTdmYzIyMzBjMDY1ZjVmNDY1MWE4YzdjNy4uNDI3OTAzODA3YWEzMjEz
YjlmMjA0MDU3ODg1MzA5MGU1NTRiNWJmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcApAQCAtMTI3NSwyMiArMTI3
NSwyMiBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6ZGVsZXRlRGF0YWJhc2VGaWxlSWZFbXB0eShj
b25zdCBTdHJpbmcmIHBhdGgpCiAgICAgcmV0dXJuIFNRTGl0ZUZpbGVTeXN0ZW06OmRlbGV0ZURh
dGFiYXNlRmlsZShwYXRoKTsKIH0KIAotTG9jayYgRGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0YWJh
c2VNdXRleCgpCitzdGF0aWMgU3RhdGljTG9jayBvcGVuRGF0YWJhc2VMb2NrOworU3RhdGljTG9j
ayYgRGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0YWJhc2VNdXRleCgpCiB7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPExvY2s+IG11dGV4OwotICAgIHJldHVybiBtdXRleDsKKyAgICByZXR1cm4g
b3BlbkRhdGFiYXNlTG9jazsKIH0KIAogdm9pZCBEYXRhYmFzZVRyYWNrZXI6OmVtcHR5RGF0YWJh
c2VGaWxlc1JlbW92YWxUYXNrV2lsbEJlU2NoZWR1bGVkKCkKIHsKICAgICAvLyBMb2NrIHRoZSBk
YXRhYmFzZSBmcm9tIG9wZW5pbmcgYW55IGRhdGFiYXNlIHVudGlsIHdlIGFyZSBkb25lIHdpdGgg
c2Nhbm5pbmcgdGhlIGZpbGUgc3lzdGVtIGZvcgogICAgIC8vIHplcm8gYnl0ZSBkYXRhYmFzZSBm
aWxlcyB0byByZW1vdmUuCi0gICAgb3BlbkRhdGFiYXNlTXV0ZXgoKS5sb2NrKCk7CisgICAgb3Bl
bkRhdGFiYXNlTG9jay5sb2NrKCk7CiB9CiAKIHZvaWQgRGF0YWJhc2VUcmFja2VyOjplbXB0eURh
dGFiYXNlRmlsZXNSZW1vdmFsVGFza0RpZEZpbmlzaCgpCiB7Ci0gICAgb3BlbkRhdGFiYXNlTXV0
ZXgoKS51bmxvY2soKTsKKyAgICBvcGVuRGF0YWJhc2VMb2NrLnVubG9jaygpOwogfQogCiAjZW5k
aWYKQEAgLTEzMDAsMTEgKzEzMDAsNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6c2V0Q2xpZW50
KERhdGFiYXNlTWFuYWdlckNsaWVudCogY2xpZW50KQogICAgIG1fY2xpZW50ID0gY2xpZW50Owog
fQogCi1zdGF0aWMgTG9jayYgbm90aWZpY2F0aW9uTXV0ZXgoKQotewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxMb2NrPiBtdXRleDsKLSAgICByZXR1cm4gbXV0ZXg7Ci19CitzdGF0aWMgU3Rh
dGljTG9jayBub3RpZmljYXRpb25Mb2NrOwogCiB1c2luZyBOb3RpZmljYXRpb25RdWV1ZSA9IFZl
Y3RvcjxzdGQ6OnBhaXI8U2VjdXJpdHlPcmlnaW5EYXRhLCBTdHJpbmc+PjsKIApAQCAtMTMxNiw3
ICsxMzEyLDcgQEAgc3RhdGljIE5vdGlmaWNhdGlvblF1ZXVlJiBub3RpZmljYXRpb25RdWV1ZSgp
CiAKIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpzY2hlZHVsZU5vdGlmeURhdGFiYXNlQ2hhbmdlZChj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lKQogewot
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG5vdGlmaWNhdGlvbk11dGV4KCkpOworICAgIGF1dG8gbG9j
a2VyID0gaG9sZExvY2sobm90aWZpY2F0aW9uTG9jayk7CiAgICAgbm90aWZpY2F0aW9uUXVldWUo
KS5hcHBlbmQoc3RkOjptYWtlX3BhaXIob3JpZ2luLmlzb2xhdGVkQ29weSgpLCBuYW1lLmlzb2xh
dGVkQ29weSgpKSk7CiAgICAgc2NoZWR1bGVGb3JOb3RpZmljYXRpb24oKTsKIH0KQEAgLTEzMjUs
NyArMTMyMSw3IEBAIHN0YXRpYyBib29sIG5vdGlmaWNhdGlvblNjaGVkdWxlZCA9IGZhbHNlOwog
CiB2b2lkIERhdGFiYXNlVHJhY2tlcjo6c2NoZWR1bGVGb3JOb3RpZmljYXRpb24oKQogewotICAg
IEFTU0VSVCghbm90aWZpY2F0aW9uTXV0ZXgoKS50cnlMb2NrKCkpOworICAgIEFTU0VSVCghbm90
aWZpY2F0aW9uTG9jay50cnlMb2NrKCkpOwogCiAgICAgaWYgKCFub3RpZmljYXRpb25TY2hlZHVs
ZWQpIHsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbXSB7CkBAIC0xMzQzLDcgKzEzMzksNyBA
QCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6bm90aWZ5RGF0YWJhc2VzQ2hhbmdlZCgpCiAKICAgICBO
b3RpZmljYXRpb25RdWV1ZSBub3RpZmljYXRpb25zOwogICAgIHsKLSAgICAgICAgTG9ja0hvbGRl
ciBsb2NrZXIobm90aWZpY2F0aW9uTXV0ZXgoKSk7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2sobm90aWZpY2F0aW9uTG9jayk7CiAgICAgICAgIG5vdGlmaWNhdGlvbnMuc3dhcChub3Rp
ZmljYXRpb25RdWV1ZSgpKTsKICAgICAgICAgbm90aWZpY2F0aW9uU2NoZWR1bGVkID0gZmFsc2U7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZVRyYWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2VUcmFja2VyLmgKaW5kZXggYzc2NjE0ZjU0Y2FjZjRjMDM4NzYzZWZlZDA1YjI2MWYwYmE4
YjIzOS4uZDU4MDJhMTc4ZWFmY2U1ZDY2YmMyYWI3ZWRjZDE1ZDRhZmRjMDBiYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5o
CkBAIC0xMDAsNyArMTAwLDcgQEAgY2xhc3MgRGF0YWJhc2VUcmFja2VyIHsKICAgICAvLyBNb2Jp
bGVTYWZhcmkgd2lsbCBncmFiIHRoaXMgbXV0ZXggb24gdGhlIG1haW4gdGhyZWFkIGJlZm9yZSBk
aXNwYXRjaGluZyB0aGUgdGFzayB0byAKICAgICAvLyBjbGVhbiB1cCB6ZXJvIGJ5dGUgZGF0YWJh
c2UgZmlsZXMuICBBbnkgb3BlcmF0aW9ucyB0byBvcGVuIG5ldyBkYXRhYmFzZSB3aWxsIGhhdmUg
dG8KICAgICAvLyB3YWl0IGZvciB0aGF0IHRhc2sgdG8gZmluaXNoIGJ5IHdhaXRpbmcgb24gdGhp
cyBtdXRleC4KLSAgICBzdGF0aWMgTG9jayYgb3BlbkRhdGFiYXNlTXV0ZXgoKTsKKyAgICBzdGF0
aWMgU3RhdGljTG9jayYgb3BlbkRhdGFiYXNlTXV0ZXgoKTsKICAgICAKICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgdm9pZCBlbXB0eURhdGFiYXNlRmlsZXNSZW1vdmFsVGFza1dpbGxCZVNjaGVk
dWxlZCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGVtcHR5RGF0YWJhc2VGaWxl
c1JlbW92YWxUYXNrRGlkRmluaXNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9VUkwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcAppbmRleCAyZjM1
NWE5N2VkZDZlYTIxYzY0NGFiNzBiOTEwM2RlMmRlOTM5N2M5Li5kYzE5YTE0NjE5Nzg5NmZkZmRj
NDI3M2UzMWI2N2VkZmIwNzhkY2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9VUkwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAKQEAgLTI3NSwx
MSArMjc1LDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0UHJvdG9jb2xJc0dvb2QoU3RyaW5nVmlldyBw
cm90b2NvbCkKIAogI2VuZGlmCiAKLXN0YXRpYyBMb2NrJiBkZWZhdWx0UG9ydEZvclByb3RvY29s
TWFwRm9yVGVzdGluZ0xvY2soKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMb2NrPiBs
b2NrOwotICAgIHJldHVybiBsb2NrOwotfQorc3RhdGljIFN0YXRpY0xvY2sgZGVmYXVsdFBvcnRG
b3JQcm90b2NvbE1hcEZvclRlc3RpbmdMb2NrOwogCiB1c2luZyBEZWZhdWx0UG9ydEZvclByb3Rv
Y29sTWFwRm9yVGVzdGluZyA9IEhhc2hNYXA8U3RyaW5nLCB1aW50MTZfdD47CiBzdGF0aWMgRGVm
YXVsdFBvcnRGb3JQcm90b2NvbE1hcEZvclRlc3RpbmcqJiBkZWZhdWx0UG9ydEZvclByb3RvY29s
TWFwRm9yVGVzdGluZygpCkBAIC0yOTgsMTMgKzI5NCwxMyBAQCBzdGF0aWMgRGVmYXVsdFBvcnRG
b3JQcm90b2NvbE1hcEZvclRlc3RpbmcmIGVuc3VyZURlZmF1bHRQb3J0Rm9yUHJvdG9jb2xNYXBG
b3JUZQogCiB2b2lkIHJlZ2lzdGVyRGVmYXVsdFBvcnRGb3JQcm90b2NvbEZvclRlc3RpbmcodWlu
dDE2X3QgcG9ydCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCkKIHsKLSAgICBMb2NrSG9sZGVyIGxv
Y2tlcihkZWZhdWx0UG9ydEZvclByb3RvY29sTWFwRm9yVGVzdGluZ0xvY2soKSk7CisgICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhkZWZhdWx0UG9ydEZvclByb3RvY29sTWFwRm9yVGVzdGluZ0xv
Y2spOwogICAgIGVuc3VyZURlZmF1bHRQb3J0Rm9yUHJvdG9jb2xNYXBGb3JUZXN0aW5nKCkuYWRk
KHByb3RvY29sLCBwb3J0KTsKIH0KIAogdm9pZCBjbGVhckRlZmF1bHRQb3J0Rm9yUHJvdG9jb2xN
YXBGb3JUZXN0aW5nKCkKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihkZWZhdWx0UG9ydEZvclBy
b3RvY29sTWFwRm9yVGVzdGluZ0xvY2soKSk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhk
ZWZhdWx0UG9ydEZvclByb3RvY29sTWFwRm9yVGVzdGluZ0xvY2spOwogICAgIGlmIChhdXRvKiBt
YXAgPSBkZWZhdWx0UG9ydEZvclByb3RvY29sTWFwRm9yVGVzdGluZygpKQogICAgICAgICBtYXAt
PmNsZWFyKCk7CiB9CkBAIC0zMTIsNyArMzA4LDcgQEAgdm9pZCBjbGVhckRlZmF1bHRQb3J0Rm9y
UHJvdG9jb2xNYXBGb3JUZXN0aW5nKCkKIHN0ZDo6b3B0aW9uYWw8dWludDE2X3Q+IGRlZmF1bHRQ
b3J0Rm9yUHJvdG9jb2woU3RyaW5nVmlldyBwcm90b2NvbCkKIHsKICAgICBpZiAoYXV0byogb3Zl
cnJpZGVNYXAgPSBkZWZhdWx0UG9ydEZvclByb3RvY29sTWFwRm9yVGVzdGluZygpKSB7Ci0gICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKGRlZmF1bHRQb3J0Rm9yUHJvdG9jb2xNYXBGb3JUZXN0aW5n
TG9jaygpKTsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhkZWZhdWx0UG9ydEZvclBy
b3RvY29sTWFwRm9yVGVzdGluZ0xvY2spOwogICAgICAgICBBU1NFUlQob3ZlcnJpZGVNYXApOyAv
LyBObyBuZWVkIHRvIG51bGwgY2hlY2sgYWdhaW4gaGVyZSBzaW5jZSBvdmVycmlkZU1hcCBjYW5u
b3QgYmVjb21lIG51bGwgYWZ0ZXIgYmVpbmcgbm9uLW51bGwuCiAgICAgICAgIGF1dG8gaXRlcmF0
b3IgPSBvdmVycmlkZU1hcC0+ZmluZChwcm90b2NvbC50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkp
OwogICAgICAgICBpZiAoaXRlcmF0b3IgIT0gb3ZlcnJpZGVNYXAtPmVuZCgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDM1YzVh
NWVmNGM2ZWE3MGQ0OThmYTNmNjUyNWFmZjIyNmRiN2ZkZTUuLjRhNDczYWY4NGU1MTk2OWRkOGQ4
MDk5NDFiNjYzZjUxMGM1NDQwMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTIxMCwxMSArMjEwLDcgQEAgc3RydWN0IE1lZGlh
UGxheWVyRmFjdG9yeSB7CiAKIHN0YXRpYyB2b2lkIGFkZE1lZGlhRW5naW5lKENyZWF0ZU1lZGlh
RW5naW5lUGxheWVyJiYsIE1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5lU3Vw
cG9ydHNUeXBlLCBNZWRpYUVuZ2luZU9yaWdpbnNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xl
YXJNZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZvck9yaWdpbnMsIE1lZGlh
RW5naW5lU3VwcG9ydHNLZXlTeXN0ZW0pOwogCi1zdGF0aWMgTG9jayYgbWVkaWFFbmdpbmVWZWN0
b3JMb2NrKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TG9jaz4gbG9jazsKLSAgICBy
ZXR1cm4gbG9jazsKLX0KK3N0YXRpYyBTdGF0aWNMb2NrIG1lZGlhRW5naW5lVmVjdG9yTG9jazsK
IAogc3RhdGljIGJvb2wmIGhhdmVNZWRpYUVuZ2luZXNWZWN0b3IoKQogewpAQCAtMjMwLDcgKzIy
Niw3IEBAIHN0YXRpYyBWZWN0b3I8TWVkaWFQbGF5ZXJGYWN0b3J5PiYgbXV0YWJsZUluc3RhbGxl
ZE1lZGlhRW5naW5lc1ZlY3RvcigpCiAKIHN0YXRpYyB2b2lkIGJ1aWxkTWVkaWFFbmdpbmVzVmVj
dG9yKCkKIHsKLSAgICBBU1NFUlQobWVkaWFFbmdpbmVWZWN0b3JMb2NrKCkuaXNMb2NrZWQoKSk7
CisgICAgQVNTRVJUKG1lZGlhRW5naW5lVmVjdG9yTG9jay5pc0xvY2tlZCgpKTsKIAogI2lmIFVT
RShBVkZPVU5EQVRJT04pCiAgICAgaWYgKERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6aXNBVkZv
dW5kYXRpb25FbmFibGVkKCkpIHsKQEAgLTI3Niw3ICsyNzIsNyBAQCBzdGF0aWMgdm9pZCBidWls
ZE1lZGlhRW5naW5lc1ZlY3RvcigpCiBzdGF0aWMgY29uc3QgVmVjdG9yPE1lZGlhUGxheWVyRmFj
dG9yeT4mIGluc3RhbGxlZE1lZGlhRW5naW5lcygpCiB7CiAgICAgewotICAgICAgICBMb2NrSG9s
ZGVyIGxvY2sobWVkaWFFbmdpbmVWZWN0b3JMb2NrKCkpOworICAgICAgICBhdXRvIGxvY2tlciA9
IGhvbGRMb2NrKG1lZGlhRW5naW5lVmVjdG9yTG9jayk7CiAgICAgICAgIGlmICghaGF2ZU1lZGlh
RW5naW5lc1ZlY3RvcigpKQogICAgICAgICAgICAgYnVpbGRNZWRpYUVuZ2luZXNWZWN0b3IoKTsK
ICAgICB9CkBAIC0xMzg4LDcgKzEzODQsNyBAQCBWZWN0b3I8UmVmUHRyPFBsYXRmb3JtVGV4dFRy
YWNrPj4gTWVkaWFQbGF5ZXI6Om91dE9mQmFuZFRyYWNrU291cmNlcygpCiAKIHZvaWQgTWVkaWFQ
bGF5ZXI6OnJlc2V0TWVkaWFFbmdpbmVzKCkKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2sobWVkaWFF
bmdpbmVWZWN0b3JMb2NrKCkpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobWVkaWFFbmdp
bmVWZWN0b3JMb2NrKTsKIAogICAgIG11dGFibGVJbnN0YWxsZWRNZWRpYUVuZ2luZXNWZWN0b3Io
KS5jbGVhcigpOwogICAgIGhhdmVNZWRpYUVuZ2luZXNWZWN0b3IoKSA9IGZhbHNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1F1aWNrTG9vay5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9RdWlja0xvb2subW0KaW5kZXggZDNkZjhlZWVmZmUxNjg0YTM1
ZTViODQ1YTA1YTQ3NTE4NTMzNDFhZi4uZjNiMGRmNmQxNTEzNGFmZmQzOWFlMGFlMWVhZWEyMzkw
ZTMyYzA3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1F1aWNrTG9v
ay5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUXVpY2tMb29rLm1tCkBAIC00
NiwxMSArNDYsNyBAQCBOU1NldCAqUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzU2V0KCkK
ICAgICByZXR1cm4gc2V0OwogfQogCi1zdGF0aWMgTG9jayYgcWxQcmV2aWV3Q29udmVydGVyRGlj
dGlvbmFyeU11dGV4KCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TG9jaz4gbXV0ZXg7
Ci0gICAgcmV0dXJuIG11dGV4OwotfQorc3RhdGljIFN0YXRpY0xvY2sgcWxQcmV2aWV3Q29udmVy
dGVyRGljdGlvbmFyeUxvY2s7CiAKIHN0YXRpYyBOU011dGFibGVEaWN0aW9uYXJ5ICpRTFByZXZp
ZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5KCkKIHsKQEAgLTY2LDcgKzYyLDcgQEAgc3RhdGljIE5TTXV0
YWJsZURpY3Rpb25hcnkgKlFMQ29udGVudERpY3Rpb25hcnkoKQogCiB2b2lkIHJlbW92ZVFMUHJl
dmlld0NvbnZlcnRlckZvclVSTChOU1VSTCAqdXJsKQogewotICAgIExvY2tIb2xkZXIgbG9jayhx
bFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgoKSk7CisgICAgYXV0byBsb2NrZXIgPSBo
b2xkTG9jayhxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TG9jayk7CiAgICAgW1FMUHJldmll
d0NvbnZlcnRlckRpY3Rpb25hcnkoKSByZW1vdmVPYmplY3RGb3JLZXk6dXJsXTsKICAgICBbUUxD
b250ZW50RGljdGlvbmFyeSgpIHJlbW92ZU9iamVjdEZvcktleTp1cmxdOwogfQpAQCAtNzUsNyAr
NzEsNyBAQCBzdGF0aWMgdm9pZCBhZGRRTFByZXZpZXdDb252ZXJ0ZXJXaXRoRmlsZUZvclVSTChO
U1VSTCAqdXJsLCBpZCBjb252ZXJ0ZXIsIE5TU3RyaQogewogICAgIEFTU0VSVCh1cmwpOwogICAg
IEFTU0VSVChjb252ZXJ0ZXIpOwotICAgIExvY2tIb2xkZXIgbG9jayhxbFByZXZpZXdDb252ZXJ0
ZXJEaWN0aW9uYXJ5TXV0ZXgoKSk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhxbFByZXZp
ZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TG9jayk7CiAgICAgW1FMUHJldmlld0NvbnZlcnRlckRpY3Rp
b25hcnkoKSBzZXRPYmplY3Q6Y29udmVydGVyIGZvcktleTp1cmxdOwogICAgIFtRTENvbnRlbnRE
aWN0aW9uYXJ5KCkgc2V0T2JqZWN0OihmaWxlTmFtZSA/IGZpbGVOYW1lIDogQCIiKSBmb3JLZXk6
dXJsXTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJTUUxp
dGVEYXRhYmFzZVRyYWNrZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50Lm1tCmluZGV4IDRiZDNmYTFmNjE2YTlmNmQx
OGVmYTkzNDAzNWExMDBlOGExNDZmMmQuLjk2ZmNiZjFjOGU1NzRkZWI0YWE0MzBkMTZhYWZmNjc0
MGJmZDhkMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJTUUxp
dGVEYXRhYmFzZVRyYWNrZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudC5tbQpAQCAtODQsMTEgKzg0LDcgQEAg
dm9pZCBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQ6Omh5c3RlcmVzaXNVcGRhdGVkKFBB
TDo6SHlzdGVyZXNpc1N0YXRlIHN0YXQKIAogfQogCi1zdGF0aWMgTG9jayYgdHJhbnNhY3Rpb25C
YWNrZ3JvdW5kVGFza0lkZW50aWZpZXJMb2NrKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8TG9jaz4gbXV0ZXg7Ci0gICAgcmV0dXJuIG11dGV4OwotfQorc3RhdGljIFN0YXRpY0xvY2sg
dHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJMb2NrOwogCiBzdGF0aWMgTlNVSW50
ZWdlciB0cmFuc2FjdGlvbkJhY2tncm91bmRUYXNrSWRlbnRpZmllcjsKIApAQCAtMTExLDcgKzEw
Nyw3IEBAIEBpbXBsZW1lbnRhdGlvbiBXZWJEYXRhYmFzZVRyYW5zYWN0aW9uQmFja2dyb3VuZFRh
c2tDb250cm9sbGVyCiAKICsgKHZvaWQpc3RhcnRCYWNrZ3JvdW5kVGFzawogewotICAgIExvY2tI
b2xkZXIgbG9jayh0cmFuc2FjdGlvbkJhY2tncm91bmRUYXNrSWRlbnRpZmllckxvY2soKSk7Cisg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayh0cmFuc2FjdGlvbkJhY2tncm91bmRUYXNrSWRlbnRp
ZmllckxvY2spOwogCiAgICAgLy8gSWYgdGhlcmUncyBhbHJlYWR5IGFuIGV4aXN0aW5nIGJhY2tn
cm91bmQgdGFzayBnb2luZyBvbiwgdGhlcmUncyBubyBuZWVkIHRvIHN0YXJ0IGEgbmV3IG9uZS4K
ICAgICBXZWJCYWNrZ3JvdW5kVGFza0NvbnRyb2xsZXIgKmJhY2tncm91bmRUYXNrQ29udHJvbGxl
ciA9IFtXZWJCYWNrZ3JvdW5kVGFza0NvbnRyb2xsZXIgc2hhcmVkQ29udHJvbGxlcl07CkBAIC0x
MjYsNyArMTIyLDcgQEAgKyAodm9pZClzdGFydEJhY2tncm91bmRUYXNrCiAKICsgKHZvaWQpZW5k
QmFja2dyb3VuZFRhc2sKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2sodHJhbnNhY3Rpb25CYWNrZ3Jv
dW5kVGFza0lkZW50aWZpZXJMb2NrKCkpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sodHJh
bnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJMb2NrKTsKIAogICAgIC8vIEl0IGlzIHBv
c3NpYmxlIHRoYXQgd2Ugd2VyZSB1bmFibGUgdG8gc3RhcnQgdGhlIGJhY2tncm91bmQgdGFzayB3
aGVuIHRoZSBmaXJzdCB0cmFuc2FjdGlvbiBiZWdhbi4KICAgICAvLyBEb24ndCB0cnkgdG8gZW5k
IHRoZSB0YXNrIGluIHRoYXQgY2FzZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCmluZGV4IGRlYTM2MDJjODMwMGY4YWMyZGJi
Y2Y1Yzc4MGZiYmZiZDM4OWI0MjMuLjhiY2QwOGRlMzVjMTgzYzBmNmQ5YTg3NTc3ZmRiYzA0MWE1
NmMwNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9D
dXJsQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L0N1cmxDb250ZXh0LmNwcApAQCAtMTc4LDI5ICsxNzgsMjkgQEAgQ3VybFNoYXJlSGFuZGxlOjp+
Q3VybFNoYXJlSGFuZGxlKCkKIAogdm9pZCBDdXJsU2hhcmVIYW5kbGU6OmxvY2tDYWxsYmFjayhD
VVJMKiwgY3VybF9sb2NrX2RhdGEgZGF0YSwgY3VybF9sb2NrX2FjY2Vzcywgdm9pZCopCiB7Ci0g
ICAgaWYgKExvY2sqIG11dGV4ID0gbXV0ZXhGb3IoZGF0YSkpCisgICAgaWYgKGF1dG8qIG11dGV4
ID0gbXV0ZXhGb3IoZGF0YSkpCiAgICAgICAgIG11dGV4LT5sb2NrKCk7CiB9CiAKIHZvaWQgQ3Vy
bFNoYXJlSGFuZGxlOjp1bmxvY2tDYWxsYmFjayhDVVJMKiwgY3VybF9sb2NrX2RhdGEgZGF0YSwg
dm9pZCopCiB7Ci0gICAgaWYgKExvY2sqIG11dGV4ID0gbXV0ZXhGb3IoZGF0YSkpCisgICAgaWYg
KGF1dG8qIG11dGV4ID0gbXV0ZXhGb3IoZGF0YSkpCiAgICAgICAgIG11dGV4LT51bmxvY2soKTsK
IH0KIAotTG9jayogQ3VybFNoYXJlSGFuZGxlOjptdXRleEZvcihjdXJsX2xvY2tfZGF0YSBkYXRh
KQorU3RhdGljTG9jayogQ3VybFNoYXJlSGFuZGxlOjptdXRleEZvcihjdXJsX2xvY2tfZGF0YSBk
YXRhKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMb2NrPiBjb29raWVNdXRleDsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TG9jaz4gZG5zTXV0ZXg7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPExvY2s+IHNoYXJlTXV0ZXg7CisgICAgc3RhdGljIFN0YXRpY0xvY2sgY29va2ll
TXV0ZXg7CisgICAgc3RhdGljIFN0YXRpY0xvY2sgZG5zTXV0ZXg7CisgICAgc3RhdGljIFN0YXRp
Y0xvY2sgc2hhcmVNdXRleDsKIAogICAgIHN3aXRjaCAoZGF0YSkgewogICAgIGNhc2UgQ1VSTF9M
T0NLX0RBVEFfQ09PS0lFOgotICAgICAgICByZXR1cm4gJmNvb2tpZU11dGV4LmdldCgpOworICAg
ICAgICByZXR1cm4gJmNvb2tpZU11dGV4OwogICAgIGNhc2UgQ1VSTF9MT0NLX0RBVEFfRE5TOgot
ICAgICAgICByZXR1cm4gJmRuc011dGV4LmdldCgpOworICAgICAgICByZXR1cm4gJmRuc011dGV4
OwogICAgIGNhc2UgQ1VSTF9MT0NLX0RBVEFfU0hBUkU6Ci0gICAgICAgIHJldHVybiAmc2hhcmVN
dXRleC5nZXQoKTsKKyAgICAgICAgcmV0dXJuICZzaGFyZU11dGV4OwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmgK
aW5kZXggOTJkM2JhYzZmYzBmOTlmNDgyY2Q5ZjllYWI2NDYzNWQwYjU1MjFjNS4uOTY4NDY1Mzc4
MDc0YzhmMjczYWExY2RmZGFjYTQ5YjA5OTBkNDI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmgKQEAgLTgzLDcgKzgzLDcgQEAg
Y2xhc3MgQ3VybFNoYXJlSGFuZGxlIHsKIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgbG9ja0Nh
bGxiYWNrKENVUkwqLCBjdXJsX2xvY2tfZGF0YSwgY3VybF9sb2NrX2FjY2Vzcywgdm9pZCopOwog
ICAgIHN0YXRpYyB2b2lkIHVubG9ja0NhbGxiYWNrKENVUkwqLCBjdXJsX2xvY2tfZGF0YSwgdm9p
ZCopOwotICAgIHN0YXRpYyBMb2NrKiBtdXRleEZvcihjdXJsX2xvY2tfZGF0YSk7CisgICAgc3Rh
dGljIFN0YXRpY0xvY2sqIG11dGV4Rm9yKGN1cmxfbG9ja19kYXRhKTsKIAogICAgIENVUkxTSCog
bV9zaGFyZUhhbmRsZSB7IG51bGxwdHIgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVudC5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRpb25Db250
ZW50Lm1tCmluZGV4IGY1ZDM1OTI5ZTdjNGFlMTNhZWJmNGE5ZDkxMzg2NTE5M2IwNTg3ZTIuLmYy
N2RiYTc4M2FmYjVjYzkxMDkzNWQ0ZjU5ZDkxZTRlMDY3YjhkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRpb25Db250ZW50
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkZpeGVk
UG9zaXRpb25Db250ZW50Lm1tCkBAIC00OSwxMSArNDksNyBAQAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCi1zdGF0aWMgTG9jayYgV2ViRml4ZWRQb3Np
dGlvbkNvbnRlbnREYXRhTG9jaygpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExvY2s+
IG11dGV4OwotICAgIHJldHVybiBtdXRleDsKLX0KK3N0YXRpYyBTdGF0aWNMb2NrIHdlYkZpeGVk
UG9zaXRpb25Db250ZW50RGF0YUxvY2s7CiAKIHN0cnVjdCBWaWV3cG9ydENvbnN0cmFpbmVkTGF5
ZXJEYXRhIHsKICAgICBWaWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJEYXRhKCkKQEAgLTEwNCw3ICsx
MDAsNyBAQCAtICh2b2lkKWRlYWxsb2MKIAogLSAodm9pZClzY3JvbGxPclpvb21DaGFuZ2VkOihD
R1JlY3QpcG9zaXRpb25lZE9iamVjdHNSZWN0CiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrKFdlYkZp
eGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2soKSk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9j
ayh3ZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFMb2NrKTsKIAogICAgIExheWVySW5mb01hcDo6
Y29uc3RfaXRlcmF0b3IgZW5kID0gX3ByaXZhdGUtPm1fdmlld3BvcnRDb25zdHJhaW5lZExheWVy
cy5lbmQoKTsKICAgICBmb3IgKExheWVySW5mb01hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBfcHJp
dmF0ZS0+bV92aWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytp
dCkgewpAQCAtMTQzLDcgKzEzOSw3IEBAIC0gKHZvaWQpc2Nyb2xsT3Jab29tQ2hhbmdlZDooQ0dS
ZWN0KXBvc2l0aW9uZWRPYmplY3RzUmVjdAogCiAtICh2b2lkKW92ZXJmbG93U2Nyb2xsUG9zaXRp
b25Gb3JMYXllcjooQ0FMYXllciAqKXNjcm9sbExheWVyIGNoYW5nZWRUbzooQ0dQb2ludClzY3Jv
bGxQb3NpdGlvbgogewotICAgIExvY2tIb2xkZXIgbG9jayhXZWJGaXhlZFBvc2l0aW9uQ29udGVu
dERhdGFMb2NrKCkpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sod2ViRml4ZWRQb3NpdGlv
bkNvbnRlbnREYXRhTG9jayk7CiAKICAgICBMYXllckluZm9NYXA6OmNvbnN0X2l0ZXJhdG9yIGVu
ZCA9IF9wcml2YXRlLT5tX3ZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnMuZW5kKCk7CiAgICAgZm9y
IChMYXllckluZm9NYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gX3ByaXZhdGUtPm1fdmlld3BvcnRD
b25zdHJhaW5lZExheWVycy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKQEAgLTE3Niw3ICsx
NzIsNyBAQCAtICh2b2lkKWRpZEZpbmlzaFNjcm9sbGluZ09yWm9vbWluZwogCiAtICh2b2lkKXNl
dFZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnM6KFdURjo6SGFzaE1hcDxDQUxheWVyICosIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpWaWV3cG9ydENvbnN0cmFpbnRzPj4mKWxheWVyTWFwIHN0aWNr
eUNvbnRhaW5lck1hcDooV1RGOjpIYXNoTWFwPENBTGF5ZXIqLCBDQUxheWVyKj4mKXN0aWNreUNv
bnRhaW5lcnMKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2soV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnRE
YXRhTG9jaygpKTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKHdlYkZpeGVkUG9zaXRpb25D
b250ZW50RGF0YUxvY2spOwogCiAgICAgX3ByaXZhdGUtPm1fdmlld3BvcnRDb25zdHJhaW5lZExh
eWVycy5jbGVhcigpOwogCkBAIC0xOTMsNyArMTg5LDcgQEAgLSAodm9pZClzZXRWaWV3cG9ydENv
bnN0cmFpbmVkTGF5ZXJzOihXVEY6Okhhc2hNYXA8Q0FMYXllciAqLCBzdGQ6OnVuaXF1ZV9wdHI8
V2UKIAogLSAoQk9PTCloYXNGaXhlZE9yU3RpY2t5UG9zaXRpb25MYXllcnMKIHsKLSAgICBMb2Nr
SG9sZGVyIGxvY2soV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jaygpKTsKKyAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKHdlYkZpeGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2spOwogICAg
IHJldHVybiAhX3ByaXZhdGUtPm1fdmlld3BvcnRDb25zdHJhaW5lZExheWVycy5pc0VtcHR5KCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkxvY2FsaXphYmxl
U3RyaW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJMb2NhbGl6YWJsZVN0cmlu
Z3MuY3BwCmluZGV4IGI3NTczOTE1OWZlZmQyMWVkNmZhMzM2ODg4MGExOWI5YmMxNDIxZTEuLjJl
MzExZWUwN2ZmNmEwMGE2OWRiNmU1M2Y1MmFhZjEzNTgwYzg4Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkxvY2FsaXphYmxlU3RyaW5ncy5jcHAKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViTG9jYWxpemFibGVTdHJpbmdzLmNwcApAQCAtNDUsMTEgKzQ1
LDcgQEAgV2ViTG9jYWxpemFibGVTdHJpbmdzQnVuZGxlIFdlYktpdExvY2FsaXphYmxlU3RyaW5n
c0J1bmRsZSA9IHsgImNvbS5hcHBsZS5XZWJLaXQKIAogdHlwZWRlZiBIYXNoTWFwPFN0cmluZywg
TG9jYWxpemVkU3RyaW5nKj4gTG9jYWxpemVkU3RyaW5nTWFwOwogCi1zdGF0aWMgTG9jayYgbWFp
bkJ1bmRsZUxvY1N0cmluZ3NNdXRleCgpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPExv
Y2s+IG11dGV4OwotICAgIHJldHVybiBtdXRleDsKLX0KK3N0YXRpYyBTdGF0aWNMb2NrIG1haW5C
dW5kbGVMb2NTdHJpbmdzTG9jazsKIAogc3RhdGljIExvY2FsaXplZFN0cmluZ01hcCYgbWFpbkJ1
bmRsZUxvY1N0cmluZ3MoKQogewpAQCAtNTcsMTEgKzUzLDcgQEAgc3RhdGljIExvY2FsaXplZFN0
cmluZ01hcCYgbWFpbkJ1bmRsZUxvY1N0cmluZ3MoKQogICAgIHJldHVybiBtYXA7CiB9CiAKLXN0
YXRpYyBMb2NrJiBmcmFtZXdvcmtMb2NTdHJpbmdzTXV0ZXgoKQotewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxMb2NrPiBtdXRleDsKLSAgICByZXR1cm4gbXV0ZXg7Ci19CitzdGF0aWMgU3Rh
dGljTG9jayBmcmFtZXdvcmtMb2NTdHJpbmdzTG9jazsKIAogc3RhdGljIExvY2FsaXplZFN0cmlu
Z01hcCBmcmFtZXdvcmtMb2NTdHJpbmdzKCkKIHsKQEAgLTE3NiwxMiArMTY4LDEyIEBAIHN0YXRp
YyBDRlN0cmluZ1JlZiBjb3B5TG9jYWxpemVkU3RyaW5nRnJvbUJ1bmRsZShXZWJMb2NhbGl6YWJs
ZVN0cmluZ3NCdW5kbGUqIHN0CiBzdGF0aWMgTG9jYWxpemVkU3RyaW5nKiBmaW5kQ2FjaGVkU3Ry
aW5nKFdlYkxvY2FsaXphYmxlU3RyaW5nc0J1bmRsZSogc3RyaW5nc0J1bmRsZSwgY29uc3QgU3Ry
aW5nJiBrZXkpCiB7CiAgICAgaWYgKCFzdHJpbmdzQnVuZGxlKSB7Ci0gICAgICAgIExvY2tIb2xk
ZXIgbG9jayhtYWluQnVuZGxlTG9jU3RyaW5nc011dGV4KCkpOworICAgICAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKG1haW5CdW5kbGVMb2NTdHJpbmdzTG9jayk7CiAgICAgICAgIHJldHVybiBt
YWluQnVuZGxlTG9jU3RyaW5ncygpLmdldChrZXkpOwogICAgIH0KIAogICAgIGlmIChzdHJpbmdz
QnVuZGxlLT5idW5kbGUgPT0gV2ViS2l0TG9jYWxpemFibGVTdHJpbmdzQnVuZGxlLmJ1bmRsZSkg
ewotICAgICAgICBMb2NrSG9sZGVyIGxvY2soZnJhbWV3b3JrTG9jU3RyaW5nc011dGV4KCkpOwor
ICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKGZyYW1ld29ya0xvY1N0cmluZ3NMb2NrKTsK
ICAgICAgICAgcmV0dXJuIGZyYW1ld29ya0xvY1N0cmluZ3MoKS5nZXQoa2V5KTsKICAgICB9CiAK
QEAgLTE5MSwxMiArMTgzLDEyIEBAIHN0YXRpYyBMb2NhbGl6ZWRTdHJpbmcqIGZpbmRDYWNoZWRT
dHJpbmcoV2ViTG9jYWxpemFibGVTdHJpbmdzQnVuZGxlKiBzdHJpbmdzQnVuCiBzdGF0aWMgdm9p
ZCBjYWNoZVN0cmluZyhXZWJMb2NhbGl6YWJsZVN0cmluZ3NCdW5kbGUqIHN0cmluZ3NCdW5kbGUs
IGNvbnN0IFN0cmluZyYga2V5LCBMb2NhbGl6ZWRTdHJpbmcqIHZhbHVlKQogewogICAgIGlmICgh
c3RyaW5nc0J1bmRsZSkgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2sobWFpbkJ1bmRsZUxvY1N0
cmluZ3NNdXRleCgpKTsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtYWluQnVuZGxl
TG9jU3RyaW5nc0xvY2spOwogICAgICAgICBtYWluQnVuZGxlTG9jU3RyaW5ncygpLnNldChrZXks
IHZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIExvY2tIb2xkZXIgbG9jayhm
cmFtZXdvcmtMb2NTdHJpbmdzTXV0ZXgoKSk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhm
cmFtZXdvcmtMb2NTdHJpbmdzTG9jayk7CiAgICAgZnJhbWV3b3JrTG9jU3RyaW5ncygpLnNldChr
ZXksIHZhbHVlKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGYyMTFjMTI5NmMyZmYzYWM4NzQ0NWI5NmM4ZWEwMjNmN2Q2M2VhNDAuLmM3
MzZmMGZkNDBkZWVhMGNkN2UzODZlYzAzNjIwNWZlOGIxYWFkMDggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNy0x
Mi0wNyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBV
c2UgU3RhdGljTG9jayBpbnN0ZWFkIG9mIE5ldmVyRGVzdHJveWVkPExvY2s+CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA1MDcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0ph
dmFTY3JpcHRUaHJlYWRpbmcuY3BwOgorICAgICAgICAoamF2YVNjcmlwdFRocmVhZHMpOgorICAg
ICAgICAocnVuSmF2YVNjcmlwdFRocmVhZCk6CisgICAgICAgIChzdGFydEphdmFTY3JpcHRUaHJl
YWRzKToKKyAgICAgICAgKHN0b3BKYXZhU2NyaXB0VGhyZWFkcyk6CisgICAgICAgIChqYXZhU2Ny
aXB0VGhyZWFkc011dGV4KTogRGVsZXRlZC4KKwogMjAxNy0xMi0wNiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIHJlY292ZXIg
YWZ0ZXIgYSBTZXJ2aWNlIFdvcmtlciBwcm9jZXNzIGNyYXNoCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL0phdmFTY3JpcHRUaHJlYWRpbmcuY3BwCmluZGV4IDUzNTE3YmYwNjk0ZTBmMWNlNmY0YWRk
OTQ1ZDhmYmFkNzc1YTA1MWQuLjgwYTA4MmJkMWY2YzI2ZDg1M2NiYWI3MWI1MjFiMTFlY2I0NmU3
ZDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0phdmFTY3JpcHRUaHJlYWRpbmcu
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0phdmFTY3JpcHRUaHJlYWRpbmcuY3BwCkBA
IC00NSwxOCArNDUsMTMgQEAKIHN0YXRpYyBjb25zdCBzaXplX3QgamF2YVNjcmlwdFRocmVhZHND
b3VudCA9IDQ7CiBzdGF0aWMgYm9vbCBqYXZhU2NyaXB0VGhyZWFkc1Nob3VsZFRlcm1pbmF0ZTsK
IHN0YXRpYyBKU0NvbnRleHRHcm91cFJlZiBqYXZhU2NyaXB0VGhyZWFkc0dyb3VwOwotCi1zdGF0
aWMgTG9jayYgamF2YVNjcmlwdFRocmVhZHNNdXRleCgpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPExvY2s+IHN0YXRpY011dGV4OwotICAgIHJldHVybiBzdGF0aWNNdXRleDsKLX0KK3N0
YXRpYyBTdGF0aWNMb2NrIGphdmFTY3JpcHRUaHJlYWRzTG9jazsKIAogdHlwZWRlZiBIYXNoU2V0
PFJlZlB0cjxUaHJlYWQ+PiBUaHJlYWRTZXQ7CiBzdGF0aWMgVGhyZWFkU2V0JiBqYXZhU2NyaXB0
VGhyZWFkcygpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFRocmVhZFNldD4gc3RhdGlj
SmF2YVNjcmlwdFRocmVhZHM7Ci0gICAgQVNTRVJUKCFqYXZhU2NyaXB0VGhyZWFkc011dGV4KCku
dHJ5TG9jaygpKTsKKyAgICBBU1NFUlQoIWphdmFTY3JpcHRUaHJlYWRzTG9jay50cnlMb2NrKCkp
OwogICAgIHJldHVybiBzdGF0aWNKYXZhU2NyaXB0VGhyZWFkczsKIH0KIApAQCAtNzIsMjYgKzY3
LDI2IEBAIHZvaWQgcnVuSmF2YVNjcmlwdFRocmVhZCgpCiAKICAgICBKU0dsb2JhbENvbnRleHRS
ZWYgY3R4OwogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVh
ZHNNdXRleCgpKTsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhqYXZhU2NyaXB0VGhy
ZWFkc0xvY2spOwogICAgICAgICBjdHggPSBKU0dsb2JhbENvbnRleHRDcmVhdGVJbkdyb3VwKGph
dmFTY3JpcHRUaHJlYWRzR3JvdXAsIDApOwogICAgIH0KIAogICAgIEpTU3RyaW5nUmVmIHNjcmlw
dFJlZjsKICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRz
TXV0ZXgoKSk7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soamF2YVNjcmlwdFRocmVh
ZHNMb2NrKTsKICAgICAgICAgc2NyaXB0UmVmID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJp
bmcoc2NyaXB0KTsKICAgICB9CiAKICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICB7Ci0gICAg
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAg
ICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhqYXZhU2NyaXB0VGhyZWFkc0xvY2spOwog
ICAgICAgICAgICAgSlNWYWx1ZVJlZiBleGNlcHRpb24gPSAwOwogICAgICAgICAgICAgSlNFdmFs
dWF0ZVNjcmlwdChjdHgsIHNjcmlwdFJlZiwgMCwgMCwgMSwgJmV4Y2VwdGlvbik7CiAgICAgICAg
ICAgICBBU1NFUlQoIWV4Y2VwdGlvbik7CiAgICAgICAgIH0KIAogICAgICAgICB7Ci0gICAgICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgICAg
ICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhqYXZhU2NyaXB0VGhyZWFkc0xvY2spOwogICAg
ICAgICAgICAgY29uc3Qgc2l6ZV90IHZhbHVlc0NvdW50ID0gMTAyNDsKICAgICAgICAgICAgIEpT
VmFsdWVSZWYgdmFsdWVzW3ZhbHVlc0NvdW50XTsKICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgdmFsdWVzQ291bnQ7ICsraSkKQEAgLTk5LDcgKzk0LDcgQEAgdm9pZCBydW5KYXZh
U2NyaXB0VGhyZWFkKCkKICAgICAgICAgfQogCiAgICAgICAgIHsKLSAgICAgICAgICAgIExvY2tI
b2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CisgICAgICAgICAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKGphdmFTY3JpcHRUaHJlYWRzTG9jayk7CiAgICAgICAgICAgICBp
ZiAoamF2YVNjcmlwdFRocmVhZHNTaG91bGRUZXJtaW5hdGUpCiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KQEAgLTEwOCw3ICsxMDMsNyBAQCB2b2lkIHJ1bkphdmFTY3JpcHRUaHJl
YWQoKQogICAgICAgICBpZiAocmFuZCgpICUgNSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0g
ICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CisgICAg
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soamF2YVNjcmlwdFRocmVhZHNMb2NrKTsKICAgICAg
ICAgVGhyZWFkJiB0aHJlYWQgPSBUaHJlYWQ6OmN1cnJlbnQoKTsKICAgICAgICAgdGhyZWFkLmRl
dGFjaCgpOwogICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygpLnJlbW92ZSgmdGhyZWFkKTsKQEAg
LTExNiw3ICsxMTEsNyBAQCB2b2lkIHJ1bkphdmFTY3JpcHRUaHJlYWQoKQogICAgICAgICBicmVh
azsKICAgICB9CiAKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011dGV4
KCkpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soamF2YVNjcmlwdFRocmVhZHNMb2NrKTsK
ICAgICBKU1N0cmluZ1JlbGVhc2Uoc2NyaXB0UmVmKTsKICAgICBKU0dhcmJhZ2VDb2xsZWN0KGN0
eCk7CiAgICAgSlNHbG9iYWxDb250ZXh0UmVsZWFzZShjdHgpOwpAQCAtMTI2LDcgKzEyMSw3IEBA
IHZvaWQgc3RhcnRKYXZhU2NyaXB0VGhyZWFkcygpCiB7CiAgICAgamF2YVNjcmlwdFRocmVhZHNH
cm91cCA9IEpTQ29udGV4dEdyb3VwQ3JlYXRlKCk7CiAKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihq
YXZhU2NyaXB0VGhyZWFkc011dGV4KCkpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soamF2
YVNjcmlwdFRocmVhZHNMb2NrKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgamF2YVNj
cmlwdFRocmVhZHNDb3VudDsgKytpKQogICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygpLmFkZChU
aHJlYWQ6OmNyZWF0ZSgiSmF2YVNjcmlwdCBUaHJlYWQiLCAmcnVuSmF2YVNjcmlwdFRocmVhZCkp
OwpAQCAtMTM1LDEzICsxMzAsMTMgQEAgdm9pZCBzdGFydEphdmFTY3JpcHRUaHJlYWRzKCkKIHZv
aWQgc3RvcEphdmFTY3JpcHRUaHJlYWRzKCkKIHsKICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIg
bG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CisgICAgICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2soamF2YVNjcmlwdFRocmVhZHNMb2NrKTsKICAgICAgICAgamF2YVNjcmlwdFRocmVh
ZHNTaG91bGRUZXJtaW5hdGUgPSB0cnVlOwogICAgIH0KIAogICAgIFZlY3RvcjxSZWZQdHI8VGhy
ZWFkPiwgamF2YVNjcmlwdFRocmVhZHNDb3VudD4gdGhyZWFkczsKICAgICB7Ci0gICAgICAgIExv
Y2tIb2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CisgICAgICAgIGF1dG8g
bG9ja2VyID0gaG9sZExvY2soamF2YVNjcmlwdFRocmVhZHNMb2NrKTsKICAgICAgICAgdGhyZWFk
cyA9IGNvcHlUb1ZlY3RvcihqYXZhU2NyaXB0VGhyZWFkcygpKTsKICAgICAgICAgQVNTRVJUKHRo
cmVhZHMuc2l6ZSgpID09IGphdmFTY3JpcHRUaHJlYWRzQ291bnQpOwogICAgIH0KQEAgLTE1MCw3
ICsxNDUsNyBAQCB2b2lkIHN0b3BKYXZhU2NyaXB0VGhyZWFkcygpCiAgICAgICAgIHRocmVhZHNb
aV0tPndhaXRGb3JDb21wbGV0aW9uKCk7CiAKICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9j
a2VyKGphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKSk7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2soamF2YVNjcmlwdFRocmVhZHNMb2NrKTsKICAgICAgICAgamF2YVNjcmlwdFRocmVhZHMo
KS5jbGVhcigpOwogICAgIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>