<?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>185339</bug_id>
          
          <creation_ts>2018-05-04 19:43:48 -0700</creation_ts>
          <short_desc>[WTF] Use Semaphore and BinarySemaphore instead of dispatch_semaphore_t</short_desc>
          <delta_ts>2018-09-17 22:48:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>rniwa</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1420996</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-04 19:43:48 -0700</bug_when>
    <thetext>[WTF] Use Semaphore and BinarySemaphore instead of dispatch_semaphore_t</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421004</commentid>
    <comment_count>1</comment_count>
      <attachid>339625</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-04 20:23:31 -0700</bug_when>
    <thetext>Created attachment 339625
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421007</commentid>
    <comment_count>2</comment_count>
      <attachid>339627</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-04 20:34:41 -0700</bug_when>
    <thetext>Created attachment 339627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421014</commentid>
    <comment_count>3</comment_count>
      <attachid>339631</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-04 21:03:08 -0700</bug_when>
    <thetext>Created attachment 339631
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421015</commentid>
    <comment_count>4</comment_count>
      <attachid>339632</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-04 21:05:45 -0700</bug_when>
    <thetext>Created attachment 339632
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423411</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-13 07:54:28 -0700</bug_when>
    <thetext>Ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459788</commentid>
    <comment_count>6</comment_count>
      <attachid>339632</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-09-14 10:40:14 -0700</bug_when>
    <thetext>Comment on attachment 339632
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460508</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-09-17 22:47:39 -0700</bug_when>
    <thetext>Committed r236101: &lt;https://trac.webkit.org/changeset/236101&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460509</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-17 22:48:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/44546999&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339625</attachid>
            <date>2018-05-04 20:23:31 -0700</date>
            <delta_ts>2018-05-04 20:34:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185339-20180505122330.patch</filename>
            <type>text/plain</type>
            <size>49500</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGIyYmVhNzVjMDRkOTczMmIxNWU1YTY0
ZGFmOWQzYTdjZDY1YzJkMTEuLjQ0NDNmOTFlNGU0NWM1ZmFlMTUzYjEwMjY2Y2JkZWMzN2Y0YjUz
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTgtMDUtMDQgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW1dURl0gVXNlIFNlbWFwaG9yZSBhbmQgQmlu
YXJ5U2VtYXBob3JlIGluc3RlYWQgb2YgZGlzcGF0Y2hfc2VtYXBob3JlX3QKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTMzOQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBXVEY6
OlNlbWFwaG9yZSwgd2hpY2ggaXMgYmFzZWQgb24gV1RGOjpMb2NrIGFuZCBXVEY6OkNvbmRpdGlv
bi4KKworICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvU2VtYXBo
b3JlLmg6IEFkZGVkLgorICAgICAgICAoV1RGOjpTZW1hcGhvcmU6OlNlbWFwaG9yZSk6CisgICAg
ICAgIChXVEY6OlNlbWFwaG9yZTo6c2lnbmFsKToKKyAgICAgICAgKFdURjo6U2VtYXBob3JlOjp3
YWl0VW50aWwpOgorICAgICAgICAoV1RGOjpTZW1hcGhvcmU6OndhaXRGb3IpOgorICAgICAgICAo
V1RGOjpTZW1hcGhvcmU6OndhaXQpOgorICAgICAgICAqIHd0Zi9nZW5lcmljL1dvcmtRdWV1ZUdl
bmVyaWMuY3BwOgorICAgICAgICAoV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAg
ICAgICAqIHd0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5jcHA6CisgICAgICAgIChXVEY6OkJp
bmFyeVNlbWFwaG9yZTo6d2FpdFVudGlsKToKKyAgICAgICAgKFdURjo6QmluYXJ5U2VtYXBob3Jl
Ojp3YWl0KTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUu
aDoKKyAgICAgICAgKFdURjo6QmluYXJ5U2VtYXBob3JlOjp3YWl0Rm9yKToKKyAgICAgICAgKFdU
Rjo6QmluYXJ5U2VtYXBob3JlOjp3YWl0KToKKyAgICAgICAgQWxpZ24gdGhlIG5hbWVzIG9mIHRo
ZSBmdW5jdGlvbnMgdG8gV1RGOjpDb25kaXRpb24uCisgICAgICAgIEFkZCBCaW5hcnlTZW1hcGhv
cmU6OndhaXQoKSwgd2hpY2ggaXMgdGhlIHNhbWUgdG8gd2FpdFVudGlsKFdhbGxUaW1lOjppbmZp
bml0eSgpKS4KKwogMjAxOC0wNS0wNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KIAogICAgICAgICBTaGlmdCB0byBhIGxvd2VyLWxldmVsIGZyYW1ld29yayBmb3Igc2lt
cGxpZnlpbmcgVVJMcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDI5M2NjZjBiNmIyMWZkOGM2ZjFjMDJiODA4ZDlm
ODEwOTRiNDdhOWEuLjg4ODcwMWM0YWNmYzE3NmJmOGYzMTdhNWYyZjgxMGJjNjc3ODJmNzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw2OSBAQAorMjAxOC0wNS0wNCAgWXVzdWtlIFN1enVraSAgPHV0
YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbV1RGXSBVc2UgU2VtYXBob3JlIGFuZCBC
aW5hcnlTZW1hcGhvcmUgaW5zdGVhZCBvZiBkaXNwYXRjaF9zZW1hcGhvcmVfdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MzM5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmaWxlYXBpL1RocmVhZGFi
bGVCbG9iUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUJsb2JSZWdp
c3RyeTo6YmxvYlNpemUpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNp
b25Db250ZW50RmlsdGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVu
c2lvbkNvbnRlbnRGaWx0ZXIubW06CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrRXh0ZW5zaW9u
Q29udGVudEZpbHRlcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrRXh0
ZW5zaW9uQ29udGVudEZpbHRlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjphZGREYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpmaW5pc2hlZEFk
ZGluZ0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0
ZXI6OmhhbmRsZURlY2lzaW9uKToKKyAgICAgICAgVXNlIHBlci1mdW5jdGlvbiBCaW5hcnlTZW1h
cGhvcmUgaW5zdGVhZCBvZiBob2xkaW5nIGl0IGluIE5ldHdvcmtFeHRlbnNpb25Db250ZW50Rmls
dGVyJ3MgZmllbGQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL0ZpbGVNb25pdG9yR0xpYi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlTW9uaXRvcjo6RmlsZU1vbml0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsZU1vbml0b3I6On5GaWxlTW9uaXRvcik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6On5NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OndhaXRG
b3JWaWRlb091dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6b3V0cHV0TWVkaWFEYXRhV2lsbENoYW5n
ZSk6CisgICAgICAgIFVzZSBCaW5hcnlTZW1hcGhvcmUuIEFuZCByZW1vdmUgdW51c2VkIGRpc3Bh
dGNoX3NlbWFwaG9yZV90LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5t
bToKKyAgICAgICAgKC1bV2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgc3RyZWFtRGF0YVBh
cnNlcldpbGxQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6Zm9yVHJh
Y2tJRDpdKToKKyAgICAgICAgKC1bV2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgc3RyZWFt
RGF0YVBhcnNlcjpkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6
Zm9yVHJhY2tJRDpdKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6flNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlQ29u
dGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKToKKyAgICAgICAgKFdl
YkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjphYm9ydCk6CisgICAgICAgIChXZWJD
b3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2V0Q0RNU2Vzc2lvbik6CisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2V0Q0RNSW5zdGFuY2UpOgor
ICAgICAgICBVc2UgQm94PFNlbWFwaG9yZT4gYW5kIEJveDxCaW5hcnlTZW1hcGhvcmU+LgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNz
aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJl
c3Npb25TZXNzaW9uLm1tOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25T
ZXNzaW9uOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24pOgorICAgICAgICBSZW1vdmUgdW51
c2VkIGRpc3BhdGNoX3NlbWFwaG9yZV90LgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhP
cGVyYXRpb25RdWV1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRSdW5Mb29wKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3Bl
cmF0aW9uUXVldWU6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpkaWRSZWNl
aXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5l
Y3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6d2lsbENhY2hlUmVzcG9uc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhP
cGVyYXRpb25RdWV1ZTo6Y2FuUmVzcG9uZFRvUHJvdGVjdGlvblNwYWNlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVl
RGVsZWdhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3Vy
Y2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW06CisgICAgICAgICgtW1dlYkNvcmVS
ZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBpbml0V2l0aEhhbmRsZTptZXNz
YWdlUXVldWU6XSk6CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9u
UXVldWVEZWxlZ2F0ZSBkZXRhY2hIYW5kbGVdKToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNl
SGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV2Vi
Q29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246d2ls
bFNlbmRSZXF1ZXN0OnJlZGlyZWN0UmVzcG9uc2U6XSk6CisgICAgICAgICgtW1dlYkNvcmVSZXNv
dXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9uOmNhbkF1dGhlbnRp
Y2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2U6XSk6CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJj
ZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVSZXNw
b25zZTpdKToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1
ZURlbGVnYXRlIGNvbm5lY3Rpb246d2lsbENhY2hlUmVzcG9uc2U6XSk6CisgICAgICAgIFVzZSBC
aW5hcnlTZW1hcGhvcmUgaW5zdGVhZC4KKwogMjAxOC0wNS0wMiAgRGVhbiBKYWNrc29uICA8ZGlu
b0BhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIElPU3VyZmFjZXMgZm9yIENvcmVJbWFnZSBvcGVy
YXRpb25zIHdoZXJlIHBvc3NpYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZiYzYxYjYxYjRmYTAyNDY3MzhkYzFm
YTJlYWU5ZjhlMjNkNmY1MzMuLmM5MWQxMDA5NWZhN2UzOThhYWMxMDdkYjMxOGM4ZWJlNmMyODUy
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTgtMDUtMDQgIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW1dURl0gVXNlIFNlbWFwaG9yZSBh
bmQgQmluYXJ5U2VtYXBob3JlIGluc3RlYWQgb2YgZGlzcGF0Y2hfc2VtYXBob3JlX3QKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTMzOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm0vSVBD
L0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0
YXRlOjp3YWl0KToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6c2VuZFNlY0l0ZW1SZXF1ZXN0KToKKyAgICAgICAgVXNlIEJpbmFyeVNlbWFw
aG9yZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lz
dGVudFN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
UGVyc2lzdGVudFN0b3JhZ2U6OmZpbmlzaEFsbFBlbmRpbmdXb3JrU3luY2hyb25vdXNseSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlcjo6YXBwbGljYXRpb25XaWxsVGVybWluYXRlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW06CisgICAgICAg
IChhcHBMaW5rRm9yVVJMKToKKyAgICAgICAgVXNlIEJpbmFyeVNlbWFwaG9yZSB0byB3YWl0IGZv
ciBhc3luYyBjb21wbGV0aW9uIGhhbmRsZXIuIFdlIGFsc28gZml4IG1lbW9yeSBsZWFrCisgICAg
ICAgIHNpbmNlIHRoZSBvbGQgY29kZSBkb2VzIG5vdCBjYWxsIGRpc3BhdGNoX3JlbGVhc2UgZm9y
IHRoZSB1c2VkIHNlbWFwaG9yZS4KKwogMjAxOC0wNS0wNCAgVGltIEhvcnRvbiAgPHRpbW90aHlf
aG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBTaGlmdCB0byBhIGxvd2VyLWxldmVsIGZyYW1l
d29yayBmb3Igc2ltcGxpZnlpbmcgVVJMcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCA0ODkwMjk3
ZTk3NjlkOWFjOGEyZTMyYzE0MTE3MzYxMjUzZGE4YmZlLi44MDk3NmNiMGI2M2FhYjU3Yjk5ZWFl
N2Q0NTU2M2I3ZmVlYjZiNWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtMTk2LDYgKzE5Niw3
IEBAIHNldChXVEZfUFVCTElDX0hFQURFUlMKICAgICBTY29wZWRMYW1iZGEuaAogICAgIFNlY29u
ZHMuaAogICAgIFNlZ21lbnRlZFZlY3Rvci5oCisgICAgU2VtYXBob3JlLmgKICAgICBTZW50aW5l
bExpbmtlZExpc3QuaAogICAgIFNldEZvclNjb3BlLmgKICAgICBTaGFyZWRUYXNrLmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL1NlbWFwaG9yZS5oIGIvU291cmNlL1dURi93dGYvU2VtYXBo
b3JlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMWVlNTI3MGY4MThlZDAxYjkzNGRmOGY5YzAxMTNkZGM4NjJmMTUy
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL1NlbWFwaG9yZS5oCkBAIC0wLDAg
KzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggWXVzdWtlIFN1enVraSA8dXRhdGFu
ZS50ZWFAZ21haWwuY29tPi4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CisjaW5jbHVk
ZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNl
IFdURiB7CisKK2NsYXNzIFNlbWFwaG9yZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2Vt
YXBob3JlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBjb25z
dGV4cHIgU2VtYXBob3JlKHVuc2lnbmVkIHZhbHVlKQorICAgICAgICA6IG1fdmFsdWUodmFsdWUp
CisgICAgeworICAgIH0KKworICAgIHZvaWQgc2lnbmFsKCkKKyAgICB7CisgICAgICAgIGF1dG8g
bG9ja2VyID0gaG9sZExvY2sobV9sb2NrKTsKKyAgICAgICAgbV92YWx1ZSsrOworICAgICAgICBt
X2NvbmRpdGlvbi5ub3RpZnlPbmUoKTsKKyAgICB9CisKKyAgICBib29sIHdhaXRVbnRpbChjb25z
dCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUmIHRpbWVvdXQpCisgICAgeworICAgICAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKG1fbG9jayk7CisgICAgICAgIGJvb2wgc2F0aXNmaWVkID0gbV9j
b25kaXRpb24ud2FpdFVudGlsKG1fbG9jaywgdGltZW91dCwKKyAgICAgICAgICAgIFsmXSB7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIG1fdmFsdWU7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
aWYgKHNhdGlzZmllZCkKKyAgICAgICAgICAgIC0tbV92YWx1ZTsKKyAgICAgICAgcmV0dXJuIHNh
dGlzZmllZDsKKyAgICB9CisKKyAgICBib29sIHdhaXRGb3IoU2Vjb25kcyByZWxhdGl2ZVRpbWVv
dXQpCisgICAgeworICAgICAgICByZXR1cm4gd2FpdFVudGlsKE1vbm90b25pY1RpbWU6Om5vdygp
ICsgcmVsYXRpdmVUaW1lb3V0KTsKKyAgICB9CisKKyAgICB2b2lkIHdhaXQoKQorICAgIHsKKyAg
ICAgICAgd2FpdFVudGlsKFBhcmtpbmdMb3Q6OlRpbWU6OmluZmluaXR5KCkpOworICAgIH0KKwor
cHJpdmF0ZToKKyAgICB1bnNpZ25lZCBtX3ZhbHVlIHsgMCB9OworICAgIExvY2sgbV9sb2NrOwor
ICAgIENvbmRpdGlvbiBtX2NvbmRpdGlvbjsKK307CisKKworfSAvLyBuYW1lc3BhY2UgV1RGCisK
K3VzaW5nIFdURjo6U2VtYXBob3JlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ2VuZXJp
Yy9Xb3JrUXVldWVHZW5lcmljLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMvV29ya1F1ZXVl
R2VuZXJpYy5jcHAKaW5kZXggZTA1OTE2NDRhYWEyN2U1NTU2YzYzNzUzOGVhOGU4MTkyYzVhYTlh
Ni4uM2MwNDkyZmY1NGViMGQ3NTAyMGFhYzc0ZTk2N2I2OTU4YmU3YzVlYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvZ2VuZXJpYy9Xb3JrUXVldWVHZW5lcmljLmNwcAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwCkBAIC00Miw3ICs0Miw3IEBAIHZv
aWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoY29uc3QgY2hhciogbmFtZSwgVHlwZSwg
UU9TKQogICAgICAgICBzZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAgICAgIG1fcnVuTG9vcC0+cnVu
KCk7CiAgICAgfSktPmRldGFjaCgpOwotICAgIHNlbWFwaG9yZS53YWl0KFdhbGxUaW1lOjppbmZp
bml0eSgpKTsKKyAgICBzZW1hcGhvcmUud2FpdCgpOwogfQogCiB2b2lkIFdvcmtRdWV1ZTo6cGxh
dGZvcm1JbnZhbGlkYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvQmlu
YXJ5U2VtYXBob3JlLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3Jl
LmNwcAppbmRleCBlMmY2ZGVkNzlmNDIwMTA2M2EwYjQ4MTIzOWU5MTJmMjJmNTg3ZTgzLi4xODA1
NjgyMmMzZDliY2QzMzdmMTNkMzdmY2RjOGVmOTJiZDZjY2YwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYv
dGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuY3BwCkBAIC0zNSw3ICszNSw3IEBAIHZvaWQgQmluYXJ5
U2VtYXBob3JlOjpzaWduYWwoKQogICAgIG1fY29uZGl0aW9uLm5vdGlmeU9uZSgpOwogfQogCi1i
b29sIEJpbmFyeVNlbWFwaG9yZTo6d2FpdChUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgYWJzb2x1
dGVUaW1lKQorYm9vbCBCaW5hcnlTZW1hcGhvcmU6OndhaXRVbnRpbChjb25zdCBUaW1lV2l0aER5
bmFtaWNDbG9ja1R5cGUmIGFic29sdXRlVGltZSkKIHsKICAgICBhdXRvIGxvY2tlciA9IGhvbGRM
b2NrKG1fbG9jayk7CiAgICAgYm9vbCBzYXRpc2ZpZWQgPSBtX2NvbmRpdGlvbi53YWl0VW50aWwo
bV9sb2NrLCBhYnNvbHV0ZVRpbWUsIFsmXSB7IHJldHVybiBtX2lzU2V0OyB9KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmggYi9Tb3VyY2UvV1RG
L3d0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oCmluZGV4IGZkNTlkNWFhMmJhYmMyMmRhYmY1
NTY1NWU2NjAxZjY0ODQ5MGVkZTIuLmQ1YjczOGY1ZjNjMjljMjI5MmNhZThjNTBiNTA5Yjg2YTQ2
ZTY4ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3Jl
LmgKKysrIGIvU291cmNlL1dURi93dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuaApAQCAtMzUs
MTEgKzM1LDIyIEBAIG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBCaW5hcnlTZW1hcGhvcmUgewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEJpbmFyeVNlbWFwaG9yZSk7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgQmluYXJ5U2VtYXBob3JlKCkgPSBkZWZhdWx0
OworICAgIGNvbnN0ZXhwciBCaW5hcnlTZW1hcGhvcmUoKSA9IGRlZmF1bHQ7CiAKICAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgdm9pZCBzaWduYWwoKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgYm9v
bCB3YWl0KFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRF
IGJvb2wgd2FpdFVudGlsKGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYpOworCisgICAg
Ym9vbCB3YWl0Rm9yKFNlY29uZHMgcmVsYXRpdmVUaW1lb3V0KQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHdhaXRVbnRpbChNb25vdG9uaWNUaW1lOjpub3coKSArIHJlbGF0aXZlVGltZW91dCk7Cisg
ICAgfQorCisgICAgdm9pZCB3YWl0KCkKKyAgICB7CisgICAgICAgIHdhaXRVbnRpbChQYXJraW5n
TG90OjpUaW1lOjppbmZpbml0eSgpKTsKKyAgICB9CiAKIHByaXZhdGU6CiAgICAgYm9vbCBtX2lz
U2V0IHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFk
YWJsZUJsb2JSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVC
bG9iUmVnaXN0cnkuY3BwCmluZGV4IGI2YzU3YTMxZDhjMmI1MTMzZWJiYzkzOGQzNDkyMDE2NDAx
Mjc4OTMuLjViYzliYWY3ODI3OTZiYTQzM2Q3ZTgyOWMxMGFmNjc3MTdhYTQzOTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcApAQCAt
MTUwLDcgKzE1MCw3IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5
OjpibG9iU2l6ZShjb25zdCBVUkwmIHVybCkKICAgICAgICAgICAgIHJlc3VsdFNpemUgPSBibG9i
UmVnaXN0cnkoKS5ibG9iU2l6ZSh1cmwpOwogICAgICAgICAgICAgc2VtYXBob3JlLnNpZ25hbCgp
OwogICAgICAgICB9KTsKLSAgICAgICAgc2VtYXBob3JlLndhaXQoV2FsbFRpbWU6OmluZmluaXR5
KCkpOworICAgICAgICBzZW1hcGhvcmUud2FpdCgpOwogICAgIH0KICAgICByZXR1cm4gcmVzdWx0
U2l6ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05ldHdv
cmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oCmluZGV4IDk4M2I3MDM1YjcwMGVjMThm
YjkzYWQxYTMyNDhkMTExNWUzZDlkMjEuLjIxMDZjMmJhOWI4NmFjMDIwYjQwNzAxMGU5MTMyMzli
ZDQyNTkwZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05ldHdv
cmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaApAQCAtNjQsNyArNjQsNiBAQCBj
bGFzcyBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlciBmaW5hbCA6IHB1YmxpYyBQbGF0Zm9y
bUNvbnRlbnRGaWx0ZXIgewogICAgIHZvaWQgaGFuZGxlRGVjaXNpb24oTkVGaWx0ZXJTb3VyY2VT
dGF0dXMsIE5TRGF0YSAqcmVwbGFjZW1lbnREYXRhKTsKIAogICAgIE9TT2JqZWN0UHRyPGRpc3Bh
dGNoX3F1ZXVlX3Q+IG1fcXVldWU7Ci0gICAgT1NPYmplY3RQdHI8ZGlzcGF0Y2hfc2VtYXBob3Jl
X3Q+IG1fc2VtYXBob3JlOwogICAgIFJldGFpblB0cjxOU0RhdGE+IG1fcmVwbGFjZW1lbnREYXRh
OwogICAgIFJldGFpblB0cjxORUZpbHRlclNvdXJjZT4gbV9uZUZpbHRlclNvdXJjZTsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9OZXR3b3JrRXh0ZW5zaW9u
Q29udGVudEZpbHRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05ldHdvcmtF
eHRlbnNpb25Db250ZW50RmlsdGVyLm1tCmluZGV4IDdkMGQyNWVlMjlkMWM2YTMwYjIzNDRmYTI1
NDEyZjVmMzU5ODc0YzAuLmE2YzFiMzYxYTcyOWEwMzBjMjgwZjA2MTg1ODg4NWU1YWFlMTRjY2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNp
b25Db250ZW50RmlsdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05l
dHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCkBAIC0zOCw2ICszOCw3IEBACiAjaW1wb3J0
IDxvYmpjL3J1bnRpbWUuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTkVGaWx0ZXJTb3VyY2VT
UEkuaD4KICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgorI2ltcG9ydCA8d3RmL3RocmVhZHMv
QmluYXJ5U2VtYXBob3JlLmg+CiAKIFNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoTmV0d29y
a0V4dGVuc2lvbik7CiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoTmV0d29ya0V4dGVuc2lvbiwg
TkVGaWx0ZXJTb3VyY2UpOwpAQCAtNzAsMTAgKzcxLDggQEAgc3RkOjp1bmlxdWVfcHRyPE5ldHdv
cmtFeHRlbnNpb25Db250ZW50RmlsdGVyPiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6
Y3IKIHZvaWQgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OmluaXRpYWxpemUoY29uc3Qg
VVJMKiB1cmwpCiB7CiAgICAgQVNTRVJUKCFtX3F1ZXVlKTsKLSAgICBBU1NFUlQoIW1fc2VtYXBo
b3JlKTsKICAgICBBU1NFUlQoIW1fbmVGaWx0ZXJTb3VyY2UpOwogICAgIG1fcXVldWUgPSBhZG9w
dE9TT2JqZWN0KGRpc3BhdGNoX3F1ZXVlX2NyZWF0ZSgiV2ViS2l0IE5ldHdvcmtFeHRlbnNpb24g
RmlsdGVyaW5nIiwgRElTUEFUQ0hfUVVFVUVfU0VSSUFMKSk7Ci0gICAgbV9zZW1hcGhvcmUgPSBh
ZG9wdE9TT2JqZWN0KGRpc3BhdGNoX3NlbWFwaG9yZV9jcmVhdGUoMCkpOwogICAgIEFTU0VSVF9V
TlVTRUQodXJsLCAhdXJsKTsKICAgICBtX25lRmlsdGVyU291cmNlID0gYWRvcHROUyhbYWxsb2NO
RUZpbHRlclNvdXJjZUluc3RhbmNlKCkgaW5pdFdpdGhEZWNpc2lvblF1ZXVlOm1fcXVldWUuZ2V0
KCldKTsKICNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTEwMDAwKQpAQCAtMTAwLDE3ICs5OSwxOSBAQCB2b2lkIE5ldHdvcmtF
eHRlbnNpb25Db250ZW50RmlsdGVyOjp3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBjbwogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIEJpbmFyeVNlbWFw
aG9yZSBzZW1hcGhvcmU7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBtb2RpZmllZFJlcXVlc3RV
UkxTdHJpbmc7Ci0gICAgW21fbmVGaWx0ZXJTb3VyY2Ugd2lsbFNlbmRSZXF1ZXN0OnJlcXVlc3Qu
bnNVUkxSZXF1ZXN0KERvTm90VXBkYXRlSFRUUEJvZHkpIGRlY2lzaW9uSGFuZGxlcjpbdGhpcywg
Jm1vZGlmaWVkUmVxdWVzdFVSTFN0cmluZ10oTkVGaWx0ZXJTb3VyY2VTdGF0dXMgc3RhdHVzLCBO
U0RpY3Rpb25hcnkgKmRlY2lzaW9uSW5mbykgeworICAgIFttX25lRmlsdGVyU291cmNlIHdpbGxT
ZW5kUmVxdWVzdDpyZXF1ZXN0Lm5zVVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBCb2R5KSBkZWNp
c2lvbkhhbmRsZXI6W3RoaXMsICZtb2RpZmllZFJlcXVlc3RVUkxTdHJpbmcsICZzZW1hcGhvcmVd
KE5FRmlsdGVyU291cmNlU3RhdHVzIHN0YXR1cywgTlNEaWN0aW9uYXJ5ICpkZWNpc2lvbkluZm8p
IHsKICAgICAgICAgbW9kaWZpZWRSZXF1ZXN0VVJMU3RyaW5nID0gZGVjaXNpb25JbmZvW05FRmls
dGVyU291cmNlT3B0aW9uc1JlZGlyZWN0VVJMXTsKICAgICAgICAgQVNTRVJUKCFtb2RpZmllZFJl
cXVlc3RVUkxTdHJpbmcgfHwgW21vZGlmaWVkUmVxdWVzdFVSTFN0cmluZyBpc0tpbmRPZkNsYXNz
OltOU1N0cmluZyBjbGFzc11dKTsKICAgICAgICAgaGFuZGxlRGVjaXNpb24oc3RhdHVzLCByZXBs
YWNlbWVudERhdGFGcm9tRGVjaXNpb25JbmZvKGRlY2lzaW9uSW5mbykpOworICAgICAgICBzZW1h
cGhvcmUuc2lnbmFsKCk7CiAgICAgfV07CiAKICAgICAvLyBGSVhNRTogV2UgaGF2ZSB0byBibG9j
ayBoZXJlIHNpbmNlIERvY3VtZW50TG9hZGVyIGV4cGVjdHMgdG8gaGF2ZSBhCiAgICAgLy8gYmxv
Y2tlZC9ub3QgYmxvY2tlZCBhbnN3ZXIgZnJvbSB0aGUgZmlsdGVyIGltbWVkaWF0ZWx5IGFmdGVy
IGNhbGxpbmcKICAgICAvLyBhZGREYXRhKCkuIFdlIHNob3VsZCBmaW5kIGEgd2F5IHRvIG1ha2Ug
dGhpcyBhc3luY2hyb25vdXMuCi0gICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQobV9zZW1hcGhv
cmUuZ2V0KCksIERJU1BBVENIX1RJTUVfRk9SRVZFUik7CisgICAgc2VtYXBob3JlLndhaXQoKTsK
IAogICAgIGlmICghbW9kaWZpZWRSZXF1ZXN0VVJMU3RyaW5nKQogICAgICAgICByZXR1cm47CkBA
IC0xMzEsNDAgKzEzMiw0NiBAQCB2b2lkIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpy
ZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlcwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgW21fbmVGaWx0ZXJTb3VyY2UgcmVjZWl2ZWRSZXNwb25zZTpyZXNw
b25zZS5uc1VSTFJlc3BvbnNlKCkgZGVjaXNpb25IYW5kbGVyOlt0aGlzXShORUZpbHRlclNvdXJj
ZVN0YXR1cyBzdGF0dXMsIE5TRGljdGlvbmFyeSAqZGVjaXNpb25JbmZvKSB7CisgICAgQmluYXJ5
U2VtYXBob3JlIHNlbWFwaG9yZTsKKyAgICBbbV9uZUZpbHRlclNvdXJjZSByZWNlaXZlZFJlc3Bv
bnNlOnJlc3BvbnNlLm5zVVJMUmVzcG9uc2UoKSBkZWNpc2lvbkhhbmRsZXI6W3RoaXMsICZzZW1h
cGhvcmVdKE5FRmlsdGVyU291cmNlU3RhdHVzIHN0YXR1cywgTlNEaWN0aW9uYXJ5ICpkZWNpc2lv
bkluZm8pIHsKICAgICAgICAgaGFuZGxlRGVjaXNpb24oc3RhdHVzLCByZXBsYWNlbWVudERhdGFG
cm9tRGVjaXNpb25JbmZvKGRlY2lzaW9uSW5mbykpOworICAgICAgICBzZW1hcGhvcmUuc2lnbmFs
KCk7CiAgICAgfV07CiAKICAgICAvLyBGSVhNRTogV2UgaGF2ZSB0byBibG9jayBoZXJlIHNpbmNl
IERvY3VtZW50TG9hZGVyIGV4cGVjdHMgdG8gaGF2ZSBhCiAgICAgLy8gYmxvY2tlZC9ub3QgYmxv
Y2tlZCBhbnN3ZXIgZnJvbSB0aGUgZmlsdGVyIGltbWVkaWF0ZWx5IGFmdGVyIGNhbGxpbmcKICAg
ICAvLyBhZGREYXRhKCkuIFdlIHNob3VsZCBmaW5kIGEgd2F5IHRvIG1ha2UgdGhpcyBhc3luY2hy
b25vdXMuCi0gICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQobV9zZW1hcGhvcmUuZ2V0KCksIERJ
U1BBVENIX1RJTUVfRk9SRVZFUik7CisgICAgc2VtYXBob3JlLndhaXQoKTsKIH0KIAogdm9pZCBO
ZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6YWRkRGF0YShjb25zdCBjaGFyKiBkYXRhLCBp
bnQgbGVuZ3RoKQogewogICAgIFJldGFpblB0cjxOU0RhdGE+IGNvcGllZERhdGEgeyBbTlNEYXRh
IGRhdGFXaXRoQnl0ZXM6KHZvaWQqKWRhdGEgbGVuZ3RoOmxlbmd0aF0gfTsKIAotICAgIFttX25l
RmlsdGVyU291cmNlIHJlY2VpdmVkRGF0YTpjb3BpZWREYXRhLmdldCgpIGRlY2lzaW9uSGFuZGxl
cjpbdGhpc10oTkVGaWx0ZXJTb3VyY2VTdGF0dXMgc3RhdHVzLCBOU0RpY3Rpb25hcnkgKmRlY2lz
aW9uSW5mbykgeworICAgIEJpbmFyeVNlbWFwaG9yZSBzZW1hcGhvcmU7CisgICAgW21fbmVGaWx0
ZXJTb3VyY2UgcmVjZWl2ZWREYXRhOmNvcGllZERhdGEuZ2V0KCkgZGVjaXNpb25IYW5kbGVyOlt0
aGlzLCAmc2VtYXBob3JlXShORUZpbHRlclNvdXJjZVN0YXR1cyBzdGF0dXMsIE5TRGljdGlvbmFy
eSAqZGVjaXNpb25JbmZvKSB7CiAgICAgICAgIGhhbmRsZURlY2lzaW9uKHN0YXR1cywgcmVwbGFj
ZW1lbnREYXRhRnJvbURlY2lzaW9uSW5mbyhkZWNpc2lvbkluZm8pKTsKKyAgICAgICAgc2VtYXBo
b3JlLnNpZ25hbCgpOwogICAgIH1dOwogCiAgICAgLy8gRklYTUU6IFdlIGhhdmUgdG8gYmxvY2sg
aGVyZSBzaW5jZSBEb2N1bWVudExvYWRlciBleHBlY3RzIHRvIGhhdmUgYQogICAgIC8vIGJsb2Nr
ZWQvbm90IGJsb2NrZWQgYW5zd2VyIGZyb20gdGhlIGZpbHRlciBpbW1lZGlhdGVseSBhZnRlciBj
YWxsaW5nCiAgICAgLy8gYWRkRGF0YSgpLiBXZSBzaG91bGQgZmluZCBhIHdheSB0byBtYWtlIHRo
aXMgYXN5bmNocm9ub3VzLgotICAgIGRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KG1fc2VtYXBob3Jl
LmdldCgpLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOworICAgIHNlbWFwaG9yZS53YWl0KCk7CiB9
CiAKIHZvaWQgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OmZpbmlzaGVkQWRkaW5nRGF0
YSgpCiB7Ci0gICAgW21fbmVGaWx0ZXJTb3VyY2UgZmluaXNoZWRMb2FkaW5nV2l0aERlY2lzaW9u
SGFuZGxlcjpbdGhpc10oTkVGaWx0ZXJTb3VyY2VTdGF0dXMgc3RhdHVzLCBOU0RpY3Rpb25hcnkg
KmRlY2lzaW9uSW5mbykgeworICAgIEJpbmFyeVNlbWFwaG9yZSBzZW1hcGhvcmU7CisgICAgW21f
bmVGaWx0ZXJTb3VyY2UgZmluaXNoZWRMb2FkaW5nV2l0aERlY2lzaW9uSGFuZGxlcjpbdGhpcywg
JnNlbWFwaG9yZV0oTkVGaWx0ZXJTb3VyY2VTdGF0dXMgc3RhdHVzLCBOU0RpY3Rpb25hcnkgKmRl
Y2lzaW9uSW5mbykgewogICAgICAgICBoYW5kbGVEZWNpc2lvbihzdGF0dXMsIHJlcGxhY2VtZW50
RGF0YUZyb21EZWNpc2lvbkluZm8oZGVjaXNpb25JbmZvKSk7CisgICAgICAgIHNlbWFwaG9yZS5z
aWduYWwoKTsKICAgICB9XTsKIAogICAgIC8vIEZJWE1FOiBXZSBoYXZlIHRvIGJsb2NrIGhlcmUg
c2luY2UgRG9jdW1lbnRMb2FkZXIgZXhwZWN0cyB0byBoYXZlIGEKICAgICAvLyBibG9ja2VkL25v
dCBibG9ja2VkIGFuc3dlciBmcm9tIHRoZSBmaWx0ZXIgaW1tZWRpYXRlbHkgYWZ0ZXIgY2FsbGlu
ZwogICAgIC8vIGZpbmlzaGVkQWRkaW5nRGF0YSgpLiBXZSBzaG91bGQgZmluZCBhIHdheSB0byBt
YWtlIHRoaXMgYXN5bmNocm9ub3VzLgotICAgIGRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KG1fc2Vt
YXBob3JlLmdldCgpLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOworICAgIHNlbWFwaG9yZS53YWl0
KCk7CiB9CiAKIFJlZjxTaGFyZWRCdWZmZXI+IE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVy
OjpyZXBsYWNlbWVudERhdGEoKSBjb25zdApAQCAtMjE1LDcgKzIyMiw2IEBAIHZvaWQgTmV0d29y
a0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OmhhbmRsZURlY2lzaW9uKE5FRmlsdGVyU291cmNlU3Rh
dHVzIHN0YXR1cywKICAgICBpZiAoIW5lZWRzTW9yZURhdGEoKSkKICAgICAgICAgTE9HKENvbnRl
bnRGaWx0ZXJpbmcsICJOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlciBzdG9wcGVkIGJ1ZmZl
cmluZyB3aXRoIHN0YXR1cyAlemQgYW5kIHJlcGxhY2VtZW50IGRhdGEgbGVuZ3RoICV6dS5cbiIs
IHN0YXR1cywgcmVwbGFjZW1lbnREYXRhLmxlbmd0aCk7CiAjZW5kaWYKLSAgICBkaXNwYXRjaF9z
ZW1hcGhvcmVfc2lnbmFsKG1fc2VtYXBob3JlLmdldCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlTW9u
aXRvckdMaWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlTW9uaXRvckdM
aWIuY3BwCmluZGV4IGJiNjk1YTkyN2EzOTdkM2FlMDI4NDljYmYwOWM5OTFjMjZkOTViNzIuLjQ2
M2YzMjc2YzI0ZTI1MWJlYjRhYTA4YjBiOTg5ODZlOGNjOTY5MjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZU1vbml0b3JHTGliLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVNb25pdG9yR0xpYi5jcHAKQEAgLTYwLDcgKzYwLDcg
QEAgRmlsZU1vbml0b3I6OkZpbGVNb25pdG9yKGNvbnN0IFN0cmluZyYgcGF0aCwgUmVmPFdvcmtR
dWV1ZT4mJiBoYW5kbGVyUXVldWUsIFdURjoKICAgICAgICAgY3JlYXRlUGxhdGZvcm1Nb25pdG9y
KCk7CiAgICAgICAgIHNlbWFwaG9yZS5zaWduYWwoKTsKICAgICB9KTsKLSAgICBzZW1hcGhvcmUu
d2FpdChXYWxsVGltZTo6aW5maW5pdHkoKSk7CisgICAgc2VtYXBob3JlLndhaXQoKTsKIH0KIAog
RmlsZU1vbml0b3I6On5GaWxlTW9uaXRvcigpCkBAIC03NCw3ICs3NCw3IEBAIEZpbGVNb25pdG9y
Ojp+RmlsZU1vbml0b3IoKQogICAgICAgICBtX3BsYXRmb3JtTW9uaXRvciA9IG51bGxwdHI7CiAg
ICAgICAgIHNlbWFwaG9yZS5zaWduYWwoKTsKICAgICB9KTsKLSAgICBzZW1hcGhvcmUud2FpdChX
YWxsVGltZTo6aW5maW5pdHkoKSk7CisgICAgc2VtYXBob3JlLndhaXQoKTsKIH0KIAogdm9pZCBG
aWxlTW9uaXRvcjo6ZmlsZUNoYW5nZWRDYWxsYmFjayhHRmlsZU1vbml0b3IqLCBHRmlsZSosIEdG
aWxlKiwgR0ZpbGVNb25pdG9yRXZlbnQgZXZlbnQsIEZpbGVNb25pdG9yKiBtb25pdG9yKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5oCmluZGV4IGY0NjQ3MDNjZjk3ZjQ4YTQ5MWViMGM5MDU5N2IzYzY3YWRm
MWZiMTQuLjg4NTdkOGI0NzJiM2U0NDlmYzlkNjRlYmQzMTViODBhOWNkNzgyNDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5o
PgogCiBPQkpDX0NMQVNTIEFWQXNzZXRJbWFnZUdlbmVyYXRvcjsKIE9CSkNfQ0xBU1MgQVZBc3Nl
dFJlc291cmNlTG9hZGluZ1JlcXVlc3Q7CkBAIC0zNTksNyArMzYwLDcgQEAgY2xhc3MgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb24KICAgICBSZXRhaW5QdHI8V2ViQ29yZUFWRlB1bGxEZWxlZ2F0ZT4gbV92aWRl
b091dHB1dERlbGVnYXRlOwogICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBtX2xhc3RQ
aXhlbEJ1ZmZlcjsKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gbV9sYXN0SW1hZ2U7Ci0gICAg
ZGlzcGF0Y2hfc2VtYXBob3JlX3QgbV92aWRlb091dHB1dFNlbWFwaG9yZTsKKyAgICBCaW5hcnlT
ZW1hcGhvcmUgbV92aWRlb091dHB1dFNlbWFwaG9yZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Vmlk
ZW9UZXh0dXJlQ29waWVyQ1Y+IG1fdmlkZW9UZXh0dXJlQ29waWVyOwogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tCmluZGV4IDJhOTZhOGIxNDZmMzBmNGVlZTg5MGRmM2JlM2E5YWE4MDdm
NWRmOTYuLjE3MmZiZjk2YjZhN2NkN2U5ZWY1MDQwOGExN2VlZTZhYWU0MzA2OWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbQpAQCAtMzQ4LDcgKzM0OCw2IEBAIEBlbmQKICNpZiBIQVZFKEFWRk9V
TkRBVElPTl9WSURFT19PVVRQVVQpCiBAaW50ZXJmYWNlIFdlYkNvcmVBVkZQdWxsRGVsZWdhdGUg
OiBOU09iamVjdDxBVlBsYXllckl0ZW1PdXRwdXRQdWxsRGVsZWdhdGU+IHsKICAgICBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDICptX2NhbGxiYWNrOwotICAgIGRpc3BhdGNoX3Nl
bWFwaG9yZV90IG1fc2VtYXBob3JlOwogfQogLSAoaWQpaW5pdFdpdGhDYWxsYmFjazooTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyAqKWNhbGxiYWNrOwogLSAodm9pZClzZXRDYWxs
YmFjazooTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyopY2FsbGJhY2s7CkBAIC00
OTIsNyArNDkxLDYgQEAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6TWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyhNZWRpYVBsYXkKICAgICAsIG1faGF2ZUNoZWNr
ZWRQbGF5YWJpbGl0eShmYWxzZSkKICNpZiBIQVZFKEFWRk9VTkRBVElPTl9WSURFT19PVVRQVVQp
CiAgICAgLCBtX3ZpZGVvT3V0cHV0RGVsZWdhdGUoYWRvcHROUyhbW1dlYkNvcmVBVkZQdWxsRGVs
ZWdhdGUgYWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6dGhpc10pKQotICAgICwgbV92aWRlb091dHB1
dFNlbWFwaG9yZShudWxscHRyKQogI2VuZGlmCiAjaWYgSEFWRShBVkZPVU5EQVRJT05fTE9BREVS
X0RFTEVHQVRFKQogICAgICwgbV9sb2FkZXJEZWxlZ2F0ZShhZG9wdE5TKFtbV2ViQ29yZUFWRkxv
YWRlckRlbGVnYXRlIGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOnRoaXNdKSkKQEAgLTUyNyw4ICs1
MjUsNiBAQCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp+TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQygpCiAjaWYgSEFWRShBVkZPVU5EQVRJT05fVklERU9fT1VU
UFVUKQogICAgIFttX3ZpZGVvT3V0cHV0RGVsZWdhdGUgc2V0Q2FsbGJhY2s6MF07CiAgICAgW21f
dmlkZW9PdXRwdXQgc2V0RGVsZWdhdGU6bmlsIHF1ZXVlOjBdOwotICAgIGlmIChtX3ZpZGVvT3V0
cHV0U2VtYXBob3JlKQotICAgICAgICBkaXNwYXRjaF9yZWxlYXNlKG1fdmlkZW9PdXRwdXRTZW1h
cGhvcmUpOwogI2VuZGlmCiAKICAgICBpZiAobV92aWRlb0xheWVyKQpAQCAtMjM2OSwyMSArMjM2
NSwxNyBAQCBOYXRpdmVJbWFnZVB0ciBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjp3YWl0Rm9yVmlkZW9PdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlKCkK
IHsKLSAgICBpZiAoIW1fdmlkZW9PdXRwdXRTZW1hcGhvcmUpCi0gICAgICAgIG1fdmlkZW9PdXRw
dXRTZW1hcGhvcmUgPSBkaXNwYXRjaF9zZW1hcGhvcmVfY3JlYXRlKDApOwotCiAgICAgW21fdmlk
ZW9PdXRwdXQgcmVxdWVzdE5vdGlmaWNhdGlvbk9mTWVkaWFEYXRhQ2hhbmdlV2l0aEFkdmFuY2VJ
bnRlcnZhbDowXTsKIAogICAgIC8vIFdhaXQgZm9yIDEgc2Vjb25kLgotICAgIGxvbmcgcmVzdWx0
ID0gZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQobV92aWRlb091dHB1dFNlbWFwaG9yZSwgZGlzcGF0
Y2hfdGltZSgwLCAxICogTlNFQ19QRVJfU0VDKSk7Ci0KLSAgICBpZiAocmVzdWx0KQorICAgIGJv
b2wgc2F0aXNmaWVkID0gbV92aWRlb091dHB1dFNlbWFwaG9yZS53YWl0KFdhbGxUaW1lOjpub3co
KSArIDFfcyk7CisgICAgaWYgKCFzYXRpc2ZpZWQpCiAgICAgICAgIEVSUk9SX0xPRyhMT0dJREVO
VElGSUVSLCAidGltZWQgb3V0Iik7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6b3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZShBVlBsYXllckl0ZW1WaWRlb091
dHB1dFR5cGUgKikKIHsKLSAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKG1fdmlkZW9PdXRw
dXRTZW1hcGhvcmUpOworICAgIG1fdmlkZW9PdXRwdXRTZW1hcGhvcmUuc2lnbmFsKCk7CiB9CiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDLmgKaW5kZXggMTFmMmZhOTJkMmU2YzJjZWUyMDZlNTg2ZTZkNTZhNDAwYzQxOWY0
YS4uNWVhMzZiNzE1YWI4MWY4ODQzMzM5ZDM4M2QzMmEwYTFmNjMzYTQ3MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCkBAIC0y
OSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlLmgiCiAjaW5jbHVk
ZSA8ZGlzcGF0Y2gvZ3JvdXAuaD4KLSNpbmNsdWRlIDxkaXNwYXRjaC9zZW1hcGhvcmUuaD4KKyNp
bmNsdWRlIDx3dGYvQm94Lmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CkBAIC0zOSw2ICszOSw3IEBA
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RocmVhZHMvQmlu
YXJ5U2VtYXBob3JlLmg+CiAKIE9CSkNfQ0xBU1MgQVZBc3NldDsKIE9CSkNfQ0xBU1MgQVZTdHJl
YW1EYXRhUGFyc2VyOwpAQCAtOTAsNyArOTEsNyBAQCBjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQyBmaW5hbCA6IHB1YmxpYyBTb3VyY2VCdWZmZXJQcml2YXRlIHsKICAgICB2b2lkIGRp
ZFByb3ZpZGVNZWRpYURhdGFGb3JUcmFja0lEKGludCB0cmFja0lELCBDTVNhbXBsZUJ1ZmZlclJl
ZiwgY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUsIHVuc2lnbmVkIGZsYWdzKTsKICAgICB2b2lkIGRp
ZFJlYWNoRW5kT2ZUcmFja1dpdGhUcmFja0lEKGludCB0cmFja0lELCBjb25zdCBTdHJpbmcmIG1l
ZGlhVHlwZSk7CiAgICAgdm9pZCB3aWxsUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6
YXRpb25EYXRhRm9yVHJhY2tJRChpbnQgdHJhY2tJRCk7Ci0gICAgdm9pZCBkaWRQcm92aWRlQ29u
dGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKE5TRGF0YSosIGludCB0
cmFja0lELCBPU09iamVjdFB0cjxkaXNwYXRjaF9zZW1hcGhvcmVfdD4pOworICAgIHZvaWQgZGlk
UHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRChOU0Rh
dGEqLCBpbnQgdHJhY2tJRCwgQm94PEJpbmFyeVNlbWFwaG9yZT4pOwogCiAgICAgYm9vbCBwcm9j
ZXNzQ29kZWRGcmFtZShpbnQgdHJhY2tJRCwgQ01TYW1wbGVCdWZmZXJSZWYsIGNvbnN0IFN0cmlu
ZyYgbWVkaWFUeXBlKTsKIApAQCAtMTc3LDcgKzE3OCw3IEBAIGNsYXNzIFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDIGZpbmFsIDogcHVibGljIFNvdXJjZUJ1ZmZlclByaXZhdGUgewogICAgIFJl
dGFpblB0cjxXZWJBVlN0cmVhbURhdGFQYXJzZXJMaXN0ZW5lcj4gbV9kZWxlZ2F0ZTsKICAgICBS
ZXRhaW5QdHI8V2ViQVZTYW1wbGVCdWZmZXJFcnJvckxpc3RlbmVyPiBtX2Vycm9yTGlzdGVuZXI7
CiAgICAgUmV0YWluUHRyPE5TRXJyb3I+IG1faGRjcEVycm9yOwotICAgIE9TT2JqZWN0UHRyPGRp
c3BhdGNoX3NlbWFwaG9yZV90PiBtX2hhc1Nlc3Npb25TZW1hcGhvcmU7CisgICAgQm94PEJpbmFy
eVNlbWFwaG9yZT4gbV9oYXNTZXNzaW9uU2VtYXBob3JlOwogICAgIE9TT2JqZWN0UHRyPGRpc3Bh
dGNoX2dyb3VwX3Q+IG1faXNBcHBlbmRpbmdHcm91cDsKICAgICBSZWZQdHI8V2ViQ29yZURlY29t
cHJlc3Npb25TZXNzaW9uPiBtX2RlY29tcHJlc3Npb25TZXNzaW9uOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDU0
Y2ZiOGVhYjczM2UyZTUzZjQ5M2IyODY2NjA1N2Q2MDRjMjUyOTkuLmIyNTQxZGI0NDJlN2FjMzhl
YzU3OWQ5MTI3YmYyY2E5ODJhYjIzNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBAIC01NSw2ICs1NSw3IEBACiAjaW1w
b3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL0hhc2hDb3VudGVk
U2V0Lmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL1NlbWFwaG9y
ZS5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAjaW1wb3J0IDx3dGYvV2Vha1B0ci5o
PgogI2ltcG9ydCA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CkBAIC0xMDksMTEgKzExMCwxMSBA
QCBAZW5kCiAKIEBpbnRlcmZhY2UgV2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgOiBOU09i
amVjdDxBVlN0cmVhbURhdGFQYXJzZXJPdXRwdXRIYW5kbGluZz4gewogICAgIFdlYWtQdHI8V2Vi
Q29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+IF9wYXJlbnQ7Ci0gICAgT1NPYmplY3RQ
dHI8ZGlzcGF0Y2hfc2VtYXBob3JlX3Q+IF9hYm9ydFNlbWFwaG9yZTsKKyAgICBCb3g8U2VtYXBo
b3JlPiBfYWJvcnRTZW1hcGhvcmU7CiAgICAgQVZTdHJlYW1EYXRhUGFyc2VyKiBfcGFyc2VyOwog
fQogQHByb3BlcnR5IChhc3NpZ24pIFdlYWtQdHI8V2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM+IHBhcmVudDsKLUBwcm9wZXJ0eSAoYXNzaWduKSBPU09iamVjdFB0cjxkaXNwYXRj
aF9zZW1hcGhvcmVfdD4gYWJvcnRTZW1hcGhvcmU7CitAcHJvcGVydHkgKGFzc2lnbikgQm94PFNl
bWFwaG9yZT4gYWJvcnRTZW1hcGhvcmU7CiAtIChpZClpbml0V2l0aFBhcnNlcjooQVZTdHJlYW1E
YXRhUGFyc2VyKilwYXJzZXIgcGFyZW50OihXZWFrUHRyPFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDPilwYXJlbnQ7CiBAZW5kCiAKQEAgLTIwNywxOSArMjA4LDE5IEBAIC0gKHZv
aWQpc3RyZWFtRGF0YVBhcnNlcldpbGxQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXph
dGlvbkRhdGE6KEFWU3RyZWFtCiAKICAgICAvLyBXZSBtdXN0IGNhbGwgc3luY2hyb25vdXNseSB0
byB0aGUgbWFpbiB0aHJlYWQsIGFzIHRoZSBBVlN0cmVhbVNlc3Npb24gbXVzdCBiZSBhc3NvY2lh
dGVkCiAgICAgLy8gd2l0aCB0aGUgc3RyZWFtRGF0YVBhcnNlciBiZWZvcmUgdGhlIGRlbGVnYXRl
IG1ldGhvZCByZXR1cm5zLgotICAgIE9TT2JqZWN0UHRyPGRpc3BhdGNoX3NlbWFwaG9yZV90PiBy
ZXNwb25kZWRTZW1hcGhvcmUgPSBhZG9wdE9TT2JqZWN0KGRpc3BhdGNoX3NlbWFwaG9yZV9jcmVh
dGUoMCkpOworICAgIEJveDxCaW5hcnlTZW1hcGhvcmU+IHJlc3BvbmRlZFNlbWFwaG9yZSA9IEJv
eDxCaW5hcnlTZW1hcGhvcmU+OjpjcmVhdGUoKTsKICAgICBjYWxsT25NYWluVGhyZWFkKFtwYXJl
bnQgPSBfcGFyZW50LCB0cmFja0lELCByZXNwb25kZWRTZW1hcGhvcmVdKCkgewogICAgICAgICBp
ZiAocGFyZW50KQogICAgICAgICAgICAgcGFyZW50LT53aWxsUHJvdmlkZUNvbnRlbnRLZXlSZXF1
ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRCh0cmFja0lEKTsKLSAgICAgICAgZGlzcGF0
Y2hfc2VtYXBob3JlX3NpZ25hbChyZXNwb25kZWRTZW1hcGhvcmUuZ2V0KCkpOworICAgICAgICBy
ZXNwb25kZWRTZW1hcGhvcmUtPnNpZ25hbCgpOwogICAgIH0pOwogCiAgICAgd2hpbGUgKHRydWUp
IHsKLSAgICAgICAgaWYgKCFkaXNwYXRjaF9zZW1hcGhvcmVfd2FpdChyZXNwb25kZWRTZW1hcGhv
cmUuZ2V0KCksIGRpc3BhdGNoX3RpbWUoRElTUEFUQ0hfVElNRV9OT1csIE5TRUNfUEVSX01TRUMg
KiAxMDApKSkKKyAgICAgICAgaWYgKHJlc3BvbmRlZFNlbWFwaG9yZS0+d2FpdEZvcigxMDBfbXMp
KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmICghZGlzcGF0Y2hfc2VtYXBob3Jl
X3dhaXQoX2Fib3J0U2VtYXBob3JlLmdldCgpLCBkaXNwYXRjaF90aW1lKERJU1BBVENIX1RJTUVf
Tk9XLCBOU0VDX1BFUl9NU0VDICogMTAwKSkpIHsKLSAgICAgICAgICAgIGRpc3BhdGNoX3NlbWFw
aG9yZV9zaWduYWwoX2Fib3J0U2VtYXBob3JlLmdldCgpKTsKKyAgICAgICAgaWYgKF9hYm9ydFNl
bWFwaG9yZS0+d2FpdEZvcigxMDBfbXMpKSB7CisgICAgICAgICAgICBfYWJvcnRTZW1hcGhvcmUt
PnNpZ25hbCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpAQCAtMjI5
LDE4ICsyMzAsMTggQEAgLSAodm9pZClzdHJlYW1EYXRhUGFyc2VyOihBVlN0cmVhbURhdGFQYXJz
ZXIgKilzdHJlYW1EYXRhUGFyc2VyIGRpZFByb3ZpZGVDb250ZW4KIHsKICAgICBBU1NFUlRfVU5V
U0VEKHN0cmVhbURhdGFQYXJzZXIsIHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7CiAKLSAg
ICBPU09iamVjdFB0cjxkaXNwYXRjaF9zZW1hcGhvcmVfdD4gaGFzU2Vzc2lvblNlbWFwaG9yZSA9
IGFkb3B0T1NPYmplY3QoZGlzcGF0Y2hfc2VtYXBob3JlX2NyZWF0ZSgwKSk7CisgICAgQm94PEJp
bmFyeVNlbWFwaG9yZT4gaGFzU2Vzc2lvblNlbWFwaG9yZSA9IEJveDxCaW5hcnlTZW1hcGhvcmU+
OjpjcmVhdGUoKTsKICAgICBjYWxsT25NYWluVGhyZWFkKFtwYXJlbnQgPSBfcGFyZW50LCBwcm90
ZWN0ZWRJbml0RGF0YSA9IFJldGFpblB0cjxOU0RhdGE+KGluaXREYXRhKSwgdHJhY2tJRCwgaGFz
U2Vzc2lvblNlbWFwaG9yZV0gewogICAgICAgICBpZiAocGFyZW50KQogICAgICAgICAgICAgcGFy
ZW50LT5kaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFj
a0lEKHByb3RlY3RlZEluaXREYXRhLmdldCgpLCB0cmFja0lELCBoYXNTZXNzaW9uU2VtYXBob3Jl
KTsKICAgICB9KTsKIAogICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIGlmICghZGlzcGF0Y2hf
c2VtYXBob3JlX3dhaXQoaGFzU2Vzc2lvblNlbWFwaG9yZS5nZXQoKSwgZGlzcGF0Y2hfdGltZShE
SVNQQVRDSF9USU1FX05PVywgTlNFQ19QRVJfTVNFQyAqIDEwMCkpKQorICAgICAgICBpZiAoaGFz
U2Vzc2lvblNlbWFwaG9yZS0+d2FpdEZvcigxMDBfbXMpKQogICAgICAgICAgICAgcmV0dXJuOwog
Ci0gICAgICAgIGlmICghZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQoX2Fib3J0U2VtYXBob3JlLmdl
dCgpLCBkaXNwYXRjaF90aW1lKERJU1BBVENIX1RJTUVfTk9XLCBOU0VDX1BFUl9NU0VDICogMTAw
KSkpIHsKLSAgICAgICAgICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWduYWwoX2Fib3J0U2VtYXBo
b3JlLmdldCgpKTsKKyAgICAgICAgaWYgKF9hYm9ydFNlbWFwaG9yZS0+d2FpdEZvcigxMDBfbXMp
KSB7CisgICAgICAgICAgICBfYWJvcnRTZW1hcGhvcmUtPnNpZ25hbCgpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAgICAgfQpAQCAtNTA5LDcgKzUxMCw3IEBAIFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyhNZWRpYVNvdXJjZVBy
aXZhdGVBVkZPYmpDCiAgICAgLCBtX21lZGlhU291cmNlKHBhcmVudCkKIHsKICAgICBDTU5vdGlm
aWNhdGlvbkNlbnRlckFkZExpc3RlbmVyKENNTm90aWZpY2F0aW9uQ2VudGVyR2V0RGVmYXVsdExv
Y2FsQ2VudGVyKCksIHRoaXMsIGJ1ZmZlcldhc0NvbnN1bWVkQ2FsbGJhY2ssIGtDTVNhbXBsZUJ1
ZmZlckNvbnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBudWxscHRyLCAwKTsKLSAg
ICBtX2RlbGVnYXRlLmdldCgpLmFib3J0U2VtYXBob3JlID0gYWRvcHRPU09iamVjdChkaXNwYXRj
aF9zZW1hcGhvcmVfY3JlYXRlKDApKTsKKyAgICBtX2RlbGVnYXRlLmdldCgpLmFib3J0U2VtYXBo
b3JlID0gQm94PFNlbWFwaG9yZT46OmNyZWF0ZSgwKTsKIH0KIAogU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6On5Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQygpCkBAIC01MjEsNyArNTIyLDcg
QEAgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6On5Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
QygpCiAgICAgQ01Ob3RpZmljYXRpb25DZW50ZXJSZW1vdmVMaXN0ZW5lcihDTU5vdGlmaWNhdGlv
bkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRlcigpLCB0aGlzLCBidWZmZXJXYXNDb25zdW1lZENh
bGxiYWNrLCBrQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1l
ZCwgbnVsbHB0cik7CiAKICAgICBpZiAobV9oYXNTZXNzaW9uU2VtYXBob3JlKQotICAgICAgICBk
aXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKG1faGFzU2Vzc2lvblNlbWFwaG9yZS5nZXQoKSk7Cisg
ICAgICAgIG1faGFzU2Vzc2lvblNlbWFwaG9yZS0+c2lnbmFsKCk7CiB9CiAKIHZvaWQgU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFBhcnNlU3RyZWFtRGF0YUFzQXNzZXQoQVZBc3NldCog
YXNzZXQpCkBAIC02NTEsNyArNjUyLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qzo6d2lsbFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUYKICNlbmRp
ZgogfQogCi12b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlQ29udGVu
dEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKE5TRGF0YSogaW5pdERhdGEs
IGludCB0cmFja0lELCBPU09iamVjdFB0cjxkaXNwYXRjaF9zZW1hcGhvcmVfdD4gaGFzU2Vzc2lv
blNlbWFwaG9yZSkKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVD
b250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUZvclRyYWNrSUQoTlNEYXRhKiBpbml0
RGF0YSwgaW50IHRyYWNrSUQsIEJveDxCaW5hcnlTZW1hcGhvcmU+IGhhc1Nlc3Npb25TZW1hcGhv
cmUpCiB7CiAgICAgaWYgKCFtX21lZGlhU291cmNlKQogICAgICAgICByZXR1cm47CkBAIC02NjQs
MTAgKzY2NSwxMCBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRl
Q29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGbwogICAgIG1fbWVkaWFTb3VyY2Ut
PnNvdXJjZUJ1ZmZlcktleU5lZWRlZCh0aGlzLCBpbml0RGF0YUFycmF5LmdldCgpKTsKICAgICBp
ZiAoYXV0byBzZXNzaW9uID0gbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPmNkbVNlc3Npb24oKSkg
ewogICAgICAgICBzZXNzaW9uLT5hZGRQYXJzZXIobV9wYXJzZXIuZ2V0KCkpOwotICAgICAgICBk
aXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKGhhc1Nlc3Npb25TZW1hcGhvcmUuZ2V0KCkpOworICAg
ICAgICBoYXNTZXNzaW9uU2VtYXBob3JlLT5zaWduYWwoKTsKICAgICB9IGVsc2UgewogICAgICAg
ICBpZiAobV9oYXNTZXNzaW9uU2VtYXBob3JlKQotICAgICAgICAgICAgZGlzcGF0Y2hfc2VtYXBo
b3JlX3NpZ25hbChtX2hhc1Nlc3Npb25TZW1hcGhvcmUuZ2V0KCkpOworICAgICAgICAgICAgbV9o
YXNTZXNzaW9uU2VtYXBob3JlLT5zaWduYWwoKTsKICAgICAgICAgbV9oYXNTZXNzaW9uU2VtYXBo
b3JlID0gaGFzU2Vzc2lvblNlbWFwaG9yZTsKICAgICB9CiAjZW5kaWYKQEAgLTc0MiwxMiArNzQz
LDEyIEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFib3J0KCkKICAgICAvLyB3
ZXJlIGFza2VkIHRvIGFib3J0LCBhbmQgdGhhdCBjYW5jZWxzIGFsbCBvdXRzdGFuZGluZyBhcHBl
bmQgb3BlcmF0aW9ucy4gV2l0aG91dCBjYW5jZWxsaW5nIHRoaXMKICAgICAvLyBzZW1hcGhvcmUs
IHRoZSBtX2lzQXBwZW5kaW5nR3JvdXAgd2FpdCBvcGVyYXRpb24gd2lsbCBkZWFkbG9jay4KICAg
ICBpZiAobV9oYXNTZXNzaW9uU2VtYXBob3JlKQotICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVf
c2lnbmFsKG1faGFzU2Vzc2lvblNlbWFwaG9yZS5nZXQoKSk7Ci0gICAgZGlzcGF0Y2hfc2VtYXBo
b3JlX3NpZ25hbChtX2RlbGVnYXRlLmdldCgpLmFib3J0U2VtYXBob3JlLmdldCgpKTsKKyAgICAg
ICAgbV9oYXNTZXNzaW9uU2VtYXBob3JlLT5zaWduYWwoKTsKKyAgICBtX2RlbGVnYXRlLmdldCgp
LmFib3J0U2VtYXBob3JlLT5zaWduYWwoKTsKICAgICBkaXNwYXRjaF9ncm91cF93YWl0KG1faXNB
cHBlbmRpbmdHcm91cC5nZXQoKSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKICAgICBtX2FwcGVu
ZFdlYWtGYWN0b3J5LnJldm9rZUFsbCgpOwogICAgIG1fZGVsZWdhdGUuZ2V0KCkucGFyZW50ID0g
bV9hcHBlbmRXZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsKLSAgICBtX2RlbGVnYXRl
LmdldCgpLmFib3J0U2VtYXBob3JlID0gYWRvcHRPU09iamVjdChkaXNwYXRjaF9zZW1hcGhvcmVf
Y3JlYXRlKDApKTsKKyAgICBtX2RlbGVnYXRlLmdldCgpLmFib3J0U2VtYXBob3JlID0gQm94PFNl
bWFwaG9yZT46OmNyZWF0ZSgpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
OjpyZXNldFBhcnNlclN0YXRlKCkKQEAgLTg5OSw3ICs5MDAsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDOjpzZXRDRE1TZXNzaW9uKENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9i
akMqIHNlcwogICAgIGlmIChtX3Nlc3Npb24pIHsKICAgICAgICAgbV9zZXNzaW9uLT5hZGRTb3Vy
Y2VCdWZmZXIodGhpcyk7CiAgICAgICAgIGlmIChtX2hhc1Nlc3Npb25TZW1hcGhvcmUpIHsKLSAg
ICAgICAgICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWduYWwobV9oYXNTZXNzaW9uU2VtYXBob3Jl
LmdldCgpKTsKKyAgICAgICAgICAgIG1faGFzU2Vzc2lvblNlbWFwaG9yZS0+c2lnbmFsKCk7CiAg
ICAgICAgICAgICBtX2hhc1Nlc3Npb25TZW1hcGhvcmUgPSBudWxscHRyOwogICAgICAgICB9CiAK
QEAgLTkzNCw3ICs5MzUsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpzZXRD
RE1JbnN0YW5jZShDRE1JbnN0YW5jZSogaW5zdGFuY2UpCiAgICAgaWYgKG1fY2RtSW5zdGFuY2Up
IHsKICAgICAgICAgW21fY2RtSW5zdGFuY2UtPmNvbnRlbnRLZXlTZXNzaW9uKCkgYWRkQ29udGVu
dEtleVJlY2lwaWVudDptX3BhcnNlci5nZXQoKV07CiAgICAgICAgIGlmIChtX2hhc1Nlc3Npb25T
ZW1hcGhvcmUpIHsKLSAgICAgICAgICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWduYWwobV9oYXNT
ZXNzaW9uU2VtYXBob3JlLmdldCgpKTsKKyAgICAgICAgICAgIG1faGFzU2Vzc2lvblNlbWFwaG9y
ZS0+c2lnbmFsKCk7CiAgICAgICAgICAgICBtX2hhc1Nlc3Npb25TZW1hcGhvcmUgPSBudWxscHRy
OwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24u
aAppbmRleCBmMTk2YzIwMTZjY2Y3MzBhNzEwMTJiNzIyYmFkOWQ1ZmQ0YTc1ZTgzLi44MzdkNjEy
ZWZmOTI0ZmEzZTE0M2E3MGJmYzZmMmQ2M2Y1NTU0ZTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb24uaApAQCAtMTE3LDcgKzExNyw2IEBAIGNsYXNzIFdlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXZWJDb3JlRGVj
b21wcmVzCiAgICAgUmV0YWluUHRyPENNVGltZWJhc2VSZWY+IG1fdGltZWJhc2U7CiAgICAgT1NP
YmplY3RQdHI8ZGlzcGF0Y2hfcXVldWVfdD4gbV9kZWNvbXByZXNzaW9uUXVldWU7CiAgICAgT1NP
YmplY3RQdHI8ZGlzcGF0Y2hfcXVldWVfdD4gbV9lbnF1ZWluZ1F1ZXVlOwotICAgIE9TT2JqZWN0
UHRyPGRpc3BhdGNoX3NlbWFwaG9yZV90PiBtX2hhc0F2YWlsYWJsZUltYWdlU2VtYXBob3JlOwog
ICAgIE9TT2JqZWN0UHRyPGRpc3BhdGNoX3NvdXJjZV90PiBtX3RpbWVyU291cmNlOwogICAgIHN0
ZDo6ZnVuY3Rpb248dm9pZCgpPiBtX25vdGlmaWNhdGlvbkNhbGxiYWNrOwogICAgIHN0ZDo6ZnVu
Y3Rpb248dm9pZCgpPiBtX2hhc0F2YWlsYWJsZUZyYW1lQ2FsbGJhY2s7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lv
blNlc3Npb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0KaW5kZXggM2FiY2JkY2Q4ZjI5MWFjOWM1ZTYwYWM2
NGZmZjI5NDVlMWY5MWVlZi4uNjRmNmRmZWNiMDE2NzE3MTY2MGI4MzMwYTBhMjc2NmY3Y2U3Yzhj
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2Vi
Q29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbQpAQCAtNTMsNyAr
NTMsNiBAQCBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OldlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbihNb2RlIG1vZGUpCiAgICAgOiBtX21vZGUobW9kZSkKICAgICAsIG1fZGVjb21wcmVz
c2lvblF1ZXVlKGFkb3B0T1NPYmplY3QoZGlzcGF0Y2hfcXVldWVfY3JlYXRlKCJXZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb24gRGVjb21wcmVzc2lvbiBRdWV1ZSIsIERJU1BBVENIX1FVRVVFX1NF
UklBTCkpKQogICAgICwgbV9lbnF1ZWluZ1F1ZXVlKGFkb3B0T1NPYmplY3QoZGlzcGF0Y2hfcXVl
dWVfY3JlYXRlKCJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24gRW5xdWV1ZWluZyBRdWV1ZSIs
IERJU1BBVENIX1FVRVVFX1NFUklBTCkpKQotICAgICwgbV9oYXNBdmFpbGFibGVJbWFnZVNlbWFw
aG9yZShhZG9wdE9TT2JqZWN0KGRpc3BhdGNoX3NlbWFwaG9yZV9jcmVhdGUoMCkpKQogewogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNl
SGFuZGxlQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZUhhbmRsZUNGTmV0LmNwcAppbmRleCA5Nzg2NGZlNWJmOWU5MjgzOGNkNzE4ZTkzNTFlMTY4
MTg0ODYyZTdjLi5lNzExYTY3MTgwNDA1OTRlYWU2NzZjMmU5NTY1MTIwMWQ2ZmZlMTU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxl
Q0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3Vy
Y2VIYW5kbGVDRk5ldC5jcHAKQEAgLTU4NSw3ICs1ODUsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxl
OjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNv
bnRleAogICAgICAgICAgICAgd2hpbGUgKHRydWUpCiAgICAgICAgICAgICAgICAgQ0ZSdW5Mb29w
UnVuSW5Nb2RlKGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSwgMUUzMCwgdHJ1ZSk7CiAgICAgICAgIH0p
OwotICAgICAgICBzZW0ud2FpdChUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUoV2FsbFRpbWU6Omlu
ZmluaXR5KCkpKTsKKyAgICAgICAgc2VtLndhaXQoKTsKICAgICB9CiAgICAgQ0ZVUkxDb25uZWN0
aW9uU2NoZWR1bGVXaXRoUnVuTG9vcChoYW5kbGUtPmNvbm5lY3Rpb24oKSwgcnVuTG9vcCwga0NG
UnVuTG9vcERlZmF1bHRNb2RlKTsKICAgICBDRlVSTENvbm5lY3Rpb25TY2hlZHVsZURvd25sb2Fk
V2l0aFJ1bkxvb3AoaGFuZGxlLT5jb25uZWN0aW9uKCksIHJ1bkxvb3AsIGtDRlJ1bkxvb3BEZWZh
dWx0TW9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNG
VVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcAppbmRleCA5NWU3ZmZk
NTc4NmYwYmFhMjVhNDliMjFkMjkxOTZjMzhiYmNkNTg0Li5kYWQ5MDEwZjk1NzBlYmM1Njc2MzM1
NDNmZDFmYzUwMmY4NDY5Yjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0
aW9uUXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHAK
QEAgLTExOSw3ICsxMTksNyBAQCBzdGF0aWMgQ0ZSdW5Mb29wUmVmIGdldFJ1bkxvb3AoKQogICAg
ICAgICAgICAgd2hpbGUgKHRydWUpCiAgICAgICAgICAgICAgICAgQ0ZSdW5Mb29wUnVuSW5Nb2Rl
KGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSwgMUUzMCwgdHJ1ZSk7CiAgICAgICAgIH0pOwotICAgICAg
ICBzZW0ud2FpdChUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUoV2FsbFRpbWU6OmluZmluaXR5KCkp
KTsKKyAgICAgICAgc2VtLndhaXQoKTsKICAgICB9CiAKICAgICByZXR1cm4gcnVuTG9vcDsKQEAg
LTE3Miw3ICsxNzIsNyBAQCBDRlVSTFJlcXVlc3RSZWYgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5l
Y3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6d2lsbFNlbgogICAgICAgICBtX21lc3Nh
Z2VRdWV1ZS0+YXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8RnVuY3Rpb248dm9pZCgpPj4oV1RGTW92
ZSh3b3JrKSkpOwogICAgIGVsc2UKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKHdv
cmspKTsKLSAgICBtX3NlbWFwaG9yZS53YWl0KFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZShXYWxs
VGltZTo6aW5maW5pdHkoKSkpOworICAgIG1fc2VtYXBob3JlLndhaXQoKTsKIAogICAgIHJldHVy
biBtX3JlcXVlc3RSZXN1bHQubGVha1JlZigpOwogfQpAQCAtMjEwLDcgKzIxMCw3IEBAIHZvaWQg
UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6
ZGlkUmVjZWl2ZVJlc3BvbnNlCiAgICAgICAgIG1fbWVzc2FnZVF1ZXVlLT5hcHBlbmQoc3RkOjpt
YWtlX3VuaXF1ZTxGdW5jdGlvbjx2b2lkKCk+PihXVEZNb3ZlKHdvcmspKSk7CiAgICAgZWxzZQog
ICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUod29yaykpOwotICAgIG1fc2VtYXBob3Jl
LndhaXQoVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlKFdhbGxUaW1lOjppbmZpbml0eSgpKSk7Cisg
ICAgbV9zZW1hcGhvcmUud2FpdCgpOwogfQogCiB2b2lkIFJlc291cmNlSGFuZGxlQ0ZVUkxDb25u
ZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmRpZFJlY2VpdmVEYXRhKENGRGF0YVJl
ZiBkYXRhLCBDRkluZGV4IG9yaWdpbmFsTGVuZ3RoKQpAQCAtMzE0LDcgKzMxNCw3IEBAIENGQ2Fj
aGVkVVJMUmVzcG9uc2VSZWYgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdp
dGhPcGVyYXRpb25RdWV1ZTo6CiAgICAgICAgIG1fbWVzc2FnZVF1ZXVlLT5hcHBlbmQoc3RkOjpt
YWtlX3VuaXF1ZTxGdW5jdGlvbjx2b2lkKCk+PihXVEZNb3ZlKHdvcmspKSk7CiAgICAgZWxzZQog
ICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUod29yaykpOwotICAgIG1fc2VtYXBob3Jl
LndhaXQoVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlKFdhbGxUaW1lOjppbmZpbml0eSgpKSk7Cisg
ICAgbV9zZW1hcGhvcmUud2FpdCgpOwogICAgIHJldHVybiBtX2NhY2hlZFJlc3BvbnNlUmVzdWx0
LmxlYWtSZWYoKTsKIH0KIApAQCAtMzgzLDcgKzM4Myw3IEBAIEJvb2xlYW4gUmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6Y2FuUmVzcG9uZFRv
UHJvCiAgICAgICAgIG1fbWVzc2FnZVF1ZXVlLT5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxGdW5j
dGlvbjx2b2lkKCk+PihXVEZNb3ZlKHdvcmspKSk7CiAgICAgZWxzZQogICAgICAgICBjYWxsT25N
YWluVGhyZWFkKFdURk1vdmUod29yaykpOwotICAgIG1fc2VtYXBob3JlLndhaXQoVGltZVdpdGhE
eW5hbWljQ2xvY2tUeXBlKFdhbGxUaW1lOjppbmZpbml0eSgpKSk7CisgICAgbV9zZW1hcGhvcmUu
d2FpdCgpOwogICAgIHJldHVybiBtX2Jvb2xSZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3Bl
cmF0aW9uUXVldWVEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLmgKaW5kZXgg
NDgzNTQyNjRlNjhhMmUwOTViODdkNTNkOTNlNWE5ZTIwNjQ5Y2M0NS4uM2VkYTI3ZWE4YTIxN2M2
MjBmOWEzZWRhNzViMGVmNjgwZDgxNDIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURl
bGVnYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29y
ZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLmgKQEAgLTMxLDYgKzMxLDcg
QEAKICNpbmNsdWRlIDx3dGYvTWVzc2FnZVF1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9TY2hlZHVsZVBhaXIuaD4KKyNpbmNsdWRlIDx3dGYvdGhyZWFk
cy9CaW5hcnlTZW1hcGhvcmUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVzb3Vy
Y2VIYW5kbGU7CkBAIC00MCw3ICs0MSw3IEBAIGNsYXNzIFJlc291cmNlSGFuZGxlOwogICAgIFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlKiBtX2hhbmRsZTsKIAogICAgIC8vIFN5bmNocm9ub3VzIGRl
bGVnYXRlcyBvbiBvcGVyYXRpb24gcXVldWUgd2FpdCB1bnRpbCBtYWluIHRocmVhZCBzZW5kcyBh
biBhc3luY2hyb25vdXMgcmVzcG9uc2UuCi0gICAgZGlzcGF0Y2hfc2VtYXBob3JlX3QgbV9zZW1h
cGhvcmU7CisgICAgQmluYXJ5U2VtYXBob3JlIG1fc2VtYXBob3JlOwogICAgIE1lc3NhZ2VRdWV1
ZTxGdW5jdGlvbjx2b2lkKCk+PiogbV9tZXNzYWdlUXVldWU7CiAgICAgUmV0YWluUHRyPE5TVVJM
UmVxdWVzdD4gbV9yZXF1ZXN0UmVzdWx0OwogICAgIExvY2sgbV9tdXRleDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRs
ZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5t
bQppbmRleCBhNWFiMzY3NTQ2MmRjNjY4MGJiOTk0NTMxNjY4MDgwODY0MjM0NDBiLi5kYzk4Y2Fl
OTZmMzcxN2Y4MjYzYzI5YzU5OTY4N2M2NzE1OTI5OTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlv
blF1ZXVlRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCkBAIC04
OSw3ICs4OSw2IEBAIC0gKGlkKWluaXRXaXRoSGFuZGxlOihSZXNvdXJjZUhhbmRsZSopaGFuZGxl
IG1lc3NhZ2VRdWV1ZTooTWVzc2FnZVF1ZXVlPEZ1bmN0aW9uCiAgICAgICAgIGlmIChhdXRvKiBw
YWlycyA9IG1faGFuZGxlLT5jb250ZXh0KCktPnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpKQogICAg
ICAgICAgICAgbV9zY2hlZHVsZWRQYWlycyA9ICpwYWlyczsKICAgICB9Ci0gICAgbV9zZW1hcGhv
cmUgPSBkaXNwYXRjaF9zZW1hcGhvcmVfY3JlYXRlKDApOwogICAgIG1fbWVzc2FnZVF1ZXVlID0g
bWVzc2FnZVF1ZXVlOwogCiAgICAgcmV0dXJuIHNlbGY7CkBAIC0xMDUsMTIgKzEwNCwxMSBAQCAt
ICh2b2lkKWRldGFjaEhhbmRsZQogICAgIG1fcmVxdWVzdFJlc3VsdCA9IG51bGxwdHI7CiAgICAg
bV9jYWNoZWRSZXNwb25zZVJlc3VsdCA9IG51bGxwdHI7CiAgICAgbV9ib29sUmVzdWx0ID0gTk87
Ci0gICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbChtX3NlbWFwaG9yZSk7IC8vIE9LIHRvIHNp
Z25hbCBldmVuIGlmIHdlIGFyZSBub3Qgd2FpdGluZy4KKyAgICBtX3NlbWFwaG9yZS5zaWduYWwo
KTsgLy8gT0sgdG8gc2lnbmFsIGV2ZW4gaWYgd2UgYXJlIG5vdCB3YWl0aW5nLgogfQogCiAtICh2
b2lkKWRlYWxsb2MKIHsKLSAgICBkaXNwYXRjaF9yZWxlYXNlKG1fc2VtYXBob3JlKTsKICAgICBb
c3VwZXIgZGVhbGxvY107CiB9CiAKQEAgLTEzNiwxOCArMTM0LDE4IEBAIC0gKE5TVVJMUmVxdWVz
dCAqKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gd2lsbFNlbmRSZXF1
ZXN0OihOU1VSCiAgICAgYXV0byB3b3JrID0gW3NlbGYsIHByb3RlY3RlZFNlbGYsIG5ld1JlcXVl
c3QgPSByZXRhaW5QdHIobmV3UmVxdWVzdCksIHJlZGlyZWN0UmVzcG9uc2UgPSByZXRhaW5QdHIo
cmVkaXJlY3RSZXNwb25zZSldICgpIG11dGFibGUgewogICAgICAgICBpZiAoIW1faGFuZGxlKSB7
CiAgICAgICAgICAgICBtX3JlcXVlc3RSZXN1bHQgPSBudWxscHRyOwotICAgICAgICAgICAgZGlz
cGF0Y2hfc2VtYXBob3JlX3NpZ25hbChtX3NlbWFwaG9yZSk7CisgICAgICAgICAgICBtX3NlbWFw
aG9yZS5zaWduYWwoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAg
IG1faGFuZGxlLT53aWxsU2VuZFJlcXVlc3QobmV3UmVxdWVzdC5nZXQoKSwgcmVkaXJlY3RSZXNw
b25zZS5nZXQoKSwgW3NlbGYsIHByb3RlY3RlZFNlbGYgPSBXVEZNb3ZlKHByb3RlY3RlZFNlbGYp
XShSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KSB7CiAgICAgICAgICAgICBtX3JlcXVlc3RSZXN1
bHQgPSByZXF1ZXN0Lm5zVVJMUmVxdWVzdChVcGRhdGVIVFRQQm9keSk7Ci0gICAgICAgICAgICBk
aXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKG1fc2VtYXBob3JlKTsKKyAgICAgICAgICAgIG1fc2Vt
YXBob3JlLnNpZ25hbCgpOwogICAgICAgICB9KTsKICAgICB9OwogCiAgICAgW3NlbGYgY2FsbEZ1
bmN0aW9uT25NYWluVGhyZWFkOldURk1vdmUod29yayldOwotICAgIGRpc3BhdGNoX3NlbWFwaG9y
ZV93YWl0KG1fc2VtYXBob3JlLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOworICAgIG1fc2VtYXBo
b3JlLndhaXQoKTsKIAogICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICBpZiAoIW1f
aGFuZGxlKQpAQCAtMTkxLDE3ICsxODksMTcgQEAgLSAoQk9PTCljb25uZWN0aW9uOihOU1VSTENv
bm5lY3Rpb24gKiljb25uZWN0aW9uIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW8KICAg
ICBhdXRvIHdvcmsgPSBbc2VsZiwgcHJvdGVjdGVkU2VsZiwgcHJvdGVjdGlvblNwYWNlID0gcmV0
YWluUHRyKHByb3RlY3Rpb25TcGFjZSldICgpIG11dGFibGUgewogICAgICAgICBpZiAoIW1faGFu
ZGxlKSB7CiAgICAgICAgICAgICBtX2Jvb2xSZXN1bHQgPSBOTzsKLSAgICAgICAgICAgIGRpc3Bh
dGNoX3NlbWFwaG9yZV9zaWduYWwobV9zZW1hcGhvcmUpOworICAgICAgICAgICAgbV9zZW1hcGhv
cmUuc2lnbmFsKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgbV9o
YW5kbGUtPmNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoUHJvdGVjdGlvblNw
YWNlKHByb3RlY3Rpb25TcGFjZS5nZXQoKSksIFtzZWxmLCBwcm90ZWN0ZWRTZWxmID0gV1RGTW92
ZShwcm90ZWN0ZWRTZWxmKV0gKGJvb2wgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgICAgIG1f
Ym9vbFJlc3VsdCA9IHJlc3VsdDsKLSAgICAgICAgICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWdu
YWwobV9zZW1hcGhvcmUpOworICAgICAgICAgICAgbV9zZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAg
ICAgIH0pOwogICAgIH07CiAKICAgICBbc2VsZiBjYWxsRnVuY3Rpb25Pbk1haW5UaHJlYWQ6V1RG
TW92ZSh3b3JrKV07Ci0gICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQobV9zZW1hcGhvcmUsIERJ
U1BBVENIX1RJTUVfRk9SRVZFUik7CisgICAgbV9zZW1hcGhvcmUud2FpdCgpOwogCiAgICAgTG9j
a0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgIGlmICghbV9oYW5kbGUpCkBAIC0yMjYsNyArMjI0
LDcgQEAgLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIGRp
ZFJlY2VpdmVSZXNwb25zZTooTlNVUkxSZXNwb24KICAgICBhdXRvIHdvcmsgPSBbc2VsZiwgcHJv
dGVjdGVkU2VsZiwgciA9IHJldGFpblB0cihyKSwgY29ubmVjdGlvbiA9IHJldGFpblB0cihjb25u
ZWN0aW9uKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gcHJv
dGVjdGVkSGFuZGxlKG1faGFuZGxlKTsKICAgICAgICAgaWYgKCFtX2hhbmRsZSB8fCAhbV9oYW5k
bGUtPmNsaWVudCgpKSB7Ci0gICAgICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKG1f
c2VtYXBob3JlKTsKKyAgICAgICAgICAgIG1fc2VtYXBob3JlLnNpZ25hbCgpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTI0NSwxMiArMjQzLDEyIEBAIC0gKHZvaWQpY29u
bmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRSZWNlaXZlUmVzcG9uc2U6
KE5TVVJMUmVzcG9uCiAgICAgICAgIFJlc291cmNlSGFuZGxlOjpnZXRDb25uZWN0aW9uVGltaW5n
RGF0YShjb25uZWN0aW9uLmdldCgpLCByZXNvdXJjZVJlc3BvbnNlLmRlcHJlY2F0ZWROZXR3b3Jr
TG9hZE1ldHJpY3MoKSk7CiAKICAgICAgICAgbV9oYW5kbGUtPmRpZFJlY2VpdmVSZXNwb25zZShX
VEZNb3ZlKHJlc291cmNlUmVzcG9uc2UpLCBbc2VsZiwgcHJvdGVjdGVkU2VsZiA9IFdURk1vdmUo
cHJvdGVjdGVkU2VsZildIHsKLSAgICAgICAgICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWduYWwo
bV9zZW1hcGhvcmUpOworICAgICAgICAgICAgbV9zZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAgICAg
IH0pOwogICAgIH07CiAKICAgICBbc2VsZiBjYWxsRnVuY3Rpb25Pbk1haW5UaHJlYWQ6V1RGTW92
ZSh3b3JrKV07Ci0gICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQobV9zZW1hcGhvcmUsIERJU1BB
VENIX1RJTUVfRk9SRVZFUik7CisgICAgbV9zZW1hcGhvcmUud2FpdCgpOwogCiAgICAgLy8gTWFr
ZSBzdXJlIHdlIGdldCBkZXN0cm95ZWQgb24gdGhlIG1haW4gdGhyZWFkLgogICAgIFtzZWxmIGNh
bGxGdW5jdGlvbk9uTWFpblRocmVhZDpbcHJvdGVjdGVkU2VsZiA9IFdURk1vdmUocHJvdGVjdGVk
U2VsZildIHsgfV07CkBAIC0zNTEsMTggKzM0OSwxOCBAQCAtIChOU0NhY2hlZFVSTFJlc3BvbnNl
ICopY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiB3aWxsQ2FjaGVSZXNw
bwogICAgIGF1dG8gd29yayA9IFtzZWxmLCBwcm90ZWN0ZWRTZWxmLCBjYWNoZWRSZXNwb25zZSA9
IHJldGFpblB0cihjYWNoZWRSZXNwb25zZSldICgpIG11dGFibGUgewogICAgICAgICBpZiAoIW1f
aGFuZGxlIHx8ICFtX2hhbmRsZS0+Y2xpZW50KCkpIHsKICAgICAgICAgICAgIG1fY2FjaGVkUmVz
cG9uc2VSZXN1bHQgPSBudWxscHRyOwotICAgICAgICAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3Np
Z25hbChtX3NlbWFwaG9yZSk7CisgICAgICAgICAgICBtX3NlbWFwaG9yZS5zaWduYWwoKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIG1faGFuZGxlLT5jbGllbnQo
KS0+d2lsbENhY2hlUmVzcG9uc2VBc3luYyhtX2hhbmRsZSwgY2FjaGVkUmVzcG9uc2UuZ2V0KCks
IFtzZWxmLCBwcm90ZWN0ZWRTZWxmID0gV1RGTW92ZShwcm90ZWN0ZWRTZWxmKV0gKE5TQ2FjaGVk
VVJMUmVzcG9uc2UgKiByZXNwb25zZSkgbXV0YWJsZSB7CiAgICAgICAgICAgICBtX2NhY2hlZFJl
c3BvbnNlUmVzdWx0ID0gcmVzcG9uc2U7Ci0gICAgICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVf
c2lnbmFsKG1fc2VtYXBob3JlKTsKKyAgICAgICAgICAgIG1fc2VtYXBob3JlLnNpZ25hbCgpOwog
ICAgICAgICB9KTsKICAgICB9OwogCiAgICAgW3NlbGYgY2FsbEZ1bmN0aW9uT25NYWluVGhyZWFk
OldURk1vdmUod29yayldOwotICAgIGRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KG1fc2VtYXBob3Jl
LCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOworICAgIG1fc2VtYXBob3JlLndhaXQoKTsKIAogICAg
IExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICBpZiAoIW1faGFuZGxlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAppbmRleCA5ZTI3NTQwMzE1ZDZlOTY4ZDky
MmI3ZDQ2YmM3NjIyOTkxYjgxN2QzLi44ZTZmOTM1ODQ4MjQ0YWE2ZDQyYTZlMTk2ZmNlODI5MzIx
ZjgzOTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcApAQCAt
ODIsNyArODIsNyBAQCBjbGFzcyBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlIHsKIAogICAg
IGJvb2wgd2FpdChUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgYWJzb2x1dGVUaW1lKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIG1fd2FpdEZvclN5bmNSZXBseVNlbWFwaG9yZS53YWl0KGFic29sdXRl
VGltZSk7CisgICAgICAgIHJldHVybiBtX3dhaXRGb3JTeW5jUmVwbHlTZW1hcGhvcmUud2FpdFVu
dGlsKGFic29sdXRlVGltZSk7CiAgICAgfQogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoaXMg
bWVzc2FnZSB3aWxsIGJlIGhhbmRsZWQgb24gYSBjbGllbnQgdGhyZWFkIHRoYXQgaXMgY3VycmVu
dGx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcAppbmRleCBjOTAzOWIy
ZGZmMjI5NWYxODZiZDQ0M2UyZjM2MjY5MGYzYzQ0YWNmLi5jNDZiMTJmN2QzMDgwNmUyMjdjZGEx
ODUyOTdjMGY1ZmMxMjkwMGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMv
U2VjSXRlbVNoaW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TZWNJdGVtU2hp
bS5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxkbGZjbi5oPgogI2luY2x1ZGUgPG11
dGV4PgogI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CisjaW5jbHVkZSA8d3RmL3Ro
cmVhZHMvQmluYXJ5U2VtYXBob3JlLmg+CiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQog
I2luY2x1ZGUgPENGTmV0d29yay9DRlVSTENvbm5lY3Rpb25Qcml2Lmg+CkBAIC03NywxNiArNzgs
MTYgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8U2VjSXRlbVJlc3BvbnNlRGF0YT4gc2VuZFNlY0l0
ZW1SZXF1ZXN0KFNlY0l0ZW1SZXF1ZXN0RGF0YToKIAogICAgIHN0ZDo6b3B0aW9uYWw8U2VjSXRl
bVJlc3BvbnNlRGF0YT4gcmVzcG9uc2U7CiAKLSAgICBhdXRvIHNlbWFwaG9yZSA9IGFkb3B0T1NP
YmplY3QoZGlzcGF0Y2hfc2VtYXBob3JlX2NyZWF0ZSgwKSk7CisgICAgQmluYXJ5U2VtYXBob3Jl
IHNlbWFwaG9yZTsKIAogICAgIHNoYXJlZFByb2Nlc3MtPnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmRXaXRoUmVwbHkoTWVzc2FnZXM6OlNlY0l0ZW1TaGltUHJveHk6OlNlY0l0ZW1SZXF1
ZXN0KFNlY0l0ZW1SZXF1ZXN0RGF0YShyZXF1ZXN0VHlwZSwgcXVlcnksIGF0dHJpYnV0ZXNUb01h
dGNoKSksIDAsIHdvcmtRdWV1ZSgpLCBbJnJlc3BvbnNlLCAmc2VtYXBob3JlXShhdXRvIHJlcGx5
KSB7CiAgICAgICAgIGlmIChyZXBseSkKICAgICAgICAgICAgIHJlc3BvbnNlID0gV1RGTW92ZShz
dGQ6OmdldDwwPigqcmVwbHkpKTsKIAotICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFs
KHNlbWFwaG9yZS5nZXQoKSk7CisgICAgICAgIHNlbWFwaG9yZS5zaWduYWwoKTsKICAgICB9KTsK
IAotICAgIGRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KHNlbWFwaG9yZS5nZXQoKSwgRElTUEFUQ0hf
VElNRV9GT1JFVkVSKTsKKyAgICBzZW1hcGhvcmUud2FpdCgpOwogCiAgICAgcmV0dXJuIHJlc3Bv
bnNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZS5jcHAKaW5kZXggYjY3Y2Fk
ZTI1ZGZjYzliYWNmNTc5YzY2YjU1MDdmZWYwYWNjYmI3Yy4uMGM5MWYyMDI2ZThmMTgzNDg1YWMz
NjBlMmQyNTk4NWEzOGFkYjU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2Uu
Y3BwCkBAIC0zMzIsNyArMzMyLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lz
dGVudFN0b3JhZ2U6OmZpbmlzaEFsbFBlbmRpbmdXb3JrU3luY2hyb25vdXNseSgKICAgICAgICAg
ICAgIHdyaXRlTWVtb3J5U3RvcmVUb0Rpc2soKTsKICAgICAgICAgc2VtYXBob3JlLnNpZ25hbCgp
OwogICAgIH0pOwotICAgIHNlbWFwaG9yZS53YWl0KFdhbGxUaW1lOjppbmZpbml0eSgpKTsKKyAg
ICBzZW1hcGhvcmUud2FpdCgpOwogfQogCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJz
aXN0ZW50U3RvcmFnZTo6cmVmKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggN2Y3MDJlMThlYjNhNjdkYmU0NzZl
NjkzYTBmNDIwZDEzYjRjZjc2OS4uZDdhZTRjZWU1YjJjNjk3NDI1NjQ5YWI3OWQwMzdiMWE4NDYz
YjdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViU3RvcmFnZS9TdG9y
YWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViU3RvcmFnZS9T
dG9yYWdlTWFuYWdlci5jcHAKQEAgLTgyOCw3ICs4MjgsNyBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2Vy
OjphcHBsaWNhdGlvbldpbGxUZXJtaW5hdGUoKQogCiAgICAgICAgIHNlbWFwaG9yZS5zaWduYWwo
KTsKICAgICB9KTsKLSAgICBzZW1hcGhvcmUud2FpdChXYWxsVGltZTo6aW5maW5pdHkoKSk7Cisg
ICAgc2VtYXBob3JlLndhaXQoKTsKIH0KIAogU3RvcmFnZU1hbmFnZXI6OlN0b3JhZ2VBcmVhKiBT
dG9yYWdlTWFuYWdlcjo6ZmluZFN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgdWludDY0X3Qgc3RvcmFnZU1hcElEKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQppbmRleCA4MWUxNDEyZGEz
ODBlZWExZDIwM2NiYjM2YzMwMzM3ZDEwM2QzOGQ3Li4zNTFjNGRiNDA4ODgxNGRhYzA2YWE4NDlh
ZDAxYjU0NTJkZWQ0OGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQpAQCAtNDYsNiArNDYsNyBAQAogI2ltcG9ydCA8
V2ViQ29yZS9XZWJDb3JlTlNVUkxFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5o
PgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW1wb3J0IDx3dGYvdGhyZWFkcy9C
aW5hcnlTZW1hcGhvcmUuaD4KIAogI2lmIEhBVkUoQVBQX0xJTktTKQogI2ltcG9ydCA8cGFsL3Nw
aS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oPgpAQCAtNzMsMTMgKzc0LDEzIEBAIHN0YXRpYyBi
b29sIGFwcGxpY2F0aW9uSGFzQXBwTGlua0VudGl0bGVtZW50cygpCiBzdGF0aWMgTFNBcHBMaW5r
ICphcHBMaW5rRm9yVVJMKE5TVVJMICp1cmwpCiB7CiAgICAgX19ibG9jayBMU0FwcExpbmsgKnN5
bmNBcHBMaW5rID0gbmlsOworICAgIF9fYmxvY2sgQmluYXJ5U2VtYXBob3JlIHNlbWFwaG9yZTsK
IAotICAgIGRpc3BhdGNoX3NlbWFwaG9yZV90IHNlbWFwaG9yZSA9IGRpc3BhdGNoX3NlbWFwaG9y
ZV9jcmVhdGUoMCk7CiAgICAgW0xTQXBwTGluayBnZXRBcHBMaW5rV2l0aFVSTDp1cmwgY29tcGxl
dGlvbkhhbmRsZXI6XihMU0FwcExpbmsgKmFwcExpbmssIE5TRXJyb3IgKmVycm9yKSB7CiAgICAg
ICAgIHN5bmNBcHBMaW5rID0gW2FwcExpbmsgcmV0YWluXTsKLSAgICAgICAgZGlzcGF0Y2hfc2Vt
YXBob3JlX3NpZ25hbChzZW1hcGhvcmUpOworICAgICAgICBzZW1hcGhvcmUuc2lnbmFsKCk7CiAg
ICAgfV07Ci0gICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQoc2VtYXBob3JlLCBESVNQQVRDSF9U
SU1FX0ZPUkVWRVIpOworICAgIHNlbWFwaG9yZS53YWl0KCk7CiAKICAgICByZXR1cm4gW3N5bmNB
cHBMaW5rIGF1dG9yZWxlYXNlXTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339627</attachid>
            <date>2018-05-04 20:34:41 -0700</date>
            <delta_ts>2018-05-04 21:03:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185339-20180505123520.patch</filename>
            <type>text/plain</type>
            <size>53055</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGIyYmVhNzVjMDRkOTczMmIxNWU1YTY0
ZGFmOWQzYTdjZDY1YzJkMTEuLjdlODk2Mzc1OGNhOTFkYzdlMTIwODkxODE0ZDE3NTFjNDBlZDIw
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTgtMDUtMDQgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW1dURl0gVXNlIFNlbWFwaG9yZSBhbmQgQmlu
YXJ5U2VtYXBob3JlIGluc3RlYWQgb2YgZGlzcGF0Y2hfc2VtYXBob3JlX3QKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTMzOQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBXVEY6
OlNlbWFwaG9yZSwgd2hpY2ggaXMgYmFzZWQgb24gV1RGOjpMb2NrIGFuZCBXVEY6OkNvbmRpdGlv
bi4KKworICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvU2VtYXBob3JlLmg6IEFkZGVkLgor
ICAgICAgICAoV1RGOjpTZW1hcGhvcmU6OlNlbWFwaG9yZSk6CisgICAgICAgIChXVEY6OlNlbWFw
aG9yZTo6c2lnbmFsKToKKyAgICAgICAgKFdURjo6U2VtYXBob3JlOjp3YWl0VW50aWwpOgorICAg
ICAgICAoV1RGOjpTZW1hcGhvcmU6OndhaXRGb3IpOgorICAgICAgICAoV1RGOjpTZW1hcGhvcmU6
OndhaXQpOgorICAgICAgICAqIHd0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwOgorICAg
ICAgICAoV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIHd0Zi90aHJl
YWRzL0JpbmFyeVNlbWFwaG9yZS5jcHA6CisgICAgICAgIChXVEY6OkJpbmFyeVNlbWFwaG9yZTo6
d2FpdFVudGlsKToKKyAgICAgICAgKFdURjo6QmluYXJ5U2VtYXBob3JlOjp3YWl0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiB3dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuaDoKKyAgICAgICAgKFdU
Rjo6QmluYXJ5U2VtYXBob3JlOjp3YWl0Rm9yKToKKyAgICAgICAgKFdURjo6QmluYXJ5U2VtYXBo
b3JlOjp3YWl0KToKKyAgICAgICAgQWxpZ24gdGhlIG5hbWVzIG9mIHRoZSBmdW5jdGlvbnMgdG8g
V1RGOjpDb25kaXRpb24uCisgICAgICAgIEFkZCBCaW5hcnlTZW1hcGhvcmU6OndhaXQoKSwgd2hp
Y2ggaXMgdGhlIHNhbWUgdG8gd2FpdFVudGlsKFdhbGxUaW1lOjppbmZpbml0eSgpKS4KKwogMjAx
OC0wNS0wNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBTaGlmdCB0byBhIGxvd2VyLWxldmVsIGZyYW1ld29yayBmb3Igc2ltcGxpZnlpbmcgVVJMcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDI5M2NjZjBiNmIyMWZkOGM2ZjFjMDJiODA4ZDlmODEwOTRiNDdhOWEuLjg4
ODcwMWM0YWNmYzE3NmJmOGYzMTdhNWYyZjgxMGJjNjc3ODJmNzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2OSBAQAorMjAxOC0wNS0wNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbV1RGXSBVc2UgU2VtYXBob3JlIGFuZCBCaW5hcnlTZW1hcGhvcmUg
aW5zdGVhZCBvZiBkaXNwYXRjaF9zZW1hcGhvcmVfdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmaWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUp
OgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0
ZXIubW06CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6
aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZp
bHRlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtFeHRlbnNp
b25Db250ZW50RmlsdGVyOjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok5l
dHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjphZGREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpmaW5pc2hlZEFkZGluZ0RhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6TmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OmhhbmRsZURlY2lz
aW9uKToKKyAgICAgICAgVXNlIHBlci1mdW5jdGlvbiBCaW5hcnlTZW1hcGhvcmUgaW5zdGVhZCBv
ZiBob2xkaW5nIGl0IGluIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyJ3MgZmllbGQuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL0ZpbGVNb25pdG9yR0xpYi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlTW9uaXRvcjo6RmlsZU1vbml0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZU1vbml0b3I6On5GaWxlTW9uaXRvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
On5NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OndhaXRGb3JWaWRlb091dHB1dE1l
ZGlhRGF0YVdpbGxDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6b3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZSk6CisgICAgICAgIFVz
ZSBCaW5hcnlTZW1hcGhvcmUuIEFuZCByZW1vdmUgdW51c2VkIGRpc3BhdGNoX3NlbWFwaG9yZV90
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKC1b
V2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgc3RyZWFtRGF0YVBhcnNlcldpbGxQcm92aWRl
Q29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6Zm9yVHJhY2tJRDpdKToKKyAgICAg
ICAgKC1bV2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgc3RyZWFtRGF0YVBhcnNlcjpkaWRQ
cm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6Zm9yVHJhY2tJRDpdKToK
KyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6flNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJ
bml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQzo6c2V0Q0RNU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2V0Q0RNSW5zdGFuY2UpOgorICAgICAgICBVc2UgQm94
PFNlbWFwaG9yZT4gYW5kIEJveDxCaW5hcnlTZW1hcGhvcmU+LgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1t
OgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb24pOgorICAgICAgICBSZW1vdmUgdW51c2VkIGRpc3BhdGNoX3Nl
bWFwaG9yZV90LgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRs
ZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2Yv
UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRSdW5Mb29wKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6Ondp
bGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNGVVJMQ29u
bmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdp
dGhPcGVyYXRpb25RdWV1ZTo6d2lsbENhY2hlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6
Y2FuUmVzcG9uZFRvUHJvdGVjdGlvblNwYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJh
dGlvblF1ZXVlRGVsZWdhdGUubW06CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFz
T3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBpbml0V2l0aEhhbmRsZTptZXNzYWdlUXVldWU6XSk6Cisg
ICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBk
ZXRhY2hIYW5kbGVdKToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRp
b25RdWV1ZURlbGVnYXRlIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFu
ZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246d2lsbFNlbmRSZXF1ZXN0OnJl
ZGlyZWN0UmVzcG9uc2U6XSk6CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3Bl
cmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9uOmNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90
ZWN0aW9uU3BhY2U6XSk6CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0
aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVSZXNwb25zZTpdKToKKyAgICAg
ICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5l
Y3Rpb246d2lsbENhY2hlUmVzcG9uc2U6XSk6CisgICAgICAgIFVzZSBCaW5hcnlTZW1hcGhvcmUg
aW5zdGVhZC4KKwogMjAxOC0wNS0wMiAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAK
ICAgICAgICAgVXNlIElPU3VyZmFjZXMgZm9yIENvcmVJbWFnZSBvcGVyYXRpb25zIHdoZXJlIHBv
c3NpYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDZiYzYxYjYxYjRmYTAyNDY3MzhkYzFmYTJlYWU5ZjhlMjNkNmY1
MzMuLmM5MWQxMDA5NWZhN2UzOThhYWMxMDdkYjMxOGM4ZWJlNmMyODUyZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMTgtMDUtMDQgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBn
bWFpbC5jb20+CisKKyAgICAgICAgW1dURl0gVXNlIFNlbWFwaG9yZSBhbmQgQmluYXJ5U2VtYXBo
b3JlIGluc3RlYWQgb2YgZGlzcGF0Y2hfc2VtYXBob3JlX3QKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTMzOQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjp3YWl0KToKKyAg
ICAgICAgKiBTaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcDoKKyAgICAgICAgKFdlYktpdDo6c2Vu
ZFNlY0l0ZW1SZXF1ZXN0KToKKyAgICAgICAgVXNlIEJpbmFyeVNlbWFwaG9yZS4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3Jh
Z2U6OmZpbmlzaEFsbFBlbmRpbmdXb3JrU3luY2hyb25vdXNseSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9y
YWdlTWFuYWdlcjo6YXBwbGljYXRpb25XaWxsVGVybWluYXRlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW06CisgICAgICAgIChhcHBMaW5rRm9yVVJM
KToKKyAgICAgICAgVXNlIEJpbmFyeVNlbWFwaG9yZSB0byB3YWl0IGZvciBhc3luYyBjb21wbGV0
aW9uIGhhbmRsZXIuIFdlIGFsc28gZml4IG1lbW9yeSBsZWFrCisgICAgICAgIHNpbmNlIHRoZSBv
bGQgY29kZSBkb2VzIG5vdCBjYWxsIGRpc3BhdGNoX3JlbGVhc2UgZm9yIHRoZSB1c2VkIHNlbWFw
aG9yZS4KKwogMjAxOC0wNS0wNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNv
bT4KIAogICAgICAgICBTaGlmdCB0byBhIGxvd2VyLWxldmVsIGZyYW1ld29yayBmb3Igc2ltcGxp
ZnlpbmcgVVJMcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MWEzOGYxOTg2ZTg2ZDZiYjk0MjRlMTc5NzRlYjI4ZWEzNGQ2ZmNlMi4uN2U2MTZlYjM0NDQ5NDM1
NTg2NWFiN2E4NTk1ODMxZTQxNWRjYjljNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC02MTksNiArNjE5LDcgQEAKIAkJRTM4RDZFMjYxRjU1MjJFMzAwQTc1
Q0M0IC8qIFN0cmluZ0J1aWxkZXJKU09OLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFN0cmluZ0J1aWxkZXJKU09OLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTNBMzJCQzIxRkM4MzBFMjAwN0Q3RTc2IC8qIEpTVmFsdWVNYWxsb2MuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNWYWx1ZU1hbGxvYy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQTMyQkMzMUZDODMwRTIwMDdEN0U3NiAvKiBKU1Zh
bHVlTWFsbG9jLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVmFsdWVNYWxs
b2MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNDMjFEOEIyMDlENUM3MDAwNkND
MDc4IC8qIFNlbWFwaG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZW1h
cGhvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNFMTU4MjUxRUFEQTUzQzAw
NEEwNzlEIC8qIFN5c3RlbUZyZWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3lzdGVtRnJlZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEEwQUQzNzFBOTYy
NDU1MDA1MzZERjYgLyogV29ya1F1ZXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdvcmtRdWV1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0
QTBBRDM4MUE5NjI0NTUwMDUzNkRGNiAvKiBXb3JrUXVldWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV29ya1F1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMDQ2LDYgKzEwNDcsNyBAQAogCQkJCTBGNjZCMjg0MURDOTdCQUIwMDRBMUQzRiAvKiBTZWNv
bmRzLmNwcCAqLywKIAkJCQkwRjY2QjI4NTFEQzk3QkFCMDA0QTFEM0YgLyogU2Vjb25kcy5oICov
LAogCQkJCUE4QTQ3MzA2MTUxQTgyNUIwMDQxMjNGRiAvKiBTZWdtZW50ZWRWZWN0b3IuaCAqLywK
KwkJCQlFM0MyMUQ4QjIwOUQ1QzcwMDA2Q0MwNzggLyogU2VtYXBob3JlLmggKi8sCiAJCQkJQThB
NDczMDcxNTFBODI1QjAwNDEyM0ZGIC8qIFNlbnRpbmVsTGlua2VkTGlzdC5oICovLAogCQkJCUE4
QTQ3MzFBMTUxQTgyNUIwMDQxMjNGRiAvKiBTZXRGb3JTY29wZS5oICovLAogCQkJCUE4QTQ3MzA4
MTUxQTgyNUIwMDQxMjNGRiAvKiBTSEExLmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXgg
NDg5MDI5N2U5NzY5ZDlhYzhhMmUzMmMxNDExNzM2MTI1M2RhOGJmZS4uODA5NzZjYjBiNjNhYWI1
N2I5OWVhZTdkNDU1NjNiN2ZlZWI2YjVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTE5Niw2
ICsxOTYsNyBAQCBzZXQoV1RGX1BVQkxJQ19IRUFERVJTCiAgICAgU2NvcGVkTGFtYmRhLmgKICAg
ICBTZWNvbmRzLmgKICAgICBTZWdtZW50ZWRWZWN0b3IuaAorICAgIFNlbWFwaG9yZS5oCiAgICAg
U2VudGluZWxMaW5rZWRMaXN0LmgKICAgICBTZXRGb3JTY29wZS5oCiAgICAgU2hhcmVkVGFzay5o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TZW1hcGhvcmUuaCBiL1NvdXJjZS9XVEYvd3Rm
L1NlbWFwaG9yZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlZTUyNzBmODE4ZWQwMWI5MzRkZjhmOWMwMTEzZGRj
ODYyZjE1MjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TZW1hcGhvcmUuaApA
QCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IFl1c3VrZSBTdXp1a2kg
PHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgor
I2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25h
bWVzcGFjZSBXVEYgeworCitjbGFzcyBTZW1hcGhvcmUgeworICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKFNlbWFwaG9yZSk7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6Cisg
ICAgY29uc3RleHByIFNlbWFwaG9yZSh1bnNpZ25lZCB2YWx1ZSkKKyAgICAgICAgOiBtX3ZhbHVl
KHZhbHVlKQorICAgIHsKKyAgICB9CisKKyAgICB2b2lkIHNpZ25hbCgpCisgICAgeworICAgICAg
ICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbG9jayk7CisgICAgICAgIG1fdmFsdWUrKzsKKyAg
ICAgICAgbV9jb25kaXRpb24ubm90aWZ5T25lKCk7CisgICAgfQorCisgICAgYm9vbCB3YWl0VW50
aWwoY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiB0aW1lb3V0KQorICAgIHsKKyAgICAg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOworICAgICAgICBib29sIHNhdGlzZmll
ZCA9IG1fY29uZGl0aW9uLndhaXRVbnRpbChtX2xvY2ssIHRpbWVvdXQsCisgICAgICAgICAgICBb
Jl0geworICAgICAgICAgICAgICAgIHJldHVybiBtX3ZhbHVlOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIGlmIChzYXRpc2ZpZWQpCisgICAgICAgICAgICAtLW1fdmFsdWU7CisgICAgICAgIHJl
dHVybiBzYXRpc2ZpZWQ7CisgICAgfQorCisgICAgYm9vbCB3YWl0Rm9yKFNlY29uZHMgcmVsYXRp
dmVUaW1lb3V0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHdhaXRVbnRpbChNb25vdG9uaWNUaW1l
Ojpub3coKSArIHJlbGF0aXZlVGltZW91dCk7CisgICAgfQorCisgICAgdm9pZCB3YWl0KCkKKyAg
ICB7CisgICAgICAgIHdhaXRVbnRpbChQYXJraW5nTG90OjpUaW1lOjppbmZpbml0eSgpKTsKKyAg
ICB9CisKK3ByaXZhdGU6CisgICAgdW5zaWduZWQgbV92YWx1ZSB7IDAgfTsKKyAgICBMb2NrIG1f
bG9jazsKKyAgICBDb25kaXRpb24gbV9jb25kaXRpb247Cit9OworCisKK30gLy8gbmFtZXNwYWNl
IFdURgorCit1c2luZyBXVEY6OlNlbWFwaG9yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L2dlbmVyaWMvV29ya1F1ZXVlR2VuZXJpYy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1dv
cmtRdWV1ZUdlbmVyaWMuY3BwCmluZGV4IGUwNTkxNjQ0YWFhMjdlNTU1NmM2Mzc1MzhlYThlODE5
MmM1YWE5YTYuLjNjMDQ5MmZmNTRlYjBkNzUwMjBhYWM3NGU5NjdiNjk1OGJlN2M1ZWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMvV29ya1F1ZXVlR2VuZXJpYy5jcHAKKysrIGIv
U291cmNlL1dURi93dGYvZ2VuZXJpYy9Xb3JrUXVldWVHZW5lcmljLmNwcApAQCAtNDIsNyArNDIs
NyBAQCB2b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IGNoYXIqIG5hbWUs
IFR5cGUsIFFPUykKICAgICAgICAgc2VtYXBob3JlLnNpZ25hbCgpOwogICAgICAgICBtX3J1bkxv
b3AtPnJ1bigpOwogICAgIH0pLT5kZXRhY2goKTsKLSAgICBzZW1hcGhvcmUud2FpdChXYWxsVGlt
ZTo6aW5maW5pdHkoKSk7CisgICAgc2VtYXBob3JlLndhaXQoKTsKIH0KIAogdm9pZCBXb3JrUXVl
dWU6OnBsYXRmb3JtSW52YWxpZGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90aHJl
YWRzL0JpbmFyeVNlbWFwaG9yZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRzL0JpbmFyeVNl
bWFwaG9yZS5jcHAKaW5kZXggZTJmNmRlZDc5ZjQyMDEwNjNhMGI0ODEyMzllOTEyZjIyZjU4N2U4
My4uMTgwNTY4MjJjM2Q5YmNkMzM3ZjEzZDM3ZmNkYzhlZjkyYmQ2Y2NmMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuY3BwCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmNwcApAQCAtMzUsNyArMzUsNyBAQCB2b2lk
IEJpbmFyeVNlbWFwaG9yZTo6c2lnbmFsKCkKICAgICBtX2NvbmRpdGlvbi5ub3RpZnlPbmUoKTsK
IH0KIAotYm9vbCBCaW5hcnlTZW1hcGhvcmU6OndhaXQoVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBl
IGFic29sdXRlVGltZSkKK2Jvb2wgQmluYXJ5U2VtYXBob3JlOjp3YWl0VW50aWwoY29uc3QgVGlt
ZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiBhYnNvbHV0ZVRpbWUpCiB7CiAgICAgYXV0byBsb2NrZXIg
PSBob2xkTG9jayhtX2xvY2spOwogICAgIGJvb2wgc2F0aXNmaWVkID0gbV9jb25kaXRpb24ud2Fp
dFVudGlsKG1fbG9jaywgYWJzb2x1dGVUaW1lLCBbJl0geyByZXR1cm4gbV9pc1NldDsgfSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oIGIvU291
cmNlL1dURi93dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuaAppbmRleCBmZDU5ZDVhYTJiYWJj
MjJkYWJmNTU2NTVlNjYwMWY2NDg0OTBlZGUyLi5kNWI3MzhmNWYzYzI5YzIyOTJjYWU4YzUwYjUw
OWI4NmE0NmU2OGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRzL0JpbmFyeVNl
bWFwaG9yZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmgK
QEAgLTM1LDExICszNSwyMiBAQCBuYW1lc3BhY2UgV1RGIHsKIAogY2xhc3MgQmluYXJ5U2VtYXBo
b3JlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShCaW5hcnlTZW1hcGhvcmUpOworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIEJpbmFyeVNlbWFwaG9yZSgpID0g
ZGVmYXVsdDsKKyAgICBjb25zdGV4cHIgQmluYXJ5U2VtYXBob3JlKCkgPSBkZWZhdWx0OwogCiAg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc2lnbmFsKCk7Ci0gICAgV1RGX0VYUE9SVF9QUklW
QVRFIGJvb2wgd2FpdChUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUpOworICAgIFdURl9FWFBPUlRf
UFJJVkFURSBib29sIHdhaXRVbnRpbChjb25zdCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUmKTsK
KworICAgIGJvb2wgd2FpdEZvcihTZWNvbmRzIHJlbGF0aXZlVGltZW91dCkKKyAgICB7CisgICAg
ICAgIHJldHVybiB3YWl0VW50aWwoTW9ub3RvbmljVGltZTo6bm93KCkgKyByZWxhdGl2ZVRpbWVv
dXQpOworICAgIH0KKworICAgIHZvaWQgd2FpdCgpCisgICAgeworICAgICAgICB3YWl0VW50aWwo
UGFya2luZ0xvdDo6VGltZTo6aW5maW5pdHkoKSk7CisgICAgfQogCiBwcml2YXRlOgogICAgIGJv
b2wgbV9pc1NldCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJl
YWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcAppbmRleCBiNmM1N2EzMWQ4YzJiNTEzM2ViYmM5MzhkMzQ5
MjAxNjQwMTI3ODkzLi41YmM5YmFmNzgyNzk2YmE0MzNkN2U4MjljMTBhZjY3NzE3YWE0MzkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5j
cHAKQEAgLTE1MCw3ICsxNTAsNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgVGhyZWFkYWJsZUJsb2JS
ZWdpc3RyeTo6YmxvYlNpemUoY29uc3QgVVJMJiB1cmwpCiAgICAgICAgICAgICByZXN1bHRTaXpl
ID0gYmxvYlJlZ2lzdHJ5KCkuYmxvYlNpemUodXJsKTsKICAgICAgICAgICAgIHNlbWFwaG9yZS5z
aWduYWwoKTsKICAgICAgICAgfSk7Ci0gICAgICAgIHNlbWFwaG9yZS53YWl0KFdhbGxUaW1lOjpp
bmZpbml0eSgpKTsKKyAgICAgICAgc2VtYXBob3JlLndhaXQoKTsKICAgICB9CiAgICAgcmV0dXJu
IHJlc3VsdFNpemU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaAppbmRleCA5ODNiNzAzNWI3
MDBlYzE4ZmI5M2FkMWEzMjQ4ZDExMTVlM2Q5ZDIxLi4yMTA2YzJiYTliODZhYzAyMGI0MDcwMTBl
OTEzMjM5YmQ0MjU5MGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmgKQEAgLTY0LDcgKzY0
LDYgQEAgY2xhc3MgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIgZmluYWwgOiBwdWJsaWMg
UGxhdGZvcm1Db250ZW50RmlsdGVyIHsKICAgICB2b2lkIGhhbmRsZURlY2lzaW9uKE5FRmlsdGVy
U291cmNlU3RhdHVzLCBOU0RhdGEgKnJlcGxhY2VtZW50RGF0YSk7CiAKICAgICBPU09iamVjdFB0
cjxkaXNwYXRjaF9xdWV1ZV90PiBtX3F1ZXVlOwotICAgIE9TT2JqZWN0UHRyPGRpc3BhdGNoX3Nl
bWFwaG9yZV90PiBtX3NlbWFwaG9yZTsKICAgICBSZXRhaW5QdHI8TlNEYXRhPiBtX3JlcGxhY2Vt
ZW50RGF0YTsKICAgICBSZXRhaW5QdHI8TkVGaWx0ZXJTb3VyY2U+IG1fbmVGaWx0ZXJTb3VyY2U7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4
dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9O
ZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbQppbmRleCA3ZDBkMjVlZTI5ZDFjNmEzMGIy
MzQ0ZmEyNTQxMmY1ZjM1OTg3NGMwLi5hNmMxYjM2MWE3MjlhMDMwYzI4MGYwNjE4NTg4ODVlNWFh
ZTE0Y2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9OZXR3b3Jr
RXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbQpAQCAtMzgsNiArMzgsNyBAQAog
I2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05FRmlsdGVy
U291cmNlU1BJLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKyNpbXBvcnQgPHd0Zi90
aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oPgogCiBTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFM
KE5ldHdvcmtFeHRlbnNpb24pOwogU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKE5ldHdvcmtFeHRl
bnNpb24sIE5FRmlsdGVyU291cmNlKTsKQEAgLTcwLDEwICs3MSw4IEBAIHN0ZDo6dW5pcXVlX3B0
cjxOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcj4gTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRG
aWx0ZXI6OmNyCiB2b2lkIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjppbml0aWFsaXpl
KGNvbnN0IFVSTCogdXJsKQogewogICAgIEFTU0VSVCghbV9xdWV1ZSk7Ci0gICAgQVNTRVJUKCFt
X3NlbWFwaG9yZSk7CiAgICAgQVNTRVJUKCFtX25lRmlsdGVyU291cmNlKTsKICAgICBtX3F1ZXVl
ID0gYWRvcHRPU09iamVjdChkaXNwYXRjaF9xdWV1ZV9jcmVhdGUoIldlYktpdCBOZXR3b3JrRXh0
ZW5zaW9uIEZpbHRlcmluZyIsIERJU1BBVENIX1FVRVVFX1NFUklBTCkpOwotICAgIG1fc2VtYXBo
b3JlID0gYWRvcHRPU09iamVjdChkaXNwYXRjaF9zZW1hcGhvcmVfY3JlYXRlKDApKTsKICAgICBB
U1NFUlRfVU5VU0VEKHVybCwgIXVybCk7CiAgICAgbV9uZUZpbHRlclNvdXJjZSA9IGFkb3B0TlMo
W2FsbG9jTkVGaWx0ZXJTb3VyY2VJbnN0YW5jZSgpIGluaXRXaXRoRGVjaXNpb25RdWV1ZTptX3F1
ZXVlLmdldCgpXSk7CiAjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDEzMDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkKQEAgLTEwMCwxNyArOTksMTkgQEAgdm9pZCBO
ZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY28KICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBCaW5h
cnlTZW1hcGhvcmUgc2VtYXBob3JlOwogICAgIFJldGFpblB0cjxOU1N0cmluZz4gbW9kaWZpZWRS
ZXF1ZXN0VVJMU3RyaW5nOwotICAgIFttX25lRmlsdGVyU291cmNlIHdpbGxTZW5kUmVxdWVzdDpy
ZXF1ZXN0Lm5zVVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBCb2R5KSBkZWNpc2lvbkhhbmRsZXI6
W3RoaXMsICZtb2RpZmllZFJlcXVlc3RVUkxTdHJpbmddKE5FRmlsdGVyU291cmNlU3RhdHVzIHN0
YXR1cywgTlNEaWN0aW9uYXJ5ICpkZWNpc2lvbkluZm8pIHsKKyAgICBbbV9uZUZpbHRlclNvdXJj
ZSB3aWxsU2VuZFJlcXVlc3Q6cmVxdWVzdC5uc1VSTFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9k
eSkgZGVjaXNpb25IYW5kbGVyOlt0aGlzLCAmbW9kaWZpZWRSZXF1ZXN0VVJMU3RyaW5nLCAmc2Vt
YXBob3JlXShORUZpbHRlclNvdXJjZVN0YXR1cyBzdGF0dXMsIE5TRGljdGlvbmFyeSAqZGVjaXNp
b25JbmZvKSB7CiAgICAgICAgIG1vZGlmaWVkUmVxdWVzdFVSTFN0cmluZyA9IGRlY2lzaW9uSW5m
b1tORUZpbHRlclNvdXJjZU9wdGlvbnNSZWRpcmVjdFVSTF07CiAgICAgICAgIEFTU0VSVCghbW9k
aWZpZWRSZXF1ZXN0VVJMU3RyaW5nIHx8IFttb2RpZmllZFJlcXVlc3RVUkxTdHJpbmcgaXNLaW5k
T2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSk7CiAgICAgICAgIGhhbmRsZURlY2lzaW9uKHN0YXR1
cywgcmVwbGFjZW1lbnREYXRhRnJvbURlY2lzaW9uSW5mbyhkZWNpc2lvbkluZm8pKTsKKyAgICAg
ICAgc2VtYXBob3JlLnNpZ25hbCgpOwogICAgIH1dOwogCiAgICAgLy8gRklYTUU6IFdlIGhhdmUg
dG8gYmxvY2sgaGVyZSBzaW5jZSBEb2N1bWVudExvYWRlciBleHBlY3RzIHRvIGhhdmUgYQogICAg
IC8vIGJsb2NrZWQvbm90IGJsb2NrZWQgYW5zd2VyIGZyb20gdGhlIGZpbHRlciBpbW1lZGlhdGVs
eSBhZnRlciBjYWxsaW5nCiAgICAgLy8gYWRkRGF0YSgpLiBXZSBzaG91bGQgZmluZCBhIHdheSB0
byBtYWtlIHRoaXMgYXN5bmNocm9ub3VzLgotICAgIGRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KG1f
c2VtYXBob3JlLmdldCgpLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOworICAgIHNlbWFwaG9yZS53
YWl0KCk7CiAKICAgICBpZiAoIW1vZGlmaWVkUmVxdWVzdFVSTFN0cmluZykKICAgICAgICAgcmV0
dXJuOwpAQCAtMTMxLDQwICsxMzIsNDYgQEAgdm9pZCBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZp
bHRlcjo6cmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXMKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIFttX25lRmlsdGVyU291cmNlIHJlY2VpdmVkUmVzcG9u
c2U6cmVzcG9uc2UubnNVUkxSZXNwb25zZSgpIGRlY2lzaW9uSGFuZGxlcjpbdGhpc10oTkVGaWx0
ZXJTb3VyY2VTdGF0dXMgc3RhdHVzLCBOU0RpY3Rpb25hcnkgKmRlY2lzaW9uSW5mbykgeworICAg
IEJpbmFyeVNlbWFwaG9yZSBzZW1hcGhvcmU7CisgICAgW21fbmVGaWx0ZXJTb3VyY2UgcmVjZWl2
ZWRSZXNwb25zZTpyZXNwb25zZS5uc1VSTFJlc3BvbnNlKCkgZGVjaXNpb25IYW5kbGVyOlt0aGlz
LCAmc2VtYXBob3JlXShORUZpbHRlclNvdXJjZVN0YXR1cyBzdGF0dXMsIE5TRGljdGlvbmFyeSAq
ZGVjaXNpb25JbmZvKSB7CiAgICAgICAgIGhhbmRsZURlY2lzaW9uKHN0YXR1cywgcmVwbGFjZW1l
bnREYXRhRnJvbURlY2lzaW9uSW5mbyhkZWNpc2lvbkluZm8pKTsKKyAgICAgICAgc2VtYXBob3Jl
LnNpZ25hbCgpOwogICAgIH1dOwogCiAgICAgLy8gRklYTUU6IFdlIGhhdmUgdG8gYmxvY2sgaGVy
ZSBzaW5jZSBEb2N1bWVudExvYWRlciBleHBlY3RzIHRvIGhhdmUgYQogICAgIC8vIGJsb2NrZWQv
bm90IGJsb2NrZWQgYW5zd2VyIGZyb20gdGhlIGZpbHRlciBpbW1lZGlhdGVseSBhZnRlciBjYWxs
aW5nCiAgICAgLy8gYWRkRGF0YSgpLiBXZSBzaG91bGQgZmluZCBhIHdheSB0byBtYWtlIHRoaXMg
YXN5bmNocm9ub3VzLgotICAgIGRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KG1fc2VtYXBob3JlLmdl
dCgpLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOworICAgIHNlbWFwaG9yZS53YWl0KCk7CiB9CiAK
IHZvaWQgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OmFkZERhdGEoY29uc3QgY2hhciog
ZGF0YSwgaW50IGxlbmd0aCkKIHsKICAgICBSZXRhaW5QdHI8TlNEYXRhPiBjb3BpZWREYXRhIHsg
W05TRGF0YSBkYXRhV2l0aEJ5dGVzOih2b2lkKilkYXRhIGxlbmd0aDpsZW5ndGhdIH07CiAKLSAg
ICBbbV9uZUZpbHRlclNvdXJjZSByZWNlaXZlZERhdGE6Y29waWVkRGF0YS5nZXQoKSBkZWNpc2lv
bkhhbmRsZXI6W3RoaXNdKE5FRmlsdGVyU291cmNlU3RhdHVzIHN0YXR1cywgTlNEaWN0aW9uYXJ5
ICpkZWNpc2lvbkluZm8pIHsKKyAgICBCaW5hcnlTZW1hcGhvcmUgc2VtYXBob3JlOworICAgIFtt
X25lRmlsdGVyU291cmNlIHJlY2VpdmVkRGF0YTpjb3BpZWREYXRhLmdldCgpIGRlY2lzaW9uSGFu
ZGxlcjpbdGhpcywgJnNlbWFwaG9yZV0oTkVGaWx0ZXJTb3VyY2VTdGF0dXMgc3RhdHVzLCBOU0Rp
Y3Rpb25hcnkgKmRlY2lzaW9uSW5mbykgewogICAgICAgICBoYW5kbGVEZWNpc2lvbihzdGF0dXMs
IHJlcGxhY2VtZW50RGF0YUZyb21EZWNpc2lvbkluZm8oZGVjaXNpb25JbmZvKSk7CisgICAgICAg
IHNlbWFwaG9yZS5zaWduYWwoKTsKICAgICB9XTsKIAogICAgIC8vIEZJWE1FOiBXZSBoYXZlIHRv
IGJsb2NrIGhlcmUgc2luY2UgRG9jdW1lbnRMb2FkZXIgZXhwZWN0cyB0byBoYXZlIGEKICAgICAv
LyBibG9ja2VkL25vdCBibG9ja2VkIGFuc3dlciBmcm9tIHRoZSBmaWx0ZXIgaW1tZWRpYXRlbHkg
YWZ0ZXIgY2FsbGluZwogICAgIC8vIGFkZERhdGEoKS4gV2Ugc2hvdWxkIGZpbmQgYSB3YXkgdG8g
bWFrZSB0aGlzIGFzeW5jaHJvbm91cy4KLSAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2FpdChtX3Nl
bWFwaG9yZS5nZXQoKSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKKyAgICBzZW1hcGhvcmUud2Fp
dCgpOwogfQogCiB2b2lkIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpmaW5pc2hlZEFk
ZGluZ0RhdGEoKQogewotICAgIFttX25lRmlsdGVyU291cmNlIGZpbmlzaGVkTG9hZGluZ1dpdGhE
ZWNpc2lvbkhhbmRsZXI6W3RoaXNdKE5FRmlsdGVyU291cmNlU3RhdHVzIHN0YXR1cywgTlNEaWN0
aW9uYXJ5ICpkZWNpc2lvbkluZm8pIHsKKyAgICBCaW5hcnlTZW1hcGhvcmUgc2VtYXBob3JlOwor
ICAgIFttX25lRmlsdGVyU291cmNlIGZpbmlzaGVkTG9hZGluZ1dpdGhEZWNpc2lvbkhhbmRsZXI6
W3RoaXMsICZzZW1hcGhvcmVdKE5FRmlsdGVyU291cmNlU3RhdHVzIHN0YXR1cywgTlNEaWN0aW9u
YXJ5ICpkZWNpc2lvbkluZm8pIHsKICAgICAgICAgaGFuZGxlRGVjaXNpb24oc3RhdHVzLCByZXBs
YWNlbWVudERhdGFGcm9tRGVjaXNpb25JbmZvKGRlY2lzaW9uSW5mbykpOworICAgICAgICBzZW1h
cGhvcmUuc2lnbmFsKCk7CiAgICAgfV07CiAKICAgICAvLyBGSVhNRTogV2UgaGF2ZSB0byBibG9j
ayBoZXJlIHNpbmNlIERvY3VtZW50TG9hZGVyIGV4cGVjdHMgdG8gaGF2ZSBhCiAgICAgLy8gYmxv
Y2tlZC9ub3QgYmxvY2tlZCBhbnN3ZXIgZnJvbSB0aGUgZmlsdGVyIGltbWVkaWF0ZWx5IGFmdGVy
IGNhbGxpbmcKICAgICAvLyBmaW5pc2hlZEFkZGluZ0RhdGEoKS4gV2Ugc2hvdWxkIGZpbmQgYSB3
YXkgdG8gbWFrZSB0aGlzIGFzeW5jaHJvbm91cy4KLSAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2Fp
dChtX3NlbWFwaG9yZS5nZXQoKSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKKyAgICBzZW1hcGhv
cmUud2FpdCgpOwogfQogCiBSZWY8U2hhcmVkQnVmZmVyPiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVu
dEZpbHRlcjo6cmVwbGFjZW1lbnREYXRhKCkgY29uc3QKQEAgLTIxNSw3ICsyMjIsNiBAQCB2b2lk
IE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpoYW5kbGVEZWNpc2lvbihORUZpbHRlclNv
dXJjZVN0YXR1cyBzdGF0dXMsCiAgICAgaWYgKCFuZWVkc01vcmVEYXRhKCkpCiAgICAgICAgIExP
RyhDb250ZW50RmlsdGVyaW5nLCAiTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIgc3RvcHBl
ZCBidWZmZXJpbmcgd2l0aCBzdGF0dXMgJXpkIGFuZCByZXBsYWNlbWVudCBkYXRhIGxlbmd0aCAl
enUuXG4iLCBzdGF0dXMsIHJlcGxhY2VtZW50RGF0YS5sZW5ndGgpOwogI2VuZGlmCi0gICAgZGlz
cGF0Y2hfc2VtYXBob3JlX3NpZ25hbChtX3NlbWFwaG9yZS5nZXQoKSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIv
RmlsZU1vbml0b3JHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZU1v
bml0b3JHTGliLmNwcAppbmRleCBiYjY5NWE5MjdhMzk3ZDNhZTAyODQ5Y2JmMDljOTkxYzI2ZDk1
YjcyLi40NjNmMzI3NmMyNGUyNTFiZWI0YWEwOGIwYjk4OTg2ZThjYzk2OTIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVNb25pdG9yR0xpYi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlTW9uaXRvckdMaWIuY3BwCkBAIC02MCw3
ICs2MCw3IEBAIEZpbGVNb25pdG9yOjpGaWxlTW9uaXRvcihjb25zdCBTdHJpbmcmIHBhdGgsIFJl
ZjxXb3JrUXVldWU+JiYgaGFuZGxlclF1ZXVlLCBXVEY6CiAgICAgICAgIGNyZWF0ZVBsYXRmb3Jt
TW9uaXRvcigpOwogICAgICAgICBzZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAgfSk7Ci0gICAgc2Vt
YXBob3JlLndhaXQoV2FsbFRpbWU6OmluZmluaXR5KCkpOworICAgIHNlbWFwaG9yZS53YWl0KCk7
CiB9CiAKIEZpbGVNb25pdG9yOjp+RmlsZU1vbml0b3IoKQpAQCAtNzQsNyArNzQsNyBAQCBGaWxl
TW9uaXRvcjo6fkZpbGVNb25pdG9yKCkKICAgICAgICAgbV9wbGF0Zm9ybU1vbml0b3IgPSBudWxs
cHRyOwogICAgICAgICBzZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAgfSk7Ci0gICAgc2VtYXBob3Jl
LndhaXQoV2FsbFRpbWU6OmluZmluaXR5KCkpOworICAgIHNlbWFwaG9yZS53YWl0KCk7CiB9CiAK
IHZvaWQgRmlsZU1vbml0b3I6OmZpbGVDaGFuZ2VkQ2FsbGJhY2soR0ZpbGVNb25pdG9yKiwgR0Zp
bGUqLCBHRmlsZSosIEdGaWxlTW9uaXRvckV2ZW50IGV2ZW50LCBGaWxlTW9uaXRvciogbW9uaXRv
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCBmNDY0NzAzY2Y5N2Y0OGE0OTFlYjBjOTA1OTdi
M2M2N2FkZjFmYjE0Li44ODU3ZDhiNDcyYjNlNDQ5ZmM5ZDY0ZWJkMzE1YjgwYTljZDc4MjQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvdGhyZWFkcy9CaW5hcnlTZW1h
cGhvcmUuaD4KIAogT0JKQ19DTEFTUyBBVkFzc2V0SW1hZ2VHZW5lcmF0b3I7CiBPQkpDX0NMQVNT
IEFWQXNzZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0OwpAQCAtMzU5LDcgKzM2MCw3IEBAIGNsYXNz
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uCiAgICAgUmV0YWluUHRyPFdlYkNvcmVBVkZQdWxsRGVsZWdhdGU+
IG1fdmlkZW9PdXRwdXREZWxlZ2F0ZTsKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4g
bV9sYXN0UGl4ZWxCdWZmZXI7CiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IG1fbGFzdEltYWdl
OwotICAgIGRpc3BhdGNoX3NlbWFwaG9yZV90IG1fdmlkZW9PdXRwdXRTZW1hcGhvcmU7CisgICAg
QmluYXJ5U2VtYXBob3JlIG1fdmlkZW9PdXRwdXRTZW1hcGhvcmU7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPFZpZGVvVGV4dHVyZUNvcGllckNWPiBtX3ZpZGVvVGV4dHVyZUNvcGllcjsKICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCAyYTk2YThiMTQ2ZjMwZjRlZWU4OTBkZjNiZTNh
OWFhODA3ZjVkZjk2Li5hNTI2NmJiZmYzY2I4YjdjODhjYWM5Y2VhYzE0NWQ0ZWQ0OTRlZTc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTM0OCw3ICszNDgsNiBAQCBAZW5kCiAjaWYgSEFW
RShBVkZPVU5EQVRJT05fVklERU9fT1VUUFVUKQogQGludGVyZmFjZSBXZWJDb3JlQVZGUHVsbERl
bGVnYXRlIDogTlNPYmplY3Q8QVZQbGF5ZXJJdGVtT3V0cHV0UHVsbERlbGVnYXRlPiB7CiAgICAg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyAqbV9jYWxsYmFjazsKLSAgICBkaXNw
YXRjaF9zZW1hcGhvcmVfdCBtX3NlbWFwaG9yZTsKIH0KIC0gKGlkKWluaXRXaXRoQ2FsbGJhY2s6
KE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMgKiljYWxsYmFjazsKIC0gKHZvaWQp
c2V0Q2FsbGJhY2s6KE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMqKWNhbGxiYWNr
OwpAQCAtNDkyLDcgKzQ5MSw2IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMoTWVkaWFQbGF5CiAgICAgLCBtX2hh
dmVDaGVja2VkUGxheWFiaWxpdHkoZmFsc2UpCiAjaWYgSEFWRShBVkZPVU5EQVRJT05fVklERU9f
T1VUUFVUKQogICAgICwgbV92aWRlb091dHB1dERlbGVnYXRlKGFkb3B0TlMoW1tXZWJDb3JlQVZG
UHVsbERlbGVnYXRlIGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOnRoaXNdKSkKLSAgICAsIG1fdmlk
ZW9PdXRwdXRTZW1hcGhvcmUobnVsbHB0cikKICNlbmRpZgogI2lmIEhBVkUoQVZGT1VOREFUSU9O
X0xPQURFUl9ERUxFR0FURSkKICAgICAsIG1fbG9hZGVyRGVsZWdhdGUoYWRvcHROUyhbW1dlYkNv
cmVBVkZMb2FkZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazp0aGlzXSkpCkBAIC01
MjcsOCArNTI1LDYgQEAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6fk1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMoKQogI2lmIEhBVkUoQVZGT1VOREFUSU9OX1ZJ
REVPX09VVFBVVCkKICAgICBbbV92aWRlb091dHB1dERlbGVnYXRlIHNldENhbGxiYWNrOjBdOwog
ICAgIFttX3ZpZGVvT3V0cHV0IHNldERlbGVnYXRlOm5pbCBxdWV1ZTowXTsKLSAgICBpZiAobV92
aWRlb091dHB1dFNlbWFwaG9yZSkKLSAgICAgICAgZGlzcGF0Y2hfcmVsZWFzZShtX3ZpZGVvT3V0
cHV0U2VtYXBob3JlKTsKICNlbmRpZgogCiAgICAgaWYgKG1fdmlkZW9MYXllcikKQEAgLTIzNjks
MjEgKzIzNjUsMTcgQEAgTmF0aXZlSW1hZ2VQdHIgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6d2FpdEZvclZpZGVvT3V0cHV0TWVkaWFEYXRhV2lsbENo
YW5nZSgpCiB7Ci0gICAgaWYgKCFtX3ZpZGVvT3V0cHV0U2VtYXBob3JlKQotICAgICAgICBtX3Zp
ZGVvT3V0cHV0U2VtYXBob3JlID0gZGlzcGF0Y2hfc2VtYXBob3JlX2NyZWF0ZSgwKTsKLQogICAg
IFttX3ZpZGVvT3V0cHV0IHJlcXVlc3ROb3RpZmljYXRpb25PZk1lZGlhRGF0YUNoYW5nZVdpdGhB
ZHZhbmNlSW50ZXJ2YWw6MF07CiAKICAgICAvLyBXYWl0IGZvciAxIHNlY29uZC4KLSAgICBsb25n
IHJlc3VsdCA9IGRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KG1fdmlkZW9PdXRwdXRTZW1hcGhvcmUs
IGRpc3BhdGNoX3RpbWUoMCwgMSAqIE5TRUNfUEVSX1NFQykpOwotCi0gICAgaWYgKHJlc3VsdCkK
KyAgICBib29sIHNhdGlzZmllZCA9IG1fdmlkZW9PdXRwdXRTZW1hcGhvcmUud2FpdEZvcigxX3Mp
OworICAgIGlmICghc2F0aXNmaWVkKQogICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwg
InRpbWVkIG91dCIpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6Om91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2UoQVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXRUeXBl
ICopCiB7Ci0gICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbChtX3ZpZGVvT3V0cHV0U2VtYXBo
b3JlKTsKKyAgICBtX3ZpZGVvT3V0cHV0U2VtYXBob3JlLnNpZ25hbCgpOwogfQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5oCmluZGV4IDExZjJmYTkyZDJlNmMyY2VlMjA2ZTU4NmU2ZDU2YTQwMGM0MTlmNGEuLjVlYTM2
YjcxNWFiODFmODg0MzMzOWQzODNkMzJhMGExZjYzM2E0NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaApAQCAtMjksNyArMjks
NyBAQAogCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgPGRpc3Bh
dGNoL2dyb3VwLmg+Ci0jaW5jbHVkZSA8ZGlzcGF0Y2gvc2VtYXBob3JlLmg+CisjaW5jbHVkZSA8
d3RmL0JveC5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgpAQCAtMzksNiArMzksNyBAQAogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0F0b21pY1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90aHJlYWRzL0JpbmFyeVNlbWFw
aG9yZS5oPgogCiBPQkpDX0NMQVNTIEFWQXNzZXQ7CiBPQkpDX0NMQVNTIEFWU3RyZWFtRGF0YVBh
cnNlcjsKQEAgLTkwLDcgKzkxLDcgQEAgY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMg
ZmluYWwgOiBwdWJsaWMgU291cmNlQnVmZmVyUHJpdmF0ZSB7CiAgICAgdm9pZCBkaWRQcm92aWRl
TWVkaWFEYXRhRm9yVHJhY2tJRChpbnQgdHJhY2tJRCwgQ01TYW1wbGVCdWZmZXJSZWYsIGNvbnN0
IFN0cmluZyYgbWVkaWFUeXBlLCB1bnNpZ25lZCBmbGFncyk7CiAgICAgdm9pZCBkaWRSZWFjaEVu
ZE9mVHJhY2tXaXRoVHJhY2tJRChpbnQgdHJhY2tJRCwgY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUp
OwogICAgIHZvaWQgd2lsbFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0
YUZvclRyYWNrSUQoaW50IHRyYWNrSUQpOwotICAgIHZvaWQgZGlkUHJvdmlkZUNvbnRlbnRLZXlS
ZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRChOU0RhdGEqLCBpbnQgdHJhY2tJRCwg
T1NPYmplY3RQdHI8ZGlzcGF0Y2hfc2VtYXBob3JlX3Q+KTsKKyAgICB2b2lkIGRpZFByb3ZpZGVD
b250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUZvclRyYWNrSUQoTlNEYXRhKiwgaW50
IHRyYWNrSUQsIEJveDxCaW5hcnlTZW1hcGhvcmU+KTsKIAogICAgIGJvb2wgcHJvY2Vzc0NvZGVk
RnJhbWUoaW50IHRyYWNrSUQsIENNU2FtcGxlQnVmZmVyUmVmLCBjb25zdCBTdHJpbmcmIG1lZGlh
VHlwZSk7CiAKQEAgLTE3Nyw3ICsxNzgsNyBAQCBjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQyBmaW5hbCA6IHB1YmxpYyBTb3VyY2VCdWZmZXJQcml2YXRlIHsKICAgICBSZXRhaW5QdHI8
V2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXI+IG1fZGVsZWdhdGU7CiAgICAgUmV0YWluUHRy
PFdlYkFWU2FtcGxlQnVmZmVyRXJyb3JMaXN0ZW5lcj4gbV9lcnJvckxpc3RlbmVyOwogICAgIFJl
dGFpblB0cjxOU0Vycm9yPiBtX2hkY3BFcnJvcjsKLSAgICBPU09iamVjdFB0cjxkaXNwYXRjaF9z
ZW1hcGhvcmVfdD4gbV9oYXNTZXNzaW9uU2VtYXBob3JlOworICAgIEJveDxCaW5hcnlTZW1hcGhv
cmU+IG1faGFzU2Vzc2lvblNlbWFwaG9yZTsKICAgICBPU09iamVjdFB0cjxkaXNwYXRjaF9ncm91
cF90PiBtX2lzQXBwZW5kaW5nR3JvdXA7CiAgICAgUmVmUHRyPFdlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbj4gbV9kZWNvbXByZXNzaW9uU2Vzc2lvbjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQppbmRleCA1NGNmYjhlYWI3
MzNlMmU1M2Y0OTNiMjg2NjYwNTdkNjA0YzI1Mjk5Li5iMjU0MWRiNDQyZTdhYzM4ZWM1NzlkOTEy
N2JmMmNhOTgyYWIyMzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQpAQCAtNTUsNiArNTUsNyBAQAogI2ltcG9ydCA8d3Rm
L0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgog
I2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9TZW1hcGhvcmUuaD4KICNp
bXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8d3RmL1dlYWtQdHIuaD4KICNpbXBv
cnQgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgpAQCAtMTA5LDExICsxMTAsMTEgQEAgQGVuZAog
CiBAaW50ZXJmYWNlIFdlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyIDogTlNPYmplY3Q8QVZT
dHJlYW1EYXRhUGFyc2VyT3V0cHV0SGFuZGxpbmc+IHsKICAgICBXZWFrUHRyPFdlYkNvcmU6OlNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDPiBfcGFyZW50OwotICAgIE9TT2JqZWN0UHRyPGRpc3Bh
dGNoX3NlbWFwaG9yZV90PiBfYWJvcnRTZW1hcGhvcmU7CisgICAgQm94PFNlbWFwaG9yZT4gX2Fi
b3J0U2VtYXBob3JlOwogICAgIEFWU3RyZWFtRGF0YVBhcnNlciogX3BhcnNlcjsKIH0KIEBwcm9w
ZXJ0eSAoYXNzaWduKSBXZWFrUHRyPFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
PiBwYXJlbnQ7Ci1AcHJvcGVydHkgKGFzc2lnbikgT1NPYmplY3RQdHI8ZGlzcGF0Y2hfc2VtYXBo
b3JlX3Q+IGFib3J0U2VtYXBob3JlOworQHByb3BlcnR5IChhc3NpZ24pIEJveDxTZW1hcGhvcmU+
IGFib3J0U2VtYXBob3JlOwogLSAoaWQpaW5pdFdpdGhQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNl
ciopcGFyc2VyIHBhcmVudDooV2Vha1B0cjxXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQz4pcGFyZW50OwogQGVuZAogCkBAIC0yMDcsMTkgKzIwOCwxOSBAQCAtICh2b2lkKXN0cmVh
bURhdGFQYXJzZXJXaWxsUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRh
OihBVlN0cmVhbQogCiAgICAgLy8gV2UgbXVzdCBjYWxsIHN5bmNocm9ub3VzbHkgdG8gdGhlIG1h
aW4gdGhyZWFkLCBhcyB0aGUgQVZTdHJlYW1TZXNzaW9uIG11c3QgYmUgYXNzb2NpYXRlZAogICAg
IC8vIHdpdGggdGhlIHN0cmVhbURhdGFQYXJzZXIgYmVmb3JlIHRoZSBkZWxlZ2F0ZSBtZXRob2Qg
cmV0dXJucy4KLSAgICBPU09iamVjdFB0cjxkaXNwYXRjaF9zZW1hcGhvcmVfdD4gcmVzcG9uZGVk
U2VtYXBob3JlID0gYWRvcHRPU09iamVjdChkaXNwYXRjaF9zZW1hcGhvcmVfY3JlYXRlKDApKTsK
KyAgICBCb3g8QmluYXJ5U2VtYXBob3JlPiByZXNwb25kZWRTZW1hcGhvcmUgPSBCb3g8QmluYXJ5
U2VtYXBob3JlPjo6Y3JlYXRlKCk7CiAgICAgY2FsbE9uTWFpblRocmVhZChbcGFyZW50ID0gX3Bh
cmVudCwgdHJhY2tJRCwgcmVzcG9uZGVkU2VtYXBob3JlXSgpIHsKICAgICAgICAgaWYgKHBhcmVu
dCkKICAgICAgICAgICAgIHBhcmVudC0+d2lsbFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRp
YWxpemF0aW9uRGF0YUZvclRyYWNrSUQodHJhY2tJRCk7Ci0gICAgICAgIGRpc3BhdGNoX3NlbWFw
aG9yZV9zaWduYWwocmVzcG9uZGVkU2VtYXBob3JlLmdldCgpKTsKKyAgICAgICAgcmVzcG9uZGVk
U2VtYXBob3JlLT5zaWduYWwoKTsKICAgICB9KTsKIAogICAgIHdoaWxlICh0cnVlKSB7Ci0gICAg
ICAgIGlmICghZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQocmVzcG9uZGVkU2VtYXBob3JlLmdldCgp
LCBkaXNwYXRjaF90aW1lKERJU1BBVENIX1RJTUVfTk9XLCBOU0VDX1BFUl9NU0VDICogMTAwKSkp
CisgICAgICAgIGlmIChyZXNwb25kZWRTZW1hcGhvcmUtPndhaXRGb3IoMTAwX21zKSkKICAgICAg
ICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAoIWRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KF9h
Ym9ydFNlbWFwaG9yZS5nZXQoKSwgZGlzcGF0Y2hfdGltZShESVNQQVRDSF9USU1FX05PVywgTlNF
Q19QRVJfTVNFQyAqIDEwMCkpKSB7Ci0gICAgICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2ln
bmFsKF9hYm9ydFNlbWFwaG9yZS5nZXQoKSk7CisgICAgICAgIGlmIChfYWJvcnRTZW1hcGhvcmUt
PndhaXRGb3IoMTAwX21zKSkgeworICAgICAgICAgICAgX2Fib3J0U2VtYXBob3JlLT5zaWduYWwo
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTIyOSwxOCArMjMw
LDE4IEBAIC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3Ry
ZWFtRGF0YVBhcnNlciBkaWRQcm92aWRlQ29udGVuCiB7CiAgICAgQVNTRVJUX1VOVVNFRChzdHJl
YW1EYXRhUGFyc2VyLCBzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOwogCi0gICAgT1NPYmpl
Y3RQdHI8ZGlzcGF0Y2hfc2VtYXBob3JlX3Q+IGhhc1Nlc3Npb25TZW1hcGhvcmUgPSBhZG9wdE9T
T2JqZWN0KGRpc3BhdGNoX3NlbWFwaG9yZV9jcmVhdGUoMCkpOworICAgIEJveDxCaW5hcnlTZW1h
cGhvcmU+IGhhc1Nlc3Npb25TZW1hcGhvcmUgPSBCb3g8QmluYXJ5U2VtYXBob3JlPjo6Y3JlYXRl
KCk7CiAgICAgY2FsbE9uTWFpblRocmVhZChbcGFyZW50ID0gX3BhcmVudCwgcHJvdGVjdGVkSW5p
dERhdGEgPSBSZXRhaW5QdHI8TlNEYXRhPihpbml0RGF0YSksIHRyYWNrSUQsIGhhc1Nlc3Npb25T
ZW1hcGhvcmVdIHsKICAgICAgICAgaWYgKHBhcmVudCkKICAgICAgICAgICAgIHBhcmVudC0+ZGlk
UHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRChwcm90
ZWN0ZWRJbml0RGF0YS5nZXQoKSwgdHJhY2tJRCwgaGFzU2Vzc2lvblNlbWFwaG9yZSk7CiAgICAg
fSk7CiAKICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBpZiAoIWRpc3BhdGNoX3NlbWFwaG9y
ZV93YWl0KGhhc1Nlc3Npb25TZW1hcGhvcmUuZ2V0KCksIGRpc3BhdGNoX3RpbWUoRElTUEFUQ0hf
VElNRV9OT1csIE5TRUNfUEVSX01TRUMgKiAxMDApKSkKKyAgICAgICAgaWYgKGhhc1Nlc3Npb25T
ZW1hcGhvcmUtPndhaXRGb3IoMTAwX21zKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAg
ICBpZiAoIWRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KF9hYm9ydFNlbWFwaG9yZS5nZXQoKSwgZGlz
cGF0Y2hfdGltZShESVNQQVRDSF9USU1FX05PVywgTlNFQ19QRVJfTVNFQyAqIDEwMCkpKSB7Ci0g
ICAgICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKF9hYm9ydFNlbWFwaG9yZS5nZXQo
KSk7CisgICAgICAgIGlmIChfYWJvcnRTZW1hcGhvcmUtPndhaXRGb3IoMTAwX21zKSkgeworICAg
ICAgICAgICAgX2Fib3J0U2VtYXBob3JlLT5zaWduYWwoKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogICAgIH0KQEAgLTUwOSw3ICs1MTAsNyBAQCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoTWVkaWFTb3VyY2VQcml2YXRlQVZG
T2JqQwogICAgICwgbV9tZWRpYVNvdXJjZShwYXJlbnQpCiB7CiAgICAgQ01Ob3RpZmljYXRpb25D
ZW50ZXJBZGRMaXN0ZW5lcihDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRl
cigpLCB0aGlzLCBidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrLCBrQ01TYW1wbGVCdWZmZXJDb25z
dW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgbnVsbHB0ciwgMCk7Ci0gICAgbV9kZWxl
Z2F0ZS5nZXQoKS5hYm9ydFNlbWFwaG9yZSA9IGFkb3B0T1NPYmplY3QoZGlzcGF0Y2hfc2VtYXBo
b3JlX2NyZWF0ZSgwKSk7CisgICAgbV9kZWxlZ2F0ZS5nZXQoKS5hYm9ydFNlbWFwaG9yZSA9IEJv
eDxTZW1hcGhvcmU+OjpjcmVhdGUoMCk7CiB9CiAKIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
Ojp+U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoKQpAQCAtNTIxLDcgKzUyMiw3IEBAIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp+U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoKQogICAg
IENNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIoQ01Ob3RpZmljYXRpb25DZW50ZXJH
ZXREZWZhdWx0TG9jYWxDZW50ZXIoKSwgdGhpcywgYnVmZmVyV2FzQ29uc3VtZWRDYWxsYmFjaywg
a0NNU2FtcGxlQnVmZmVyQ29uc3VtZXJOb3RpZmljYXRpb25fQnVmZmVyQ29uc3VtZWQsIG51bGxw
dHIpOwogCiAgICAgaWYgKG1faGFzU2Vzc2lvblNlbWFwaG9yZSkKLSAgICAgICAgZGlzcGF0Y2hf
c2VtYXBob3JlX3NpZ25hbChtX2hhc1Nlc3Npb25TZW1hcGhvcmUuZ2V0KCkpOworICAgICAgICBt
X2hhc1Nlc3Npb25TZW1hcGhvcmUtPnNpZ25hbCgpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpkaWRQYXJzZVN0cmVhbURhdGFBc0Fzc2V0KEFWQXNzZXQqIGFzc2V0KQpA
QCAtNjUxLDcgKzY1Miw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OndpbGxQ
cm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGCiAjZW5kaWYKIH0KIAot
dm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1
ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRChOU0RhdGEqIGluaXREYXRhLCBpbnQgdHJh
Y2tJRCwgT1NPYmplY3RQdHI8ZGlzcGF0Y2hfc2VtYXBob3JlX3Q+IGhhc1Nlc3Npb25TZW1hcGhv
cmUpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlQ29udGVudEtl
eVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKE5TRGF0YSogaW5pdERhdGEsIGlu
dCB0cmFja0lELCBCb3g8QmluYXJ5U2VtYXBob3JlPiBoYXNTZXNzaW9uU2VtYXBob3JlKQogewog
ICAgIGlmICghbV9tZWRpYVNvdXJjZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNjY0LDEwICs2NjUs
MTAgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUHJvdmlkZUNvbnRlbnRL
ZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm8KICAgICBtX21lZGlhU291cmNlLT5zb3VyY2VC
dWZmZXJLZXlOZWVkZWQodGhpcywgaW5pdERhdGFBcnJheS5nZXQoKSk7CiAgICAgaWYgKGF1dG8g
c2Vzc2lvbiA9IG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5jZG1TZXNzaW9uKCkpIHsKICAgICAg
ICAgc2Vzc2lvbi0+YWRkUGFyc2VyKG1fcGFyc2VyLmdldCgpKTsKLSAgICAgICAgZGlzcGF0Y2hf
c2VtYXBob3JlX3NpZ25hbChoYXNTZXNzaW9uU2VtYXBob3JlLmdldCgpKTsKKyAgICAgICAgaGFz
U2Vzc2lvblNlbWFwaG9yZS0+c2lnbmFsKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKG1f
aGFzU2Vzc2lvblNlbWFwaG9yZSkKLSAgICAgICAgICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWdu
YWwobV9oYXNTZXNzaW9uU2VtYXBob3JlLmdldCgpKTsKKyAgICAgICAgICAgIG1faGFzU2Vzc2lv
blNlbWFwaG9yZS0+c2lnbmFsKCk7CiAgICAgICAgIG1faGFzU2Vzc2lvblNlbWFwaG9yZSA9IGhh
c1Nlc3Npb25TZW1hcGhvcmU7CiAgICAgfQogI2VuZGlmCkBAIC03NDIsMTIgKzc0MywxMiBAQCB2
b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjphYm9ydCgpCiAgICAgLy8gd2VyZSBhc2tl
ZCB0byBhYm9ydCwgYW5kIHRoYXQgY2FuY2VscyBhbGwgb3V0c3RhbmRpbmcgYXBwZW5kIG9wZXJh
dGlvbnMuIFdpdGhvdXQgY2FuY2VsbGluZyB0aGlzCiAgICAgLy8gc2VtYXBob3JlLCB0aGUgbV9p
c0FwcGVuZGluZ0dyb3VwIHdhaXQgb3BlcmF0aW9uIHdpbGwgZGVhZGxvY2suCiAgICAgaWYgKG1f
aGFzU2Vzc2lvblNlbWFwaG9yZSkKLSAgICAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbCht
X2hhc1Nlc3Npb25TZW1hcGhvcmUuZ2V0KCkpOwotICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWdu
YWwobV9kZWxlZ2F0ZS5nZXQoKS5hYm9ydFNlbWFwaG9yZS5nZXQoKSk7CisgICAgICAgIG1faGFz
U2Vzc2lvblNlbWFwaG9yZS0+c2lnbmFsKCk7CisgICAgbV9kZWxlZ2F0ZS5nZXQoKS5hYm9ydFNl
bWFwaG9yZS0+c2lnbmFsKCk7CiAgICAgZGlzcGF0Y2hfZ3JvdXBfd2FpdChtX2lzQXBwZW5kaW5n
R3JvdXAuZ2V0KCksIERJU1BBVENIX1RJTUVfRk9SRVZFUik7CiAgICAgbV9hcHBlbmRXZWFrRmFj
dG9yeS5yZXZva2VBbGwoKTsKICAgICBtX2RlbGVnYXRlLmdldCgpLnBhcmVudCA9IG1fYXBwZW5k
V2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7Ci0gICAgbV9kZWxlZ2F0ZS5nZXQoKS5h
Ym9ydFNlbWFwaG9yZSA9IGFkb3B0T1NPYmplY3QoZGlzcGF0Y2hfc2VtYXBob3JlX2NyZWF0ZSgw
KSk7CisgICAgbV9kZWxlZ2F0ZS5nZXQoKS5hYm9ydFNlbWFwaG9yZSA9IEJveDxTZW1hcGhvcmU+
OjpjcmVhdGUoKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6cmVzZXRQ
YXJzZXJTdGF0ZSgpCkBAIC04OTksNyArOTAwLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6c2V0Q0RNU2Vzc2lvbihDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDKiBzZXMK
ICAgICBpZiAobV9zZXNzaW9uKSB7CiAgICAgICAgIG1fc2Vzc2lvbi0+YWRkU291cmNlQnVmZmVy
KHRoaXMpOwogICAgICAgICBpZiAobV9oYXNTZXNzaW9uU2VtYXBob3JlKSB7Ci0gICAgICAgICAg
ICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKG1faGFzU2Vzc2lvblNlbWFwaG9yZS5nZXQoKSk7
CisgICAgICAgICAgICBtX2hhc1Nlc3Npb25TZW1hcGhvcmUtPnNpZ25hbCgpOwogICAgICAgICAg
ICAgbV9oYXNTZXNzaW9uU2VtYXBob3JlID0gbnVsbHB0cjsKICAgICAgICAgfQogCkBAIC05MzQs
NyArOTM1LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2V0Q0RNSW5zdGFu
Y2UoQ0RNSW5zdGFuY2UqIGluc3RhbmNlKQogICAgIGlmIChtX2NkbUluc3RhbmNlKSB7CiAgICAg
ICAgIFttX2NkbUluc3RhbmNlLT5jb250ZW50S2V5U2Vzc2lvbigpIGFkZENvbnRlbnRLZXlSZWNp
cGllbnQ6bV9wYXJzZXIuZ2V0KCldOwogICAgICAgICBpZiAobV9oYXNTZXNzaW9uU2VtYXBob3Jl
KSB7Ci0gICAgICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKG1faGFzU2Vzc2lvblNl
bWFwaG9yZS5nZXQoKSk7CisgICAgICAgICAgICBtX2hhc1Nlc3Npb25TZW1hcGhvcmUtPnNpZ25h
bCgpOwogICAgICAgICAgICAgbV9oYXNTZXNzaW9uU2VtYXBob3JlID0gbnVsbHB0cjsKICAgICAg
ICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLmgKaW5kZXgg
ZjE5NmMyMDE2Y2NmNzMwYTcxMDEyYjcyMmJhZDlkNWZkNGE3NWU4My4uODM3ZDYxMmVmZjkyNGZh
M2UxNDNhNzBiZmM2ZjJkNjNmNTU1NGU4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uLmgKQEAgLTExNyw3ICsxMTcsNiBAQCBjbGFzcyBXZWJDb3JlRGVjb21wcmVzc2lv
blNlc3Npb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2ViQ29yZURlY29tcHJlcwog
ICAgIFJldGFpblB0cjxDTVRpbWViYXNlUmVmPiBtX3RpbWViYXNlOwogICAgIE9TT2JqZWN0UHRy
PGRpc3BhdGNoX3F1ZXVlX3Q+IG1fZGVjb21wcmVzc2lvblF1ZXVlOwogICAgIE9TT2JqZWN0UHRy
PGRpc3BhdGNoX3F1ZXVlX3Q+IG1fZW5xdWVpbmdRdWV1ZTsKLSAgICBPU09iamVjdFB0cjxkaXNw
YXRjaF9zZW1hcGhvcmVfdD4gbV9oYXNBdmFpbGFibGVJbWFnZVNlbWFwaG9yZTsKICAgICBPU09i
amVjdFB0cjxkaXNwYXRjaF9zb3VyY2VfdD4gbV90aW1lclNvdXJjZTsKICAgICBzdGQ6OmZ1bmN0
aW9uPHZvaWQoKT4gbV9ub3RpZmljYXRpb25DYWxsYmFjazsKICAgICBzdGQ6OmZ1bmN0aW9uPHZv
aWQoKT4gbV9oYXNBdmFpbGFibGVGcmFtZUNhbGxiYWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9u
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29t
cHJlc3Npb25TZXNzaW9uLm1tCmluZGV4IDNhYmNiZGNkOGYyOTFhYzljNWU2MGFjNjRmZmYyOTQ1
ZTFmOTFlZWYuLjY0ZjZkZmVjYjAxNjcxNzE2NjBiODMzMGEwYTI3NjZmN2NlN2M4YzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0KQEAgLTUzLDcgKzUzLDYgQEAg
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24o
TW9kZSBtb2RlKQogICAgIDogbV9tb2RlKG1vZGUpCiAgICAgLCBtX2RlY29tcHJlc3Npb25RdWV1
ZShhZG9wdE9TT2JqZWN0KGRpc3BhdGNoX3F1ZXVlX2NyZWF0ZSgiV2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uIERlY29tcHJlc3Npb24gUXVldWUiLCBESVNQQVRDSF9RVUVVRV9TRVJJQUwpKSkK
ICAgICAsIG1fZW5xdWVpbmdRdWV1ZShhZG9wdE9TT2JqZWN0KGRpc3BhdGNoX3F1ZXVlX2NyZWF0
ZSgiV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uIEVucXVldWVpbmcgUXVldWUiLCBESVNQQVRD
SF9RVUVVRV9TRVJJQUwpKSkKLSAgICAsIG1faGFzQXZhaWxhYmxlSW1hZ2VTZW1hcGhvcmUoYWRv
cHRPU09iamVjdChkaXNwYXRjaF9zZW1hcGhvcmVfY3JlYXRlKDApKSkKIHsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNG
TmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5k
bGVDRk5ldC5jcHAKaW5kZXggOTc4NjRmZTViZjllOTI4MzhjZDcxOGU5MzUxZTE2ODE4NDg2MmU3
Yy4uZTcxMWE2NzE4MDQwNTk0ZWFlNjc2YzJlOTU2NTEyMDFkNmZmZTE1OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxl
Q0ZOZXQuY3BwCkBAIC01ODUsNyArNTg1LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZv
cm1Mb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXgKICAg
ICAgICAgICAgIHdoaWxlICh0cnVlKQogICAgICAgICAgICAgICAgIENGUnVuTG9vcFJ1bkluTW9k
ZShrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUsIDFFMzAsIHRydWUpOwogICAgICAgICB9KTsKLSAgICAg
ICAgc2VtLndhaXQoVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlKFdhbGxUaW1lOjppbmZpbml0eSgp
KSk7CisgICAgICAgIHNlbS53YWl0KCk7CiAgICAgfQogICAgIENGVVJMQ29ubmVjdGlvblNjaGVk
dWxlV2l0aFJ1bkxvb3AoaGFuZGxlLT5jb25uZWN0aW9uKCksIHJ1bkxvb3AsIGtDRlJ1bkxvb3BE
ZWZhdWx0TW9kZSk7CiAgICAgQ0ZVUkxDb25uZWN0aW9uU2NoZWR1bGVEb3dubG9hZFdpdGhSdW5M
b29wKGhhbmRsZS0+Y29ubmVjdGlvbigpLCBydW5Mb29wLCBrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJj
ZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5l
Y3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHAKaW5kZXggOTVlN2ZmZDU3ODZmMGJh
YTI1YTQ5YjIxZDI5MTk2YzM4YmJjZDU4NC4uZGFkOTAxMGY5NTcwZWJjNTY3NjMzNTQzZmQxZmM1
MDJmODQ2OWI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFu
ZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwCkBAIC0xMTks
NyArMTE5LDcgQEAgc3RhdGljIENGUnVuTG9vcFJlZiBnZXRSdW5Mb29wKCkKICAgICAgICAgICAg
IHdoaWxlICh0cnVlKQogICAgICAgICAgICAgICAgIENGUnVuTG9vcFJ1bkluTW9kZShrQ0ZSdW5M
b29wRGVmYXVsdE1vZGUsIDFFMzAsIHRydWUpOwogICAgICAgICB9KTsKLSAgICAgICAgc2VtLndh
aXQoVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlKFdhbGxUaW1lOjppbmZpbml0eSgpKSk7CisgICAg
ICAgIHNlbS53YWl0KCk7CiAgICAgfQogCiAgICAgcmV0dXJuIHJ1bkxvb3A7CkBAIC0xNzIsNyAr
MTcyLDcgQEAgQ0ZVUkxSZXF1ZXN0UmVmIFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVs
ZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OndpbGxTZW4KICAgICAgICAgbV9tZXNzYWdlUXVldWUt
PmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEZ1bmN0aW9uPHZvaWQoKT4+KFdURk1vdmUod29yaykp
KTsKICAgICBlbHNlCiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZSh3b3JrKSk7Ci0g
ICAgbV9zZW1hcGhvcmUud2FpdChUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUoV2FsbFRpbWU6Omlu
ZmluaXR5KCkpKTsKKyAgICBtX3NlbWFwaG9yZS53YWl0KCk7CiAKICAgICByZXR1cm4gbV9yZXF1
ZXN0UmVzdWx0LmxlYWtSZWYoKTsKIH0KQEAgLTIxMCw3ICsyMTAsNyBAQCB2b2lkIFJlc291cmNl
SGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmRpZFJlY2Vp
dmVSZXNwb25zZQogICAgICAgICBtX21lc3NhZ2VRdWV1ZS0+YXBwZW5kKHN0ZDo6bWFrZV91bmlx
dWU8RnVuY3Rpb248dm9pZCgpPj4oV1RGTW92ZSh3b3JrKSkpOwogICAgIGVsc2UKICAgICAgICAg
Y2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKHdvcmspKTsKLSAgICBtX3NlbWFwaG9yZS53YWl0KFRp
bWVXaXRoRHluYW1pY0Nsb2NrVHlwZShXYWxsVGltZTo6aW5maW5pdHkoKSkpOworICAgIG1fc2Vt
YXBob3JlLndhaXQoKTsKIH0KIAogdm9pZCBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRl
bGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpkaWRSZWNlaXZlRGF0YShDRkRhdGFSZWYgZGF0YSwg
Q0ZJbmRleCBvcmlnaW5hbExlbmd0aCkKQEAgLTMxNCw3ICszMTQsNyBAQCBDRkNhY2hlZFVSTFJl
c3BvbnNlUmVmIFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0
aW9uUXVldWU6OgogICAgICAgICBtX21lc3NhZ2VRdWV1ZS0+YXBwZW5kKHN0ZDo6bWFrZV91bmlx
dWU8RnVuY3Rpb248dm9pZCgpPj4oV1RGTW92ZSh3b3JrKSkpOwogICAgIGVsc2UKICAgICAgICAg
Y2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKHdvcmspKTsKLSAgICBtX3NlbWFwaG9yZS53YWl0KFRp
bWVXaXRoRHluYW1pY0Nsb2NrVHlwZShXYWxsVGltZTo6aW5maW5pdHkoKSkpOworICAgIG1fc2Vt
YXBob3JlLndhaXQoKTsKICAgICByZXR1cm4gbV9jYWNoZWRSZXNwb25zZVJlc3VsdC5sZWFrUmVm
KCk7CiB9CiAKQEAgLTM4Myw3ICszODMsNyBAQCBCb29sZWFuIFJlc291cmNlSGFuZGxlQ0ZVUkxD
b25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmNhblJlc3BvbmRUb1BybwogICAg
ICAgICBtX21lc3NhZ2VRdWV1ZS0+YXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8RnVuY3Rpb248dm9p
ZCgpPj4oV1RGTW92ZSh3b3JrKSkpOwogICAgIGVsc2UKICAgICAgICAgY2FsbE9uTWFpblRocmVh
ZChXVEZNb3ZlKHdvcmspKTsKLSAgICBtX3NlbWFwaG9yZS53YWl0KFRpbWVXaXRoRHluYW1pY0Ns
b2NrVHlwZShXYWxsVGltZTo6aW5maW5pdHkoKSkpOworICAgIG1fc2VtYXBob3JlLndhaXQoKTsK
ICAgICByZXR1cm4gbV9ib29sUmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1
ZXVlRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNv
cmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5oCmluZGV4IDQ4MzU0MjY0
ZTY4YTJlMDk1Yjg3ZDUzZDkzZTVhOWUyMDY0OWNjNDUuLjNlZGEyN2VhOGEyMTdjNjIwZjlhM2Vk
YTc1YjBlZjY4MGQ4MTQyM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJj
ZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSA8d3RmL01lc3NhZ2VRdWV1ZS5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNp
bmNsdWRlIDx3dGYvU2NoZWR1bGVQYWlyLmg+CisjaW5jbHVkZSA8d3RmL3RocmVhZHMvQmluYXJ5
U2VtYXBob3JlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlc291cmNlSGFuZGxl
OwpAQCAtNDAsNyArNDEsNyBAQCBjbGFzcyBSZXNvdXJjZUhhbmRsZTsKICAgICBXZWJDb3JlOjpS
ZXNvdXJjZUhhbmRsZSogbV9oYW5kbGU7CiAKICAgICAvLyBTeW5jaHJvbm91cyBkZWxlZ2F0ZXMg
b24gb3BlcmF0aW9uIHF1ZXVlIHdhaXQgdW50aWwgbWFpbiB0aHJlYWQgc2VuZHMgYW4gYXN5bmNo
cm9ub3VzIHJlc3BvbnNlLgotICAgIGRpc3BhdGNoX3NlbWFwaG9yZV90IG1fc2VtYXBob3JlOwor
ICAgIEJpbmFyeVNlbWFwaG9yZSBtX3NlbWFwaG9yZTsKICAgICBNZXNzYWdlUXVldWU8RnVuY3Rp
b248dm9pZCgpPj4qIG1fbWVzc2FnZVF1ZXVlOwogICAgIFJldGFpblB0cjxOU1VSTFJlcXVlc3Q+
IG1fcmVxdWVzdFJlc3VsdDsKICAgICBMb2NrIG1fbXV0ZXg7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJh
dGlvblF1ZXVlRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0KaW5kZXgg
YTVhYjM2NzU0NjJkYzY2ODBiYjk5NDUzMTY2ODA4MDg2NDIzNDQwYi4uZGM5OGNhZTk2ZjM3MTdm
ODI2M2MyOWM1OTk2ODdjNjcxNTkyOTkyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURl
bGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNv
cmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQpAQCAtODksNyArODks
NiBAQCAtIChpZClpbml0V2l0aEhhbmRsZTooUmVzb3VyY2VIYW5kbGUqKWhhbmRsZSBtZXNzYWdl
UXVldWU6KE1lc3NhZ2VRdWV1ZTxGdW5jdGlvbgogICAgICAgICBpZiAoYXV0byogcGFpcnMgPSBt
X2hhbmRsZS0+Y29udGV4dCgpLT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSkKICAgICAgICAgICAg
IG1fc2NoZWR1bGVkUGFpcnMgPSAqcGFpcnM7CiAgICAgfQotICAgIG1fc2VtYXBob3JlID0gZGlz
cGF0Y2hfc2VtYXBob3JlX2NyZWF0ZSgwKTsKICAgICBtX21lc3NhZ2VRdWV1ZSA9IG1lc3NhZ2VR
dWV1ZTsKIAogICAgIHJldHVybiBzZWxmOwpAQCAtMTA1LDEyICsxMDQsMTEgQEAgLSAodm9pZClk
ZXRhY2hIYW5kbGUKICAgICBtX3JlcXVlc3RSZXN1bHQgPSBudWxscHRyOwogICAgIG1fY2FjaGVk
UmVzcG9uc2VSZXN1bHQgPSBudWxscHRyOwogICAgIG1fYm9vbFJlc3VsdCA9IE5POwotICAgIGRp
c3BhdGNoX3NlbWFwaG9yZV9zaWduYWwobV9zZW1hcGhvcmUpOyAvLyBPSyB0byBzaWduYWwgZXZl
biBpZiB3ZSBhcmUgbm90IHdhaXRpbmcuCisgICAgbV9zZW1hcGhvcmUuc2lnbmFsKCk7IC8vIE9L
IHRvIHNpZ25hbCBldmVuIGlmIHdlIGFyZSBub3Qgd2FpdGluZy4KIH0KIAogLSAodm9pZClkZWFs
bG9jCiB7Ci0gICAgZGlzcGF0Y2hfcmVsZWFzZShtX3NlbWFwaG9yZSk7CiAgICAgW3N1cGVyIGRl
YWxsb2NdOwogfQogCkBAIC0xMzYsMTggKzEzNCwxOCBAQCAtIChOU1VSTFJlcXVlc3QgKiljb25u
ZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIHdpbGxTZW5kUmVxdWVzdDooTlNV
UgogICAgIGF1dG8gd29yayA9IFtzZWxmLCBwcm90ZWN0ZWRTZWxmLCBuZXdSZXF1ZXN0ID0gcmV0
YWluUHRyKG5ld1JlcXVlc3QpLCByZWRpcmVjdFJlc3BvbnNlID0gcmV0YWluUHRyKHJlZGlyZWN0
UmVzcG9uc2UpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFtX2hhbmRsZSkgewogICAgICAg
ICAgICAgbV9yZXF1ZXN0UmVzdWx0ID0gbnVsbHB0cjsKLSAgICAgICAgICAgIGRpc3BhdGNoX3Nl
bWFwaG9yZV9zaWduYWwobV9zZW1hcGhvcmUpOworICAgICAgICAgICAgbV9zZW1hcGhvcmUuc2ln
bmFsKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICBtX2hhbmRs
ZS0+d2lsbFNlbmRSZXF1ZXN0KG5ld1JlcXVlc3QuZ2V0KCksIHJlZGlyZWN0UmVzcG9uc2UuZ2V0
KCksIFtzZWxmLCBwcm90ZWN0ZWRTZWxmID0gV1RGTW92ZShwcm90ZWN0ZWRTZWxmKV0oUmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCkgewogICAgICAgICAgICAgbV9yZXF1ZXN0UmVzdWx0ID0gcmVx
dWVzdC5uc1VSTFJlcXVlc3QoVXBkYXRlSFRUUEJvZHkpOwotICAgICAgICAgICAgZGlzcGF0Y2hf
c2VtYXBob3JlX3NpZ25hbChtX3NlbWFwaG9yZSk7CisgICAgICAgICAgICBtX3NlbWFwaG9yZS5z
aWduYWwoKTsKICAgICAgICAgfSk7CiAgICAgfTsKIAogICAgIFtzZWxmIGNhbGxGdW5jdGlvbk9u
TWFpblRocmVhZDpXVEZNb3ZlKHdvcmspXTsKLSAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2FpdCht
X3NlbWFwaG9yZSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKKyAgICBtX3NlbWFwaG9yZS53YWl0
KCk7CiAKICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CiAgICAgaWYgKCFtX2hhbmRsZSkK
QEAgLTE5MSwxNyArMTg5LDE3IEBAIC0gKEJPT0wpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9u
ICopY29ubmVjdGlvbiBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvCiAgICAgYXV0byB3
b3JrID0gW3NlbGYsIHByb3RlY3RlZFNlbGYsIHByb3RlY3Rpb25TcGFjZSA9IHJldGFpblB0cihw
cm90ZWN0aW9uU3BhY2UpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFtX2hhbmRsZSkgewog
ICAgICAgICAgICAgbV9ib29sUmVzdWx0ID0gTk87Ci0gICAgICAgICAgICBkaXNwYXRjaF9zZW1h
cGhvcmVfc2lnbmFsKG1fc2VtYXBob3JlKTsKKyAgICAgICAgICAgIG1fc2VtYXBob3JlLnNpZ25h
bCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIG1faGFuZGxlLT5j
YW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKFByb3RlY3Rpb25TcGFjZShwcm90
ZWN0aW9uU3BhY2UuZ2V0KCkpLCBbc2VsZiwgcHJvdGVjdGVkU2VsZiA9IFdURk1vdmUocHJvdGVj
dGVkU2VsZildIChib29sIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBtX2Jvb2xSZXN1
bHQgPSByZXN1bHQ7Ci0gICAgICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKG1fc2Vt
YXBob3JlKTsKKyAgICAgICAgICAgIG1fc2VtYXBob3JlLnNpZ25hbCgpOwogICAgICAgICB9KTsK
ICAgICB9OwogCiAgICAgW3NlbGYgY2FsbEZ1bmN0aW9uT25NYWluVGhyZWFkOldURk1vdmUod29y
ayldOwotICAgIGRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KG1fc2VtYXBob3JlLCBESVNQQVRDSF9U
SU1FX0ZPUkVWRVIpOworICAgIG1fc2VtYXBob3JlLndhaXQoKTsKIAogICAgIExvY2tIb2xkZXIg
bG9jayhtX211dGV4KTsKICAgICBpZiAoIW1faGFuZGxlKQpAQCAtMjI2LDcgKzIyNCw3IEBAIC0g
KHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRSZWNlaXZl
UmVzcG9uc2U6KE5TVVJMUmVzcG9uCiAgICAgYXV0byB3b3JrID0gW3NlbGYsIHByb3RlY3RlZFNl
bGYsIHIgPSByZXRhaW5QdHIociksIGNvbm5lY3Rpb24gPSByZXRhaW5QdHIoY29ubmVjdGlvbild
ICgpIG11dGFibGUgewogICAgICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IHByb3RlY3RlZEhh
bmRsZShtX2hhbmRsZSk7CiAgICAgICAgIGlmICghbV9oYW5kbGUgfHwgIW1faGFuZGxlLT5jbGll
bnQoKSkgewotICAgICAgICAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbChtX3NlbWFwaG9y
ZSk7CisgICAgICAgICAgICBtX3NlbWFwaG9yZS5zaWduYWwoKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCkBAIC0yNDUsMTIgKzI0MywxMiBAQCAtICh2b2lkKWNvbm5lY3Rpb246
KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZVJlc3BvbnNlOihOU1VSTFJl
c3BvbgogICAgICAgICBSZXNvdXJjZUhhbmRsZTo6Z2V0Q29ubmVjdGlvblRpbWluZ0RhdGEoY29u
bmVjdGlvbi5nZXQoKSwgcmVzb3VyY2VSZXNwb25zZS5kZXByZWNhdGVkTmV0d29ya0xvYWRNZXRy
aWNzKCkpOwogCiAgICAgICAgIG1faGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoV1RGTW92ZShy
ZXNvdXJjZVJlc3BvbnNlKSwgW3NlbGYsIHByb3RlY3RlZFNlbGYgPSBXVEZNb3ZlKHByb3RlY3Rl
ZFNlbGYpXSB7Ci0gICAgICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKG1fc2VtYXBo
b3JlKTsKKyAgICAgICAgICAgIG1fc2VtYXBob3JlLnNpZ25hbCgpOwogICAgICAgICB9KTsKICAg
ICB9OwogCiAgICAgW3NlbGYgY2FsbEZ1bmN0aW9uT25NYWluVGhyZWFkOldURk1vdmUod29yayld
OwotICAgIGRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KG1fc2VtYXBob3JlLCBESVNQQVRDSF9USU1F
X0ZPUkVWRVIpOworICAgIG1fc2VtYXBob3JlLndhaXQoKTsKIAogICAgIC8vIE1ha2Ugc3VyZSB3
ZSBnZXQgZGVzdHJveWVkIG9uIHRoZSBtYWluIHRocmVhZC4KICAgICBbc2VsZiBjYWxsRnVuY3Rp
b25Pbk1haW5UaHJlYWQ6W3Byb3RlY3RlZFNlbGYgPSBXVEZNb3ZlKHByb3RlY3RlZFNlbGYpXSB7
IH1dOwpAQCAtMzUxLDE4ICszNDksMTggQEAgLSAoTlNDYWNoZWRVUkxSZXNwb25zZSAqKWNvbm5l
Y3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gd2lsbENhY2hlUmVzcG8KICAgICBh
dXRvIHdvcmsgPSBbc2VsZiwgcHJvdGVjdGVkU2VsZiwgY2FjaGVkUmVzcG9uc2UgPSByZXRhaW5Q
dHIoY2FjaGVkUmVzcG9uc2UpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFtX2hhbmRsZSB8
fCAhbV9oYW5kbGUtPmNsaWVudCgpKSB7CiAgICAgICAgICAgICBtX2NhY2hlZFJlc3BvbnNlUmVz
dWx0ID0gbnVsbHB0cjsKLSAgICAgICAgICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWduYWwobV9z
ZW1hcGhvcmUpOworICAgICAgICAgICAgbV9zZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICBtX2hhbmRsZS0+Y2xpZW50KCktPndpbGxD
YWNoZVJlc3BvbnNlQXN5bmMobV9oYW5kbGUsIGNhY2hlZFJlc3BvbnNlLmdldCgpLCBbc2VsZiwg
cHJvdGVjdGVkU2VsZiA9IFdURk1vdmUocHJvdGVjdGVkU2VsZildIChOU0NhY2hlZFVSTFJlc3Bv
bnNlICogcmVzcG9uc2UpIG11dGFibGUgewogICAgICAgICAgICAgbV9jYWNoZWRSZXNwb25zZVJl
c3VsdCA9IHJlc3BvbnNlOwotICAgICAgICAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbCht
X3NlbWFwaG9yZSk7CisgICAgICAgICAgICBtX3NlbWFwaG9yZS5zaWduYWwoKTsKICAgICAgICAg
fSk7CiAgICAgfTsKIAogICAgIFtzZWxmIGNhbGxGdW5jdGlvbk9uTWFpblRocmVhZDpXVEZNb3Zl
KHdvcmspXTsKLSAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2FpdChtX3NlbWFwaG9yZSwgRElTUEFU
Q0hfVElNRV9GT1JFVkVSKTsKKyAgICBtX3NlbWFwaG9yZS53YWl0KCk7CiAKICAgICBMb2NrSG9s
ZGVyIGxvY2sobV9tdXRleCk7CiAgICAgaWYgKCFtX2hhbmRsZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKaW5kZXggOWUyNzU0MDMxNWQ2ZTk2OGQ5MjJiN2Q0NmJj
NzYyMjk5MWI4MTdkMy4uOGU2ZjkzNTg0ODI0NGFhNmQ0MmE2ZTE5NmZjZTgyOTMyMWY4MzkxNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKQEAgLTgyLDcgKzgy
LDcgQEAgY2xhc3MgQ29ubmVjdGlvbjo6U3luY01lc3NhZ2VTdGF0ZSB7CiAKICAgICBib29sIHdh
aXQoVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIGFic29sdXRlVGltZSkKICAgICB7Ci0gICAgICAg
IHJldHVybiBtX3dhaXRGb3JTeW5jUmVwbHlTZW1hcGhvcmUud2FpdChhYnNvbHV0ZVRpbWUpOwor
ICAgICAgICByZXR1cm4gbV93YWl0Rm9yU3luY1JlcGx5U2VtYXBob3JlLndhaXRVbnRpbChhYnNv
bHV0ZVRpbWUpOwogICAgIH0KIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGlzIG1lc3NhZ2Ug
d2lsbCBiZSBoYW5kbGVkIG9uIGEgY2xpZW50IHRocmVhZCB0aGF0IGlzIGN1cnJlbnRseQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHAKaW5kZXggYzkwMzliMmRmZjIyOTVm
MTg2YmQ0NDNlMmYzNjI2OTBmM2M0NGFjZi4uYzQ2YjEyZjdkMzA4MDZlMjI3Y2RhMTg1Mjk3YzBm
NWZjMTI5MDBlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1NlY0l0ZW1T
aGltLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwCkBA
IC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8ZGxmY24uaD4KICNpbmNsdWRlIDxtdXRleD4KICNp
bmNsdWRlIDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgorI2luY2x1ZGUgPHd0Zi90aHJlYWRzL0Jp
bmFyeVNlbWFwaG9yZS5oPgogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbmNsdWRl
IDxDRk5ldHdvcmsvQ0ZVUkxDb25uZWN0aW9uUHJpdi5oPgpAQCAtNzcsMTYgKzc4LDE2IEBAIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFNlY0l0ZW1SZXNwb25zZURhdGE+IHNlbmRTZWNJdGVtUmVxdWVz
dChTZWNJdGVtUmVxdWVzdERhdGE6CiAKICAgICBzdGQ6Om9wdGlvbmFsPFNlY0l0ZW1SZXNwb25z
ZURhdGE+IHJlc3BvbnNlOwogCi0gICAgYXV0byBzZW1hcGhvcmUgPSBhZG9wdE9TT2JqZWN0KGRp
c3BhdGNoX3NlbWFwaG9yZV9jcmVhdGUoMCkpOworICAgIEJpbmFyeVNlbWFwaG9yZSBzZW1hcGhv
cmU7CiAKICAgICBzaGFyZWRQcm9jZXNzLT5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
V2l0aFJlcGx5KE1lc3NhZ2VzOjpTZWNJdGVtU2hpbVByb3h5OjpTZWNJdGVtUmVxdWVzdChTZWNJ
dGVtUmVxdWVzdERhdGEocmVxdWVzdFR5cGUsIHF1ZXJ5LCBhdHRyaWJ1dGVzVG9NYXRjaCkpLCAw
LCB3b3JrUXVldWUoKSwgWyZyZXNwb25zZSwgJnNlbWFwaG9yZV0oYXV0byByZXBseSkgewogICAg
ICAgICBpZiAocmVwbHkpCiAgICAgICAgICAgICByZXNwb25zZSA9IFdURk1vdmUoc3RkOjpnZXQ8
MD4oKnJlcGx5KSk7CiAKLSAgICAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbChzZW1hcGhv
cmUuZ2V0KCkpOworICAgICAgICBzZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAgfSk7CiAKLSAgICBk
aXNwYXRjaF9zZW1hcGhvcmVfd2FpdChzZW1hcGhvcmUuZ2V0KCksIERJU1BBVENIX1RJTUVfRk9S
RVZFUik7CisgICAgc2VtYXBob3JlLndhaXQoKTsKIAogICAgIHJldHVybiByZXNwb25zZTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NQZXJzaXN0ZW50U3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuY3BwCmluZGV4IGI2N2NhZGUyNWRmY2M5
YmFjZjU3OWM2NmI1NTA3ZmVmMGFjY2JiN2MuLjBjOTFmMjAyNmU4ZjE4MzQ4NWFjMzYwZTJkMjU5
ODVhMzhhZGI1OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmNwcApAQCAt
MzMyLDcgKzMzMiw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9y
YWdlOjpmaW5pc2hBbGxQZW5kaW5nV29ya1N5bmNocm9ub3VzbHkoCiAgICAgICAgICAgICB3cml0
ZU1lbW9yeVN0b3JlVG9EaXNrKCk7CiAgICAgICAgIHNlbWFwaG9yZS5zaWduYWwoKTsKICAgICB9
KTsKLSAgICBzZW1hcGhvcmUud2FpdChXYWxsVGltZTo6aW5maW5pdHkoKSk7CisgICAgc2VtYXBo
b3JlLndhaXQoKTsKIH0KIAogdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0
b3JhZ2U6OnJlZigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJTdG9y
YWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlN0b3Jh
Z2UvU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDdmNzAyZTE4ZWIzYTY3ZGJlNDc2ZTY5M2EwZjQy
MGQxM2I0Y2Y3NjkuLmQ3YWU0Y2VlNWIyYzY5NzQyNTY0OWFiNzlkMDM3YjFhODQ2M2I3YTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1h
bmFnZXIuY3BwCkBAIC04MjgsNyArODI4LDcgQEAgdm9pZCBTdG9yYWdlTWFuYWdlcjo6YXBwbGlj
YXRpb25XaWxsVGVybWluYXRlKCkKIAogICAgICAgICBzZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAg
fSk7Ci0gICAgc2VtYXBob3JlLndhaXQoV2FsbFRpbWU6OmluZmluaXR5KCkpOworICAgIHNlbWFw
aG9yZS53YWl0KCk7CiB9CiAKIFN0b3JhZ2VNYW5hZ2VyOjpTdG9yYWdlQXJlYSogU3RvcmFnZU1h
bmFnZXI6OmZpbmRTdG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHVpbnQ2
NF90IHN0b3JhZ2VNYXBJRCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KaW5kZXggODFlMTQxMmRhMzgwZWVhMWQy
MDNjYmIzNmMzMDMzN2QxMDNkMzhkNy4uMzUxYzRkYjQwODg4MTRkYWMwNmFhODQ5YWQwMWI1NDUy
ZGVkNDhmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9u
U2hlZXRBc3Npc3RhbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0
aW9uU2hlZXRBc3Npc3RhbnQubW0KQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUv
V2ViQ29yZU5TVVJMRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KICNpbXBv
cnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2ltcG9ydCA8d3RmL3RocmVhZHMvQmluYXJ5U2Vt
YXBob3JlLmg+CiAKICNpZiBIQVZFKEFQUF9MSU5LUykKICNpbXBvcnQgPHBhbC9zcGkvY29jb2Ev
TGF1bmNoU2VydmljZXNTUEkuaD4KQEAgLTczLDEzICs3NCwxMyBAQCBzdGF0aWMgYm9vbCBhcHBs
aWNhdGlvbkhhc0FwcExpbmtFbnRpdGxlbWVudHMoKQogc3RhdGljIExTQXBwTGluayAqYXBwTGlu
a0ZvclVSTChOU1VSTCAqdXJsKQogewogICAgIF9fYmxvY2sgTFNBcHBMaW5rICpzeW5jQXBwTGlu
ayA9IG5pbDsKKyAgICBfX2Jsb2NrIEJpbmFyeVNlbWFwaG9yZSBzZW1hcGhvcmU7CiAKLSAgICBk
aXNwYXRjaF9zZW1hcGhvcmVfdCBzZW1hcGhvcmUgPSBkaXNwYXRjaF9zZW1hcGhvcmVfY3JlYXRl
KDApOwogICAgIFtMU0FwcExpbmsgZ2V0QXBwTGlua1dpdGhVUkw6dXJsIGNvbXBsZXRpb25IYW5k
bGVyOl4oTFNBcHBMaW5rICphcHBMaW5rLCBOU0Vycm9yICplcnJvcikgewogICAgICAgICBzeW5j
QXBwTGluayA9IFthcHBMaW5rIHJldGFpbl07Ci0gICAgICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9z
aWduYWwoc2VtYXBob3JlKTsKKyAgICAgICAgc2VtYXBob3JlLnNpZ25hbCgpOwogICAgIH1dOwot
ICAgIGRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KHNlbWFwaG9yZSwgRElTUEFUQ0hfVElNRV9GT1JF
VkVSKTsKKyAgICBzZW1hcGhvcmUud2FpdCgpOwogCiAgICAgcmV0dXJuIFtzeW5jQXBwTGluayBh
dXRvcmVsZWFzZV07CiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggNTMxNmY2NDY1YzZhOWQyMjZhNDhhMWI0ZmI1M2ExZGU3MjUzMTAwYy4uNDFi
N2E1ODVlZjQ5MTMyOWZjMDMzZGNjN2U0ZmFiYWZmMDQ3MjZiMSAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE4LTA1
LTA0ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtX
VEZdIFVzZSBTZW1hcGhvcmUgYW5kIEJpbmFyeVNlbWFwaG9yZSBpbnN0ZWFkIG9mIGRpc3BhdGNo
X3NlbWFwaG9yZV90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODUzMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N5bmNocm9uaXplZEZpeGVkUXVldWUuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VG9VcHBlckNvbnZlcnRlcjo6c3RvcFByb2R1Y2lu
Zyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpUb1VwcGVyQ29udmVydGVyOjpzdG9wQ29uc3Vt
aW5nKToKKwogMjAxOC0wNS0wNCAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+
CiAKICAgICAgICAgRGVwcmVjYXRlIGxlZ2FjeSBXZWJWaWV3IGFuZCBmcmllbmRzCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TeW5jaHJvbml6ZWRGaXhlZFF1ZXVl
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N5bmNocm9uaXplZEZpeGVkUXVl
dWUuY3BwCmluZGV4IDgxYmJjMTBmZjBkZjVmZDRjZTAwZGQ2YjU3ZjkzZjVmNmU5YmZjMWUuLmY3
YTQ4ZGI3NWY2M2U1Yjc3Y2ZlNDhjYjM2MjFlMGFjNzNmYTk5NDIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N5bmNocm9uaXplZEZpeGVkUXVldWUuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N5bmNocm9uaXplZEZpeGVkUXVldWUuY3Bw
CkBAIC0xMjMsNyArMTIzLDcgQEAgY2xhc3MgVG9VcHBlckNvbnZlcnRlciB7CiAgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgbV9sb3dlclF1ZXVlLT5jbG9zZSgpOwotICAgICAgICBtX3By
b2R1Y2VDbG9zZVNlbWFwaG9yZS53YWl0KFdhbGxUaW1lOjppbmZpbml0eSgpKTsKKyAgICAgICAg
bV9wcm9kdWNlQ2xvc2VTZW1hcGhvcmUud2FpdCgpOwogICAgICAgICBtX3Byb2R1Y2VRdWV1ZSA9
IG51bGxwdHI7CiAgICAgfQogICAgIApAQCAtMTMzLDcgKzEzMyw3IEBAIGNsYXNzIFRvVXBwZXJD
b252ZXJ0ZXIgewogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIG1fdXBwZXJRdWV1ZS0+
Y2xvc2UoKTsKLSAgICAgICAgbV9jb25zdW1lQ2xvc2VTZW1hcGhvcmUud2FpdChXYWxsVGltZTo6
aW5maW5pdHkoKSk7CisgICAgICAgIG1fY29uc3VtZUNsb3NlU2VtYXBob3JlLndhaXQoKTsKICAg
ICAgICAgbV9jb25zdW1lUXVldWUgPSBudWxscHRyOwogICAgIH0KICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339631</attachid>
            <date>2018-05-04 21:03:08 -0700</date>
            <delta_ts>2018-05-04 21:05:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185339-20180505130306.patch</filename>
            <type>text/plain</type>
            <size>53056</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGIyYmVhNzVjMDRkOTczMmIxNWU1YTY0
ZGFmOWQzYTdjZDY1YzJkMTEuLjdlODk2Mzc1OGNhOTFkYzdlMTIwODkxODE0ZDE3NTFjNDBlZDIw
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTgtMDUtMDQgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW1dURl0gVXNlIFNlbWFwaG9yZSBhbmQgQmlu
YXJ5U2VtYXBob3JlIGluc3RlYWQgb2YgZGlzcGF0Y2hfc2VtYXBob3JlX3QKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTMzOQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBXVEY6
OlNlbWFwaG9yZSwgd2hpY2ggaXMgYmFzZWQgb24gV1RGOjpMb2NrIGFuZCBXVEY6OkNvbmRpdGlv
bi4KKworICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvU2VtYXBob3JlLmg6IEFkZGVkLgor
ICAgICAgICAoV1RGOjpTZW1hcGhvcmU6OlNlbWFwaG9yZSk6CisgICAgICAgIChXVEY6OlNlbWFw
aG9yZTo6c2lnbmFsKToKKyAgICAgICAgKFdURjo6U2VtYXBob3JlOjp3YWl0VW50aWwpOgorICAg
ICAgICAoV1RGOjpTZW1hcGhvcmU6OndhaXRGb3IpOgorICAgICAgICAoV1RGOjpTZW1hcGhvcmU6
OndhaXQpOgorICAgICAgICAqIHd0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwOgorICAg
ICAgICAoV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIHd0Zi90aHJl
YWRzL0JpbmFyeVNlbWFwaG9yZS5jcHA6CisgICAgICAgIChXVEY6OkJpbmFyeVNlbWFwaG9yZTo6
d2FpdFVudGlsKToKKyAgICAgICAgKFdURjo6QmluYXJ5U2VtYXBob3JlOjp3YWl0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiB3dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuaDoKKyAgICAgICAgKFdU
Rjo6QmluYXJ5U2VtYXBob3JlOjp3YWl0Rm9yKToKKyAgICAgICAgKFdURjo6QmluYXJ5U2VtYXBo
b3JlOjp3YWl0KToKKyAgICAgICAgQWxpZ24gdGhlIG5hbWVzIG9mIHRoZSBmdW5jdGlvbnMgdG8g
V1RGOjpDb25kaXRpb24uCisgICAgICAgIEFkZCBCaW5hcnlTZW1hcGhvcmU6OndhaXQoKSwgd2hp
Y2ggaXMgdGhlIHNhbWUgdG8gd2FpdFVudGlsKFdhbGxUaW1lOjppbmZpbml0eSgpKS4KKwogMjAx
OC0wNS0wNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBTaGlmdCB0byBhIGxvd2VyLWxldmVsIGZyYW1ld29yayBmb3Igc2ltcGxpZnlpbmcgVVJMcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDI5M2NjZjBiNmIyMWZkOGM2ZjFjMDJiODA4ZDlmODEwOTRiNDdhOWEuLjg4
ODcwMWM0YWNmYzE3NmJmOGYzMTdhNWYyZjgxMGJjNjc3ODJmNzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2OSBAQAorMjAxOC0wNS0wNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbV1RGXSBVc2UgU2VtYXBob3JlIGFuZCBCaW5hcnlTZW1hcGhvcmUg
aW5zdGVhZCBvZiBkaXNwYXRjaF9zZW1hcGhvcmVfdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmaWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUp
OgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0
ZXIubW06CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6
aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZp
bHRlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtFeHRlbnNp
b25Db250ZW50RmlsdGVyOjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok5l
dHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjphZGREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpmaW5pc2hlZEFkZGluZ0RhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6TmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OmhhbmRsZURlY2lz
aW9uKToKKyAgICAgICAgVXNlIHBlci1mdW5jdGlvbiBCaW5hcnlTZW1hcGhvcmUgaW5zdGVhZCBv
ZiBob2xkaW5nIGl0IGluIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyJ3MgZmllbGQuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL0ZpbGVNb25pdG9yR0xpYi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlTW9uaXRvcjo6RmlsZU1vbml0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZU1vbml0b3I6On5GaWxlTW9uaXRvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
On5NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OndhaXRGb3JWaWRlb091dHB1dE1l
ZGlhRGF0YVdpbGxDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6b3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZSk6CisgICAgICAgIFVz
ZSBCaW5hcnlTZW1hcGhvcmUuIEFuZCByZW1vdmUgdW51c2VkIGRpc3BhdGNoX3NlbWFwaG9yZV90
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKC1b
V2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgc3RyZWFtRGF0YVBhcnNlcldpbGxQcm92aWRl
Q29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6Zm9yVHJhY2tJRDpdKToKKyAgICAg
ICAgKC1bV2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgc3RyZWFtRGF0YVBhcnNlcjpkaWRQ
cm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6Zm9yVHJhY2tJRDpdKToK
KyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6flNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJ
bml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQzo6c2V0Q0RNU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2V0Q0RNSW5zdGFuY2UpOgorICAgICAgICBVc2UgQm94
PFNlbWFwaG9yZT4gYW5kIEJveDxCaW5hcnlTZW1hcGhvcmU+LgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1t
OgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb24pOgorICAgICAgICBSZW1vdmUgdW51c2VkIGRpc3BhdGNoX3Nl
bWFwaG9yZV90LgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRs
ZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2Yv
UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRSdW5Mb29wKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6Ondp
bGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNGVVJMQ29u
bmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdp
dGhPcGVyYXRpb25RdWV1ZTo6d2lsbENhY2hlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6
Y2FuUmVzcG9uZFRvUHJvdGVjdGlvblNwYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJh
dGlvblF1ZXVlRGVsZWdhdGUubW06CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFz
T3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBpbml0V2l0aEhhbmRsZTptZXNzYWdlUXVldWU6XSk6Cisg
ICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBk
ZXRhY2hIYW5kbGVdKToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRp
b25RdWV1ZURlbGVnYXRlIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFu
ZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246d2lsbFNlbmRSZXF1ZXN0OnJl
ZGlyZWN0UmVzcG9uc2U6XSk6CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3Bl
cmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9uOmNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90
ZWN0aW9uU3BhY2U6XSk6CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0
aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVSZXNwb25zZTpdKToKKyAgICAg
ICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5l
Y3Rpb246d2lsbENhY2hlUmVzcG9uc2U6XSk6CisgICAgICAgIFVzZSBCaW5hcnlTZW1hcGhvcmUg
aW5zdGVhZC4KKwogMjAxOC0wNS0wMiAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAK
ICAgICAgICAgVXNlIElPU3VyZmFjZXMgZm9yIENvcmVJbWFnZSBvcGVyYXRpb25zIHdoZXJlIHBv
c3NpYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDZiYzYxYjYxYjRmYTAyNDY3MzhkYzFmYTJlYWU5ZjhlMjNkNmY1
MzMuLmM5MWQxMDA5NWZhN2UzOThhYWMxMDdkYjMxOGM4ZWJlNmMyODUyZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMTgtMDUtMDQgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBn
bWFpbC5jb20+CisKKyAgICAgICAgW1dURl0gVXNlIFNlbWFwaG9yZSBhbmQgQmluYXJ5U2VtYXBo
b3JlIGluc3RlYWQgb2YgZGlzcGF0Y2hfc2VtYXBob3JlX3QKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTMzOQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjp3YWl0KToKKyAg
ICAgICAgKiBTaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcDoKKyAgICAgICAgKFdlYktpdDo6c2Vu
ZFNlY0l0ZW1SZXF1ZXN0KToKKyAgICAgICAgVXNlIEJpbmFyeVNlbWFwaG9yZS4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3Jh
Z2U6OmZpbmlzaEFsbFBlbmRpbmdXb3JrU3luY2hyb25vdXNseSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9y
YWdlTWFuYWdlcjo6YXBwbGljYXRpb25XaWxsVGVybWluYXRlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW06CisgICAgICAgIChhcHBMaW5rRm9yVVJM
KToKKyAgICAgICAgVXNlIEJpbmFyeVNlbWFwaG9yZSB0byB3YWl0IGZvciBhc3luYyBjb21wbGV0
aW9uIGhhbmRsZXIuIFdlIGFsc28gZml4IG1lbW9yeSBsZWFrCisgICAgICAgIHNpbmNlIHRoZSBv
bGQgY29kZSBkb2VzIG5vdCBjYWxsIGRpc3BhdGNoX3JlbGVhc2UgZm9yIHRoZSB1c2VkIHNlbWFw
aG9yZS4KKwogMjAxOC0wNS0wNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNv
bT4KIAogICAgICAgICBTaGlmdCB0byBhIGxvd2VyLWxldmVsIGZyYW1ld29yayBmb3Igc2ltcGxp
ZnlpbmcgVVJMcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MWEzOGYxOTg2ZTg2ZDZiYjk0MjRlMTc5NzRlYjI4ZWEzNGQ2ZmNlMi4uN2U2MTZlYjM0NDQ5NDM1
NTg2NWFiN2E4NTk1ODMxZTQxNWRjYjljNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC02MTksNiArNjE5LDcgQEAKIAkJRTM4RDZFMjYxRjU1MjJFMzAwQTc1
Q0M0IC8qIFN0cmluZ0J1aWxkZXJKU09OLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFN0cmluZ0J1aWxkZXJKU09OLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTNBMzJCQzIxRkM4MzBFMjAwN0Q3RTc2IC8qIEpTVmFsdWVNYWxsb2MuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNWYWx1ZU1hbGxvYy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQTMyQkMzMUZDODMwRTIwMDdEN0U3NiAvKiBKU1Zh
bHVlTWFsbG9jLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVmFsdWVNYWxs
b2MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNDMjFEOEIyMDlENUM3MDAwNkND
MDc4IC8qIFNlbWFwaG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZW1h
cGhvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNFMTU4MjUxRUFEQTUzQzAw
NEEwNzlEIC8qIFN5c3RlbUZyZWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3lzdGVtRnJlZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEEwQUQzNzFBOTYy
NDU1MDA1MzZERjYgLyogV29ya1F1ZXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdvcmtRdWV1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0
QTBBRDM4MUE5NjI0NTUwMDUzNkRGNiAvKiBXb3JrUXVldWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV29ya1F1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMDQ2LDYgKzEwNDcsNyBAQAogCQkJCTBGNjZCMjg0MURDOTdCQUIwMDRBMUQzRiAvKiBTZWNv
bmRzLmNwcCAqLywKIAkJCQkwRjY2QjI4NTFEQzk3QkFCMDA0QTFEM0YgLyogU2Vjb25kcy5oICov
LAogCQkJCUE4QTQ3MzA2MTUxQTgyNUIwMDQxMjNGRiAvKiBTZWdtZW50ZWRWZWN0b3IuaCAqLywK
KwkJCQlFM0MyMUQ4QjIwOUQ1QzcwMDA2Q0MwNzggLyogU2VtYXBob3JlLmggKi8sCiAJCQkJQThB
NDczMDcxNTFBODI1QjAwNDEyM0ZGIC8qIFNlbnRpbmVsTGlua2VkTGlzdC5oICovLAogCQkJCUE4
QTQ3MzFBMTUxQTgyNUIwMDQxMjNGRiAvKiBTZXRGb3JTY29wZS5oICovLAogCQkJCUE4QTQ3MzA4
MTUxQTgyNUIwMDQxMjNGRiAvKiBTSEExLmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXgg
NDg5MDI5N2U5NzY5ZDlhYzhhMmUzMmMxNDExNzM2MTI1M2RhOGJmZS4uODA5NzZjYjBiNjNhYWI1
N2I5OWVhZTdkNDU1NjNiN2ZlZWI2YjVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTE5Niw2
ICsxOTYsNyBAQCBzZXQoV1RGX1BVQkxJQ19IRUFERVJTCiAgICAgU2NvcGVkTGFtYmRhLmgKICAg
ICBTZWNvbmRzLmgKICAgICBTZWdtZW50ZWRWZWN0b3IuaAorICAgIFNlbWFwaG9yZS5oCiAgICAg
U2VudGluZWxMaW5rZWRMaXN0LmgKICAgICBTZXRGb3JTY29wZS5oCiAgICAgU2hhcmVkVGFzay5o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TZW1hcGhvcmUuaCBiL1NvdXJjZS9XVEYvd3Rm
L1NlbWFwaG9yZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlZTUyNzBmODE4ZWQwMWI5MzRkZjhmOWMwMTEzZGRj
ODYyZjE1MjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TZW1hcGhvcmUuaApA
QCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IFl1c3VrZSBTdXp1a2kg
PHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgor
I2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25h
bWVzcGFjZSBXVEYgeworCitjbGFzcyBTZW1hcGhvcmUgeworICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKFNlbWFwaG9yZSk7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6Cisg
ICAgY29uc3RleHByIFNlbWFwaG9yZSh1bnNpZ25lZCB2YWx1ZSkKKyAgICAgICAgOiBtX3ZhbHVl
KHZhbHVlKQorICAgIHsKKyAgICB9CisKKyAgICB2b2lkIHNpZ25hbCgpCisgICAgeworICAgICAg
ICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbG9jayk7CisgICAgICAgIG1fdmFsdWUrKzsKKyAg
ICAgICAgbV9jb25kaXRpb24ubm90aWZ5T25lKCk7CisgICAgfQorCisgICAgYm9vbCB3YWl0VW50
aWwoY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiB0aW1lb3V0KQorICAgIHsKKyAgICAg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOworICAgICAgICBib29sIHNhdGlzZmll
ZCA9IG1fY29uZGl0aW9uLndhaXRVbnRpbChtX2xvY2ssIHRpbWVvdXQsCisgICAgICAgICAgICBb
Jl0geworICAgICAgICAgICAgICAgIHJldHVybiBtX3ZhbHVlOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIGlmIChzYXRpc2ZpZWQpCisgICAgICAgICAgICAtLW1fdmFsdWU7CisgICAgICAgIHJl
dHVybiBzYXRpc2ZpZWQ7CisgICAgfQorCisgICAgYm9vbCB3YWl0Rm9yKFNlY29uZHMgcmVsYXRp
dmVUaW1lb3V0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHdhaXRVbnRpbChNb25vdG9uaWNUaW1l
Ojpub3coKSArIHJlbGF0aXZlVGltZW91dCk7CisgICAgfQorCisgICAgdm9pZCB3YWl0KCkKKyAg
ICB7CisgICAgICAgIHdhaXRVbnRpbChQYXJraW5nTG90OjpUaW1lOjppbmZpbml0eSgpKTsKKyAg
ICB9CisKK3ByaXZhdGU6CisgICAgdW5zaWduZWQgbV92YWx1ZSB7IDAgfTsKKyAgICBMb2NrIG1f
bG9jazsKKyAgICBDb25kaXRpb24gbV9jb25kaXRpb247Cit9OworCisKK30gLy8gbmFtZXNwYWNl
IFdURgorCit1c2luZyBXVEY6OlNlbWFwaG9yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L2dlbmVyaWMvV29ya1F1ZXVlR2VuZXJpYy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1dv
cmtRdWV1ZUdlbmVyaWMuY3BwCmluZGV4IGUwNTkxNjQ0YWFhMjdlNTU1NmM2Mzc1MzhlYThlODE5
MmM1YWE5YTYuLjNjMDQ5MmZmNTRlYjBkNzUwMjBhYWM3NGU5NjdiNjk1OGJlN2M1ZWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMvV29ya1F1ZXVlR2VuZXJpYy5jcHAKKysrIGIv
U291cmNlL1dURi93dGYvZ2VuZXJpYy9Xb3JrUXVldWVHZW5lcmljLmNwcApAQCAtNDIsNyArNDIs
NyBAQCB2b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IGNoYXIqIG5hbWUs
IFR5cGUsIFFPUykKICAgICAgICAgc2VtYXBob3JlLnNpZ25hbCgpOwogICAgICAgICBtX3J1bkxv
b3AtPnJ1bigpOwogICAgIH0pLT5kZXRhY2goKTsKLSAgICBzZW1hcGhvcmUud2FpdChXYWxsVGlt
ZTo6aW5maW5pdHkoKSk7CisgICAgc2VtYXBob3JlLndhaXQoKTsKIH0KIAogdm9pZCBXb3JrUXVl
dWU6OnBsYXRmb3JtSW52YWxpZGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90aHJl
YWRzL0JpbmFyeVNlbWFwaG9yZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRzL0JpbmFyeVNl
bWFwaG9yZS5jcHAKaW5kZXggZTJmNmRlZDc5ZjQyMDEwNjNhMGI0ODEyMzllOTEyZjIyZjU4N2U4
My4uMTgwNTY4MjJjM2Q5YmNkMzM3ZjEzZDM3ZmNkYzhlZjkyYmQ2Y2NmMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuY3BwCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmNwcApAQCAtMzUsNyArMzUsNyBAQCB2b2lk
IEJpbmFyeVNlbWFwaG9yZTo6c2lnbmFsKCkKICAgICBtX2NvbmRpdGlvbi5ub3RpZnlPbmUoKTsK
IH0KIAotYm9vbCBCaW5hcnlTZW1hcGhvcmU6OndhaXQoVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBl
IGFic29sdXRlVGltZSkKK2Jvb2wgQmluYXJ5U2VtYXBob3JlOjp3YWl0VW50aWwoY29uc3QgVGlt
ZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiBhYnNvbHV0ZVRpbWUpCiB7CiAgICAgYXV0byBsb2NrZXIg
PSBob2xkTG9jayhtX2xvY2spOwogICAgIGJvb2wgc2F0aXNmaWVkID0gbV9jb25kaXRpb24ud2Fp
dFVudGlsKG1fbG9jaywgYWJzb2x1dGVUaW1lLCBbJl0geyByZXR1cm4gbV9pc1NldDsgfSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oIGIvU291
cmNlL1dURi93dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuaAppbmRleCBmZDU5ZDVhYTJiYWJj
MjJkYWJmNTU2NTVlNjYwMWY2NDg0OTBlZGUyLi5kNWI3MzhmNWYzYzI5YzIyOTJjYWU4YzUwYjUw
OWI4NmE0NmU2OGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRzL0JpbmFyeVNl
bWFwaG9yZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmgK
QEAgLTM1LDExICszNSwyMiBAQCBuYW1lc3BhY2UgV1RGIHsKIAogY2xhc3MgQmluYXJ5U2VtYXBo
b3JlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShCaW5hcnlTZW1hcGhvcmUpOworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIEJpbmFyeVNlbWFwaG9yZSgpID0g
ZGVmYXVsdDsKKyAgICBjb25zdGV4cHIgQmluYXJ5U2VtYXBob3JlKCkgPSBkZWZhdWx0OwogCiAg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc2lnbmFsKCk7Ci0gICAgV1RGX0VYUE9SVF9QUklW
QVRFIGJvb2wgd2FpdChUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUpOworICAgIFdURl9FWFBPUlRf
UFJJVkFURSBib29sIHdhaXRVbnRpbChjb25zdCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUmKTsK
KworICAgIGJvb2wgd2FpdEZvcihTZWNvbmRzIHJlbGF0aXZlVGltZW91dCkKKyAgICB7CisgICAg
ICAgIHJldHVybiB3YWl0VW50aWwoTW9ub3RvbmljVGltZTo6bm93KCkgKyByZWxhdGl2ZVRpbWVv
dXQpOworICAgIH0KKworICAgIHZvaWQgd2FpdCgpCisgICAgeworICAgICAgICB3YWl0VW50aWwo
UGFya2luZ0xvdDo6VGltZTo6aW5maW5pdHkoKSk7CisgICAgfQogCiBwcml2YXRlOgogICAgIGJv
b2wgbV9pc1NldCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJl
YWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcAppbmRleCBiNmM1N2EzMWQ4YzJiNTEzM2ViYmM5MzhkMzQ5
MjAxNjQwMTI3ODkzLi41YmM5YmFmNzgyNzk2YmE0MzNkN2U4MjljMTBhZjY3NzE3YWE0MzkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5j
cHAKQEAgLTE1MCw3ICsxNTAsNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgVGhyZWFkYWJsZUJsb2JS
ZWdpc3RyeTo6YmxvYlNpemUoY29uc3QgVVJMJiB1cmwpCiAgICAgICAgICAgICByZXN1bHRTaXpl
ID0gYmxvYlJlZ2lzdHJ5KCkuYmxvYlNpemUodXJsKTsKICAgICAgICAgICAgIHNlbWFwaG9yZS5z
aWduYWwoKTsKICAgICAgICAgfSk7Ci0gICAgICAgIHNlbWFwaG9yZS53YWl0KFdhbGxUaW1lOjpp
bmZpbml0eSgpKTsKKyAgICAgICAgc2VtYXBob3JlLndhaXQoKTsKICAgICB9CiAgICAgcmV0dXJu
IHJlc3VsdFNpemU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaAppbmRleCA5ODNiNzAzNWI3
MDBlYzE4ZmI5M2FkMWEzMjQ4ZDExMTVlM2Q5ZDIxLi4yMTA2YzJiYTliODZhYzAyMGI0MDcwMTBl
OTEzMjM5YmQ0MjU5MGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmgKQEAgLTY0LDcgKzY0
LDYgQEAgY2xhc3MgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIgZmluYWwgOiBwdWJsaWMg
UGxhdGZvcm1Db250ZW50RmlsdGVyIHsKICAgICB2b2lkIGhhbmRsZURlY2lzaW9uKE5FRmlsdGVy
U291cmNlU3RhdHVzLCBOU0RhdGEgKnJlcGxhY2VtZW50RGF0YSk7CiAKICAgICBPU09iamVjdFB0
cjxkaXNwYXRjaF9xdWV1ZV90PiBtX3F1ZXVlOwotICAgIE9TT2JqZWN0UHRyPGRpc3BhdGNoX3Nl
bWFwaG9yZV90PiBtX3NlbWFwaG9yZTsKICAgICBSZXRhaW5QdHI8TlNEYXRhPiBtX3JlcGxhY2Vt
ZW50RGF0YTsKICAgICBSZXRhaW5QdHI8TkVGaWx0ZXJTb3VyY2U+IG1fbmVGaWx0ZXJTb3VyY2U7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4
dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9O
ZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbQppbmRleCA3ZDBkMjVlZTI5ZDFjNmEzMGIy
MzQ0ZmEyNTQxMmY1ZjM1OTg3NGMwLi5hNmMxYjM2MWE3MjlhMDMwYzI4MGYwNjE4NTg4ODVlNWFh
ZTE0Y2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9OZXR3b3Jr
RXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbQpAQCAtMzgsNiArMzgsNyBAQAog
I2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05FRmlsdGVy
U291cmNlU1BJLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKyNpbXBvcnQgPHd0Zi90
aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oPgogCiBTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFM
KE5ldHdvcmtFeHRlbnNpb24pOwogU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKE5ldHdvcmtFeHRl
bnNpb24sIE5FRmlsdGVyU291cmNlKTsKQEAgLTcwLDEwICs3MSw4IEBAIHN0ZDo6dW5pcXVlX3B0
cjxOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcj4gTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRG
aWx0ZXI6OmNyCiB2b2lkIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjppbml0aWFsaXpl
KGNvbnN0IFVSTCogdXJsKQogewogICAgIEFTU0VSVCghbV9xdWV1ZSk7Ci0gICAgQVNTRVJUKCFt
X3NlbWFwaG9yZSk7CiAgICAgQVNTRVJUKCFtX25lRmlsdGVyU291cmNlKTsKICAgICBtX3F1ZXVl
ID0gYWRvcHRPU09iamVjdChkaXNwYXRjaF9xdWV1ZV9jcmVhdGUoIldlYktpdCBOZXR3b3JrRXh0
ZW5zaW9uIEZpbHRlcmluZyIsIERJU1BBVENIX1FVRVVFX1NFUklBTCkpOwotICAgIG1fc2VtYXBo
b3JlID0gYWRvcHRPU09iamVjdChkaXNwYXRjaF9zZW1hcGhvcmVfY3JlYXRlKDApKTsKICAgICBB
U1NFUlRfVU5VU0VEKHVybCwgIXVybCk7CiAgICAgbV9uZUZpbHRlclNvdXJjZSA9IGFkb3B0TlMo
W2FsbG9jTkVGaWx0ZXJTb3VyY2VJbnN0YW5jZSgpIGluaXRXaXRoRGVjaXNpb25RdWV1ZTptX3F1
ZXVlLmdldCgpXSk7CiAjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDEzMDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkKQEAgLTEwMCwxNyArOTksMTkgQEAgdm9pZCBO
ZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY28KICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBCaW5h
cnlTZW1hcGhvcmUgc2VtYXBob3JlOwogICAgIFJldGFpblB0cjxOU1N0cmluZz4gbW9kaWZpZWRS
ZXF1ZXN0VVJMU3RyaW5nOwotICAgIFttX25lRmlsdGVyU291cmNlIHdpbGxTZW5kUmVxdWVzdDpy
ZXF1ZXN0Lm5zVVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBCb2R5KSBkZWNpc2lvbkhhbmRsZXI6
W3RoaXMsICZtb2RpZmllZFJlcXVlc3RVUkxTdHJpbmddKE5FRmlsdGVyU291cmNlU3RhdHVzIHN0
YXR1cywgTlNEaWN0aW9uYXJ5ICpkZWNpc2lvbkluZm8pIHsKKyAgICBbbV9uZUZpbHRlclNvdXJj
ZSB3aWxsU2VuZFJlcXVlc3Q6cmVxdWVzdC5uc1VSTFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9k
eSkgZGVjaXNpb25IYW5kbGVyOlt0aGlzLCAmbW9kaWZpZWRSZXF1ZXN0VVJMU3RyaW5nLCAmc2Vt
YXBob3JlXShORUZpbHRlclNvdXJjZVN0YXR1cyBzdGF0dXMsIE5TRGljdGlvbmFyeSAqZGVjaXNp
b25JbmZvKSB7CiAgICAgICAgIG1vZGlmaWVkUmVxdWVzdFVSTFN0cmluZyA9IGRlY2lzaW9uSW5m
b1tORUZpbHRlclNvdXJjZU9wdGlvbnNSZWRpcmVjdFVSTF07CiAgICAgICAgIEFTU0VSVCghbW9k
aWZpZWRSZXF1ZXN0VVJMU3RyaW5nIHx8IFttb2RpZmllZFJlcXVlc3RVUkxTdHJpbmcgaXNLaW5k
T2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSk7CiAgICAgICAgIGhhbmRsZURlY2lzaW9uKHN0YXR1
cywgcmVwbGFjZW1lbnREYXRhRnJvbURlY2lzaW9uSW5mbyhkZWNpc2lvbkluZm8pKTsKKyAgICAg
ICAgc2VtYXBob3JlLnNpZ25hbCgpOwogICAgIH1dOwogCiAgICAgLy8gRklYTUU6IFdlIGhhdmUg
dG8gYmxvY2sgaGVyZSBzaW5jZSBEb2N1bWVudExvYWRlciBleHBlY3RzIHRvIGhhdmUgYQogICAg
IC8vIGJsb2NrZWQvbm90IGJsb2NrZWQgYW5zd2VyIGZyb20gdGhlIGZpbHRlciBpbW1lZGlhdGVs
eSBhZnRlciBjYWxsaW5nCiAgICAgLy8gYWRkRGF0YSgpLiBXZSBzaG91bGQgZmluZCBhIHdheSB0
byBtYWtlIHRoaXMgYXN5bmNocm9ub3VzLgotICAgIGRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KG1f
c2VtYXBob3JlLmdldCgpLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOworICAgIHNlbWFwaG9yZS53
YWl0KCk7CiAKICAgICBpZiAoIW1vZGlmaWVkUmVxdWVzdFVSTFN0cmluZykKICAgICAgICAgcmV0
dXJuOwpAQCAtMTMxLDQwICsxMzIsNDYgQEAgdm9pZCBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZp
bHRlcjo6cmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXMKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIFttX25lRmlsdGVyU291cmNlIHJlY2VpdmVkUmVzcG9u
c2U6cmVzcG9uc2UubnNVUkxSZXNwb25zZSgpIGRlY2lzaW9uSGFuZGxlcjpbdGhpc10oTkVGaWx0
ZXJTb3VyY2VTdGF0dXMgc3RhdHVzLCBOU0RpY3Rpb25hcnkgKmRlY2lzaW9uSW5mbykgeworICAg
IEJpbmFyeVNlbWFwaG9yZSBzZW1hcGhvcmU7CisgICAgW21fbmVGaWx0ZXJTb3VyY2UgcmVjZWl2
ZWRSZXNwb25zZTpyZXNwb25zZS5uc1VSTFJlc3BvbnNlKCkgZGVjaXNpb25IYW5kbGVyOlt0aGlz
LCAmc2VtYXBob3JlXShORUZpbHRlclNvdXJjZVN0YXR1cyBzdGF0dXMsIE5TRGljdGlvbmFyeSAq
ZGVjaXNpb25JbmZvKSB7CiAgICAgICAgIGhhbmRsZURlY2lzaW9uKHN0YXR1cywgcmVwbGFjZW1l
bnREYXRhRnJvbURlY2lzaW9uSW5mbyhkZWNpc2lvbkluZm8pKTsKKyAgICAgICAgc2VtYXBob3Jl
LnNpZ25hbCgpOwogICAgIH1dOwogCiAgICAgLy8gRklYTUU6IFdlIGhhdmUgdG8gYmxvY2sgaGVy
ZSBzaW5jZSBEb2N1bWVudExvYWRlciBleHBlY3RzIHRvIGhhdmUgYQogICAgIC8vIGJsb2NrZWQv
bm90IGJsb2NrZWQgYW5zd2VyIGZyb20gdGhlIGZpbHRlciBpbW1lZGlhdGVseSBhZnRlciBjYWxs
aW5nCiAgICAgLy8gYWRkRGF0YSgpLiBXZSBzaG91bGQgZmluZCBhIHdheSB0byBtYWtlIHRoaXMg
YXN5bmNocm9ub3VzLgotICAgIGRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KG1fc2VtYXBob3JlLmdl
dCgpLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOworICAgIHNlbWFwaG9yZS53YWl0KCk7CiB9CiAK
IHZvaWQgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OmFkZERhdGEoY29uc3QgY2hhciog
ZGF0YSwgaW50IGxlbmd0aCkKIHsKICAgICBSZXRhaW5QdHI8TlNEYXRhPiBjb3BpZWREYXRhIHsg
W05TRGF0YSBkYXRhV2l0aEJ5dGVzOih2b2lkKilkYXRhIGxlbmd0aDpsZW5ndGhdIH07CiAKLSAg
ICBbbV9uZUZpbHRlclNvdXJjZSByZWNlaXZlZERhdGE6Y29waWVkRGF0YS5nZXQoKSBkZWNpc2lv
bkhhbmRsZXI6W3RoaXNdKE5FRmlsdGVyU291cmNlU3RhdHVzIHN0YXR1cywgTlNEaWN0aW9uYXJ5
ICpkZWNpc2lvbkluZm8pIHsKKyAgICBCaW5hcnlTZW1hcGhvcmUgc2VtYXBob3JlOworICAgIFtt
X25lRmlsdGVyU291cmNlIHJlY2VpdmVkRGF0YTpjb3BpZWREYXRhLmdldCgpIGRlY2lzaW9uSGFu
ZGxlcjpbdGhpcywgJnNlbWFwaG9yZV0oTkVGaWx0ZXJTb3VyY2VTdGF0dXMgc3RhdHVzLCBOU0Rp
Y3Rpb25hcnkgKmRlY2lzaW9uSW5mbykgewogICAgICAgICBoYW5kbGVEZWNpc2lvbihzdGF0dXMs
IHJlcGxhY2VtZW50RGF0YUZyb21EZWNpc2lvbkluZm8oZGVjaXNpb25JbmZvKSk7CisgICAgICAg
IHNlbWFwaG9yZS5zaWduYWwoKTsKICAgICB9XTsKIAogICAgIC8vIEZJWE1FOiBXZSBoYXZlIHRv
IGJsb2NrIGhlcmUgc2luY2UgRG9jdW1lbnRMb2FkZXIgZXhwZWN0cyB0byBoYXZlIGEKICAgICAv
LyBibG9ja2VkL25vdCBibG9ja2VkIGFuc3dlciBmcm9tIHRoZSBmaWx0ZXIgaW1tZWRpYXRlbHkg
YWZ0ZXIgY2FsbGluZwogICAgIC8vIGFkZERhdGEoKS4gV2Ugc2hvdWxkIGZpbmQgYSB3YXkgdG8g
bWFrZSB0aGlzIGFzeW5jaHJvbm91cy4KLSAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2FpdChtX3Nl
bWFwaG9yZS5nZXQoKSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKKyAgICBzZW1hcGhvcmUud2Fp
dCgpOwogfQogCiB2b2lkIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpmaW5pc2hlZEFk
ZGluZ0RhdGEoKQogewotICAgIFttX25lRmlsdGVyU291cmNlIGZpbmlzaGVkTG9hZGluZ1dpdGhE
ZWNpc2lvbkhhbmRsZXI6W3RoaXNdKE5FRmlsdGVyU291cmNlU3RhdHVzIHN0YXR1cywgTlNEaWN0
aW9uYXJ5ICpkZWNpc2lvbkluZm8pIHsKKyAgICBCaW5hcnlTZW1hcGhvcmUgc2VtYXBob3JlOwor
ICAgIFttX25lRmlsdGVyU291cmNlIGZpbmlzaGVkTG9hZGluZ1dpdGhEZWNpc2lvbkhhbmRsZXI6
W3RoaXMsICZzZW1hcGhvcmVdKE5FRmlsdGVyU291cmNlU3RhdHVzIHN0YXR1cywgTlNEaWN0aW9u
YXJ5ICpkZWNpc2lvbkluZm8pIHsKICAgICAgICAgaGFuZGxlRGVjaXNpb24oc3RhdHVzLCByZXBs
YWNlbWVudERhdGFGcm9tRGVjaXNpb25JbmZvKGRlY2lzaW9uSW5mbykpOworICAgICAgICBzZW1h
cGhvcmUuc2lnbmFsKCk7CiAgICAgfV07CiAKICAgICAvLyBGSVhNRTogV2UgaGF2ZSB0byBibG9j
ayBoZXJlIHNpbmNlIERvY3VtZW50TG9hZGVyIGV4cGVjdHMgdG8gaGF2ZSBhCiAgICAgLy8gYmxv
Y2tlZC9ub3QgYmxvY2tlZCBhbnN3ZXIgZnJvbSB0aGUgZmlsdGVyIGltbWVkaWF0ZWx5IGFmdGVy
IGNhbGxpbmcKICAgICAvLyBmaW5pc2hlZEFkZGluZ0RhdGEoKS4gV2Ugc2hvdWxkIGZpbmQgYSB3
YXkgdG8gbWFrZSB0aGlzIGFzeW5jaHJvbm91cy4KLSAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2Fp
dChtX3NlbWFwaG9yZS5nZXQoKSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKKyAgICBzZW1hcGhv
cmUud2FpdCgpOwogfQogCiBSZWY8U2hhcmVkQnVmZmVyPiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVu
dEZpbHRlcjo6cmVwbGFjZW1lbnREYXRhKCkgY29uc3QKQEAgLTIxNSw3ICsyMjIsNiBAQCB2b2lk
IE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpoYW5kbGVEZWNpc2lvbihORUZpbHRlclNv
dXJjZVN0YXR1cyBzdGF0dXMsCiAgICAgaWYgKCFuZWVkc01vcmVEYXRhKCkpCiAgICAgICAgIExP
RyhDb250ZW50RmlsdGVyaW5nLCAiTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIgc3RvcHBl
ZCBidWZmZXJpbmcgd2l0aCBzdGF0dXMgJXpkIGFuZCByZXBsYWNlbWVudCBkYXRhIGxlbmd0aCAl
enUuXG4iLCBzdGF0dXMsIHJlcGxhY2VtZW50RGF0YS5sZW5ndGgpOwogI2VuZGlmCi0gICAgZGlz
cGF0Y2hfc2VtYXBob3JlX3NpZ25hbChtX3NlbWFwaG9yZS5nZXQoKSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIv
RmlsZU1vbml0b3JHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZU1v
bml0b3JHTGliLmNwcAppbmRleCBiYjY5NWE5MjdhMzk3ZDNhZTAyODQ5Y2JmMDljOTkxYzI2ZDk1
YjcyLi40NjNmMzI3NmMyNGUyNTFiZWI0YWEwOGIwYjk4OTg2ZThjYzk2OTIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVNb25pdG9yR0xpYi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlTW9uaXRvckdMaWIuY3BwCkBAIC02MCw3
ICs2MCw3IEBAIEZpbGVNb25pdG9yOjpGaWxlTW9uaXRvcihjb25zdCBTdHJpbmcmIHBhdGgsIFJl
ZjxXb3JrUXVldWU+JiYgaGFuZGxlclF1ZXVlLCBXVEY6CiAgICAgICAgIGNyZWF0ZVBsYXRmb3Jt
TW9uaXRvcigpOwogICAgICAgICBzZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAgfSk7Ci0gICAgc2Vt
YXBob3JlLndhaXQoV2FsbFRpbWU6OmluZmluaXR5KCkpOworICAgIHNlbWFwaG9yZS53YWl0KCk7
CiB9CiAKIEZpbGVNb25pdG9yOjp+RmlsZU1vbml0b3IoKQpAQCAtNzQsNyArNzQsNyBAQCBGaWxl
TW9uaXRvcjo6fkZpbGVNb25pdG9yKCkKICAgICAgICAgbV9wbGF0Zm9ybU1vbml0b3IgPSBudWxs
cHRyOwogICAgICAgICBzZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAgfSk7Ci0gICAgc2VtYXBob3Jl
LndhaXQoV2FsbFRpbWU6OmluZmluaXR5KCkpOworICAgIHNlbWFwaG9yZS53YWl0KCk7CiB9CiAK
IHZvaWQgRmlsZU1vbml0b3I6OmZpbGVDaGFuZ2VkQ2FsbGJhY2soR0ZpbGVNb25pdG9yKiwgR0Zp
bGUqLCBHRmlsZSosIEdGaWxlTW9uaXRvckV2ZW50IGV2ZW50LCBGaWxlTW9uaXRvciogbW9uaXRv
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCBmNDY0NzAzY2Y5N2Y0OGE0OTFlYjBjOTA1OTdi
M2M2N2FkZjFmYjE0Li44ODU3ZDhiNDcyYjNlNDQ5ZmM5ZDY0ZWJkMzE1YjgwYTljZDc4MjQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvdGhyZWFkcy9CaW5hcnlTZW1h
cGhvcmUuaD4KIAogT0JKQ19DTEFTUyBBVkFzc2V0SW1hZ2VHZW5lcmF0b3I7CiBPQkpDX0NMQVNT
IEFWQXNzZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0OwpAQCAtMzU5LDcgKzM2MCw3IEBAIGNsYXNz
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uCiAgICAgUmV0YWluUHRyPFdlYkNvcmVBVkZQdWxsRGVsZWdhdGU+
IG1fdmlkZW9PdXRwdXREZWxlZ2F0ZTsKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4g
bV9sYXN0UGl4ZWxCdWZmZXI7CiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IG1fbGFzdEltYWdl
OwotICAgIGRpc3BhdGNoX3NlbWFwaG9yZV90IG1fdmlkZW9PdXRwdXRTZW1hcGhvcmU7CisgICAg
QmluYXJ5U2VtYXBob3JlIG1fdmlkZW9PdXRwdXRTZW1hcGhvcmU7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPFZpZGVvVGV4dHVyZUNvcGllckNWPiBtX3ZpZGVvVGV4dHVyZUNvcGllcjsKICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCAyYTk2YThiMTQ2ZjMwZjRlZWU4OTBkZjNiZTNh
OWFhODA3ZjVkZjk2Li5hNTI2NmJiZmYzY2I4YjdjODhjYWM5Y2VhYzE0NWQ0ZWQ0OTRlZTc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTM0OCw3ICszNDgsNiBAQCBAZW5kCiAjaWYgSEFW
RShBVkZPVU5EQVRJT05fVklERU9fT1VUUFVUKQogQGludGVyZmFjZSBXZWJDb3JlQVZGUHVsbERl
bGVnYXRlIDogTlNPYmplY3Q8QVZQbGF5ZXJJdGVtT3V0cHV0UHVsbERlbGVnYXRlPiB7CiAgICAg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyAqbV9jYWxsYmFjazsKLSAgICBkaXNw
YXRjaF9zZW1hcGhvcmVfdCBtX3NlbWFwaG9yZTsKIH0KIC0gKGlkKWluaXRXaXRoQ2FsbGJhY2s6
KE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMgKiljYWxsYmFjazsKIC0gKHZvaWQp
c2V0Q2FsbGJhY2s6KE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMqKWNhbGxiYWNr
OwpAQCAtNDkyLDcgKzQ5MSw2IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMoTWVkaWFQbGF5CiAgICAgLCBtX2hh
dmVDaGVja2VkUGxheWFiaWxpdHkoZmFsc2UpCiAjaWYgSEFWRShBVkZPVU5EQVRJT05fVklERU9f
T1VUUFVUKQogICAgICwgbV92aWRlb091dHB1dERlbGVnYXRlKGFkb3B0TlMoW1tXZWJDb3JlQVZG
UHVsbERlbGVnYXRlIGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOnRoaXNdKSkKLSAgICAsIG1fdmlk
ZW9PdXRwdXRTZW1hcGhvcmUobnVsbHB0cikKICNlbmRpZgogI2lmIEhBVkUoQVZGT1VOREFUSU9O
X0xPQURFUl9ERUxFR0FURSkKICAgICAsIG1fbG9hZGVyRGVsZWdhdGUoYWRvcHROUyhbW1dlYkNv
cmVBVkZMb2FkZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazp0aGlzXSkpCkBAIC01
MjcsOCArNTI1LDYgQEAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6fk1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMoKQogI2lmIEhBVkUoQVZGT1VOREFUSU9OX1ZJ
REVPX09VVFBVVCkKICAgICBbbV92aWRlb091dHB1dERlbGVnYXRlIHNldENhbGxiYWNrOjBdOwog
ICAgIFttX3ZpZGVvT3V0cHV0IHNldERlbGVnYXRlOm5pbCBxdWV1ZTowXTsKLSAgICBpZiAobV92
aWRlb091dHB1dFNlbWFwaG9yZSkKLSAgICAgICAgZGlzcGF0Y2hfcmVsZWFzZShtX3ZpZGVvT3V0
cHV0U2VtYXBob3JlKTsKICNlbmRpZgogCiAgICAgaWYgKG1fdmlkZW9MYXllcikKQEAgLTIzNjks
MjEgKzIzNjUsMTcgQEAgTmF0aXZlSW1hZ2VQdHIgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6d2FpdEZvclZpZGVvT3V0cHV0TWVkaWFEYXRhV2lsbENo
YW5nZSgpCiB7Ci0gICAgaWYgKCFtX3ZpZGVvT3V0cHV0U2VtYXBob3JlKQotICAgICAgICBtX3Zp
ZGVvT3V0cHV0U2VtYXBob3JlID0gZGlzcGF0Y2hfc2VtYXBob3JlX2NyZWF0ZSgwKTsKLQogICAg
IFttX3ZpZGVvT3V0cHV0IHJlcXVlc3ROb3RpZmljYXRpb25PZk1lZGlhRGF0YUNoYW5nZVdpdGhB
ZHZhbmNlSW50ZXJ2YWw6MF07CiAKICAgICAvLyBXYWl0IGZvciAxIHNlY29uZC4KLSAgICBsb25n
IHJlc3VsdCA9IGRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KG1fdmlkZW9PdXRwdXRTZW1hcGhvcmUs
IGRpc3BhdGNoX3RpbWUoMCwgMSAqIE5TRUNfUEVSX1NFQykpOwotCi0gICAgaWYgKHJlc3VsdCkK
KyAgICBib29sIHNhdGlzZmllZCA9IG1fdmlkZW9PdXRwdXRTZW1hcGhvcmUud2FpdEZvcigxX3Mp
OworICAgIGlmICghc2F0aXNmaWVkKQogICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwg
InRpbWVkIG91dCIpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6Om91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2UoQVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXRUeXBl
ICopCiB7Ci0gICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbChtX3ZpZGVvT3V0cHV0U2VtYXBo
b3JlKTsKKyAgICBtX3ZpZGVvT3V0cHV0U2VtYXBob3JlLnNpZ25hbCgpOwogfQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5oCmluZGV4IDExZjJmYTkyZDJlNmMyY2VlMjA2ZTU4NmU2ZDU2YTQwMGM0MTlmNGEuLjVlYTM2
YjcxNWFiODFmODg0MzMzOWQzODNkMzJhMGExZjYzM2E0NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaApAQCAtMjksNyArMjks
NyBAQAogCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgPGRpc3Bh
dGNoL2dyb3VwLmg+Ci0jaW5jbHVkZSA8ZGlzcGF0Y2gvc2VtYXBob3JlLmg+CisjaW5jbHVkZSA8
d3RmL0JveC5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgpAQCAtMzksNiArMzksNyBAQAogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0F0b21pY1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90aHJlYWRzL0JpbmFyeVNlbWFw
aG9yZS5oPgogCiBPQkpDX0NMQVNTIEFWQXNzZXQ7CiBPQkpDX0NMQVNTIEFWU3RyZWFtRGF0YVBh
cnNlcjsKQEAgLTkwLDcgKzkxLDcgQEAgY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMg
ZmluYWwgOiBwdWJsaWMgU291cmNlQnVmZmVyUHJpdmF0ZSB7CiAgICAgdm9pZCBkaWRQcm92aWRl
TWVkaWFEYXRhRm9yVHJhY2tJRChpbnQgdHJhY2tJRCwgQ01TYW1wbGVCdWZmZXJSZWYsIGNvbnN0
IFN0cmluZyYgbWVkaWFUeXBlLCB1bnNpZ25lZCBmbGFncyk7CiAgICAgdm9pZCBkaWRSZWFjaEVu
ZE9mVHJhY2tXaXRoVHJhY2tJRChpbnQgdHJhY2tJRCwgY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUp
OwogICAgIHZvaWQgd2lsbFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0
YUZvclRyYWNrSUQoaW50IHRyYWNrSUQpOwotICAgIHZvaWQgZGlkUHJvdmlkZUNvbnRlbnRLZXlS
ZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRChOU0RhdGEqLCBpbnQgdHJhY2tJRCwg
T1NPYmplY3RQdHI8ZGlzcGF0Y2hfc2VtYXBob3JlX3Q+KTsKKyAgICB2b2lkIGRpZFByb3ZpZGVD
b250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUZvclRyYWNrSUQoTlNEYXRhKiwgaW50
IHRyYWNrSUQsIEJveDxCaW5hcnlTZW1hcGhvcmU+KTsKIAogICAgIGJvb2wgcHJvY2Vzc0NvZGVk
RnJhbWUoaW50IHRyYWNrSUQsIENNU2FtcGxlQnVmZmVyUmVmLCBjb25zdCBTdHJpbmcmIG1lZGlh
VHlwZSk7CiAKQEAgLTE3Nyw3ICsxNzgsNyBAQCBjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQyBmaW5hbCA6IHB1YmxpYyBTb3VyY2VCdWZmZXJQcml2YXRlIHsKICAgICBSZXRhaW5QdHI8
V2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXI+IG1fZGVsZWdhdGU7CiAgICAgUmV0YWluUHRy
PFdlYkFWU2FtcGxlQnVmZmVyRXJyb3JMaXN0ZW5lcj4gbV9lcnJvckxpc3RlbmVyOwogICAgIFJl
dGFpblB0cjxOU0Vycm9yPiBtX2hkY3BFcnJvcjsKLSAgICBPU09iamVjdFB0cjxkaXNwYXRjaF9z
ZW1hcGhvcmVfdD4gbV9oYXNTZXNzaW9uU2VtYXBob3JlOworICAgIEJveDxCaW5hcnlTZW1hcGhv
cmU+IG1faGFzU2Vzc2lvblNlbWFwaG9yZTsKICAgICBPU09iamVjdFB0cjxkaXNwYXRjaF9ncm91
cF90PiBtX2lzQXBwZW5kaW5nR3JvdXA7CiAgICAgUmVmUHRyPFdlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbj4gbV9kZWNvbXByZXNzaW9uU2Vzc2lvbjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQppbmRleCA1NGNmYjhlYWI3
MzNlMmU1M2Y0OTNiMjg2NjYwNTdkNjA0YzI1Mjk5Li43MzI1ZDc3N2M4MWEwNmU2ZTZkMDM2NmNi
OWU0NTBiYjgzOWQxNWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQpAQCAtNTUsNiArNTUsNyBAQAogI2ltcG9ydCA8d3Rm
L0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgog
I2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9TZW1hcGhvcmUuaD4KICNp
bXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8d3RmL1dlYWtQdHIuaD4KICNpbXBv
cnQgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgpAQCAtMTA5LDExICsxMTAsMTEgQEAgQGVuZAog
CiBAaW50ZXJmYWNlIFdlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyIDogTlNPYmplY3Q8QVZT
dHJlYW1EYXRhUGFyc2VyT3V0cHV0SGFuZGxpbmc+IHsKICAgICBXZWFrUHRyPFdlYkNvcmU6OlNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDPiBfcGFyZW50OwotICAgIE9TT2JqZWN0UHRyPGRpc3Bh
dGNoX3NlbWFwaG9yZV90PiBfYWJvcnRTZW1hcGhvcmU7CisgICAgQm94PFNlbWFwaG9yZT4gX2Fi
b3J0U2VtYXBob3JlOwogICAgIEFWU3RyZWFtRGF0YVBhcnNlciogX3BhcnNlcjsKIH0KIEBwcm9w
ZXJ0eSAoYXNzaWduKSBXZWFrUHRyPFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
PiBwYXJlbnQ7Ci1AcHJvcGVydHkgKGFzc2lnbikgT1NPYmplY3RQdHI8ZGlzcGF0Y2hfc2VtYXBo
b3JlX3Q+IGFib3J0U2VtYXBob3JlOworQHByb3BlcnR5IChhc3NpZ24pIEJveDxTZW1hcGhvcmU+
IGFib3J0U2VtYXBob3JlOwogLSAoaWQpaW5pdFdpdGhQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNl
ciopcGFyc2VyIHBhcmVudDooV2Vha1B0cjxXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQz4pcGFyZW50OwogQGVuZAogCkBAIC0yMDcsMTkgKzIwOCwxOSBAQCAtICh2b2lkKXN0cmVh
bURhdGFQYXJzZXJXaWxsUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRh
OihBVlN0cmVhbQogCiAgICAgLy8gV2UgbXVzdCBjYWxsIHN5bmNocm9ub3VzbHkgdG8gdGhlIG1h
aW4gdGhyZWFkLCBhcyB0aGUgQVZTdHJlYW1TZXNzaW9uIG11c3QgYmUgYXNzb2NpYXRlZAogICAg
IC8vIHdpdGggdGhlIHN0cmVhbURhdGFQYXJzZXIgYmVmb3JlIHRoZSBkZWxlZ2F0ZSBtZXRob2Qg
cmV0dXJucy4KLSAgICBPU09iamVjdFB0cjxkaXNwYXRjaF9zZW1hcGhvcmVfdD4gcmVzcG9uZGVk
U2VtYXBob3JlID0gYWRvcHRPU09iamVjdChkaXNwYXRjaF9zZW1hcGhvcmVfY3JlYXRlKDApKTsK
KyAgICBCb3g8QmluYXJ5U2VtYXBob3JlPiByZXNwb25kZWRTZW1hcGhvcmUgPSBCb3g8QmluYXJ5
U2VtYXBob3JlPjo6Y3JlYXRlKCk7CiAgICAgY2FsbE9uTWFpblRocmVhZChbcGFyZW50ID0gX3Bh
cmVudCwgdHJhY2tJRCwgcmVzcG9uZGVkU2VtYXBob3JlXSgpIHsKICAgICAgICAgaWYgKHBhcmVu
dCkKICAgICAgICAgICAgIHBhcmVudC0+d2lsbFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRp
YWxpemF0aW9uRGF0YUZvclRyYWNrSUQodHJhY2tJRCk7Ci0gICAgICAgIGRpc3BhdGNoX3NlbWFw
aG9yZV9zaWduYWwocmVzcG9uZGVkU2VtYXBob3JlLmdldCgpKTsKKyAgICAgICAgcmVzcG9uZGVk
U2VtYXBob3JlLT5zaWduYWwoKTsKICAgICB9KTsKIAogICAgIHdoaWxlICh0cnVlKSB7Ci0gICAg
ICAgIGlmICghZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQocmVzcG9uZGVkU2VtYXBob3JlLmdldCgp
LCBkaXNwYXRjaF90aW1lKERJU1BBVENIX1RJTUVfTk9XLCBOU0VDX1BFUl9NU0VDICogMTAwKSkp
CisgICAgICAgIGlmIChyZXNwb25kZWRTZW1hcGhvcmUtPndhaXRGb3IoMTAwX21zKSkKICAgICAg
ICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAoIWRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KF9h
Ym9ydFNlbWFwaG9yZS5nZXQoKSwgZGlzcGF0Y2hfdGltZShESVNQQVRDSF9USU1FX05PVywgTlNF
Q19QRVJfTVNFQyAqIDEwMCkpKSB7Ci0gICAgICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2ln
bmFsKF9hYm9ydFNlbWFwaG9yZS5nZXQoKSk7CisgICAgICAgIGlmIChfYWJvcnRTZW1hcGhvcmUt
PndhaXRGb3IoMTAwX21zKSkgeworICAgICAgICAgICAgX2Fib3J0U2VtYXBob3JlLT5zaWduYWwo
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTIyOSwxOCArMjMw
LDE4IEBAIC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3Ry
ZWFtRGF0YVBhcnNlciBkaWRQcm92aWRlQ29udGVuCiB7CiAgICAgQVNTRVJUX1VOVVNFRChzdHJl
YW1EYXRhUGFyc2VyLCBzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOwogCi0gICAgT1NPYmpl
Y3RQdHI8ZGlzcGF0Y2hfc2VtYXBob3JlX3Q+IGhhc1Nlc3Npb25TZW1hcGhvcmUgPSBhZG9wdE9T
T2JqZWN0KGRpc3BhdGNoX3NlbWFwaG9yZV9jcmVhdGUoMCkpOworICAgIEJveDxCaW5hcnlTZW1h
cGhvcmU+IGhhc1Nlc3Npb25TZW1hcGhvcmUgPSBCb3g8QmluYXJ5U2VtYXBob3JlPjo6Y3JlYXRl
KCk7CiAgICAgY2FsbE9uTWFpblRocmVhZChbcGFyZW50ID0gX3BhcmVudCwgcHJvdGVjdGVkSW5p
dERhdGEgPSBSZXRhaW5QdHI8TlNEYXRhPihpbml0RGF0YSksIHRyYWNrSUQsIGhhc1Nlc3Npb25T
ZW1hcGhvcmVdIHsKICAgICAgICAgaWYgKHBhcmVudCkKICAgICAgICAgICAgIHBhcmVudC0+ZGlk
UHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRChwcm90
ZWN0ZWRJbml0RGF0YS5nZXQoKSwgdHJhY2tJRCwgaGFzU2Vzc2lvblNlbWFwaG9yZSk7CiAgICAg
fSk7CiAKICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBpZiAoIWRpc3BhdGNoX3NlbWFwaG9y
ZV93YWl0KGhhc1Nlc3Npb25TZW1hcGhvcmUuZ2V0KCksIGRpc3BhdGNoX3RpbWUoRElTUEFUQ0hf
VElNRV9OT1csIE5TRUNfUEVSX01TRUMgKiAxMDApKSkKKyAgICAgICAgaWYgKGhhc1Nlc3Npb25T
ZW1hcGhvcmUtPndhaXRGb3IoMTAwX21zKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAg
ICBpZiAoIWRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KF9hYm9ydFNlbWFwaG9yZS5nZXQoKSwgZGlz
cGF0Y2hfdGltZShESVNQQVRDSF9USU1FX05PVywgTlNFQ19QRVJfTVNFQyAqIDEwMCkpKSB7Ci0g
ICAgICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKF9hYm9ydFNlbWFwaG9yZS5nZXQo
KSk7CisgICAgICAgIGlmIChfYWJvcnRTZW1hcGhvcmUtPndhaXRGb3IoMTAwX21zKSkgeworICAg
ICAgICAgICAgX2Fib3J0U2VtYXBob3JlLT5zaWduYWwoKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogICAgIH0KQEAgLTUwOSw3ICs1MTAsNyBAQCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoTWVkaWFTb3VyY2VQcml2YXRlQVZG
T2JqQwogICAgICwgbV9tZWRpYVNvdXJjZShwYXJlbnQpCiB7CiAgICAgQ01Ob3RpZmljYXRpb25D
ZW50ZXJBZGRMaXN0ZW5lcihDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRl
cigpLCB0aGlzLCBidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrLCBrQ01TYW1wbGVCdWZmZXJDb25z
dW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgbnVsbHB0ciwgMCk7Ci0gICAgbV9kZWxl
Z2F0ZS5nZXQoKS5hYm9ydFNlbWFwaG9yZSA9IGFkb3B0T1NPYmplY3QoZGlzcGF0Y2hfc2VtYXBo
b3JlX2NyZWF0ZSgwKSk7CisgICAgbV9kZWxlZ2F0ZS5nZXQoKS5hYm9ydFNlbWFwaG9yZSA9IEJv
eDxTZW1hcGhvcmU+OjpjcmVhdGUoMCk7CiB9CiAKIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
Ojp+U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoKQpAQCAtNTIxLDcgKzUyMiw3IEBAIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp+U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoKQogICAg
IENNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIoQ01Ob3RpZmljYXRpb25DZW50ZXJH
ZXREZWZhdWx0TG9jYWxDZW50ZXIoKSwgdGhpcywgYnVmZmVyV2FzQ29uc3VtZWRDYWxsYmFjaywg
a0NNU2FtcGxlQnVmZmVyQ29uc3VtZXJOb3RpZmljYXRpb25fQnVmZmVyQ29uc3VtZWQsIG51bGxw
dHIpOwogCiAgICAgaWYgKG1faGFzU2Vzc2lvblNlbWFwaG9yZSkKLSAgICAgICAgZGlzcGF0Y2hf
c2VtYXBob3JlX3NpZ25hbChtX2hhc1Nlc3Npb25TZW1hcGhvcmUuZ2V0KCkpOworICAgICAgICBt
X2hhc1Nlc3Npb25TZW1hcGhvcmUtPnNpZ25hbCgpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpkaWRQYXJzZVN0cmVhbURhdGFBc0Fzc2V0KEFWQXNzZXQqIGFzc2V0KQpA
QCAtNjUxLDcgKzY1Miw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OndpbGxQ
cm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGCiAjZW5kaWYKIH0KIAot
dm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1
ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRChOU0RhdGEqIGluaXREYXRhLCBpbnQgdHJh
Y2tJRCwgT1NPYmplY3RQdHI8ZGlzcGF0Y2hfc2VtYXBob3JlX3Q+IGhhc1Nlc3Npb25TZW1hcGhv
cmUpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlQ29udGVudEtl
eVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKE5TRGF0YSogaW5pdERhdGEsIGlu
dCB0cmFja0lELCBCb3g8QmluYXJ5U2VtYXBob3JlPiBoYXNTZXNzaW9uU2VtYXBob3JlKQogewog
ICAgIGlmICghbV9tZWRpYVNvdXJjZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNjY0LDEwICs2NjUs
MTAgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUHJvdmlkZUNvbnRlbnRL
ZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm8KICAgICBtX21lZGlhU291cmNlLT5zb3VyY2VC
dWZmZXJLZXlOZWVkZWQodGhpcywgaW5pdERhdGFBcnJheS5nZXQoKSk7CiAgICAgaWYgKGF1dG8g
c2Vzc2lvbiA9IG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5jZG1TZXNzaW9uKCkpIHsKICAgICAg
ICAgc2Vzc2lvbi0+YWRkUGFyc2VyKG1fcGFyc2VyLmdldCgpKTsKLSAgICAgICAgZGlzcGF0Y2hf
c2VtYXBob3JlX3NpZ25hbChoYXNTZXNzaW9uU2VtYXBob3JlLmdldCgpKTsKKyAgICAgICAgaGFz
U2Vzc2lvblNlbWFwaG9yZS0+c2lnbmFsKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKG1f
aGFzU2Vzc2lvblNlbWFwaG9yZSkKLSAgICAgICAgICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWdu
YWwobV9oYXNTZXNzaW9uU2VtYXBob3JlLmdldCgpKTsKKyAgICAgICAgICAgIG1faGFzU2Vzc2lv
blNlbWFwaG9yZS0+c2lnbmFsKCk7CiAgICAgICAgIG1faGFzU2Vzc2lvblNlbWFwaG9yZSA9IGhh
c1Nlc3Npb25TZW1hcGhvcmU7CiAgICAgfQogI2VuZGlmCkBAIC03NDIsMTIgKzc0MywxMiBAQCB2
b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjphYm9ydCgpCiAgICAgLy8gd2VyZSBhc2tl
ZCB0byBhYm9ydCwgYW5kIHRoYXQgY2FuY2VscyBhbGwgb3V0c3RhbmRpbmcgYXBwZW5kIG9wZXJh
dGlvbnMuIFdpdGhvdXQgY2FuY2VsbGluZyB0aGlzCiAgICAgLy8gc2VtYXBob3JlLCB0aGUgbV9p
c0FwcGVuZGluZ0dyb3VwIHdhaXQgb3BlcmF0aW9uIHdpbGwgZGVhZGxvY2suCiAgICAgaWYgKG1f
aGFzU2Vzc2lvblNlbWFwaG9yZSkKLSAgICAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbCht
X2hhc1Nlc3Npb25TZW1hcGhvcmUuZ2V0KCkpOwotICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWdu
YWwobV9kZWxlZ2F0ZS5nZXQoKS5hYm9ydFNlbWFwaG9yZS5nZXQoKSk7CisgICAgICAgIG1faGFz
U2Vzc2lvblNlbWFwaG9yZS0+c2lnbmFsKCk7CisgICAgbV9kZWxlZ2F0ZS5nZXQoKS5hYm9ydFNl
bWFwaG9yZS0+c2lnbmFsKCk7CiAgICAgZGlzcGF0Y2hfZ3JvdXBfd2FpdChtX2lzQXBwZW5kaW5n
R3JvdXAuZ2V0KCksIERJU1BBVENIX1RJTUVfRk9SRVZFUik7CiAgICAgbV9hcHBlbmRXZWFrRmFj
dG9yeS5yZXZva2VBbGwoKTsKICAgICBtX2RlbGVnYXRlLmdldCgpLnBhcmVudCA9IG1fYXBwZW5k
V2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7Ci0gICAgbV9kZWxlZ2F0ZS5nZXQoKS5h
Ym9ydFNlbWFwaG9yZSA9IGFkb3B0T1NPYmplY3QoZGlzcGF0Y2hfc2VtYXBob3JlX2NyZWF0ZSgw
KSk7CisgICAgbV9kZWxlZ2F0ZS5nZXQoKS5hYm9ydFNlbWFwaG9yZSA9IEJveDxTZW1hcGhvcmU+
OjpjcmVhdGUoMCk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnJlc2V0
UGFyc2VyU3RhdGUoKQpAQCAtODk5LDcgKzkwMCw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6OnNldENETVNlc3Npb24oQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQyogc2Vz
CiAgICAgaWYgKG1fc2Vzc2lvbikgewogICAgICAgICBtX3Nlc3Npb24tPmFkZFNvdXJjZUJ1ZmZl
cih0aGlzKTsKICAgICAgICAgaWYgKG1faGFzU2Vzc2lvblNlbWFwaG9yZSkgewotICAgICAgICAg
ICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbChtX2hhc1Nlc3Npb25TZW1hcGhvcmUuZ2V0KCkp
OworICAgICAgICAgICAgbV9oYXNTZXNzaW9uU2VtYXBob3JlLT5zaWduYWwoKTsKICAgICAgICAg
ICAgIG1faGFzU2Vzc2lvblNlbWFwaG9yZSA9IG51bGxwdHI7CiAgICAgICAgIH0KIApAQCAtOTM0
LDcgKzkzNSw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnNldENETUluc3Rh
bmNlKENETUluc3RhbmNlKiBpbnN0YW5jZSkKICAgICBpZiAobV9jZG1JbnN0YW5jZSkgewogICAg
ICAgICBbbV9jZG1JbnN0YW5jZS0+Y29udGVudEtleVNlc3Npb24oKSBhZGRDb250ZW50S2V5UmVj
aXBpZW50Om1fcGFyc2VyLmdldCgpXTsKICAgICAgICAgaWYgKG1faGFzU2Vzc2lvblNlbWFwaG9y
ZSkgewotICAgICAgICAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbChtX2hhc1Nlc3Npb25T
ZW1hcGhvcmUuZ2V0KCkpOworICAgICAgICAgICAgbV9oYXNTZXNzaW9uU2VtYXBob3JlLT5zaWdu
YWwoKTsKICAgICAgICAgICAgIG1faGFzU2Vzc2lvblNlbWFwaG9yZSA9IG51bGxwdHI7CiAgICAg
ICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5oCmluZGV4
IGYxOTZjMjAxNmNjZjczMGE3MTAxMmI3MjJiYWQ5ZDVmZDRhNzVlODMuLjgzN2Q2MTJlZmY5MjRm
YTNlMTQzYTcwYmZjNmYyZDYzZjU1NTRlODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNz
aW9uU2Vzc2lvbi5oCkBAIC0xMTcsNyArMTE3LDYgQEAgY2xhc3MgV2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdlYkNvcmVEZWNvbXByZXMK
ICAgICBSZXRhaW5QdHI8Q01UaW1lYmFzZVJlZj4gbV90aW1lYmFzZTsKICAgICBPU09iamVjdFB0
cjxkaXNwYXRjaF9xdWV1ZV90PiBtX2RlY29tcHJlc3Npb25RdWV1ZTsKICAgICBPU09iamVjdFB0
cjxkaXNwYXRjaF9xdWV1ZV90PiBtX2VucXVlaW5nUXVldWU7Ci0gICAgT1NPYmplY3RQdHI8ZGlz
cGF0Y2hfc2VtYXBob3JlX3Q+IG1faGFzQXZhaWxhYmxlSW1hZ2VTZW1hcGhvcmU7CiAgICAgT1NP
YmplY3RQdHI8ZGlzcGF0Y2hfc291cmNlX3Q+IG1fdGltZXJTb3VyY2U7CiAgICAgc3RkOjpmdW5j
dGlvbjx2b2lkKCk+IG1fbm90aWZpY2F0aW9uQ2FsbGJhY2s7CiAgICAgc3RkOjpmdW5jdGlvbjx2
b2lkKCk+IG1faGFzQXZhaWxhYmxlRnJhbWVDYWxsYmFjazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lv
bi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbi5tbQppbmRleCAzYWJjYmRjZDhmMjkxYWM5YzVlNjBhYzY0ZmZmMjk0
NWUxZjkxZWVmLi42NGY2ZGZlY2IwMTY3MTcxNjYwYjgzMzBhMGEyNzY2ZjdjZTdjOGMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tCkBAIC01Myw3ICs1Myw2IEBA
IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9u
KE1vZGUgbW9kZSkKICAgICA6IG1fbW9kZShtb2RlKQogICAgICwgbV9kZWNvbXByZXNzaW9uUXVl
dWUoYWRvcHRPU09iamVjdChkaXNwYXRjaF9xdWV1ZV9jcmVhdGUoIldlYkNvcmVEZWNvbXByZXNz
aW9uU2Vzc2lvbiBEZWNvbXByZXNzaW9uIFF1ZXVlIiwgRElTUEFUQ0hfUVVFVUVfU0VSSUFMKSkp
CiAgICAgLCBtX2VucXVlaW5nUXVldWUoYWRvcHRPU09iamVjdChkaXNwYXRjaF9xdWV1ZV9jcmVh
dGUoIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbiBFbnF1ZXVlaW5nIFF1ZXVlIiwgRElTUEFU
Q0hfUVVFVUVfU0VSSUFMKSkpCi0gICAgLCBtX2hhc0F2YWlsYWJsZUltYWdlU2VtYXBob3JlKGFk
b3B0T1NPYmplY3QoZGlzcGF0Y2hfc2VtYXBob3JlX2NyZWF0ZSgwKSkpCiB7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVD
Rk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFu
ZGxlQ0ZOZXQuY3BwCmluZGV4IDk3ODY0ZmU1YmY5ZTkyODM4Y2Q3MThlOTM1MWUxNjgxODQ4NjJl
N2MuLmU3MTFhNjcxODA0MDU5NGVhZTY3NmMyZTk1NjUxMjAxZDZmZmUxNTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRs
ZUNGTmV0LmNwcApAQCAtNTg1LDcgKzU4NSw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRm
b3JtTG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4CiAg
ICAgICAgICAgICB3aGlsZSAodHJ1ZSkKICAgICAgICAgICAgICAgICBDRlJ1bkxvb3BSdW5Jbk1v
ZGUoa0NGUnVuTG9vcERlZmF1bHRNb2RlLCAxRTMwLCB0cnVlKTsKICAgICAgICAgfSk7Ci0gICAg
ICAgIHNlbS53YWl0KFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZShXYWxsVGltZTo6aW5maW5pdHko
KSkpOworICAgICAgICBzZW0ud2FpdCgpOwogICAgIH0KICAgICBDRlVSTENvbm5lY3Rpb25TY2hl
ZHVsZVdpdGhSdW5Mb29wKGhhbmRsZS0+Y29ubmVjdGlvbigpLCBydW5Mb29wLCBrQ0ZSdW5Mb29w
RGVmYXVsdE1vZGUpOwogICAgIENGVVJMQ29ubmVjdGlvblNjaGVkdWxlRG93bmxvYWRXaXRoUnVu
TG9vcChoYW5kbGUtPmNvbm5lY3Rpb24oKSwgcnVuTG9vcCwga0NGUnVuTG9vcERlZmF1bHRNb2Rl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3Vy
Y2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25u
ZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwCmluZGV4IDk1ZTdmZmQ1Nzg2ZjBi
YWEyNWE0OWIyMWQyOTE5NmMzOGJiY2Q1ODQuLmRhZDkwMTBmOTU3MGViYzU2NzYzMzU0M2ZkMWZj
NTAyZjg0NjliOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhh
bmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcApAQCAtMTE5
LDcgKzExOSw3IEBAIHN0YXRpYyBDRlJ1bkxvb3BSZWYgZ2V0UnVuTG9vcCgpCiAgICAgICAgICAg
ICB3aGlsZSAodHJ1ZSkKICAgICAgICAgICAgICAgICBDRlJ1bkxvb3BSdW5Jbk1vZGUoa0NGUnVu
TG9vcERlZmF1bHRNb2RlLCAxRTMwLCB0cnVlKTsKICAgICAgICAgfSk7Ci0gICAgICAgIHNlbS53
YWl0KFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZShXYWxsVGltZTo6aW5maW5pdHkoKSkpOworICAg
ICAgICBzZW0ud2FpdCgpOwogICAgIH0KIAogICAgIHJldHVybiBydW5Mb29wOwpAQCAtMTcyLDcg
KzE3Miw3IEBAIENGVVJMUmVxdWVzdFJlZiBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRl
bGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlOjp3aWxsU2VuCiAgICAgICAgIG1fbWVzc2FnZVF1ZXVl
LT5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxGdW5jdGlvbjx2b2lkKCk+PihXVEZNb3ZlKHdvcmsp
KSk7CiAgICAgZWxzZQogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUod29yaykpOwot
ICAgIG1fc2VtYXBob3JlLndhaXQoVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlKFdhbGxUaW1lOjpp
bmZpbml0eSgpKSk7CisgICAgbV9zZW1hcGhvcmUud2FpdCgpOwogCiAgICAgcmV0dXJuIG1fcmVx
dWVzdFJlc3VsdC5sZWFrUmVmKCk7CiB9CkBAIC0yMTAsNyArMjEwLDcgQEAgdm9pZCBSZXNvdXJj
ZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpkaWRSZWNl
aXZlUmVzcG9uc2UKICAgICAgICAgbV9tZXNzYWdlUXVldWUtPmFwcGVuZChzdGQ6Om1ha2VfdW5p
cXVlPEZ1bmN0aW9uPHZvaWQoKT4+KFdURk1vdmUod29yaykpKTsKICAgICBlbHNlCiAgICAgICAg
IGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZSh3b3JrKSk7Ci0gICAgbV9zZW1hcGhvcmUud2FpdChU
aW1lV2l0aER5bmFtaWNDbG9ja1R5cGUoV2FsbFRpbWU6OmluZmluaXR5KCkpKTsKKyAgICBtX3Nl
bWFwaG9yZS53YWl0KCk7CiB9CiAKIHZvaWQgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25E
ZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6ZGlkUmVjZWl2ZURhdGEoQ0ZEYXRhUmVmIGRhdGEs
IENGSW5kZXggb3JpZ2luYWxMZW5ndGgpCkBAIC0zMTQsNyArMzE0LDcgQEAgQ0ZDYWNoZWRVUkxS
ZXNwb25zZVJlZiBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJh
dGlvblF1ZXVlOjoKICAgICAgICAgbV9tZXNzYWdlUXVldWUtPmFwcGVuZChzdGQ6Om1ha2VfdW5p
cXVlPEZ1bmN0aW9uPHZvaWQoKT4+KFdURk1vdmUod29yaykpKTsKICAgICBlbHNlCiAgICAgICAg
IGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZSh3b3JrKSk7Ci0gICAgbV9zZW1hcGhvcmUud2FpdChU
aW1lV2l0aER5bmFtaWNDbG9ja1R5cGUoV2FsbFRpbWU6OmluZmluaXR5KCkpKTsKKyAgICBtX3Nl
bWFwaG9yZS53YWl0KCk7CiAgICAgcmV0dXJuIG1fY2FjaGVkUmVzcG9uc2VSZXN1bHQubGVha1Jl
ZigpOwogfQogCkBAIC0zODMsNyArMzgzLDcgQEAgQm9vbGVhbiBSZXNvdXJjZUhhbmRsZUNGVVJM
Q29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpjYW5SZXNwb25kVG9Qcm8KICAg
ICAgICAgbV9tZXNzYWdlUXVldWUtPmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEZ1bmN0aW9uPHZv
aWQoKT4+KFdURk1vdmUod29yaykpKTsKICAgICBlbHNlCiAgICAgICAgIGNhbGxPbk1haW5UaHJl
YWQoV1RGTW92ZSh3b3JrKSk7Ci0gICAgbV9zZW1hcGhvcmUud2FpdChUaW1lV2l0aER5bmFtaWND
bG9ja1R5cGUoV2FsbFRpbWU6OmluZmluaXR5KCkpKTsKKyAgICBtX3NlbWFwaG9yZS53YWl0KCk7
CiAgICAgcmV0dXJuIG1fYm9vbFJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25R
dWV1ZURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJD
b3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUuaAppbmRleCA0ODM1NDI2
NGU2OGEyZTA5NWI4N2Q1M2Q5M2U1YTllMjA2NDljYzQ1Li4zZWRhMjdlYThhMjE3YzYyMGY5YTNl
ZGE3NWIwZWY2ODBkODE0MjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3Vy
Y2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUuaApAQCAtMzEsNiArMzEsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9NZXNzYWdlUXVldWUuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1NjaGVkdWxlUGFpci5oPgorI2luY2x1ZGUgPHd0Zi90aHJlYWRzL0JpbmFy
eVNlbWFwaG9yZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZXNvdXJjZUhhbmRs
ZTsKQEAgLTQwLDcgKzQxLDcgQEAgY2xhc3MgUmVzb3VyY2VIYW5kbGU7CiAgICAgV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGUqIG1faGFuZGxlOwogCiAgICAgLy8gU3luY2hyb25vdXMgZGVsZWdhdGVz
IG9uIG9wZXJhdGlvbiBxdWV1ZSB3YWl0IHVudGlsIG1haW4gdGhyZWFkIHNlbmRzIGFuIGFzeW5j
aHJvbm91cyByZXNwb25zZS4KLSAgICBkaXNwYXRjaF9zZW1hcGhvcmVfdCBtX3NlbWFwaG9yZTsK
KyAgICBCaW5hcnlTZW1hcGhvcmUgbV9zZW1hcGhvcmU7CiAgICAgTWVzc2FnZVF1ZXVlPEZ1bmN0
aW9uPHZvaWQoKT4+KiBtX21lc3NhZ2VRdWV1ZTsKICAgICBSZXRhaW5QdHI8TlNVUkxSZXF1ZXN0
PiBtX3JlcXVlc3RSZXN1bHQ7CiAgICAgTG9jayBtX211dGV4OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVy
YXRpb25RdWV1ZURlbGVnYXRlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCmluZGV4
IGE1YWIzNjc1NDYyZGM2NjgwYmI5OTQ1MzE2NjgwODA4NjQyMzQ0MGIuLmRjOThjYWU5NmYzNzE3
ZjgyNjNjMjljNTk5Njg3YzY3MTU5Mjk5MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVE
ZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJD
b3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0KQEAgLTg5LDcgKzg5
LDYgQEAgLSAoaWQpaW5pdFdpdGhIYW5kbGU6KFJlc291cmNlSGFuZGxlKiloYW5kbGUgbWVzc2Fn
ZVF1ZXVlOihNZXNzYWdlUXVldWU8RnVuY3Rpb24KICAgICAgICAgaWYgKGF1dG8qIHBhaXJzID0g
bV9oYW5kbGUtPmNvbnRleHQoKS0+c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkpCiAgICAgICAgICAg
ICBtX3NjaGVkdWxlZFBhaXJzID0gKnBhaXJzOwogICAgIH0KLSAgICBtX3NlbWFwaG9yZSA9IGRp
c3BhdGNoX3NlbWFwaG9yZV9jcmVhdGUoMCk7CiAgICAgbV9tZXNzYWdlUXVldWUgPSBtZXNzYWdl
UXVldWU7CiAKICAgICByZXR1cm4gc2VsZjsKQEAgLTEwNSwxMiArMTA0LDExIEBAIC0gKHZvaWQp
ZGV0YWNoSGFuZGxlCiAgICAgbV9yZXF1ZXN0UmVzdWx0ID0gbnVsbHB0cjsKICAgICBtX2NhY2hl
ZFJlc3BvbnNlUmVzdWx0ID0gbnVsbHB0cjsKICAgICBtX2Jvb2xSZXN1bHQgPSBOTzsKLSAgICBk
aXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKG1fc2VtYXBob3JlKTsgLy8gT0sgdG8gc2lnbmFsIGV2
ZW4gaWYgd2UgYXJlIG5vdCB3YWl0aW5nLgorICAgIG1fc2VtYXBob3JlLnNpZ25hbCgpOyAvLyBP
SyB0byBzaWduYWwgZXZlbiBpZiB3ZSBhcmUgbm90IHdhaXRpbmcuCiB9CiAKIC0gKHZvaWQpZGVh
bGxvYwogewotICAgIGRpc3BhdGNoX3JlbGVhc2UobV9zZW1hcGhvcmUpOwogICAgIFtzdXBlciBk
ZWFsbG9jXTsKIH0KIApAQCAtMTM2LDE4ICsxMzQsMTggQEAgLSAoTlNVUkxSZXF1ZXN0ICopY29u
bmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiB3aWxsU2VuZFJlcXVlc3Q6KE5T
VVIKICAgICBhdXRvIHdvcmsgPSBbc2VsZiwgcHJvdGVjdGVkU2VsZiwgbmV3UmVxdWVzdCA9IHJl
dGFpblB0cihuZXdSZXF1ZXN0KSwgcmVkaXJlY3RSZXNwb25zZSA9IHJldGFpblB0cihyZWRpcmVj
dFJlc3BvbnNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghbV9oYW5kbGUpIHsKICAgICAg
ICAgICAgIG1fcmVxdWVzdFJlc3VsdCA9IG51bGxwdHI7Ci0gICAgICAgICAgICBkaXNwYXRjaF9z
ZW1hcGhvcmVfc2lnbmFsKG1fc2VtYXBob3JlKTsKKyAgICAgICAgICAgIG1fc2VtYXBob3JlLnNp
Z25hbCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgbV9oYW5k
bGUtPndpbGxTZW5kUmVxdWVzdChuZXdSZXF1ZXN0LmdldCgpLCByZWRpcmVjdFJlc3BvbnNlLmdl
dCgpLCBbc2VsZiwgcHJvdGVjdGVkU2VsZiA9IFdURk1vdmUocHJvdGVjdGVkU2VsZildKFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QpIHsKICAgICAgICAgICAgIG1fcmVxdWVzdFJlc3VsdCA9IHJl
cXVlc3QubnNVUkxSZXF1ZXN0KFVwZGF0ZUhUVFBCb2R5KTsKLSAgICAgICAgICAgIGRpc3BhdGNo
X3NlbWFwaG9yZV9zaWduYWwobV9zZW1hcGhvcmUpOworICAgICAgICAgICAgbV9zZW1hcGhvcmUu
c2lnbmFsKCk7CiAgICAgICAgIH0pOwogICAgIH07CiAKICAgICBbc2VsZiBjYWxsRnVuY3Rpb25P
bk1haW5UaHJlYWQ6V1RGTW92ZSh3b3JrKV07Ci0gICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQo
bV9zZW1hcGhvcmUsIERJU1BBVENIX1RJTUVfRk9SRVZFUik7CisgICAgbV9zZW1hcGhvcmUud2Fp
dCgpOwogCiAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgIGlmICghbV9oYW5kbGUp
CkBAIC0xOTEsMTcgKzE4OSwxNyBAQCAtIChCT09MKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlv
biAqKWNvbm5lY3Rpb24gY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3RpbwogICAgIGF1dG8g
d29yayA9IFtzZWxmLCBwcm90ZWN0ZWRTZWxmLCBwcm90ZWN0aW9uU3BhY2UgPSByZXRhaW5QdHIo
cHJvdGVjdGlvblNwYWNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghbV9oYW5kbGUpIHsK
ICAgICAgICAgICAgIG1fYm9vbFJlc3VsdCA9IE5POwotICAgICAgICAgICAgZGlzcGF0Y2hfc2Vt
YXBob3JlX3NpZ25hbChtX3NlbWFwaG9yZSk7CisgICAgICAgICAgICBtX3NlbWFwaG9yZS5zaWdu
YWwoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBtX2hhbmRsZS0+
Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShQcm90ZWN0aW9uU3BhY2UocHJv
dGVjdGlvblNwYWNlLmdldCgpKSwgW3NlbGYsIHByb3RlY3RlZFNlbGYgPSBXVEZNb3ZlKHByb3Rl
Y3RlZFNlbGYpXSAoYm9vbCByZXN1bHQpIG11dGFibGUgewogICAgICAgICAgICAgbV9ib29sUmVz
dWx0ID0gcmVzdWx0OwotICAgICAgICAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbChtX3Nl
bWFwaG9yZSk7CisgICAgICAgICAgICBtX3NlbWFwaG9yZS5zaWduYWwoKTsKICAgICAgICAgfSk7
CiAgICAgfTsKIAogICAgIFtzZWxmIGNhbGxGdW5jdGlvbk9uTWFpblRocmVhZDpXVEZNb3ZlKHdv
cmspXTsKLSAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2FpdChtX3NlbWFwaG9yZSwgRElTUEFUQ0hf
VElNRV9GT1JFVkVSKTsKKyAgICBtX3NlbWFwaG9yZS53YWl0KCk7CiAKICAgICBMb2NrSG9sZGVy
IGxvY2sobV9tdXRleCk7CiAgICAgaWYgKCFtX2hhbmRsZSkKQEAgLTIyNiw3ICsyMjQsNyBAQCAt
ICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2
ZVJlc3BvbnNlOihOU1VSTFJlc3BvbgogICAgIGF1dG8gd29yayA9IFtzZWxmLCBwcm90ZWN0ZWRT
ZWxmLCByID0gcmV0YWluUHRyKHIpLCBjb25uZWN0aW9uID0gcmV0YWluUHRyKGNvbm5lY3Rpb24p
XSAoKSBtdXRhYmxlIHsKICAgICAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBwcm90ZWN0ZWRI
YW5kbGUobV9oYW5kbGUpOwogICAgICAgICBpZiAoIW1faGFuZGxlIHx8ICFtX2hhbmRsZS0+Y2xp
ZW50KCkpIHsKLSAgICAgICAgICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWduYWwobV9zZW1hcGhv
cmUpOworICAgICAgICAgICAgbV9zZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KIApAQCAtMjQ1LDEyICsyNDMsMTIgQEAgLSAodm9pZCljb25uZWN0aW9u
OihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIGRpZFJlY2VpdmVSZXNwb25zZTooTlNVUkxS
ZXNwb24KICAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmdldENvbm5lY3Rpb25UaW1pbmdEYXRhKGNv
bm5lY3Rpb24uZ2V0KCksIHJlc291cmNlUmVzcG9uc2UuZGVwcmVjYXRlZE5ldHdvcmtMb2FkTWV0
cmljcygpKTsKIAogICAgICAgICBtX2hhbmRsZS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKFdURk1vdmUo
cmVzb3VyY2VSZXNwb25zZSksIFtzZWxmLCBwcm90ZWN0ZWRTZWxmID0gV1RGTW92ZShwcm90ZWN0
ZWRTZWxmKV0gewotICAgICAgICAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbChtX3NlbWFw
aG9yZSk7CisgICAgICAgICAgICBtX3NlbWFwaG9yZS5zaWduYWwoKTsKICAgICAgICAgfSk7CiAg
ICAgfTsKIAogICAgIFtzZWxmIGNhbGxGdW5jdGlvbk9uTWFpblRocmVhZDpXVEZNb3ZlKHdvcmsp
XTsKLSAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2FpdChtX3NlbWFwaG9yZSwgRElTUEFUQ0hfVElN
RV9GT1JFVkVSKTsKKyAgICBtX3NlbWFwaG9yZS53YWl0KCk7CiAKICAgICAvLyBNYWtlIHN1cmUg
d2UgZ2V0IGRlc3Ryb3llZCBvbiB0aGUgbWFpbiB0aHJlYWQuCiAgICAgW3NlbGYgY2FsbEZ1bmN0
aW9uT25NYWluVGhyZWFkOltwcm90ZWN0ZWRTZWxmID0gV1RGTW92ZShwcm90ZWN0ZWRTZWxmKV0g
eyB9XTsKQEAgLTM1MSwxOCArMzQ5LDE4IEBAIC0gKE5TQ2FjaGVkVVJMUmVzcG9uc2UgKiljb25u
ZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIHdpbGxDYWNoZVJlc3BvCiAgICAg
YXV0byB3b3JrID0gW3NlbGYsIHByb3RlY3RlZFNlbGYsIGNhY2hlZFJlc3BvbnNlID0gcmV0YWlu
UHRyKGNhY2hlZFJlc3BvbnNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghbV9oYW5kbGUg
fHwgIW1faGFuZGxlLT5jbGllbnQoKSkgewogICAgICAgICAgICAgbV9jYWNoZWRSZXNwb25zZVJl
c3VsdCA9IG51bGxwdHI7Ci0gICAgICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKG1f
c2VtYXBob3JlKTsKKyAgICAgICAgICAgIG1fc2VtYXBob3JlLnNpZ25hbCgpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgbV9oYW5kbGUtPmNsaWVudCgpLT53aWxs
Q2FjaGVSZXNwb25zZUFzeW5jKG1faGFuZGxlLCBjYWNoZWRSZXNwb25zZS5nZXQoKSwgW3NlbGYs
IHByb3RlY3RlZFNlbGYgPSBXVEZNb3ZlKHByb3RlY3RlZFNlbGYpXSAoTlNDYWNoZWRVUkxSZXNw
b25zZSAqIHJlc3BvbnNlKSBtdXRhYmxlIHsKICAgICAgICAgICAgIG1fY2FjaGVkUmVzcG9uc2VS
ZXN1bHQgPSByZXNwb25zZTsKLSAgICAgICAgICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWduYWwo
bV9zZW1hcGhvcmUpOworICAgICAgICAgICAgbV9zZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAgICAg
IH0pOwogICAgIH07CiAKICAgICBbc2VsZiBjYWxsRnVuY3Rpb25Pbk1haW5UaHJlYWQ6V1RGTW92
ZSh3b3JrKV07Ci0gICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQobV9zZW1hcGhvcmUsIERJU1BB
VENIX1RJTUVfRk9SRVZFUik7CisgICAgbV9zZW1hcGhvcmUud2FpdCgpOwogCiAgICAgTG9ja0hv
bGRlciBsb2NrKG1fbXV0ZXgpOwogICAgIGlmICghbV9oYW5kbGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IDllMjc1NDAzMTVkNmU5NjhkOTIyYjdkNDZi
Yzc2MjI5OTFiODE3ZDMuLjhlNmY5MzU4NDgyNDRhYTZkNDJhNmUxOTZmY2U4MjkzMjFmODM5MTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCkBAIC04Miw3ICs4
Miw3IEBAIGNsYXNzIENvbm5lY3Rpb246OlN5bmNNZXNzYWdlU3RhdGUgewogCiAgICAgYm9vbCB3
YWl0KFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBhYnNvbHV0ZVRpbWUpCiAgICAgewotICAgICAg
ICByZXR1cm4gbV93YWl0Rm9yU3luY1JlcGx5U2VtYXBob3JlLndhaXQoYWJzb2x1dGVUaW1lKTsK
KyAgICAgICAgcmV0dXJuIG1fd2FpdEZvclN5bmNSZXBseVNlbWFwaG9yZS53YWl0VW50aWwoYWJz
b2x1dGVUaW1lKTsKICAgICB9CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhpcyBtZXNzYWdl
IHdpbGwgYmUgaGFuZGxlZCBvbiBhIGNsaWVudCB0aHJlYWQgdGhhdCBpcyBjdXJyZW50bHkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwCmluZGV4IGM5MDM5YjJkZmYyMjk1
ZjE4NmJkNDQzZTJmMzYyNjkwZjNjNDRhY2YuLmM0NmIxMmY3ZDMwODA2ZTIyN2NkYTE4NTI5N2Mw
ZjVmYzEyOTAwZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TZWNJdGVt
U2hpbS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcApA
QCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgPGRsZmNuLmg+CiAjaW5jbHVkZSA8bXV0ZXg+CiAj
aW5jbHVkZSA8d3RmL1Byb2Nlc3NQcml2aWxlZ2UuaD4KKyNpbmNsdWRlIDx3dGYvdGhyZWFkcy9C
aW5hcnlTZW1hcGhvcmUuaD4KIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW5jbHVk
ZSA8Q0ZOZXR3b3JrL0NGVVJMQ29ubmVjdGlvblByaXYuaD4KQEAgLTc3LDE2ICs3OCwxNiBAQCBz
dGF0aWMgc3RkOjpvcHRpb25hbDxTZWNJdGVtUmVzcG9uc2VEYXRhPiBzZW5kU2VjSXRlbVJlcXVl
c3QoU2VjSXRlbVJlcXVlc3REYXRhOgogCiAgICAgc3RkOjpvcHRpb25hbDxTZWNJdGVtUmVzcG9u
c2VEYXRhPiByZXNwb25zZTsKIAotICAgIGF1dG8gc2VtYXBob3JlID0gYWRvcHRPU09iamVjdChk
aXNwYXRjaF9zZW1hcGhvcmVfY3JlYXRlKDApKTsKKyAgICBCaW5hcnlTZW1hcGhvcmUgc2VtYXBo
b3JlOwogCiAgICAgc2hhcmVkUHJvY2Vzcy0+cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2Vu
ZFdpdGhSZXBseShNZXNzYWdlczo6U2VjSXRlbVNoaW1Qcm94eTo6U2VjSXRlbVJlcXVlc3QoU2Vj
SXRlbVJlcXVlc3REYXRhKHJlcXVlc3RUeXBlLCBxdWVyeSwgYXR0cmlidXRlc1RvTWF0Y2gpKSwg
MCwgd29ya1F1ZXVlKCksIFsmcmVzcG9uc2UsICZzZW1hcGhvcmVdKGF1dG8gcmVwbHkpIHsKICAg
ICAgICAgaWYgKHJlcGx5KQogICAgICAgICAgICAgcmVzcG9uc2UgPSBXVEZNb3ZlKHN0ZDo6Z2V0
PDA+KCpyZXBseSkpOwogCi0gICAgICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWduYWwoc2VtYXBo
b3JlLmdldCgpKTsKKyAgICAgICAgc2VtYXBob3JlLnNpZ25hbCgpOwogICAgIH0pOwogCi0gICAg
ZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQoc2VtYXBob3JlLmdldCgpLCBESVNQQVRDSF9USU1FX0ZP
UkVWRVIpOworICAgIHNlbWFwaG9yZS53YWl0KCk7CiAKICAgICByZXR1cm4gcmVzcG9uc2U7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzUGVyc2lzdGVudFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmNwcAppbmRleCBiNjdjYWRlMjVkZmNj
OWJhY2Y1NzljNjZiNTUwN2ZlZjBhY2NiYjdjLi4wYzkxZjIwMjZlOGYxODM0ODVhYzM2MGUyZDI1
OTg1YTM4YWRiNTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZS5jcHAKQEAg
LTMzMiw3ICszMzIsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3Rv
cmFnZTo6ZmluaXNoQWxsUGVuZGluZ1dvcmtTeW5jaHJvbm91c2x5KAogICAgICAgICAgICAgd3Jp
dGVNZW1vcnlTdG9yZVRvRGlzaygpOwogICAgICAgICBzZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAg
fSk7Ci0gICAgc2VtYXBob3JlLndhaXQoV2FsbFRpbWU6OmluZmluaXR5KCkpOworICAgIHNlbWFw
aG9yZS53YWl0KCk7CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRT
dG9yYWdlOjpyZWYoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViU3Rv
cmFnZS9TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJTdG9y
YWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCA3ZjcwMmUxOGViM2E2N2RiZTQ3NmU2OTNhMGY0
MjBkMTNiNGNmNzY5Li5kN2FlNGNlZTViMmM2OTc0MjU2NDlhYjc5ZDAzN2IxYTg0NjNiN2EzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VN
YW5hZ2VyLmNwcApAQCAtODI4LDcgKzgyOCw3IEBAIHZvaWQgU3RvcmFnZU1hbmFnZXI6OmFwcGxp
Y2F0aW9uV2lsbFRlcm1pbmF0ZSgpCiAKICAgICAgICAgc2VtYXBob3JlLnNpZ25hbCgpOwogICAg
IH0pOwotICAgIHNlbWFwaG9yZS53YWl0KFdhbGxUaW1lOjppbmZpbml0eSgpKTsKKyAgICBzZW1h
cGhvcmUud2FpdCgpOwogfQogCiBTdG9yYWdlTWFuYWdlcjo6U3RvcmFnZUFyZWEqIFN0b3JhZ2VN
YW5hZ2VyOjpmaW5kU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50
NjRfdCBzdG9yYWdlTWFwSUQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tCmluZGV4IDgxZTE0MTJkYTM4MGVlYTFk
MjAzY2JiMzZjMzAzMzdkMTAzZDM4ZDcuLjM1MWM0ZGI0MDg4ODE0ZGFjMDZhYTg0OWFkMDFiNTQ1
MmRlZDQ4ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlv
blNoZWV0QXNzaXN0YW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Fj
dGlvblNoZWV0QXNzaXN0YW50Lm1tCkBAIC00Niw2ICs0Niw3IEBACiAjaW1wb3J0IDxXZWJDb3Jl
L1dlYkNvcmVOU1VSTEV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAjaW1w
b3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbXBvcnQgPHd0Zi90aHJlYWRzL0JpbmFyeVNl
bWFwaG9yZS5oPgogCiAjaWYgSEFWRShBUFBfTElOS1MpCiAjaW1wb3J0IDxwYWwvc3BpL2NvY29h
L0xhdW5jaFNlcnZpY2VzU1BJLmg+CkBAIC03MywxMyArNzQsMTMgQEAgc3RhdGljIGJvb2wgYXBw
bGljYXRpb25IYXNBcHBMaW5rRW50aXRsZW1lbnRzKCkKIHN0YXRpYyBMU0FwcExpbmsgKmFwcExp
bmtGb3JVUkwoTlNVUkwgKnVybCkKIHsKICAgICBfX2Jsb2NrIExTQXBwTGluayAqc3luY0FwcExp
bmsgPSBuaWw7CisgICAgX19ibG9jayBCaW5hcnlTZW1hcGhvcmUgc2VtYXBob3JlOwogCi0gICAg
ZGlzcGF0Y2hfc2VtYXBob3JlX3Qgc2VtYXBob3JlID0gZGlzcGF0Y2hfc2VtYXBob3JlX2NyZWF0
ZSgwKTsKICAgICBbTFNBcHBMaW5rIGdldEFwcExpbmtXaXRoVVJMOnVybCBjb21wbGV0aW9uSGFu
ZGxlcjpeKExTQXBwTGluayAqYXBwTGluaywgTlNFcnJvciAqZXJyb3IpIHsKICAgICAgICAgc3lu
Y0FwcExpbmsgPSBbYXBwTGluayByZXRhaW5dOwotICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVf
c2lnbmFsKHNlbWFwaG9yZSk7CisgICAgICAgIHNlbWFwaG9yZS5zaWduYWwoKTsKICAgICB9XTsK
LSAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2FpdChzZW1hcGhvcmUsIERJU1BBVENIX1RJTUVfRk9S
RVZFUik7CisgICAgc2VtYXBob3JlLndhaXQoKTsKIAogICAgIHJldHVybiBbc3luY0FwcExpbmsg
YXV0b3JlbGVhc2VdOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDUzMTZmNjQ2NWM2YTlkMjI2YTQ4YTFiNGZiNTNhMWRlNzI1MzEwMGMuLjQx
YjdhNTg1ZWY0OTEzMjlmYzAzM2RjYzdlNGZhYmFmZjA0NzI2YjEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOC0w
NS0wNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBb
V1RGXSBVc2UgU2VtYXBob3JlIGFuZCBCaW5hcnlTZW1hcGhvcmUgaW5zdGVhZCBvZiBkaXNwYXRj
aF9zZW1hcGhvcmVfdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTg1MzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TeW5jaHJvbml6ZWRGaXhlZFF1ZXVlLmNw
cDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRvVXBwZXJDb252ZXJ0ZXI6OnN0b3BQcm9kdWNp
bmcpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VG9VcHBlckNvbnZlcnRlcjo6c3RvcENvbnN1
bWluZyk6CisKIDIwMTgtMDUtMDQgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29t
PgogCiAgICAgICAgIERlcHJlY2F0ZSBsZWdhY3kgV2ViVmlldyBhbmQgZnJpZW5kcwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRRdWV1
ZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TeW5jaHJvbml6ZWRGaXhlZFF1
ZXVlLmNwcAppbmRleCA4MWJiYzEwZmYwZGY1ZmQ0Y2UwMGRkNmI1N2Y5M2Y1ZjZlOWJmYzFlLi5m
N2E0OGRiNzVmNjNlNWI3N2NmZTQ4Y2IzNjIxZTBhYzczZmE5OTQyIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TeW5jaHJvbml6ZWRGaXhlZFF1ZXVlLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TeW5jaHJvbml6ZWRGaXhlZFF1ZXVlLmNw
cApAQCAtMTIzLDcgKzEyMyw3IEBAIGNsYXNzIFRvVXBwZXJDb252ZXJ0ZXIgewogICAgICAgICAg
ICAgcmV0dXJuOwogCiAgICAgICAgIG1fbG93ZXJRdWV1ZS0+Y2xvc2UoKTsKLSAgICAgICAgbV9w
cm9kdWNlQ2xvc2VTZW1hcGhvcmUud2FpdChXYWxsVGltZTo6aW5maW5pdHkoKSk7CisgICAgICAg
IG1fcHJvZHVjZUNsb3NlU2VtYXBob3JlLndhaXQoKTsKICAgICAgICAgbV9wcm9kdWNlUXVldWUg
PSBudWxscHRyOwogICAgIH0KICAgICAKQEAgLTEzMyw3ICsxMzMsNyBAQCBjbGFzcyBUb1VwcGVy
Q29udmVydGVyIHsKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBtX3VwcGVyUXVldWUt
PmNsb3NlKCk7Ci0gICAgICAgIG1fY29uc3VtZUNsb3NlU2VtYXBob3JlLndhaXQoV2FsbFRpbWU6
OmluZmluaXR5KCkpOworICAgICAgICBtX2NvbnN1bWVDbG9zZVNlbWFwaG9yZS53YWl0KCk7CiAg
ICAgICAgIG1fY29uc3VtZVF1ZXVlID0gbnVsbHB0cjsKICAgICB9CiAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339632</attachid>
            <date>2018-05-04 21:05:45 -0700</date>
            <delta_ts>2018-09-14 10:40:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185339-20180505130544.patch</filename>
            <type>text/plain</type>
            <size>53111</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGIyYmVhNzVjMDRkOTczMmIxNWU1YTY0
ZGFmOWQzYTdjZDY1YzJkMTEuLjdlODk2Mzc1OGNhOTFkYzdlMTIwODkxODE0ZDE3NTFjNDBlZDIw
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTgtMDUtMDQgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW1dURl0gVXNlIFNlbWFwaG9yZSBhbmQgQmlu
YXJ5U2VtYXBob3JlIGluc3RlYWQgb2YgZGlzcGF0Y2hfc2VtYXBob3JlX3QKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTMzOQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBXVEY6
OlNlbWFwaG9yZSwgd2hpY2ggaXMgYmFzZWQgb24gV1RGOjpMb2NrIGFuZCBXVEY6OkNvbmRpdGlv
bi4KKworICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvU2VtYXBob3JlLmg6IEFkZGVkLgor
ICAgICAgICAoV1RGOjpTZW1hcGhvcmU6OlNlbWFwaG9yZSk6CisgICAgICAgIChXVEY6OlNlbWFw
aG9yZTo6c2lnbmFsKToKKyAgICAgICAgKFdURjo6U2VtYXBob3JlOjp3YWl0VW50aWwpOgorICAg
ICAgICAoV1RGOjpTZW1hcGhvcmU6OndhaXRGb3IpOgorICAgICAgICAoV1RGOjpTZW1hcGhvcmU6
OndhaXQpOgorICAgICAgICAqIHd0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwOgorICAg
ICAgICAoV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIHd0Zi90aHJl
YWRzL0JpbmFyeVNlbWFwaG9yZS5jcHA6CisgICAgICAgIChXVEY6OkJpbmFyeVNlbWFwaG9yZTo6
d2FpdFVudGlsKToKKyAgICAgICAgKFdURjo6QmluYXJ5U2VtYXBob3JlOjp3YWl0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiB3dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuaDoKKyAgICAgICAgKFdU
Rjo6QmluYXJ5U2VtYXBob3JlOjp3YWl0Rm9yKToKKyAgICAgICAgKFdURjo6QmluYXJ5U2VtYXBo
b3JlOjp3YWl0KToKKyAgICAgICAgQWxpZ24gdGhlIG5hbWVzIG9mIHRoZSBmdW5jdGlvbnMgdG8g
V1RGOjpDb25kaXRpb24uCisgICAgICAgIEFkZCBCaW5hcnlTZW1hcGhvcmU6OndhaXQoKSwgd2hp
Y2ggaXMgdGhlIHNhbWUgdG8gd2FpdFVudGlsKFdhbGxUaW1lOjppbmZpbml0eSgpKS4KKwogMjAx
OC0wNS0wNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBTaGlmdCB0byBhIGxvd2VyLWxldmVsIGZyYW1ld29yayBmb3Igc2ltcGxpZnlpbmcgVVJMcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDI5M2NjZjBiNmIyMWZkOGM2ZjFjMDJiODA4ZDlmODEwOTRiNDdhOWEuLjg4
ODcwMWM0YWNmYzE3NmJmOGYzMTdhNWYyZjgxMGJjNjc3ODJmNzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2OSBAQAorMjAxOC0wNS0wNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbV1RGXSBVc2UgU2VtYXBob3JlIGFuZCBCaW5hcnlTZW1hcGhvcmUg
aW5zdGVhZCBvZiBkaXNwYXRjaF9zZW1hcGhvcmVfdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmaWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUp
OgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0
ZXIubW06CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6
aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZp
bHRlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtFeHRlbnNp
b25Db250ZW50RmlsdGVyOjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok5l
dHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjphZGREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpmaW5pc2hlZEFkZGluZ0RhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6TmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OmhhbmRsZURlY2lz
aW9uKToKKyAgICAgICAgVXNlIHBlci1mdW5jdGlvbiBCaW5hcnlTZW1hcGhvcmUgaW5zdGVhZCBv
ZiBob2xkaW5nIGl0IGluIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyJ3MgZmllbGQuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL0ZpbGVNb25pdG9yR0xpYi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlTW9uaXRvcjo6RmlsZU1vbml0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZU1vbml0b3I6On5GaWxlTW9uaXRvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
On5NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OndhaXRGb3JWaWRlb091dHB1dE1l
ZGlhRGF0YVdpbGxDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6b3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZSk6CisgICAgICAgIFVz
ZSBCaW5hcnlTZW1hcGhvcmUuIEFuZCByZW1vdmUgdW51c2VkIGRpc3BhdGNoX3NlbWFwaG9yZV90
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKC1b
V2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgc3RyZWFtRGF0YVBhcnNlcldpbGxQcm92aWRl
Q29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6Zm9yVHJhY2tJRDpdKToKKyAgICAg
ICAgKC1bV2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgc3RyZWFtRGF0YVBhcnNlcjpkaWRQ
cm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6Zm9yVHJhY2tJRDpdKToK
KyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6flNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJ
bml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQzo6c2V0Q0RNU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2V0Q0RNSW5zdGFuY2UpOgorICAgICAgICBVc2UgQm94
PFNlbWFwaG9yZT4gYW5kIEJveDxCaW5hcnlTZW1hcGhvcmU+LgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1t
OgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjpXZWJDb3Jl
RGVjb21wcmVzc2lvblNlc3Npb24pOgorICAgICAgICBSZW1vdmUgdW51c2VkIGRpc3BhdGNoX3Nl
bWFwaG9yZV90LgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRs
ZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2Yv
UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRSdW5Mb29wKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6Ondp
bGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNGVVJMQ29u
bmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdp
dGhPcGVyYXRpb25RdWV1ZTo6d2lsbENhY2hlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6
Y2FuUmVzcG9uZFRvUHJvdGVjdGlvblNwYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJh
dGlvblF1ZXVlRGVsZWdhdGUubW06CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFz
T3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBpbml0V2l0aEhhbmRsZTptZXNzYWdlUXVldWU6XSk6Cisg
ICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBk
ZXRhY2hIYW5kbGVdKToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRp
b25RdWV1ZURlbGVnYXRlIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFu
ZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246d2lsbFNlbmRSZXF1ZXN0OnJl
ZGlyZWN0UmVzcG9uc2U6XSk6CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3Bl
cmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9uOmNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90
ZWN0aW9uU3BhY2U6XSk6CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0
aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVSZXNwb25zZTpdKToKKyAgICAg
ICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5l
Y3Rpb246d2lsbENhY2hlUmVzcG9uc2U6XSk6CisgICAgICAgIFVzZSBCaW5hcnlTZW1hcGhvcmUg
aW5zdGVhZC4KKwogMjAxOC0wNS0wMiAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAK
ICAgICAgICAgVXNlIElPU3VyZmFjZXMgZm9yIENvcmVJbWFnZSBvcGVyYXRpb25zIHdoZXJlIHBv
c3NpYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDZiYzYxYjYxYjRmYTAyNDY3MzhkYzFmYTJlYWU5ZjhlMjNkNmY1
MzMuLmM5MWQxMDA5NWZhN2UzOThhYWMxMDdkYjMxOGM4ZWJlNmMyODUyZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMTgtMDUtMDQgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBn
bWFpbC5jb20+CisKKyAgICAgICAgW1dURl0gVXNlIFNlbWFwaG9yZSBhbmQgQmluYXJ5U2VtYXBo
b3JlIGluc3RlYWQgb2YgZGlzcGF0Y2hfc2VtYXBob3JlX3QKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTMzOQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjp3YWl0KToKKyAg
ICAgICAgKiBTaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcDoKKyAgICAgICAgKFdlYktpdDo6c2Vu
ZFNlY0l0ZW1SZXF1ZXN0KToKKyAgICAgICAgVXNlIEJpbmFyeVNlbWFwaG9yZS4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3Jh
Z2U6OmZpbmlzaEFsbFBlbmRpbmdXb3JrU3luY2hyb25vdXNseSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9y
YWdlTWFuYWdlcjo6YXBwbGljYXRpb25XaWxsVGVybWluYXRlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW06CisgICAgICAgIChhcHBMaW5rRm9yVVJM
KToKKyAgICAgICAgVXNlIEJpbmFyeVNlbWFwaG9yZSB0byB3YWl0IGZvciBhc3luYyBjb21wbGV0
aW9uIGhhbmRsZXIuIFdlIGFsc28gZml4IG1lbW9yeSBsZWFrCisgICAgICAgIHNpbmNlIHRoZSBv
bGQgY29kZSBkb2VzIG5vdCBjYWxsIGRpc3BhdGNoX3JlbGVhc2UgZm9yIHRoZSB1c2VkIHNlbWFw
aG9yZS4KKwogMjAxOC0wNS0wNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNv
bT4KIAogICAgICAgICBTaGlmdCB0byBhIGxvd2VyLWxldmVsIGZyYW1ld29yayBmb3Igc2ltcGxp
ZnlpbmcgVVJMcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MWEzOGYxOTg2ZTg2ZDZiYjk0MjRlMTc5NzRlYjI4ZWEzNGQ2ZmNlMi4uN2U2MTZlYjM0NDQ5NDM1
NTg2NWFiN2E4NTk1ODMxZTQxNWRjYjljNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC02MTksNiArNjE5LDcgQEAKIAkJRTM4RDZFMjYxRjU1MjJFMzAwQTc1
Q0M0IC8qIFN0cmluZ0J1aWxkZXJKU09OLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFN0cmluZ0J1aWxkZXJKU09OLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTNBMzJCQzIxRkM4MzBFMjAwN0Q3RTc2IC8qIEpTVmFsdWVNYWxsb2MuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNWYWx1ZU1hbGxvYy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQTMyQkMzMUZDODMwRTIwMDdEN0U3NiAvKiBKU1Zh
bHVlTWFsbG9jLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVmFsdWVNYWxs
b2MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNDMjFEOEIyMDlENUM3MDAwNkND
MDc4IC8qIFNlbWFwaG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZW1h
cGhvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNFMTU4MjUxRUFEQTUzQzAw
NEEwNzlEIC8qIFN5c3RlbUZyZWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3lzdGVtRnJlZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEEwQUQzNzFBOTYy
NDU1MDA1MzZERjYgLyogV29ya1F1ZXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdvcmtRdWV1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0
QTBBRDM4MUE5NjI0NTUwMDUzNkRGNiAvKiBXb3JrUXVldWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV29ya1F1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMDQ2LDYgKzEwNDcsNyBAQAogCQkJCTBGNjZCMjg0MURDOTdCQUIwMDRBMUQzRiAvKiBTZWNv
bmRzLmNwcCAqLywKIAkJCQkwRjY2QjI4NTFEQzk3QkFCMDA0QTFEM0YgLyogU2Vjb25kcy5oICov
LAogCQkJCUE4QTQ3MzA2MTUxQTgyNUIwMDQxMjNGRiAvKiBTZWdtZW50ZWRWZWN0b3IuaCAqLywK
KwkJCQlFM0MyMUQ4QjIwOUQ1QzcwMDA2Q0MwNzggLyogU2VtYXBob3JlLmggKi8sCiAJCQkJQThB
NDczMDcxNTFBODI1QjAwNDEyM0ZGIC8qIFNlbnRpbmVsTGlua2VkTGlzdC5oICovLAogCQkJCUE4
QTQ3MzFBMTUxQTgyNUIwMDQxMjNGRiAvKiBTZXRGb3JTY29wZS5oICovLAogCQkJCUE4QTQ3MzA4
MTUxQTgyNUIwMDQxMjNGRiAvKiBTSEExLmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXgg
NDg5MDI5N2U5NzY5ZDlhYzhhMmUzMmMxNDExNzM2MTI1M2RhOGJmZS4uODA5NzZjYjBiNjNhYWI1
N2I5OWVhZTdkNDU1NjNiN2ZlZWI2YjVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTE5Niw2
ICsxOTYsNyBAQCBzZXQoV1RGX1BVQkxJQ19IRUFERVJTCiAgICAgU2NvcGVkTGFtYmRhLmgKICAg
ICBTZWNvbmRzLmgKICAgICBTZWdtZW50ZWRWZWN0b3IuaAorICAgIFNlbWFwaG9yZS5oCiAgICAg
U2VudGluZWxMaW5rZWRMaXN0LmgKICAgICBTZXRGb3JTY29wZS5oCiAgICAgU2hhcmVkVGFzay5o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TZW1hcGhvcmUuaCBiL1NvdXJjZS9XVEYvd3Rm
L1NlbWFwaG9yZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlZTUyNzBmODE4ZWQwMWI5MzRkZjhmOWMwMTEzZGRj
ODYyZjE1MjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TZW1hcGhvcmUuaApA
QCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IFl1c3VrZSBTdXp1a2kg
PHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgor
I2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25h
bWVzcGFjZSBXVEYgeworCitjbGFzcyBTZW1hcGhvcmUgeworICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKFNlbWFwaG9yZSk7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6Cisg
ICAgY29uc3RleHByIFNlbWFwaG9yZSh1bnNpZ25lZCB2YWx1ZSkKKyAgICAgICAgOiBtX3ZhbHVl
KHZhbHVlKQorICAgIHsKKyAgICB9CisKKyAgICB2b2lkIHNpZ25hbCgpCisgICAgeworICAgICAg
ICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbG9jayk7CisgICAgICAgIG1fdmFsdWUrKzsKKyAg
ICAgICAgbV9jb25kaXRpb24ubm90aWZ5T25lKCk7CisgICAgfQorCisgICAgYm9vbCB3YWl0VW50
aWwoY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiB0aW1lb3V0KQorICAgIHsKKyAgICAg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOworICAgICAgICBib29sIHNhdGlzZmll
ZCA9IG1fY29uZGl0aW9uLndhaXRVbnRpbChtX2xvY2ssIHRpbWVvdXQsCisgICAgICAgICAgICBb
Jl0geworICAgICAgICAgICAgICAgIHJldHVybiBtX3ZhbHVlOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIGlmIChzYXRpc2ZpZWQpCisgICAgICAgICAgICAtLW1fdmFsdWU7CisgICAgICAgIHJl
dHVybiBzYXRpc2ZpZWQ7CisgICAgfQorCisgICAgYm9vbCB3YWl0Rm9yKFNlY29uZHMgcmVsYXRp
dmVUaW1lb3V0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHdhaXRVbnRpbChNb25vdG9uaWNUaW1l
Ojpub3coKSArIHJlbGF0aXZlVGltZW91dCk7CisgICAgfQorCisgICAgdm9pZCB3YWl0KCkKKyAg
ICB7CisgICAgICAgIHdhaXRVbnRpbChQYXJraW5nTG90OjpUaW1lOjppbmZpbml0eSgpKTsKKyAg
ICB9CisKK3ByaXZhdGU6CisgICAgdW5zaWduZWQgbV92YWx1ZSB7IDAgfTsKKyAgICBMb2NrIG1f
bG9jazsKKyAgICBDb25kaXRpb24gbV9jb25kaXRpb247Cit9OworCisKK30gLy8gbmFtZXNwYWNl
IFdURgorCit1c2luZyBXVEY6OlNlbWFwaG9yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L2dlbmVyaWMvV29ya1F1ZXVlR2VuZXJpYy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1dv
cmtRdWV1ZUdlbmVyaWMuY3BwCmluZGV4IGUwNTkxNjQ0YWFhMjdlNTU1NmM2Mzc1MzhlYThlODE5
MmM1YWE5YTYuLjNjMDQ5MmZmNTRlYjBkNzUwMjBhYWM3NGU5NjdiNjk1OGJlN2M1ZWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMvV29ya1F1ZXVlR2VuZXJpYy5jcHAKKysrIGIv
U291cmNlL1dURi93dGYvZ2VuZXJpYy9Xb3JrUXVldWVHZW5lcmljLmNwcApAQCAtNDIsNyArNDIs
NyBAQCB2b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IGNoYXIqIG5hbWUs
IFR5cGUsIFFPUykKICAgICAgICAgc2VtYXBob3JlLnNpZ25hbCgpOwogICAgICAgICBtX3J1bkxv
b3AtPnJ1bigpOwogICAgIH0pLT5kZXRhY2goKTsKLSAgICBzZW1hcGhvcmUud2FpdChXYWxsVGlt
ZTo6aW5maW5pdHkoKSk7CisgICAgc2VtYXBob3JlLndhaXQoKTsKIH0KIAogdm9pZCBXb3JrUXVl
dWU6OnBsYXRmb3JtSW52YWxpZGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90aHJl
YWRzL0JpbmFyeVNlbWFwaG9yZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRzL0JpbmFyeVNl
bWFwaG9yZS5jcHAKaW5kZXggZTJmNmRlZDc5ZjQyMDEwNjNhMGI0ODEyMzllOTEyZjIyZjU4N2U4
My4uMTgwNTY4MjJjM2Q5YmNkMzM3ZjEzZDM3ZmNkYzhlZjkyYmQ2Y2NmMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuY3BwCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmNwcApAQCAtMzUsNyArMzUsNyBAQCB2b2lk
IEJpbmFyeVNlbWFwaG9yZTo6c2lnbmFsKCkKICAgICBtX2NvbmRpdGlvbi5ub3RpZnlPbmUoKTsK
IH0KIAotYm9vbCBCaW5hcnlTZW1hcGhvcmU6OndhaXQoVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBl
IGFic29sdXRlVGltZSkKK2Jvb2wgQmluYXJ5U2VtYXBob3JlOjp3YWl0VW50aWwoY29uc3QgVGlt
ZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiBhYnNvbHV0ZVRpbWUpCiB7CiAgICAgYXV0byBsb2NrZXIg
PSBob2xkTG9jayhtX2xvY2spOwogICAgIGJvb2wgc2F0aXNmaWVkID0gbV9jb25kaXRpb24ud2Fp
dFVudGlsKG1fbG9jaywgYWJzb2x1dGVUaW1lLCBbJl0geyByZXR1cm4gbV9pc1NldDsgfSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oIGIvU291
cmNlL1dURi93dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuaAppbmRleCBmZDU5ZDVhYTJiYWJj
MjJkYWJmNTU2NTVlNjYwMWY2NDg0OTBlZGUyLi5kNWI3MzhmNWYzYzI5YzIyOTJjYWU4YzUwYjUw
OWI4NmE0NmU2OGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90aHJlYWRzL0JpbmFyeVNl
bWFwaG9yZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmgK
QEAgLTM1LDExICszNSwyMiBAQCBuYW1lc3BhY2UgV1RGIHsKIAogY2xhc3MgQmluYXJ5U2VtYXBo
b3JlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShCaW5hcnlTZW1hcGhvcmUpOworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIEJpbmFyeVNlbWFwaG9yZSgpID0g
ZGVmYXVsdDsKKyAgICBjb25zdGV4cHIgQmluYXJ5U2VtYXBob3JlKCkgPSBkZWZhdWx0OwogCiAg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc2lnbmFsKCk7Ci0gICAgV1RGX0VYUE9SVF9QUklW
QVRFIGJvb2wgd2FpdChUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUpOworICAgIFdURl9FWFBPUlRf
UFJJVkFURSBib29sIHdhaXRVbnRpbChjb25zdCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUmKTsK
KworICAgIGJvb2wgd2FpdEZvcihTZWNvbmRzIHJlbGF0aXZlVGltZW91dCkKKyAgICB7CisgICAg
ICAgIHJldHVybiB3YWl0VW50aWwoTW9ub3RvbmljVGltZTo6bm93KCkgKyByZWxhdGl2ZVRpbWVv
dXQpOworICAgIH0KKworICAgIHZvaWQgd2FpdCgpCisgICAgeworICAgICAgICB3YWl0VW50aWwo
UGFya2luZ0xvdDo6VGltZTo6aW5maW5pdHkoKSk7CisgICAgfQogCiBwcml2YXRlOgogICAgIGJv
b2wgbV9pc1NldCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJl
YWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcAppbmRleCBiNmM1N2EzMWQ4YzJiNTEzM2ViYmM5MzhkMzQ5
MjAxNjQwMTI3ODkzLi41YmM5YmFmNzgyNzk2YmE0MzNkN2U4MjljMTBhZjY3NzE3YWE0MzkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5j
cHAKQEAgLTE1MCw3ICsxNTAsNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgVGhyZWFkYWJsZUJsb2JS
ZWdpc3RyeTo6YmxvYlNpemUoY29uc3QgVVJMJiB1cmwpCiAgICAgICAgICAgICByZXN1bHRTaXpl
ID0gYmxvYlJlZ2lzdHJ5KCkuYmxvYlNpemUodXJsKTsKICAgICAgICAgICAgIHNlbWFwaG9yZS5z
aWduYWwoKTsKICAgICAgICAgfSk7Ci0gICAgICAgIHNlbWFwaG9yZS53YWl0KFdhbGxUaW1lOjpp
bmZpbml0eSgpKTsKKyAgICAgICAgc2VtYXBob3JlLndhaXQoKTsKICAgICB9CiAgICAgcmV0dXJu
IHJlc3VsdFNpemU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaAppbmRleCA5ODNiNzAzNWI3
MDBlYzE4ZmI5M2FkMWEzMjQ4ZDExMTVlM2Q5ZDIxLi4yMTA2YzJiYTliODZhYzAyMGI0MDcwMTBl
OTEzMjM5YmQ0MjU5MGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmgKQEAgLTY0LDcgKzY0
LDYgQEAgY2xhc3MgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIgZmluYWwgOiBwdWJsaWMg
UGxhdGZvcm1Db250ZW50RmlsdGVyIHsKICAgICB2b2lkIGhhbmRsZURlY2lzaW9uKE5FRmlsdGVy
U291cmNlU3RhdHVzLCBOU0RhdGEgKnJlcGxhY2VtZW50RGF0YSk7CiAKICAgICBPU09iamVjdFB0
cjxkaXNwYXRjaF9xdWV1ZV90PiBtX3F1ZXVlOwotICAgIE9TT2JqZWN0UHRyPGRpc3BhdGNoX3Nl
bWFwaG9yZV90PiBtX3NlbWFwaG9yZTsKICAgICBSZXRhaW5QdHI8TlNEYXRhPiBtX3JlcGxhY2Vt
ZW50RGF0YTsKICAgICBSZXRhaW5QdHI8TkVGaWx0ZXJTb3VyY2U+IG1fbmVGaWx0ZXJTb3VyY2U7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4
dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9O
ZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbQppbmRleCA3ZDBkMjVlZTI5ZDFjNmEzMGIy
MzQ0ZmEyNTQxMmY1ZjM1OTg3NGMwLi5hNmMxYjM2MWE3MjlhMDMwYzI4MGYwNjE4NTg4ODVlNWFh
ZTE0Y2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9OZXR3b3Jr
RXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbQpAQCAtMzgsNiArMzgsNyBAQAog
I2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05FRmlsdGVy
U291cmNlU1BJLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKyNpbXBvcnQgPHd0Zi90
aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oPgogCiBTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFM
KE5ldHdvcmtFeHRlbnNpb24pOwogU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKE5ldHdvcmtFeHRl
bnNpb24sIE5FRmlsdGVyU291cmNlKTsKQEAgLTcwLDEwICs3MSw4IEBAIHN0ZDo6dW5pcXVlX3B0
cjxOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcj4gTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRG
aWx0ZXI6OmNyCiB2b2lkIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjppbml0aWFsaXpl
KGNvbnN0IFVSTCogdXJsKQogewogICAgIEFTU0VSVCghbV9xdWV1ZSk7Ci0gICAgQVNTRVJUKCFt
X3NlbWFwaG9yZSk7CiAgICAgQVNTRVJUKCFtX25lRmlsdGVyU291cmNlKTsKICAgICBtX3F1ZXVl
ID0gYWRvcHRPU09iamVjdChkaXNwYXRjaF9xdWV1ZV9jcmVhdGUoIldlYktpdCBOZXR3b3JrRXh0
ZW5zaW9uIEZpbHRlcmluZyIsIERJU1BBVENIX1FVRVVFX1NFUklBTCkpOwotICAgIG1fc2VtYXBo
b3JlID0gYWRvcHRPU09iamVjdChkaXNwYXRjaF9zZW1hcGhvcmVfY3JlYXRlKDApKTsKICAgICBB
U1NFUlRfVU5VU0VEKHVybCwgIXVybCk7CiAgICAgbV9uZUZpbHRlclNvdXJjZSA9IGFkb3B0TlMo
W2FsbG9jTkVGaWx0ZXJTb3VyY2VJbnN0YW5jZSgpIGluaXRXaXRoRGVjaXNpb25RdWV1ZTptX3F1
ZXVlLmdldCgpXSk7CiAjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDEzMDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkKQEAgLTEwMCwxNyArOTksMTkgQEAgdm9pZCBO
ZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY28KICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBCaW5h
cnlTZW1hcGhvcmUgc2VtYXBob3JlOwogICAgIFJldGFpblB0cjxOU1N0cmluZz4gbW9kaWZpZWRS
ZXF1ZXN0VVJMU3RyaW5nOwotICAgIFttX25lRmlsdGVyU291cmNlIHdpbGxTZW5kUmVxdWVzdDpy
ZXF1ZXN0Lm5zVVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBCb2R5KSBkZWNpc2lvbkhhbmRsZXI6
W3RoaXMsICZtb2RpZmllZFJlcXVlc3RVUkxTdHJpbmddKE5FRmlsdGVyU291cmNlU3RhdHVzIHN0
YXR1cywgTlNEaWN0aW9uYXJ5ICpkZWNpc2lvbkluZm8pIHsKKyAgICBbbV9uZUZpbHRlclNvdXJj
ZSB3aWxsU2VuZFJlcXVlc3Q6cmVxdWVzdC5uc1VSTFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9k
eSkgZGVjaXNpb25IYW5kbGVyOlt0aGlzLCAmbW9kaWZpZWRSZXF1ZXN0VVJMU3RyaW5nLCAmc2Vt
YXBob3JlXShORUZpbHRlclNvdXJjZVN0YXR1cyBzdGF0dXMsIE5TRGljdGlvbmFyeSAqZGVjaXNp
b25JbmZvKSB7CiAgICAgICAgIG1vZGlmaWVkUmVxdWVzdFVSTFN0cmluZyA9IGRlY2lzaW9uSW5m
b1tORUZpbHRlclNvdXJjZU9wdGlvbnNSZWRpcmVjdFVSTF07CiAgICAgICAgIEFTU0VSVCghbW9k
aWZpZWRSZXF1ZXN0VVJMU3RyaW5nIHx8IFttb2RpZmllZFJlcXVlc3RVUkxTdHJpbmcgaXNLaW5k
T2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSk7CiAgICAgICAgIGhhbmRsZURlY2lzaW9uKHN0YXR1
cywgcmVwbGFjZW1lbnREYXRhRnJvbURlY2lzaW9uSW5mbyhkZWNpc2lvbkluZm8pKTsKKyAgICAg
ICAgc2VtYXBob3JlLnNpZ25hbCgpOwogICAgIH1dOwogCiAgICAgLy8gRklYTUU6IFdlIGhhdmUg
dG8gYmxvY2sgaGVyZSBzaW5jZSBEb2N1bWVudExvYWRlciBleHBlY3RzIHRvIGhhdmUgYQogICAg
IC8vIGJsb2NrZWQvbm90IGJsb2NrZWQgYW5zd2VyIGZyb20gdGhlIGZpbHRlciBpbW1lZGlhdGVs
eSBhZnRlciBjYWxsaW5nCiAgICAgLy8gYWRkRGF0YSgpLiBXZSBzaG91bGQgZmluZCBhIHdheSB0
byBtYWtlIHRoaXMgYXN5bmNocm9ub3VzLgotICAgIGRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KG1f
c2VtYXBob3JlLmdldCgpLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOworICAgIHNlbWFwaG9yZS53
YWl0KCk7CiAKICAgICBpZiAoIW1vZGlmaWVkUmVxdWVzdFVSTFN0cmluZykKICAgICAgICAgcmV0
dXJuOwpAQCAtMTMxLDQwICsxMzIsNDYgQEAgdm9pZCBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZp
bHRlcjo6cmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXMKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIFttX25lRmlsdGVyU291cmNlIHJlY2VpdmVkUmVzcG9u
c2U6cmVzcG9uc2UubnNVUkxSZXNwb25zZSgpIGRlY2lzaW9uSGFuZGxlcjpbdGhpc10oTkVGaWx0
ZXJTb3VyY2VTdGF0dXMgc3RhdHVzLCBOU0RpY3Rpb25hcnkgKmRlY2lzaW9uSW5mbykgeworICAg
IEJpbmFyeVNlbWFwaG9yZSBzZW1hcGhvcmU7CisgICAgW21fbmVGaWx0ZXJTb3VyY2UgcmVjZWl2
ZWRSZXNwb25zZTpyZXNwb25zZS5uc1VSTFJlc3BvbnNlKCkgZGVjaXNpb25IYW5kbGVyOlt0aGlz
LCAmc2VtYXBob3JlXShORUZpbHRlclNvdXJjZVN0YXR1cyBzdGF0dXMsIE5TRGljdGlvbmFyeSAq
ZGVjaXNpb25JbmZvKSB7CiAgICAgICAgIGhhbmRsZURlY2lzaW9uKHN0YXR1cywgcmVwbGFjZW1l
bnREYXRhRnJvbURlY2lzaW9uSW5mbyhkZWNpc2lvbkluZm8pKTsKKyAgICAgICAgc2VtYXBob3Jl
LnNpZ25hbCgpOwogICAgIH1dOwogCiAgICAgLy8gRklYTUU6IFdlIGhhdmUgdG8gYmxvY2sgaGVy
ZSBzaW5jZSBEb2N1bWVudExvYWRlciBleHBlY3RzIHRvIGhhdmUgYQogICAgIC8vIGJsb2NrZWQv
bm90IGJsb2NrZWQgYW5zd2VyIGZyb20gdGhlIGZpbHRlciBpbW1lZGlhdGVseSBhZnRlciBjYWxs
aW5nCiAgICAgLy8gYWRkRGF0YSgpLiBXZSBzaG91bGQgZmluZCBhIHdheSB0byBtYWtlIHRoaXMg
YXN5bmNocm9ub3VzLgotICAgIGRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KG1fc2VtYXBob3JlLmdl
dCgpLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOworICAgIHNlbWFwaG9yZS53YWl0KCk7CiB9CiAK
IHZvaWQgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OmFkZERhdGEoY29uc3QgY2hhciog
ZGF0YSwgaW50IGxlbmd0aCkKIHsKICAgICBSZXRhaW5QdHI8TlNEYXRhPiBjb3BpZWREYXRhIHsg
W05TRGF0YSBkYXRhV2l0aEJ5dGVzOih2b2lkKilkYXRhIGxlbmd0aDpsZW5ndGhdIH07CiAKLSAg
ICBbbV9uZUZpbHRlclNvdXJjZSByZWNlaXZlZERhdGE6Y29waWVkRGF0YS5nZXQoKSBkZWNpc2lv
bkhhbmRsZXI6W3RoaXNdKE5FRmlsdGVyU291cmNlU3RhdHVzIHN0YXR1cywgTlNEaWN0aW9uYXJ5
ICpkZWNpc2lvbkluZm8pIHsKKyAgICBCaW5hcnlTZW1hcGhvcmUgc2VtYXBob3JlOworICAgIFtt
X25lRmlsdGVyU291cmNlIHJlY2VpdmVkRGF0YTpjb3BpZWREYXRhLmdldCgpIGRlY2lzaW9uSGFu
ZGxlcjpbdGhpcywgJnNlbWFwaG9yZV0oTkVGaWx0ZXJTb3VyY2VTdGF0dXMgc3RhdHVzLCBOU0Rp
Y3Rpb25hcnkgKmRlY2lzaW9uSW5mbykgewogICAgICAgICBoYW5kbGVEZWNpc2lvbihzdGF0dXMs
IHJlcGxhY2VtZW50RGF0YUZyb21EZWNpc2lvbkluZm8oZGVjaXNpb25JbmZvKSk7CisgICAgICAg
IHNlbWFwaG9yZS5zaWduYWwoKTsKICAgICB9XTsKIAogICAgIC8vIEZJWE1FOiBXZSBoYXZlIHRv
IGJsb2NrIGhlcmUgc2luY2UgRG9jdW1lbnRMb2FkZXIgZXhwZWN0cyB0byBoYXZlIGEKICAgICAv
LyBibG9ja2VkL25vdCBibG9ja2VkIGFuc3dlciBmcm9tIHRoZSBmaWx0ZXIgaW1tZWRpYXRlbHkg
YWZ0ZXIgY2FsbGluZwogICAgIC8vIGFkZERhdGEoKS4gV2Ugc2hvdWxkIGZpbmQgYSB3YXkgdG8g
bWFrZSB0aGlzIGFzeW5jaHJvbm91cy4KLSAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2FpdChtX3Nl
bWFwaG9yZS5nZXQoKSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKKyAgICBzZW1hcGhvcmUud2Fp
dCgpOwogfQogCiB2b2lkIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpmaW5pc2hlZEFk
ZGluZ0RhdGEoKQogewotICAgIFttX25lRmlsdGVyU291cmNlIGZpbmlzaGVkTG9hZGluZ1dpdGhE
ZWNpc2lvbkhhbmRsZXI6W3RoaXNdKE5FRmlsdGVyU291cmNlU3RhdHVzIHN0YXR1cywgTlNEaWN0
aW9uYXJ5ICpkZWNpc2lvbkluZm8pIHsKKyAgICBCaW5hcnlTZW1hcGhvcmUgc2VtYXBob3JlOwor
ICAgIFttX25lRmlsdGVyU291cmNlIGZpbmlzaGVkTG9hZGluZ1dpdGhEZWNpc2lvbkhhbmRsZXI6
W3RoaXMsICZzZW1hcGhvcmVdKE5FRmlsdGVyU291cmNlU3RhdHVzIHN0YXR1cywgTlNEaWN0aW9u
YXJ5ICpkZWNpc2lvbkluZm8pIHsKICAgICAgICAgaGFuZGxlRGVjaXNpb24oc3RhdHVzLCByZXBs
YWNlbWVudERhdGFGcm9tRGVjaXNpb25JbmZvKGRlY2lzaW9uSW5mbykpOworICAgICAgICBzZW1h
cGhvcmUuc2lnbmFsKCk7CiAgICAgfV07CiAKICAgICAvLyBGSVhNRTogV2UgaGF2ZSB0byBibG9j
ayBoZXJlIHNpbmNlIERvY3VtZW50TG9hZGVyIGV4cGVjdHMgdG8gaGF2ZSBhCiAgICAgLy8gYmxv
Y2tlZC9ub3QgYmxvY2tlZCBhbnN3ZXIgZnJvbSB0aGUgZmlsdGVyIGltbWVkaWF0ZWx5IGFmdGVy
IGNhbGxpbmcKICAgICAvLyBmaW5pc2hlZEFkZGluZ0RhdGEoKS4gV2Ugc2hvdWxkIGZpbmQgYSB3
YXkgdG8gbWFrZSB0aGlzIGFzeW5jaHJvbm91cy4KLSAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2Fp
dChtX3NlbWFwaG9yZS5nZXQoKSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKKyAgICBzZW1hcGhv
cmUud2FpdCgpOwogfQogCiBSZWY8U2hhcmVkQnVmZmVyPiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVu
dEZpbHRlcjo6cmVwbGFjZW1lbnREYXRhKCkgY29uc3QKQEAgLTIxNSw3ICsyMjIsNiBAQCB2b2lk
IE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpoYW5kbGVEZWNpc2lvbihORUZpbHRlclNv
dXJjZVN0YXR1cyBzdGF0dXMsCiAgICAgaWYgKCFuZWVkc01vcmVEYXRhKCkpCiAgICAgICAgIExP
RyhDb250ZW50RmlsdGVyaW5nLCAiTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIgc3RvcHBl
ZCBidWZmZXJpbmcgd2l0aCBzdGF0dXMgJXpkIGFuZCByZXBsYWNlbWVudCBkYXRhIGxlbmd0aCAl
enUuXG4iLCBzdGF0dXMsIHJlcGxhY2VtZW50RGF0YS5sZW5ndGgpOwogI2VuZGlmCi0gICAgZGlz
cGF0Y2hfc2VtYXBob3JlX3NpZ25hbChtX3NlbWFwaG9yZS5nZXQoKSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIv
RmlsZU1vbml0b3JHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZU1v
bml0b3JHTGliLmNwcAppbmRleCBiYjY5NWE5MjdhMzk3ZDNhZTAyODQ5Y2JmMDljOTkxYzI2ZDk1
YjcyLi40NjNmMzI3NmMyNGUyNTFiZWI0YWEwOGIwYjk4OTg2ZThjYzk2OTIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVNb25pdG9yR0xpYi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlTW9uaXRvckdMaWIuY3BwCkBAIC02MCw3
ICs2MCw3IEBAIEZpbGVNb25pdG9yOjpGaWxlTW9uaXRvcihjb25zdCBTdHJpbmcmIHBhdGgsIFJl
ZjxXb3JrUXVldWU+JiYgaGFuZGxlclF1ZXVlLCBXVEY6CiAgICAgICAgIGNyZWF0ZVBsYXRmb3Jt
TW9uaXRvcigpOwogICAgICAgICBzZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAgfSk7Ci0gICAgc2Vt
YXBob3JlLndhaXQoV2FsbFRpbWU6OmluZmluaXR5KCkpOworICAgIHNlbWFwaG9yZS53YWl0KCk7
CiB9CiAKIEZpbGVNb25pdG9yOjp+RmlsZU1vbml0b3IoKQpAQCAtNzQsNyArNzQsNyBAQCBGaWxl
TW9uaXRvcjo6fkZpbGVNb25pdG9yKCkKICAgICAgICAgbV9wbGF0Zm9ybU1vbml0b3IgPSBudWxs
cHRyOwogICAgICAgICBzZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAgfSk7Ci0gICAgc2VtYXBob3Jl
LndhaXQoV2FsbFRpbWU6OmluZmluaXR5KCkpOworICAgIHNlbWFwaG9yZS53YWl0KCk7CiB9CiAK
IHZvaWQgRmlsZU1vbml0b3I6OmZpbGVDaGFuZ2VkQ2FsbGJhY2soR0ZpbGVNb25pdG9yKiwgR0Zp
bGUqLCBHRmlsZSosIEdGaWxlTW9uaXRvckV2ZW50IGV2ZW50LCBGaWxlTW9uaXRvciogbW9uaXRv
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCBmNDY0NzAzY2Y5N2Y0OGE0OTFlYjBjOTA1OTdi
M2M2N2FkZjFmYjE0Li44ODU3ZDhiNDcyYjNlNDQ5ZmM5ZDY0ZWJkMzE1YjgwYTljZDc4MjQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvdGhyZWFkcy9CaW5hcnlTZW1h
cGhvcmUuaD4KIAogT0JKQ19DTEFTUyBBVkFzc2V0SW1hZ2VHZW5lcmF0b3I7CiBPQkpDX0NMQVNT
IEFWQXNzZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0OwpAQCAtMzU5LDcgKzM2MCw3IEBAIGNsYXNz
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uCiAgICAgUmV0YWluUHRyPFdlYkNvcmVBVkZQdWxsRGVsZWdhdGU+
IG1fdmlkZW9PdXRwdXREZWxlZ2F0ZTsKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4g
bV9sYXN0UGl4ZWxCdWZmZXI7CiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IG1fbGFzdEltYWdl
OwotICAgIGRpc3BhdGNoX3NlbWFwaG9yZV90IG1fdmlkZW9PdXRwdXRTZW1hcGhvcmU7CisgICAg
QmluYXJ5U2VtYXBob3JlIG1fdmlkZW9PdXRwdXRTZW1hcGhvcmU7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPFZpZGVvVGV4dHVyZUNvcGllckNWPiBtX3ZpZGVvVGV4dHVyZUNvcGllcjsKICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCAyYTk2YThiMTQ2ZjMwZjRlZWU4OTBkZjNiZTNh
OWFhODA3ZjVkZjk2Li5hNTI2NmJiZmYzY2I4YjdjODhjYWM5Y2VhYzE0NWQ0ZWQ0OTRlZTc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTM0OCw3ICszNDgsNiBAQCBAZW5kCiAjaWYgSEFW
RShBVkZPVU5EQVRJT05fVklERU9fT1VUUFVUKQogQGludGVyZmFjZSBXZWJDb3JlQVZGUHVsbERl
bGVnYXRlIDogTlNPYmplY3Q8QVZQbGF5ZXJJdGVtT3V0cHV0UHVsbERlbGVnYXRlPiB7CiAgICAg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyAqbV9jYWxsYmFjazsKLSAgICBkaXNw
YXRjaF9zZW1hcGhvcmVfdCBtX3NlbWFwaG9yZTsKIH0KIC0gKGlkKWluaXRXaXRoQ2FsbGJhY2s6
KE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMgKiljYWxsYmFjazsKIC0gKHZvaWQp
c2V0Q2FsbGJhY2s6KE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMqKWNhbGxiYWNr
OwpAQCAtNDkyLDcgKzQ5MSw2IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMoTWVkaWFQbGF5CiAgICAgLCBtX2hh
dmVDaGVja2VkUGxheWFiaWxpdHkoZmFsc2UpCiAjaWYgSEFWRShBVkZPVU5EQVRJT05fVklERU9f
T1VUUFVUKQogICAgICwgbV92aWRlb091dHB1dERlbGVnYXRlKGFkb3B0TlMoW1tXZWJDb3JlQVZG
UHVsbERlbGVnYXRlIGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOnRoaXNdKSkKLSAgICAsIG1fdmlk
ZW9PdXRwdXRTZW1hcGhvcmUobnVsbHB0cikKICNlbmRpZgogI2lmIEhBVkUoQVZGT1VOREFUSU9O
X0xPQURFUl9ERUxFR0FURSkKICAgICAsIG1fbG9hZGVyRGVsZWdhdGUoYWRvcHROUyhbW1dlYkNv
cmVBVkZMb2FkZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazp0aGlzXSkpCkBAIC01
MjcsOCArNTI1LDYgQEAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6fk1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMoKQogI2lmIEhBVkUoQVZGT1VOREFUSU9OX1ZJ
REVPX09VVFBVVCkKICAgICBbbV92aWRlb091dHB1dERlbGVnYXRlIHNldENhbGxiYWNrOjBdOwog
ICAgIFttX3ZpZGVvT3V0cHV0IHNldERlbGVnYXRlOm5pbCBxdWV1ZTowXTsKLSAgICBpZiAobV92
aWRlb091dHB1dFNlbWFwaG9yZSkKLSAgICAgICAgZGlzcGF0Y2hfcmVsZWFzZShtX3ZpZGVvT3V0
cHV0U2VtYXBob3JlKTsKICNlbmRpZgogCiAgICAgaWYgKG1fdmlkZW9MYXllcikKQEAgLTIzNjks
MjEgKzIzNjUsMTcgQEAgTmF0aXZlSW1hZ2VQdHIgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6d2FpdEZvclZpZGVvT3V0cHV0TWVkaWFEYXRhV2lsbENo
YW5nZSgpCiB7Ci0gICAgaWYgKCFtX3ZpZGVvT3V0cHV0U2VtYXBob3JlKQotICAgICAgICBtX3Zp
ZGVvT3V0cHV0U2VtYXBob3JlID0gZGlzcGF0Y2hfc2VtYXBob3JlX2NyZWF0ZSgwKTsKLQogICAg
IFttX3ZpZGVvT3V0cHV0IHJlcXVlc3ROb3RpZmljYXRpb25PZk1lZGlhRGF0YUNoYW5nZVdpdGhB
ZHZhbmNlSW50ZXJ2YWw6MF07CiAKICAgICAvLyBXYWl0IGZvciAxIHNlY29uZC4KLSAgICBsb25n
IHJlc3VsdCA9IGRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KG1fdmlkZW9PdXRwdXRTZW1hcGhvcmUs
IGRpc3BhdGNoX3RpbWUoMCwgMSAqIE5TRUNfUEVSX1NFQykpOwotCi0gICAgaWYgKHJlc3VsdCkK
KyAgICBib29sIHNhdGlzZmllZCA9IG1fdmlkZW9PdXRwdXRTZW1hcGhvcmUud2FpdEZvcigxX3Mp
OworICAgIGlmICghc2F0aXNmaWVkKQogICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwg
InRpbWVkIG91dCIpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6Om91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2UoQVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXRUeXBl
ICopCiB7Ci0gICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbChtX3ZpZGVvT3V0cHV0U2VtYXBo
b3JlKTsKKyAgICBtX3ZpZGVvT3V0cHV0U2VtYXBob3JlLnNpZ25hbCgpOwogfQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5oCmluZGV4IDExZjJmYTkyZDJlNmMyY2VlMjA2ZTU4NmU2ZDU2YTQwMGM0MTlmNGEuLjVlYTM2
YjcxNWFiODFmODg0MzMzOWQzODNkMzJhMGExZjYzM2E0NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaApAQCAtMjksNyArMjks
NyBAQAogCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgPGRpc3Bh
dGNoL2dyb3VwLmg+Ci0jaW5jbHVkZSA8ZGlzcGF0Y2gvc2VtYXBob3JlLmg+CisjaW5jbHVkZSA8
d3RmL0JveC5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgpAQCAtMzksNiArMzksNyBAQAogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0F0b21pY1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90aHJlYWRzL0JpbmFyeVNlbWFw
aG9yZS5oPgogCiBPQkpDX0NMQVNTIEFWQXNzZXQ7CiBPQkpDX0NMQVNTIEFWU3RyZWFtRGF0YVBh
cnNlcjsKQEAgLTkwLDcgKzkxLDcgQEAgY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMg
ZmluYWwgOiBwdWJsaWMgU291cmNlQnVmZmVyUHJpdmF0ZSB7CiAgICAgdm9pZCBkaWRQcm92aWRl
TWVkaWFEYXRhRm9yVHJhY2tJRChpbnQgdHJhY2tJRCwgQ01TYW1wbGVCdWZmZXJSZWYsIGNvbnN0
IFN0cmluZyYgbWVkaWFUeXBlLCB1bnNpZ25lZCBmbGFncyk7CiAgICAgdm9pZCBkaWRSZWFjaEVu
ZE9mVHJhY2tXaXRoVHJhY2tJRChpbnQgdHJhY2tJRCwgY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUp
OwogICAgIHZvaWQgd2lsbFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0
YUZvclRyYWNrSUQoaW50IHRyYWNrSUQpOwotICAgIHZvaWQgZGlkUHJvdmlkZUNvbnRlbnRLZXlS
ZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRChOU0RhdGEqLCBpbnQgdHJhY2tJRCwg
T1NPYmplY3RQdHI8ZGlzcGF0Y2hfc2VtYXBob3JlX3Q+KTsKKyAgICB2b2lkIGRpZFByb3ZpZGVD
b250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUZvclRyYWNrSUQoTlNEYXRhKiwgaW50
IHRyYWNrSUQsIEJveDxCaW5hcnlTZW1hcGhvcmU+KTsKIAogICAgIGJvb2wgcHJvY2Vzc0NvZGVk
RnJhbWUoaW50IHRyYWNrSUQsIENNU2FtcGxlQnVmZmVyUmVmLCBjb25zdCBTdHJpbmcmIG1lZGlh
VHlwZSk7CiAKQEAgLTE3Nyw3ICsxNzgsNyBAQCBjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQyBmaW5hbCA6IHB1YmxpYyBTb3VyY2VCdWZmZXJQcml2YXRlIHsKICAgICBSZXRhaW5QdHI8
V2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXI+IG1fZGVsZWdhdGU7CiAgICAgUmV0YWluUHRy
PFdlYkFWU2FtcGxlQnVmZmVyRXJyb3JMaXN0ZW5lcj4gbV9lcnJvckxpc3RlbmVyOwogICAgIFJl
dGFpblB0cjxOU0Vycm9yPiBtX2hkY3BFcnJvcjsKLSAgICBPU09iamVjdFB0cjxkaXNwYXRjaF9z
ZW1hcGhvcmVfdD4gbV9oYXNTZXNzaW9uU2VtYXBob3JlOworICAgIEJveDxCaW5hcnlTZW1hcGhv
cmU+IG1faGFzU2Vzc2lvblNlbWFwaG9yZTsKICAgICBPU09iamVjdFB0cjxkaXNwYXRjaF9ncm91
cF90PiBtX2lzQXBwZW5kaW5nR3JvdXA7CiAgICAgUmVmUHRyPFdlYkNvcmVEZWNvbXByZXNzaW9u
U2Vzc2lvbj4gbV9kZWNvbXByZXNzaW9uU2Vzc2lvbjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQppbmRleCA1NGNmYjhlYWI3
MzNlMmU1M2Y0OTNiMjg2NjYwNTdkNjA0YzI1Mjk5Li43MzI1ZDc3N2M4MWEwNmU2ZTZkMDM2NmNi
OWU0NTBiYjgzOWQxNWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQpAQCAtNTUsNiArNTUsNyBAQAogI2ltcG9ydCA8d3Rm
L0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgog
I2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9TZW1hcGhvcmUuaD4KICNp
bXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8d3RmL1dlYWtQdHIuaD4KICNpbXBv
cnQgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgpAQCAtMTA5LDExICsxMTAsMTEgQEAgQGVuZAog
CiBAaW50ZXJmYWNlIFdlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyIDogTlNPYmplY3Q8QVZT
dHJlYW1EYXRhUGFyc2VyT3V0cHV0SGFuZGxpbmc+IHsKICAgICBXZWFrUHRyPFdlYkNvcmU6OlNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDPiBfcGFyZW50OwotICAgIE9TT2JqZWN0UHRyPGRpc3Bh
dGNoX3NlbWFwaG9yZV90PiBfYWJvcnRTZW1hcGhvcmU7CisgICAgQm94PFNlbWFwaG9yZT4gX2Fi
b3J0U2VtYXBob3JlOwogICAgIEFWU3RyZWFtRGF0YVBhcnNlciogX3BhcnNlcjsKIH0KIEBwcm9w
ZXJ0eSAoYXNzaWduKSBXZWFrUHRyPFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
PiBwYXJlbnQ7Ci1AcHJvcGVydHkgKGFzc2lnbikgT1NPYmplY3RQdHI8ZGlzcGF0Y2hfc2VtYXBo
b3JlX3Q+IGFib3J0U2VtYXBob3JlOworQHByb3BlcnR5IChhc3NpZ24pIEJveDxTZW1hcGhvcmU+
IGFib3J0U2VtYXBob3JlOwogLSAoaWQpaW5pdFdpdGhQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNl
ciopcGFyc2VyIHBhcmVudDooV2Vha1B0cjxXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQz4pcGFyZW50OwogQGVuZAogCkBAIC0yMDcsMTkgKzIwOCwxOSBAQCAtICh2b2lkKXN0cmVh
bURhdGFQYXJzZXJXaWxsUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRh
OihBVlN0cmVhbQogCiAgICAgLy8gV2UgbXVzdCBjYWxsIHN5bmNocm9ub3VzbHkgdG8gdGhlIG1h
aW4gdGhyZWFkLCBhcyB0aGUgQVZTdHJlYW1TZXNzaW9uIG11c3QgYmUgYXNzb2NpYXRlZAogICAg
IC8vIHdpdGggdGhlIHN0cmVhbURhdGFQYXJzZXIgYmVmb3JlIHRoZSBkZWxlZ2F0ZSBtZXRob2Qg
cmV0dXJucy4KLSAgICBPU09iamVjdFB0cjxkaXNwYXRjaF9zZW1hcGhvcmVfdD4gcmVzcG9uZGVk
U2VtYXBob3JlID0gYWRvcHRPU09iamVjdChkaXNwYXRjaF9zZW1hcGhvcmVfY3JlYXRlKDApKTsK
KyAgICBCb3g8QmluYXJ5U2VtYXBob3JlPiByZXNwb25kZWRTZW1hcGhvcmUgPSBCb3g8QmluYXJ5
U2VtYXBob3JlPjo6Y3JlYXRlKCk7CiAgICAgY2FsbE9uTWFpblRocmVhZChbcGFyZW50ID0gX3Bh
cmVudCwgdHJhY2tJRCwgcmVzcG9uZGVkU2VtYXBob3JlXSgpIHsKICAgICAgICAgaWYgKHBhcmVu
dCkKICAgICAgICAgICAgIHBhcmVudC0+d2lsbFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRp
YWxpemF0aW9uRGF0YUZvclRyYWNrSUQodHJhY2tJRCk7Ci0gICAgICAgIGRpc3BhdGNoX3NlbWFw
aG9yZV9zaWduYWwocmVzcG9uZGVkU2VtYXBob3JlLmdldCgpKTsKKyAgICAgICAgcmVzcG9uZGVk
U2VtYXBob3JlLT5zaWduYWwoKTsKICAgICB9KTsKIAogICAgIHdoaWxlICh0cnVlKSB7Ci0gICAg
ICAgIGlmICghZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQocmVzcG9uZGVkU2VtYXBob3JlLmdldCgp
LCBkaXNwYXRjaF90aW1lKERJU1BBVENIX1RJTUVfTk9XLCBOU0VDX1BFUl9NU0VDICogMTAwKSkp
CisgICAgICAgIGlmIChyZXNwb25kZWRTZW1hcGhvcmUtPndhaXRGb3IoMTAwX21zKSkKICAgICAg
ICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAoIWRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KF9h
Ym9ydFNlbWFwaG9yZS5nZXQoKSwgZGlzcGF0Y2hfdGltZShESVNQQVRDSF9USU1FX05PVywgTlNF
Q19QRVJfTVNFQyAqIDEwMCkpKSB7Ci0gICAgICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2ln
bmFsKF9hYm9ydFNlbWFwaG9yZS5nZXQoKSk7CisgICAgICAgIGlmIChfYWJvcnRTZW1hcGhvcmUt
PndhaXRGb3IoMTAwX21zKSkgeworICAgICAgICAgICAgX2Fib3J0U2VtYXBob3JlLT5zaWduYWwo
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTIyOSwxOCArMjMw
LDE4IEBAIC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3Ry
ZWFtRGF0YVBhcnNlciBkaWRQcm92aWRlQ29udGVuCiB7CiAgICAgQVNTRVJUX1VOVVNFRChzdHJl
YW1EYXRhUGFyc2VyLCBzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOwogCi0gICAgT1NPYmpl
Y3RQdHI8ZGlzcGF0Y2hfc2VtYXBob3JlX3Q+IGhhc1Nlc3Npb25TZW1hcGhvcmUgPSBhZG9wdE9T
T2JqZWN0KGRpc3BhdGNoX3NlbWFwaG9yZV9jcmVhdGUoMCkpOworICAgIEJveDxCaW5hcnlTZW1h
cGhvcmU+IGhhc1Nlc3Npb25TZW1hcGhvcmUgPSBCb3g8QmluYXJ5U2VtYXBob3JlPjo6Y3JlYXRl
KCk7CiAgICAgY2FsbE9uTWFpblRocmVhZChbcGFyZW50ID0gX3BhcmVudCwgcHJvdGVjdGVkSW5p
dERhdGEgPSBSZXRhaW5QdHI8TlNEYXRhPihpbml0RGF0YSksIHRyYWNrSUQsIGhhc1Nlc3Npb25T
ZW1hcGhvcmVdIHsKICAgICAgICAgaWYgKHBhcmVudCkKICAgICAgICAgICAgIHBhcmVudC0+ZGlk
UHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRChwcm90
ZWN0ZWRJbml0RGF0YS5nZXQoKSwgdHJhY2tJRCwgaGFzU2Vzc2lvblNlbWFwaG9yZSk7CiAgICAg
fSk7CiAKICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBpZiAoIWRpc3BhdGNoX3NlbWFwaG9y
ZV93YWl0KGhhc1Nlc3Npb25TZW1hcGhvcmUuZ2V0KCksIGRpc3BhdGNoX3RpbWUoRElTUEFUQ0hf
VElNRV9OT1csIE5TRUNfUEVSX01TRUMgKiAxMDApKSkKKyAgICAgICAgaWYgKGhhc1Nlc3Npb25T
ZW1hcGhvcmUtPndhaXRGb3IoMTAwX21zKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAg
ICBpZiAoIWRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KF9hYm9ydFNlbWFwaG9yZS5nZXQoKSwgZGlz
cGF0Y2hfdGltZShESVNQQVRDSF9USU1FX05PVywgTlNFQ19QRVJfTVNFQyAqIDEwMCkpKSB7Ci0g
ICAgICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKF9hYm9ydFNlbWFwaG9yZS5nZXQo
KSk7CisgICAgICAgIGlmIChfYWJvcnRTZW1hcGhvcmUtPndhaXRGb3IoMTAwX21zKSkgeworICAg
ICAgICAgICAgX2Fib3J0U2VtYXBob3JlLT5zaWduYWwoKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogICAgIH0KQEAgLTUwOSw3ICs1MTAsNyBAQCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoTWVkaWFTb3VyY2VQcml2YXRlQVZG
T2JqQwogICAgICwgbV9tZWRpYVNvdXJjZShwYXJlbnQpCiB7CiAgICAgQ01Ob3RpZmljYXRpb25D
ZW50ZXJBZGRMaXN0ZW5lcihDTU5vdGlmaWNhdGlvbkNlbnRlckdldERlZmF1bHRMb2NhbENlbnRl
cigpLCB0aGlzLCBidWZmZXJXYXNDb25zdW1lZENhbGxiYWNrLCBrQ01TYW1wbGVCdWZmZXJDb25z
dW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCwgbnVsbHB0ciwgMCk7Ci0gICAgbV9kZWxl
Z2F0ZS5nZXQoKS5hYm9ydFNlbWFwaG9yZSA9IGFkb3B0T1NPYmplY3QoZGlzcGF0Y2hfc2VtYXBo
b3JlX2NyZWF0ZSgwKSk7CisgICAgbV9kZWxlZ2F0ZS5nZXQoKS5hYm9ydFNlbWFwaG9yZSA9IEJv
eDxTZW1hcGhvcmU+OjpjcmVhdGUoMCk7CiB9CiAKIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
Ojp+U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoKQpAQCAtNTIxLDcgKzUyMiw3IEBAIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp+U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoKQogICAg
IENNTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlTGlzdGVuZXIoQ01Ob3RpZmljYXRpb25DZW50ZXJH
ZXREZWZhdWx0TG9jYWxDZW50ZXIoKSwgdGhpcywgYnVmZmVyV2FzQ29uc3VtZWRDYWxsYmFjaywg
a0NNU2FtcGxlQnVmZmVyQ29uc3VtZXJOb3RpZmljYXRpb25fQnVmZmVyQ29uc3VtZWQsIG51bGxw
dHIpOwogCiAgICAgaWYgKG1faGFzU2Vzc2lvblNlbWFwaG9yZSkKLSAgICAgICAgZGlzcGF0Y2hf
c2VtYXBob3JlX3NpZ25hbChtX2hhc1Nlc3Npb25TZW1hcGhvcmUuZ2V0KCkpOworICAgICAgICBt
X2hhc1Nlc3Npb25TZW1hcGhvcmUtPnNpZ25hbCgpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpkaWRQYXJzZVN0cmVhbURhdGFBc0Fzc2V0KEFWQXNzZXQqIGFzc2V0KQpA
QCAtNjUxLDcgKzY1Miw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OndpbGxQ
cm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGCiAjZW5kaWYKIH0KIAot
dm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1
ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRChOU0RhdGEqIGluaXREYXRhLCBpbnQgdHJh
Y2tJRCwgT1NPYmplY3RQdHI8ZGlzcGF0Y2hfc2VtYXBob3JlX3Q+IGhhc1Nlc3Npb25TZW1hcGhv
cmUpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlQ29udGVudEtl
eVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKE5TRGF0YSogaW5pdERhdGEsIGlu
dCB0cmFja0lELCBCb3g8QmluYXJ5U2VtYXBob3JlPiBoYXNTZXNzaW9uU2VtYXBob3JlKQogewog
ICAgIGlmICghbV9tZWRpYVNvdXJjZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNjY0LDEwICs2NjUs
MTAgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUHJvdmlkZUNvbnRlbnRL
ZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm8KICAgICBtX21lZGlhU291cmNlLT5zb3VyY2VC
dWZmZXJLZXlOZWVkZWQodGhpcywgaW5pdERhdGFBcnJheS5nZXQoKSk7CiAgICAgaWYgKGF1dG8g
c2Vzc2lvbiA9IG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5jZG1TZXNzaW9uKCkpIHsKICAgICAg
ICAgc2Vzc2lvbi0+YWRkUGFyc2VyKG1fcGFyc2VyLmdldCgpKTsKLSAgICAgICAgZGlzcGF0Y2hf
c2VtYXBob3JlX3NpZ25hbChoYXNTZXNzaW9uU2VtYXBob3JlLmdldCgpKTsKKyAgICAgICAgaGFz
U2Vzc2lvblNlbWFwaG9yZS0+c2lnbmFsKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKG1f
aGFzU2Vzc2lvblNlbWFwaG9yZSkKLSAgICAgICAgICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWdu
YWwobV9oYXNTZXNzaW9uU2VtYXBob3JlLmdldCgpKTsKKyAgICAgICAgICAgIG1faGFzU2Vzc2lv
blNlbWFwaG9yZS0+c2lnbmFsKCk7CiAgICAgICAgIG1faGFzU2Vzc2lvblNlbWFwaG9yZSA9IGhh
c1Nlc3Npb25TZW1hcGhvcmU7CiAgICAgfQogI2VuZGlmCkBAIC03NDIsMTIgKzc0MywxMiBAQCB2
b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjphYm9ydCgpCiAgICAgLy8gd2VyZSBhc2tl
ZCB0byBhYm9ydCwgYW5kIHRoYXQgY2FuY2VscyBhbGwgb3V0c3RhbmRpbmcgYXBwZW5kIG9wZXJh
dGlvbnMuIFdpdGhvdXQgY2FuY2VsbGluZyB0aGlzCiAgICAgLy8gc2VtYXBob3JlLCB0aGUgbV9p
c0FwcGVuZGluZ0dyb3VwIHdhaXQgb3BlcmF0aW9uIHdpbGwgZGVhZGxvY2suCiAgICAgaWYgKG1f
aGFzU2Vzc2lvblNlbWFwaG9yZSkKLSAgICAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbCht
X2hhc1Nlc3Npb25TZW1hcGhvcmUuZ2V0KCkpOwotICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWdu
YWwobV9kZWxlZ2F0ZS5nZXQoKS5hYm9ydFNlbWFwaG9yZS5nZXQoKSk7CisgICAgICAgIG1faGFz
U2Vzc2lvblNlbWFwaG9yZS0+c2lnbmFsKCk7CisgICAgbV9kZWxlZ2F0ZS5nZXQoKS5hYm9ydFNl
bWFwaG9yZS0+c2lnbmFsKCk7CiAgICAgZGlzcGF0Y2hfZ3JvdXBfd2FpdChtX2lzQXBwZW5kaW5n
R3JvdXAuZ2V0KCksIERJU1BBVENIX1RJTUVfRk9SRVZFUik7CiAgICAgbV9hcHBlbmRXZWFrRmFj
dG9yeS5yZXZva2VBbGwoKTsKICAgICBtX2RlbGVnYXRlLmdldCgpLnBhcmVudCA9IG1fYXBwZW5k
V2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7Ci0gICAgbV9kZWxlZ2F0ZS5nZXQoKS5h
Ym9ydFNlbWFwaG9yZSA9IGFkb3B0T1NPYmplY3QoZGlzcGF0Y2hfc2VtYXBob3JlX2NyZWF0ZSgw
KSk7CisgICAgbV9kZWxlZ2F0ZS5nZXQoKS5hYm9ydFNlbWFwaG9yZSA9IEJveDxTZW1hcGhvcmU+
OjpjcmVhdGUoMCk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnJlc2V0
UGFyc2VyU3RhdGUoKQpAQCAtODk5LDcgKzkwMCw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6OnNldENETVNlc3Npb24oQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQyogc2Vz
CiAgICAgaWYgKG1fc2Vzc2lvbikgewogICAgICAgICBtX3Nlc3Npb24tPmFkZFNvdXJjZUJ1ZmZl
cih0aGlzKTsKICAgICAgICAgaWYgKG1faGFzU2Vzc2lvblNlbWFwaG9yZSkgewotICAgICAgICAg
ICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbChtX2hhc1Nlc3Npb25TZW1hcGhvcmUuZ2V0KCkp
OworICAgICAgICAgICAgbV9oYXNTZXNzaW9uU2VtYXBob3JlLT5zaWduYWwoKTsKICAgICAgICAg
ICAgIG1faGFzU2Vzc2lvblNlbWFwaG9yZSA9IG51bGxwdHI7CiAgICAgICAgIH0KIApAQCAtOTM0
LDcgKzkzNSw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnNldENETUluc3Rh
bmNlKENETUluc3RhbmNlKiBpbnN0YW5jZSkKICAgICBpZiAobV9jZG1JbnN0YW5jZSkgewogICAg
ICAgICBbbV9jZG1JbnN0YW5jZS0+Y29udGVudEtleVNlc3Npb24oKSBhZGRDb250ZW50S2V5UmVj
aXBpZW50Om1fcGFyc2VyLmdldCgpXTsKICAgICAgICAgaWYgKG1faGFzU2Vzc2lvblNlbWFwaG9y
ZSkgewotICAgICAgICAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbChtX2hhc1Nlc3Npb25T
ZW1hcGhvcmUuZ2V0KCkpOworICAgICAgICAgICAgbV9oYXNTZXNzaW9uU2VtYXBob3JlLT5zaWdu
YWwoKTsKICAgICAgICAgICAgIG1faGFzU2Vzc2lvblNlbWFwaG9yZSA9IG51bGxwdHI7CiAgICAg
ICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5oCmluZGV4
IGYxOTZjMjAxNmNjZjczMGE3MTAxMmI3MjJiYWQ5ZDVmZDRhNzVlODMuLjgzN2Q2MTJlZmY5MjRm
YTNlMTQzYTcwYmZjNmYyZDYzZjU1NTRlODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNz
aW9uU2Vzc2lvbi5oCkBAIC0xMTcsNyArMTE3LDYgQEAgY2xhc3MgV2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdlYkNvcmVEZWNvbXByZXMK
ICAgICBSZXRhaW5QdHI8Q01UaW1lYmFzZVJlZj4gbV90aW1lYmFzZTsKICAgICBPU09iamVjdFB0
cjxkaXNwYXRjaF9xdWV1ZV90PiBtX2RlY29tcHJlc3Npb25RdWV1ZTsKICAgICBPU09iamVjdFB0
cjxkaXNwYXRjaF9xdWV1ZV90PiBtX2VucXVlaW5nUXVldWU7Ci0gICAgT1NPYmplY3RQdHI8ZGlz
cGF0Y2hfc2VtYXBob3JlX3Q+IG1faGFzQXZhaWxhYmxlSW1hZ2VTZW1hcGhvcmU7CiAgICAgT1NP
YmplY3RQdHI8ZGlzcGF0Y2hfc291cmNlX3Q+IG1fdGltZXJTb3VyY2U7CiAgICAgc3RkOjpmdW5j
dGlvbjx2b2lkKCk+IG1fbm90aWZpY2F0aW9uQ2FsbGJhY2s7CiAgICAgc3RkOjpmdW5jdGlvbjx2
b2lkKCk+IG1faGFzQXZhaWxhYmxlRnJhbWVDYWxsYmFjazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lv
bi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbi5tbQppbmRleCAzYWJjYmRjZDhmMjkxYWM5YzVlNjBhYzY0ZmZmMjk0
NWUxZjkxZWVmLi42NGY2ZGZlY2IwMTY3MTcxNjYwYjgzMzBhMGEyNzY2ZjdjZTdjOGMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tCkBAIC01Myw3ICs1Myw2IEBA
IFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9u
KE1vZGUgbW9kZSkKICAgICA6IG1fbW9kZShtb2RlKQogICAgICwgbV9kZWNvbXByZXNzaW9uUXVl
dWUoYWRvcHRPU09iamVjdChkaXNwYXRjaF9xdWV1ZV9jcmVhdGUoIldlYkNvcmVEZWNvbXByZXNz
aW9uU2Vzc2lvbiBEZWNvbXByZXNzaW9uIFF1ZXVlIiwgRElTUEFUQ0hfUVVFVUVfU0VSSUFMKSkp
CiAgICAgLCBtX2VucXVlaW5nUXVldWUoYWRvcHRPU09iamVjdChkaXNwYXRjaF9xdWV1ZV9jcmVh
dGUoIldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbiBFbnF1ZXVlaW5nIFF1ZXVlIiwgRElTUEFU
Q0hfUVVFVUVfU0VSSUFMKSkpCi0gICAgLCBtX2hhc0F2YWlsYWJsZUltYWdlU2VtYXBob3JlKGFk
b3B0T1NPYmplY3QoZGlzcGF0Y2hfc2VtYXBob3JlX2NyZWF0ZSgwKSkpCiB7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVD
Rk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFu
ZGxlQ0ZOZXQuY3BwCmluZGV4IDk3ODY0ZmU1YmY5ZTkyODM4Y2Q3MThlOTM1MWUxNjgxODQ4NjJl
N2MuLmU3MTFhNjcxODA0MDU5NGVhZTY3NmMyZTk1NjUxMjAxZDZmZmUxNTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRs
ZUNGTmV0LmNwcApAQCAtNTg1LDcgKzU4NSw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRm
b3JtTG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4CiAg
ICAgICAgICAgICB3aGlsZSAodHJ1ZSkKICAgICAgICAgICAgICAgICBDRlJ1bkxvb3BSdW5Jbk1v
ZGUoa0NGUnVuTG9vcERlZmF1bHRNb2RlLCAxRTMwLCB0cnVlKTsKICAgICAgICAgfSk7Ci0gICAg
ICAgIHNlbS53YWl0KFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZShXYWxsVGltZTo6aW5maW5pdHko
KSkpOworICAgICAgICBzZW0ud2FpdCgpOwogICAgIH0KICAgICBDRlVSTENvbm5lY3Rpb25TY2hl
ZHVsZVdpdGhSdW5Mb29wKGhhbmRsZS0+Y29ubmVjdGlvbigpLCBydW5Mb29wLCBrQ0ZSdW5Mb29w
RGVmYXVsdE1vZGUpOwogICAgIENGVVJMQ29ubmVjdGlvblNjaGVkdWxlRG93bmxvYWRXaXRoUnVu
TG9vcChoYW5kbGUtPmNvbm5lY3Rpb24oKSwgcnVuTG9vcCwga0NGUnVuTG9vcERlZmF1bHRNb2Rl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3Vy
Y2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25u
ZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwCmluZGV4IDk1ZTdmZmQ1Nzg2ZjBi
YWEyNWE0OWIyMWQyOTE5NmMzOGJiY2Q1ODQuLmRhZDkwMTBmOTU3MGViYzU2NzYzMzU0M2ZkMWZj
NTAyZjg0NjliOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhh
bmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcApAQCAtMTE5
LDcgKzExOSw3IEBAIHN0YXRpYyBDRlJ1bkxvb3BSZWYgZ2V0UnVuTG9vcCgpCiAgICAgICAgICAg
ICB3aGlsZSAodHJ1ZSkKICAgICAgICAgICAgICAgICBDRlJ1bkxvb3BSdW5Jbk1vZGUoa0NGUnVu
TG9vcERlZmF1bHRNb2RlLCAxRTMwLCB0cnVlKTsKICAgICAgICAgfSk7Ci0gICAgICAgIHNlbS53
YWl0KFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZShXYWxsVGltZTo6aW5maW5pdHkoKSkpOworICAg
ICAgICBzZW0ud2FpdCgpOwogICAgIH0KIAogICAgIHJldHVybiBydW5Mb29wOwpAQCAtMTcyLDcg
KzE3Miw3IEBAIENGVVJMUmVxdWVzdFJlZiBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRl
bGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlOjp3aWxsU2VuCiAgICAgICAgIG1fbWVzc2FnZVF1ZXVl
LT5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxGdW5jdGlvbjx2b2lkKCk+PihXVEZNb3ZlKHdvcmsp
KSk7CiAgICAgZWxzZQogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUod29yaykpOwot
ICAgIG1fc2VtYXBob3JlLndhaXQoVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlKFdhbGxUaW1lOjpp
bmZpbml0eSgpKSk7CisgICAgbV9zZW1hcGhvcmUud2FpdCgpOwogCiAgICAgcmV0dXJuIG1fcmVx
dWVzdFJlc3VsdC5sZWFrUmVmKCk7CiB9CkBAIC0yMTAsNyArMjEwLDcgQEAgdm9pZCBSZXNvdXJj
ZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpkaWRSZWNl
aXZlUmVzcG9uc2UKICAgICAgICAgbV9tZXNzYWdlUXVldWUtPmFwcGVuZChzdGQ6Om1ha2VfdW5p
cXVlPEZ1bmN0aW9uPHZvaWQoKT4+KFdURk1vdmUod29yaykpKTsKICAgICBlbHNlCiAgICAgICAg
IGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZSh3b3JrKSk7Ci0gICAgbV9zZW1hcGhvcmUud2FpdChU
aW1lV2l0aER5bmFtaWNDbG9ja1R5cGUoV2FsbFRpbWU6OmluZmluaXR5KCkpKTsKKyAgICBtX3Nl
bWFwaG9yZS53YWl0KCk7CiB9CiAKIHZvaWQgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25E
ZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6ZGlkUmVjZWl2ZURhdGEoQ0ZEYXRhUmVmIGRhdGEs
IENGSW5kZXggb3JpZ2luYWxMZW5ndGgpCkBAIC0zMTQsNyArMzE0LDcgQEAgQ0ZDYWNoZWRVUkxS
ZXNwb25zZVJlZiBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJh
dGlvblF1ZXVlOjoKICAgICAgICAgbV9tZXNzYWdlUXVldWUtPmFwcGVuZChzdGQ6Om1ha2VfdW5p
cXVlPEZ1bmN0aW9uPHZvaWQoKT4+KFdURk1vdmUod29yaykpKTsKICAgICBlbHNlCiAgICAgICAg
IGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZSh3b3JrKSk7Ci0gICAgbV9zZW1hcGhvcmUud2FpdChU
aW1lV2l0aER5bmFtaWNDbG9ja1R5cGUoV2FsbFRpbWU6OmluZmluaXR5KCkpKTsKKyAgICBtX3Nl
bWFwaG9yZS53YWl0KCk7CiAgICAgcmV0dXJuIG1fY2FjaGVkUmVzcG9uc2VSZXN1bHQubGVha1Jl
ZigpOwogfQogCkBAIC0zODMsNyArMzgzLDcgQEAgQm9vbGVhbiBSZXNvdXJjZUhhbmRsZUNGVVJM
Q29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpjYW5SZXNwb25kVG9Qcm8KICAg
ICAgICAgbV9tZXNzYWdlUXVldWUtPmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEZ1bmN0aW9uPHZv
aWQoKT4+KFdURk1vdmUod29yaykpKTsKICAgICBlbHNlCiAgICAgICAgIGNhbGxPbk1haW5UaHJl
YWQoV1RGTW92ZSh3b3JrKSk7Ci0gICAgbV9zZW1hcGhvcmUud2FpdChUaW1lV2l0aER5bmFtaWND
bG9ja1R5cGUoV2FsbFRpbWU6OmluZmluaXR5KCkpKTsKKyAgICBtX3NlbWFwaG9yZS53YWl0KCk7
CiAgICAgcmV0dXJuIG1fYm9vbFJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25R
dWV1ZURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJD
b3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUuaAppbmRleCA0ODM1NDI2
NGU2OGEyZTA5NWI4N2Q1M2Q5M2U1YTllMjA2NDljYzQ1Li4zZWRhMjdlYThhMjE3YzYyMGY5YTNl
ZGE3NWIwZWY2ODBkODE0MjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3Vy
Y2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUuaApAQCAtMzEsNiArMzEsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9NZXNzYWdlUXVldWUuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1NjaGVkdWxlUGFpci5oPgorI2luY2x1ZGUgPHd0Zi90aHJlYWRzL0JpbmFy
eVNlbWFwaG9yZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZXNvdXJjZUhhbmRs
ZTsKQEAgLTQwLDcgKzQxLDcgQEAgY2xhc3MgUmVzb3VyY2VIYW5kbGU7CiAgICAgV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGUqIG1faGFuZGxlOwogCiAgICAgLy8gU3luY2hyb25vdXMgZGVsZWdhdGVz
IG9uIG9wZXJhdGlvbiBxdWV1ZSB3YWl0IHVudGlsIG1haW4gdGhyZWFkIHNlbmRzIGFuIGFzeW5j
aHJvbm91cyByZXNwb25zZS4KLSAgICBkaXNwYXRjaF9zZW1hcGhvcmVfdCBtX3NlbWFwaG9yZTsK
KyAgICBCaW5hcnlTZW1hcGhvcmUgbV9zZW1hcGhvcmU7CiAgICAgTWVzc2FnZVF1ZXVlPEZ1bmN0
aW9uPHZvaWQoKT4+KiBtX21lc3NhZ2VRdWV1ZTsKICAgICBSZXRhaW5QdHI8TlNVUkxSZXF1ZXN0
PiBtX3JlcXVlc3RSZXN1bHQ7CiAgICAgTG9jayBtX211dGV4OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVy
YXRpb25RdWV1ZURlbGVnYXRlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCmluZGV4
IGE1YWIzNjc1NDYyZGM2NjgwYmI5OTQ1MzE2NjgwODA4NjQyMzQ0MGIuLmRjOThjYWU5NmYzNzE3
ZjgyNjNjMjljNTk5Njg3YzY3MTU5Mjk5MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVE
ZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJD
b3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0KQEAgLTg5LDcgKzg5
LDYgQEAgLSAoaWQpaW5pdFdpdGhIYW5kbGU6KFJlc291cmNlSGFuZGxlKiloYW5kbGUgbWVzc2Fn
ZVF1ZXVlOihNZXNzYWdlUXVldWU8RnVuY3Rpb24KICAgICAgICAgaWYgKGF1dG8qIHBhaXJzID0g
bV9oYW5kbGUtPmNvbnRleHQoKS0+c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkpCiAgICAgICAgICAg
ICBtX3NjaGVkdWxlZFBhaXJzID0gKnBhaXJzOwogICAgIH0KLSAgICBtX3NlbWFwaG9yZSA9IGRp
c3BhdGNoX3NlbWFwaG9yZV9jcmVhdGUoMCk7CiAgICAgbV9tZXNzYWdlUXVldWUgPSBtZXNzYWdl
UXVldWU7CiAKICAgICByZXR1cm4gc2VsZjsKQEAgLTEwNSwxMiArMTA0LDExIEBAIC0gKHZvaWQp
ZGV0YWNoSGFuZGxlCiAgICAgbV9yZXF1ZXN0UmVzdWx0ID0gbnVsbHB0cjsKICAgICBtX2NhY2hl
ZFJlc3BvbnNlUmVzdWx0ID0gbnVsbHB0cjsKICAgICBtX2Jvb2xSZXN1bHQgPSBOTzsKLSAgICBk
aXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKG1fc2VtYXBob3JlKTsgLy8gT0sgdG8gc2lnbmFsIGV2
ZW4gaWYgd2UgYXJlIG5vdCB3YWl0aW5nLgorICAgIG1fc2VtYXBob3JlLnNpZ25hbCgpOyAvLyBP
SyB0byBzaWduYWwgZXZlbiBpZiB3ZSBhcmUgbm90IHdhaXRpbmcuCiB9CiAKIC0gKHZvaWQpZGVh
bGxvYwogewotICAgIGRpc3BhdGNoX3JlbGVhc2UobV9zZW1hcGhvcmUpOwogICAgIFtzdXBlciBk
ZWFsbG9jXTsKIH0KIApAQCAtMTM2LDE4ICsxMzQsMTggQEAgLSAoTlNVUkxSZXF1ZXN0ICopY29u
bmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiB3aWxsU2VuZFJlcXVlc3Q6KE5T
VVIKICAgICBhdXRvIHdvcmsgPSBbc2VsZiwgcHJvdGVjdGVkU2VsZiwgbmV3UmVxdWVzdCA9IHJl
dGFpblB0cihuZXdSZXF1ZXN0KSwgcmVkaXJlY3RSZXNwb25zZSA9IHJldGFpblB0cihyZWRpcmVj
dFJlc3BvbnNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghbV9oYW5kbGUpIHsKICAgICAg
ICAgICAgIG1fcmVxdWVzdFJlc3VsdCA9IG51bGxwdHI7Ci0gICAgICAgICAgICBkaXNwYXRjaF9z
ZW1hcGhvcmVfc2lnbmFsKG1fc2VtYXBob3JlKTsKKyAgICAgICAgICAgIG1fc2VtYXBob3JlLnNp
Z25hbCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgbV9oYW5k
bGUtPndpbGxTZW5kUmVxdWVzdChuZXdSZXF1ZXN0LmdldCgpLCByZWRpcmVjdFJlc3BvbnNlLmdl
dCgpLCBbc2VsZiwgcHJvdGVjdGVkU2VsZiA9IFdURk1vdmUocHJvdGVjdGVkU2VsZildKFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QpIHsKICAgICAgICAgICAgIG1fcmVxdWVzdFJlc3VsdCA9IHJl
cXVlc3QubnNVUkxSZXF1ZXN0KFVwZGF0ZUhUVFBCb2R5KTsKLSAgICAgICAgICAgIGRpc3BhdGNo
X3NlbWFwaG9yZV9zaWduYWwobV9zZW1hcGhvcmUpOworICAgICAgICAgICAgbV9zZW1hcGhvcmUu
c2lnbmFsKCk7CiAgICAgICAgIH0pOwogICAgIH07CiAKICAgICBbc2VsZiBjYWxsRnVuY3Rpb25P
bk1haW5UaHJlYWQ6V1RGTW92ZSh3b3JrKV07Ci0gICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQo
bV9zZW1hcGhvcmUsIERJU1BBVENIX1RJTUVfRk9SRVZFUik7CisgICAgbV9zZW1hcGhvcmUud2Fp
dCgpOwogCiAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgIGlmICghbV9oYW5kbGUp
CkBAIC0xOTEsMTcgKzE4OSwxNyBAQCAtIChCT09MKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlv
biAqKWNvbm5lY3Rpb24gY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3RpbwogICAgIGF1dG8g
d29yayA9IFtzZWxmLCBwcm90ZWN0ZWRTZWxmLCBwcm90ZWN0aW9uU3BhY2UgPSByZXRhaW5QdHIo
cHJvdGVjdGlvblNwYWNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghbV9oYW5kbGUpIHsK
ICAgICAgICAgICAgIG1fYm9vbFJlc3VsdCA9IE5POwotICAgICAgICAgICAgZGlzcGF0Y2hfc2Vt
YXBob3JlX3NpZ25hbChtX3NlbWFwaG9yZSk7CisgICAgICAgICAgICBtX3NlbWFwaG9yZS5zaWdu
YWwoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBtX2hhbmRsZS0+
Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShQcm90ZWN0aW9uU3BhY2UocHJv
dGVjdGlvblNwYWNlLmdldCgpKSwgW3NlbGYsIHByb3RlY3RlZFNlbGYgPSBXVEZNb3ZlKHByb3Rl
Y3RlZFNlbGYpXSAoYm9vbCByZXN1bHQpIG11dGFibGUgewogICAgICAgICAgICAgbV9ib29sUmVz
dWx0ID0gcmVzdWx0OwotICAgICAgICAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbChtX3Nl
bWFwaG9yZSk7CisgICAgICAgICAgICBtX3NlbWFwaG9yZS5zaWduYWwoKTsKICAgICAgICAgfSk7
CiAgICAgfTsKIAogICAgIFtzZWxmIGNhbGxGdW5jdGlvbk9uTWFpblRocmVhZDpXVEZNb3ZlKHdv
cmspXTsKLSAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2FpdChtX3NlbWFwaG9yZSwgRElTUEFUQ0hf
VElNRV9GT1JFVkVSKTsKKyAgICBtX3NlbWFwaG9yZS53YWl0KCk7CiAKICAgICBMb2NrSG9sZGVy
IGxvY2sobV9tdXRleCk7CiAgICAgaWYgKCFtX2hhbmRsZSkKQEAgLTIyNiw3ICsyMjQsNyBAQCAt
ICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2
ZVJlc3BvbnNlOihOU1VSTFJlc3BvbgogICAgIGF1dG8gd29yayA9IFtzZWxmLCBwcm90ZWN0ZWRT
ZWxmLCByID0gcmV0YWluUHRyKHIpLCBjb25uZWN0aW9uID0gcmV0YWluUHRyKGNvbm5lY3Rpb24p
XSAoKSBtdXRhYmxlIHsKICAgICAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBwcm90ZWN0ZWRI
YW5kbGUobV9oYW5kbGUpOwogICAgICAgICBpZiAoIW1faGFuZGxlIHx8ICFtX2hhbmRsZS0+Y2xp
ZW50KCkpIHsKLSAgICAgICAgICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWduYWwobV9zZW1hcGhv
cmUpOworICAgICAgICAgICAgbV9zZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KIApAQCAtMjQ1LDEyICsyNDMsMTIgQEAgLSAodm9pZCljb25uZWN0aW9u
OihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIGRpZFJlY2VpdmVSZXNwb25zZTooTlNVUkxS
ZXNwb24KICAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmdldENvbm5lY3Rpb25UaW1pbmdEYXRhKGNv
bm5lY3Rpb24uZ2V0KCksIHJlc291cmNlUmVzcG9uc2UuZGVwcmVjYXRlZE5ldHdvcmtMb2FkTWV0
cmljcygpKTsKIAogICAgICAgICBtX2hhbmRsZS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKFdURk1vdmUo
cmVzb3VyY2VSZXNwb25zZSksIFtzZWxmLCBwcm90ZWN0ZWRTZWxmID0gV1RGTW92ZShwcm90ZWN0
ZWRTZWxmKV0gewotICAgICAgICAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbChtX3NlbWFw
aG9yZSk7CisgICAgICAgICAgICBtX3NlbWFwaG9yZS5zaWduYWwoKTsKICAgICAgICAgfSk7CiAg
ICAgfTsKIAogICAgIFtzZWxmIGNhbGxGdW5jdGlvbk9uTWFpblRocmVhZDpXVEZNb3ZlKHdvcmsp
XTsKLSAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2FpdChtX3NlbWFwaG9yZSwgRElTUEFUQ0hfVElN
RV9GT1JFVkVSKTsKKyAgICBtX3NlbWFwaG9yZS53YWl0KCk7CiAKICAgICAvLyBNYWtlIHN1cmUg
d2UgZ2V0IGRlc3Ryb3llZCBvbiB0aGUgbWFpbiB0aHJlYWQuCiAgICAgW3NlbGYgY2FsbEZ1bmN0
aW9uT25NYWluVGhyZWFkOltwcm90ZWN0ZWRTZWxmID0gV1RGTW92ZShwcm90ZWN0ZWRTZWxmKV0g
eyB9XTsKQEAgLTM1MSwxOCArMzQ5LDE4IEBAIC0gKE5TQ2FjaGVkVVJMUmVzcG9uc2UgKiljb25u
ZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIHdpbGxDYWNoZVJlc3BvCiAgICAg
YXV0byB3b3JrID0gW3NlbGYsIHByb3RlY3RlZFNlbGYsIGNhY2hlZFJlc3BvbnNlID0gcmV0YWlu
UHRyKGNhY2hlZFJlc3BvbnNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghbV9oYW5kbGUg
fHwgIW1faGFuZGxlLT5jbGllbnQoKSkgewogICAgICAgICAgICAgbV9jYWNoZWRSZXNwb25zZVJl
c3VsdCA9IG51bGxwdHI7Ci0gICAgICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKG1f
c2VtYXBob3JlKTsKKyAgICAgICAgICAgIG1fc2VtYXBob3JlLnNpZ25hbCgpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgbV9oYW5kbGUtPmNsaWVudCgpLT53aWxs
Q2FjaGVSZXNwb25zZUFzeW5jKG1faGFuZGxlLCBjYWNoZWRSZXNwb25zZS5nZXQoKSwgW3NlbGYs
IHByb3RlY3RlZFNlbGYgPSBXVEZNb3ZlKHByb3RlY3RlZFNlbGYpXSAoTlNDYWNoZWRVUkxSZXNw
b25zZSAqIHJlc3BvbnNlKSBtdXRhYmxlIHsKICAgICAgICAgICAgIG1fY2FjaGVkUmVzcG9uc2VS
ZXN1bHQgPSByZXNwb25zZTsKLSAgICAgICAgICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWduYWwo
bV9zZW1hcGhvcmUpOworICAgICAgICAgICAgbV9zZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAgICAg
IH0pOwogICAgIH07CiAKICAgICBbc2VsZiBjYWxsRnVuY3Rpb25Pbk1haW5UaHJlYWQ6V1RGTW92
ZSh3b3JrKV07Ci0gICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQobV9zZW1hcGhvcmUsIERJU1BB
VENIX1RJTUVfRk9SRVZFUik7CisgICAgbV9zZW1hcGhvcmUud2FpdCgpOwogCiAgICAgTG9ja0hv
bGRlciBsb2NrKG1fbXV0ZXgpOwogICAgIGlmICghbV9oYW5kbGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IDllMjc1NDAzMTVkNmU5NjhkOTIyYjdkNDZi
Yzc2MjI5OTFiODE3ZDMuLjhlNmY5MzU4NDgyNDRhYTZkNDJhNmUxOTZmY2U4MjkzMjFmODM5MTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCkBAIC04Miw3ICs4
Miw3IEBAIGNsYXNzIENvbm5lY3Rpb246OlN5bmNNZXNzYWdlU3RhdGUgewogCiAgICAgYm9vbCB3
YWl0KFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBhYnNvbHV0ZVRpbWUpCiAgICAgewotICAgICAg
ICByZXR1cm4gbV93YWl0Rm9yU3luY1JlcGx5U2VtYXBob3JlLndhaXQoYWJzb2x1dGVUaW1lKTsK
KyAgICAgICAgcmV0dXJuIG1fd2FpdEZvclN5bmNSZXBseVNlbWFwaG9yZS53YWl0VW50aWwoYWJz
b2x1dGVUaW1lKTsKICAgICB9CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhpcyBtZXNzYWdl
IHdpbGwgYmUgaGFuZGxlZCBvbiBhIGNsaWVudCB0aHJlYWQgdGhhdCBpcyBjdXJyZW50bHkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwCmluZGV4IGM5MDM5YjJkZmYyMjk1
ZjE4NmJkNDQzZTJmMzYyNjkwZjNjNDRhY2YuLmM0NmIxMmY3ZDMwODA2ZTIyN2NkYTE4NTI5N2Mw
ZjVmYzEyOTAwZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TZWNJdGVt
U2hpbS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcApA
QCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgPGRsZmNuLmg+CiAjaW5jbHVkZSA8bXV0ZXg+CiAj
aW5jbHVkZSA8d3RmL1Byb2Nlc3NQcml2aWxlZ2UuaD4KKyNpbmNsdWRlIDx3dGYvdGhyZWFkcy9C
aW5hcnlTZW1hcGhvcmUuaD4KIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW5jbHVk
ZSA8Q0ZOZXR3b3JrL0NGVVJMQ29ubmVjdGlvblByaXYuaD4KQEAgLTc3LDE2ICs3OCwxNiBAQCBz
dGF0aWMgc3RkOjpvcHRpb25hbDxTZWNJdGVtUmVzcG9uc2VEYXRhPiBzZW5kU2VjSXRlbVJlcXVl
c3QoU2VjSXRlbVJlcXVlc3REYXRhOgogCiAgICAgc3RkOjpvcHRpb25hbDxTZWNJdGVtUmVzcG9u
c2VEYXRhPiByZXNwb25zZTsKIAotICAgIGF1dG8gc2VtYXBob3JlID0gYWRvcHRPU09iamVjdChk
aXNwYXRjaF9zZW1hcGhvcmVfY3JlYXRlKDApKTsKKyAgICBCaW5hcnlTZW1hcGhvcmUgc2VtYXBo
b3JlOwogCiAgICAgc2hhcmVkUHJvY2Vzcy0+cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2Vu
ZFdpdGhSZXBseShNZXNzYWdlczo6U2VjSXRlbVNoaW1Qcm94eTo6U2VjSXRlbVJlcXVlc3QoU2Vj
SXRlbVJlcXVlc3REYXRhKHJlcXVlc3RUeXBlLCBxdWVyeSwgYXR0cmlidXRlc1RvTWF0Y2gpKSwg
MCwgd29ya1F1ZXVlKCksIFsmcmVzcG9uc2UsICZzZW1hcGhvcmVdKGF1dG8gcmVwbHkpIHsKICAg
ICAgICAgaWYgKHJlcGx5KQogICAgICAgICAgICAgcmVzcG9uc2UgPSBXVEZNb3ZlKHN0ZDo6Z2V0
PDA+KCpyZXBseSkpOwogCi0gICAgICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWduYWwoc2VtYXBo
b3JlLmdldCgpKTsKKyAgICAgICAgc2VtYXBob3JlLnNpZ25hbCgpOwogICAgIH0pOwogCi0gICAg
ZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQoc2VtYXBob3JlLmdldCgpLCBESVNQQVRDSF9USU1FX0ZP
UkVWRVIpOworICAgIHNlbWFwaG9yZS53YWl0KCk7CiAKICAgICByZXR1cm4gcmVzcG9uc2U7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzUGVyc2lzdGVudFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmNwcAppbmRleCBiNjdjYWRlMjVkZmNj
OWJhY2Y1NzljNjZiNTUwN2ZlZjBhY2NiYjdjLi4wYzkxZjIwMjZlOGYxODM0ODVhYzM2MGUyZDI1
OTg1YTM4YWRiNTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZS5jcHAKQEAg
LTMzMiw3ICszMzIsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3Rv
cmFnZTo6ZmluaXNoQWxsUGVuZGluZ1dvcmtTeW5jaHJvbm91c2x5KAogICAgICAgICAgICAgd3Jp
dGVNZW1vcnlTdG9yZVRvRGlzaygpOwogICAgICAgICBzZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAg
fSk7Ci0gICAgc2VtYXBob3JlLndhaXQoV2FsbFRpbWU6OmluZmluaXR5KCkpOworICAgIHNlbWFw
aG9yZS53YWl0KCk7CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRT
dG9yYWdlOjpyZWYoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViU3Rv
cmFnZS9TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJTdG9y
YWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCA3ZjcwMmUxOGViM2E2N2RiZTQ3NmU2OTNhMGY0
MjBkMTNiNGNmNzY5Li5kN2FlNGNlZTViMmM2OTc0MjU2NDlhYjc5ZDAzN2IxYTg0NjNiN2EzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VN
YW5hZ2VyLmNwcApAQCAtODI4LDcgKzgyOCw3IEBAIHZvaWQgU3RvcmFnZU1hbmFnZXI6OmFwcGxp
Y2F0aW9uV2lsbFRlcm1pbmF0ZSgpCiAKICAgICAgICAgc2VtYXBob3JlLnNpZ25hbCgpOwogICAg
IH0pOwotICAgIHNlbWFwaG9yZS53YWl0KFdhbGxUaW1lOjppbmZpbml0eSgpKTsKKyAgICBzZW1h
cGhvcmUud2FpdCgpOwogfQogCiBTdG9yYWdlTWFuYWdlcjo6U3RvcmFnZUFyZWEqIFN0b3JhZ2VN
YW5hZ2VyOjpmaW5kU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50
NjRfdCBzdG9yYWdlTWFwSUQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tCmluZGV4IDgxZTE0MTJkYTM4MGVlYTFk
MjAzY2JiMzZjMzAzMzdkMTAzZDM4ZDcuLmNlZjI1ZTQ4MDlkYjNlODA1Y2VjMGRlYWJkMzJlMjcx
MjZkNjViYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlv
blNoZWV0QXNzaXN0YW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Fj
dGlvblNoZWV0QXNzaXN0YW50Lm1tCkBAIC00Niw2ICs0Niw3IEBACiAjaW1wb3J0IDxXZWJDb3Jl
L1dlYkNvcmVOU1VSTEV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAjaW1w
b3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbXBvcnQgPHd0Zi90aHJlYWRzL0JpbmFyeVNl
bWFwaG9yZS5oPgogCiAjaWYgSEFWRShBUFBfTElOS1MpCiAjaW1wb3J0IDxwYWwvc3BpL2NvY29h
L0xhdW5jaFNlcnZpY2VzU1BJLmg+CkBAIC03MiwxNCArNzMsMTUgQEAgc3RhdGljIGJvb2wgYXBw
bGljYXRpb25IYXNBcHBMaW5rRW50aXRsZW1lbnRzKCkKIAogc3RhdGljIExTQXBwTGluayAqYXBw
TGlua0ZvclVSTChOU1VSTCAqdXJsKQogeworICAgIEJpbmFyeVNlbWFwaG9yZSBzZW1hcGhvcmU7
CiAgICAgX19ibG9jayBMU0FwcExpbmsgKnN5bmNBcHBMaW5rID0gbmlsOworICAgIF9fYmxvY2sg
QmluYXJ5U2VtYXBob3JlKiBzZW1hcGhvcmVQdHIgPSAmc2VtYXBob3JlOwogCi0gICAgZGlzcGF0
Y2hfc2VtYXBob3JlX3Qgc2VtYXBob3JlID0gZGlzcGF0Y2hfc2VtYXBob3JlX2NyZWF0ZSgwKTsK
ICAgICBbTFNBcHBMaW5rIGdldEFwcExpbmtXaXRoVVJMOnVybCBjb21wbGV0aW9uSGFuZGxlcjpe
KExTQXBwTGluayAqYXBwTGluaywgTlNFcnJvciAqZXJyb3IpIHsKICAgICAgICAgc3luY0FwcExp
bmsgPSBbYXBwTGluayByZXRhaW5dOwotICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFs
KHNlbWFwaG9yZSk7CisgICAgICAgIHNlbWFwaG9yZVB0ci0+c2lnbmFsKCk7CiAgICAgfV07Ci0g
ICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQoc2VtYXBob3JlLCBESVNQQVRDSF9USU1FX0ZPUkVW
RVIpOworICAgIHNlbWFwaG9yZS53YWl0KCk7CiAKICAgICByZXR1cm4gW3N5bmNBcHBMaW5rIGF1
dG9yZWxlYXNlXTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCA1MzE2ZjY0NjVjNmE5ZDIyNmE0OGExYjRmYjUzYTFkZTcyNTMxMDBjLi40MWI3
YTU4NWVmNDkxMzI5ZmMwMzNkY2M3ZTRmYWJhZmYwNDcyNmIxIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTgtMDUt
MDQgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW1dU
Rl0gVXNlIFNlbWFwaG9yZSBhbmQgQmluYXJ5U2VtYXBob3JlIGluc3RlYWQgb2YgZGlzcGF0Y2hf
c2VtYXBob3JlX3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4NTMzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRRdWV1ZS5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpUb1VwcGVyQ29udmVydGVyOjpzdG9wUHJvZHVjaW5n
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRvVXBwZXJDb252ZXJ0ZXI6OnN0b3BDb25zdW1p
bmcpOgorCiAyMDE4LTA1LTA0ICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4K
IAogICAgICAgICBEZXByZWNhdGUgbGVnYWN5IFdlYlZpZXcgYW5kIGZyaWVuZHMKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N5bmNocm9uaXplZEZpeGVkUXVldWUu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRRdWV1
ZS5jcHAKaW5kZXggODFiYmMxMGZmMGRmNWZkNGNlMDBkZDZiNTdmOTNmNWY2ZTliZmMxZS4uZjdh
NDhkYjc1ZjYzZTViNzdjZmU0OGNiMzYyMWUwYWM3M2ZhOTk0MiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRRdWV1ZS5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRRdWV1ZS5jcHAK
QEAgLTEyMyw3ICsxMjMsNyBAQCBjbGFzcyBUb1VwcGVyQ29udmVydGVyIHsKICAgICAgICAgICAg
IHJldHVybjsKIAogICAgICAgICBtX2xvd2VyUXVldWUtPmNsb3NlKCk7Ci0gICAgICAgIG1fcHJv
ZHVjZUNsb3NlU2VtYXBob3JlLndhaXQoV2FsbFRpbWU6OmluZmluaXR5KCkpOworICAgICAgICBt
X3Byb2R1Y2VDbG9zZVNlbWFwaG9yZS53YWl0KCk7CiAgICAgICAgIG1fcHJvZHVjZVF1ZXVlID0g
bnVsbHB0cjsKICAgICB9CiAgICAgCkBAIC0xMzMsNyArMTMzLDcgQEAgY2xhc3MgVG9VcHBlckNv
bnZlcnRlciB7CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgbV91cHBlclF1ZXVlLT5j
bG9zZSgpOwotICAgICAgICBtX2NvbnN1bWVDbG9zZVNlbWFwaG9yZS53YWl0KFdhbGxUaW1lOjpp
bmZpbml0eSgpKTsKKyAgICAgICAgbV9jb25zdW1lQ2xvc2VTZW1hcGhvcmUud2FpdCgpOwogICAg
ICAgICBtX2NvbnN1bWVRdWV1ZSA9IG51bGxwdHI7CiAgICAgfQogICAgIAo=
</data>
<flag name="review"
          id="357867"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>