<?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>225798</bug_id>
          
          <creation_ts>2021-05-13 21:39:54 -0700</creation_ts>
          <short_desc>Rename FileSystem::getFileSize() to FileSystem::fileSize()</short_desc>
          <delta_ts>2021-05-14 09:11:17 -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>Web Template Framework</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>cgarcia</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>galpeter</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>hi</cc>
    
    <cc>japhet</cc>
    
    <cc>joepeck</cc>
    
    <cc>jsbell</cc>
    
    <cc>keith_miller</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mifenton</cc>
    
    <cc>msaboff</cc>
    
    <cc>pdr</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1760002</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-13 21:39:54 -0700</bug_when>
    <thetext>Rename FileSystem::getFileSize() to FileSystem::fileSize(). Also have it return an Optional&lt;uint64_t&gt; instead of taking a long long out-parameter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760004</commentid>
    <comment_count>1</comment_count>
      <attachid>428601</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-13 21:49:50 -0700</bug_when>
    <thetext>Created attachment 428601
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760007</commentid>
    <comment_count>2</comment_count>
      <attachid>428602</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-13 22:07:18 -0700</bug_when>
    <thetext>Created attachment 428602
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760103</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-14 09:10:46 -0700</bug_when>
    <thetext>Committed r277492 (237726@main): &lt;https://commits.webkit.org/237726@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428602.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760104</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-14 09:11:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/78019212&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428601</attachid>
            <date>2021-05-13 21:49:50 -0700</date>
            <delta_ts>2021-05-13 22:14:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225798-20210513214949.patch</filename>
            <type>text/plain</type>
            <size>57606</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MGViMjE5ZjdjZmVkMDJhNmQ1MjQ2NzkxOWY3OTg0MjBhMjNhZWJiLi43NDQzMzc0MjdmNzMyODlm
ZDg2NmU1MjA2ZjE1ZWMwNDMxZTc5ZWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAyMS0wNS0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFJlbmFtZSBGaWxlU3lzdGVtOjpnZXRGaWxlU2l6ZSgpIHRvIEZpbGVTeXN0ZW06
OmZpbGVTaXplKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNTc5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVwZGF0ZSBjb2RlIHBhdGggdG8gZHVlIHRvIHRoZSBBUEkgY2hhbmdlLgorCisgICAgICAg
ICogaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0LmNwcDoKKyAg
ICAgICAgKEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yOjpiYWNrZW5kQ29tbWFuZHMgY29uc3Qp
OgorICAgICAgICAqIGpzYy5jcHA6CisKIDIwMjEtMDUtMTMgIFBhdHJpY2sgQW5nbGUgIDxwYW5n
bGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtSRUdSRVNTSU9OOiByMjcxODc2XSBXZWIgSW5zcGVj
dG9yOiBbQ29jb2FdIFJlbW90ZSBpbnNwZWN0aW9uIGNyYXNoZXMgd2hlbiB1c2luZyBXRUJfVEhS
RUFECmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdl
TG9nCmluZGV4IDAwMWMyZDQ2MjA0ZGUxYjAyZDc3MTFjNzE4ODk4NWRjNTU1NDQ0NmIuLjM4MjFj
Mzg0NjZmZDg3NzM3MDY3MDk3ZDM0N2IwYTFlMmRlOGVhOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAK
KzIwMjEtMDUtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW5hbWUgRmlsZVN5c3RlbTo6Z2V0RmlsZVNpemUoKSB0byBGaWxlU3lzdGVtOjpmaWxlU2l6ZSgp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3OTgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUg
RmlsZVN5c3RlbTo6Z2V0RmlsZVNpemUoKSB0byBGaWxlU3lzdGVtOjpmaWxlU2l6ZSgpIGFzIHdl
IHVzdWFsbHkgYXZvaWQgdGhlICJnZXQiCisgICAgICAgIHByZWZpeCBpbiBXZWJLaXQuIEl0IGlz
IGFsc28gbW9yZSBjb25zaXN0ZW50IHdpdGggdGhlIHN0ZDo6ZmlsZXN5c3RlbTo6ZmlsZV9zaXpl
KCkgdGhlCisgICAgICAgIGltcGxlbWVudGF0aW9uIHJlbGllcyBvbi4KKworICAgICAgICBBbHNv
IGhhdmUgaXQgcmV0dXJuIGFuIE9wdGlvbmFsPHVpbnQ2NF90PiBpbnN0ZWFkIG9mIHRha2luZyBh
IGxvbmcgbG9uZyBvdXQtcGFyYW1ldGVyLCBhcworICAgICAgICB0aGlzIGlzIG1vcmUgbW9kZXJu
LgorCisgICAgICAgICogd3RmL0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoV1RGOjpGaWxlU3lz
dGVtSW1wbDo6ZmlsZVNpemUpOgorICAgICAgICAqIHd0Zi9GaWxlU3lzdGVtLmg6CisgICAgICAg
ICogd3RmL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwOgorICAgICAgICAoV1RGOjpGaWxlU3lzdGVt
SW1wbDo6ZmlsZVNpemUpOgorICAgICAgICAqIHd0Zi9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3Bw
OgorICAgICAgICAoV1RGOjpGaWxlU3lzdGVtSW1wbDo6ZmlsZVNpemUpOgorICAgICAgICAqIHd0
Zi93aW4vRmlsZVN5c3RlbVdpbi5jcHA6CisgICAgICAgIChXVEY6OkZpbGVTeXN0ZW1JbXBsOjpn
ZXRGaWxlU2l6ZUZyb21CeUhhbmRsZUZpbGVJbmZvcm1hdGlvblN0cnVjdHVyZSk6CisgICAgICAg
IChXVEY6OkZpbGVTeXN0ZW1JbXBsOjpmaWxlU2l6ZSk6CisgICAgICAgIChXVEY6OkZpbGVTeXN0
ZW1JbXBsOjpNYXBwZWRGaWxlRGF0YTo6bWFwRmlsZUhhbmRsZSk6CisKIDIwMjEtMDUtMTMgIERl
YW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJYUl0gQWxsb3cgV2Vi
WFIgdG8gYmUgdGVzdGVkIG9uIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY2MGUzNDRl
YWJjYzVmYzNlMDIwNzJkNTU4MzVhNGExYzYxNjc1MGEuLmUyOTU1NjUzMDQ5ZWYzOWU5YmUyMDA1
OGU1ODdjNzVjNWI1NzQzM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAyMS0wNS0x
MyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBGaWxl
U3lzdGVtOjpnZXRGaWxlU2l6ZSgpIHRvIEZpbGVTeXN0ZW06OmZpbGVTaXplKCkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTc5OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBjb2RlIHBhdGgg
dG8gZHVlIHRvIHRoZSBBUEkgY2hhbmdlLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VzU2l6ZUZvckRpcmVjdG9yeSk6
CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZURldGFpbHMuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlsczo6RGF0YWJhc2VEZXRhaWxzKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEYXRhYmFzZVRyYWNrZXI6Omhhc0FkZXF1YXRlUXVvdGFGb3JPcmlnaW4pOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpjYW5Fc3RhYmxpc2hEYXRhYmFzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OnJldHJ5Q2FuRXN0YWJsaXNoRGF0YWJhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjptYXhpbXVtU2l6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmRldGFpbHNGb3JOYW1lQW5kT3JpZ2luKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEZXRhaWxzKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6dXNhZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VUcmFja2VyOjpxdW90YU5vTG9jayk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRhYmFzZVRyYWNrZXI6OnF1b3RhKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tl
cjo6c2V0UXVvdGEpOgorICAgICAgICAoV2ViQ29yZTo6aXNaZXJvQnl0ZUZpbGUpOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmg6CisgICAgICAgICogZWRp
dGluZy9jb2NvYS9XZWJDb250ZW50UmVhZGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjph
dHRhY2htZW50Rm9yRmlsZVBhdGgpOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZTo6c3BhY2VOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNo
ZVN0b3JhZ2U6OmxvYWRDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZTo6ZmxhdEZpbGVBcmVhU2l6ZSk6CisgICAgICAgICogcGxhdGZvcm0vRmlsZVN0cmVh
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3RyZWFtOjpnZXRTaXplKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1E
YXRhRWxlbWVudDo6bGVuZ3RoSW5CeXRlcyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxDYWNo
ZUVudHJ5Ojpsb2FkRmlsZVRvQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ3VybENhY2hlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXJsQ2FjaGVNYW5h
Z2VyOjpsb2FkSW5kZXgpOgorICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVGaWxlU3lzdGVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZUZpbGVTeXN0ZW06OmRhdGFiYXNlRmlsZVNp
emUpOgorICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVGaWxlU3lzdGVtLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lV2luOjpzdHJpbmdXaXRoQ29udGVudHNPZkZpbGUpOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTY3JpcHRTdG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNo
b3VsZFVzZUZpbGVNYXBwaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2NyaXB0U3RvcmFnZTo6
cmV0cmlldmUpOgorCiAyMDIxLTA1LTEzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KIAogICAgICAgICBbaU9TXSBSRUdSRVNTSU9OKHIyNzEyMTYpIHBvaW50ZXJldmVudHMvaW9z
L3BvaW50ZXItZXZlbnRzLW5vLW1vdXNlZG93bi13aGVuLXByZXZlbnQtZGVmYXVsdC1jYWxsZWQt
b24tcG9pbnRlcmRvd24uaHRtbCBpcyBjb25zaXN0ZW50bHkgZmFpbGluZwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBl
MTQ3OTkyNTQyMzRjZWVmMWZiOGRlMzQ1YTljOWVmMDk0ZDcyYjE2Li5mYmZmMWFiZjgwYmFjMjdi
ZTQwMzE1NDZhMjM2NDUzNDgwMzllZGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIx
LTA1LTEzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1l
IEZpbGVTeXN0ZW06OmdldEZpbGVTaXplKCkgdG8gRmlsZVN5c3RlbTo6ZmlsZVNpemUoKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1Nzk4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGNvZGUg
cGF0aCB0byBkdWUgdG8gdGhlIEFQSSBjaGFuZ2UuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TG9jYWxTdG9yYWdlRGF0YWJhc2U6OnNldEl0ZW0pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpDYWNo
ZVN0b3JhZ2U6OmdldERpcmVjdG9yeVNpemUpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3Jh
Z2U6OkVuZ2luZTo6cmVhZFNpemVGaWxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9OZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
YWNoZTo6QmxvYlN0b3JhZ2U6OnN5bmNocm9uaXplKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nh
Y2hlOjptYXBGaWxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVJT0NoYW5uZWxDdXJsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpJT0No
YW5uZWw6OnJlYWQpOgorICAgICAgICAqIFNoYXJlZC9QZXJzaXN0ZW5jeVV0aWxzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6Y3JlYXRlRm9yRmlsZSk6CisgICAgICAgICogVUlQcm9jZXNzL0Rldmlj
ZUlkSGFzaFNhbHRTdG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RGV2aWNlSWRIYXNoU2Fs
dFN0b3JhZ2U6OmxvYWRTdG9yYWdlRnJvbURpc2spOgorCiAyMDIxLTA1LTEzICBEZWFuIEphY2tz
b24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViWFJdIEFsbG93IFdlYlhSIHRvIGJl
IHRlc3RlZCBvbiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggZTE4YzMw
ZjllNzExMDc1YzllMWNlZjFmODk0MjY5MjNhZjg3OGJhZi4uNWU5NzFlMzNmOTQxNzk2ZTBlNWRk
MWE1ZjhhN2ZjMmI1YmY4NWMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAyMS0wNS0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IFJlbmFtZSBGaWxlU3lzdGVtOjpnZXRGaWxlU2l6ZSgpIHRvIEZpbGVTeXN0ZW06OmZpbGVTaXpl
KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTc5
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0
ZSBjb2RlIHBhdGggdG8gZHVlIHRvIHRoZSBBUEkgY2hhbmdlLgorCisgICAgICAgICogU3RvcmFn
ZS9TdG9yYWdlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VUcmFja2VyOjpk
aXNrVXNhZ2VGb3JPcmlnaW4pOgorICAgICAgICAqIFN0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaDoK
KwogMjAyMS0wNS0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbmFtZSBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKCkgdG8gRmlsZVN5c3RlbTo6cGFyZW50
UGF0aCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90
ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXQuY3BwCmluZGV4
IDMzNWQxNTZlMzhjOWJmOTRiOGNiMjRlOWU2ZjE3YTA1ZWE5ZTFhMDAuLjczOTY3M2VmODc3NGY2
MGVkODc4MTk1MzU1M2Q3MGZlMzcwYjNjZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJ
bnNwZWN0b3JTb2NrZXQuY3BwCkBAIC0yNjgsMTAgKzI2OCw5IEBAIFN0cmluZyBSZW1vdGVJbnNw
ZWN0b3I6OmJhY2tlbmRDb21tYW5kcygpIGNvbnN0CiAgICAgICAgIHJldHVybiB7IH07CiAKICAg
ICBTdHJpbmcgcmVzdWx0OwotICAgIGxvbmcgbG9uZyBzaXplOwotICAgIGlmIChGaWxlU3lzdGVt
OjpnZXRGaWxlU2l6ZShoYW5kbGUsIHNpemUpKSB7Ci0gICAgICAgIFZlY3RvcjxMQ2hhcj4gYnVm
ZmVyKHNpemUpOwotICAgICAgICBpZiAoRmlsZVN5c3RlbTo6cmVhZEZyb21GaWxlKGhhbmRsZSwg
cmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oYnVmZmVyLmRhdGEoKSksIHNpemUpID09IHNpemUpCisg
ICAgaWYgKGF1dG8gc2l6ZSA9IEZpbGVTeXN0ZW06OmZpbGVTaXplKGhhbmRsZSkpIHsKKyAgICAg
ICAgVmVjdG9yPExDaGFyPiBidWZmZXIoKnNpemUpOworICAgICAgICBpZiAoRmlsZVN5c3RlbTo6
cmVhZEZyb21GaWxlKGhhbmRsZSwgcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oYnVmZmVyLmRhdGEo
KSksICpzaXplKSA9PSAqc2l6ZSkKICAgICAgICAgICAgIHJlc3VsdCA9IFN0cmluZzo6YWRvcHQo
V1RGTW92ZShidWZmZXIpKTsKICAgICB9CiAgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKGhhbmRs
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDY0YWEyMzkyNTllZjJhMWVhZTI5OWZjNzM5NGIz
MjUzMzA4YTEzNzMuLjFmNWRhYmExYzE5NGZkMzVhN2FhMDU4OWJmYmY5OWZlZGYyZTVlMjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0xMDQ5LDEyICsxMDQ5LDEyIEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIEZpbGVTeXN0ZW06OnVubG9ja0FuZENsb3NlRmlsZShmZCk7CiAgICAgICAgIH0pOwog
Ci0gICAgICAgIGxvbmcgbG9uZyBmaWxlU2l6ZTsKLSAgICAgICAgaWYgKCFGaWxlU3lzdGVtOjpn
ZXRGaWxlU2l6ZShmZCwgZmlsZVNpemUpKQorICAgICAgICBhdXRvIGZpbGVTaXplID0gRmlsZVN5
c3RlbTo6ZmlsZVNpemUoZmQpOworICAgICAgICBpZiAoIWZpbGVTaXplKQogICAgICAgICAgICAg
cmV0dXJuOwogCiAgICAgICAgIHNpemVfdCBjYWNoZUZpbGVTaXplOwotICAgICAgICBpZiAoIVdU
Rjo6Y29udmVydFNhZmVseShmaWxlU2l6ZSwgY2FjaGVGaWxlU2l6ZSkgfHwgY2FjaGVGaWxlU2l6
ZSAhPSBtX2NhY2hlZEJ5dGVjb2RlLT5zaXplKCkpIHsKKyAgICAgICAgaWYgKCFXVEY6OmNvbnZl
cnRTYWZlbHkoKmZpbGVTaXplLCBjYWNoZUZpbGVTaXplKSB8fCBjYWNoZUZpbGVTaXplICE9IG1f
Y2FjaGVkQnl0ZWNvZGUtPnNpemUoKSkgewogICAgICAgICAgICAgLy8gVGhlIGJ5dGVjb2RlIGNh
Y2hlIGhhcyBhbHJlYWR5IGJlZW4gdXBkYXRlZAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmNwcCBiL1NvdXJjZS9X
VEYvd3RmL0ZpbGVTeXN0ZW0uY3BwCmluZGV4IGRlYTA3MDMwNmY5N2FjYjIyMDU2ZDk2YTgxOGFi
ZjcxZWVlYTk3YTkuLjg3ZDk2ZTdjMGY3MmE2MmIyNWJjNjkyYmU0ZjFkMTVjNjYxZGVlMTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1NvdXJjZS9XVEYv
d3RmL0ZpbGVTeXN0ZW0uY3BwCkBAIC01OTcsMTQgKzU5NywxMyBAQCBib29sIG1vdmVGaWxlKGNv
bnN0IFN0cmluZyYgb2xkUGF0aCwgY29uc3QgU3RyaW5nJiBuZXdQYXRoKQogICAgIHJldHVybiBz
dGQ6OmZpbGVzeXN0ZW06OnJlbW92ZV9hbGwoZnNPbGRQYXRoLCBlYyk7CiB9CiAKLWJvb2wgZ2V0
RmlsZVNpemUoY29uc3QgU3RyaW5nJiBwYXRoLCBsb25nIGxvbmcmIHJlc3VsdCkKK09wdGlvbmFs
PHVpbnQ2NF90PiBmaWxlU2l6ZShjb25zdCBTdHJpbmcmIHBhdGgpCiB7CiAgICAgc3RkOjplcnJv
cl9jb2RlIGVjOwogICAgIGF1dG8gc2l6ZSA9IHN0ZDo6ZmlsZXN5c3RlbTo6ZmlsZV9zaXplKHRv
U3RkRmlsZVN5c3RlbVBhdGgocGF0aCksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICByZXN1bHQgPSBzaXplOwotICAgIHJldHVybiB0cnVlOworICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJldHVybiBzaXplOwogfQogCiBib29sIGlzRGlyZWN0
b3J5KGNvbnN0IFN0cmluZyYgcGF0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVT
eXN0ZW0uaCBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaAppbmRleCBmZTczMDJhMGYzZDgw
OGIyYzdhYzU0MWYxYjBjYjk0NTUwMjYxMjVlLi5kMzBkZTRlMDY2OTlkNjgyMWU5NzViYTNhNjBk
Zjk1MjE0YTczOGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmgKKysr
IGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oCkBAIC0xMTEsOCArMTExLDggQEAgV1RGX0VY
UE9SVF9QUklWQVRFIGJvb2wgZmlsZUV4aXN0cyhjb25zdCBTdHJpbmcmKTsKIFdURl9FWFBPUlRf
UFJJVkFURSBib29sIGRlbGV0ZUZpbGUoY29uc3QgU3RyaW5nJik7CiBXVEZfRVhQT1JUX1BSSVZB
VEUgYm9vbCBkZWxldGVFbXB0eURpcmVjdG9yeShjb25zdCBTdHJpbmcmKTsKIFdURl9FWFBPUlRf
UFJJVkFURSBib29sIG1vdmVGaWxlKGNvbnN0IFN0cmluZyYgb2xkUGF0aCwgY29uc3QgU3RyaW5n
JiBuZXdQYXRoKTsKLVdURl9FWFBPUlRfUFJJVkFURSBib29sIGdldEZpbGVTaXplKGNvbnN0IFN0
cmluZyYsIGxvbmcgbG9uZyYgcmVzdWx0KTsKLVdURl9FWFBPUlRfUFJJVkFURSBib29sIGdldEZp
bGVTaXplKFBsYXRmb3JtRmlsZUhhbmRsZSwgbG9uZyBsb25nJiByZXN1bHQpOworV1RGX0VYUE9S
VF9QUklWQVRFIE9wdGlvbmFsPHVpbnQ2NF90PiBmaWxlU2l6ZShjb25zdCBTdHJpbmcmKTsKK1dU
Rl9FWFBPUlRfUFJJVkFURSBPcHRpb25hbDx1aW50NjRfdD4gZmlsZVNpemUoUGxhdGZvcm1GaWxl
SGFuZGxlKTsKIFdURl9FWFBPUlRfUFJJVkFURSBPcHRpb25hbDxXYWxsVGltZT4gZ2V0RmlsZU1v
ZGlmaWNhdGlvblRpbWUoY29uc3QgU3RyaW5nJik7CiBXVEZfRVhQT1JUX1BSSVZBVEUgT3B0aW9u
YWw8V2FsbFRpbWU+IGdldEZpbGVDcmVhdGlvblRpbWUoY29uc3QgU3RyaW5nJik7IC8vIE5vdCBh
bGwgcGxhdGZvcm1zIHN0b3JlIGZpbGUgY3JlYXRpb24gdGltZS4KIFdURl9FWFBPUlRfUFJJVkFU
RSBPcHRpb25hbDxGaWxlTWV0YWRhdGE+IGZpbGVNZXRhZGF0YShjb25zdCBTdHJpbmcmIHBhdGgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAppbmRleCBjMDQ5N2Q1YTAzMTNi
MWIxOTkwOGEyMTYyOGFmY2Q3NGU3MTU0MzM5Li40NTg2YWE0MGVlNDEyNjFiYTEwOTAwZTI0OGUz
N2JmOWM4ZWEzMDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1H
bGliLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcApAQCAt
MTIwLDE0ICsxMjAsMTMgQEAgU3RyaW5nIGZpbGVuYW1lRm9yRGlzcGxheShjb25zdCBTdHJpbmcm
IHN0cmluZykKICNlbmRpZgogfQogCi1ib29sIGdldEZpbGVTaXplKFBsYXRmb3JtRmlsZUhhbmRs
ZSBoYW5kbGUsIGxvbmcgbG9uZyYgcmVzdWx0U2l6ZSkKK09wdGlvbmFsPHVpbnQ2NF90PiBmaWxl
U2l6ZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlKQogewogICAgIEdSZWZQdHI8R0ZpbGVJbmZv
PiBpbmZvID0gYWRvcHRHUmVmKGdfZmlsZV9pb19zdHJlYW1fcXVlcnlfaW5mbyhoYW5kbGUsIEdf
RklMRV9BVFRSSUJVVEVfU1RBTkRBUkRfU0laRSwgbnVsbHB0ciwgbnVsbHB0cikpOwogICAgIGlm
ICghaW5mbykKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwogCi0gICAgcmVzdWx0U2l6ZSA9IGdfZmlsZV9pbmZvX2dldF9zaXplKGluZm8uZ2V0KCkp
OwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBnX2ZpbGVfaW5mb19nZXRfc2l6ZShpbmZv
LmdldCgpKTsKIH0KIAogT3B0aW9uYWw8V2FsbFRpbWU+IGdldEZpbGVDcmVhdGlvblRpbWUoY29u
c3QgU3RyaW5nJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1Q
T1NJWC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCmluZGV4
IGU5ZGQ3MTQ3YjMyOTU3ZGU1MzE1NTNhMTRmN2ZjMzgyM2E3NmE5YTUuLmE2MDBiYzI2MTk4Njkw
ZjhhZmQzYzI2NWNmMTVjZDZiZGZjNWQ2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Bv
c2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvcG9zaXgvRmlsZVN5
c3RlbVBPU0lYLmNwcApAQCAtMTU2LDE0ICsxNTYsMTMgQEAgYm9vbCB1bmxvY2tGaWxlKFBsYXRm
b3JtRmlsZUhhbmRsZSBoYW5kbGUpCiB9CiAjZW5kaWYKIAotYm9vbCBnZXRGaWxlU2l6ZShQbGF0
Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBsb25nIGxvbmcmIHJlc3VsdCkKK09wdGlvbmFsPHVpbnQ2
NF90PiBmaWxlU2l6ZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlKQogewogICAgIHN0cnVjdCBz
dGF0IGZpbGVJbmZvOwogICAgIGlmIChmc3RhdChoYW5kbGUsICZmaWxlSW5mbykpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIHJlc3Vs
dCA9IGZpbGVJbmZvLnN0X3NpemU7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZpbGVJ
bmZvLnN0X3NpemU7CiB9CiAKIE9wdGlvbmFsPFdhbGxUaW1lPiBnZXRGaWxlQ3JlYXRpb25UaW1l
KGNvbnN0IFN0cmluZyYgcGF0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxl
U3lzdGVtV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcAppbmRl
eCAyZDc0YWQyODg3YWMzNTYxYmRkNWE2MGIwNWU0MDhmOGQ0Y2M1MTZjLi41N2U4OGYzZjU4ZjRm
ZTAxYzlkZWU4ZDg3NmE2ZWM4MzMwODdjMzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93
aW4vRmlsZVN5c3RlbVdpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvd2luL0ZpbGVTeXN0ZW1X
aW4uY3BwCkBAIC03MSwxNyArNzEsMTYgQEAgc3RhdGljIGJvb2wgZ2V0RmlsZVNpemVGcm9tRmlu
ZERhdGEoY29uc3QgV0lOMzJfRklORF9EQVRBVyYgZmluZERhdGEsIGxvbmcgbG9uZyYKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgZ2V0RmlsZVNpemVGcm9tQnlIYW5kbGVGaWxl
SW5mb3JtYXRpb25TdHJ1Y3R1cmUoY29uc3QgQllfSEFORExFX0ZJTEVfSU5GT1JNQVRJT04mIGZp
bGVJbmZvcm1hdGlvbiwgbG9uZyBsb25nJiBzaXplKQorc3RhdGljIE9wdGlvbmFsPHVpbnQ2NF90
PiBnZXRGaWxlU2l6ZUZyb21CeUhhbmRsZUZpbGVJbmZvcm1hdGlvblN0cnVjdHVyZShjb25zdCBC
WV9IQU5ETEVfRklMRV9JTkZPUk1BVElPTiYgZmlsZUluZm9ybWF0aW9uKQogewogICAgIFVMQVJH
RV9JTlRFR0VSIGZpbGVTaXplOwogICAgIGZpbGVTaXplLkhpZ2hQYXJ0ID0gZmlsZUluZm9ybWF0
aW9uLm5GaWxlU2l6ZUhpZ2g7CiAgICAgZmlsZVNpemUuTG93UGFydCA9IGZpbGVJbmZvcm1hdGlv
bi5uRmlsZVNpemVMb3c7CiAKICAgICBpZiAoZmlsZVNpemUuUXVhZFBhcnQgPiBzdGF0aWNfY2Fz
dDxVTE9OR0xPTkc+KHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZyBsb25nPjo6bWF4KCkpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBz
aXplID0gZmlsZVNpemUuUXVhZFBhcnQ7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZp
bGVTaXplLlF1YWRQYXJ0OwogfQogCiBzdGF0aWMgdm9pZCBnZXRGaWxlQ3JlYXRpb25UaW1lRnJv
bUZpbmREYXRhKGNvbnN0IFdJTjMyX0ZJTkRfREFUQVcmIGZpbmREYXRhLCB0aW1lX3QmIHRpbWUp
CkBAIC0xMDUsMTMgKzEwNCwxMyBAQCBzdGF0aWMgdm9pZCBnZXRGaWxlTW9kaWZpY2F0aW9uVGlt
ZUZyb21GaW5kRGF0YShjb25zdCBXSU4zMl9GSU5EX0RBVEFXJiBmaW5kRGF0YQogICAgIHRpbWUg
PSBmaWxlVGltZS5RdWFkUGFydCAvIDEwMDAwMDAwIC0ga1NlY29uZHNGcm9tRmlsZVRpbWVUb1Rp
bWV0OwogfQogCi1ib29sIGdldEZpbGVTaXplKFBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlSGFuZGxl
LCBsb25nIGxvbmcmIHNpemUpCitPcHRpb25hbDx1aW50NjRfdD4gZmlsZVNpemUoUGxhdGZvcm1G
aWxlSGFuZGxlIGZpbGVIYW5kbGUpCiB7CiAgICAgQllfSEFORExFX0ZJTEVfSU5GT1JNQVRJT04g
ZmlsZUluZm9ybWF0aW9uOwogICAgIGlmICghOjpHZXRGaWxlSW5mb3JtYXRpb25CeUhhbmRsZShm
aWxlSGFuZGxlLCAmZmlsZUluZm9ybWF0aW9uKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgcmV0dXJuIGdldEZpbGVTaXplRnJvbUJ5
SGFuZGxlRmlsZUluZm9ybWF0aW9uU3RydWN0dXJlKGZpbGVJbmZvcm1hdGlvbiwgc2l6ZSk7Cisg
ICAgcmV0dXJuIGdldEZpbGVTaXplRnJvbUJ5SGFuZGxlRmlsZUluZm9ybWF0aW9uU3RydWN0dXJl
KGZpbGVJbmZvcm1hdGlvbik7CiB9CiAKIE9wdGlvbmFsPFdhbGxUaW1lPiBnZXRGaWxlQ3JlYXRp
b25UaW1lKGNvbnN0IFN0cmluZyYgcGF0aCkKQEAgLTQwMywxMiArNDAyLDEyIEBAIGJvb2wgTWFw
cGVkRmlsZURhdGE6Om1hcEZpbGVIYW5kbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgRmls
ZU9wZW5Nb2RlIG9wZW5NCiAgICAgaWYgKCFpc0hhbmRsZVZhbGlkKGhhbmRsZSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIGxvbmcgbG9uZyBzaXplOwotICAgIGlmICghZ2V0RmlsZVNp
emUoaGFuZGxlLCBzaXplKSB8fCBzaXplID4gc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+Ojpt
YXgoKSB8fCBzaXplID4gc3RkOjpudW1lcmljX2xpbWl0czxkZWNsdHlwZShtX2ZpbGVTaXplKT46
Om1heCgpKSB7CisgICAgYXV0byBzaXplID0gZmlsZVNpemUoaGFuZGxlKTsKKyAgICBpZiAoIXNp
emUgfHwgKnNpemUgPiBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpIHx8ICpzaXpl
ID4gc3RkOjpudW1lcmljX2xpbWl0czxkZWNsdHlwZShtX2ZpbGVTaXplKT46Om1heCgpKSB7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAoIXNpemUpIHsKKyAgICBpZiAo
ISpzaXplKSB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtNDMzLDExICs0MzIs
MTEgQEAgYm9vbCBNYXBwZWRGaWxlRGF0YTo6bWFwRmlsZUhhbmRsZShQbGF0Zm9ybUZpbGVIYW5k
bGUgaGFuZGxlLCBGaWxlT3Blbk1vZGUgb3Blbk0KICAgICBpZiAoIW1hcHBpbmcpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIG1fZmlsZURhdGEgPSBNYXBWaWV3T2ZGaWxlKG1hcHBpbmcs
IGRlc2lyZWRBY2Nlc3MsIDAsIDAsIHNpemUpOworICAgIG1fZmlsZURhdGEgPSBNYXBWaWV3T2ZG
aWxlKG1hcHBpbmcsIGRlc2lyZWRBY2Nlc3MsIDAsIDAsICpzaXplKTsKICAgICBDbG9zZUhhbmRs
ZShtYXBwaW5nKTsKICAgICBpZiAoIW1fZmlsZURhdGEpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBtX2ZpbGVTaXplID0gc2l6ZTsKKyAgICBtX2ZpbGVTaXplID0gKnNpemU7CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKaW5kZXggYTMx
ZGUxMDQzNjg5MjRlYzQ0ODU1NDhlNDA3N2M4MWRlYmQ5OWI1ZS4uOThkYjk4Y2M3M2MxYzA5ODc3
NWYzMGI3YTRlYTM3OWRkZGVmZTRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5j
cHAKQEAgLTEyODQsNyArMTI4NCw3IEBAIHVpbnQ2NF90IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6
ZGF0YWJhc2VzU2l6ZUZvckRpcmVjdG9yeShjb25zdCBTdHJpbmcmIGRpcmVjdG9yCiAgICAgICAg
IGF1dG8gZGJEaXJlY3RvcnlQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9u
ZW50KGRpcmVjdG9yeSwgZGJEaXJlY3RvcnlOYW1lKTsKICAgICAgICAgZm9yIChhdXRvJiBmaWxl
TmFtZSA6IEZpbGVTeXN0ZW06Omxpc3REaXJlY3RvcnkoZGJEaXJlY3RvcnlQYXRoKSkgewogICAg
ICAgICAgICAgaWYgKGZpbGVOYW1lLmVuZHNXaXRoKCIuc3FsaXRlMyIpKQotICAgICAgICAgICAg
ICAgIGRpc2tVc2FnZSArPSBTUUxpdGVGaWxlU3lzdGVtOjpnZXREYXRhYmFzZUZpbGVTaXplKEZp
bGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChkYkRpcmVjdG9yeVBhdGgsIGZpbGVO
YW1lKSk7CisgICAgICAgICAgICAgICAgZGlza1VzYWdlICs9IFNRTGl0ZUZpbGVTeXN0ZW06OmRh
dGFiYXNlRmlsZVNpemUoRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGRiRGly
ZWN0b3J5UGF0aCwgZmlsZU5hbWUpKTsKICAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gZGlz
a1VzYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZURldGFpbHMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2VEZXRhaWxzLmgKaW5kZXggOGJhYWVjMTI3OTQ3ZTRkMTRjNDZkMWQ3OGZjM2M3MDY4MWVm
YzZkOC4uMzkwMDRkYWU4MGI5N2NmNDJiNWZhZmEzMGYzMDIxMWY5MDJhNTdhNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZURldGFpbHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlRGV0YWlscy5o
CkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0K
IAotICAgIERhdGFiYXNlRGV0YWlscyhjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3Qg
U3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIGV4cGVjdGVkVXNhZ2UsIHVu
c2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50VXNhZ2UsIE9wdGlvbmFsPFdhbGxUaW1lPiBjcmVhdGlv
blRpbWUsIE9wdGlvbmFsPFdhbGxUaW1lPiBtb2RpZmljYXRpb25UaW1lKQorICAgIERhdGFiYXNl
RGV0YWlscyhjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5
TmFtZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgdWludDY0X3QgY3VycmVudFVzYWdlLCBPcHRp
b25hbDxXYWxsVGltZT4gY3JlYXRpb25UaW1lLCBPcHRpb25hbDxXYWxsVGltZT4gbW9kaWZpY2F0
aW9uVGltZSkKICAgICAgICAgOiBtX25hbWUoZGF0YWJhc2VOYW1lKQogICAgICAgICAsIG1fZGlz
cGxheU5hbWUoZGlzcGxheU5hbWUpCiAgICAgICAgICwgbV9leHBlY3RlZFVzYWdlKGV4cGVjdGVk
VXNhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlVHJhY2tlci5jcHAKaW5kZXggMGFkM2I0ODAyM2YxZjk2ZWFiOWJjZjRmNzcyZGU0OTMz
MDdlYmY4NC4uZmFkMjBiZjBkNTM1MmI2OGU5YmE5MDkwODkzYzA4MWRiOGI0YjRlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFj
a2VyLmNwcApAQCAtMTQxLDEzICsxNDEsMTMgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6Om9wZW5U
cmFja2VyRGF0YWJhc2UoVHJhY2tlckNyZWF0aW9uQWN0aW9uIGNyZWF0ZUFjdGlvbikKICAgICB9
CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IERhdGFiYXNlVHJhY2tlcjo6aGFzQWRlcXVhdGVRdW90
YUZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbiwgdW5zaWduZWQgbG9u
ZyBsb25nIGVzdGltYXRlZFNpemUpCitFeGNlcHRpb25Pcjx2b2lkPiBEYXRhYmFzZVRyYWNrZXI6
Omhhc0FkZXF1YXRlUXVvdGFGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmln
aW4sIHVpbnQ2NF90IGVzdGltYXRlZFNpemUpCiB7CiAgICAgQVNTRVJUKCFtX2RhdGFiYXNlR3Vh
cmQudHJ5TG9jaygpKTsKICAgICBhdXRvIHVzYWdlID0gdGhpcy0+dXNhZ2Uob3JpZ2luKTsKIAog
ICAgIC8vIElmIHRoZSBkYXRhYmFzZSB3aWxsIGZpdCwgYWxsb3cgaXRzIGNyZWF0aW9uLgotICAg
IGF1dG8gcmVxdWlyZW1lbnQgPSB1c2FnZSArIHN0ZDo6bWF4PHVuc2lnbmVkIGxvbmcgbG9uZz4o
MSwgZXN0aW1hdGVkU2l6ZSk7CisgICAgYXV0byByZXF1aXJlbWVudCA9IHVzYWdlICsgc3RkOjpt
YXg8dWludDY0X3Q+KDF1LCBlc3RpbWF0ZWRTaXplKTsKICAgICBpZiAocmVxdWlyZW1lbnQgPCB1
c2FnZSkgewogICAgICAgICAvLyBUaGUgZXN0aW1hdGVkIHNpemUgaXMgc28gYmlnIGl0IGNhdXNl
cyBhbiBvdmVyZmxvdzsgZG9uJ3QgYWxsb3cgY3JlYXRpb24uCiAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBTZWN1cml0eUVycm9yIH07CkBAIC0xNTcsNyArMTU3LDcgQEAgRXhjZXB0aW9uT3I8
dm9pZD4gRGF0YWJhc2VUcmFja2VyOjpoYXNBZGVxdWF0ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNl
Y3VyaXR5T3JpZ2kKICAgICByZXR1cm4geyB9OwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBEYXRh
YmFzZVRyYWNrZXI6OmNhbkVzdGFibGlzaERhdGFiYXNlKERhdGFiYXNlQ29udGV4dCYgY29udGV4
dCwgY29uc3QgU3RyaW5nJiBuYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgZXN0aW1hdGVkU2l6ZSkK
K0V4Y2VwdGlvbk9yPHZvaWQ+IERhdGFiYXNlVHJhY2tlcjo6Y2FuRXN0YWJsaXNoRGF0YWJhc2Uo
RGF0YWJhc2VDb250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIHVpbnQ2NF90IGVz
dGltYXRlZFNpemUpCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1
YXJkKTsKIApAQCAtMjA1LDcgKzIwNSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IERhdGFiYXNlVHJh
Y2tlcjo6Y2FuRXN0YWJsaXNoRGF0YWJhc2UoRGF0YWJhc2VDb250ZXh0JiBjb250ZXh0CiAvLyBo
YXNBZGVxdWF0ZVF1b3RhRm9yT3JpZ2luKCkgc2ltcGxlIGFuZCBjb3JyZWN0IChpLmUuIGJ1ZyBm
cmVlKSwgYW5kIGp1c3QKIC8vIHJlLXVzZSBpdC4gQWxzbyBub3RlIHRoYXQgdGhlIHBhdGggZm9y
IG9wZW5pbmcgYSBkYXRhYmFzZSBpbnZvbHZlcyBJTywgYW5kCiAvLyBoZW5jZSBzaG91bGQgbm90
IGJlIGEgcGVyZm9ybWFuY2UgY3JpdGljYWwgcGF0aCBhbnl3YXkuIAotRXhjZXB0aW9uT3I8dm9p
ZD4gRGF0YWJhc2VUcmFja2VyOjpyZXRyeUNhbkVzdGFibGlzaERhdGFiYXNlKERhdGFiYXNlQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgZXN0
aW1hdGVkU2l6ZSkKK0V4Y2VwdGlvbk9yPHZvaWQ+IERhdGFiYXNlVHJhY2tlcjo6cmV0cnlDYW5F
c3RhYmxpc2hEYXRhYmFzZShEYXRhYmFzZUNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYg
bmFtZSwgdWludDY0X3QgZXN0aW1hdGVkU2l6ZSkKIHsKICAgICBMb2NrSG9sZGVyIGxvY2tEYXRh
YmFzZShtX2RhdGFiYXNlR3VhcmQpOwogCkBAIC0yNjcsMTYgKzI2NywxNiBAQCBib29sIERhdGFi
YXNlVHJhY2tlcjo6aGFzRW50cnlGb3JEYXRhYmFzZShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEm
IG9yaWdpbiwgY29ucwogICAgIHJldHVybiBzdGF0ZW1lbnQuc3RlcCgpID09IFNRTElURV9ST1c7
CiB9CiAKLXVuc2lnbmVkIGxvbmcgbG9uZyBEYXRhYmFzZVRyYWNrZXI6Om1heGltdW1TaXplKERh
dGFiYXNlJiBkYXRhYmFzZSkKK3VpbnQ2NF90IERhdGFiYXNlVHJhY2tlcjo6bWF4aW11bVNpemUo
RGF0YWJhc2UmIGRhdGFiYXNlKQogewogICAgIC8vIFRoZSBtYXhpbXVtIHNpemUgZm9yIGEgZGF0
YWJhc2UgaXMgdGhlIGZ1bGwgcXVvdGEgZm9yIGl0cyBvcmlnaW4sIG1pbnVzIHRoZSBjdXJyZW50
IHVzYWdlIHdpdGhpbiB0aGUgb3JpZ2luLAogICAgIC8vIHBsdXMgdGhlIGN1cnJlbnQgdXNhZ2Ug
b2YgdGhlIGdpdmVuIGRhdGFiYXNlCiAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRh
YmFzZUd1YXJkKTsKICAgICBhdXRvIG9yaWdpbiA9IGRhdGFiYXNlLnNlY3VyaXR5T3JpZ2luKCk7
CiAKLSAgICB1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEgPSBxdW90YU5vTG9jayhvcmlnaW4pOwot
ICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBkaXNrVXNhZ2UgPSB1c2FnZShvcmlnaW4pOwotICAgIHVu
c2lnbmVkIGxvbmcgbG9uZyBkYXRhYmFzZUZpbGVTaXplID0gU1FMaXRlRmlsZVN5c3RlbTo6Z2V0
RGF0YWJhc2VGaWxlU2l6ZShkYXRhYmFzZS5maWxlTmFtZUlzb2xhdGVkQ29weSgpKTsKKyAgICBh
dXRvIHF1b3RhID0gcXVvdGFOb0xvY2sob3JpZ2luKTsKKyAgICBhdXRvIGRpc2tVc2FnZSA9IHVz
YWdlKG9yaWdpbik7CisgICAgYXV0byBkYXRhYmFzZUZpbGVTaXplID0gU1FMaXRlRmlsZVN5c3Rl
bTo6ZGF0YWJhc2VGaWxlU2l6ZShkYXRhYmFzZS5maWxlTmFtZUlzb2xhdGVkQ29weSgpKTsKICAg
ICBBU1NFUlQoZGF0YWJhc2VGaWxlU2l6ZSA8PSBkaXNrVXNhZ2UpOwogCiAgICAgaWYgKGRpc2tV
c2FnZSA+IHF1b3RhKQpAQCAtMjg2LDcgKzI4Niw3IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBEYXRh
YmFzZVRyYWNrZXI6Om1heGltdW1TaXplKERhdGFiYXNlJiBkYXRhYmFzZSkKICAgICAvLyBoYXZl
IGFsbG93ZWQgdGhpcyBkYXRhYmFzZSB0byBleGNlZWQgb3VyIGNhY2hlZCBlc3RpbWF0ZSBvZiB0
aGUgb3JpZ2luCiAgICAgLy8gZGlzayB1c2FnZS4gRG9uJ3QgbXVsdGlwbHkgdGhhdCBlcnJvciB0
aHJvdWdoIGludGVnZXIgdW5kZXJmbG93LCBvciB0aGUKICAgICAvLyBlZmZlY3RpdmUgcXVvdGEg
d2lsbCBwZXJtYW5lbnRseSBiZWNvbWUgMl42NC4KLSAgICB1bnNpZ25lZCBsb25nIGxvbmcgbWF4
U2l6ZSA9IHF1b3RhIC0gZGlza1VzYWdlICsgZGF0YWJhc2VGaWxlU2l6ZTsKKyAgICB1aW50NjRf
dCBtYXhTaXplID0gcXVvdGEgLSBkaXNrVXNhZ2UgKyBkYXRhYmFzZUZpbGVTaXplOwogICAgIGlm
IChtYXhTaXplID4gcXVvdGEpCiAgICAgICAgIG1heFNpemUgPSBkYXRhYmFzZUZpbGVTaXplOwog
ICAgIHJldHVybiBtYXhTaXplOwpAQCAtNDYxLDEwICs0NjEsMTAgQEAgRGF0YWJhc2VEZXRhaWxz
IERhdGFiYXNlVHJhY2tlcjo6ZGV0YWlsc0Zvck5hbWVBbmRPcmlnaW4oY29uc3QgU3RyaW5nJiBu
YW1lLCBjb24KICAgICBTdHJpbmcgcGF0aCA9IGZ1bGxQYXRoRm9yRGF0YWJhc2Uob3JpZ2luLCBu
YW1lLCBmYWxzZSk7CiAgICAgaWYgKHBhdGguaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gRGF0
YWJhc2VEZXRhaWxzKG5hbWUsIGRpc3BsYXlOYW1lLCBleHBlY3RlZFVzYWdlLCAwLCBXVEY6Om51
bGxvcHQsIFdURjo6bnVsbG9wdCk7Ci0gICAgcmV0dXJuIERhdGFiYXNlRGV0YWlscyhuYW1lLCBk
aXNwbGF5TmFtZSwgZXhwZWN0ZWRVc2FnZSwgU1FMaXRlRmlsZVN5c3RlbTo6Z2V0RGF0YWJhc2VG
aWxlU2l6ZShwYXRoKSwgU1FMaXRlRmlsZVN5c3RlbTo6ZGF0YWJhc2VDcmVhdGlvblRpbWUocGF0
aCksIFNRTGl0ZUZpbGVTeXN0ZW06OmRhdGFiYXNlTW9kaWZpY2F0aW9uVGltZShwYXRoKSk7Cisg
ICAgcmV0dXJuIERhdGFiYXNlRGV0YWlscyhuYW1lLCBkaXNwbGF5TmFtZSwgZXhwZWN0ZWRVc2Fn
ZSwgU1FMaXRlRmlsZVN5c3RlbTo6ZGF0YWJhc2VGaWxlU2l6ZShwYXRoKSwgU1FMaXRlRmlsZVN5
c3RlbTo6ZGF0YWJhc2VDcmVhdGlvblRpbWUocGF0aCksIFNRTGl0ZUZpbGVTeXN0ZW06OmRhdGFi
YXNlTW9kaWZpY2F0aW9uVGltZShwYXRoKSk7CiB9CiAKLXZvaWQgRGF0YWJhc2VUcmFja2VyOjpz
ZXREYXRhYmFzZURldGFpbHMoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4sIGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBs
b25nIGVzdGltYXRlZFNpemUpCit2b2lkIERhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEZXRh
aWxzKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGVzdGltYXRlZFNpemUpCiB7CiAg
ICAgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIgPSBvcmlnaW4uZGF0YWJhc2VJZGVudGlmaWVyKCk7
CiAgICAgaW50NjRfdCBndWlkID0gMDsKQEAgLTY1MSwyMSArNjUxLDIxIEBAIHZvaWQgRGF0YWJh
c2VUcmFja2VyOjpkZWxldGVPcmlnaW5Mb2NrRm9yKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYg
b3JpZ2luKQogICAgIE9yaWdpbkxvY2s6OmRlbGV0ZUxvY2tGaWxlKG9yaWdpblBhdGgob3JpZ2lu
KSk7CiB9CiAKLXVuc2lnbmVkIGxvbmcgbG9uZyBEYXRhYmFzZVRyYWNrZXI6OnVzYWdlKGNvbnN0
IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luKQordWludDY0X3QgRGF0YWJhc2VUcmFja2VyOjp1
c2FnZShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbikKIHsKICAgICBTdHJpbmcgb3Jp
Z2luUGF0aCA9IHRoaXMtPm9yaWdpblBhdGgob3JpZ2luKTsKLSAgICB1bnNpZ25lZCBsb25nIGxv
bmcgZGlza1VzYWdlID0gMDsKKyAgICB1aW50NjRfdCBkaXNrVXNhZ2UgPSAwOwogICAgIGZvciAo
YXV0byYgZmlsZU5hbWUgOiBGaWxlU3lzdGVtOjpsaXN0RGlyZWN0b3J5KG9yaWdpblBhdGgpKSB7
CiAgICAgICAgIGlmIChmaWxlTmFtZS5lbmRzV2l0aCgiLmRiIikpCi0gICAgICAgICAgICBkaXNr
VXNhZ2UgKz0gU1FMaXRlRmlsZVN5c3RlbTo6Z2V0RGF0YWJhc2VGaWxlU2l6ZShGaWxlU3lzdGVt
OjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQob3JpZ2luUGF0aCwgZmlsZU5hbWUpKTsKKyAgICAg
ICAgICAgIGRpc2tVc2FnZSArPSBTUUxpdGVGaWxlU3lzdGVtOjpkYXRhYmFzZUZpbGVTaXplKEZp
bGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChvcmlnaW5QYXRoLCBmaWxlTmFtZSkp
OwogICAgIH0KICAgICByZXR1cm4gZGlza1VzYWdlOwogfQogCi11bnNpZ25lZCBsb25nIGxvbmcg
RGF0YWJhc2VUcmFja2VyOjpxdW90YU5vTG9jayhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9y
aWdpbikKK3VpbnQ2NF90IERhdGFiYXNlVHJhY2tlcjo6cXVvdGFOb0xvY2soY29uc3QgU2VjdXJp
dHlPcmlnaW5EYXRhJiBvcmlnaW4pCiB7CiAgICAgQVNTRVJUKCFtX2RhdGFiYXNlR3VhcmQudHJ5
TG9jaygpKTsKLSAgICB1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEgPSAwOworICAgIHVpbnQ2NF90
IHF1b3RhID0gMDsKIAogICAgIG9wZW5UcmFja2VyRGF0YWJhc2UoRG9udENyZWF0ZUlmRG9lc05v
dEV4aXN0KTsKICAgICBpZiAoIW1fZGF0YWJhc2UuaXNPcGVuKCkpCkBAIC02ODQsMTMgKzY4NCwx
MyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgRGF0YWJhc2VUcmFja2VyOjpxdW90YU5vTG9jayhjb25z
dCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbgogICAgIHJldHVybiBxdW90YTsKIH0KIAotdW5z
aWduZWQgbG9uZyBsb25nIERhdGFiYXNlVHJhY2tlcjo6cXVvdGEoY29uc3QgU2VjdXJpdHlPcmln
aW5EYXRhJiBvcmlnaW4pCit1aW50NjRfdCBEYXRhYmFzZVRyYWNrZXI6OnF1b3RhKGNvbnN0IFNl
Y3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luKQogewogICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNl
KG1fZGF0YWJhc2VHdWFyZCk7CiAgICAgcmV0dXJuIHF1b3RhTm9Mb2NrKG9yaWdpbik7CiB9CiAK
LXZvaWQgRGF0YWJhc2VUcmFja2VyOjpzZXRRdW90YShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEm
IG9yaWdpbiwgdW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKQordm9pZCBEYXRhYmFzZVRyYWNrZXI6
OnNldFF1b3RhKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luLCB1aW50NjRfdCBxdW90
YSkKIHsKICAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogCkBA
IC0xMjQzLDggKzEyNDMsOCBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6cmVtb3ZlRGVsZXRlZE9w
ZW5lZERhdGFiYXNlcygpCiAgICAgCiBzdGF0aWMgYm9vbCBpc1plcm9CeXRlRmlsZShjb25zdCBT
dHJpbmcmIHBhdGgpCiB7Ci0gICAgbG9uZyBsb25nIHNpemUgPSAwOwotICAgIHJldHVybiBGaWxl
U3lzdGVtOjpnZXRGaWxlU2l6ZShwYXRoLCBzaXplKSAmJiAhc2l6ZTsKKyAgICBhdXRvIHNpemUg
PSBGaWxlU3lzdGVtOjpmaWxlU2l6ZShwYXRoKTsKKyAgICByZXR1cm4gc2l6ZSAmJiAhKnNpemU7
CiB9CiAgICAgCiBib29sIERhdGFiYXNlVHJhY2tlcjo6ZGVsZXRlRGF0YWJhc2VGaWxlSWZFbXB0
eShjb25zdCBTdHJpbmcmIHBhdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaAppbmRleCA0MjE5MDg5ZThhN2RlMWQ4ODdjMGJh
YjA2N2E5MGVmMzU5YTAwNjk0Li4zY2EwYTQ2NTUwMTQ1ZDAwYjIyMjUxMGE2MTkzYjU4MGE5OWUz
NzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlVHJhY2tlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2VUcmFja2VyLmgKQEAgLTY3LDE3ICs2NywxNyBAQCBwdWJsaWM6CiAgICAgLy8gbV9kYXRh
YmFzZUd1YXJkIGFuZCBtX29wZW5EYXRhYmFzZU1hcEd1YXJkIGN1cnJlbnRseSBkb24ndCBvdmVy
bGFwLgogICAgIC8vIG5vdGlmaWNhdGlvbk11dGV4KCkgaXMgY3VycmVudGx5IGluZGVwZW5kZW50
IG9mIHRoZSBvdGhlciBsb2Nrcy4KIAotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGNhbkVzdGFibGlz
aERhdGFiYXNlKERhdGFiYXNlQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgbmFtZSwgdW5zaWduZWQg
bG9uZyBsb25nIGVzdGltYXRlZFNpemUpOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJldHJ5Q2Fu
RXN0YWJsaXNoRGF0YWJhc2UoRGF0YWJhc2VDb250ZXh0JiwgY29uc3QgU3RyaW5nJiBuYW1lLCB1
bnNpZ25lZCBsb25nIGxvbmcgZXN0aW1hdGVkU2l6ZSk7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4g
Y2FuRXN0YWJsaXNoRGF0YWJhc2UoRGF0YWJhc2VDb250ZXh0JiwgY29uc3QgU3RyaW5nJiBuYW1l
LCB1aW50NjRfdCBlc3RpbWF0ZWRTaXplKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiByZXRyeUNh
bkVzdGFibGlzaERhdGFiYXNlKERhdGFiYXNlQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgbmFtZSwg
dWludDY0X3QgZXN0aW1hdGVkU2l6ZSk7CiAKLSAgICB2b2lkIHNldERhdGFiYXNlRGV0YWlscyhj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBlc3RpbWF0ZWRTaXplKTsKKyAgICB2
b2lkIHNldERhdGFiYXNlRGV0YWlscyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGVzdGltYXRl
ZFNpemUpOwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBmdWxsUGF0aEZvckRhdGFiYXNlKGNv
bnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJ
ZkRvZXNOb3RFeGlzdCk7CiAKICAgICBWZWN0b3I8UmVmPERhdGFiYXNlPj4gb3BlbkRhdGFiYXNl
cygpOwogICAgIHZvaWQgYWRkT3BlbkRhdGFiYXNlKERhdGFiYXNlJik7CiAgICAgdm9pZCByZW1v
dmVPcGVuRGF0YWJhc2UoRGF0YWJhc2UmKTsKIAotICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBtYXhp
bXVtU2l6ZShEYXRhYmFzZSYpOworICAgIHVpbnQ2NF90IG1heGltdW1TaXplKERhdGFiYXNlJik7
CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsb3NlQWxsRGF0YWJhc2VzKEN1cnJlbnRRdWVy
eUJlaGF2aW9yID0gQ3VycmVudFF1ZXJ5QmVoYXZpb3I6OlJ1blRvQ29tcGxldGlvbik7CiAKQEAg
LTg2LDkgKzg2LDkgQEAgcHVibGljOgogCiAgICAgRGF0YWJhc2VEZXRhaWxzIGRldGFpbHNGb3JO
YW1lQW5kT3JpZ2luKGNvbnN0IFN0cmluZyYsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpOwog
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgbG9uZyBsb25nIHVzYWdlKGNvbnN0IFNlY3Vy
aXR5T3JpZ2luRGF0YSYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIGxvbmcgbG9uZyBx
dW90YShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFF1b3RhKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYsIHVuc2lnbmVkIGxvbmcgbG9uZyk7
CisgICAgV0VCQ09SRV9FWFBPUlQgdWludDY0X3QgdXNhZ2UoY29uc3QgU2VjdXJpdHlPcmlnaW5E
YXRhJik7CisgICAgV0VCQ09SRV9FWFBPUlQgdWludDY0X3QgcXVvdGEoY29uc3QgU2VjdXJpdHlP
cmlnaW5EYXRhJik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRRdW90YShjb25zdCBTZWN1
cml0eU9yaWdpbkRhdGEmLCB1aW50NjRfdCk7CiAgICAgUmVmUHRyPE9yaWdpbkxvY2s+IG9yaWdp
bkxvY2tGb3IoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJik7CiAKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGRlbGV0ZUFsbERhdGFiYXNlc0ltbWVkaWF0ZWx5KCk7CkBAIC0xMTksMTIgKzExOSwx
MiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IERhdGFiYXNlVHJhY2tlcihjb25z
dCBTdHJpbmcmIGRhdGFiYXNlUGF0aCk7CiAKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBoYXNBZGVx
dWF0ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYsIHVuc2lnbmVkIGxv
bmcgbG9uZyBlc3RpbWF0ZWRTaXplKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBoYXNBZGVxdWF0
ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYsIHVpbnQ2NF90IGVzdGlt
YXRlZFNpemUpOwogCiAgICAgYm9vbCBoYXNFbnRyeUZvck9yaWdpbk5vTG9jayhjb25zdCBTZWN1
cml0eU9yaWdpbkRhdGEmKTsKICAgICBTdHJpbmcgZnVsbFBhdGhGb3JEYXRhYmFzZU5vTG9jayhj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRl
SWZEb2VzTm90RXhpc3QpOwogICAgIFZlY3RvcjxTdHJpbmc+IGRhdGFiYXNlTmFtZXNOb0xvY2so
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJik7Ci0gICAgdW5zaWduZWQgbG9uZyBsb25nIHF1b3Rh
Tm9Mb2NrKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpOworICAgIHVpbnQ2NF90IHF1b3RhTm9M
b2NrKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpOwogCiAgICAgU3RyaW5nIHRyYWNrZXJEYXRh
YmFzZVBhdGgoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9j
b2NvYS9XZWJDb250ZW50UmVhZGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nv
Y29hL1dlYkNvbnRlbnRSZWFkZXJDb2NvYS5tbQppbmRleCBmZjFmNWExMWU3NTQwN2E5ZmRhZjE3
YTc2N2ZkNGJiZDI4Y2VlMDY5Li43MzQ2Mjk0OGUyYTFlNTFkN2QyMDFmODgyNWRiZWMyMzVkMzIz
OGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL1dlYkNvbnRlbnRS
ZWFkZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL1dlYkNvbnRl
bnRSZWFkZXJDb2NvYS5tbQpAQCAtNzI3LDExICs3MjcsOCBAQCBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKICAgICB9CiAKICAgICBPcHRpb25hbDx1aW50NjRfdD4gZmlsZVNpemVG
b3JEaXNwbGF5OwotICAgIGlmICghaXNEaXJlY3RvcnkpIHsKLSAgICAgICAgbG9uZyBsb25nIGZp
bGVTaXplOwotICAgICAgICBGaWxlU3lzdGVtOjpnZXRGaWxlU2l6ZShwYXRoLCBmaWxlU2l6ZSk7
Ci0gICAgICAgIGZpbGVTaXplRm9yRGlzcGxheSA9IGZpbGVTaXplOwotICAgIH0KKyAgICBpZiAo
IWlzRGlyZWN0b3J5KQorICAgICAgICBmaWxlU2l6ZUZvckRpc3BsYXkgPSBGaWxlU3lzdGVtOjpm
aWxlU2l6ZShwYXRoKS52YWx1ZU9yKDApOwogCiAgICAgZnJhbWUuZWRpdG9yKCkucmVnaXN0ZXJB
dHRhY2htZW50SWRlbnRpZmllcihhdHRhY2htZW50LT5lbnN1cmVVbmlxdWVJZGVudGlmaWVyKCks
IGNvbnRlbnRUeXBlLCBwYXRoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAKaW5kZXggMTc0Y2RkMTFk
YzJlNmMwODFmNjZmNThjMDAxMTg2N2Q0NjAyYWJkZi4uMmMwOTQyYmM3OWYzNTk2NTljNzg2YzVl
MjM4OTU2YWRmNGE0MWYwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCkBAIC0zNjksMTEgKzM2OSwx
MSBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjppc01heGltdW1TaXplUmVhY2hlZCgp
IGNvbnN0CiBpbnQ2NF90IEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpzcGFjZU5lZWRlZChpbnQ2
NF90IGNhY2hlVG9TYXZlKQogewogICAgIGludDY0X3Qgc3BhY2VOZWVkZWQgPSAwOwotICAgIGxv
bmcgbG9uZyBmaWxlU2l6ZSA9IDA7Ci0gICAgaWYgKCFGaWxlU3lzdGVtOjpnZXRGaWxlU2l6ZSht
X2NhY2hlRmlsZSwgZmlsZVNpemUpKQorICAgIGF1dG8gZmlsZVNpemUgPSBGaWxlU3lzdGVtOjpm
aWxlU2l6ZShtX2NhY2hlRmlsZSk7CisgICAgaWYgKCFmaWxlU2l6ZSkKICAgICAgICAgcmV0dXJu
IDA7CiAKLSAgICBpbnQ2NF90IGN1cnJlbnRTaXplID0gZmlsZVNpemUgKyBmbGF0RmlsZUFyZWFT
aXplKCk7CisgICAgaW50NjRfdCBjdXJyZW50U2l6ZSA9ICpmaWxlU2l6ZSArIGZsYXRGaWxlQXJl
YVNpemUoKTsKIAogICAgIC8vIERldGVybWluZSB0aGUgYW1vdW50IG9mIGZyZWUgc3BhY2Ugd2Ug
aGF2ZSBhdmFpbGFibGUuCiAgICAgaW50NjRfdCB0b3RhbEF2YWlsYWJsZVNpemUgPSAwOwpAQCAt
MTEyNiw3ICsxMTI2LDcgQEAgUmVmUHRyPEFwcGxpY2F0aW9uQ2FjaGU+IEFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlOjpsb2FkQ2FjaGUodW5zaWduZWQgc3RvcmFnZUlEKQogICAgICAgICAgICAgc2l6
ZSA9IGRhdGEtPnNpemUoKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBwYXRoID0gRmls
ZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGZsYXRGaWxlRGlyZWN0b3J5LCBwYXRo
KTsKLSAgICAgICAgICAgIEZpbGVTeXN0ZW06OmdldEZpbGVTaXplKHBhdGgsIHNpemUpOworICAg
ICAgICAgICAgc2l6ZSA9IEZpbGVTeXN0ZW06OmZpbGVTaXplKHBhdGgpLnZhbHVlT3IoMCk7CiAg
ICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIFN0cmluZyBtaW1lVHlwZSA9IGNhY2hlU3RhdGVt
ZW50LmdldENvbHVtblRleHQoMyk7CkBAIC0xNDU2LDEyICsxNDU2LDggQEAgbG9uZyBsb25nIEFw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpmbGF0RmlsZUFyZWFTaXplKCkKICAgICBsb25nIGxvbmcg
dG90YWxTaXplID0gMDsKICAgICBTdHJpbmcgZmxhdEZpbGVEaXJlY3RvcnkgPSBGaWxlU3lzdGVt
OjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9jYWNoZURpcmVjdG9yeSwgbV9mbGF0RmlsZVN1
YmRpcmVjdG9yeU5hbWUpOwogICAgIHdoaWxlIChzZWxlY3RQYXRocy5zdGVwKCkgPT0gU1FMSVRF
X1JPVykgewotICAgICAgICBTdHJpbmcgcGF0aCA9IHNlbGVjdFBhdGhzLmdldENvbHVtblRleHQo
MCk7Ci0gICAgICAgIFN0cmluZyBmdWxsUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGlu
Z0NvbXBvbmVudChmbGF0RmlsZURpcmVjdG9yeSwgcGF0aCk7Ci0gICAgICAgIGxvbmcgbG9uZyBw
YXRoU2l6ZSA9IDA7Ci0gICAgICAgIGlmICghRmlsZVN5c3RlbTo6Z2V0RmlsZVNpemUoZnVsbFBh
dGgsIHBhdGhTaXplKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB0b3RhbFNpemUg
Kz0gcGF0aFNpemU7CisgICAgICAgIGF1dG8gZnVsbFBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlB
cHBlbmRpbmdDb21wb25lbnQoZmxhdEZpbGVEaXJlY3RvcnksIHNlbGVjdFBhdGhzLmdldENvbHVt
blRleHQoMCkpOworICAgICAgICB0b3RhbFNpemUgKz0gRmlsZVN5c3RlbTo6ZmlsZVNpemUoZnVs
bFBhdGgpLnZhbHVlT3IoMCk7CiAgICAgfQogICAgIAogICAgIHJldHVybiB0b3RhbFNpemU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3RyZWFtLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTdHJlYW0uY3BwCmluZGV4IDg5M2JiMzM5NDc2Y2VmZGE4
ZGYxMGJjOTIwYzBiMzU4MjUxOTE1N2EuLjM0MDY1NjJiZThkNGNlZWFjMTE0OTE3YzAxYTA4NGI5
NDY3OGVkOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTdHJlYW0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTdHJlYW0uY3BwCkBAIC01OSwx
MSArNTksMTEgQEAgbG9uZyBsb25nIEZpbGVTdHJlYW06OmdldFNpemUoY29uc3QgU3RyaW5nJiBw
YXRoLCBPcHRpb25hbDxXYWxsVGltZT4gZXhwZWN0ZWRNb2QKICAgICB9CiAKICAgICAvLyBOb3cg
Z2V0IHRoZSBmaWxlIHNpemUuCi0gICAgbG9uZyBsb25nIGxlbmd0aDsKLSAgICBpZiAoIUZpbGVT
eXN0ZW06OmdldEZpbGVTaXplKHBhdGgsIGxlbmd0aCkpCisgICAgYXV0byBsZW5ndGggPSBGaWxl
U3lzdGVtOjpmaWxlU2l6ZShwYXRoKTsKKyAgICBpZiAoIWxlbmd0aCkKICAgICAgICAgcmV0dXJu
IC0xOwogCi0gICAgcmV0dXJuIGxlbmd0aDsKKyAgICByZXR1cm4gKmxlbmd0aDsKIH0KIAogYm9v
bCBGaWxlU3RyZWFtOjpvcGVuRm9yUmVhZChjb25zdCBTdHJpbmcmIHBhdGgsIGxvbmcgbG9uZyBv
ZmZzZXQsIGxvbmcgbG9uZyBsZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvRm9ybURhdGEuY3BwCmluZGV4IGQ5YjM1YzNkZWEzMjgwNWIwYWUzNjUzMzg5NDRiZGY5NGFh
NWJmNTcuLjcwMmRiYzllNTQzZmM4ZmIxZmQ1OWM2N2E3MTJiNzYwZDQyZGNlNTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwCkBAIC0xMzEsMTAgKzEz
MSw3IEBAIHVpbnQ2NF90IEZvcm1EYXRhRWxlbWVudDo6bGVuZ3RoSW5CeXRlcyhjb25zdCBGdW5j
dGlvbjx1aW50NjRfdChjb25zdCBVUkwmKT4mIGJsCiAgICAgICAgIH0sIFtdIChjb25zdCBGb3Jt
RGF0YUVsZW1lbnQ6OkVuY29kZWRGaWxlRGF0YSYgZmlsZURhdGEpIHsKICAgICAgICAgICAgIGlm
IChmaWxlRGF0YS5maWxlTGVuZ3RoICE9IEJsb2JEYXRhSXRlbTo6dG9FbmRPZkZpbGUpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90PihmaWxlRGF0YS5maWxlTGVu
Z3RoKTsKLSAgICAgICAgICAgIGxvbmcgbG9uZyBmaWxlU2l6ZTsKLSAgICAgICAgICAgIGlmIChG
aWxlU3lzdGVtOjpnZXRGaWxlU2l6ZShmaWxlRGF0YS5maWxlbmFtZSwgZmlsZVNpemUpKQotICAg
ICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50NjRfdD4oZmlsZVNpemUpOwotICAg
ICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90PigwKTsKKyAgICAgICAgICAgIHJl
dHVybiBGaWxlU3lzdGVtOjpmaWxlU2l6ZShmaWxlRGF0YS5maWxlbmFtZSkudmFsdWVPcigwKTsK
ICAgICAgICAgfSwgWyZibG9iU2l6ZV0gKGNvbnN0IEZvcm1EYXRhRWxlbWVudDo6RW5jb2RlZEJs
b2JEYXRhJiBibG9iRGF0YSkgewogICAgICAgICAgICAgcmV0dXJuIGJsb2JTaXplKGJsb2JEYXRh
LnVybCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9DdXJsQ2FjaGVFbnRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ3VybENhY2hlRW50cnkuY3BwCmluZGV4IDllNzcyZWVkMTZmNGJkM2JmNjIy
YjczMWExMGY1NjM2ZTEwMTYyZDUuLjhkMzU3MGU2Zjk5YjgyODdiYjViZGVkMjU3Y2ViNTdjYTI2
MDRkNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9D
dXJsQ2FjaGVFbnRyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0N1cmxDYWNoZUVudHJ5LmNwcApAQCAtMjMyLDIxICsyMzIsMjEgQEAgYm9vbCBDdXJsQ2Fj
aGVFbnRyeTo6bG9hZEZpbGVUb0J1ZmZlcihjb25zdCBTdHJpbmcmIGZpbGVwYXRoLCBWZWN0b3I8
Y2hhcj4mIGJ1ZmYKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIGxvbmcgbG9u
ZyBmaWxlc2l6ZSA9IC0xOwotICAgIGlmICghRmlsZVN5c3RlbTo6Z2V0RmlsZVNpemUoZmlsZXBh
dGgsIGZpbGVzaXplKSkgeworICAgIGF1dG8gZmlsZXNpemUgPSBGaWxlU3lzdGVtOjpmaWxlU2l6
ZShmaWxlcGF0aCk7CisgICAgaWYgKCFmaWxlc2l6ZSkgewogICAgICAgICBMT0coTmV0d29yaywg
IkNhY2hlIEVycm9yOiBDb3VsZCBub3QgZ2V0IGZpbGUgc2l6ZSBvZiAlc1xuIiwgZmlsZXBhdGgu
bGF0aW4xKCkuZGF0YSgpKTsKICAgICAgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKGlucHV0Rmls
ZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICAvLyBMb2FkIHRoZSBmaWxl
IGNvbnRlbnQgaW50byBidWZmZXIKLSAgICBidWZmZXIucmVzaXplKGZpbGVzaXplKTsKKyAgICBi
dWZmZXIucmVzaXplKCpmaWxlc2l6ZSk7CiAgICAgaW50IGJ1ZmZlclBvc2l0aW9uID0gMDsKICAg
ICBpbnQgYnVmZmVyUmVhZFNpemUgPSA0MDk2OwogICAgIGludCBieXRlc1JlYWQgPSAwOwotICAg
IHdoaWxlIChmaWxlc2l6ZSA+IGJ1ZmZlclBvc2l0aW9uKSB7Ci0gICAgICAgIGlmIChmaWxlc2l6
ZSAtIGJ1ZmZlclBvc2l0aW9uIDwgYnVmZmVyUmVhZFNpemUpCi0gICAgICAgICAgICBidWZmZXJS
ZWFkU2l6ZSA9IGZpbGVzaXplIC0gYnVmZmVyUG9zaXRpb247CisgICAgd2hpbGUgKCpmaWxlc2l6
ZSA+IGJ1ZmZlclBvc2l0aW9uKSB7CisgICAgICAgIGlmICgqZmlsZXNpemUgLSBidWZmZXJQb3Np
dGlvbiA8IGJ1ZmZlclJlYWRTaXplKQorICAgICAgICAgICAgYnVmZmVyUmVhZFNpemUgPSAqZmls
ZXNpemUgLSBidWZmZXJQb3NpdGlvbjsKIAogICAgICAgICBieXRlc1JlYWQgPSBGaWxlU3lzdGVt
OjpyZWFkRnJvbUZpbGUoaW5wdXRGaWxlLCBidWZmZXIuZGF0YSgpICsgYnVmZmVyUG9zaXRpb24s
IGJ1ZmZlclJlYWRTaXplKTsKICAgICAgICAgaWYgKGJ5dGVzUmVhZCAhPSBidWZmZXJSZWFkU2l6
ZSkgewpAQCAtMzMwLDE5ICszMzAsMTggQEAgdm9pZCBDdXJsQ2FjaGVFbnRyeTo6c2V0SXNMb2Fk
aW5nKGJvb2wgaXNMb2FkaW5nKQogc2l6ZV90IEN1cmxDYWNoZUVudHJ5OjplbnRyeVNpemUoKQog
ewogICAgIGlmICghbV9lbnRyeVNpemUpIHsKLSAgICAgICAgbG9uZyBsb25nIGhlYWRlckZpbGVT
aXplOwotICAgICAgICBsb25nIGxvbmcgY29udGVudEZpbGVTaXplOwotCi0gICAgICAgIGlmICgh
RmlsZVN5c3RlbTo6Z2V0RmlsZVNpemUobV9oZWFkZXJGaWxlbmFtZSwgaGVhZGVyRmlsZVNpemUp
KSB7CisgICAgICAgIGF1dG8gaGVhZGVyRmlsZVNpemUgPSBGaWxlU3lzdGVtOjpmaWxlU2l6ZSht
X2hlYWRlckZpbGVuYW1lKTsKKyAgICAgICAgaWYgKCFoZWFkZXJGaWxlU2l6ZSkgewogICAgICAg
ICAgICAgTE9HKE5ldHdvcmssICJDYWNoZSBFcnJvcjogQ291bGQgbm90IGdldCBmaWxlIHNpemUg
b2YgJXNcbiIsIG1faGVhZGVyRmlsZW5hbWUubGF0aW4xKCkuZGF0YSgpKTsKICAgICAgICAgICAg
IHJldHVybiBtX2VudHJ5U2l6ZTsKICAgICAgICAgfQotICAgICAgICBpZiAoIUZpbGVTeXN0ZW06
OmdldEZpbGVTaXplKG1fY29udGVudEZpbGVuYW1lLCBjb250ZW50RmlsZVNpemUpKSB7CisgICAg
ICAgIGF1dG8gY29udGVudEZpbGVTaXplID0gRmlsZVN5c3RlbTo6ZmlsZVNpemUobV9jb250ZW50
RmlsZW5hbWUpOworICAgICAgICBpZiAoIWNvbnRlbnRGaWxlU2l6ZSkgewogICAgICAgICAgICAg
TE9HKE5ldHdvcmssICJDYWNoZSBFcnJvcjogQ291bGQgbm90IGdldCBmaWxlIHNpemUgb2YgJXNc
biIsIG1fY29udGVudEZpbGVuYW1lLmxhdGluMSgpLmRhdGEoKSk7CiAgICAgICAgICAgICByZXR1
cm4gbV9lbnRyeVNpemU7CiAgICAgICAgIH0KIAotICAgICAgICBtX2VudHJ5U2l6ZSA9IGhlYWRl
ckZpbGVTaXplICsgY29udGVudEZpbGVTaXplOworICAgICAgICBtX2VudHJ5U2l6ZSA9ICpoZWFk
ZXJGaWxlU2l6ZSArICpjb250ZW50RmlsZVNpemU7CiAgICAgfQogCiAgICAgcmV0dXJuIG1fZW50
cnlTaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L0N1cmxDYWNoZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0N1cmxDYWNoZU1hbmFnZXIuY3BwCmluZGV4IDkxNTU4N2U5YTg2MmI2YmJhZjkxNzRjODIx
MGM5NTVmZGJhYWJlNzYuLmU2OWY2YzM1Nzc1ZWRlY2NlYjIyZTg1MTU0NjUzYTk0ODYyNmZiY2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2Fj
aGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q3VybENhY2hlTWFuYWdlci5jcHAKQEAgLTEwOSw4ICsxMDksOCBAQCB2b2lkIEN1cmxDYWNoZU1h
bmFnZXI6OmxvYWRJbmRleCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBsb25nIGxv
bmcgZmlsZXNpemUgPSAtMTsKLSAgICBpZiAoIUZpbGVTeXN0ZW06OmdldEZpbGVTaXplKGluZGV4
RmlsZVBhdGgsIGZpbGVzaXplKSkgeworICAgIGF1dG8gZmlsZXNpemUgPSBGaWxlU3lzdGVtOjpm
aWxlU2l6ZShpbmRleEZpbGVQYXRoKTsKKyAgICBpZiAoIWZpbGVzaXplKSB7CiAgICAgICAgIExP
RyhOZXR3b3JrLCAiQ2FjaGUgRXJyb3I6IENvdWxkIG5vdCBnZXQgZmlsZSBzaXplIG9mICVzXG4i
LCBpbmRleEZpbGVQYXRoLmxhdGluMSgpLmRhdGEoKSk7CiAgICAgICAgIEZpbGVTeXN0ZW06OmNs
b3NlRmlsZShpbmRleEZpbGUpOwogICAgICAgICByZXR1cm47CkBAIC0xMTgsMTIgKzExOCwxMiBA
QCB2b2lkIEN1cmxDYWNoZU1hbmFnZXI6OmxvYWRJbmRleCgpCiAKICAgICAvLyBMb2FkIHRoZSBm
aWxlIGNvbnRlbnQgaW50byBidWZmZXIKICAgICBWZWN0b3I8Y2hhcj4gYnVmZmVyOwotICAgIGJ1
ZmZlci5yZXNpemUoZmlsZXNpemUpOworICAgIGJ1ZmZlci5yZXNpemUoKmZpbGVzaXplKTsKICAg
ICBpbnQgYnVmZmVyUG9zaXRpb24gPSAwOwogICAgIGludCBidWZmZXJSZWFkU2l6ZSA9IElPX0JV
RkZFUlNJWkU7Ci0gICAgd2hpbGUgKGZpbGVzaXplID4gYnVmZmVyUG9zaXRpb24pIHsKLSAgICAg
ICAgaWYgKGZpbGVzaXplIC0gYnVmZmVyUG9zaXRpb24gPCBidWZmZXJSZWFkU2l6ZSkKLSAgICAg
ICAgICAgIGJ1ZmZlclJlYWRTaXplID0gZmlsZXNpemUgLSBidWZmZXJQb3NpdGlvbjsKKyAgICB3
aGlsZSAoKmZpbGVzaXplID4gYnVmZmVyUG9zaXRpb24pIHsKKyAgICAgICAgaWYgKCpmaWxlc2l6
ZSAtIGJ1ZmZlclBvc2l0aW9uIDwgYnVmZmVyUmVhZFNpemUpCisgICAgICAgICAgICBidWZmZXJS
ZWFkU2l6ZSA9ICpmaWxlc2l6ZSAtIGJ1ZmZlclBvc2l0aW9uOwogCiAgICAgICAgIEZpbGVTeXN0
ZW06OnJlYWRGcm9tRmlsZShpbmRleEZpbGUsIGJ1ZmZlci5kYXRhKCkgKyBidWZmZXJQb3NpdGlv
biwgYnVmZmVyUmVhZFNpemUpOwogICAgICAgICBidWZmZXJQb3NpdGlvbiArPSBidWZmZXJSZWFk
U2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVGaWxl
U3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVGaWxlU3lzdGVt
LmNwcAppbmRleCA2MDk1OWExOTQwMjA4ZGNjMjg1YmZmMTY2NDExZTBmZDgwNGQ1YWNiLi4wODgw
Mzg0Mjk3YTQ5OTI5YWQ4MWMwMDRkYjFhMjlhZTU3MmE2NmJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRmlsZVN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZUZpbGVTeXN0ZW0uY3BwCkBAIC05OCwxOSArOTgsMTgg
QEAgYm9vbCBTUUxpdGVGaWxlU3lzdGVtOjp0cnVuY2F0ZURhdGFiYXNlRmlsZShzcWxpdGUzKiBk
YXRhYmFzZSkKIH0KICNlbmRpZgogICAgIAotbG9uZyBsb25nIFNRTGl0ZUZpbGVTeXN0ZW06Omdl
dERhdGFiYXNlRmlsZVNpemUoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSkKK3VpbnQ2NF90IFNRTGl0
ZUZpbGVTeXN0ZW06OmRhdGFiYXNlRmlsZVNpemUoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSkKIHsg
ICAgICAgIAotICAgIGxvbmcgbG9uZyBmaWxlU2l6ZSA9IDA7Ci0gICAgbG9uZyBsb25nIHRvdGFs
U2l6ZSA9IDA7CisgICAgdWludDY0X3QgdG90YWxTaXplID0gMDsKIAotICAgIGlmIChGaWxlU3lz
dGVtOjpnZXRGaWxlU2l6ZShmaWxlTmFtZSwgZmlsZVNpemUpKQotICAgICAgICB0b3RhbFNpemUg
Kz0gZmlsZVNpemU7CisgICAgaWYgKGF1dG8gZmlsZVNpemUgPSBGaWxlU3lzdGVtOjpmaWxlU2l6
ZShmaWxlTmFtZSkpCisgICAgICAgIHRvdGFsU2l6ZSArPSAqZmlsZVNpemU7CiAKLSAgICBpZiAo
RmlsZVN5c3RlbTo6Z2V0RmlsZVNpemUobWFrZVN0cmluZyhmaWxlTmFtZSwgIi13YWwiX3MpLCBm
aWxlU2l6ZSkpCi0gICAgICAgIHRvdGFsU2l6ZSArPSBmaWxlU2l6ZTsKKyAgICBpZiAoYXV0byBm
aWxlU2l6ZSA9IEZpbGVTeXN0ZW06OmZpbGVTaXplKG1ha2VTdHJpbmcoZmlsZU5hbWUsICItd2Fs
Il9zKSkpCisgICAgICAgIHRvdGFsU2l6ZSArPSAqZmlsZVNpemU7CiAKLSAgICBpZiAoRmlsZVN5
c3RlbTo6Z2V0RmlsZVNpemUobWFrZVN0cmluZyhmaWxlTmFtZSwgIi1zaG0iX3MpLCBmaWxlU2l6
ZSkpCi0gICAgICAgIHRvdGFsU2l6ZSArPSBmaWxlU2l6ZTsKKyAgICBpZiAoYXV0byBmaWxlU2l6
ZSA9IEZpbGVTeXN0ZW06OmZpbGVTaXplKG1ha2VTdHJpbmcoZmlsZU5hbWUsICItc2htIl9zKSkp
CisgICAgICAgIHRvdGFsU2l6ZSArPSAqZmlsZVNpemU7CiAKICAgICByZXR1cm4gdG90YWxTaXpl
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZUZpbGVT
eXN0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVGaWxlU3lzdGVtLmgK
aW5kZXggOWZmOWU4ZjFmMTY1NGY4MmRiM2Q2NmFjNTZjODA2MGVjZWQ2MWQxNi4uZWEyZjE2OTkz
MGQ1NGYzZGJhOTkwN2Q4OGYyYmNjZjc2M2NkYmJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3FsL1NRTGl0ZUZpbGVTeXN0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9zcWwvU1FMaXRlRmlsZVN5c3RlbS5oCkBAIC04OSw3ICs4OSw3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgYm9vbCB0cnVuY2F0ZURhdGFiYXNlRmlsZShzcWxpdGUzKiBkYXRhYmFzZSk7
CiAjZW5kaWYKICAgICAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgbG9uZyBsb25nIGdldERh
dGFiYXNlRmlsZVNpemUoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSk7CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIHVpbnQ2NF90IGRhdGFiYXNlRmlsZVNpemUoY29uc3QgU3RyaW5nJiBmaWxlTmFt
ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIE9wdGlvbmFsPFdhbGxUaW1lPiBkYXRhYmFz
ZUNyZWF0aW9uVGltZShjb25zdCBTdHJpbmcmIGZpbGVOYW1lKTsKICAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgT3B0aW9uYWw8V2FsbFRpbWU+IGRhdGFiYXNlTW9kaWZpY2F0aW9uVGltZShjb25z
dCBTdHJpbmcmIGZpbGVOYW1lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZVdpbi5jcHAKaW5kZXggMmU2MGI3ZDQ4Zjc5ZmMyNmRjMjc1MDI1YjVmOGYzZWYyOGY1MWQ2
My4uN2Y2Y2JlZDZhYzQ3YzVjN2RmYzJkMjliNGZjMjQ1ODdjZDI3ZDQ0NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwCkBAIC0xMDUyLDE3ICsxMDUyLDE3
IEBAIFN0cmluZyBSZW5kZXJUaGVtZVdpbjo6c3RyaW5nV2l0aENvbnRlbnRzT2ZGaWxlKGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nCiAgICAgaWYgKCFGaWxlU3lzdGVtOjppc0hhbmRs
ZVZhbGlkKHJlcXVlc3RlZEZpbGVIYW5kbGUpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAK
LSAgICBsb25nIGxvbmcgZmlsZXNpemUgPSAtMTsKLSAgICBpZiAoIUZpbGVTeXN0ZW06OmdldEZp
bGVTaXplKHJlcXVlc3RlZEZpbGVIYW5kbGUsIGZpbGVzaXplKSkgeworICAgIGF1dG8gZmlsZXNp
emUgPSBGaWxlU3lzdGVtOjpmaWxlU2l6ZShyZXF1ZXN0ZWRGaWxlSGFuZGxlKTsKKyAgICBpZiAo
IWZpbGVzaXplKSB7CiAgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShyZXF1ZXN0ZWRGaWxl
SGFuZGxlKTsKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KIAogICAgIFZlY3Rvcjxj
aGFyPiBmaWxlQ29udGVudHM7Ci0gICAgZmlsbEJ1ZmZlcldpdGhDb250ZW50c09mRmlsZShyZXF1
ZXN0ZWRGaWxlSGFuZGxlLCBmaWxlc2l6ZSwgZmlsZUNvbnRlbnRzKTsKKyAgICBmaWxsQnVmZmVy
V2l0aENvbnRlbnRzT2ZGaWxlKHJlcXVlc3RlZEZpbGVIYW5kbGUsICpmaWxlc2l6ZSwgZmlsZUNv
bnRlbnRzKTsKICAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUocmVxdWVzdGVkRmlsZUhhbmRsZSk7
CiAKLSAgICByZXR1cm4gU3RyaW5nKGZpbGVDb250ZW50cy5kYXRhKCksIHN0YXRpY19jYXN0PHNp
emVfdD4oZmlsZXNpemUpKTsKKyAgICByZXR1cm4gU3RyaW5nKGZpbGVDb250ZW50cy5kYXRhKCks
ICpmaWxlc2l6ZSk7CiAjZWxzZQogICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2NyaXB0
U3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Ny
aXB0U3RvcmFnZS5jcHAKaW5kZXggNTk4MWJiN2VjNTkxOTQ4MTE0MDViZjk4MDQ5YmMzMzVjMzBh
MDYxZS4uZDhlZWJlNDUxODkyMjBjMjg4N2MwMTBlYTZhYTRiOTljN2M3NjZhMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NjcmlwdFN0b3JhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTY3JpcHRT
dG9yYWdlLmNwcApAQCAtMzcsNyArMzcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0
YXRpYyBib29sIHNob3VsZFVzZUZpbGVNYXBwaW5nKHNpemVfdCBmaWxlU2l6ZSkKK3N0YXRpYyBi
b29sIHNob3VsZFVzZUZpbGVNYXBwaW5nKHVpbnQ2NF90IGZpbGVTaXplKQogewogICAgIHJldHVy
biBmaWxlU2l6ZSA+PSBwYWdlU2l6ZSgpOwogfQpAQCAtMTIwLDE0ICsxMjAsMTQgQEAgU2NyaXB0
QnVmZmVyIFNXU2NyaXB0U3RvcmFnZTo6cmV0cmlldmUoY29uc3QgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbktleSYgcmVnaXMKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAogICAgIGF1
dG8gc2NyaXB0UGF0aCA9IHRoaXMtPnNjcmlwdFBhdGgocmVnaXN0cmF0aW9uS2V5LCBzY3JpcHRV
UkwpOwotICAgIGxvbmcgbG9uZyBmaWxlU2l6ZSA9IDA7Ci0gICAgaWYgKCFGaWxlU3lzdGVtOjpn
ZXRGaWxlU2l6ZShzY3JpcHRQYXRoLCBmaWxlU2l6ZSkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoU2VydmljZVdvcmtlciwgIlNXU2NyaXB0U3RvcmFnZTo6cmV0cmlldmU6IEZhaWx1cmUg
dG8gcmV0cmlldmUgJXMsIEZpbGVTeXN0ZW06OmdldEZpbGVTaXplKCkgZmFpbGVkIiwgc2NyaXB0
UGF0aC51dGY4KCkuZGF0YSgpKTsKKyAgICBhdXRvIGZpbGVTaXplID0gRmlsZVN5c3RlbTo6Zmls
ZVNpemUoc2NyaXB0UGF0aCk7CisgICAgaWYgKCFmaWxlU2l6ZSkgeworICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihTZXJ2aWNlV29ya2VyLCAiU1dTY3JpcHRTdG9yYWdlOjpyZXRyaWV2ZTogRmFp
bHVyZSB0byByZXRyaWV2ZSAlcywgRmlsZVN5c3RlbTo6ZmlsZVNpemUoKSBmYWlsZWQiLCBzY3Jp
cHRQYXRoLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAogICAg
IC8vIEZJWE1FOiBEbyB3ZSBuZWVkIHRvIGRpc2FibGUgZmlsZSBtYXBwaW5nIGluIG1vcmUgY2Fz
ZXMgdG8gYXZvaWQgaGF2aW5nIHRvbyBtYW55IGZpbGUgZGVzY3JpcHRvcnMgb3Blbj8KLSAgICBy
ZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoc2NyaXB0UGF0aCwg
RmlsZVN5c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlByaXZhdGUsIHNob3VsZFVzZUZpbGVNYXBwaW5n
KGZpbGVTaXplKSA/IFNoYXJlZEJ1ZmZlcjo6TWF5VXNlRmlsZU1hcHBpbmc6OlllcyA6IFNoYXJl
ZEJ1ZmZlcjo6TWF5VXNlRmlsZU1hcHBpbmc6Ok5vKTsKKyAgICByZXR1cm4gU2hhcmVkQnVmZmVy
OjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoc2NyaXB0UGF0aCwgRmlsZVN5c3RlbTo6TWFwcGVk
RmlsZU1vZGU6OlByaXZhdGUsIHNob3VsZFVzZUZpbGVNYXBwaW5nKCpmaWxlU2l6ZSkgPyBTaGFy
ZWRCdWZmZXI6Ok1heVVzZUZpbGVNYXBwaW5nOjpZZXMgOiBTaGFyZWRCdWZmZXI6Ok1heVVzZUZp
bGVNYXBwaW5nOjpObyk7CiB9CiAKIHZvaWQgU1dTY3JpcHRTdG9yYWdlOjpjbGVhcihjb25zdCBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiByZWdpc3RyYXRpb25LZXkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0
YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2Fs
U3RvcmFnZURhdGFiYXNlLmNwcAppbmRleCA1MjMyMzNkMThiMDQwMDNlZjMwZDMzNjMyY2ZlNjJm
MDJmMjdhMzQ4Li43NjAxMWUzYTI4ZDVkMTM0OTk4NThkM2JjYzMyYTIwMTA3ZWQzZTFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9y
YWdlRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3Rv
cmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZS5jcHAKQEAgLTIyNCw4ICsyMjQsOCBAQCB2b2lkIExv
Y2FsU3RvcmFnZURhdGFiYXNlOjpzZXRJdGVtKGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJp
bmcmIHZhbHVlLCBTdHJpbgogCiAgICAgaWYgKG1fcXVvdGFJbkJ5dGVzICE9IFdlYkNvcmU6OlN0
b3JhZ2VNYXA6Om5vUXVvdGEpIHsKICAgICAgICAgaWYgKCFtX2RhdGFiYXNlU2l6ZSkKLSAgICAg
ICAgICAgIG1fZGF0YWJhc2VTaXplID0gU1FMaXRlRmlsZVN5c3RlbTo6Z2V0RGF0YWJhc2VGaWxl
U2l6ZShtX2RhdGFiYXNlUGF0aCk7Ci0gICAgICAgIENoZWNrZWRVaW50MzIgbmV3RGF0YWJhc2VT
aXplID0gKm1fZGF0YWJhc2VTaXplOworICAgICAgICAgICAgbV9kYXRhYmFzZVNpemUgPSBTUUxp
dGVGaWxlU3lzdGVtOjpkYXRhYmFzZUZpbGVTaXplKG1fZGF0YWJhc2VQYXRoKTsKKyAgICAgICAg
Q2hlY2tlZFVpbnQ2NCBuZXdEYXRhYmFzZVNpemUgPSAqbV9kYXRhYmFzZVNpemU7CiAgICAgICAg
IG5ld0RhdGFiYXNlU2l6ZSAtPSBvbGRWYWx1ZS5zaXplSW5CeXRlcygpOwogICAgICAgICBuZXdE
YXRhYmFzZVNpemUgKz0gdmFsdWUuc2l6ZUluQnl0ZXMoKTsKICAgICAgICAgaWYgKG9sZFZhbHVl
LmlzTnVsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJT
dG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuaAppbmRleCBiN2VmMDM0ZDJhODZj
MjRiZDA0ZGY3OTQzMTdjYWJhZmMwM2U3NDZjLi5kYjhhZDk4M2VlYWQ4MGY4YzVlOTBiNmYwMWEy
ZjYzMTQ2NTE3NzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dl
YlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuaApAQCAtNjgsNyArNjgs
NyBAQCBwcml2YXRlOgogICAgIG11dGFibGUgV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2UgbV9kYXRh
YmFzZTsKICAgICBjb25zdCB1bnNpZ25lZCBtX3F1b3RhSW5CeXRlcyB7IDAgfTsKICAgICBib29s
IG1faXNDbG9zZWQgeyBmYWxzZSB9OwotICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBtX2RhdGFiYXNl
U2l6ZTsKKyAgICBPcHRpb25hbDx1aW50NjRfdD4gbV9kYXRhYmFzZVNpemU7CiAKICAgICBtdXRh
YmxlIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ+IG1fY2xlYXJTdGF0
ZW1lbnQ7CiAgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U1FMaXRlU3RhdGVt
ZW50PiBtX2luc2VydFN0YXRlbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcAppbmRleCAwYjRiZjY0ZmMz
NmY3YzY3MzYzZDU0ZjdkYWZhN2Y4Y2Y5NDY0MzVhLi5iNGY4OTA3YmJhMGI5ZGI5YWI5MGNiMmY3
YTQxZmJhN2ZiMTU3MGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCkBAIC0yMTcsMTAgKzIxNyw3IEBA
IHN0YXRpYyB1aW50NjRfdCBnZXREaXJlY3RvcnlTaXplKGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5
UGF0aCkKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0K
LSAgICAgICAgbG9uZyBsb25nIGZpbGVTaXplID0gMDsKLSAgICAgICAgRmlsZVN5c3RlbTo6Z2V0
RmlsZVNpemUocGF0aCwgZmlsZVNpemUpOwotICAgICAgICBkaXJlY3RvcnlTaXplICs9IGZpbGVT
aXplOworICAgICAgICBkaXJlY3RvcnlTaXplICs9IEZpbGVTeXN0ZW06OmZpbGVTaXplKHBhdGgp
LnZhbHVlT3IoMCk7CiAgICAgfQogICAgIHJldHVybiBkaXJlY3RvcnlTaXplOwogfQpAQCAtNTY2
LDggKzU2Myw4IEBAIE9wdGlvbmFsPHVpbnQ2NF90PiBFbmdpbmU6OnJlYWRTaXplRmlsZShjb25z
dCBTdHJpbmcmIHBhdGgpCiAgICAgaWYgKCFGaWxlU3lzdGVtOjppc0hhbmRsZVZhbGlkKGZpbGVI
YW5kbGUpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgbG9uZyBsb25nIGZp
bGVTaXplID0gMDsKLSAgICBpZiAoIUZpbGVTeXN0ZW06OmdldEZpbGVTaXplKHBhdGgsIGZpbGVT
aXplKSB8fCAhZmlsZVNpemUpCisgICAgYXV0byBmaWxlU2l6ZSA9IEZpbGVTeXN0ZW06OmZpbGVT
aXplKHBhdGgpLnZhbHVlT3IoMCk7CisgICAgaWYgKCFmaWxlU2l6ZSkKICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKIAogICAgIHVuc2lnbmVkIGJ5dGVzVG9SZWFkOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVCbG9iU3RvcmFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUJs
b2JTdG9yYWdlLmNwcAppbmRleCAzNDhiMjFiOWQ4NzU0ZjQyMjcwZjMyMGRiMmRiZmZjMGY4MzJj
YTQ1Li4yYWFiN2IwNjJjZGM4NGQxMDY5NzM0OWQ4OTJiYWNhOTgwNGY3MDg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUJsb2JTdG9y
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZUJsb2JTdG9yYWdlLmNwcApAQCAtNjksMTEgKzY5LDggQEAgdm9pZCBCbG9iU3RvcmFnZTo6
c3luY2hyb25pemUoKQogICAgICAgICAvLyBObyBjbGllbnRzIGxlZnQgZm9yIHRoaXMgYmxvYi4K
ICAgICAgICAgaWYgKGxpbmtDb3VudCAmJiAqbGlua0NvdW50ID09IDEpCiAgICAgICAgICAgICBG
aWxlU3lzdGVtOjpkZWxldGVGaWxlKHBhdGgpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAg
IGxvbmcgbG9uZyBmaWxlU2l6ZSA9IDA7Ci0gICAgICAgICAgICBGaWxlU3lzdGVtOjpnZXRGaWxl
U2l6ZShwYXRoLCBmaWxlU2l6ZSk7Ci0gICAgICAgICAgICBtX2FwcHJveGltYXRlU2l6ZSArPSBm
aWxlU2l6ZTsKLSAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2FwcHJveGlt
YXRlU2l6ZSArPSBGaWxlU3lzdGVtOjpmaWxlU2l6ZShwYXRoKS52YWx1ZU9yKDApOwogICAgIH0p
OwogCiAgICAgTE9HKE5ldHdvcmtDYWNoZVN0b3JhZ2UsICIoTmV0d29ya1Byb2Nlc3MpIGJsb2Ig
c3luY2hyb25pemF0aW9uIGNvbXBsZXRlZCBhcHByb3hpbWF0ZVNpemU9JXp1IiwgYXBwcm94aW1h
dGVTaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9OZXR3b3JrQ2FjaGVEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlRGF0YS5jcHAKaW5kZXggOGE4ZWYyNDU5NmVkZTNjMmQxMjU4ZGYxY2Rk
MThjZmU2NGFmOTgwZC4uNDZmODJlNGJmOTFmY2NkOTVhZDE4ZDc0YzZiM2YxYmEwMWQ2MzQ4MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZURhdGEuY3BwCkBAIC01NCwxMiArNTQsMTIgQEAgRGF0YSBtYXBGaWxlKGNvbnN0IGNo
YXIqIHBhdGgpCiAgICAgYXV0byBmaWxlID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUocGF0aCwgRmls
ZVN5c3RlbTo6RmlsZU9wZW5Nb2RlOjpSZWFkKTsKICAgICBpZiAoIUZpbGVTeXN0ZW06OmlzSGFu
ZGxlVmFsaWQoZmlsZSkpCiAgICAgICAgIHJldHVybiB7IH07Ci0gICAgbG9uZyBsb25nIHNpemU7
Ci0gICAgaWYgKCFGaWxlU3lzdGVtOjpnZXRGaWxlU2l6ZShmaWxlLCBzaXplKSkgeworICAgIGF1
dG8gc2l6ZSA9IEZpbGVTeXN0ZW06OmZpbGVTaXplKGZpbGUpOworICAgIGlmICghc2l6ZSkgewog
ICAgICAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUoZmlsZSk7CiAgICAgICAgIHJldHVybiB7IH07
CiAgICAgfQotICAgIHJldHVybiBhZG9wdEFuZE1hcEZpbGUoZmlsZSwgMCwgc2l6ZSk7CisgICAg
cmV0dXJuIGFkb3B0QW5kTWFwRmlsZShmaWxlLCAwLCAqc2l6ZSk7CiB9CiAKIERhdGEgbWFwRmls
ZShjb25zdCBTdHJpbmcmIHBhdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbEN1cmwuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxDdXJsLmNwcAppbmRl
eCBiNjc0ZGY0MDU0YWE5ZGE3YjA2ODcxM2RjOTk2MGM0NjllNjQxZDMyLi4xYmQ1YmY3NGNmYWZk
MjEwNzlkMzA1ZWRiNTFlMTg5MzU5ZTJlZTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbEN1cmwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsQ3Vy
bC5jcHAKQEAgLTU4LDEzICs1OCwxMyBAQCBJT0NoYW5uZWw6On5JT0NoYW5uZWwoKQogdm9pZCBJ
T0NoYW5uZWw6OnJlYWQoc2l6ZV90IG9mZnNldCwgc2l6ZV90IHNpemUsIFdvcmtRdWV1ZSYgcXVl
dWUsIEZ1bmN0aW9uPHZvaWQoRGF0YSYsIGludCBlcnJvcik+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgcXVldWUuZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgb2Zmc2V0LCBzaXplLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXSB7Ci0gICAgICAgIGxvbmcgbG9uZyBmaWxlU2l6ZTsKLSAgICAgICAgaWYgKCFG
aWxlU3lzdGVtOjpnZXRGaWxlU2l6ZShtX2ZpbGVEZXNjcmlwdG9yLCBmaWxlU2l6ZSkgfHwgZmls
ZVNpemUgPiBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKSB7CisgICAgICAgIGF1
dG8gZmlsZVNpemUgPSBGaWxlU3lzdGVtOjpmaWxlU2l6ZShtX2ZpbGVEZXNjcmlwdG9yKTsKKyAg
ICAgICAgaWYgKCFmaWxlU2l6ZSB8fCAqZmlsZVNpemUgPiBzdGQ6Om51bWVyaWNfbGltaXRzPHNp
emVfdD46Om1heCgpKSB7CiAgICAgICAgICAgICBEYXRhIGRhdGE7CiAgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihkYXRhLCAtMSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
LSAgICAgICAgc2l6ZV90IHJlYWRTaXplID0gZmlsZVNpemU7CisgICAgICAgIHNpemVfdCByZWFk
U2l6ZSA9ICpmaWxlU2l6ZTsKICAgICAgICAgcmVhZFNpemUgPSBzdGQ6Om1pbihzaXplLCByZWFk
U2l6ZSk7CiAgICAgICAgIFZlY3Rvcjx1aW50OF90PiBidWZmZXIocmVhZFNpemUpOwogICAgICAg
ICBGaWxlU3lzdGVtOjpzZWVrRmlsZShtX2ZpbGVEZXNjcmlwdG9yLCBvZmZzZXQsIEZpbGVTeXN0
ZW06OkZpbGVTZWVrT3JpZ2luOjpCZWdpbm5pbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvUGVyc2lzdGVuY3lVdGlscy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QZXJz
aXN0ZW5jeVV0aWxzLmNwcAppbmRleCBlY2E5NjQxZDIwNTM0NWM4MTg5NmViNTY1ZGY2MjdmOTVl
M2M1MTdhLi40Nzg2OTc0N2UwZmMxNTQ2MTM2MTRlYjA2ZTExNDRjNmQ0MmVlMDYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QZXJzaXN0ZW5jeVV0aWxzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9QZXJzaXN0ZW5jeVV0aWxzLmNwcApAQCAtNDMsOCArNDMsOCBAQCBz
dGQ6OnVuaXF1ZV9wdHI8S2V5ZWREZWNvZGVyPiBjcmVhdGVGb3JGaWxlKGNvbnN0IFN0cmluZyYg
cGF0aCkKICAgICBpZiAoaGFuZGxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVI
YW5kbGUpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgbG9uZyBsb25nIGZpbGVTaXpl
ID0gMDsKLSAgICBpZiAoIUZpbGVTeXN0ZW06OmdldEZpbGVTaXplKGhhbmRsZSwgZmlsZVNpemUp
IHx8ICFmaWxlU2l6ZSkgeworICAgIGF1dG8gZmlsZVNpemUgPSBGaWxlU3lzdGVtOjpmaWxlU2l6
ZShoYW5kbGUpLnZhbHVlT3IoMCk7CisgICAgaWYgKCFmaWxlU2l6ZSkgewogICAgICAgICBGaWxl
U3lzdGVtOjp1bmxvY2tBbmRDbG9zZUZpbGUoaGFuZGxlKTsKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRGV2aWNlSWRI
YXNoU2FsdFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRGV2aWNlSWRIYXNo
U2FsdFN0b3JhZ2UuY3BwCmluZGV4IGRlYWViOGQ5MjQyMjE5MjljMDE5NzZjYjNmMzE4Y2ExYzNl
MGNlYmEuLmMzNTZkYjhmZjM3ZWI0MDY5NzZlZTQyNGRhN2ViZjNiZjZkNzU5MDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RldmljZUlkSGFzaFNhbHRTdG9yYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5jcHAK
QEAgLTEyNCw4ICsxMjQsNyBAQCB2b2lkIERldmljZUlkSGFzaFNhbHRTdG9yYWdlOjpsb2FkU3Rv
cmFnZUZyb21EaXNrKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzaE1hcAogICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBsb25nIGxvbmcgZmls
ZVNpemUgPSAwOwotICAgICAgICAgICAgaWYgKCFGaWxlU3lzdGVtOjpnZXRGaWxlU2l6ZShvcmln
aW5QYXRoLCBmaWxlU2l6ZSkpIHsKKyAgICAgICAgICAgIGlmICghRmlsZVN5c3RlbTo6ZmlsZVNp
emUob3JpZ2luUGF0aCkpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihEaXNr
UGVyc2lzdGVuY3ksICJEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZTogSW1wb3NzaWJsZSB0byBnZXQg
dGhlIGZpbGUgc2l6ZSBvZjogJyVzJyIsIG9yaWdpblBhdGgudXRmOCgpLmRhdGEoKSk7CiAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L1N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYktpdExl
Z2FjeS9TdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcAppbmRleCA4MzYwNDcxYmUzZTQxN2FhNTA3
NjVkOWE2OWNkNjRhMWU3NmJiYmJkLi5kMzVkNWMzODUwMDNjYWNkNDZmNzAwZDdhZGU2ZTIwYTI5
ZmZlZGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvU3RvcmFnZVRy
YWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9TdG9yYWdlVHJhY2tl
ci5jcHAKQEAgLTYyNyw3ICs2MjcsNyBAQCBTdHJpbmcgU3RvcmFnZVRyYWNrZXI6OmRhdGFiYXNl
UGF0aEZvck9yaWdpbihjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpCiAgICAgcmV0dXJu
IHBhdGhTdGF0ZW1lbnQuZ2V0Q29sdW1uVGV4dCgwKTsKIH0KICAgICAKLWxvbmcgbG9uZyBTdG9y
YWdlVHJhY2tlcjo6ZGlza1VzYWdlRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCit1
aW50NjRfdCBTdG9yYWdlVHJhY2tlcjo6ZGlza1VzYWdlRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2lu
KiBvcmlnaW4pCiB7CiAgICAgaWYgKCFtX2lzQWN0aXZlKQogICAgICAgICByZXR1cm4gMDsKQEAg
LTYzOCw4ICs2MzgsNyBAQCBsb25nIGxvbmcgU3RvcmFnZVRyYWNrZXI6OmRpc2tVc2FnZUZvck9y
aWdpbihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogICAgIGlmIChwYXRoLmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuIDA7CiAKLSAgICBsb25nIGxvbmcgc2l6ZTsKLSAgICByZXR1cm4gRmlsZVN5
c3RlbTo6Z2V0RmlsZVNpemUocGF0aCwgc2l6ZSkgPyBzaXplIDogMDsKKyAgICByZXR1cm4gRmls
ZVN5c3RlbTo6ZmlsZVNpemUocGF0aCkudmFsdWVPcigwKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1N0b3JhZ2VU
cmFja2VyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaApp
bmRleCAyMzhmNjM1YzBiMTdkNjY2NmIwYzFiNmRiNDM1NDY4Y2I1MmY3NjA1Li4wOWJhMTBkZDVm
YTU3MWYwMDRlMWI1ZTliZDI3ZDM5ZDQ5ZjI3MTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L1N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L1N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkZWxldGVPcmlnaW4oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJik7CiAg
ICAgdm9pZCBkZWxldGVPcmlnaW5XaXRoSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIG9yaWdpbklk
ZW50aWZpZXIpOwogICAgIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdp
bnMoKTsKLSAgICBsb25nIGxvbmcgZGlza1VzYWdlRm9yT3JpZ2luKFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luKik7CisgICAgdWludDY0X3QgZGlza1VzYWdlRm9yT3JpZ2luKFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luKik7CiAgICAgCiAgICAgdm9pZCBjYW5jZWxEZWxldGluZ09yaWdpbihjb25zdCBT
dHJpbmcmIG9yaWdpbklkZW50aWZpZXIpOwogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDNjYTQzZmY2ZjQ3NWFmODFjOTBlOWY5NDRlNDRh
ZjUxNjMzYjIyNTUuLjE1NzQ2OGMxMDVhY2RhYzg1MTQ0M2JiZDY2NDM5NjY2NGY4NGY2NTMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAyMS0wNS0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisg
ICAgICAgIFJlbmFtZSBGaWxlU3lzdGVtOjpnZXRGaWxlU2l6ZSgpIHRvIEZpbGVTeXN0ZW06OmZp
bGVTaXplKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNTc5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVwZGF0ZSBjb2RlIHBhdGggdG8gZHVlIHRvIHRoZSBBUEkgY2hhbmdlLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9j
b2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisKIDIwMjEtMDUtMTMgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgog
CiAgICAgICAgIHJlcG9ydC1ub24taW5jbHVzaXZlLWxhbmd1YWdlIHNob3VsZCBza2lwIHN5bWxp
bmtzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVt
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCmluZGV4
IGQxNmM2OWY5OGMzZmJlMTI5MTE2ZGY0ZjdlMzA5ZDk5ZDE5MjVjOTIuLjhmMDg2MzU1MzY3NGQ2
ZTUxMGI5MmM0OWM4ZDdlNmIwNWVkNDA1ZWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCkBAIC00NDMsMjAgKzQ0MywyMSBAQCBURVNUX0YoRmlsZVN5
c3RlbVRlc3QsIG1vdmVGaWxlT3ZlcndyaXRlc0Rlc3RpbmF0aW9uKQogICAgIEVYUEVDVF9UUlVF
KEZpbGVTeXN0ZW06OmZpbGVFeGlzdHModGVtcEZpbGVQYXRoKCkpKTsKICAgICBFWFBFQ1RfVFJV
RShGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKHRlbXBFbXB0eUZpbGVQYXRoKCkpKTsKIAotICAgIGxv
bmcgbG9uZyBmaWxlU2l6ZSA9IDA7Ci0gICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6Z2V0Rmls
ZVNpemUodGVtcEZpbGVQYXRoKCksIGZpbGVTaXplKSk7Ci0gICAgRVhQRUNUX0dUKGZpbGVTaXpl
LCAwKTsKKyAgICBhdXRvIGZpbGVTaXplID0gRmlsZVN5c3RlbTo6ZmlsZVNpemUodGVtcEZpbGVQ
YXRoKCkpOworICAgIEFTU0VSVF9UUlVFKGZpbGVTaXplKTsKKyAgICBFWFBFQ1RfR1QoKmZpbGVT
aXplLCAwVSk7CiAKLSAgICBFWFBFQ1RfVFJVRShGaWxlU3lzdGVtOjpnZXRGaWxlU2l6ZSh0ZW1w
RW1wdHlGaWxlUGF0aCgpLCBmaWxlU2l6ZSkpOwotICAgIEVYUEVDVF9UUlVFKCFmaWxlU2l6ZSk7
CisgICAgZmlsZVNpemUgPSBGaWxlU3lzdGVtOjpmaWxlU2l6ZSh0ZW1wRW1wdHlGaWxlUGF0aCgp
KTsKKyAgICBBU1NFUlRfVFJVRShmaWxlU2l6ZSk7CisgICAgRVhQRUNUX0VRKCpmaWxlU2l6ZSwg
MFUpOwogCiAgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6bW92ZUZpbGUodGVtcEZpbGVQYXRo
KCksIHRlbXBFbXB0eUZpbGVQYXRoKCkpKTsKICAgICBFWFBFQ1RfRkFMU0UoRmlsZVN5c3RlbTo6
ZmlsZUV4aXN0cyh0ZW1wRmlsZVBhdGgoKSkpOwogICAgIEVYUEVDVF9UUlVFKEZpbGVTeXN0ZW06
OmZpbGVFeGlzdHModGVtcEVtcHR5RmlsZVBhdGgoKSkpOwogCi0gICAgZmlsZVNpemUgPSAwOwot
ICAgIEVYUEVDVF9UUlVFKEZpbGVTeXN0ZW06OmdldEZpbGVTaXplKHRlbXBFbXB0eUZpbGVQYXRo
KCksIGZpbGVTaXplKSk7Ci0gICAgRVhQRUNUX0dUKGZpbGVTaXplLCAwKTsKKyAgICBmaWxlU2l6
ZSA9IEZpbGVTeXN0ZW06OmZpbGVTaXplKHRlbXBFbXB0eUZpbGVQYXRoKCkpOworICAgIEFTU0VS
VF9UUlVFKGZpbGVTaXplKTsKKyAgICBFWFBFQ1RfR1QoKmZpbGVTaXplLCAwVSk7CiB9CiAKIFRF
U1RfRihGaWxlU3lzdGVtVGVzdCwgbW92ZURpcmVjdG9yeSkKQEAgLTQ4NSwyMSArNDg2LDIxIEBA
IFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgbW92ZURpcmVjdG9yeSkKICAgICBFWFBFQ1RfVFJVRShG
aWxlU3lzdGVtOjpmaWxlRXhpc3RzKGRlc3RpbmF0aW9uUGF0aCkpOwogfQogCi1URVNUX0YoRmls
ZVN5c3RlbVRlc3QsIGdldEZpbGVTaXplKQorVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBmaWxlU2l6
ZSkKIHsKICAgICBFWFBFQ1RfVFJVRShGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKHRlbXBGaWxlUGF0
aCgpKSk7CiAgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyh0ZW1wRW1wdHlG
aWxlUGF0aCgpKSk7CiAKLSAgICBsb25nIGxvbmcgZmlsZVNpemUgPSAwOwotICAgIEVYUEVDVF9U
UlVFKEZpbGVTeXN0ZW06OmdldEZpbGVTaXplKHRlbXBGaWxlUGF0aCgpLCBmaWxlU2l6ZSkpOwot
ICAgIEVYUEVDVF9HVChmaWxlU2l6ZSwgMCk7CisgICAgYXV0byBmaWxlU2l6ZSA9IEZpbGVTeXN0
ZW06OmZpbGVTaXplKHRlbXBGaWxlUGF0aCgpKTsKKyAgICBBU1NFUlRfVFJVRShmaWxlU2l6ZSk7
CisgICAgRVhQRUNUX0dUKCpmaWxlU2l6ZSwgMFUpOwogCi0gICAgRVhQRUNUX1RSVUUoRmlsZVN5
c3RlbTo6Z2V0RmlsZVNpemUodGVtcEVtcHR5RmlsZVBhdGgoKSwgZmlsZVNpemUpKTsKLSAgICBF
WFBFQ1RfVFJVRSghZmlsZVNpemUpOworICAgIGZpbGVTaXplID0gRmlsZVN5c3RlbTo6ZmlsZVNp
emUodGVtcEVtcHR5RmlsZVBhdGgoKSk7CisgICAgQVNTRVJUX1RSVUUoZmlsZVNpemUpOworICAg
IEVYUEVDVF9FUSgqZmlsZVNpemUsIDBVKTsKIAotICAgIGZpbGVTaXplID0gMDsKICAgICBTdHJp
bmcgZmlsZVRoYXREb2VzTm90RXhpc3QgPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21w
b25lbnQodGVtcEVtcHR5Rm9sZGVyUGF0aCgpLCAiZG9lcy1ub3QtZXhpc3QiX3MpOwotICAgIEVY
UEVDVF9GQUxTRShGaWxlU3lzdGVtOjpnZXRGaWxlU2l6ZShmaWxlVGhhdERvZXNOb3RFeGlzdCwg
ZmlsZVNpemUpKTsKKyAgICBmaWxlU2l6ZSA9IEZpbGVTeXN0ZW06OmZpbGVTaXplKGZpbGVUaGF0
RG9lc05vdEV4aXN0KTsKICAgICBFWFBFQ1RfVFJVRSghZmlsZVNpemUpOwogfQogCkBAIC02MDQs
MjkgKzYwNSwyOSBAQCBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIGNyZWF0ZUhhcmRMaW5rKQogICAg
IGF1dG8gaGFyZGxpbmtQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50
KHRlbXBFbXB0eUZvbGRlclBhdGgoKSwgInRlbXBGaWxlLWhhcmRsaW5rIik7CiAgICAgRVhQRUNU
X0ZBTFNFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoaGFyZGxpbmtQYXRoKSk7CiAKLSAgICBsb25n
IGxvbmcgZmlsZVNpemUgPSAwOwotICAgIEVYUEVDVF9UUlVFKEZpbGVTeXN0ZW06OmdldEZpbGVT
aXplKHRlbXBGaWxlUGF0aCgpLCBmaWxlU2l6ZSkpOwotICAgIEVYUEVDVF9HVChmaWxlU2l6ZSwg
MCk7CisgICAgYXV0byBmaWxlU2l6ZSA9IEZpbGVTeXN0ZW06OmZpbGVTaXplKHRlbXBGaWxlUGF0
aCgpKTsKKyAgICBBU1NFUlRfVFJVRShmaWxlU2l6ZSk7CisgICAgRVhQRUNUX0dUKCpmaWxlU2l6
ZSwgMFUpOwogCiAgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6aGFyZExpbmsodGVtcEZpbGVQ
YXRoKCksIGhhcmRsaW5rUGF0aCkpOwogCiAgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6Zmls
ZUV4aXN0cyhoYXJkbGlua1BhdGgpKTsKIAotICAgIGxvbmcgbG9uZyBsaW5rRmlsZVNpemUgPSAw
OwotICAgIEVYUEVDVF9UUlVFKEZpbGVTeXN0ZW06OmdldEZpbGVTaXplKGhhcmRsaW5rUGF0aCwg
bGlua0ZpbGVTaXplKSk7Ci0gICAgRVhQRUNUX0VRKGxpbmtGaWxlU2l6ZSwgZmlsZVNpemUpOwor
ICAgIGF1dG8gbGlua0ZpbGVTaXplID0gRmlsZVN5c3RlbTo6ZmlsZVNpemUoaGFyZGxpbmtQYXRo
KTsKKyAgICBBU1NFUlRfVFJVRShsaW5rRmlsZVNpemUpOworICAgIEVYUEVDVF9FUSgqbGlua0Zp
bGVTaXplLCAqZmlsZVNpemUpOwogCiAgICAgYXV0byBoYXJkbGlua01ldGFkYXRhID0gRmlsZVN5
c3RlbTo6ZmlsZU1ldGFkYXRhKGhhcmRsaW5rUGF0aCk7Ci0gICAgRVhQRUNUX1RSVUUoISFoYXJk
bGlua01ldGFkYXRhKTsKKyAgICBBU1NFUlRfVFJVRSghIWhhcmRsaW5rTWV0YWRhdGEpOwogICAg
IEVYUEVDVF9FUShoYXJkbGlua01ldGFkYXRhLT50eXBlLCBGaWxlTWV0YWRhdGE6OlR5cGU6OkZp
bGUpOwogCiAgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6ZGVsZXRlRmlsZSh0ZW1wRmlsZVBh
dGgoKSkpOwogICAgIEVYUEVDVF9GQUxTRShGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKHRlbXBGaWxl
UGF0aCgpKSk7CiAgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhoYXJkbGlu
a1BhdGgpKTsKIAotICAgIGxpbmtGaWxlU2l6ZSA9IDA7Ci0gICAgRVhQRUNUX1RSVUUoRmlsZVN5
c3RlbTo6Z2V0RmlsZVNpemUoaGFyZGxpbmtQYXRoLCBsaW5rRmlsZVNpemUpKTsKLSAgICBFWFBF
Q1RfRVEobGlua0ZpbGVTaXplLCBmaWxlU2l6ZSk7CisgICAgbGlua0ZpbGVTaXplID0gRmlsZVN5
c3RlbTo6ZmlsZVNpemUoaGFyZGxpbmtQYXRoKTsKKyAgICBBU1NFUlRfVFJVRShsaW5rRmlsZVNp
emUpOworICAgIEVYUEVDVF9FUSgqbGlua0ZpbGVTaXplLCAqZmlsZVNpemUpOwogfQogCiBURVNU
X0YoRmlsZVN5c3RlbVRlc3QsIGNyZWF0ZUhhcmRMaW5rT3JDb3B5RmlsZSkKQEAgLTYzNCwxNyAr
NjM1LDE3IEBAIFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgY3JlYXRlSGFyZExpbmtPckNvcHlGaWxl
KQogICAgIGF1dG8gaGFyZGxpbmtQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KHRlbXBFbXB0eUZvbGRlclBhdGgoKSwgInRlbXBGaWxlLWhhcmRsaW5rIik7CiAgICAg
RVhQRUNUX0ZBTFNFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoaGFyZGxpbmtQYXRoKSk7CiAKLSAg
ICBsb25nIGxvbmcgZmlsZVNpemUgPSAwOwotICAgIEVYUEVDVF9UUlVFKEZpbGVTeXN0ZW06Omdl
dEZpbGVTaXplKHRlbXBGaWxlUGF0aCgpLCBmaWxlU2l6ZSkpOwotICAgIEVYUEVDVF9HVChmaWxl
U2l6ZSwgMCk7CisgICAgYXV0byBmaWxlU2l6ZSA9IEZpbGVTeXN0ZW06OmZpbGVTaXplKHRlbXBG
aWxlUGF0aCgpKTsKKyAgICBBU1NFUlRfVFJVRShmaWxlU2l6ZSk7CisgICAgRVhQRUNUX0dUKCpm
aWxlU2l6ZSwgMFUpOwogCiAgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6aGFyZExpbmtPckNv
cHlGaWxlKHRlbXBGaWxlUGF0aCgpLCBoYXJkbGlua1BhdGgpKTsKIAogICAgIEVYUEVDVF9UUlVF
KEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoaGFyZGxpbmtQYXRoKSk7CiAKLSAgICBsb25nIGxvbmcg
bGlua0ZpbGVTaXplID0gMDsKLSAgICBFWFBFQ1RfVFJVRShGaWxlU3lzdGVtOjpnZXRGaWxlU2l6
ZShoYXJkbGlua1BhdGgsIGxpbmtGaWxlU2l6ZSkpOwotICAgIEVYUEVDVF9FUShsaW5rRmlsZVNp
emUsIGZpbGVTaXplKTsKKyAgICBhdXRvIGxpbmtGaWxlU2l6ZSA9IEZpbGVTeXN0ZW06OmZpbGVT
aXplKGhhcmRsaW5rUGF0aCk7CisgICAgQVNTRVJUX1RSVUUobGlua0ZpbGVTaXplKTsKKyAgICBF
WFBFQ1RfRVEoKmxpbmtGaWxlU2l6ZSwgKmZpbGVTaXplKTsKIAogICAgIGF1dG8gaGFyZGxpbmtN
ZXRhZGF0YSA9IEZpbGVTeXN0ZW06OmZpbGVNZXRhZGF0YShoYXJkbGlua1BhdGgpOwogICAgIEVY
UEVDVF9UUlVFKCEhaGFyZGxpbmtNZXRhZGF0YSk7CkBAIC02NTQsOSArNjU1LDkgQEAgVEVTVF9G
KEZpbGVTeXN0ZW1UZXN0LCBjcmVhdGVIYXJkTGlua09yQ29weUZpbGUpCiAgICAgRVhQRUNUX0ZB
TFNFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHModGVtcEZpbGVQYXRoKCkpKTsKICAgICBFWFBFQ1Rf
VFJVRShGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKGhhcmRsaW5rUGF0aCkpOwogCi0gICAgbGlua0Zp
bGVTaXplID0gMDsKLSAgICBFWFBFQ1RfVFJVRShGaWxlU3lzdGVtOjpnZXRGaWxlU2l6ZShoYXJk
bGlua1BhdGgsIGxpbmtGaWxlU2l6ZSkpOwotICAgIEVYUEVDVF9FUShsaW5rRmlsZVNpemUsIGZp
bGVTaXplKTsKKyAgICBsaW5rRmlsZVNpemUgPSBGaWxlU3lzdGVtOjpmaWxlU2l6ZShoYXJkbGlu
a1BhdGgpOworICAgIEFTU0VSVF9UUlVFKGxpbmtGaWxlU2l6ZSk7CisgICAgRVhQRUNUX0VRKCps
aW5rRmlsZVNpemUsICpmaWxlU2l6ZSk7CiB9CiAKIFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgaGFy
ZExpbmtDb3VudCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KaW5kZXggNjY4MmJmNDU4NjY2
MTE1NTNmMTBhMTdlNzJhNzI5ZWNhYTY5NThjNC4uZTYzOTFhY2M1NTViYTRlYTkwNjdjZWMyNTYx
Njk3YmMxMmY1N2VlYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KQEAgLTQ0LDkgKzQ0
LDggQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZURhdGFiYXNlRmlsZUlmRW1wdHkpCiAg
ICAgU3RyaW5nIGRhdGFiYXNlRmlsZVBhdGggPSBGaWxlU3lzdGVtOjpvcGVuVGVtcG9yYXJ5Rmls
ZSgidGVtcEVtcHR5RGF0YWJhc2UiLCBoYW5kbGUpOwogICAgIEZpbGVTeXN0ZW06OmNsb3NlRmls
ZShoYW5kbGUpOwogCi0gICAgbG9uZyBsb25nIGZpbGVTaXplOwotICAgIEZpbGVTeXN0ZW06Omdl
dEZpbGVTaXplKGRhdGFiYXNlRmlsZVBhdGgsIGZpbGVTaXplKTsKLSAgICBFWFBFQ1RfRVEoMCwg
ZmlsZVNpemUpOworICAgIGF1dG8gZmlsZVNpemUgPSBGaWxlU3lzdGVtOjpmaWxlU2l6ZShkYXRh
YmFzZUZpbGVQYXRoLCBmaWxlU2l6ZSkudmFsdWVPcigwKTsKKyAgICBFWFBFQ1RfRVEoMFUsIGZp
bGVTaXplKTsKIAogICAgIEVYUEVDVF9UUlVFKERhdGFiYXNlVHJhY2tlcjo6ZGVsZXRlRGF0YWJh
c2VGaWxlSWZFbXB0eShkYXRhYmFzZUZpbGVQYXRoKSk7CiAK
</data>
<flag name="commit-queue"
          id="449555"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428602</attachid>
            <date>2021-05-13 22:07:18 -0700</date>
            <delta_ts>2021-05-14 09:10:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225798-20210513220717.patch</filename>
            <type>text/plain</type>
            <size>57596</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MGViMjE5ZjdjZmVkMDJhNmQ1MjQ2NzkxOWY3OTg0MjBhMjNhZWJiLi43NDQzMzc0MjdmNzMyODlm
ZDg2NmU1MjA2ZjE1ZWMwNDMxZTc5ZWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAyMS0wNS0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFJlbmFtZSBGaWxlU3lzdGVtOjpnZXRGaWxlU2l6ZSgpIHRvIEZpbGVTeXN0ZW06
OmZpbGVTaXplKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNTc5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVwZGF0ZSBjb2RlIHBhdGggdG8gZHVlIHRvIHRoZSBBUEkgY2hhbmdlLgorCisgICAgICAg
ICogaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0LmNwcDoKKyAg
ICAgICAgKEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yOjpiYWNrZW5kQ29tbWFuZHMgY29uc3Qp
OgorICAgICAgICAqIGpzYy5jcHA6CisKIDIwMjEtMDUtMTMgIFBhdHJpY2sgQW5nbGUgIDxwYW5n
bGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtSRUdSRVNTSU9OOiByMjcxODc2XSBXZWIgSW5zcGVj
dG9yOiBbQ29jb2FdIFJlbW90ZSBpbnNwZWN0aW9uIGNyYXNoZXMgd2hlbiB1c2luZyBXRUJfVEhS
RUFECmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdl
TG9nCmluZGV4IDAwMWMyZDQ2MjA0ZGUxYjAyZDc3MTFjNzE4ODk4NWRjNTU1NDQ0NmIuLjM4MjFj
Mzg0NjZmZDg3NzM3MDY3MDk3ZDM0N2IwYTFlMmRlOGVhOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAK
KzIwMjEtMDUtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW5hbWUgRmlsZVN5c3RlbTo6Z2V0RmlsZVNpemUoKSB0byBGaWxlU3lzdGVtOjpmaWxlU2l6ZSgp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3OTgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUg
RmlsZVN5c3RlbTo6Z2V0RmlsZVNpemUoKSB0byBGaWxlU3lzdGVtOjpmaWxlU2l6ZSgpIGFzIHdl
IHVzdWFsbHkgYXZvaWQgdGhlICJnZXQiCisgICAgICAgIHByZWZpeCBpbiBXZWJLaXQuIEl0IGlz
IGFsc28gbW9yZSBjb25zaXN0ZW50IHdpdGggdGhlIHN0ZDo6ZmlsZXN5c3RlbTo6ZmlsZV9zaXpl
KCkgdGhlCisgICAgICAgIGltcGxlbWVudGF0aW9uIHJlbGllcyBvbi4KKworICAgICAgICBBbHNv
IGhhdmUgaXQgcmV0dXJuIGFuIE9wdGlvbmFsPHVpbnQ2NF90PiBpbnN0ZWFkIG9mIHRha2luZyBh
IGxvbmcgbG9uZyBvdXQtcGFyYW1ldGVyLCBhcworICAgICAgICB0aGlzIGlzIG1vcmUgbW9kZXJu
LgorCisgICAgICAgICogd3RmL0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoV1RGOjpGaWxlU3lz
dGVtSW1wbDo6ZmlsZVNpemUpOgorICAgICAgICAqIHd0Zi9GaWxlU3lzdGVtLmg6CisgICAgICAg
ICogd3RmL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwOgorICAgICAgICAoV1RGOjpGaWxlU3lzdGVt
SW1wbDo6ZmlsZVNpemUpOgorICAgICAgICAqIHd0Zi9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3Bw
OgorICAgICAgICAoV1RGOjpGaWxlU3lzdGVtSW1wbDo6ZmlsZVNpemUpOgorICAgICAgICAqIHd0
Zi93aW4vRmlsZVN5c3RlbVdpbi5jcHA6CisgICAgICAgIChXVEY6OkZpbGVTeXN0ZW1JbXBsOjpn
ZXRGaWxlU2l6ZUZyb21CeUhhbmRsZUZpbGVJbmZvcm1hdGlvblN0cnVjdHVyZSk6CisgICAgICAg
IChXVEY6OkZpbGVTeXN0ZW1JbXBsOjpmaWxlU2l6ZSk6CisgICAgICAgIChXVEY6OkZpbGVTeXN0
ZW1JbXBsOjpNYXBwZWRGaWxlRGF0YTo6bWFwRmlsZUhhbmRsZSk6CisKIDIwMjEtMDUtMTMgIERl
YW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJYUl0gQWxsb3cgV2Vi
WFIgdG8gYmUgdGVzdGVkIG9uIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY2MGUzNDRl
YWJjYzVmYzNlMDIwNzJkNTU4MzVhNGExYzYxNjc1MGEuLmUyOTU1NjUzMDQ5ZWYzOWU5YmUyMDA1
OGU1ODdjNzVjNWI1NzQzM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAyMS0wNS0x
MyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBGaWxl
U3lzdGVtOjpnZXRGaWxlU2l6ZSgpIHRvIEZpbGVTeXN0ZW06OmZpbGVTaXplKCkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTc5OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBjb2RlIHBhdGgg
dG8gZHVlIHRvIHRoZSBBUEkgY2hhbmdlLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VzU2l6ZUZvckRpcmVjdG9yeSk6
CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZURldGFpbHMuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlsczo6RGF0YWJhc2VEZXRhaWxzKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEYXRhYmFzZVRyYWNrZXI6Omhhc0FkZXF1YXRlUXVvdGFGb3JPcmlnaW4pOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpjYW5Fc3RhYmxpc2hEYXRhYmFzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OnJldHJ5Q2FuRXN0YWJsaXNoRGF0YWJhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjptYXhpbXVtU2l6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmRldGFpbHNGb3JOYW1lQW5kT3JpZ2luKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEZXRhaWxzKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6dXNhZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VUcmFja2VyOjpxdW90YU5vTG9jayk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRhYmFzZVRyYWNrZXI6OnF1b3RhKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tl
cjo6c2V0UXVvdGEpOgorICAgICAgICAoV2ViQ29yZTo6aXNaZXJvQnl0ZUZpbGUpOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmg6CisgICAgICAgICogZWRp
dGluZy9jb2NvYS9XZWJDb250ZW50UmVhZGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjph
dHRhY2htZW50Rm9yRmlsZVBhdGgpOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZTo6c3BhY2VOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNo
ZVN0b3JhZ2U6OmxvYWRDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZTo6ZmxhdEZpbGVBcmVhU2l6ZSk6CisgICAgICAgICogcGxhdGZvcm0vRmlsZVN0cmVh
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3RyZWFtOjpnZXRTaXplKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1E
YXRhRWxlbWVudDo6bGVuZ3RoSW5CeXRlcyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxDYWNo
ZUVudHJ5Ojpsb2FkRmlsZVRvQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ3VybENhY2hlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXJsQ2FjaGVNYW5h
Z2VyOjpsb2FkSW5kZXgpOgorICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVGaWxlU3lzdGVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZUZpbGVTeXN0ZW06OmRhdGFiYXNlRmlsZVNp
emUpOgorICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVGaWxlU3lzdGVtLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lV2luOjpzdHJpbmdXaXRoQ29udGVudHNPZkZpbGUpOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTY3JpcHRTdG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNo
b3VsZFVzZUZpbGVNYXBwaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2NyaXB0U3RvcmFnZTo6
cmV0cmlldmUpOgorCiAyMDIxLTA1LTEzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KIAogICAgICAgICBbaU9TXSBSRUdSRVNTSU9OKHIyNzEyMTYpIHBvaW50ZXJldmVudHMvaW9z
L3BvaW50ZXItZXZlbnRzLW5vLW1vdXNlZG93bi13aGVuLXByZXZlbnQtZGVmYXVsdC1jYWxsZWQt
b24tcG9pbnRlcmRvd24uaHRtbCBpcyBjb25zaXN0ZW50bHkgZmFpbGluZwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBl
MTQ3OTkyNTQyMzRjZWVmMWZiOGRlMzQ1YTljOWVmMDk0ZDcyYjE2Li5mYmZmMWFiZjgwYmFjMjdi
ZTQwMzE1NDZhMjM2NDUzNDgwMzllZGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIx
LTA1LTEzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1l
IEZpbGVTeXN0ZW06OmdldEZpbGVTaXplKCkgdG8gRmlsZVN5c3RlbTo6ZmlsZVNpemUoKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1Nzk4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGNvZGUg
cGF0aCB0byBkdWUgdG8gdGhlIEFQSSBjaGFuZ2UuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TG9jYWxTdG9yYWdlRGF0YWJhc2U6OnNldEl0ZW0pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpDYWNo
ZVN0b3JhZ2U6OmdldERpcmVjdG9yeVNpemUpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3Jh
Z2U6OkVuZ2luZTo6cmVhZFNpemVGaWxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9OZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
YWNoZTo6QmxvYlN0b3JhZ2U6OnN5bmNocm9uaXplKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nh
Y2hlOjptYXBGaWxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVJT0NoYW5uZWxDdXJsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpJT0No
YW5uZWw6OnJlYWQpOgorICAgICAgICAqIFNoYXJlZC9QZXJzaXN0ZW5jeVV0aWxzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6Y3JlYXRlRm9yRmlsZSk6CisgICAgICAgICogVUlQcm9jZXNzL0Rldmlj
ZUlkSGFzaFNhbHRTdG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RGV2aWNlSWRIYXNoU2Fs
dFN0b3JhZ2U6OmxvYWRTdG9yYWdlRnJvbURpc2spOgorCiAyMDIxLTA1LTEzICBEZWFuIEphY2tz
b24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViWFJdIEFsbG93IFdlYlhSIHRvIGJl
IHRlc3RlZCBvbiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggZTE4YzMw
ZjllNzExMDc1YzllMWNlZjFmODk0MjY5MjNhZjg3OGJhZi4uNWU5NzFlMzNmOTQxNzk2ZTBlNWRk
MWE1ZjhhN2ZjMmI1YmY4NWMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAyMS0wNS0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IFJlbmFtZSBGaWxlU3lzdGVtOjpnZXRGaWxlU2l6ZSgpIHRvIEZpbGVTeXN0ZW06OmZpbGVTaXpl
KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTc5
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0
ZSBjb2RlIHBhdGggdG8gZHVlIHRvIHRoZSBBUEkgY2hhbmdlLgorCisgICAgICAgICogU3RvcmFn
ZS9TdG9yYWdlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VUcmFja2VyOjpk
aXNrVXNhZ2VGb3JPcmlnaW4pOgorICAgICAgICAqIFN0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaDoK
KwogMjAyMS0wNS0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbmFtZSBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKCkgdG8gRmlsZVN5c3RlbTo6cGFyZW50
UGF0aCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90
ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXQuY3BwCmluZGV4
IDMzNWQxNTZlMzhjOWJmOTRiOGNiMjRlOWU2ZjE3YTA1ZWE5ZTFhMDAuLjczOTY3M2VmODc3NGY2
MGVkODc4MTk1MzU1M2Q3MGZlMzcwYjNjZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJ
bnNwZWN0b3JTb2NrZXQuY3BwCkBAIC0yNjgsMTAgKzI2OCw5IEBAIFN0cmluZyBSZW1vdGVJbnNw
ZWN0b3I6OmJhY2tlbmRDb21tYW5kcygpIGNvbnN0CiAgICAgICAgIHJldHVybiB7IH07CiAKICAg
ICBTdHJpbmcgcmVzdWx0OwotICAgIGxvbmcgbG9uZyBzaXplOwotICAgIGlmIChGaWxlU3lzdGVt
OjpnZXRGaWxlU2l6ZShoYW5kbGUsIHNpemUpKSB7Ci0gICAgICAgIFZlY3RvcjxMQ2hhcj4gYnVm
ZmVyKHNpemUpOwotICAgICAgICBpZiAoRmlsZVN5c3RlbTo6cmVhZEZyb21GaWxlKGhhbmRsZSwg
cmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oYnVmZmVyLmRhdGEoKSksIHNpemUpID09IHNpemUpCisg
ICAgaWYgKGF1dG8gc2l6ZSA9IEZpbGVTeXN0ZW06OmZpbGVTaXplKGhhbmRsZSkpIHsKKyAgICAg
ICAgVmVjdG9yPExDaGFyPiBidWZmZXIoKnNpemUpOworICAgICAgICBpZiAoRmlsZVN5c3RlbTo6
cmVhZEZyb21GaWxlKGhhbmRsZSwgcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oYnVmZmVyLmRhdGEo
KSksICpzaXplKSA9PSAqc2l6ZSkKICAgICAgICAgICAgIHJlc3VsdCA9IFN0cmluZzo6YWRvcHQo
V1RGTW92ZShidWZmZXIpKTsKICAgICB9CiAgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKGhhbmRs
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDY0YWEyMzkyNTllZjJhMWVhZTI5OWZjNzM5NGIz
MjUzMzA4YTEzNzMuLjFmNWRhYmExYzE5NGZkMzVhN2FhMDU4OWJmYmY5OWZlZGYyZTVlMjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0xMDQ5LDEyICsxMDQ5LDEyIEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIEZpbGVTeXN0ZW06OnVubG9ja0FuZENsb3NlRmlsZShmZCk7CiAgICAgICAgIH0pOwog
Ci0gICAgICAgIGxvbmcgbG9uZyBmaWxlU2l6ZTsKLSAgICAgICAgaWYgKCFGaWxlU3lzdGVtOjpn
ZXRGaWxlU2l6ZShmZCwgZmlsZVNpemUpKQorICAgICAgICBhdXRvIGZpbGVTaXplID0gRmlsZVN5
c3RlbTo6ZmlsZVNpemUoZmQpOworICAgICAgICBpZiAoIWZpbGVTaXplKQogICAgICAgICAgICAg
cmV0dXJuOwogCiAgICAgICAgIHNpemVfdCBjYWNoZUZpbGVTaXplOwotICAgICAgICBpZiAoIVdU
Rjo6Y29udmVydFNhZmVseShmaWxlU2l6ZSwgY2FjaGVGaWxlU2l6ZSkgfHwgY2FjaGVGaWxlU2l6
ZSAhPSBtX2NhY2hlZEJ5dGVjb2RlLT5zaXplKCkpIHsKKyAgICAgICAgaWYgKCFXVEY6OmNvbnZl
cnRTYWZlbHkoKmZpbGVTaXplLCBjYWNoZUZpbGVTaXplKSB8fCBjYWNoZUZpbGVTaXplICE9IG1f
Y2FjaGVkQnl0ZWNvZGUtPnNpemUoKSkgewogICAgICAgICAgICAgLy8gVGhlIGJ5dGVjb2RlIGNh
Y2hlIGhhcyBhbHJlYWR5IGJlZW4gdXBkYXRlZAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmNwcCBiL1NvdXJjZS9X
VEYvd3RmL0ZpbGVTeXN0ZW0uY3BwCmluZGV4IGRlYTA3MDMwNmY5N2FjYjIyMDU2ZDk2YTgxOGFi
ZjcxZWVlYTk3YTkuLjg3ZDk2ZTdjMGY3MmE2MmIyNWJjNjkyYmU0ZjFkMTVjNjYxZGVlMTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1NvdXJjZS9XVEYv
d3RmL0ZpbGVTeXN0ZW0uY3BwCkBAIC01OTcsMTQgKzU5NywxMyBAQCBib29sIG1vdmVGaWxlKGNv
bnN0IFN0cmluZyYgb2xkUGF0aCwgY29uc3QgU3RyaW5nJiBuZXdQYXRoKQogICAgIHJldHVybiBz
dGQ6OmZpbGVzeXN0ZW06OnJlbW92ZV9hbGwoZnNPbGRQYXRoLCBlYyk7CiB9CiAKLWJvb2wgZ2V0
RmlsZVNpemUoY29uc3QgU3RyaW5nJiBwYXRoLCBsb25nIGxvbmcmIHJlc3VsdCkKK09wdGlvbmFs
PHVpbnQ2NF90PiBmaWxlU2l6ZShjb25zdCBTdHJpbmcmIHBhdGgpCiB7CiAgICAgc3RkOjplcnJv
cl9jb2RlIGVjOwogICAgIGF1dG8gc2l6ZSA9IHN0ZDo6ZmlsZXN5c3RlbTo6ZmlsZV9zaXplKHRv
U3RkRmlsZVN5c3RlbVBhdGgocGF0aCksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICByZXN1bHQgPSBzaXplOwotICAgIHJldHVybiB0cnVlOworICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJldHVybiBzaXplOwogfQogCiBib29sIGlzRGlyZWN0
b3J5KGNvbnN0IFN0cmluZyYgcGF0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVT
eXN0ZW0uaCBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaAppbmRleCBmZTczMDJhMGYzZDgw
OGIyYzdhYzU0MWYxYjBjYjk0NTUwMjYxMjVlLi5kMzBkZTRlMDY2OTlkNjgyMWU5NzViYTNhNjBk
Zjk1MjE0YTczOGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmgKKysr
IGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oCkBAIC0xMTEsOCArMTExLDggQEAgV1RGX0VY
UE9SVF9QUklWQVRFIGJvb2wgZmlsZUV4aXN0cyhjb25zdCBTdHJpbmcmKTsKIFdURl9FWFBPUlRf
UFJJVkFURSBib29sIGRlbGV0ZUZpbGUoY29uc3QgU3RyaW5nJik7CiBXVEZfRVhQT1JUX1BSSVZB
VEUgYm9vbCBkZWxldGVFbXB0eURpcmVjdG9yeShjb25zdCBTdHJpbmcmKTsKIFdURl9FWFBPUlRf
UFJJVkFURSBib29sIG1vdmVGaWxlKGNvbnN0IFN0cmluZyYgb2xkUGF0aCwgY29uc3QgU3RyaW5n
JiBuZXdQYXRoKTsKLVdURl9FWFBPUlRfUFJJVkFURSBib29sIGdldEZpbGVTaXplKGNvbnN0IFN0
cmluZyYsIGxvbmcgbG9uZyYgcmVzdWx0KTsKLVdURl9FWFBPUlRfUFJJVkFURSBib29sIGdldEZp
bGVTaXplKFBsYXRmb3JtRmlsZUhhbmRsZSwgbG9uZyBsb25nJiByZXN1bHQpOworV1RGX0VYUE9S
VF9QUklWQVRFIE9wdGlvbmFsPHVpbnQ2NF90PiBmaWxlU2l6ZShjb25zdCBTdHJpbmcmKTsKK1dU
Rl9FWFBPUlRfUFJJVkFURSBPcHRpb25hbDx1aW50NjRfdD4gZmlsZVNpemUoUGxhdGZvcm1GaWxl
SGFuZGxlKTsKIFdURl9FWFBPUlRfUFJJVkFURSBPcHRpb25hbDxXYWxsVGltZT4gZ2V0RmlsZU1v
ZGlmaWNhdGlvblRpbWUoY29uc3QgU3RyaW5nJik7CiBXVEZfRVhQT1JUX1BSSVZBVEUgT3B0aW9u
YWw8V2FsbFRpbWU+IGdldEZpbGVDcmVhdGlvblRpbWUoY29uc3QgU3RyaW5nJik7IC8vIE5vdCBh
bGwgcGxhdGZvcm1zIHN0b3JlIGZpbGUgY3JlYXRpb24gdGltZS4KIFdURl9FWFBPUlRfUFJJVkFU
RSBPcHRpb25hbDxGaWxlTWV0YWRhdGE+IGZpbGVNZXRhZGF0YShjb25zdCBTdHJpbmcmIHBhdGgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAppbmRleCBjMDQ5N2Q1YTAzMTNi
MWIxOTkwOGEyMTYyOGFmY2Q3NGU3MTU0MzM5Li40NTg2YWE0MGVlNDEyNjFiYTEwOTAwZTI0OGUz
N2JmOWM4ZWEzMDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1H
bGliLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcApAQCAt
MTIwLDE0ICsxMjAsMTMgQEAgU3RyaW5nIGZpbGVuYW1lRm9yRGlzcGxheShjb25zdCBTdHJpbmcm
IHN0cmluZykKICNlbmRpZgogfQogCi1ib29sIGdldEZpbGVTaXplKFBsYXRmb3JtRmlsZUhhbmRs
ZSBoYW5kbGUsIGxvbmcgbG9uZyYgcmVzdWx0U2l6ZSkKK09wdGlvbmFsPHVpbnQ2NF90PiBmaWxl
U2l6ZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlKQogewogICAgIEdSZWZQdHI8R0ZpbGVJbmZv
PiBpbmZvID0gYWRvcHRHUmVmKGdfZmlsZV9pb19zdHJlYW1fcXVlcnlfaW5mbyhoYW5kbGUsIEdf
RklMRV9BVFRSSUJVVEVfU1RBTkRBUkRfU0laRSwgbnVsbHB0ciwgbnVsbHB0cikpOwogICAgIGlm
ICghaW5mbykKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwogCi0gICAgcmVzdWx0U2l6ZSA9IGdfZmlsZV9pbmZvX2dldF9zaXplKGluZm8uZ2V0KCkp
OwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBnX2ZpbGVfaW5mb19nZXRfc2l6ZShpbmZv
LmdldCgpKTsKIH0KIAogT3B0aW9uYWw8V2FsbFRpbWU+IGdldEZpbGVDcmVhdGlvblRpbWUoY29u
c3QgU3RyaW5nJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1Q
T1NJWC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCmluZGV4
IGU5ZGQ3MTQ3YjMyOTU3ZGU1MzE1NTNhMTRmN2ZjMzgyM2E3NmE5YTUuLmE2MDBiYzI2MTk4Njkw
ZjhhZmQzYzI2NWNmMTVjZDZiZGZjNWQ2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Bv
c2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvcG9zaXgvRmlsZVN5
c3RlbVBPU0lYLmNwcApAQCAtMTU2LDE0ICsxNTYsMTMgQEAgYm9vbCB1bmxvY2tGaWxlKFBsYXRm
b3JtRmlsZUhhbmRsZSBoYW5kbGUpCiB9CiAjZW5kaWYKIAotYm9vbCBnZXRGaWxlU2l6ZShQbGF0
Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBsb25nIGxvbmcmIHJlc3VsdCkKK09wdGlvbmFsPHVpbnQ2
NF90PiBmaWxlU2l6ZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlKQogewogICAgIHN0cnVjdCBz
dGF0IGZpbGVJbmZvOwogICAgIGlmIChmc3RhdChoYW5kbGUsICZmaWxlSW5mbykpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIHJlc3Vs
dCA9IGZpbGVJbmZvLnN0X3NpemU7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZpbGVJ
bmZvLnN0X3NpemU7CiB9CiAKIE9wdGlvbmFsPFdhbGxUaW1lPiBnZXRGaWxlQ3JlYXRpb25UaW1l
KGNvbnN0IFN0cmluZyYgcGF0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxl
U3lzdGVtV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcAppbmRl
eCAyZDc0YWQyODg3YWMzNTYxYmRkNWE2MGIwNWU0MDhmOGQ0Y2M1MTZjLi41N2U4OGYzZjU4ZjRm
ZTAxYzlkZWU4ZDg3NmE2ZWM4MzMwODdjMzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93
aW4vRmlsZVN5c3RlbVdpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvd2luL0ZpbGVTeXN0ZW1X
aW4uY3BwCkBAIC03MSwxNyArNzEsMTYgQEAgc3RhdGljIGJvb2wgZ2V0RmlsZVNpemVGcm9tRmlu
ZERhdGEoY29uc3QgV0lOMzJfRklORF9EQVRBVyYgZmluZERhdGEsIGxvbmcgbG9uZyYKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgZ2V0RmlsZVNpemVGcm9tQnlIYW5kbGVGaWxl
SW5mb3JtYXRpb25TdHJ1Y3R1cmUoY29uc3QgQllfSEFORExFX0ZJTEVfSU5GT1JNQVRJT04mIGZp
bGVJbmZvcm1hdGlvbiwgbG9uZyBsb25nJiBzaXplKQorc3RhdGljIE9wdGlvbmFsPHVpbnQ2NF90
PiBnZXRGaWxlU2l6ZUZyb21CeUhhbmRsZUZpbGVJbmZvcm1hdGlvblN0cnVjdHVyZShjb25zdCBC
WV9IQU5ETEVfRklMRV9JTkZPUk1BVElPTiYgZmlsZUluZm9ybWF0aW9uKQogewogICAgIFVMQVJH
RV9JTlRFR0VSIGZpbGVTaXplOwogICAgIGZpbGVTaXplLkhpZ2hQYXJ0ID0gZmlsZUluZm9ybWF0
aW9uLm5GaWxlU2l6ZUhpZ2g7CiAgICAgZmlsZVNpemUuTG93UGFydCA9IGZpbGVJbmZvcm1hdGlv
bi5uRmlsZVNpemVMb3c7CiAKICAgICBpZiAoZmlsZVNpemUuUXVhZFBhcnQgPiBzdGF0aWNfY2Fz
dDxVTE9OR0xPTkc+KHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZyBsb25nPjo6bWF4KCkpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBz
aXplID0gZmlsZVNpemUuUXVhZFBhcnQ7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZp
bGVTaXplLlF1YWRQYXJ0OwogfQogCiBzdGF0aWMgdm9pZCBnZXRGaWxlQ3JlYXRpb25UaW1lRnJv
bUZpbmREYXRhKGNvbnN0IFdJTjMyX0ZJTkRfREFUQVcmIGZpbmREYXRhLCB0aW1lX3QmIHRpbWUp
CkBAIC0xMDUsMTMgKzEwNCwxMyBAQCBzdGF0aWMgdm9pZCBnZXRGaWxlTW9kaWZpY2F0aW9uVGlt
ZUZyb21GaW5kRGF0YShjb25zdCBXSU4zMl9GSU5EX0RBVEFXJiBmaW5kRGF0YQogICAgIHRpbWUg
PSBmaWxlVGltZS5RdWFkUGFydCAvIDEwMDAwMDAwIC0ga1NlY29uZHNGcm9tRmlsZVRpbWVUb1Rp
bWV0OwogfQogCi1ib29sIGdldEZpbGVTaXplKFBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlSGFuZGxl
LCBsb25nIGxvbmcmIHNpemUpCitPcHRpb25hbDx1aW50NjRfdD4gZmlsZVNpemUoUGxhdGZvcm1G
aWxlSGFuZGxlIGZpbGVIYW5kbGUpCiB7CiAgICAgQllfSEFORExFX0ZJTEVfSU5GT1JNQVRJT04g
ZmlsZUluZm9ybWF0aW9uOwogICAgIGlmICghOjpHZXRGaWxlSW5mb3JtYXRpb25CeUhhbmRsZShm
aWxlSGFuZGxlLCAmZmlsZUluZm9ybWF0aW9uKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgcmV0dXJuIGdldEZpbGVTaXplRnJvbUJ5
SGFuZGxlRmlsZUluZm9ybWF0aW9uU3RydWN0dXJlKGZpbGVJbmZvcm1hdGlvbiwgc2l6ZSk7Cisg
ICAgcmV0dXJuIGdldEZpbGVTaXplRnJvbUJ5SGFuZGxlRmlsZUluZm9ybWF0aW9uU3RydWN0dXJl
KGZpbGVJbmZvcm1hdGlvbik7CiB9CiAKIE9wdGlvbmFsPFdhbGxUaW1lPiBnZXRGaWxlQ3JlYXRp
b25UaW1lKGNvbnN0IFN0cmluZyYgcGF0aCkKQEAgLTQwMywxMiArNDAyLDEyIEBAIGJvb2wgTWFw
cGVkRmlsZURhdGE6Om1hcEZpbGVIYW5kbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgRmls
ZU9wZW5Nb2RlIG9wZW5NCiAgICAgaWYgKCFpc0hhbmRsZVZhbGlkKGhhbmRsZSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIGxvbmcgbG9uZyBzaXplOwotICAgIGlmICghZ2V0RmlsZVNp
emUoaGFuZGxlLCBzaXplKSB8fCBzaXplID4gc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+Ojpt
YXgoKSB8fCBzaXplID4gc3RkOjpudW1lcmljX2xpbWl0czxkZWNsdHlwZShtX2ZpbGVTaXplKT46
Om1heCgpKSB7CisgICAgYXV0byBzaXplID0gZmlsZVNpemUoaGFuZGxlKTsKKyAgICBpZiAoIXNp
emUgfHwgKnNpemUgPiBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpIHx8ICpzaXpl
ID4gc3RkOjpudW1lcmljX2xpbWl0czxkZWNsdHlwZShtX2ZpbGVTaXplKT46Om1heCgpKSB7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAoIXNpemUpIHsKKyAgICBpZiAo
ISpzaXplKSB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtNDMzLDExICs0MzIs
MTEgQEAgYm9vbCBNYXBwZWRGaWxlRGF0YTo6bWFwRmlsZUhhbmRsZShQbGF0Zm9ybUZpbGVIYW5k
bGUgaGFuZGxlLCBGaWxlT3Blbk1vZGUgb3Blbk0KICAgICBpZiAoIW1hcHBpbmcpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIG1fZmlsZURhdGEgPSBNYXBWaWV3T2ZGaWxlKG1hcHBpbmcs
IGRlc2lyZWRBY2Nlc3MsIDAsIDAsIHNpemUpOworICAgIG1fZmlsZURhdGEgPSBNYXBWaWV3T2ZG
aWxlKG1hcHBpbmcsIGRlc2lyZWRBY2Nlc3MsIDAsIDAsICpzaXplKTsKICAgICBDbG9zZUhhbmRs
ZShtYXBwaW5nKTsKICAgICBpZiAoIW1fZmlsZURhdGEpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBtX2ZpbGVTaXplID0gc2l6ZTsKKyAgICBtX2ZpbGVTaXplID0gKnNpemU7CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKaW5kZXggYTMx
ZGUxMDQzNjg5MjRlYzQ0ODU1NDhlNDA3N2M4MWRlYmQ5OWI1ZS4uOThkYjk4Y2M3M2MxYzA5ODc3
NWYzMGI3YTRlYTM3OWRkZGVmZTRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5j
cHAKQEAgLTEyODQsNyArMTI4NCw3IEBAIHVpbnQ2NF90IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6
ZGF0YWJhc2VzU2l6ZUZvckRpcmVjdG9yeShjb25zdCBTdHJpbmcmIGRpcmVjdG9yCiAgICAgICAg
IGF1dG8gZGJEaXJlY3RvcnlQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9u
ZW50KGRpcmVjdG9yeSwgZGJEaXJlY3RvcnlOYW1lKTsKICAgICAgICAgZm9yIChhdXRvJiBmaWxl
TmFtZSA6IEZpbGVTeXN0ZW06Omxpc3REaXJlY3RvcnkoZGJEaXJlY3RvcnlQYXRoKSkgewogICAg
ICAgICAgICAgaWYgKGZpbGVOYW1lLmVuZHNXaXRoKCIuc3FsaXRlMyIpKQotICAgICAgICAgICAg
ICAgIGRpc2tVc2FnZSArPSBTUUxpdGVGaWxlU3lzdGVtOjpnZXREYXRhYmFzZUZpbGVTaXplKEZp
bGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChkYkRpcmVjdG9yeVBhdGgsIGZpbGVO
YW1lKSk7CisgICAgICAgICAgICAgICAgZGlza1VzYWdlICs9IFNRTGl0ZUZpbGVTeXN0ZW06OmRh
dGFiYXNlRmlsZVNpemUoRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGRiRGly
ZWN0b3J5UGF0aCwgZmlsZU5hbWUpKTsKICAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gZGlz
a1VzYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZURldGFpbHMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2VEZXRhaWxzLmgKaW5kZXggOGJhYWVjMTI3OTQ3ZTRkMTRjNDZkMWQ3OGZjM2M3MDY4MWVm
YzZkOC4uMzkwMDRkYWU4MGI5N2NmNDJiNWZhZmEzMGYzMDIxMWY5MDJhNTdhNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZURldGFpbHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlRGV0YWlscy5o
CkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0K
IAotICAgIERhdGFiYXNlRGV0YWlscyhjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3Qg
U3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIGV4cGVjdGVkVXNhZ2UsIHVu
c2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50VXNhZ2UsIE9wdGlvbmFsPFdhbGxUaW1lPiBjcmVhdGlv
blRpbWUsIE9wdGlvbmFsPFdhbGxUaW1lPiBtb2RpZmljYXRpb25UaW1lKQorICAgIERhdGFiYXNl
RGV0YWlscyhjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5
TmFtZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgdWludDY0X3QgY3VycmVudFVzYWdlLCBPcHRp
b25hbDxXYWxsVGltZT4gY3JlYXRpb25UaW1lLCBPcHRpb25hbDxXYWxsVGltZT4gbW9kaWZpY2F0
aW9uVGltZSkKICAgICAgICAgOiBtX25hbWUoZGF0YWJhc2VOYW1lKQogICAgICAgICAsIG1fZGlz
cGxheU5hbWUoZGlzcGxheU5hbWUpCiAgICAgICAgICwgbV9leHBlY3RlZFVzYWdlKGV4cGVjdGVk
VXNhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlVHJhY2tlci5jcHAKaW5kZXggMGFkM2I0ODAyM2YxZjk2ZWFiOWJjZjRmNzcyZGU0OTMz
MDdlYmY4NC4uZmFkMjBiZjBkNTM1MmI2OGU5YmE5MDkwODkzYzA4MWRiOGI0YjRlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFj
a2VyLmNwcApAQCAtMTQxLDEzICsxNDEsMTMgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6Om9wZW5U
cmFja2VyRGF0YWJhc2UoVHJhY2tlckNyZWF0aW9uQWN0aW9uIGNyZWF0ZUFjdGlvbikKICAgICB9
CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IERhdGFiYXNlVHJhY2tlcjo6aGFzQWRlcXVhdGVRdW90
YUZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbiwgdW5zaWduZWQgbG9u
ZyBsb25nIGVzdGltYXRlZFNpemUpCitFeGNlcHRpb25Pcjx2b2lkPiBEYXRhYmFzZVRyYWNrZXI6
Omhhc0FkZXF1YXRlUXVvdGFGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmln
aW4sIHVpbnQ2NF90IGVzdGltYXRlZFNpemUpCiB7CiAgICAgQVNTRVJUKCFtX2RhdGFiYXNlR3Vh
cmQudHJ5TG9jaygpKTsKICAgICBhdXRvIHVzYWdlID0gdGhpcy0+dXNhZ2Uob3JpZ2luKTsKIAog
ICAgIC8vIElmIHRoZSBkYXRhYmFzZSB3aWxsIGZpdCwgYWxsb3cgaXRzIGNyZWF0aW9uLgotICAg
IGF1dG8gcmVxdWlyZW1lbnQgPSB1c2FnZSArIHN0ZDo6bWF4PHVuc2lnbmVkIGxvbmcgbG9uZz4o
MSwgZXN0aW1hdGVkU2l6ZSk7CisgICAgYXV0byByZXF1aXJlbWVudCA9IHVzYWdlICsgc3RkOjpt
YXg8dWludDY0X3Q+KDF1LCBlc3RpbWF0ZWRTaXplKTsKICAgICBpZiAocmVxdWlyZW1lbnQgPCB1
c2FnZSkgewogICAgICAgICAvLyBUaGUgZXN0aW1hdGVkIHNpemUgaXMgc28gYmlnIGl0IGNhdXNl
cyBhbiBvdmVyZmxvdzsgZG9uJ3QgYWxsb3cgY3JlYXRpb24uCiAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBTZWN1cml0eUVycm9yIH07CkBAIC0xNTcsNyArMTU3LDcgQEAgRXhjZXB0aW9uT3I8
dm9pZD4gRGF0YWJhc2VUcmFja2VyOjpoYXNBZGVxdWF0ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNl
Y3VyaXR5T3JpZ2kKICAgICByZXR1cm4geyB9OwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBEYXRh
YmFzZVRyYWNrZXI6OmNhbkVzdGFibGlzaERhdGFiYXNlKERhdGFiYXNlQ29udGV4dCYgY29udGV4
dCwgY29uc3QgU3RyaW5nJiBuYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgZXN0aW1hdGVkU2l6ZSkK
K0V4Y2VwdGlvbk9yPHZvaWQ+IERhdGFiYXNlVHJhY2tlcjo6Y2FuRXN0YWJsaXNoRGF0YWJhc2Uo
RGF0YWJhc2VDb250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIHVpbnQ2NF90IGVz
dGltYXRlZFNpemUpCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1
YXJkKTsKIApAQCAtMjA1LDcgKzIwNSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IERhdGFiYXNlVHJh
Y2tlcjo6Y2FuRXN0YWJsaXNoRGF0YWJhc2UoRGF0YWJhc2VDb250ZXh0JiBjb250ZXh0CiAvLyBo
YXNBZGVxdWF0ZVF1b3RhRm9yT3JpZ2luKCkgc2ltcGxlIGFuZCBjb3JyZWN0IChpLmUuIGJ1ZyBm
cmVlKSwgYW5kIGp1c3QKIC8vIHJlLXVzZSBpdC4gQWxzbyBub3RlIHRoYXQgdGhlIHBhdGggZm9y
IG9wZW5pbmcgYSBkYXRhYmFzZSBpbnZvbHZlcyBJTywgYW5kCiAvLyBoZW5jZSBzaG91bGQgbm90
IGJlIGEgcGVyZm9ybWFuY2UgY3JpdGljYWwgcGF0aCBhbnl3YXkuIAotRXhjZXB0aW9uT3I8dm9p
ZD4gRGF0YWJhc2VUcmFja2VyOjpyZXRyeUNhbkVzdGFibGlzaERhdGFiYXNlKERhdGFiYXNlQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgZXN0
aW1hdGVkU2l6ZSkKK0V4Y2VwdGlvbk9yPHZvaWQ+IERhdGFiYXNlVHJhY2tlcjo6cmV0cnlDYW5F
c3RhYmxpc2hEYXRhYmFzZShEYXRhYmFzZUNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYg
bmFtZSwgdWludDY0X3QgZXN0aW1hdGVkU2l6ZSkKIHsKICAgICBMb2NrSG9sZGVyIGxvY2tEYXRh
YmFzZShtX2RhdGFiYXNlR3VhcmQpOwogCkBAIC0yNjcsMTYgKzI2NywxNiBAQCBib29sIERhdGFi
YXNlVHJhY2tlcjo6aGFzRW50cnlGb3JEYXRhYmFzZShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEm
IG9yaWdpbiwgY29ucwogICAgIHJldHVybiBzdGF0ZW1lbnQuc3RlcCgpID09IFNRTElURV9ST1c7
CiB9CiAKLXVuc2lnbmVkIGxvbmcgbG9uZyBEYXRhYmFzZVRyYWNrZXI6Om1heGltdW1TaXplKERh
dGFiYXNlJiBkYXRhYmFzZSkKK3VpbnQ2NF90IERhdGFiYXNlVHJhY2tlcjo6bWF4aW11bVNpemUo
RGF0YWJhc2UmIGRhdGFiYXNlKQogewogICAgIC8vIFRoZSBtYXhpbXVtIHNpemUgZm9yIGEgZGF0
YWJhc2UgaXMgdGhlIGZ1bGwgcXVvdGEgZm9yIGl0cyBvcmlnaW4sIG1pbnVzIHRoZSBjdXJyZW50
IHVzYWdlIHdpdGhpbiB0aGUgb3JpZ2luLAogICAgIC8vIHBsdXMgdGhlIGN1cnJlbnQgdXNhZ2Ug
b2YgdGhlIGdpdmVuIGRhdGFiYXNlCiAgICAgTG9ja0hvbGRlciBsb2NrRGF0YWJhc2UobV9kYXRh
YmFzZUd1YXJkKTsKICAgICBhdXRvIG9yaWdpbiA9IGRhdGFiYXNlLnNlY3VyaXR5T3JpZ2luKCk7
CiAKLSAgICB1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEgPSBxdW90YU5vTG9jayhvcmlnaW4pOwot
ICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBkaXNrVXNhZ2UgPSB1c2FnZShvcmlnaW4pOwotICAgIHVu
c2lnbmVkIGxvbmcgbG9uZyBkYXRhYmFzZUZpbGVTaXplID0gU1FMaXRlRmlsZVN5c3RlbTo6Z2V0
RGF0YWJhc2VGaWxlU2l6ZShkYXRhYmFzZS5maWxlTmFtZUlzb2xhdGVkQ29weSgpKTsKKyAgICBh
dXRvIHF1b3RhID0gcXVvdGFOb0xvY2sob3JpZ2luKTsKKyAgICBhdXRvIGRpc2tVc2FnZSA9IHVz
YWdlKG9yaWdpbik7CisgICAgYXV0byBkYXRhYmFzZUZpbGVTaXplID0gU1FMaXRlRmlsZVN5c3Rl
bTo6ZGF0YWJhc2VGaWxlU2l6ZShkYXRhYmFzZS5maWxlTmFtZUlzb2xhdGVkQ29weSgpKTsKICAg
ICBBU1NFUlQoZGF0YWJhc2VGaWxlU2l6ZSA8PSBkaXNrVXNhZ2UpOwogCiAgICAgaWYgKGRpc2tV
c2FnZSA+IHF1b3RhKQpAQCAtMjg2LDcgKzI4Niw3IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBEYXRh
YmFzZVRyYWNrZXI6Om1heGltdW1TaXplKERhdGFiYXNlJiBkYXRhYmFzZSkKICAgICAvLyBoYXZl
IGFsbG93ZWQgdGhpcyBkYXRhYmFzZSB0byBleGNlZWQgb3VyIGNhY2hlZCBlc3RpbWF0ZSBvZiB0
aGUgb3JpZ2luCiAgICAgLy8gZGlzayB1c2FnZS4gRG9uJ3QgbXVsdGlwbHkgdGhhdCBlcnJvciB0
aHJvdWdoIGludGVnZXIgdW5kZXJmbG93LCBvciB0aGUKICAgICAvLyBlZmZlY3RpdmUgcXVvdGEg
d2lsbCBwZXJtYW5lbnRseSBiZWNvbWUgMl42NC4KLSAgICB1bnNpZ25lZCBsb25nIGxvbmcgbWF4
U2l6ZSA9IHF1b3RhIC0gZGlza1VzYWdlICsgZGF0YWJhc2VGaWxlU2l6ZTsKKyAgICB1aW50NjRf
dCBtYXhTaXplID0gcXVvdGEgLSBkaXNrVXNhZ2UgKyBkYXRhYmFzZUZpbGVTaXplOwogICAgIGlm
IChtYXhTaXplID4gcXVvdGEpCiAgICAgICAgIG1heFNpemUgPSBkYXRhYmFzZUZpbGVTaXplOwog
ICAgIHJldHVybiBtYXhTaXplOwpAQCAtNDYxLDEwICs0NjEsMTAgQEAgRGF0YWJhc2VEZXRhaWxz
IERhdGFiYXNlVHJhY2tlcjo6ZGV0YWlsc0Zvck5hbWVBbmRPcmlnaW4oY29uc3QgU3RyaW5nJiBu
YW1lLCBjb24KICAgICBTdHJpbmcgcGF0aCA9IGZ1bGxQYXRoRm9yRGF0YWJhc2Uob3JpZ2luLCBu
YW1lLCBmYWxzZSk7CiAgICAgaWYgKHBhdGguaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gRGF0
YWJhc2VEZXRhaWxzKG5hbWUsIGRpc3BsYXlOYW1lLCBleHBlY3RlZFVzYWdlLCAwLCBXVEY6Om51
bGxvcHQsIFdURjo6bnVsbG9wdCk7Ci0gICAgcmV0dXJuIERhdGFiYXNlRGV0YWlscyhuYW1lLCBk
aXNwbGF5TmFtZSwgZXhwZWN0ZWRVc2FnZSwgU1FMaXRlRmlsZVN5c3RlbTo6Z2V0RGF0YWJhc2VG
aWxlU2l6ZShwYXRoKSwgU1FMaXRlRmlsZVN5c3RlbTo6ZGF0YWJhc2VDcmVhdGlvblRpbWUocGF0
aCksIFNRTGl0ZUZpbGVTeXN0ZW06OmRhdGFiYXNlTW9kaWZpY2F0aW9uVGltZShwYXRoKSk7Cisg
ICAgcmV0dXJuIERhdGFiYXNlRGV0YWlscyhuYW1lLCBkaXNwbGF5TmFtZSwgZXhwZWN0ZWRVc2Fn
ZSwgU1FMaXRlRmlsZVN5c3RlbTo6ZGF0YWJhc2VGaWxlU2l6ZShwYXRoKSwgU1FMaXRlRmlsZVN5
c3RlbTo6ZGF0YWJhc2VDcmVhdGlvblRpbWUocGF0aCksIFNRTGl0ZUZpbGVTeXN0ZW06OmRhdGFi
YXNlTW9kaWZpY2F0aW9uVGltZShwYXRoKSk7CiB9CiAKLXZvaWQgRGF0YWJhc2VUcmFja2VyOjpz
ZXREYXRhYmFzZURldGFpbHMoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4sIGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBs
b25nIGVzdGltYXRlZFNpemUpCit2b2lkIERhdGFiYXNlVHJhY2tlcjo6c2V0RGF0YWJhc2VEZXRh
aWxzKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGVzdGltYXRlZFNpemUpCiB7CiAg
ICAgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIgPSBvcmlnaW4uZGF0YWJhc2VJZGVudGlmaWVyKCk7
CiAgICAgaW50NjRfdCBndWlkID0gMDsKQEAgLTY1MSwyMSArNjUxLDIxIEBAIHZvaWQgRGF0YWJh
c2VUcmFja2VyOjpkZWxldGVPcmlnaW5Mb2NrRm9yKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYg
b3JpZ2luKQogICAgIE9yaWdpbkxvY2s6OmRlbGV0ZUxvY2tGaWxlKG9yaWdpblBhdGgob3JpZ2lu
KSk7CiB9CiAKLXVuc2lnbmVkIGxvbmcgbG9uZyBEYXRhYmFzZVRyYWNrZXI6OnVzYWdlKGNvbnN0
IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luKQordWludDY0X3QgRGF0YWJhc2VUcmFja2VyOjp1
c2FnZShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbikKIHsKICAgICBTdHJpbmcgb3Jp
Z2luUGF0aCA9IHRoaXMtPm9yaWdpblBhdGgob3JpZ2luKTsKLSAgICB1bnNpZ25lZCBsb25nIGxv
bmcgZGlza1VzYWdlID0gMDsKKyAgICB1aW50NjRfdCBkaXNrVXNhZ2UgPSAwOwogICAgIGZvciAo
YXV0byYgZmlsZU5hbWUgOiBGaWxlU3lzdGVtOjpsaXN0RGlyZWN0b3J5KG9yaWdpblBhdGgpKSB7
CiAgICAgICAgIGlmIChmaWxlTmFtZS5lbmRzV2l0aCgiLmRiIikpCi0gICAgICAgICAgICBkaXNr
VXNhZ2UgKz0gU1FMaXRlRmlsZVN5c3RlbTo6Z2V0RGF0YWJhc2VGaWxlU2l6ZShGaWxlU3lzdGVt
OjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQob3JpZ2luUGF0aCwgZmlsZU5hbWUpKTsKKyAgICAg
ICAgICAgIGRpc2tVc2FnZSArPSBTUUxpdGVGaWxlU3lzdGVtOjpkYXRhYmFzZUZpbGVTaXplKEZp
bGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChvcmlnaW5QYXRoLCBmaWxlTmFtZSkp
OwogICAgIH0KICAgICByZXR1cm4gZGlza1VzYWdlOwogfQogCi11bnNpZ25lZCBsb25nIGxvbmcg
RGF0YWJhc2VUcmFja2VyOjpxdW90YU5vTG9jayhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9y
aWdpbikKK3VpbnQ2NF90IERhdGFiYXNlVHJhY2tlcjo6cXVvdGFOb0xvY2soY29uc3QgU2VjdXJp
dHlPcmlnaW5EYXRhJiBvcmlnaW4pCiB7CiAgICAgQVNTRVJUKCFtX2RhdGFiYXNlR3VhcmQudHJ5
TG9jaygpKTsKLSAgICB1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEgPSAwOworICAgIHVpbnQ2NF90
IHF1b3RhID0gMDsKIAogICAgIG9wZW5UcmFja2VyRGF0YWJhc2UoRG9udENyZWF0ZUlmRG9lc05v
dEV4aXN0KTsKICAgICBpZiAoIW1fZGF0YWJhc2UuaXNPcGVuKCkpCkBAIC02ODQsMTMgKzY4NCwx
MyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgRGF0YWJhc2VUcmFja2VyOjpxdW90YU5vTG9jayhjb25z
dCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbgogICAgIHJldHVybiBxdW90YTsKIH0KIAotdW5z
aWduZWQgbG9uZyBsb25nIERhdGFiYXNlVHJhY2tlcjo6cXVvdGEoY29uc3QgU2VjdXJpdHlPcmln
aW5EYXRhJiBvcmlnaW4pCit1aW50NjRfdCBEYXRhYmFzZVRyYWNrZXI6OnF1b3RhKGNvbnN0IFNl
Y3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luKQogewogICAgIExvY2tIb2xkZXIgbG9ja0RhdGFiYXNl
KG1fZGF0YWJhc2VHdWFyZCk7CiAgICAgcmV0dXJuIHF1b3RhTm9Mb2NrKG9yaWdpbik7CiB9CiAK
LXZvaWQgRGF0YWJhc2VUcmFja2VyOjpzZXRRdW90YShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEm
IG9yaWdpbiwgdW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKQordm9pZCBEYXRhYmFzZVRyYWNrZXI6
OnNldFF1b3RhKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luLCB1aW50NjRfdCBxdW90
YSkKIHsKICAgICBMb2NrSG9sZGVyIGxvY2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwogCkBA
IC0xMjQzLDggKzEyNDMsOCBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6cmVtb3ZlRGVsZXRlZE9w
ZW5lZERhdGFiYXNlcygpCiAgICAgCiBzdGF0aWMgYm9vbCBpc1plcm9CeXRlRmlsZShjb25zdCBT
dHJpbmcmIHBhdGgpCiB7Ci0gICAgbG9uZyBsb25nIHNpemUgPSAwOwotICAgIHJldHVybiBGaWxl
U3lzdGVtOjpnZXRGaWxlU2l6ZShwYXRoLCBzaXplKSAmJiAhc2l6ZTsKKyAgICBhdXRvIHNpemUg
PSBGaWxlU3lzdGVtOjpmaWxlU2l6ZShwYXRoKTsKKyAgICByZXR1cm4gc2l6ZSAmJiAhKnNpemU7
CiB9CiAgICAgCiBib29sIERhdGFiYXNlVHJhY2tlcjo6ZGVsZXRlRGF0YWJhc2VGaWxlSWZFbXB0
eShjb25zdCBTdHJpbmcmIHBhdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaAppbmRleCA0MjE5MDg5ZThhN2RlMWQ4ODdjMGJh
YjA2N2E5MGVmMzU5YTAwNjk0Li4zY2EwYTQ2NTUwMTQ1ZDAwYjIyMjUxMGE2MTkzYjU4MGE5OWUz
NzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlVHJhY2tlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2VUcmFja2VyLmgKQEAgLTY3LDE3ICs2NywxNyBAQCBwdWJsaWM6CiAgICAgLy8gbV9kYXRh
YmFzZUd1YXJkIGFuZCBtX29wZW5EYXRhYmFzZU1hcEd1YXJkIGN1cnJlbnRseSBkb24ndCBvdmVy
bGFwLgogICAgIC8vIG5vdGlmaWNhdGlvbk11dGV4KCkgaXMgY3VycmVudGx5IGluZGVwZW5kZW50
IG9mIHRoZSBvdGhlciBsb2Nrcy4KIAotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGNhbkVzdGFibGlz
aERhdGFiYXNlKERhdGFiYXNlQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgbmFtZSwgdW5zaWduZWQg
bG9uZyBsb25nIGVzdGltYXRlZFNpemUpOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJldHJ5Q2Fu
RXN0YWJsaXNoRGF0YWJhc2UoRGF0YWJhc2VDb250ZXh0JiwgY29uc3QgU3RyaW5nJiBuYW1lLCB1
bnNpZ25lZCBsb25nIGxvbmcgZXN0aW1hdGVkU2l6ZSk7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4g
Y2FuRXN0YWJsaXNoRGF0YWJhc2UoRGF0YWJhc2VDb250ZXh0JiwgY29uc3QgU3RyaW5nJiBuYW1l
LCB1aW50NjRfdCBlc3RpbWF0ZWRTaXplKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiByZXRyeUNh
bkVzdGFibGlzaERhdGFiYXNlKERhdGFiYXNlQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgbmFtZSwg
dWludDY0X3QgZXN0aW1hdGVkU2l6ZSk7CiAKLSAgICB2b2lkIHNldERhdGFiYXNlRGV0YWlscyhj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBlc3RpbWF0ZWRTaXplKTsKKyAgICB2
b2lkIHNldERhdGFiYXNlRGV0YWlscyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGVzdGltYXRl
ZFNpemUpOwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBmdWxsUGF0aEZvckRhdGFiYXNlKGNv
bnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJ
ZkRvZXNOb3RFeGlzdCk7CiAKICAgICBWZWN0b3I8UmVmPERhdGFiYXNlPj4gb3BlbkRhdGFiYXNl
cygpOwogICAgIHZvaWQgYWRkT3BlbkRhdGFiYXNlKERhdGFiYXNlJik7CiAgICAgdm9pZCByZW1v
dmVPcGVuRGF0YWJhc2UoRGF0YWJhc2UmKTsKIAotICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBtYXhp
bXVtU2l6ZShEYXRhYmFzZSYpOworICAgIHVpbnQ2NF90IG1heGltdW1TaXplKERhdGFiYXNlJik7
CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsb3NlQWxsRGF0YWJhc2VzKEN1cnJlbnRRdWVy
eUJlaGF2aW9yID0gQ3VycmVudFF1ZXJ5QmVoYXZpb3I6OlJ1blRvQ29tcGxldGlvbik7CiAKQEAg
LTg2LDkgKzg2LDkgQEAgcHVibGljOgogCiAgICAgRGF0YWJhc2VEZXRhaWxzIGRldGFpbHNGb3JO
YW1lQW5kT3JpZ2luKGNvbnN0IFN0cmluZyYsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpOwog
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgbG9uZyBsb25nIHVzYWdlKGNvbnN0IFNlY3Vy
aXR5T3JpZ2luRGF0YSYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIGxvbmcgbG9uZyBx
dW90YShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFF1b3RhKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYsIHVuc2lnbmVkIGxvbmcgbG9uZyk7
CisgICAgV0VCQ09SRV9FWFBPUlQgdWludDY0X3QgdXNhZ2UoY29uc3QgU2VjdXJpdHlPcmlnaW5E
YXRhJik7CisgICAgV0VCQ09SRV9FWFBPUlQgdWludDY0X3QgcXVvdGEoY29uc3QgU2VjdXJpdHlP
cmlnaW5EYXRhJik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRRdW90YShjb25zdCBTZWN1
cml0eU9yaWdpbkRhdGEmLCB1aW50NjRfdCk7CiAgICAgUmVmUHRyPE9yaWdpbkxvY2s+IG9yaWdp
bkxvY2tGb3IoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJik7CiAKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGRlbGV0ZUFsbERhdGFiYXNlc0ltbWVkaWF0ZWx5KCk7CkBAIC0xMTksMTIgKzExOSwx
MiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IERhdGFiYXNlVHJhY2tlcihjb25z
dCBTdHJpbmcmIGRhdGFiYXNlUGF0aCk7CiAKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBoYXNBZGVx
dWF0ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYsIHVuc2lnbmVkIGxv
bmcgbG9uZyBlc3RpbWF0ZWRTaXplKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBoYXNBZGVxdWF0
ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYsIHVpbnQ2NF90IGVzdGlt
YXRlZFNpemUpOwogCiAgICAgYm9vbCBoYXNFbnRyeUZvck9yaWdpbk5vTG9jayhjb25zdCBTZWN1
cml0eU9yaWdpbkRhdGEmKTsKICAgICBTdHJpbmcgZnVsbFBhdGhGb3JEYXRhYmFzZU5vTG9jayhj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRl
SWZEb2VzTm90RXhpc3QpOwogICAgIFZlY3RvcjxTdHJpbmc+IGRhdGFiYXNlTmFtZXNOb0xvY2so
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJik7Ci0gICAgdW5zaWduZWQgbG9uZyBsb25nIHF1b3Rh
Tm9Mb2NrKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpOworICAgIHVpbnQ2NF90IHF1b3RhTm9M
b2NrKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpOwogCiAgICAgU3RyaW5nIHRyYWNrZXJEYXRh
YmFzZVBhdGgoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9j
b2NvYS9XZWJDb250ZW50UmVhZGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nv
Y29hL1dlYkNvbnRlbnRSZWFkZXJDb2NvYS5tbQppbmRleCBmZjFmNWExMWU3NTQwN2E5ZmRhZjE3
YTc2N2ZkNGJiZDI4Y2VlMDY5Li43MzQ2Mjk0OGUyYTFlNTFkN2QyMDFmODgyNWRiZWMyMzVkMzIz
OGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL1dlYkNvbnRlbnRS
ZWFkZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL1dlYkNvbnRl
bnRSZWFkZXJDb2NvYS5tbQpAQCAtNzI3LDExICs3MjcsOCBAQCBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKICAgICB9CiAKICAgICBPcHRpb25hbDx1aW50NjRfdD4gZmlsZVNpemVG
b3JEaXNwbGF5OwotICAgIGlmICghaXNEaXJlY3RvcnkpIHsKLSAgICAgICAgbG9uZyBsb25nIGZp
bGVTaXplOwotICAgICAgICBGaWxlU3lzdGVtOjpnZXRGaWxlU2l6ZShwYXRoLCBmaWxlU2l6ZSk7
Ci0gICAgICAgIGZpbGVTaXplRm9yRGlzcGxheSA9IGZpbGVTaXplOwotICAgIH0KKyAgICBpZiAo
IWlzRGlyZWN0b3J5KQorICAgICAgICBmaWxlU2l6ZUZvckRpc3BsYXkgPSBGaWxlU3lzdGVtOjpm
aWxlU2l6ZShwYXRoKS52YWx1ZU9yKDApOwogCiAgICAgZnJhbWUuZWRpdG9yKCkucmVnaXN0ZXJB
dHRhY2htZW50SWRlbnRpZmllcihhdHRhY2htZW50LT5lbnN1cmVVbmlxdWVJZGVudGlmaWVyKCks
IGNvbnRlbnRUeXBlLCBwYXRoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAKaW5kZXggMTc0Y2RkMTFk
YzJlNmMwODFmNjZmNThjMDAxMTg2N2Q0NjAyYWJkZi4uMmMwOTQyYmM3OWYzNTk2NTljNzg2YzVl
MjM4OTU2YWRmNGE0MWYwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCkBAIC0zNjksMTEgKzM2OSwx
MSBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjppc01heGltdW1TaXplUmVhY2hlZCgp
IGNvbnN0CiBpbnQ2NF90IEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpzcGFjZU5lZWRlZChpbnQ2
NF90IGNhY2hlVG9TYXZlKQogewogICAgIGludDY0X3Qgc3BhY2VOZWVkZWQgPSAwOwotICAgIGxv
bmcgbG9uZyBmaWxlU2l6ZSA9IDA7Ci0gICAgaWYgKCFGaWxlU3lzdGVtOjpnZXRGaWxlU2l6ZSht
X2NhY2hlRmlsZSwgZmlsZVNpemUpKQorICAgIGF1dG8gZmlsZVNpemUgPSBGaWxlU3lzdGVtOjpm
aWxlU2l6ZShtX2NhY2hlRmlsZSk7CisgICAgaWYgKCFmaWxlU2l6ZSkKICAgICAgICAgcmV0dXJu
IDA7CiAKLSAgICBpbnQ2NF90IGN1cnJlbnRTaXplID0gZmlsZVNpemUgKyBmbGF0RmlsZUFyZWFT
aXplKCk7CisgICAgaW50NjRfdCBjdXJyZW50U2l6ZSA9ICpmaWxlU2l6ZSArIGZsYXRGaWxlQXJl
YVNpemUoKTsKIAogICAgIC8vIERldGVybWluZSB0aGUgYW1vdW50IG9mIGZyZWUgc3BhY2Ugd2Ug
aGF2ZSBhdmFpbGFibGUuCiAgICAgaW50NjRfdCB0b3RhbEF2YWlsYWJsZVNpemUgPSAwOwpAQCAt
MTEyNiw3ICsxMTI2LDcgQEAgUmVmUHRyPEFwcGxpY2F0aW9uQ2FjaGU+IEFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlOjpsb2FkQ2FjaGUodW5zaWduZWQgc3RvcmFnZUlEKQogICAgICAgICAgICAgc2l6
ZSA9IGRhdGEtPnNpemUoKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBwYXRoID0gRmls
ZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGZsYXRGaWxlRGlyZWN0b3J5LCBwYXRo
KTsKLSAgICAgICAgICAgIEZpbGVTeXN0ZW06OmdldEZpbGVTaXplKHBhdGgsIHNpemUpOworICAg
ICAgICAgICAgc2l6ZSA9IEZpbGVTeXN0ZW06OmZpbGVTaXplKHBhdGgpLnZhbHVlT3IoMCk7CiAg
ICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIFN0cmluZyBtaW1lVHlwZSA9IGNhY2hlU3RhdGVt
ZW50LmdldENvbHVtblRleHQoMyk7CkBAIC0xNDU2LDEyICsxNDU2LDggQEAgbG9uZyBsb25nIEFw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpmbGF0RmlsZUFyZWFTaXplKCkKICAgICBsb25nIGxvbmcg
dG90YWxTaXplID0gMDsKICAgICBTdHJpbmcgZmxhdEZpbGVEaXJlY3RvcnkgPSBGaWxlU3lzdGVt
OjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9jYWNoZURpcmVjdG9yeSwgbV9mbGF0RmlsZVN1
YmRpcmVjdG9yeU5hbWUpOwogICAgIHdoaWxlIChzZWxlY3RQYXRocy5zdGVwKCkgPT0gU1FMSVRF
X1JPVykgewotICAgICAgICBTdHJpbmcgcGF0aCA9IHNlbGVjdFBhdGhzLmdldENvbHVtblRleHQo
MCk7Ci0gICAgICAgIFN0cmluZyBmdWxsUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGlu
Z0NvbXBvbmVudChmbGF0RmlsZURpcmVjdG9yeSwgcGF0aCk7Ci0gICAgICAgIGxvbmcgbG9uZyBw
YXRoU2l6ZSA9IDA7Ci0gICAgICAgIGlmICghRmlsZVN5c3RlbTo6Z2V0RmlsZVNpemUoZnVsbFBh
dGgsIHBhdGhTaXplKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB0b3RhbFNpemUg
Kz0gcGF0aFNpemU7CisgICAgICAgIGF1dG8gZnVsbFBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlB
cHBlbmRpbmdDb21wb25lbnQoZmxhdEZpbGVEaXJlY3RvcnksIHNlbGVjdFBhdGhzLmdldENvbHVt
blRleHQoMCkpOworICAgICAgICB0b3RhbFNpemUgKz0gRmlsZVN5c3RlbTo6ZmlsZVNpemUoZnVs
bFBhdGgpLnZhbHVlT3IoMCk7CiAgICAgfQogICAgIAogICAgIHJldHVybiB0b3RhbFNpemU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3RyZWFtLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTdHJlYW0uY3BwCmluZGV4IDg5M2JiMzM5NDc2Y2VmZGE4
ZGYxMGJjOTIwYzBiMzU4MjUxOTE1N2EuLjM0MDY1NjJiZThkNGNlZWFjMTE0OTE3YzAxYTA4NGI5
NDY3OGVkOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTdHJlYW0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTdHJlYW0uY3BwCkBAIC01OSwx
MSArNTksMTEgQEAgbG9uZyBsb25nIEZpbGVTdHJlYW06OmdldFNpemUoY29uc3QgU3RyaW5nJiBw
YXRoLCBPcHRpb25hbDxXYWxsVGltZT4gZXhwZWN0ZWRNb2QKICAgICB9CiAKICAgICAvLyBOb3cg
Z2V0IHRoZSBmaWxlIHNpemUuCi0gICAgbG9uZyBsb25nIGxlbmd0aDsKLSAgICBpZiAoIUZpbGVT
eXN0ZW06OmdldEZpbGVTaXplKHBhdGgsIGxlbmd0aCkpCisgICAgYXV0byBsZW5ndGggPSBGaWxl
U3lzdGVtOjpmaWxlU2l6ZShwYXRoKTsKKyAgICBpZiAoIWxlbmd0aCkKICAgICAgICAgcmV0dXJu
IC0xOwogCi0gICAgcmV0dXJuIGxlbmd0aDsKKyAgICByZXR1cm4gKmxlbmd0aDsKIH0KIAogYm9v
bCBGaWxlU3RyZWFtOjpvcGVuRm9yUmVhZChjb25zdCBTdHJpbmcmIHBhdGgsIGxvbmcgbG9uZyBv
ZmZzZXQsIGxvbmcgbG9uZyBsZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvRm9ybURhdGEuY3BwCmluZGV4IGQ5YjM1YzNkZWEzMjgwNWIwYWUzNjUzMzg5NDRiZGY5NGFh
NWJmNTcuLjcwMmRiYzllNTQzZmM4ZmIxZmQ1OWM2N2E3MTJiNzYwZDQyZGNlNTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwCkBAIC0xMzEsMTAgKzEz
MSw3IEBAIHVpbnQ2NF90IEZvcm1EYXRhRWxlbWVudDo6bGVuZ3RoSW5CeXRlcyhjb25zdCBGdW5j
dGlvbjx1aW50NjRfdChjb25zdCBVUkwmKT4mIGJsCiAgICAgICAgIH0sIFtdIChjb25zdCBGb3Jt
RGF0YUVsZW1lbnQ6OkVuY29kZWRGaWxlRGF0YSYgZmlsZURhdGEpIHsKICAgICAgICAgICAgIGlm
IChmaWxlRGF0YS5maWxlTGVuZ3RoICE9IEJsb2JEYXRhSXRlbTo6dG9FbmRPZkZpbGUpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90PihmaWxlRGF0YS5maWxlTGVu
Z3RoKTsKLSAgICAgICAgICAgIGxvbmcgbG9uZyBmaWxlU2l6ZTsKLSAgICAgICAgICAgIGlmIChG
aWxlU3lzdGVtOjpnZXRGaWxlU2l6ZShmaWxlRGF0YS5maWxlbmFtZSwgZmlsZVNpemUpKQotICAg
ICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50NjRfdD4oZmlsZVNpemUpOwotICAg
ICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90PigwKTsKKyAgICAgICAgICAgIHJl
dHVybiBGaWxlU3lzdGVtOjpmaWxlU2l6ZShmaWxlRGF0YS5maWxlbmFtZSkudmFsdWVPcigwKTsK
ICAgICAgICAgfSwgWyZibG9iU2l6ZV0gKGNvbnN0IEZvcm1EYXRhRWxlbWVudDo6RW5jb2RlZEJs
b2JEYXRhJiBibG9iRGF0YSkgewogICAgICAgICAgICAgcmV0dXJuIGJsb2JTaXplKGJsb2JEYXRh
LnVybCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9DdXJsQ2FjaGVFbnRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ3VybENhY2hlRW50cnkuY3BwCmluZGV4IDllNzcyZWVkMTZmNGJkM2JmNjIy
YjczMWExMGY1NjM2ZTEwMTYyZDUuLjhkMzU3MGU2Zjk5YjgyODdiYjViZGVkMjU3Y2ViNTdjYTI2
MDRkNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9D
dXJsQ2FjaGVFbnRyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0N1cmxDYWNoZUVudHJ5LmNwcApAQCAtMjMyLDIxICsyMzIsMjEgQEAgYm9vbCBDdXJsQ2Fj
aGVFbnRyeTo6bG9hZEZpbGVUb0J1ZmZlcihjb25zdCBTdHJpbmcmIGZpbGVwYXRoLCBWZWN0b3I8
Y2hhcj4mIGJ1ZmYKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIGxvbmcgbG9u
ZyBmaWxlc2l6ZSA9IC0xOwotICAgIGlmICghRmlsZVN5c3RlbTo6Z2V0RmlsZVNpemUoZmlsZXBh
dGgsIGZpbGVzaXplKSkgeworICAgIGF1dG8gZmlsZXNpemUgPSBGaWxlU3lzdGVtOjpmaWxlU2l6
ZShmaWxlcGF0aCk7CisgICAgaWYgKCFmaWxlc2l6ZSkgewogICAgICAgICBMT0coTmV0d29yaywg
IkNhY2hlIEVycm9yOiBDb3VsZCBub3QgZ2V0IGZpbGUgc2l6ZSBvZiAlc1xuIiwgZmlsZXBhdGgu
bGF0aW4xKCkuZGF0YSgpKTsKICAgICAgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKGlucHV0Rmls
ZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICAvLyBMb2FkIHRoZSBmaWxl
IGNvbnRlbnQgaW50byBidWZmZXIKLSAgICBidWZmZXIucmVzaXplKGZpbGVzaXplKTsKKyAgICBi
dWZmZXIucmVzaXplKCpmaWxlc2l6ZSk7CiAgICAgaW50IGJ1ZmZlclBvc2l0aW9uID0gMDsKICAg
ICBpbnQgYnVmZmVyUmVhZFNpemUgPSA0MDk2OwogICAgIGludCBieXRlc1JlYWQgPSAwOwotICAg
IHdoaWxlIChmaWxlc2l6ZSA+IGJ1ZmZlclBvc2l0aW9uKSB7Ci0gICAgICAgIGlmIChmaWxlc2l6
ZSAtIGJ1ZmZlclBvc2l0aW9uIDwgYnVmZmVyUmVhZFNpemUpCi0gICAgICAgICAgICBidWZmZXJS
ZWFkU2l6ZSA9IGZpbGVzaXplIC0gYnVmZmVyUG9zaXRpb247CisgICAgd2hpbGUgKCpmaWxlc2l6
ZSA+IGJ1ZmZlclBvc2l0aW9uKSB7CisgICAgICAgIGlmICgqZmlsZXNpemUgLSBidWZmZXJQb3Np
dGlvbiA8IGJ1ZmZlclJlYWRTaXplKQorICAgICAgICAgICAgYnVmZmVyUmVhZFNpemUgPSAqZmls
ZXNpemUgLSBidWZmZXJQb3NpdGlvbjsKIAogICAgICAgICBieXRlc1JlYWQgPSBGaWxlU3lzdGVt
OjpyZWFkRnJvbUZpbGUoaW5wdXRGaWxlLCBidWZmZXIuZGF0YSgpICsgYnVmZmVyUG9zaXRpb24s
IGJ1ZmZlclJlYWRTaXplKTsKICAgICAgICAgaWYgKGJ5dGVzUmVhZCAhPSBidWZmZXJSZWFkU2l6
ZSkgewpAQCAtMzMwLDE5ICszMzAsMTggQEAgdm9pZCBDdXJsQ2FjaGVFbnRyeTo6c2V0SXNMb2Fk
aW5nKGJvb2wgaXNMb2FkaW5nKQogc2l6ZV90IEN1cmxDYWNoZUVudHJ5OjplbnRyeVNpemUoKQog
ewogICAgIGlmICghbV9lbnRyeVNpemUpIHsKLSAgICAgICAgbG9uZyBsb25nIGhlYWRlckZpbGVT
aXplOwotICAgICAgICBsb25nIGxvbmcgY29udGVudEZpbGVTaXplOwotCi0gICAgICAgIGlmICgh
RmlsZVN5c3RlbTo6Z2V0RmlsZVNpemUobV9oZWFkZXJGaWxlbmFtZSwgaGVhZGVyRmlsZVNpemUp
KSB7CisgICAgICAgIGF1dG8gaGVhZGVyRmlsZVNpemUgPSBGaWxlU3lzdGVtOjpmaWxlU2l6ZSht
X2hlYWRlckZpbGVuYW1lKTsKKyAgICAgICAgaWYgKCFoZWFkZXJGaWxlU2l6ZSkgewogICAgICAg
ICAgICAgTE9HKE5ldHdvcmssICJDYWNoZSBFcnJvcjogQ291bGQgbm90IGdldCBmaWxlIHNpemUg
b2YgJXNcbiIsIG1faGVhZGVyRmlsZW5hbWUubGF0aW4xKCkuZGF0YSgpKTsKICAgICAgICAgICAg
IHJldHVybiBtX2VudHJ5U2l6ZTsKICAgICAgICAgfQotICAgICAgICBpZiAoIUZpbGVTeXN0ZW06
OmdldEZpbGVTaXplKG1fY29udGVudEZpbGVuYW1lLCBjb250ZW50RmlsZVNpemUpKSB7CisgICAg
ICAgIGF1dG8gY29udGVudEZpbGVTaXplID0gRmlsZVN5c3RlbTo6ZmlsZVNpemUobV9jb250ZW50
RmlsZW5hbWUpOworICAgICAgICBpZiAoIWNvbnRlbnRGaWxlU2l6ZSkgewogICAgICAgICAgICAg
TE9HKE5ldHdvcmssICJDYWNoZSBFcnJvcjogQ291bGQgbm90IGdldCBmaWxlIHNpemUgb2YgJXNc
biIsIG1fY29udGVudEZpbGVuYW1lLmxhdGluMSgpLmRhdGEoKSk7CiAgICAgICAgICAgICByZXR1
cm4gbV9lbnRyeVNpemU7CiAgICAgICAgIH0KIAotICAgICAgICBtX2VudHJ5U2l6ZSA9IGhlYWRl
ckZpbGVTaXplICsgY29udGVudEZpbGVTaXplOworICAgICAgICBtX2VudHJ5U2l6ZSA9ICpoZWFk
ZXJGaWxlU2l6ZSArICpjb250ZW50RmlsZVNpemU7CiAgICAgfQogCiAgICAgcmV0dXJuIG1fZW50
cnlTaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L0N1cmxDYWNoZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0N1cmxDYWNoZU1hbmFnZXIuY3BwCmluZGV4IDkxNTU4N2U5YTg2MmI2YmJhZjkxNzRjODIx
MGM5NTVmZGJhYWJlNzYuLmU2OWY2YzM1Nzc1ZWRlY2NlYjIyZTg1MTU0NjUzYTk0ODYyNmZiY2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2Fj
aGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q3VybENhY2hlTWFuYWdlci5jcHAKQEAgLTEwOSw4ICsxMDksOCBAQCB2b2lkIEN1cmxDYWNoZU1h
bmFnZXI6OmxvYWRJbmRleCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBsb25nIGxv
bmcgZmlsZXNpemUgPSAtMTsKLSAgICBpZiAoIUZpbGVTeXN0ZW06OmdldEZpbGVTaXplKGluZGV4
RmlsZVBhdGgsIGZpbGVzaXplKSkgeworICAgIGF1dG8gZmlsZXNpemUgPSBGaWxlU3lzdGVtOjpm
aWxlU2l6ZShpbmRleEZpbGVQYXRoKTsKKyAgICBpZiAoIWZpbGVzaXplKSB7CiAgICAgICAgIExP
RyhOZXR3b3JrLCAiQ2FjaGUgRXJyb3I6IENvdWxkIG5vdCBnZXQgZmlsZSBzaXplIG9mICVzXG4i
LCBpbmRleEZpbGVQYXRoLmxhdGluMSgpLmRhdGEoKSk7CiAgICAgICAgIEZpbGVTeXN0ZW06OmNs
b3NlRmlsZShpbmRleEZpbGUpOwogICAgICAgICByZXR1cm47CkBAIC0xMTgsMTIgKzExOCwxMiBA
QCB2b2lkIEN1cmxDYWNoZU1hbmFnZXI6OmxvYWRJbmRleCgpCiAKICAgICAvLyBMb2FkIHRoZSBm
aWxlIGNvbnRlbnQgaW50byBidWZmZXIKICAgICBWZWN0b3I8Y2hhcj4gYnVmZmVyOwotICAgIGJ1
ZmZlci5yZXNpemUoZmlsZXNpemUpOworICAgIGJ1ZmZlci5yZXNpemUoKmZpbGVzaXplKTsKICAg
ICBpbnQgYnVmZmVyUG9zaXRpb24gPSAwOwogICAgIGludCBidWZmZXJSZWFkU2l6ZSA9IElPX0JV
RkZFUlNJWkU7Ci0gICAgd2hpbGUgKGZpbGVzaXplID4gYnVmZmVyUG9zaXRpb24pIHsKLSAgICAg
ICAgaWYgKGZpbGVzaXplIC0gYnVmZmVyUG9zaXRpb24gPCBidWZmZXJSZWFkU2l6ZSkKLSAgICAg
ICAgICAgIGJ1ZmZlclJlYWRTaXplID0gZmlsZXNpemUgLSBidWZmZXJQb3NpdGlvbjsKKyAgICB3
aGlsZSAoKmZpbGVzaXplID4gYnVmZmVyUG9zaXRpb24pIHsKKyAgICAgICAgaWYgKCpmaWxlc2l6
ZSAtIGJ1ZmZlclBvc2l0aW9uIDwgYnVmZmVyUmVhZFNpemUpCisgICAgICAgICAgICBidWZmZXJS
ZWFkU2l6ZSA9ICpmaWxlc2l6ZSAtIGJ1ZmZlclBvc2l0aW9uOwogCiAgICAgICAgIEZpbGVTeXN0
ZW06OnJlYWRGcm9tRmlsZShpbmRleEZpbGUsIGJ1ZmZlci5kYXRhKCkgKyBidWZmZXJQb3NpdGlv
biwgYnVmZmVyUmVhZFNpemUpOwogICAgICAgICBidWZmZXJQb3NpdGlvbiArPSBidWZmZXJSZWFk
U2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVGaWxl
U3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVGaWxlU3lzdGVt
LmNwcAppbmRleCA2MDk1OWExOTQwMjA4ZGNjMjg1YmZmMTY2NDExZTBmZDgwNGQ1YWNiLi4wODgw
Mzg0Mjk3YTQ5OTI5YWQ4MWMwMDRkYjFhMjlhZTU3MmE2NmJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRmlsZVN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZUZpbGVTeXN0ZW0uY3BwCkBAIC05OCwxOSArOTgsMTgg
QEAgYm9vbCBTUUxpdGVGaWxlU3lzdGVtOjp0cnVuY2F0ZURhdGFiYXNlRmlsZShzcWxpdGUzKiBk
YXRhYmFzZSkKIH0KICNlbmRpZgogICAgIAotbG9uZyBsb25nIFNRTGl0ZUZpbGVTeXN0ZW06Omdl
dERhdGFiYXNlRmlsZVNpemUoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSkKK3VpbnQ2NF90IFNRTGl0
ZUZpbGVTeXN0ZW06OmRhdGFiYXNlRmlsZVNpemUoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSkKIHsg
ICAgICAgIAotICAgIGxvbmcgbG9uZyBmaWxlU2l6ZSA9IDA7Ci0gICAgbG9uZyBsb25nIHRvdGFs
U2l6ZSA9IDA7CisgICAgdWludDY0X3QgdG90YWxTaXplID0gMDsKIAotICAgIGlmIChGaWxlU3lz
dGVtOjpnZXRGaWxlU2l6ZShmaWxlTmFtZSwgZmlsZVNpemUpKQotICAgICAgICB0b3RhbFNpemUg
Kz0gZmlsZVNpemU7CisgICAgaWYgKGF1dG8gZmlsZVNpemUgPSBGaWxlU3lzdGVtOjpmaWxlU2l6
ZShmaWxlTmFtZSkpCisgICAgICAgIHRvdGFsU2l6ZSArPSAqZmlsZVNpemU7CiAKLSAgICBpZiAo
RmlsZVN5c3RlbTo6Z2V0RmlsZVNpemUobWFrZVN0cmluZyhmaWxlTmFtZSwgIi13YWwiX3MpLCBm
aWxlU2l6ZSkpCi0gICAgICAgIHRvdGFsU2l6ZSArPSBmaWxlU2l6ZTsKKyAgICBpZiAoYXV0byBm
aWxlU2l6ZSA9IEZpbGVTeXN0ZW06OmZpbGVTaXplKG1ha2VTdHJpbmcoZmlsZU5hbWUsICItd2Fs
Il9zKSkpCisgICAgICAgIHRvdGFsU2l6ZSArPSAqZmlsZVNpemU7CiAKLSAgICBpZiAoRmlsZVN5
c3RlbTo6Z2V0RmlsZVNpemUobWFrZVN0cmluZyhmaWxlTmFtZSwgIi1zaG0iX3MpLCBmaWxlU2l6
ZSkpCi0gICAgICAgIHRvdGFsU2l6ZSArPSBmaWxlU2l6ZTsKKyAgICBpZiAoYXV0byBmaWxlU2l6
ZSA9IEZpbGVTeXN0ZW06OmZpbGVTaXplKG1ha2VTdHJpbmcoZmlsZU5hbWUsICItc2htIl9zKSkp
CisgICAgICAgIHRvdGFsU2l6ZSArPSAqZmlsZVNpemU7CiAKICAgICByZXR1cm4gdG90YWxTaXpl
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZUZpbGVT
eXN0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVGaWxlU3lzdGVtLmgK
aW5kZXggOWZmOWU4ZjFmMTY1NGY4MmRiM2Q2NmFjNTZjODA2MGVjZWQ2MWQxNi4uZWEyZjE2OTkz
MGQ1NGYzZGJhOTkwN2Q4OGYyYmNjZjc2M2NkYmJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3FsL1NRTGl0ZUZpbGVTeXN0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9zcWwvU1FMaXRlRmlsZVN5c3RlbS5oCkBAIC04OSw3ICs4OSw3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgYm9vbCB0cnVuY2F0ZURhdGFiYXNlRmlsZShzcWxpdGUzKiBkYXRhYmFzZSk7
CiAjZW5kaWYKICAgICAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgbG9uZyBsb25nIGdldERh
dGFiYXNlRmlsZVNpemUoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSk7CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIHVpbnQ2NF90IGRhdGFiYXNlRmlsZVNpemUoY29uc3QgU3RyaW5nJiBmaWxlTmFt
ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIE9wdGlvbmFsPFdhbGxUaW1lPiBkYXRhYmFz
ZUNyZWF0aW9uVGltZShjb25zdCBTdHJpbmcmIGZpbGVOYW1lKTsKICAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgT3B0aW9uYWw8V2FsbFRpbWU+IGRhdGFiYXNlTW9kaWZpY2F0aW9uVGltZShjb25z
dCBTdHJpbmcmIGZpbGVOYW1lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZVdpbi5jcHAKaW5kZXggMmU2MGI3ZDQ4Zjc5ZmMyNmRjMjc1MDI1YjVmOGYzZWYyOGY1MWQ2
My4uN2Y2Y2JlZDZhYzQ3YzVjN2RmYzJkMjliNGZjMjQ1ODdjZDI3ZDQ0NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwCkBAIC0xMDUyLDE3ICsxMDUyLDE3
IEBAIFN0cmluZyBSZW5kZXJUaGVtZVdpbjo6c3RyaW5nV2l0aENvbnRlbnRzT2ZGaWxlKGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nCiAgICAgaWYgKCFGaWxlU3lzdGVtOjppc0hhbmRs
ZVZhbGlkKHJlcXVlc3RlZEZpbGVIYW5kbGUpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAK
LSAgICBsb25nIGxvbmcgZmlsZXNpemUgPSAtMTsKLSAgICBpZiAoIUZpbGVTeXN0ZW06OmdldEZp
bGVTaXplKHJlcXVlc3RlZEZpbGVIYW5kbGUsIGZpbGVzaXplKSkgeworICAgIGF1dG8gZmlsZXNp
emUgPSBGaWxlU3lzdGVtOjpmaWxlU2l6ZShyZXF1ZXN0ZWRGaWxlSGFuZGxlKTsKKyAgICBpZiAo
IWZpbGVzaXplKSB7CiAgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShyZXF1ZXN0ZWRGaWxl
SGFuZGxlKTsKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KIAogICAgIFZlY3Rvcjxj
aGFyPiBmaWxlQ29udGVudHM7Ci0gICAgZmlsbEJ1ZmZlcldpdGhDb250ZW50c09mRmlsZShyZXF1
ZXN0ZWRGaWxlSGFuZGxlLCBmaWxlc2l6ZSwgZmlsZUNvbnRlbnRzKTsKKyAgICBmaWxsQnVmZmVy
V2l0aENvbnRlbnRzT2ZGaWxlKHJlcXVlc3RlZEZpbGVIYW5kbGUsICpmaWxlc2l6ZSwgZmlsZUNv
bnRlbnRzKTsKICAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUocmVxdWVzdGVkRmlsZUhhbmRsZSk7
CiAKLSAgICByZXR1cm4gU3RyaW5nKGZpbGVDb250ZW50cy5kYXRhKCksIHN0YXRpY19jYXN0PHNp
emVfdD4oZmlsZXNpemUpKTsKKyAgICByZXR1cm4gU3RyaW5nKGZpbGVDb250ZW50cy5kYXRhKCks
ICpmaWxlc2l6ZSk7CiAjZWxzZQogICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2NyaXB0
U3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Ny
aXB0U3RvcmFnZS5jcHAKaW5kZXggNTk4MWJiN2VjNTkxOTQ4MTE0MDViZjk4MDQ5YmMzMzVjMzBh
MDYxZS4uZDhlZWJlNDUxODkyMjBjMjg4N2MwMTBlYTZhYTRiOTljN2M3NjZhMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NjcmlwdFN0b3JhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTY3JpcHRT
dG9yYWdlLmNwcApAQCAtMzcsNyArMzcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0
YXRpYyBib29sIHNob3VsZFVzZUZpbGVNYXBwaW5nKHNpemVfdCBmaWxlU2l6ZSkKK3N0YXRpYyBi
b29sIHNob3VsZFVzZUZpbGVNYXBwaW5nKHVpbnQ2NF90IGZpbGVTaXplKQogewogICAgIHJldHVy
biBmaWxlU2l6ZSA+PSBwYWdlU2l6ZSgpOwogfQpAQCAtMTIwLDE0ICsxMjAsMTQgQEAgU2NyaXB0
QnVmZmVyIFNXU2NyaXB0U3RvcmFnZTo6cmV0cmlldmUoY29uc3QgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbktleSYgcmVnaXMKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAogICAgIGF1
dG8gc2NyaXB0UGF0aCA9IHRoaXMtPnNjcmlwdFBhdGgocmVnaXN0cmF0aW9uS2V5LCBzY3JpcHRV
UkwpOwotICAgIGxvbmcgbG9uZyBmaWxlU2l6ZSA9IDA7Ci0gICAgaWYgKCFGaWxlU3lzdGVtOjpn
ZXRGaWxlU2l6ZShzY3JpcHRQYXRoLCBmaWxlU2l6ZSkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoU2VydmljZVdvcmtlciwgIlNXU2NyaXB0U3RvcmFnZTo6cmV0cmlldmU6IEZhaWx1cmUg
dG8gcmV0cmlldmUgJXMsIEZpbGVTeXN0ZW06OmdldEZpbGVTaXplKCkgZmFpbGVkIiwgc2NyaXB0
UGF0aC51dGY4KCkuZGF0YSgpKTsKKyAgICBhdXRvIGZpbGVTaXplID0gRmlsZVN5c3RlbTo6Zmls
ZVNpemUoc2NyaXB0UGF0aCk7CisgICAgaWYgKCFmaWxlU2l6ZSkgeworICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihTZXJ2aWNlV29ya2VyLCAiU1dTY3JpcHRTdG9yYWdlOjpyZXRyaWV2ZTogRmFp
bHVyZSB0byByZXRyaWV2ZSAlcywgRmlsZVN5c3RlbTo6ZmlsZVNpemUoKSBmYWlsZWQiLCBzY3Jp
cHRQYXRoLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAogICAg
IC8vIEZJWE1FOiBEbyB3ZSBuZWVkIHRvIGRpc2FibGUgZmlsZSBtYXBwaW5nIGluIG1vcmUgY2Fz
ZXMgdG8gYXZvaWQgaGF2aW5nIHRvbyBtYW55IGZpbGUgZGVzY3JpcHRvcnMgb3Blbj8KLSAgICBy
ZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoc2NyaXB0UGF0aCwg
RmlsZVN5c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlByaXZhdGUsIHNob3VsZFVzZUZpbGVNYXBwaW5n
KGZpbGVTaXplKSA/IFNoYXJlZEJ1ZmZlcjo6TWF5VXNlRmlsZU1hcHBpbmc6OlllcyA6IFNoYXJl
ZEJ1ZmZlcjo6TWF5VXNlRmlsZU1hcHBpbmc6Ok5vKTsKKyAgICByZXR1cm4gU2hhcmVkQnVmZmVy
OjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoc2NyaXB0UGF0aCwgRmlsZVN5c3RlbTo6TWFwcGVk
RmlsZU1vZGU6OlByaXZhdGUsIHNob3VsZFVzZUZpbGVNYXBwaW5nKCpmaWxlU2l6ZSkgPyBTaGFy
ZWRCdWZmZXI6Ok1heVVzZUZpbGVNYXBwaW5nOjpZZXMgOiBTaGFyZWRCdWZmZXI6Ok1heVVzZUZp
bGVNYXBwaW5nOjpObyk7CiB9CiAKIHZvaWQgU1dTY3JpcHRTdG9yYWdlOjpjbGVhcihjb25zdCBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiByZWdpc3RyYXRpb25LZXkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0
YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2Fs
U3RvcmFnZURhdGFiYXNlLmNwcAppbmRleCA1MjMyMzNkMThiMDQwMDNlZjMwZDMzNjMyY2ZlNjJm
MDJmMjdhMzQ4Li43NjAxMWUzYTI4ZDVkMTM0OTk4NThkM2JjYzMyYTIwMTA3ZWQzZTFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9y
YWdlRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3Rv
cmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZS5jcHAKQEAgLTIyNCw4ICsyMjQsOCBAQCB2b2lkIExv
Y2FsU3RvcmFnZURhdGFiYXNlOjpzZXRJdGVtKGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJp
bmcmIHZhbHVlLCBTdHJpbgogCiAgICAgaWYgKG1fcXVvdGFJbkJ5dGVzICE9IFdlYkNvcmU6OlN0
b3JhZ2VNYXA6Om5vUXVvdGEpIHsKICAgICAgICAgaWYgKCFtX2RhdGFiYXNlU2l6ZSkKLSAgICAg
ICAgICAgIG1fZGF0YWJhc2VTaXplID0gU1FMaXRlRmlsZVN5c3RlbTo6Z2V0RGF0YWJhc2VGaWxl
U2l6ZShtX2RhdGFiYXNlUGF0aCk7Ci0gICAgICAgIENoZWNrZWRVaW50MzIgbmV3RGF0YWJhc2VT
aXplID0gKm1fZGF0YWJhc2VTaXplOworICAgICAgICAgICAgbV9kYXRhYmFzZVNpemUgPSBTUUxp
dGVGaWxlU3lzdGVtOjpkYXRhYmFzZUZpbGVTaXplKG1fZGF0YWJhc2VQYXRoKTsKKyAgICAgICAg
Q2hlY2tlZFVpbnQ2NCBuZXdEYXRhYmFzZVNpemUgPSAqbV9kYXRhYmFzZVNpemU7CiAgICAgICAg
IG5ld0RhdGFiYXNlU2l6ZSAtPSBvbGRWYWx1ZS5zaXplSW5CeXRlcygpOwogICAgICAgICBuZXdE
YXRhYmFzZVNpemUgKz0gdmFsdWUuc2l6ZUluQnl0ZXMoKTsKICAgICAgICAgaWYgKG9sZFZhbHVl
LmlzTnVsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJT
dG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuaAppbmRleCBiN2VmMDM0ZDJhODZj
MjRiZDA0ZGY3OTQzMTdjYWJhZmMwM2U3NDZjLi5kYjhhZDk4M2VlYWQ4MGY4YzVlOTBiNmYwMWEy
ZjYzMTQ2NTE3NzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dl
YlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuaApAQCAtNjgsNyArNjgs
NyBAQCBwcml2YXRlOgogICAgIG11dGFibGUgV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2UgbV9kYXRh
YmFzZTsKICAgICBjb25zdCB1bnNpZ25lZCBtX3F1b3RhSW5CeXRlcyB7IDAgfTsKICAgICBib29s
IG1faXNDbG9zZWQgeyBmYWxzZSB9OwotICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBtX2RhdGFiYXNl
U2l6ZTsKKyAgICBPcHRpb25hbDx1aW50NjRfdD4gbV9kYXRhYmFzZVNpemU7CiAKICAgICBtdXRh
YmxlIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ+IG1fY2xlYXJTdGF0
ZW1lbnQ7CiAgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U1FMaXRlU3RhdGVt
ZW50PiBtX2luc2VydFN0YXRlbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcAppbmRleCAwYjRiZjY0ZmMz
NmY3YzY3MzYzZDU0ZjdkYWZhN2Y4Y2Y5NDY0MzVhLi5iNGY4OTA3YmJhMGI5ZGI5YWI5MGNiMmY3
YTQxZmJhN2ZiMTU3MGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCkBAIC0yMTcsMTAgKzIxNyw3IEBA
IHN0YXRpYyB1aW50NjRfdCBnZXREaXJlY3RvcnlTaXplKGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5
UGF0aCkKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0K
LSAgICAgICAgbG9uZyBsb25nIGZpbGVTaXplID0gMDsKLSAgICAgICAgRmlsZVN5c3RlbTo6Z2V0
RmlsZVNpemUocGF0aCwgZmlsZVNpemUpOwotICAgICAgICBkaXJlY3RvcnlTaXplICs9IGZpbGVT
aXplOworICAgICAgICBkaXJlY3RvcnlTaXplICs9IEZpbGVTeXN0ZW06OmZpbGVTaXplKHBhdGgp
LnZhbHVlT3IoMCk7CiAgICAgfQogICAgIHJldHVybiBkaXJlY3RvcnlTaXplOwogfQpAQCAtNTY2
LDggKzU2Myw4IEBAIE9wdGlvbmFsPHVpbnQ2NF90PiBFbmdpbmU6OnJlYWRTaXplRmlsZShjb25z
dCBTdHJpbmcmIHBhdGgpCiAgICAgaWYgKCFGaWxlU3lzdGVtOjppc0hhbmRsZVZhbGlkKGZpbGVI
YW5kbGUpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgbG9uZyBsb25nIGZp
bGVTaXplID0gMDsKLSAgICBpZiAoIUZpbGVTeXN0ZW06OmdldEZpbGVTaXplKHBhdGgsIGZpbGVT
aXplKSB8fCAhZmlsZVNpemUpCisgICAgYXV0byBmaWxlU2l6ZSA9IEZpbGVTeXN0ZW06OmZpbGVT
aXplKHBhdGgpLnZhbHVlT3IoMCk7CisgICAgaWYgKCFmaWxlU2l6ZSkKICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKIAogICAgIHVuc2lnbmVkIGJ5dGVzVG9SZWFkOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVCbG9iU3RvcmFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUJs
b2JTdG9yYWdlLmNwcAppbmRleCAzNDhiMjFiOWQ4NzU0ZjQyMjcwZjMyMGRiMmRiZmZjMGY4MzJj
YTQ1Li4yYWFiN2IwNjJjZGM4NGQxMDY5NzM0OWQ4OTJiYWNhOTgwNGY3MDg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUJsb2JTdG9y
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZUJsb2JTdG9yYWdlLmNwcApAQCAtNjksMTEgKzY5LDggQEAgdm9pZCBCbG9iU3RvcmFnZTo6
c3luY2hyb25pemUoKQogICAgICAgICAvLyBObyBjbGllbnRzIGxlZnQgZm9yIHRoaXMgYmxvYi4K
ICAgICAgICAgaWYgKGxpbmtDb3VudCAmJiAqbGlua0NvdW50ID09IDEpCiAgICAgICAgICAgICBG
aWxlU3lzdGVtOjpkZWxldGVGaWxlKHBhdGgpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAg
IGxvbmcgbG9uZyBmaWxlU2l6ZSA9IDA7Ci0gICAgICAgICAgICBGaWxlU3lzdGVtOjpnZXRGaWxl
U2l6ZShwYXRoLCBmaWxlU2l6ZSk7Ci0gICAgICAgICAgICBtX2FwcHJveGltYXRlU2l6ZSArPSBm
aWxlU2l6ZTsKLSAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2FwcHJveGlt
YXRlU2l6ZSArPSBGaWxlU3lzdGVtOjpmaWxlU2l6ZShwYXRoKS52YWx1ZU9yKDApOwogICAgIH0p
OwogCiAgICAgTE9HKE5ldHdvcmtDYWNoZVN0b3JhZ2UsICIoTmV0d29ya1Byb2Nlc3MpIGJsb2Ig
c3luY2hyb25pemF0aW9uIGNvbXBsZXRlZCBhcHByb3hpbWF0ZVNpemU9JXp1IiwgYXBwcm94aW1h
dGVTaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9OZXR3b3JrQ2FjaGVEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlRGF0YS5jcHAKaW5kZXggOGE4ZWYyNDU5NmVkZTNjMmQxMjU4ZGYxY2Rk
MThjZmU2NGFmOTgwZC4uNDZmODJlNGJmOTFmY2NkOTVhZDE4ZDc0YzZiM2YxYmEwMWQ2MzQ4MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZURhdGEuY3BwCkBAIC01NCwxMiArNTQsMTIgQEAgRGF0YSBtYXBGaWxlKGNvbnN0IGNo
YXIqIHBhdGgpCiAgICAgYXV0byBmaWxlID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUocGF0aCwgRmls
ZVN5c3RlbTo6RmlsZU9wZW5Nb2RlOjpSZWFkKTsKICAgICBpZiAoIUZpbGVTeXN0ZW06OmlzSGFu
ZGxlVmFsaWQoZmlsZSkpCiAgICAgICAgIHJldHVybiB7IH07Ci0gICAgbG9uZyBsb25nIHNpemU7
Ci0gICAgaWYgKCFGaWxlU3lzdGVtOjpnZXRGaWxlU2l6ZShmaWxlLCBzaXplKSkgeworICAgIGF1
dG8gc2l6ZSA9IEZpbGVTeXN0ZW06OmZpbGVTaXplKGZpbGUpOworICAgIGlmICghc2l6ZSkgewog
ICAgICAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUoZmlsZSk7CiAgICAgICAgIHJldHVybiB7IH07
CiAgICAgfQotICAgIHJldHVybiBhZG9wdEFuZE1hcEZpbGUoZmlsZSwgMCwgc2l6ZSk7CisgICAg
cmV0dXJuIGFkb3B0QW5kTWFwRmlsZShmaWxlLCAwLCAqc2l6ZSk7CiB9CiAKIERhdGEgbWFwRmls
ZShjb25zdCBTdHJpbmcmIHBhdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbEN1cmwuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxDdXJsLmNwcAppbmRl
eCBiNjc0ZGY0MDU0YWE5ZGE3YjA2ODcxM2RjOTk2MGM0NjllNjQxZDMyLi4xYmQ1YmY3NGNmYWZk
MjEwNzlkMzA1ZWRiNTFlMTg5MzU5ZTJlZTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbEN1cmwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsQ3Vy
bC5jcHAKQEAgLTU4LDEzICs1OCwxMyBAQCBJT0NoYW5uZWw6On5JT0NoYW5uZWwoKQogdm9pZCBJ
T0NoYW5uZWw6OnJlYWQoc2l6ZV90IG9mZnNldCwgc2l6ZV90IHNpemUsIFdvcmtRdWV1ZSYgcXVl
dWUsIEZ1bmN0aW9uPHZvaWQoRGF0YSYsIGludCBlcnJvcik+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgcXVldWUuZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgb2Zmc2V0LCBzaXplLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXSB7Ci0gICAgICAgIGxvbmcgbG9uZyBmaWxlU2l6ZTsKLSAgICAgICAgaWYgKCFG
aWxlU3lzdGVtOjpnZXRGaWxlU2l6ZShtX2ZpbGVEZXNjcmlwdG9yLCBmaWxlU2l6ZSkgfHwgZmls
ZVNpemUgPiBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKSB7CisgICAgICAgIGF1
dG8gZmlsZVNpemUgPSBGaWxlU3lzdGVtOjpmaWxlU2l6ZShtX2ZpbGVEZXNjcmlwdG9yKTsKKyAg
ICAgICAgaWYgKCFmaWxlU2l6ZSB8fCAqZmlsZVNpemUgPiBzdGQ6Om51bWVyaWNfbGltaXRzPHNp
emVfdD46Om1heCgpKSB7CiAgICAgICAgICAgICBEYXRhIGRhdGE7CiAgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihkYXRhLCAtMSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
LSAgICAgICAgc2l6ZV90IHJlYWRTaXplID0gZmlsZVNpemU7CisgICAgICAgIHNpemVfdCByZWFk
U2l6ZSA9ICpmaWxlU2l6ZTsKICAgICAgICAgcmVhZFNpemUgPSBzdGQ6Om1pbihzaXplLCByZWFk
U2l6ZSk7CiAgICAgICAgIFZlY3Rvcjx1aW50OF90PiBidWZmZXIocmVhZFNpemUpOwogICAgICAg
ICBGaWxlU3lzdGVtOjpzZWVrRmlsZShtX2ZpbGVEZXNjcmlwdG9yLCBvZmZzZXQsIEZpbGVTeXN0
ZW06OkZpbGVTZWVrT3JpZ2luOjpCZWdpbm5pbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvUGVyc2lzdGVuY3lVdGlscy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QZXJz
aXN0ZW5jeVV0aWxzLmNwcAppbmRleCBlY2E5NjQxZDIwNTM0NWM4MTg5NmViNTY1ZGY2MjdmOTVl
M2M1MTdhLi40Nzg2OTc0N2UwZmMxNTQ2MTM2MTRlYjA2ZTExNDRjNmQ0MmVlMDYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QZXJzaXN0ZW5jeVV0aWxzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9QZXJzaXN0ZW5jeVV0aWxzLmNwcApAQCAtNDMsOCArNDMsOCBAQCBz
dGQ6OnVuaXF1ZV9wdHI8S2V5ZWREZWNvZGVyPiBjcmVhdGVGb3JGaWxlKGNvbnN0IFN0cmluZyYg
cGF0aCkKICAgICBpZiAoaGFuZGxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVI
YW5kbGUpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgbG9uZyBsb25nIGZpbGVTaXpl
ID0gMDsKLSAgICBpZiAoIUZpbGVTeXN0ZW06OmdldEZpbGVTaXplKGhhbmRsZSwgZmlsZVNpemUp
IHx8ICFmaWxlU2l6ZSkgeworICAgIGF1dG8gZmlsZVNpemUgPSBGaWxlU3lzdGVtOjpmaWxlU2l6
ZShoYW5kbGUpLnZhbHVlT3IoMCk7CisgICAgaWYgKCFmaWxlU2l6ZSkgewogICAgICAgICBGaWxl
U3lzdGVtOjp1bmxvY2tBbmRDbG9zZUZpbGUoaGFuZGxlKTsKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRGV2aWNlSWRI
YXNoU2FsdFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRGV2aWNlSWRIYXNo
U2FsdFN0b3JhZ2UuY3BwCmluZGV4IGRlYWViOGQ5MjQyMjE5MjljMDE5NzZjYjNmMzE4Y2ExYzNl
MGNlYmEuLmMzNTZkYjhmZjM3ZWI0MDY5NzZlZTQyNGRhN2ViZjNiZjZkNzU5MDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RldmljZUlkSGFzaFNhbHRTdG9yYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5jcHAK
QEAgLTEyNCw4ICsxMjQsNyBAQCB2b2lkIERldmljZUlkSGFzaFNhbHRTdG9yYWdlOjpsb2FkU3Rv
cmFnZUZyb21EaXNrKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzaE1hcAogICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBsb25nIGxvbmcgZmls
ZVNpemUgPSAwOwotICAgICAgICAgICAgaWYgKCFGaWxlU3lzdGVtOjpnZXRGaWxlU2l6ZShvcmln
aW5QYXRoLCBmaWxlU2l6ZSkpIHsKKyAgICAgICAgICAgIGlmICghRmlsZVN5c3RlbTo6ZmlsZVNp
emUob3JpZ2luUGF0aCkpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihEaXNr
UGVyc2lzdGVuY3ksICJEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZTogSW1wb3NzaWJsZSB0byBnZXQg
dGhlIGZpbGUgc2l6ZSBvZjogJyVzJyIsIG9yaWdpblBhdGgudXRmOCgpLmRhdGEoKSk7CiAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L1N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYktpdExl
Z2FjeS9TdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcAppbmRleCA4MzYwNDcxYmUzZTQxN2FhNTA3
NjVkOWE2OWNkNjRhMWU3NmJiYmJkLi5kMzVkNWMzODUwMDNjYWNkNDZmNzAwZDdhZGU2ZTIwYTI5
ZmZlZGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvU3RvcmFnZVRy
YWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9TdG9yYWdlVHJhY2tl
ci5jcHAKQEAgLTYyNyw3ICs2MjcsNyBAQCBTdHJpbmcgU3RvcmFnZVRyYWNrZXI6OmRhdGFiYXNl
UGF0aEZvck9yaWdpbihjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpCiAgICAgcmV0dXJu
IHBhdGhTdGF0ZW1lbnQuZ2V0Q29sdW1uVGV4dCgwKTsKIH0KICAgICAKLWxvbmcgbG9uZyBTdG9y
YWdlVHJhY2tlcjo6ZGlza1VzYWdlRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCit1
aW50NjRfdCBTdG9yYWdlVHJhY2tlcjo6ZGlza1VzYWdlRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2lu
KiBvcmlnaW4pCiB7CiAgICAgaWYgKCFtX2lzQWN0aXZlKQogICAgICAgICByZXR1cm4gMDsKQEAg
LTYzOCw4ICs2MzgsNyBAQCBsb25nIGxvbmcgU3RvcmFnZVRyYWNrZXI6OmRpc2tVc2FnZUZvck9y
aWdpbihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogICAgIGlmIChwYXRoLmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuIDA7CiAKLSAgICBsb25nIGxvbmcgc2l6ZTsKLSAgICByZXR1cm4gRmlsZVN5
c3RlbTo6Z2V0RmlsZVNpemUocGF0aCwgc2l6ZSkgPyBzaXplIDogMDsKKyAgICByZXR1cm4gRmls
ZVN5c3RlbTo6ZmlsZVNpemUocGF0aCkudmFsdWVPcigwKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1N0b3JhZ2VU
cmFja2VyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaApp
bmRleCAyMzhmNjM1YzBiMTdkNjY2NmIwYzFiNmRiNDM1NDY4Y2I1MmY3NjA1Li4wOWJhMTBkZDVm
YTU3MWYwMDRlMWI1ZTliZDI3ZDM5ZDQ5ZjI3MTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L1N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L1N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkZWxldGVPcmlnaW4oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJik7CiAg
ICAgdm9pZCBkZWxldGVPcmlnaW5XaXRoSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIG9yaWdpbklk
ZW50aWZpZXIpOwogICAgIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdp
bnMoKTsKLSAgICBsb25nIGxvbmcgZGlza1VzYWdlRm9yT3JpZ2luKFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luKik7CisgICAgdWludDY0X3QgZGlza1VzYWdlRm9yT3JpZ2luKFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luKik7CiAgICAgCiAgICAgdm9pZCBjYW5jZWxEZWxldGluZ09yaWdpbihjb25zdCBT
dHJpbmcmIG9yaWdpbklkZW50aWZpZXIpOwogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDNjYTQzZmY2ZjQ3NWFmODFjOTBlOWY5NDRlNDRh
ZjUxNjMzYjIyNTUuLjE1NzQ2OGMxMDVhY2RhYzg1MTQ0M2JiZDY2NDM5NjY2NGY4NGY2NTMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAyMS0wNS0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisg
ICAgICAgIFJlbmFtZSBGaWxlU3lzdGVtOjpnZXRGaWxlU2l6ZSgpIHRvIEZpbGVTeXN0ZW06OmZp
bGVTaXplKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNTc5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVwZGF0ZSBjb2RlIHBhdGggdG8gZHVlIHRvIHRoZSBBUEkgY2hhbmdlLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9j
b2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisKIDIwMjEtMDUtMTMgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgog
CiAgICAgICAgIHJlcG9ydC1ub24taW5jbHVzaXZlLWxhbmd1YWdlIHNob3VsZCBza2lwIHN5bWxp
bmtzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVt
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCmluZGV4
IGQxNmM2OWY5OGMzZmJlMTI5MTE2ZGY0ZjdlMzA5ZDk5ZDE5MjVjOTIuLjhmMDg2MzU1MzY3NGQ2
ZTUxMGI5MmM0OWM4ZDdlNmIwNWVkNDA1ZWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCkBAIC00NDMsMjAgKzQ0MywyMSBAQCBURVNUX0YoRmlsZVN5
c3RlbVRlc3QsIG1vdmVGaWxlT3ZlcndyaXRlc0Rlc3RpbmF0aW9uKQogICAgIEVYUEVDVF9UUlVF
KEZpbGVTeXN0ZW06OmZpbGVFeGlzdHModGVtcEZpbGVQYXRoKCkpKTsKICAgICBFWFBFQ1RfVFJV
RShGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKHRlbXBFbXB0eUZpbGVQYXRoKCkpKTsKIAotICAgIGxv
bmcgbG9uZyBmaWxlU2l6ZSA9IDA7Ci0gICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6Z2V0Rmls
ZVNpemUodGVtcEZpbGVQYXRoKCksIGZpbGVTaXplKSk7Ci0gICAgRVhQRUNUX0dUKGZpbGVTaXpl
LCAwKTsKKyAgICBhdXRvIGZpbGVTaXplID0gRmlsZVN5c3RlbTo6ZmlsZVNpemUodGVtcEZpbGVQ
YXRoKCkpOworICAgIEFTU0VSVF9UUlVFKGZpbGVTaXplKTsKKyAgICBFWFBFQ1RfR1QoKmZpbGVT
aXplLCAwVSk7CiAKLSAgICBFWFBFQ1RfVFJVRShGaWxlU3lzdGVtOjpnZXRGaWxlU2l6ZSh0ZW1w
RW1wdHlGaWxlUGF0aCgpLCBmaWxlU2l6ZSkpOwotICAgIEVYUEVDVF9UUlVFKCFmaWxlU2l6ZSk7
CisgICAgZmlsZVNpemUgPSBGaWxlU3lzdGVtOjpmaWxlU2l6ZSh0ZW1wRW1wdHlGaWxlUGF0aCgp
KTsKKyAgICBBU1NFUlRfVFJVRShmaWxlU2l6ZSk7CisgICAgRVhQRUNUX0VRKCpmaWxlU2l6ZSwg
MFUpOwogCiAgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6bW92ZUZpbGUodGVtcEZpbGVQYXRo
KCksIHRlbXBFbXB0eUZpbGVQYXRoKCkpKTsKICAgICBFWFBFQ1RfRkFMU0UoRmlsZVN5c3RlbTo6
ZmlsZUV4aXN0cyh0ZW1wRmlsZVBhdGgoKSkpOwogICAgIEVYUEVDVF9UUlVFKEZpbGVTeXN0ZW06
OmZpbGVFeGlzdHModGVtcEVtcHR5RmlsZVBhdGgoKSkpOwogCi0gICAgZmlsZVNpemUgPSAwOwot
ICAgIEVYUEVDVF9UUlVFKEZpbGVTeXN0ZW06OmdldEZpbGVTaXplKHRlbXBFbXB0eUZpbGVQYXRo
KCksIGZpbGVTaXplKSk7Ci0gICAgRVhQRUNUX0dUKGZpbGVTaXplLCAwKTsKKyAgICBmaWxlU2l6
ZSA9IEZpbGVTeXN0ZW06OmZpbGVTaXplKHRlbXBFbXB0eUZpbGVQYXRoKCkpOworICAgIEFTU0VS
VF9UUlVFKGZpbGVTaXplKTsKKyAgICBFWFBFQ1RfR1QoKmZpbGVTaXplLCAwVSk7CiB9CiAKIFRF
U1RfRihGaWxlU3lzdGVtVGVzdCwgbW92ZURpcmVjdG9yeSkKQEAgLTQ4NSwyMSArNDg2LDIxIEBA
IFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgbW92ZURpcmVjdG9yeSkKICAgICBFWFBFQ1RfVFJVRShG
aWxlU3lzdGVtOjpmaWxlRXhpc3RzKGRlc3RpbmF0aW9uUGF0aCkpOwogfQogCi1URVNUX0YoRmls
ZVN5c3RlbVRlc3QsIGdldEZpbGVTaXplKQorVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBmaWxlU2l6
ZSkKIHsKICAgICBFWFBFQ1RfVFJVRShGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKHRlbXBGaWxlUGF0
aCgpKSk7CiAgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyh0ZW1wRW1wdHlG
aWxlUGF0aCgpKSk7CiAKLSAgICBsb25nIGxvbmcgZmlsZVNpemUgPSAwOwotICAgIEVYUEVDVF9U
UlVFKEZpbGVTeXN0ZW06OmdldEZpbGVTaXplKHRlbXBGaWxlUGF0aCgpLCBmaWxlU2l6ZSkpOwot
ICAgIEVYUEVDVF9HVChmaWxlU2l6ZSwgMCk7CisgICAgYXV0byBmaWxlU2l6ZSA9IEZpbGVTeXN0
ZW06OmZpbGVTaXplKHRlbXBGaWxlUGF0aCgpKTsKKyAgICBBU1NFUlRfVFJVRShmaWxlU2l6ZSk7
CisgICAgRVhQRUNUX0dUKCpmaWxlU2l6ZSwgMFUpOwogCi0gICAgRVhQRUNUX1RSVUUoRmlsZVN5
c3RlbTo6Z2V0RmlsZVNpemUodGVtcEVtcHR5RmlsZVBhdGgoKSwgZmlsZVNpemUpKTsKLSAgICBF
WFBFQ1RfVFJVRSghZmlsZVNpemUpOworICAgIGZpbGVTaXplID0gRmlsZVN5c3RlbTo6ZmlsZVNp
emUodGVtcEVtcHR5RmlsZVBhdGgoKSk7CisgICAgQVNTRVJUX1RSVUUoZmlsZVNpemUpOworICAg
IEVYUEVDVF9FUSgqZmlsZVNpemUsIDBVKTsKIAotICAgIGZpbGVTaXplID0gMDsKICAgICBTdHJp
bmcgZmlsZVRoYXREb2VzTm90RXhpc3QgPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21w
b25lbnQodGVtcEVtcHR5Rm9sZGVyUGF0aCgpLCAiZG9lcy1ub3QtZXhpc3QiX3MpOwotICAgIEVY
UEVDVF9GQUxTRShGaWxlU3lzdGVtOjpnZXRGaWxlU2l6ZShmaWxlVGhhdERvZXNOb3RFeGlzdCwg
ZmlsZVNpemUpKTsKKyAgICBmaWxlU2l6ZSA9IEZpbGVTeXN0ZW06OmZpbGVTaXplKGZpbGVUaGF0
RG9lc05vdEV4aXN0KTsKICAgICBFWFBFQ1RfVFJVRSghZmlsZVNpemUpOwogfQogCkBAIC02MDQs
MjkgKzYwNSwyOSBAQCBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIGNyZWF0ZUhhcmRMaW5rKQogICAg
IGF1dG8gaGFyZGxpbmtQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50
KHRlbXBFbXB0eUZvbGRlclBhdGgoKSwgInRlbXBGaWxlLWhhcmRsaW5rIik7CiAgICAgRVhQRUNU
X0ZBTFNFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoaGFyZGxpbmtQYXRoKSk7CiAKLSAgICBsb25n
IGxvbmcgZmlsZVNpemUgPSAwOwotICAgIEVYUEVDVF9UUlVFKEZpbGVTeXN0ZW06OmdldEZpbGVT
aXplKHRlbXBGaWxlUGF0aCgpLCBmaWxlU2l6ZSkpOwotICAgIEVYUEVDVF9HVChmaWxlU2l6ZSwg
MCk7CisgICAgYXV0byBmaWxlU2l6ZSA9IEZpbGVTeXN0ZW06OmZpbGVTaXplKHRlbXBGaWxlUGF0
aCgpKTsKKyAgICBBU1NFUlRfVFJVRShmaWxlU2l6ZSk7CisgICAgRVhQRUNUX0dUKCpmaWxlU2l6
ZSwgMFUpOwogCiAgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6aGFyZExpbmsodGVtcEZpbGVQ
YXRoKCksIGhhcmRsaW5rUGF0aCkpOwogCiAgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6Zmls
ZUV4aXN0cyhoYXJkbGlua1BhdGgpKTsKIAotICAgIGxvbmcgbG9uZyBsaW5rRmlsZVNpemUgPSAw
OwotICAgIEVYUEVDVF9UUlVFKEZpbGVTeXN0ZW06OmdldEZpbGVTaXplKGhhcmRsaW5rUGF0aCwg
bGlua0ZpbGVTaXplKSk7Ci0gICAgRVhQRUNUX0VRKGxpbmtGaWxlU2l6ZSwgZmlsZVNpemUpOwor
ICAgIGF1dG8gbGlua0ZpbGVTaXplID0gRmlsZVN5c3RlbTo6ZmlsZVNpemUoaGFyZGxpbmtQYXRo
KTsKKyAgICBBU1NFUlRfVFJVRShsaW5rRmlsZVNpemUpOworICAgIEVYUEVDVF9FUSgqbGlua0Zp
bGVTaXplLCAqZmlsZVNpemUpOwogCiAgICAgYXV0byBoYXJkbGlua01ldGFkYXRhID0gRmlsZVN5
c3RlbTo6ZmlsZU1ldGFkYXRhKGhhcmRsaW5rUGF0aCk7Ci0gICAgRVhQRUNUX1RSVUUoISFoYXJk
bGlua01ldGFkYXRhKTsKKyAgICBBU1NFUlRfVFJVRSghIWhhcmRsaW5rTWV0YWRhdGEpOwogICAg
IEVYUEVDVF9FUShoYXJkbGlua01ldGFkYXRhLT50eXBlLCBGaWxlTWV0YWRhdGE6OlR5cGU6OkZp
bGUpOwogCiAgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6ZGVsZXRlRmlsZSh0ZW1wRmlsZVBh
dGgoKSkpOwogICAgIEVYUEVDVF9GQUxTRShGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKHRlbXBGaWxl
UGF0aCgpKSk7CiAgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhoYXJkbGlu
a1BhdGgpKTsKIAotICAgIGxpbmtGaWxlU2l6ZSA9IDA7Ci0gICAgRVhQRUNUX1RSVUUoRmlsZVN5
c3RlbTo6Z2V0RmlsZVNpemUoaGFyZGxpbmtQYXRoLCBsaW5rRmlsZVNpemUpKTsKLSAgICBFWFBF
Q1RfRVEobGlua0ZpbGVTaXplLCBmaWxlU2l6ZSk7CisgICAgbGlua0ZpbGVTaXplID0gRmlsZVN5
c3RlbTo6ZmlsZVNpemUoaGFyZGxpbmtQYXRoKTsKKyAgICBBU1NFUlRfVFJVRShsaW5rRmlsZVNp
emUpOworICAgIEVYUEVDVF9FUSgqbGlua0ZpbGVTaXplLCAqZmlsZVNpemUpOwogfQogCiBURVNU
X0YoRmlsZVN5c3RlbVRlc3QsIGNyZWF0ZUhhcmRMaW5rT3JDb3B5RmlsZSkKQEAgLTYzNCwxNyAr
NjM1LDE3IEBAIFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgY3JlYXRlSGFyZExpbmtPckNvcHlGaWxl
KQogICAgIGF1dG8gaGFyZGxpbmtQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KHRlbXBFbXB0eUZvbGRlclBhdGgoKSwgInRlbXBGaWxlLWhhcmRsaW5rIik7CiAgICAg
RVhQRUNUX0ZBTFNFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoaGFyZGxpbmtQYXRoKSk7CiAKLSAg
ICBsb25nIGxvbmcgZmlsZVNpemUgPSAwOwotICAgIEVYUEVDVF9UUlVFKEZpbGVTeXN0ZW06Omdl
dEZpbGVTaXplKHRlbXBGaWxlUGF0aCgpLCBmaWxlU2l6ZSkpOwotICAgIEVYUEVDVF9HVChmaWxl
U2l6ZSwgMCk7CisgICAgYXV0byBmaWxlU2l6ZSA9IEZpbGVTeXN0ZW06OmZpbGVTaXplKHRlbXBG
aWxlUGF0aCgpKTsKKyAgICBBU1NFUlRfVFJVRShmaWxlU2l6ZSk7CisgICAgRVhQRUNUX0dUKCpm
aWxlU2l6ZSwgMFUpOwogCiAgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6aGFyZExpbmtPckNv
cHlGaWxlKHRlbXBGaWxlUGF0aCgpLCBoYXJkbGlua1BhdGgpKTsKIAogICAgIEVYUEVDVF9UUlVF
KEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoaGFyZGxpbmtQYXRoKSk7CiAKLSAgICBsb25nIGxvbmcg
bGlua0ZpbGVTaXplID0gMDsKLSAgICBFWFBFQ1RfVFJVRShGaWxlU3lzdGVtOjpnZXRGaWxlU2l6
ZShoYXJkbGlua1BhdGgsIGxpbmtGaWxlU2l6ZSkpOwotICAgIEVYUEVDVF9FUShsaW5rRmlsZVNp
emUsIGZpbGVTaXplKTsKKyAgICBhdXRvIGxpbmtGaWxlU2l6ZSA9IEZpbGVTeXN0ZW06OmZpbGVT
aXplKGhhcmRsaW5rUGF0aCk7CisgICAgQVNTRVJUX1RSVUUobGlua0ZpbGVTaXplKTsKKyAgICBF
WFBFQ1RfRVEoKmxpbmtGaWxlU2l6ZSwgKmZpbGVTaXplKTsKIAogICAgIGF1dG8gaGFyZGxpbmtN
ZXRhZGF0YSA9IEZpbGVTeXN0ZW06OmZpbGVNZXRhZGF0YShoYXJkbGlua1BhdGgpOwogICAgIEVY
UEVDVF9UUlVFKCEhaGFyZGxpbmtNZXRhZGF0YSk7CkBAIC02NTQsOSArNjU1LDkgQEAgVEVTVF9G
KEZpbGVTeXN0ZW1UZXN0LCBjcmVhdGVIYXJkTGlua09yQ29weUZpbGUpCiAgICAgRVhQRUNUX0ZB
TFNFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHModGVtcEZpbGVQYXRoKCkpKTsKICAgICBFWFBFQ1Rf
VFJVRShGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKGhhcmRsaW5rUGF0aCkpOwogCi0gICAgbGlua0Zp
bGVTaXplID0gMDsKLSAgICBFWFBFQ1RfVFJVRShGaWxlU3lzdGVtOjpnZXRGaWxlU2l6ZShoYXJk
bGlua1BhdGgsIGxpbmtGaWxlU2l6ZSkpOwotICAgIEVYUEVDVF9FUShsaW5rRmlsZVNpemUsIGZp
bGVTaXplKTsKKyAgICBsaW5rRmlsZVNpemUgPSBGaWxlU3lzdGVtOjpmaWxlU2l6ZShoYXJkbGlu
a1BhdGgpOworICAgIEFTU0VSVF9UUlVFKGxpbmtGaWxlU2l6ZSk7CisgICAgRVhQRUNUX0VRKCps
aW5rRmlsZVNpemUsICpmaWxlU2l6ZSk7CiB9CiAKIFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgaGFy
ZExpbmtDb3VudCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KaW5kZXggNjY4MmJmNDU4NjY2
MTE1NTNmMTBhMTdlNzJhNzI5ZWNhYTY5NThjNC4uZjgyMGNmZWEyMGNkYzhlZjFmM2VlYTFkYTkz
OGEwNGNkOWJmZTZhZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KQEAgLTQ0LDkgKzQ0
LDggQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZURhdGFiYXNlRmlsZUlmRW1wdHkpCiAg
ICAgU3RyaW5nIGRhdGFiYXNlRmlsZVBhdGggPSBGaWxlU3lzdGVtOjpvcGVuVGVtcG9yYXJ5Rmls
ZSgidGVtcEVtcHR5RGF0YWJhc2UiLCBoYW5kbGUpOwogICAgIEZpbGVTeXN0ZW06OmNsb3NlRmls
ZShoYW5kbGUpOwogCi0gICAgbG9uZyBsb25nIGZpbGVTaXplOwotICAgIEZpbGVTeXN0ZW06Omdl
dEZpbGVTaXplKGRhdGFiYXNlRmlsZVBhdGgsIGZpbGVTaXplKTsKLSAgICBFWFBFQ1RfRVEoMCwg
ZmlsZVNpemUpOworICAgIGF1dG8gZmlsZVNpemUgPSBGaWxlU3lzdGVtOjpmaWxlU2l6ZShkYXRh
YmFzZUZpbGVQYXRoKS52YWx1ZU9yKDApOworICAgIEVYUEVDVF9FUSgwVSwgZmlsZVNpemUpOwog
CiAgICAgRVhQRUNUX1RSVUUoRGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZUZpbGVJZkVt
cHR5KGRhdGFiYXNlRmlsZVBhdGgpKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>