<?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>222523</bug_id>
          
          <creation_ts>2021-02-27 23:06:45 -0800</creation_ts>
          <short_desc>[JSC] Throw TypeError when getFunctionRealm hits revoked Proxy</short_desc>
          <delta_ts>2021-03-01 11:22:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1734253</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-27 23:06:45 -0800</bug_when>
    <thetext>[JSC] Throw TypeError when getFunctionRealm hits revoked Proxy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734256</commentid>
    <comment_count>1</comment_count>
      <attachid>421767</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-27 23:26:15 -0800</bug_when>
    <thetext>Created attachment 421767
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734257</commentid>
    <comment_count>2</comment_count>
      <attachid>421768</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-27 23:28:54 -0800</bug_when>
    <thetext>Created attachment 421768
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734258</commentid>
    <comment_count>3</comment_count>
      <attachid>421769</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-27 23:34:53 -0800</bug_when>
    <thetext>Created attachment 421769
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734422</commentid>
    <comment_count>4</comment_count>
      <attachid>421769</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-03-01 08:00:49 -0800</bug_when>
    <thetext>Comment on attachment 421769
Patch

Absolutely gorgeous!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734487</commentid>
    <comment_count>5</comment_count>
      <attachid>421769</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-03-01 10:50:16 -0800</bug_when>
    <thetext>Comment on attachment 421769
Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734510</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-01 11:21:47 -0800</bug_when>
    <thetext>Committed r273661: &lt;https://commits.webkit.org/r273661&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 421769.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734511</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-01 11:22:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/74880414&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421767</attachid>
            <date>2021-02-27 23:26:15 -0800</date>
            <delta_ts>2021-02-27 23:28:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222523-20210227232614.patch</filename>
            <type>text/plain</type>
            <size>63798</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
OWZmOWEwOGQ5OWJhYzlhMjMwM2FjMWJlODY3MmY5YWZhNDUxODI0Li43YTAwOGMxYjNmZmZiMDY3
NTg2OTE0OTgyYWUwNmQyMWEyYTM0ZGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDggQEAKKzIwMjEtMDItMjcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KKworICAgICAgICBbSlNDXSBUaHJvdyBUeXBlRXJyb3Igd2hlbiBnZXRGdW5jdGlvblJlYWxt
IGhpdHMgcmV2b2tlZCBQcm94eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIyNTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBwYXRjaCB0aHJvd3MgVHlwZUVycm9yIHdoZW4gZ2V0RnVuY3Rpb25S
ZWFsbSBlbmNvdW50ZXJzIHJldm9rZWQgUHJveHkuIEhvd2V2ZXIsCisgICAgICAgIHRoaXMgbWFr
ZXMgZGVyaXZlZCBzdHJ1Y3R1cmUgY3JlYXRpb24gY29kZSBkaWZmaWN1bHQgdG8gYmUgd3JpdHRl
biBpbmxpbmVseS4KKyAgICAgICAgVGhlIGZhc3QgcGF0aCBvZiBkZXJpdmVkIHN0cnVjdHVyZSBj
cmVhdGlvbiBtdXN0IGJlIGlubGluZWQgc2luY2UgdGhpcyBpcyBjcml0aWNhbAorICAgICAgICBw
YXRoIG9mIGV2ZXJ5IGJ1aWx0aW4gY29uc3RydWN0b3JzLgorCisgICAgICAgIFNvLCB0aGlzIHBh
dGNoIGludHJvZHVjZXMgSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSBtYWNybyB3aGljaCBzdHJl
YW1saW5lcyB0aGUgZGVyaXZlZAorICAgICAgICBzdHJ1Y3R1cmUgY3JlYXRpb24gY29kZSB3aGls
ZSBrZWVwaW5nIHRoZSBmYXN0IHBhdGggaW5saW5lZC4gQW5kIGl0IGluc2VydHMgYXBwcm9wcmlh
dGUKKyAgICAgICAgZXJyb3IgY2hlY2tzIGFmdGVyIHRoaXMgbmV3IGdldEZ1bmN0aW9uUmVhbG0g
Y2FsbC4KKworICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04pOgorICAgICAgICAqIHJ1bnRpbWUvQWdncmVn
YXRlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTik6CisgICAgICAgICogcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUv
Q29tbW9uU2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9DT01NT05fU0xP
V19QQVRIKToKKyAgICAgICAgKiBydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAg
IChKU0M6OmNvbnN0cnVjdERhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAg
ICogcnVudGltZS9GaW5hbGl6YXRpb25SZWdpc3RyeUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBydW50aW1lL0Z1bmN0
aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RGdW5jdGlvblNraXBw
aW5nRXZhbEVuYWJsZWRDaGVjayk6CisgICAgICAgICogcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9u
LmNwcDoKKyAgICAgICAgKEpTQzo6Z2V0RnVuY3Rpb25SZWFsbSk6CisgICAgICAgICogcnVudGlt
ZS9JbnRlcm5hbEZ1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9JbnRsQ29sbGF0b3JDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6Cisg
ICAgICAgICogcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9J
bnRsRGlzcGxheU5hbWVzQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvSW50bExpc3RGb3JtYXRDb25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgICogcnVudGltZS9JbnRsTG9jYWxlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvSW50bE51bWJlckZv
cm1hdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKToKKyAgICAgICAgKiBydW50aW1lL0ludGxQbHVyYWxSdWxlc0NvbnN0cnVjdG9yLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBydW50
aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9JbnRsU2VnbWVu
dGVyQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNHZW5lcmljQXJyYXlCdWZmZXJDb25zdHJ1Y3RvcjxzaGFyaW5nTW9kZT46
OmNvbnN0cnVjdEltcGwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZp
ZXdDb25zdHJ1Y3RvcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0Q3VzdG9tQXJy
YXlCdWZmZXJJZk5lZWRlZCk6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEdlbmVyaWNUeXBlZEFy
cmF5Vmlld0ltcGwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAg
ICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmVycm9yU3RydWN0dXJlV2l0aEVycm9yVHlwZSBjb25z
dCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjphcnJheUJ1ZmZlclN0cnVjdHVyZVdp
dGhTaGFyaW5nTW9kZSBjb25zdCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojp0eXBl
ZEFycmF5U3RydWN0dXJlV2l0aFR5cGVkQXJyYXlUeXBlIGNvbnN0KToKKyAgICAgICAgKiBydW50
aW1lL0pTR2xvYmFsT2JqZWN0SW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVj
dDo6YXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uIGNvbnN0KToK
KyAgICAgICAgKiBydW50aW1lL01hcENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBydW50aW1lL05hdGl2ZUVycm9yQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yPGVycm9y
VHlwZT46OmNvbnN0cnVjdEltcGwpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAg
ICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1
Y3RPYmplY3RXaXRoTmV3VGFyZ2V0KToKKyAgICAgICAgKiBydW50aW1lL1Byb3h5Q29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoSlNDOjpQcm94eUNvbnN0cnVjdG9yOjpjcmVhdGUpOgorICAgICAg
ICAoSlNDOjpQcm94eUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVu
dGltZS9Qcm94eUNvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmdldFJlZ0V4cFN0cnVjdHVyZSk6CisgICAgICAgICog
cnVudGltZS9TZXRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGlt
ZS9XZWFrTWFwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvV2Vha09iamVjdFJlZkNvbnN0cnVjdG9yLmNw
cDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBy
dW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJv
ckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHdhc20v
anMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TGlu
a0Vycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04pOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICog
d2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
V2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlTW9kdWxlKToKKyAgICAgICAgKiB3
YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAo
SlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHdhc20vanMvV2ViQXNz
ZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKToKKwogMjAyMS0wMi0yNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtKU0NdIEF2b2lkIGNyZWF0aW5nIGZ1bmN0aW9ucyB1bm5lY2Vzc2Fy
aWx5IGluIGJ1aWx0aW5zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzU1OTA3MGRlNjYyNjA3YTk0N2IyOWI5NTYz
YzZlZTRkOGVmMWFlZC4uOTQxOGE3YTZjNDNiNDNkODdiN2M4Mjg5Zjg5NTNiOWE2MGUxMzFlMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTAyLTI3ICBZdXN1a2UgU3V6dWtpICA8
eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gVGhyb3cgVHlwZUVycm9yIHdoZW4g
Z2V0RnVuY3Rpb25SZWFsbSBoaXRzIHJldm9rZWQgUHJveHkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjUyMworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XcmFwcGVyQ2Fj
aGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OnNldFN1YmNsYXNzU3RydWN0dXJlSWZOZWVkZWQpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y29uc3RydWN0SlNIVE1MRWxlbWVudCk6CisKIDIwMjEtMDItMjcgIENvbW1pdCBR
dWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJl
dmVydGluZyByMjczNDc0IGFuZCByMjczNDc5LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT3BlcmF0aW9ucy5jcHAKaW5kZXggYjIxMWVkNjExYTZkYTg2NGQwNjAxY2RlYmYzM2M2NjBm
NTVhZmUwNC4uMThiYjlkMmExODIzMTJlNjNjZWJjOGE2ZDVjYTllMzkzZTI4ODgzYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC0zMzAsNyArMzMw
LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVRoaXMsIEpTQ2Vs
bCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBudWxscHRyKTsKICAgICBpZiAocHJvdG8uaXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJu
IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdCwgYXNPYmplY3QocHJvdG8pKTsKLSAg
ICByZXR1cm4gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2JqZWN0KTsKKyAgICBKU0dsb2Jh
bE9iamVjdCogZnVuY3Rpb25HbG9iYWxPYmplY3QgPSBnZXRGdW5jdGlvblJlYWxtKGdsb2JhbE9i
amVjdCwgY29uc3RydWN0b3IpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxw
dHIpOworICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eU9iamVjdChmdW5jdGlvbkdsb2JhbE9iamVj
dCk7CiB9CiAKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVQcm9taXNl
LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGNvbnN0
cnVjdG9yKSkKQEAgLTMzOSw5ICszNDEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ3JlYXRlUHJvbWlzZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRP
cGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIFN0cnVjdHVyZSog
c3RydWN0dXJlID0gY29uc3RydWN0b3IgPT0gZ2xvYmFsT2JqZWN0LT5wcm9taXNlQ29uc3RydWN0
b3IoKQotICAgICAgICA/IGdsb2JhbE9iamVjdC0+cHJvbWlzZVN0cnVjdHVyZSgpCi0gICAgICAg
IDogSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0
LCBjb25zdHJ1Y3RvciwgZ2V0RnVuY3Rpb25SZWFsbSh2bSwgY29uc3RydWN0b3IpLT5wcm9taXNl
U3RydWN0dXJlKCkpOworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gSlNDX0dFVF9ERVJJVkVE
X1NUUlVDVFVSRSh2bSwgcHJvbWlzZVN0cnVjdHVyZSwgY29uc3RydWN0b3IsIGdsb2JhbE9iamVj
dC0+cHJvbWlzZUNvbnN0cnVjdG9yKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IG51bGxwdHIpOwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNQcm9taXNlOjpjcmVh
dGUodm0sIHN0cnVjdHVyZSkpOwogfQpAQCAtMzUyLDkgKzM1Miw3IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVJbnRlcm5hbFByb21pc2UsIEpTQ2VsbCosIChKU0ds
b2JhbE9iamVjCiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwg
Y2FsbEZyYW1lKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0g
ICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBjb25zdHJ1Y3RvciA9PSBnbG9iYWxPYmplY3QtPmlu
dGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yKCkKLSAgICAgICAgPyBnbG9iYWxPYmplY3QtPmludGVy
bmFsUHJvbWlzZVN0cnVjdHVyZSgpCi0gICAgICAgIDogSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRl
U3ViY2xhc3NTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBjb25zdHJ1Y3RvciwgZ2V0RnVuY3Rpb25S
ZWFsbSh2bSwgY29uc3RydWN0b3IpLT5pbnRlcm5hbFByb21pc2VTdHJ1Y3R1cmUoKSk7CisgICAg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCBpbnRl
cm5hbFByb21pc2VTdHJ1Y3R1cmUsIGNvbnN0cnVjdG9yLCBnbG9iYWxPYmplY3QtPmludGVybmFs
UHJvbWlzZUNvbnN0cnVjdG9yKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51
bGxwdHIpOwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNJbnRlcm5hbFByb21pc2U6
OmNyZWF0ZSh2bSwgc3RydWN0dXJlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDdk
ODVhNjAwOTBkZWZiNWEwYjBlNWU1N2IwZTkwNzMzNDE3MTQwZDcuLjNkMWEwNGNhZjVlNDA3YjBm
OWNhOWEyNDRiNTgzOGFiZjA3YWQyMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC03Miw5
ICs3Miw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RBZ2dyZWdhdGVFcnJv
ckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsCiAgICAgSlNWYWx1ZSBtZXNzYWdlID0g
Y2FsbEZyYW1lLT5hcmd1bWVudCgxKTsKIAogICAgIEpTT2JqZWN0KiBuZXdUYXJnZXQgPSBhc09i
amVjdChjYWxsRnJhbWUtPm5ld1RhcmdldCgpKTsKLSAgICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0
dXJlID0gbmV3VGFyZ2V0ID09IGNhbGxGcmFtZS0+anNDYWxsZWUoKQotICAgICAgICA/IGdsb2Jh
bE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpBZ2dyZWdhdGVFcnJvcikKLSAgICAg
ICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmpl
Y3QsIG5ld1RhcmdldCwgZ2V0RnVuY3Rpb25SZWFsbSh2bSwgbmV3VGFyZ2V0KS0+ZXJyb3JTdHJ1
Y3R1cmUoRXJyb3JUeXBlOjpBZ2dyZWdhdGVFcnJvcikpOworICAgIFN0cnVjdHVyZSogZXJyb3JT
dHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCBlcnJvclN0cnVjdHVyZVdp
dGhFcnJvclR5cGU8RXJyb3JUeXBlOjpBZ2dyZWdhdGVFcnJvcj4sIG5ld1RhcmdldCwgY2FsbEZy
YW1lLT5qc0NhbGxlZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwog
ICAgIEFTU0VSVChlcnJvclN0cnVjdHVyZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCmluZGV4IDAwZjg1YjMxN2ZkMTA1
NjVkNGU4NjY0MWY5NzNiNDVlNjRjMzEzMmUuLmVlMjUwNmY5MjYzNzU1NmQ3NDM5ODZiOTExNTU2
NmVmMWJiYWFhMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jv
b2xlYW5Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Qm9vbGVhbkNvbnN0cnVjdG9yLmNwcApAQCAtNDcsOSArNDcsNyBAQCBKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oY29uc3RydWN0V2l0aEJvb2xlYW5Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYQogICAgIEpTVmFsdWUgYm9vbGVhbiA9IGpzQm9vbGVhbihjYWxsRnJhbWUtPmFyZ3Vt
ZW50KDApLnRvQm9vbGVhbihnbG9iYWxPYmplY3QpKTsKIAogICAgIEpTT2JqZWN0KiBuZXdUYXJn
ZXQgPSBhc09iamVjdChjYWxsRnJhbWUtPm5ld1RhcmdldCgpKTsKLSAgICBTdHJ1Y3R1cmUqIGJv
b2xlYW5TdHJ1Y3R1cmUgPSBuZXdUYXJnZXQgPT0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpCi0gICAg
ICAgID8gZ2xvYmFsT2JqZWN0LT5ib29sZWFuT2JqZWN0U3RydWN0dXJlKCkKLSAgICAgICAgOiBJ
bnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIG5l
d1RhcmdldCwgZ2V0RnVuY3Rpb25SZWFsbSh2bSwgbmV3VGFyZ2V0KS0+Ym9vbGVhbk9iamVjdFN0
cnVjdHVyZSgpKTsKKyAgICBTdHJ1Y3R1cmUqIGJvb2xlYW5TdHJ1Y3R1cmUgPSBKU0NfR0VUX0RF
UklWRURfU1RSVUNUVVJFKHZtLCBib29sZWFuT2JqZWN0U3RydWN0dXJlLCBuZXdUYXJnZXQsIGNh
bGxGcmFtZS0+anNDYWxsZWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9
KTsKIAogICAgIEJvb2xlYW5PYmplY3QqIG9iaiA9IEJvb2xlYW5PYmplY3Q6OmNyZWF0ZSh2bSwg
Ym9vbGVhblN0cnVjdHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db21tb25TbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29tbW9uU2xvd1BhdGhzLmNwcAppbmRleCBkMjUxMjJmMzU2YTcyNDUyM2JmNWU1YjgyNzU5Yzlj
NzllOWIwNjYxLi5hZTI0YzFhYTgwNTU0Y2Q5ZmEyODA0NjhlNTk1YjJkMWY2OWZjYzdiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAK
QEAgLTI0NiwxMyArMjQ2LDE2IEBAIEpTQ19ERUZJTkVfQ09NTU9OX1NMT1dfUEFUSChzbG93X3Bh
dGhfY3JlYXRlX3RoaXMpCiAgICAgICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFoYXNJbmRl
eGVkUHJvcGVydGllcyhyZXN1bHQtPmluZGV4aW5nVHlwZSgpKSwgIldlIHJlbHkgb24gSlNGaW5h
bE9iamVjdCBub3Qgc3RhcnRpbmcgb3V0IHdpdGggYW4gaW5kZXhpbmcgdHlwZSBvdGhlcndpc2Ug
d2Ugd291bGQgcG90ZW50aWFsbHkgbmVlZCB0byBjb252ZXJ0IHRvIHNsb3cgcHV0IHN0b3JhZ2Ui
KTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIGh0dHA6Ly9lY21hLWludGVy
bmF0aW9uYWwub3JnL2VjbWEtMjYyLzYuMC8jc2VjLW9yZGluYXJ5Y3JlYXRlZnJvbWNvbnN0cnVj
dG9yCisgICAgICAgIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtZ2V0cHJvdG90eXBl
ZnJvbWNvbnN0cnVjdG9yCiAgICAgICAgIEpTVmFsdWUgcHJvdG8gPSBjb25zdHJ1Y3RvckFzT2Jq
ZWN0LT5nZXQoZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUpOwogICAg
ICAgICBDSEVDS19FWENFUFRJT04oKTsKICAgICAgICAgaWYgKHByb3RvLmlzT2JqZWN0KCkpCiAg
ICAgICAgICAgICByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QsIGFz
T2JqZWN0KHByb3RvKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlc3VsdCA9IGNvbnN0
cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgSlNHbG9iYWxPYmplY3QqIGZ1bmN0aW9uR2xvYmFsT2JqZWN0ID0gZ2V0RnVuY3Rpb25SZWFs
bShnbG9iYWxPYmplY3QsIGNvbnN0cnVjdG9yQXNPYmplY3QpOworICAgICAgICAgICAgQ0hFQ0tf
RVhDRVBUSU9OKCk7CisgICAgICAgICAgICByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChm
dW5jdGlvbkdsb2JhbE9iamVjdCk7CisgICAgICAgIH0KICAgICB9CiAgICAgUkVUVVJOKHJlc3Vs
dCk7CiB9CkBAIC0yNjUsMTUgKzI2OCwxMSBAQCBKU0NfREVGSU5FX0NPTU1PTl9TTE9XX1BBVEgo
c2xvd19wYXRoX2NyZWF0ZV9wcm9taXNlKQogCiAgICAgSlNQcm9taXNlKiByZXN1bHQgPSBudWxs
cHRyOwogICAgIGlmIChieXRlY29kZS5tX2lzSW50ZXJuYWxQcm9taXNlKSB7Ci0gICAgICAgIFN0
cnVjdHVyZSogc3RydWN0dXJlID0gY29uc3RydWN0b3JBc09iamVjdCA9PSBnbG9iYWxPYmplY3Qt
PmludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yKCkKLSAgICAgICAgICAgID8gZ2xvYmFsT2JqZWN0
LT5pbnRlcm5hbFByb21pc2VTdHJ1Y3R1cmUoKQotICAgICAgICAgICAgOiBJbnRlcm5hbEZ1bmN0
aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIGNvbnN0cnVjdG9yQXNP
YmplY3QsIGdldEZ1bmN0aW9uUmVhbG0odm0sIGNvbnN0cnVjdG9yQXNPYmplY3QpLT5pbnRlcm5h
bFByb21pc2VTdHJ1Y3R1cmUoKSk7CisgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gSlND
X0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgaW50ZXJuYWxQcm9taXNlU3RydWN0dXJlLCBjb25z
dHJ1Y3RvckFzT2JqZWN0LCBnbG9iYWxPYmplY3QtPmludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9y
KCkpOwogICAgICAgICBDSEVDS19FWENFUFRJT04oKTsKICAgICAgICAgcmVzdWx0ID0gSlNJbnRl
cm5hbFByb21pc2U6OmNyZWF0ZSh2bSwgc3RydWN0dXJlKTsKICAgICB9IGVsc2UgewotICAgICAg
ICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGNvbnN0cnVjdG9yQXNPYmplY3QgPT0gZ2xvYmFsT2Jq
ZWN0LT5wcm9taXNlQ29uc3RydWN0b3IoKQotICAgICAgICAgICAgPyBnbG9iYWxPYmplY3QtPnBy
b21pc2VTdHJ1Y3R1cmUoKQotICAgICAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVT
dWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIGNvbnN0cnVjdG9yQXNPYmplY3QsIGdldEZ1
bmN0aW9uUmVhbG0odm0sIGNvbnN0cnVjdG9yQXNPYmplY3QpLT5wcm9taXNlU3RydWN0dXJlKCkp
OworICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RV
UkUodm0sIHByb21pc2VTdHJ1Y3R1cmUsIGNvbnN0cnVjdG9yQXNPYmplY3QsIGdsb2JhbE9iamVj
dC0+cHJvbWlzZUNvbnN0cnVjdG9yKCkpOwogICAgICAgICBDSEVDS19FWENFUFRJT04oKTsKICAg
ICAgICAgcmVzdWx0ID0gSlNQcm9taXNlOjpjcmVhdGUodm0sIHN0cnVjdHVyZSk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAK
aW5kZXggZjM0MGY1YmMwYTMzMGE1NTdkMzEyMThiYWI5ZjUyZmVjMzYyM2ZiOC4uNDIxZTJmZDEx
NTZkNTBjOWJlNmFlNjIyZTI0OWYyN2I5Nzg2MGJkZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCkBAIC0xMjcsOSArMTI3LDExIEBA
IEpTT2JqZWN0KiBjb25zdHJ1Y3REYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
VmFsdWUgbmV3VGFyZ2V0LCBjb25zdCBBCiAgICAgICAgIHZhbHVlID0gbWlsbGlzZWNvbmRzRnJv
bUNvbXBvbmVudHMoZ2xvYmFsT2JqZWN0LCBhcmdzLCBXVEY6OkxvY2FsVGltZSk7CiAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAKLSAgICBTdHJ1Y3R1cmUqIGRhdGVT
dHJ1Y3R1cmUgPSAhbmV3VGFyZ2V0IHx8IG5ld1RhcmdldCA9PSBnbG9iYWxPYmplY3QtPmRhdGVD
b25zdHJ1Y3RvcigpCi0gICAgICAgID8gZ2xvYmFsT2JqZWN0LT5kYXRlU3RydWN0dXJlKCkKLSAg
ICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxP
YmplY3QsIGFzT2JqZWN0KG5ld1RhcmdldCksIGdldEZ1bmN0aW9uUmVhbG0odm0sIGFzT2JqZWN0
KG5ld1RhcmdldCkpLT5kYXRlU3RydWN0dXJlKCkpOworICAgIFN0cnVjdHVyZSogZGF0ZVN0cnVj
dHVyZSA9IG51bGxwdHI7CisgICAgaWYgKCFuZXdUYXJnZXQpCisgICAgICAgIGRhdGVTdHJ1Y3R1
cmUgPSBnbG9iYWxPYmplY3QtPmRhdGVTdHJ1Y3R1cmUoKTsKKyAgICBlbHNlCisgICAgICAgIGRh
dGVTdHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCBkYXRlU3RydWN0dXJl
LCBhc09iamVjdChuZXdUYXJnZXQpLCBnbG9iYWxPYmplY3QtPmRhdGVDb25zdHJ1Y3RvcigpKTsK
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAogICAgIHJldHVybiBE
YXRlSW5zdGFuY2U6OmNyZWF0ZSh2bSwgZGF0ZVN0cnVjdHVyZSwgdmFsdWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCA5
YmU5MzBjZjFjM2M5YTQwZTYwODU5ODM1NThhMWE1OWJjNzhiNjJmLi40OWY3ODEzM2VjMjMwYzU4
MDA0MWQxNmU0OWNlN2ZkMTYzMTEyYjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtNTUsOSArNTUsNyBAQCBKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0RXJyb3JDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplYwogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGNhbGxGcmFtZS0+YXJndW1l
bnQoMCk7CiAKICAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0gYXNPYmplY3QoY2FsbEZyYW1lLT5u
ZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IG5ld1RhcmdldCA9
PSBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkKLSAgICAgICAgPyBnbG9iYWxPYmplY3QtPmVycm9yU3Ry
dWN0dXJlKCkKLSAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVj
dHVyZShnbG9iYWxPYmplY3QsIG5ld1RhcmdldCwgZ2V0RnVuY3Rpb25SZWFsbSh2bSwgbmV3VGFy
Z2V0KS0+ZXJyb3JTdHJ1Y3R1cmUoKSk7CisgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9
IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RVUkUodm0sIGVycm9yU3RydWN0dXJlLCBuZXdUYXJnZXQs
IGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
eyB9KTsKIAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKEVy
cm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdl
LCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpFcnJvciwgZmFsc2UpKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GaW5hbGl6YXRpb25SZWdpc3Ry
eUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ZpbmFsaXph
dGlvblJlZ2lzdHJ5Q29uc3RydWN0b3IuY3BwCmluZGV4IGJhYmU0ZGUxOWNhMzNmOWRhNTgyODI5
YTk5MTBjN2Q1ZmIwYTNjNzYuLmYzMWRiODZhNzk2MTZlNDVhOGRjMTE1YWEyNjU3MGFjM2M3ZTY2
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ZpbmFsaXphdGlv
blJlZ2lzdHJ5Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ZpbmFsaXphdGlvblJlZ2lzdHJ5Q29uc3RydWN0b3IuY3BwCkBAIC02OSw5ICs2OSw3IEBA
IEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RGaW5hbGl6YXRpb25SZWdpc3RyeSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGdsb2JhbE9iamVjdCwgc2NvcGUsICJGaXJzdCBhcmd1bWVudCB0byBGaW5hbGl6YXRpb25SZWdp
c3RyeSBzaG91bGQgYmUgYSBmdW5jdGlvbiJfcyk7CiAKICAgICBKU09iamVjdCogbmV3VGFyZ2V0
ID0gYXNPYmplY3QoY2FsbEZyYW1lLT5uZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0dXJlKiBmaW5h
bGl6YXRpb25SZWdpc3RyeVN0cnVjdHVyZSA9IGNhbGxGcmFtZS0+anNDYWxsZWUoKSA9PSBuZXdU
YXJnZXQKLSAgICAgICAgPyBnbG9iYWxPYmplY3QtPmZpbmFsaXphdGlvblJlZ2lzdHJ5U3RydWN0
dXJlKCkKLSAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVy
ZShnbG9iYWxPYmplY3QsIG5ld1RhcmdldCwgZ2V0RnVuY3Rpb25SZWFsbSh2bSwgbmV3VGFyZ2V0
KS0+ZmluYWxpemF0aW9uUmVnaXN0cnlTdHJ1Y3R1cmUoKSk7CisgICAgU3RydWN0dXJlKiBmaW5h
bGl6YXRpb25SZWdpc3RyeVN0cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RVUkUodm0s
IGZpbmFsaXphdGlvblJlZ2lzdHJ5U3RydWN0dXJlLCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anND
YWxsZWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUo
KSk7CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoSlNGaW5h
bGl6YXRpb25SZWdpc3RyeTo6Y3JlYXRlKHZtLCBmaW5hbGl6YXRpb25SZWdpc3RyeVN0cnVjdHVy
ZSwgY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKS5nZXRPYmplY3QoKSkpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rv
ci5jcHAKaW5kZXggMDM5ODVjNTk1NjczNDQ1MjBjZWVkYWI0NmVhYmI0NjIyZDM0NDdiNy4uMTdi
YzI0NjE0OTUxOWMwZTMwNWFjODJlZDk0MzZmMmMxYzQ1NjcwMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKQEAgLTE1
OSw4ICsxNTksMTIgQEAgSlNPYmplY3QqIGNvbnN0cnVjdEZ1bmN0aW9uU2tpcHBpbmdFdmFsRW5h
YmxlZENoZWNrKAogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKKyAgICBKU0dsb2Jh
bE9iamVjdCogc3RydWN0dXJlR2xvYmFsT2JqZWN0ID0gZ2xvYmFsT2JqZWN0OwogICAgIGJvb2wg
bmVlZHNTdWJjbGFzc1N0cnVjdHVyZSA9IG5ld1RhcmdldCAmJiBuZXdUYXJnZXQgIT0gZ2xvYmFs
T2JqZWN0LT5mdW5jdGlvbkNvbnN0cnVjdG9yKCk7Ci0gICAgSlNHbG9iYWxPYmplY3QqIHN0cnVj
dHVyZUdsb2JhbE9iamVjdCA9IG5lZWRzU3ViY2xhc3NTdHJ1Y3R1cmUgPyBnZXRGdW5jdGlvblJl
YWxtKHZtLCBhc09iamVjdChuZXdUYXJnZXQpKSA6IGdsb2JhbE9iamVjdDsKKyAgICBpZiAobmVl
ZHNTdWJjbGFzc1N0cnVjdHVyZSkgeworICAgICAgICBzdHJ1Y3R1cmVHbG9iYWxPYmplY3QgPSBn
ZXRGdW5jdGlvblJlYWxtKGdsb2JhbE9iamVjdCwgYXNPYmplY3QobmV3VGFyZ2V0KSk7CisgICAg
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOworICAgIH0KICAgICBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSA9IG51bGxwdHI7CiAgICAgc3dpdGNoIChmdW5jdGlvbkNvbnN0cnVj
dGlvbk1vZGUpIHsKICAgICBjYXNlIEZ1bmN0aW9uQ29uc3RydWN0aW9uTW9kZTo6RnVuY3Rpb246
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0
aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24u
Y3BwCmluZGV4IDI2ZWQ4Yzk1ZGJjYmVkYjAwZjliZDMzZmUzM2ZjZjZmZDgxODdiN2MuLjBiOGQ2
MjM1MTQ0MDZjMTE4MDhmZWVhNjcwYzA3NWJhNmRhMjU2ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCkBAIC0xNzIsOCArMTcy
LDExIEBAIEludGVybmFsRnVuY3Rpb24qIEludGVybmFsRnVuY3Rpb246OmNyZWF0ZUZ1bmN0aW9u
VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoVk0mCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9l
Y21hMjYyLyNzZWMtZ2V0ZnVuY3Rpb25yZWFsbQotSlNHbG9iYWxPYmplY3QqIGdldEZ1bmN0aW9u
UmVhbG0oVk0mIHZtLCBKU09iamVjdCogb2JqZWN0KQorSlNHbG9iYWxPYmplY3QqIGdldEZ1bmN0
aW9uUmVhbG0oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCkK
IHsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOworCiAgICAgQVNTRVJUKG9iamVjdC0+aXNDYWxsYWJsZSh2
bSkpOwogCiAgICAgd2hpbGUgKHRydWUpIHsKQEAgLTE4NCwxNCArMTg3LDEyIEBAIEpTR2xvYmFs
T2JqZWN0KiBnZXRGdW5jdGlvblJlYWxtKFZNJiB2bSwgSlNPYmplY3QqIG9iamVjdCkKIAogICAg
ICAgICBpZiAob2JqZWN0LT50eXBlKCkgPT0gUHJveHlPYmplY3RUeXBlKSB7CiAgICAgICAgICAg
ICBhdXRvKiBwcm94eSA9IGpzQ2FzdDxQcm94eU9iamVjdCo+KG9iamVjdCk7Ci0gICAgICAgICAg
ICAvLyBQZXIgc3RlcCA0LmEsIGEgVHlwZUVycm9yIHNob3VsZCBiZSB0aHJvd24gZm9yIHJldm9r
ZWQgUHJveHksIHlldCB3ZSBza2lwIGl0IHNpbmNlOgotICAgICAgICAgICAgLy8gYSkgSXQgaXMg
YmFyZWx5IG9ic2VydmFibGUgYW55d2F5OiAicHJvdG90eXBlIiBsb29rdXAgaW4gY3JlYXRlU3Vi
Y2xhc3NTdHJ1Y3R1cmUoKSB3aWxsIHRocm93IGZvciByZXZva2VkIFByb3h5LgotICAgICAgICAg
ICAgLy8gYikgVGhyb3dpbmcgZ2V0RnVuY3Rpb25SZWFsbSgpIHdpbGwgcmVzdHJpY3QgY2FsbGlu
ZyBpdCBpbmxpbmUgYXMgYW4gYXJndW1lbnQgb2YgY3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoKS4K
LSAgICAgICAgICAgIC8vIGMpIFRoZXJlIGlzIG9uZ29pbmcgZGlzY3Vzc2lvbiBvbiByZW1vdmlu
ZyBpdDogaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvZWNtYTI2Mi9pc3N1ZXMvMTc5OC4KLSAgICAg
ICAgICAgIGlmICghcHJveHktPmlzUmV2b2tlZCgpKSB7Ci0gICAgICAgICAgICAgICAgb2JqZWN0
ID0gcHJveHktPnRhcmdldCgpOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgaWYgKHByb3h5LT5pc1Jldm9rZWQoKSkgeworICAgICAgICAgICAgICAgIHRocm93VHlwZUVy
cm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJDYW5ub3QgZ2V0IGZ1bmN0aW9uIHJlYWxtIGZyb20g
cmV2b2tlZCBQcm94eSJfcyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
ICAgICAgICB9CisgICAgICAgICAgICBvYmplY3QgPSBwcm94eS0+dGFyZ2V0KCk7CisgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHJldHVybiBvYmplY3QtPmdsb2Jh
bE9iamVjdCh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRlcm5hbEZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5h
bEZ1bmN0aW9uLmgKaW5kZXggNmM0MjM5N2UyZGUyZWY4Yjc5MmUxY2EwYTM0Yjc1OGVkNDZmZTM1
MC4uZDMyMzY5YjFkMjFlMWFlN2ZlYWZhMmViNGMwNjRkNTFjN2E4NmNlNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaApAQCAtOTgsNiAr
OTgsMTYgQEAgY2xhc3MgSW50ZXJuYWxGdW5jdGlvbiA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0
IHsKICAgICBXcml0ZUJhcnJpZXI8SlNHbG9iYWxPYmplY3Q+IG1fZ2xvYmFsT2JqZWN0OwogfTsK
IAotSlNfRVhQT1JUX1BSSVZBVEUgSlNHbG9iYWxPYmplY3QqIGdldEZ1bmN0aW9uUmVhbG0oVk0m
LCBKU09iamVjdCopOworSlNfRVhQT1JUX1BSSVZBVEUgSlNHbG9iYWxPYmplY3QqIGdldEZ1bmN0
aW9uUmVhbG0oSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCopOworCisjZGVmaW5lIEpTQ19HRVRf
REVSSVZFRF9TVFJVQ1RVUkUodm0sIHN0cnVjdHVyZU1lbWJlckZ1bmN0aW9uTmFtZSwgbmV3VGFy
Z2V0LCBjb25zdHJ1Y3RvcikgXAorICAgICgobmV3VGFyZ2V0KSA9PSAoY29uc3RydWN0b3IpIFwK
KyAgICAgICAgPyBnbG9iYWxPYmplY3QtPnN0cnVjdHVyZU1lbWJlckZ1bmN0aW9uTmFtZSgpIFwK
KyAgICAgICAgOiAoWyZdKCkgLT4gU3RydWN0dXJlKiB7IFwKKyAgICAgICAgICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKCh2bSkpOyBcCisgICAgICAgICAgICBhdXRvKiBmdW5j
dGlvbkdsb2JhbE9iamVjdCA9IGdldEZ1bmN0aW9uUmVhbG0oZ2xvYmFsT2JqZWN0LCAobmV3VGFy
Z2V0KSk7IFwKKyAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIp
OyBcCisgICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEludGVybmFsRnVuY3Rp
b246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgKG5ld1RhcmdldCksIGZ1
bmN0aW9uR2xvYmFsT2JqZWN0LT5zdHJ1Y3R1cmVNZW1iZXJGdW5jdGlvbk5hbWUoKSkpOyBcCisg
ICAgICAgIH0oKSkpCiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwCmluZGV4
IGJhYmJhNTFjNDYwN2RhZDJjYWQ2NzZmYzk3Nzk1NWMxYTUzYTUxYWUuLmM4MDliOTFmNTljODU2
MmIzYTRkOGViZmU3Zjc3MWIxZDcxYTg5MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTg5LDkg
Kzg5LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEludGxDb2xsYXRvciwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEMKICAgICAvLyAyLiBMZXQgY29sbGF0b3Ig
YmUgT3JkaW5hcnlDcmVhdGVGcm9tQ29uc3RydWN0b3IobmV3VGFyZ2V0LCAlQ29sbGF0b3JQcm90
b3R5cGUlKS4KICAgICAvLyAzLiBSZXR1cm5JZkFicnVwdChjb2xsYXRvcikuCiAgICAgSlNPYmpl
Y3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkpOwotICAgIFN0
cnVjdHVyZSogc3RydWN0dXJlID0gbmV3VGFyZ2V0ID09IGNhbGxGcmFtZS0+anNDYWxsZWUoKQot
ICAgICAgICA/IGdsb2JhbE9iamVjdC0+Y29sbGF0b3JTdHJ1Y3R1cmUoKQotICAgICAgICA6IElu
dGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3
VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdUYXJnZXQpLT5jb2xsYXRvclN0cnVjdHVy
ZSgpKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RV
UkUodm0sIGNvbGxhdG9yU3RydWN0dXJlLCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUo
KSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIEludGxDb2xs
YXRvciogY29sbGF0b3IgPSBJbnRsQ29sbGF0b3I6OmNyZWF0ZSh2bSwgc3RydWN0dXJlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1h
dENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRl
VGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcAppbmRleCBkOTViZjFiM2JhNWQ4OTFkNTMxZjM3Y2M4
NDZjZGU3ZGQwZGY2NGJjLi4xYmJhMWIwNWMyZTMyYWMwZDE4ZGQxNDM2YzM0ODg2NDBmNzBhNGE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVG
b3JtYXRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuY3BwCkBAIC04Nyw5ICs4Nyw3IEBAIEpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RJbnRsRGF0ZVRpbWVGb3JtYXQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqCiAgICAgLy8gMi4gTGV0IGRhdGVUaW1lRm9ybWF0IGJlIE9yZGlu
YXJ5Q3JlYXRlRnJvbUNvbnN0cnVjdG9yKG5ld1RhcmdldCwgJURhdGVUaW1lRm9ybWF0UHJvdG90
eXBlJSkuCiAgICAgLy8gMy4gUmV0dXJuSWZBYnJ1cHQoZGF0ZVRpbWVGb3JtYXQpLgogICAgIEpT
T2JqZWN0KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJhbWUtPm5ld1RhcmdldCgpKTsKLSAg
ICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG5ld1RhcmdldCA9PSBjYWxsRnJhbWUtPmpzQ2FsbGVl
KCkKLSAgICAgICAgPyBnbG9iYWxPYmplY3QtPmRhdGVUaW1lRm9ybWF0U3RydWN0dXJlKCkKLSAg
ICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxP
YmplY3QsIG5ld1RhcmdldCwgZ2V0RnVuY3Rpb25SZWFsbSh2bSwgbmV3VGFyZ2V0KS0+ZGF0ZVRp
bWVGb3JtYXRTdHJ1Y3R1cmUoKSk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBKU0NfR0VU
X0RFUklWRURfU1RSVUNUVVJFKHZtLCBkYXRlVGltZUZvcm1hdFN0cnVjdHVyZSwgbmV3VGFyZ2V0
LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHsgfSk7CiAKICAgICBJbnRsRGF0ZVRpbWVGb3JtYXQqIGRhdGVUaW1lRm9ybWF0ID0gSW50bERh
dGVUaW1lRm9ybWF0OjpjcmVhdGUodm0sIHN0cnVjdHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGlzcGxheU5hbWVzQ29uc3RydWN0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERpc3BsYXlOYW1lc0NvbnN0cnVjdG9y
LmNwcAppbmRleCAxYjk0N2JhY2RlN2MyNDk0ZDhkMDgzMjYzZGExNTU5MDk0YzFjNWFlLi5kMWYw
NjZmMGEwOTMzNzY5MTFkYjEwYjg4ZmFhOWY0NWYzNWI1NjhjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGlzcGxheU5hbWVzQ29uc3RydWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEaXNwbGF5TmFtZXNDb25zdHJ1
Y3Rvci5jcHAKQEAgLTg0LDkgKzg0LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0
cnVjdEludGxEaXNwbGF5TmFtZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU09iamVjdCogbmV3
VGFyZ2V0ID0gYXNPYmplY3QoY2FsbEZyYW1lLT5uZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUgPSBuZXdUYXJnZXQgPT0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpCi0gICAgICAg
ID8gZ2xvYmFsT2JqZWN0LT5kaXNwbGF5TmFtZXNTdHJ1Y3R1cmUoKQotICAgICAgICA6IEludGVy
bmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFy
Z2V0LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdUYXJnZXQpLT5kaXNwbGF5TmFtZXNTdHJ1Y3R1
cmUoKSk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNU
VVJFKHZtLCBkaXNwbGF5TmFtZXNTdHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2FsbEZyYW1lLT5qc0Nh
bGxlZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgSW50
bERpc3BsYXlOYW1lcyogZGlzcGxheU5hbWVzID0gSW50bERpc3BsYXlOYW1lczo6Y3JlYXRlKHZt
LCBzdHJ1Y3R1cmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bExpc3RGb3JtYXRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsTGlzdEZvcm1hdENvbnN0cnVjdG9yLmNwcAppbmRleCAyYjRhZDY1ZTE5Njk5ZGQ3
NDZlNTRmMTZjZGRkOGFkMTdlODI1NWQ2Li40N2U1ZWUyM2RiZjFlMGIwMzljM2NhZjA3ODBmMWI2
NDNkNWMxMmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
TGlzdEZvcm1hdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsTGlzdEZvcm1hdENvbnN0cnVjdG9yLmNwcApAQCAtODQsOSArODQsNyBAQCBKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SW50bExpc3RGb3JtYXQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LAogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKIAogICAgIEpTT2JqZWN0KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJhbWUtPm5l
d1RhcmdldCgpKTsKLSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG5ld1RhcmdldCA9PSBjYWxs
RnJhbWUtPmpzQ2FsbGVlKCkKLSAgICAgICAgPyBnbG9iYWxPYmplY3QtPmxpc3RGb3JtYXRTdHJ1
Y3R1cmUoKQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0
dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdUYXJn
ZXQpLT5saXN0Rm9ybWF0U3RydWN0dXJlKCkpOworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0g
SlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgbGlzdEZvcm1hdFN0cnVjdHVyZSwgbmV3VGFy
Z2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7CiAKICAgICBJbnRsTGlzdEZvcm1hdCogbGlzdEZvcm1hdCA9IEludGxMaXN0Rm9y
bWF0OjpjcmVhdGUodm0sIHN0cnVjdHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsTG9jYWxlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bExvY2FsZUNvbnN0cnVjdG9yLmNwcAppbmRleCAxOGM0Y2JhNzM5
YTc5NGFmNTMzNDE4Y2Q0NzhhYjU2NWM2OWRlOThiLi5lNjU3MWEyMTg0ODIxZTljYmQyMTU2NGRk
NGZmYWEyMzk1NGRmMDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsTG9jYWxlQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxMb2NhbGVDb25zdHJ1Y3Rvci5jcHAKQEAgLTcwLDkgKzcwLDcgQEAgSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEludGxMb2NhbGUsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWwKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAKICAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0gYXNPYmplY3QoY2FsbEZyYW1lLT5uZXdU
YXJnZXQoKSk7Ci0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBuZXdUYXJnZXQgPT0gY2FsbEZy
YW1lLT5qc0NhbGxlZSgpCi0gICAgICAgID8gZ2xvYmFsT2JqZWN0LT5sb2NhbGVTdHJ1Y3R1cmUo
KQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGds
b2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdUYXJnZXQpLT5s
b2NhbGVTdHJ1Y3R1cmUoKSk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBKU0NfR0VUX0RF
UklWRURfU1RSVUNUVVJFKHZtLCBsb2NhbGVTdHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2FsbEZyYW1l
LT5qc0NhbGxlZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAg
ICAgSW50bExvY2FsZSogbG9jYWxlID0gSW50bExvY2FsZTo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZv
cm1hdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxO
dW1iZXJGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggODk1YmI0N2FhNWI1OTBjMzEwYzUxNTdh
NGUwN2M0YTVmZThkYjFjOC4uMWM1YjI5M2FmY2RhZTJlYjYyZWJiYzI2NDQzNzlhZjU5MzIxMTBm
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZv
cm1hdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuY3BwCkBAIC04Nyw5ICs4Nyw3IEBAIEpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RJbnRsTnVtYmVyRm9ybWF0LCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjCiAgICAgLy8gMi4gTGV0IG51bWJlckZvcm1hdCBiZSBPcmRpbmFyeUNy
ZWF0ZUZyb21Db25zdHJ1Y3RvcihuZXdUYXJnZXQsICVOdW1iZXJGb3JtYXRQcm90b3R5cGUlKS4K
ICAgICAvLyAzLiBSZXR1cm5JZkFicnVwdChudW1iZXJGb3JtYXQpLgogICAgIEpTT2JqZWN0KiBu
ZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJhbWUtPm5ld1RhcmdldCgpKTsKLSAgICBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSA9IG5ld1RhcmdldCA9PSBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkKLSAgICAg
ICAgPyBnbG9iYWxPYmplY3QtPm51bWJlckZvcm1hdFN0cnVjdHVyZSgpCi0gICAgICAgIDogSW50
ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBuZXdU
YXJnZXQsIGdldEZ1bmN0aW9uUmVhbG0odm0sIG5ld1RhcmdldCktPm51bWJlckZvcm1hdFN0cnVj
dHVyZSgpKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJV
Q1RVUkUodm0sIG51bWJlckZvcm1hdFN0cnVjdHVyZSwgbmV3VGFyZ2V0LCBjYWxsRnJhbWUtPmpz
Q2FsbGVlKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICBJ
bnRsTnVtYmVyRm9ybWF0KiBudW1iZXJGb3JtYXQgPSBJbnRsTnVtYmVyRm9ybWF0OjpjcmVhdGUo
dm0sIHN0cnVjdHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsUGx1cmFsUnVsZXNDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsUGx1cmFsUnVsZXNDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYWYzOWE5NjYzYWYw
NzljNWQyNzhjMjdmNDQ2OGM1NjVkMWUzNjRlYS4uZjg4NTBiMTBhOGJmZTY1NzA0M2QyYTFlYWQw
NzExMDQxYjkyMDU5MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bFBsdXJhbFJ1bGVzQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxQbHVyYWxSdWxlc0NvbnN0cnVjdG9yLmNwcApAQCAtODcsOSArODcsNyBA
QCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SW50bFBsdXJhbFJ1bGVzLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdAogICAgIC8vIDEzLjIuMSBJbnRsLlBsdXJhbFJ1bGVz
IChbIGxvY2FsZXMgWyAsIG9wdGlvbnMgXSBdKQogICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIu
aW8vZWNtYTQwMi8jc2VjLWludGwucGx1cmFscnVsZXMKICAgICBKU09iamVjdCogbmV3VGFyZ2V0
ID0gYXNPYmplY3QoY2FsbEZyYW1lLT5uZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUgPSBuZXdUYXJnZXQgPT0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpCi0gICAgICAgID8gZ2xv
YmFsT2JqZWN0LT5wbHVyYWxSdWxlc1N0cnVjdHVyZSgpCi0gICAgICAgIDogSW50ZXJuYWxGdW5j
dGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQsIGdl
dEZ1bmN0aW9uUmVhbG0odm0sIG5ld1RhcmdldCktPnBsdXJhbFJ1bGVzU3RydWN0dXJlKCkpOwor
ICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwg
cGx1cmFsUnVsZXNTdHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2FsbEZyYW1lLT5qc0NhbGxlZSgpKTsK
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgSW50bFBsdXJhbFJ1
bGVzKiBwbHVyYWxSdWxlcyA9IEludGxQbHVyYWxSdWxlczo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJlbGF0aXZl
VGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxSZWxhdGl2ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZDEyMmRjZGEyOTBm
ZmYxNzczNmRkMDViOTI5YzM0NjNhZDY2YzhmYS4uMTc0YjZmZGNlMmM4NmJmYzExYjVlYjFlZjUz
NzIwOThlYTg5ODQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bFJlbGF0aXZlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsUmVsYXRpdmVUaW1lRm9ybWF0Q29uc3RydWN0b3IuY3BwCkBA
IC04NSw5ICs4NSw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RJbnRsUmVs
YXRpdmVUaW1lRm9ybWF0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNPYmplY3QqIG5ld1RhcmdldCA9IGFz
T2JqZWN0KGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkpOwotICAgIFN0cnVjdHVyZSogc3RydWN0dXJl
ID0gbmV3VGFyZ2V0ID09IGNhbGxGcmFtZS0+anNDYWxsZWUoKQotICAgICAgICA/IGdsb2JhbE9i
amVjdC0+cmVsYXRpdmVUaW1lRm9ybWF0U3RydWN0dXJlKCkKLSAgICAgICAgOiBJbnRlcm5hbEZ1
bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIG5ld1RhcmdldCwg
Z2V0RnVuY3Rpb25SZWFsbSh2bSwgbmV3VGFyZ2V0KS0+cmVsYXRpdmVUaW1lRm9ybWF0U3RydWN0
dXJlKCkpOworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVD
VFVSRSh2bSwgcmVsYXRpdmVUaW1lRm9ybWF0U3RydWN0dXJlLCBuZXdUYXJnZXQsIGNhbGxGcmFt
ZS0+anNDYWxsZWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAog
ICAgIEludGxSZWxhdGl2ZVRpbWVGb3JtYXQqIHJlbGF0aXZlVGltZUZvcm1hdCA9IEludGxSZWxh
dGl2ZVRpbWVGb3JtYXQ6OmNyZWF0ZSh2bSwgc3RydWN0dXJlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxTZWdtZW50ZXJDb25zdHJ1Y3Rvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsU2VnbWVudGVyQ29uc3RydWN0b3IuY3Bw
CmluZGV4IGViMWJiYjQ4ZjFhY2RjM2EyMWI3Y2U5YTg1ZTFjNTk3MjM5ZTBlYTkuLmZmZDczZjcz
NmE5NzQzMzc4ZGZkYjFhMzFkNGJmOTlmOThkZWFlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxTZWdtZW50ZXJDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFNlZ21lbnRlckNvbnN0cnVjdG9yLmNwcApA
QCAtODQsOSArODQsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SW50bFNl
Z21lbnRlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNPYmplY3QqIG5ld1RhcmdldCA9IGFz
T2JqZWN0KGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkpOwotICAgIFN0cnVjdHVyZSogc3RydWN0dXJl
ID0gbmV3VGFyZ2V0ID09IGNhbGxGcmFtZS0+anNDYWxsZWUoKQotICAgICAgICA/IGdsb2JhbE9i
amVjdC0+c2VnbWVudGVyU3RydWN0dXJlKCkKLSAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpj
cmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIG5ld1RhcmdldCwgZ2V0RnVuY3Rp
b25SZWFsbSh2bSwgbmV3VGFyZ2V0KS0+c2VnbWVudGVyU3RydWN0dXJlKCkpOworICAgIFN0cnVj
dHVyZSogc3RydWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgc2VnbWVudGVy
U3RydWN0dXJlLCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIEludGxTZWdtZW50ZXIqIHNlZ21lbnRl
ciA9IEludGxTZWdtZW50ZXI6OmNyZWF0ZSh2bSwgc3RydWN0dXJlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyQ29uc3RydWN0b3Iu
Y3BwCmluZGV4IDY3NWQ5N2JlYTA2NGMyMGQwMDA2N2Y3ZWU3ZjFhZDdlNWNlNDc4YzYuLjM5OTc0
NzQxZjYxMzFkODMxMTczNmQ5MGI0NmNhZTE5YjI5ODJhNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNw
cApAQCAtNzgsOSArNzgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0dlbmVyaWNBcnJheUJ1ZmZlckNv
bnN0cnVjdG9yPHNoYXJpbmdNb2RlPjo6Y29uc3RydWN0SW1wbChKU0dsbwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIEpTT2JqZWN0KiBuZXdUYXJnZXQg
PSBhc09iamVjdChjYWxsRnJhbWUtPm5ld1RhcmdldCgpKTsKLSAgICBTdHJ1Y3R1cmUqIGFycmF5
QnVmZmVyU3RydWN0dXJlID0gbmV3VGFyZ2V0ID09IGNhbGxGcmFtZS0+anNDYWxsZWUoKQotICAg
ICAgICA/IGdsb2JhbE9iamVjdC0+YXJyYXlCdWZmZXJTdHJ1Y3R1cmUoc2hhcmluZ01vZGUpCi0g
ICAgICAgIDogSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZ2xvYmFs
T2JqZWN0LCBuZXdUYXJnZXQsIGdldEZ1bmN0aW9uUmVhbG0odm0sIG5ld1RhcmdldCktPmFycmF5
QnVmZmVyU3RydWN0dXJlKHNoYXJpbmdNb2RlKSk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUg
PSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCBhcnJheUJ1ZmZlclN0cnVjdHVyZVdpdGhT
aGFyaW5nTW9kZTxzaGFyaW5nTW9kZT4sIG5ld1RhcmdldCwgY2FsbEZyYW1lLT5qc0NhbGxlZSgp
KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgdW5zaWduZWQg
bGVuZ3RoOwpAQCAtMTAyLDcgKzEwMCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTR2VuZXJpY0FycmF5
QnVmZmVyQ29uc3RydWN0b3I8c2hhcmluZ01vZGU+Ojpjb25zdHJ1Y3RJbXBsKEpTR2xvCiAgICAg
ICAgIGJ1ZmZlci0+bWFrZVNoYXJlZCgpOwogICAgIEFTU0VSVChzaGFyaW5nTW9kZSA9PSBidWZm
ZXItPnNoYXJpbmdNb2RlKCkpOwogCi0gICAgSlNBcnJheUJ1ZmZlciogcmVzdWx0ID0gSlNBcnJh
eUJ1ZmZlcjo6Y3JlYXRlKHZtLCBhcnJheUJ1ZmZlclN0cnVjdHVyZSwgV1RGTW92ZShidWZmZXIp
KTsKKyAgICBKU0FycmF5QnVmZmVyKiByZXN1bHQgPSBKU0FycmF5QnVmZmVyOjpjcmVhdGUodm0s
IHN0cnVjdHVyZSwgV1RGTW92ZShidWZmZXIpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHJlc3VsdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5s
aW5lcy5oCmluZGV4IDc4NjU1MmEyYjg2MDk3MmI2ZGZjNzc1MmNiMTA4MTVmMzc3MmFjZjQuLjk0
ZjZjYmFkOTZmMjlhMzdmN2Y4MTJiZTAzZmEzZTlmZTdkZGFjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0
b3JJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmlj
VHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaApAQCAtMTM0LDcgKzEzNCw5IEBAIGlu
bGluZSBKU0FycmF5QnVmZmVyKiBjb25zdHJ1Y3RDdXN0b21BcnJheUJ1ZmZlcklmTmVlZGVkKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAot
ICAgIGF1dG8gcmVzdWx0ID0gSlNBcnJheUJ1ZmZlcjo6Y3JlYXRlKHZtLCBnZXRGdW5jdGlvblJl
YWxtKHZtLCBhc09iamVjdChzcGVjaWVzLnZhbHVlKCkpKS0+YXJyYXlCdWZmZXJTdHJ1Y3R1cmUo
QXJyYXlCdWZmZXJTaGFyaW5nTW9kZTo6RGVmYXVsdCksIFdURk1vdmUoYnVmZmVyKSk7CisgICAg
SlNHbG9iYWxPYmplY3QqIGZ1bmN0aW9uR2xvYmFsT2JqZWN0ID0gZ2V0RnVuY3Rpb25SZWFsbShn
bG9iYWxPYmplY3QsIGFzT2JqZWN0KHNwZWNpZXMudmFsdWUoKSkpOworICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIG51bGxwdHIpOworICAgIGF1dG8gcmVzdWx0ID0gSlNBcnJheUJ1ZmZl
cjo6Y3JlYXRlKHZtLCBmdW5jdGlvbkdsb2JhbE9iamVjdC0+YXJyYXlCdWZmZXJTdHJ1Y3R1cmUo
QXJyYXlCdWZmZXJTaGFyaW5nTW9kZTo6RGVmYXVsdCksIFdURk1vdmUoYnVmZmVyKSk7CiAgICAg
aWYgKHByb3RvdHlwZS5pc09iamVjdCgpKQogICAgICAgICByZXN1bHQtPnNldFByb3RvdHlwZURp
cmVjdCh2bSwgcHJvdG90eXBlKTsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMjYwLDExICsyNjIs
OCBAQCBBTFdBWVNfSU5MSU5FIEVuY29kZWRKU1ZhbHVlIGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFy
cmF5Vmlld0ltcGwoSlNHbG9iYWxPYmplY3QqCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogCiAgICAgSlNPYmplY3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxG
cmFtZS0+bmV3VGFyZ2V0KCkpOwotICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gbmV3VGFyZ2V0
ID09IGNhbGxGcmFtZS0+anNDYWxsZWUoKQotICAgICAgICA/IGdsb2JhbE9iamVjdC0+dHlwZWRB
cnJheVN0cnVjdHVyZShWaWV3Q2xhc3M6OlR5cGVkQXJyYXlTdG9yYWdlVHlwZSkKLSAgICAgICAg
OiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3Qs
IG5ld1RhcmdldCwgZ2V0RnVuY3Rpb25SZWFsbSh2bSwgbmV3VGFyZ2V0KS0+dHlwZWRBcnJheVN0
cnVjdHVyZShWaWV3Q2xhc3M6OlR5cGVkQXJyYXlTdG9yYWdlVHlwZSkpOworICAgIFN0cnVjdHVy
ZSogc3RydWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgdHlwZWRBcnJheVN0
cnVjdHVyZVdpdGhUeXBlZEFycmF5VHlwZTxWaWV3Q2xhc3M6OlR5cGVkQXJyYXlTdG9yYWdlVHlw
ZT4sIG5ld1RhcmdldCwgY2FsbEZyYW1lLT5qc0NhbGxlZSgpKTsKICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB7IH0pOwotCiAgICAgc2l6ZV90IGFyZ0NvdW50ID0gY2FsbEZyYW1lLT5h
cmd1bWVudENvdW50KCk7CiAKICAgICBpZiAoIWFyZ0NvdW50KSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCAzZTliZDYyNDU5MzMxYjhh
NTE2MjYyMjMxNDk4YWRmMmUxMTM3MjU4Li5iMzYyOTI4YzJkOWYxZTFlYmM4MzU5MzA4MDUwOTNk
MDNmOWJhMDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmgKQEAgLTc4Niw2ICs3ODYsOCBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdCA6IHB1Ymxp
YyBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0IHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KKyAgICB0ZW1wbGF0ZTxFcnJvclR5
cGUgZXJyb3JUeXBlPiBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlV2l0aEVycm9yVHlwZSgpIGNv
bnN0IHsgcmV0dXJuIGVycm9yU3RydWN0dXJlKGVycm9yVHlwZSk7IH0KKwogICAgIFN0cnVjdHVy
ZSogY2FsbGVlU3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsZWVTdHJ1Y3R1cmUuZ2V0
KCk7IH0KICAgICBTdHJ1Y3R1cmUqIGhvc3RGdW5jdGlvblN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0
dXJuIG1faG9zdEZ1bmN0aW9uU3RydWN0dXJlLmdldCgpOyB9CiAKQEAgLTkxNSw2ICs5MTcsNyBA
QCBjbGFzcyBKU0dsb2JhbE9iamVjdCA6IHB1YmxpYyBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0
IHsKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgfQorICAgIHRlbXBsYXRlPEFycmF5QnVmZmVyU2hhcmluZ01vZGUgc2hh
cmluZ01vZGU+IFN0cnVjdHVyZSogYXJyYXlCdWZmZXJTdHJ1Y3R1cmVXaXRoU2hhcmluZ01vZGUo
KSBjb25zdCB7IHJldHVybiBhcnJheUJ1ZmZlclN0cnVjdHVyZShzaGFyaW5nTW9kZSk7IH0KICAg
ICBKU09iamVjdCogYXJyYXlCdWZmZXJDb25zdHJ1Y3RvcihBcnJheUJ1ZmZlclNoYXJpbmdNb2Rl
IHNoYXJpbmdNb2RlKSBjb25zdAogICAgIHsKICAgICAgICAgc3dpdGNoIChzaGFyaW5nTW9kZSkg
ewpAQCAtOTc4LDYgKzk4MSw3IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0IDogcHVibGljIEpTU2Vn
bWVudGVkVmFyaWFibGVPYmplY3QgewogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICByZXR1cm4gdHlwZWRBcnJheVN0cnVjdHVyZUNvbmN1cnJlbnRseSh0eXBlKSA9PSBzdHJ1Y3R1
cmU7CiAgICAgfQorICAgIHRlbXBsYXRlPFR5cGVkQXJyYXlUeXBlIHR5cGU+IFN0cnVjdHVyZSog
dHlwZWRBcnJheVN0cnVjdHVyZVdpdGhUeXBlZEFycmF5VHlwZSgpIGNvbnN0IHsgcmV0dXJuIHR5
cGVkQXJyYXlTdHJ1Y3R1cmUodHlwZSk7IH0KIAogICAgIEpTT2JqZWN0KiB0eXBlZEFycmF5Q29u
c3RydWN0b3IoVHlwZWRBcnJheVR5cGUgdHlwZSkgY29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdElubGluZXMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0SW5saW5lcy5oCmluZGV4
IDVmMWYyNTI0OTNmNDA2NmUwMmIxYmEwYzNmNmFiYWU1YzM5ZTQ1MjEuLmZmMDVlNzQ4MmZmNmRl
OWIwYWVmYWRkMTBjY2NiM2IzYzJjMTVlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0SW5saW5lcy5oCkBAIC0xMDEsOSArMTAxLDEz
IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBKU0dsb2JhbE9iamVjdDo6aXNTZXRQcm90b3R5cGVBZGRG
YXN0QW5kTm9uT2JzZXJ2YWJsZSgpCiAKIEFMV0FZU19JTkxJTkUgU3RydWN0dXJlKiBKU0dsb2Jh
bE9iamVjdDo6YXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEluZGV4aW5nVHlwZSBpbmRleGluZ1R5cGUsIEpT
VmFsdWUgbmV3VGFyZ2V0KSBjb25zdAogewotICAgIHJldHVybiAhbmV3VGFyZ2V0IHx8IG5ld1Rh
cmdldCA9PSBnbG9iYWxPYmplY3QtPmFycmF5Q29uc3RydWN0b3IoKQotICAgICAgICA/IGdsb2Jh
bE9iamVjdC0+YXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKGlu
ZGV4aW5nVHlwZSkKLSAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0
cnVjdHVyZShnbG9iYWxPYmplY3QsIGFzT2JqZWN0KG5ld1RhcmdldCksIGdldEZ1bmN0aW9uUmVh
bG0oZ2xvYmFsT2JqZWN0LT52bSgpLCBhc09iamVjdChuZXdUYXJnZXQpKS0+YXJyYXlTdHJ1Y3R1
cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKGluZGV4aW5nVHlwZSkpOworICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CisgICAgaWYgKCFuZXdUYXJnZXQgfHwgbmV3VGFyZ2V0ID09IGdsb2JhbE9i
amVjdC0+YXJyYXlDb25zdHJ1Y3RvcigpKQorICAgICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5h
cnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oaW5kZXhpbmdUeXBl
KTsKKyAgICBhdXRvKiBmdW5jdGlvbkdsb2JhbE9iamVjdCA9IGdldEZ1bmN0aW9uUmVhbG0oZ2xv
YmFsT2JqZWN0LCBhc09iamVjdChuZXdUYXJnZXQpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBudWxscHRyKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEludGVybmFs
RnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgYXNPYmplY3Qo
bmV3VGFyZ2V0KSwgZnVuY3Rpb25HbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhp
bmdUeXBlRHVyaW5nQWxsb2NhdGlvbihpbmRleGluZ1R5cGUpKSk7CiB9CiAKIGlubGluZSBKU0Z1
bmN0aW9uKiBKU0dsb2JhbE9iamVjdDo6dGhyb3dUeXBlRXJyb3JGdW5jdGlvbigpIGNvbnN0IHsg
cmV0dXJuIGpzQ2FzdDxKU0Z1bmN0aW9uKj4obGlua1RpbWVDb25zdGFudChMaW5rVGltZUNvbnN0
YW50Ojp0aHJvd1R5cGVFcnJvckZ1bmN0aW9uKSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmNwcAppbmRleCAyYzM3MzI1ODBjYmVjZTEzNWIy
Y2U1MGM5MzJkZWJhMTgwYmNmMmYzLi43NTU3MTAwOWY4YTFlYmFjZDQ4OTljZWUwMzBmODExN2Qz
ZWI3ZjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25z
dHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwQ29uc3Ry
dWN0b3IuY3BwCkBAIC02Myw5ICs2Myw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25z
dHJ1Y3RNYXAsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqCiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNPYmplY3QqIG5l
d1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkpOwotICAgIFN0cnVjdHVy
ZSogbWFwU3RydWN0dXJlID0gbmV3VGFyZ2V0ID09IGNhbGxGcmFtZS0+anNDYWxsZWUoKQotICAg
ICAgICA/IGdsb2JhbE9iamVjdC0+bWFwU3RydWN0dXJlKCkKLSAgICAgICAgOiBJbnRlcm5hbEZ1
bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIG5ld1RhcmdldCwg
Z2V0RnVuY3Rpb25SZWFsbSh2bSwgbmV3VGFyZ2V0KS0+bWFwU3RydWN0dXJlKCkpOworICAgIFN0
cnVjdHVyZSogbWFwU3RydWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgbWFw
U3RydWN0dXJlLCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIEpTVmFsdWUgaXRlcmFibGUgPSBjYWxs
RnJhbWUtPmFyZ3VtZW50KDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCBiNmU3ZWRlZmQ0MmVkYzYz
NWQ5MGI3ZTBlOGM3YjRmYzBjMjQzZDFkLi5mNTdhYTU1MGYzNzhiYTEwNzg5MDg0NzRlMTQ4NDZk
N2JkM2EzNWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRp
dmVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtNTIsMTIgKzUyLDggQEAgaW5saW5lIEVu
Y29kZWRKU1ZhbHVlIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBlPjo6Y29uc3RydWN0
SW1wbChKU0dsb2JhbE8KICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50
KDApOwogCiAgICAgSlNPYmplY3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+bmV3
VGFyZ2V0KCkpOwotICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBuZXdUYXJnZXQgPT0g
Y2FsbEZyYW1lLT5qc0NhbGxlZSgpCi0gICAgICAgID8gZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVj
dHVyZShlcnJvclR5cGUpCi0gICAgICAgIDogSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xh
c3NTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQsIGdldEZ1bmN0aW9uUmVhbG0odm0s
IG5ld1RhcmdldCktPmVycm9yU3RydWN0dXJlKGVycm9yVHlwZSkpOworICAgIFN0cnVjdHVyZSog
ZXJyb3JTdHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCBlcnJvclN0cnVj
dHVyZVdpdGhFcnJvclR5cGU8ZXJyb3JUeXBlPiwgbmV3VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2Fs
bGVlKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgQVNTRVJU
KGVycm9yU3RydWN0dXJlKTsKLQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0
dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZXJyb3JUeXBlLCBmYWxzZSkpKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3Ry
dWN0b3IuY3BwCmluZGV4IDhmZjQ1MzQ5NTVhMGE4MTc5ZGI1MmMwMjMwODQ0Nzg4YmYzOGQ4NmIu
LjYyM2ExNmI1MjM1ZGY4MzlmYjllNWRlZWVmYjY1Mjg1YWNhNjI3ZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKQEAgLTEw
MSw5ICsxMDEsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0TnVtYmVyQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAgIH0KIAogICAgIEpTT2Jq
ZWN0KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJhbWUtPm5ld1RhcmdldCgpKTsKLSAgICBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG5ld1RhcmdldCA9PSBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkK
LSAgICAgICAgPyBnbG9iYWxPYmplY3QtPm51bWJlck9iamVjdFN0cnVjdHVyZSgpCi0gICAgICAg
IDogSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0
LCBuZXdUYXJnZXQsIGdldEZ1bmN0aW9uUmVhbG0odm0sIG5ld1RhcmdldCktPm51bWJlck9iamVj
dFN0cnVjdHVyZSgpKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZF
RF9TVFJVQ1RVUkUodm0sIG51bWJlck9iamVjdFN0cnVjdHVyZSwgbmV3VGFyZ2V0LCBjYWxsRnJh
bWUtPmpzQ2FsbGVlKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAK
ICAgICBOdW1iZXJPYmplY3QqIG9iamVjdCA9IE51bWJlck9iamVjdDo6Y3JlYXRlKHZtLCBzdHJ1
Y3R1cmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuY3BwCmluZGV4IDgxODA0OTFjNTMxNTY5M2Y0OTUzMDM1ZWE5ZGI2Nzk4ZDkxMDAz
M2IuLjgwZmFlMDBmYjBiYWNlNzIyNjI2YzIzZDg0NGIxNTc2NmQ1MDE4YTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAg
LTExNCw3ICsxMTQsOSBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBKU09iamVjdCogY29uc3RydWN0
T2JqZWN0V2l0aE5ld1RhcmdldChKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIC8vIDEuIElmIE5l
d1RhcmdldCBpcyBuZWl0aGVyIHVuZGVmaW5lZCBub3IgdGhlIGFjdGl2ZSBmdW5jdGlvbiwgdGhl
bgogICAgIGlmIChuZXdUYXJnZXQgJiYgbmV3VGFyZ2V0ICE9IG9iamVjdENvbnN0cnVjdG9yKSB7
CiAgICAgICAgIC8vIGEuIFJldHVybiA/IE9yZGluYXJ5Q3JlYXRlRnJvbUNvbnN0cnVjdG9yKE5l
d1RhcmdldCwgIiVPYmplY3RQcm90b3R5cGUlIikuCi0gICAgICAgIFN0cnVjdHVyZSogYmFzZVN0
cnVjdHVyZSA9IGdldEZ1bmN0aW9uUmVhbG0odm0sIGFzT2JqZWN0KG5ld1RhcmdldCkpLT5vYmpl
Y3RTdHJ1Y3R1cmVGb3JPYmplY3RDb25zdHJ1Y3RvcigpOworICAgICAgICBKU0dsb2JhbE9iamVj
dCogZnVuY3Rpb25HbG9iYWxPYmplY3QgPSBnZXRGdW5jdGlvblJlYWxtKGdsb2JhbE9iamVjdCwg
YXNPYmplY3QobmV3VGFyZ2V0KSk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IG51bGxwdHIpOworICAgICAgICBTdHJ1Y3R1cmUqIGJhc2VTdHJ1Y3R1cmUgPSBmdW5jdGlvbkds
b2JhbE9iamVjdC0+b2JqZWN0U3RydWN0dXJlRm9yT2JqZWN0Q29uc3RydWN0b3IoKTsKICAgICAg
ICAgU3RydWN0dXJlKiBvYmplY3RTdHJ1Y3R1cmUgPSBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVT
dWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIGFzT2JqZWN0KG5ld1RhcmdldCksIGJhc2VT
dHJ1Y3R1cmUpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsK
ICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEVtcHR5T2JqZWN0KHZtLCBvYmplY3RTdHJ1Y3R1cmUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlDb25zdHJ1
Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVjdG9y
LmNwcAppbmRleCBkY2NmY2RjOGFmYjM2OGUzMDM1NGFhNmVlNjkwZTgwOTBhMzZkMzNiLi4zODdi
ZTI0ODI2MGM1YjdiZGNjODk2YTc4Mzc2NDEzYTdlMjU5MWQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmNwcApAQCAtNDAsNyArNDAs
NyBAQCBjb25zdCBDbGFzc0luZm8gUHJveHlDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiUHJveHki
LCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudQogUHJveHlDb25zdHJ1Y3RvciogUHJveHlDb25z
dHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiB7CiAgICAgUHJv
eHlDb25zdHJ1Y3RvciogY29uc3RydWN0b3IgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxQ
cm94eUNvbnN0cnVjdG9yPih2bS5oZWFwKSkgUHJveHlDb25zdHJ1Y3Rvcih2bSwgc3RydWN0dXJl
KTsKLSAgICBjb25zdHJ1Y3Rvci0+ZmluaXNoQ3JlYXRpb24odm0sICJQcm94eSIsIHN0cnVjdHVy
ZS0+Z2xvYmFsT2JqZWN0KCkpOworICAgIGNvbnN0cnVjdG9yLT5maW5pc2hDcmVhdGlvbih2bSwg
c3RydWN0dXJlLT5nbG9iYWxPYmplY3QoKSk7CiAgICAgcmV0dXJuIGNvbnN0cnVjdG9yOwogfQog
CkBAIC03NCwxMCArNzQsMTAgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1ha2VSZXZvY2Fi
bGVQcm94eSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGwKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLXZvaWQgUHJveHlDb25zdHJ1Y3Rvcjo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBjb25zdCBjaGFyKiBuYW1lLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQordm9pZCBQcm94eUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRp
b24odm0sIDIsIG5hbWUsIFByb3BlcnR5QWRkaXRpb25Nb2RlOjpXaXRoU3RydWN0dXJlVHJhbnNp
dGlvbik7Ci0gICAgcHV0RGlyZWN0KHZtLCBtYWtlSWRlbnRpZmllcih2bSwgInJldm9jYWJsZSIp
LCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgMiwgInJldm9jYWJsZSJfcywg
bWFrZVJldm9jYWJsZVByb3h5KSk7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIDIsICJQ
cm94eSIsIFByb3BlcnR5QWRkaXRpb25Nb2RlOjpXaXRob3V0U3RydWN0dXJlVHJhbnNpdGlvbik7
CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInJldm9jYWJsZSIs
IG1ha2VSZXZvY2FibGVQcm94eSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSksIDIpOwogfQogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0UHJveHlPYmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Q
cm94eUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eUNv
bnN0cnVjdG9yLmgKaW5kZXggNWM5M2E2NjMwODU4MzU3MGY1NDIxYmNlYzNlMDc0OTBlY2I4NjRl
OC4uYjQzZmQxYzMwYjA2MzdjZGI5ODFiMzAyZmNiN2Y2MTM4MWVmMTE0NCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlDb25zdHJ1Y3Rvci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuaApAQCAtNDMsNyAr
NDMsNyBAQCBjbGFzcyBQcm94eUNvbnN0cnVjdG9yIGZpbmFsIDogcHVibGljIEludGVybmFsRnVu
Y3Rpb24gewogICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBpbmZvKCkpOyAKICAgICB9CiAKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgY29u
c3QgY2hhciogbmFtZSwgSlNHbG9iYWxPYmplY3QqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9u
KFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKIAogcHJpdmF0ZToKICAgICBQcm94eUNvbnN0cnVjdG9y
KFZNJiwgU3RydWN0dXJlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNGEzMDhiZDlkYWU0NWJjODY2NGM5Y2ZlODRh
YTlkNjc5NWRmMTllMS4uMjdhYjQwNTUwNDk0Mjc0YjcyZDFkMTZjODkzOGMxYmQzOTRkNmE0NCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVj
dG9yLmNwcApAQCAtMjEyLDkgKzIxMiwxMCBAQCBKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0
UmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogCiBp
bmxpbmUgU3RydWN0dXJlKiBnZXRSZWdFeHBTdHJ1Y3R1cmUoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBuZXdUYXJnZXQpCiB7Ci0gICAgcmV0dXJuICFuZXdUYXJnZXQgfHwg
bmV3VGFyZ2V0ID09IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3IoKQotICAgICAgICA/
IGdsb2JhbE9iamVjdC0+cmVnRXhwU3RydWN0dXJlKCkKLSAgICAgICAgOiBJbnRlcm5hbEZ1bmN0
aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIGFzT2JqZWN0KG5ld1Rh
cmdldCksIGdldEZ1bmN0aW9uUmVhbG0oZ2xvYmFsT2JqZWN0LT52bSgpLCBhc09iamVjdChuZXdU
YXJnZXQpKS0+cmVnRXhwU3RydWN0dXJlKCkpOworICAgIGlmICghbmV3VGFyZ2V0KQorICAgICAg
ICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5yZWdFeHBTdHJ1Y3R1cmUoKTsKKyAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CisgICAgcmV0dXJuIEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RVUkUo
dm0sIHJlZ0V4cFN0cnVjdHVyZSwgYXNPYmplY3QobmV3VGFyZ2V0KSwgZ2xvYmFsT2JqZWN0LT5y
ZWdFeHBDb25zdHJ1Y3RvcigpKTsKIH0KIAogaW5saW5lIE9wdGlvblNldDxZYXJyOjpGbGFncz4g
dG9GbGFncyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGZsYWdzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwCmluZGV4
IDlmZGE4OWM2ZDc2ZDZkZjZjZWYyZWRkYjMyOTBmY2Q4N2IxZTkyZTQuLjgxZWJhZDlhNzIyNTE2
YzljMGU4OTAxZGI2N2I3MWMxYjJmYTVlNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1NldENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5jcHAKQEAgLTYzLDkgKzYzLDcgQEAgSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFNldCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSoKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAKICAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0gYXNPYmplY3QoY2FsbEZyYW1lLT5uZXdUYXJn
ZXQoKSk7Ci0gICAgU3RydWN0dXJlKiBzZXRTdHJ1Y3R1cmUgPSBuZXdUYXJnZXQgPT0gY2FsbEZy
YW1lLT5qc0NhbGxlZSgpCi0gICAgICAgID8gZ2xvYmFsT2JqZWN0LT5zZXRTdHJ1Y3R1cmUoKQot
ICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2Jh
bE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdUYXJnZXQpLT5zZXRT
dHJ1Y3R1cmUoKSk7CisgICAgU3RydWN0dXJlKiBzZXRTdHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklW
RURfU1RSVUNUVVJFKHZtLCBzZXRTdHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2FsbEZyYW1lLT5qc0Nh
bGxlZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgSlNW
YWx1ZSBpdGVyYWJsZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZjJiYTVj
NDExYmE2MmUwNjBiZWE1ZGVjYzVlOGQ1NTkxZjVhMmNmMy4uOTJkYzk0NjlkMmE4NGM1NDkyMjBl
MjFmNWYxNmY3N2EwMDU1ZmQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcApAQCAtMTQwLDkgKzE0MCw3IEBAIEpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXaXRoU3RyaW5nQ29uc3RydWN0b3IsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogCiAgICAgSlNPYmplY3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+bmV3VGFy
Z2V0KCkpOwotICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gbmV3VGFyZ2V0ID09IGNhbGxGcmFt
ZS0+anNDYWxsZWUoKQotICAgICAgICA/IGdsb2JhbE9iamVjdC0+c3RyaW5nT2JqZWN0U3RydWN0
dXJlKCkKLSAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVy
ZShnbG9iYWxPYmplY3QsIG5ld1RhcmdldCwgZ2V0RnVuY3Rpb25SZWFsbSh2bSwgbmV3VGFyZ2V0
KS0+c3RyaW5nT2JqZWN0U3RydWN0dXJlKCkpOworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0g
SlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgc3RyaW5nT2JqZWN0U3RydWN0dXJlLCBuZXdU
YXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgeyB9KTsKIAogICAgIGlmICghY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3Iu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmNw
cAppbmRleCA5YThjNmZlM2VkYzRiNmE1MTdjNjA4ZTg3ZDY4NWI3NTA4YzhlNDQ2Li40ZmM4NGU1
MTljNDQxYzE2OTRiY2ZlNDQ3YzFlZTMwZWViNjJkNDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5jcHAKQEAgLTYyLDkgKzYy
LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdlYWtNYXAsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnIKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CiAKICAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0gYXNPYmplY3QoY2Fs
bEZyYW1lLT5uZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0dXJlKiB3ZWFrTWFwU3RydWN0dXJlID0g
bmV3VGFyZ2V0ID09IGNhbGxGcmFtZS0+anNDYWxsZWUoKQotICAgICAgICA/IGdsb2JhbE9iamVj
dC0+d2Vha01hcFN0cnVjdHVyZSgpCi0gICAgICAgIDogSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRl
U3ViY2xhc3NTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQsIGdldEZ1bmN0aW9uUmVh
bG0odm0sIG5ld1RhcmdldCktPndlYWtNYXBTdHJ1Y3R1cmUoKSk7CisgICAgU3RydWN0dXJlKiB3
ZWFrTWFwU3RydWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgd2Vha01hcFN0
cnVjdHVyZSwgbmV3VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICBKU1dlYWtNYXAqIHdlYWtNYXAgPSBKU1dl
YWtNYXA6OmNyZWF0ZSh2bSwgd2Vha01hcFN0cnVjdHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrT2JqZWN0UmVmQ29uc3RydWN0b3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha09iamVjdFJlZkNvbnN0cnVjdG9yLmNwcApp
bmRleCA1NjRkMDkzNDIwNjA4ODhiZDFkZDE3ZWEwNjA1MDk3MDU3NGM1MWU3Li5mYmZhZjM1Yzc4
YmY2ZTk2ODcxY2MwZDc0MTAxZmNmYmIwN2RlOTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9XZWFrT2JqZWN0UmVmQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtPYmplY3RSZWZDb25zdHJ1Y3Rvci5jcHAKQEAg
LTY0LDkgKzY0LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdlYWtSZWYs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnIKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkZpcnN0IGFyZ3VtZW50IHRvIFdl
YWtSZWYgc2hvdWxkIGJlIGFuIG9iamVjdCJfcyk7CiAKICAgICBKU09iamVjdCogbmV3VGFyZ2V0
ID0gYXNPYmplY3QoY2FsbEZyYW1lLT5uZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0dXJlKiB3ZWFr
T2JqZWN0UmVmU3RydWN0dXJlID0gbmV3VGFyZ2V0ID09IGNhbGxGcmFtZS0+anNDYWxsZWUoKQot
ICAgICAgICA/IGdsb2JhbE9iamVjdC0+d2Vha09iamVjdFJlZlN0cnVjdHVyZSgpCi0gICAgICAg
IDogSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0
LCBuZXdUYXJnZXQsIGdldEZ1bmN0aW9uUmVhbG0odm0sIG5ld1RhcmdldCktPndlYWtPYmplY3RS
ZWZTdHJ1Y3R1cmUoKSk7CisgICAgU3RydWN0dXJlKiB3ZWFrT2JqZWN0UmVmU3RydWN0dXJlID0g
SlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgd2Vha09iamVjdFJlZlN0cnVjdHVyZSwgbmV3
VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHsgfSk7CiAKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVu
Y29kZShKU1dlYWtPYmplY3RSZWY6OmNyZWF0ZSh2bSwgd2Vha09iamVjdFJlZlN0cnVjdHVyZSwg
Y2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKS5nZXRPYmplY3QoKSkpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0Q29uc3RydWN0b3IuY3BwCmlu
ZGV4IDM5MjljYzkyYTIwMjg4MTRiY2YwOWI0YTlkMTRlMjJhMmZkMDczZjQuLjYyNGViMGMyYTA1
OGVlN2Q4YzhlMTBjNGFlY2YwYjExMDc1MmI3ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmNwcApAQCAtNjIsOSArNjIsNyBA
QCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0V2Vha1NldCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcgogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKIAogICAgIEpTT2JqZWN0KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJh
bWUtPm5ld1RhcmdldCgpKTsKLSAgICBTdHJ1Y3R1cmUqIHdlYWtTZXRTdHJ1Y3R1cmUgPSBuZXdU
YXJnZXQgPT0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpCi0gICAgICAgID8gZ2xvYmFsT2JqZWN0LT53
ZWFrU2V0U3RydWN0dXJlKCkKLSAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJj
bGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIG5ld1RhcmdldCwgZ2V0RnVuY3Rpb25SZWFsbSh2
bSwgbmV3VGFyZ2V0KS0+d2Vha1NldFN0cnVjdHVyZSgpKTsKKyAgICBTdHJ1Y3R1cmUqIHdlYWtT
ZXRTdHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCB3ZWFrU2V0U3RydWN0
dXJlLCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIEpTV2Vha1NldCogd2Vha1NldCA9IEpTV2Vha1Nl
dDo6Y3JlYXRlKHZtLCB3ZWFrU2V0U3RydWN0dXJlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JD
b25zdHJ1Y3Rvci5jcHAKaW5kZXggYzNhMGQzOTdmNTA0ZTI1OGYxZDcwZjhiNDgyYjc5YTFkOWU3
MjY2Yy4uNTYxODFlNDIyODMxODdhODNlNzZmNGQ4OTA4NjQxM2IwMDlkMzhmYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTUzLDkgKzUzLDcgQEAgSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IsIChK
U0dsb2JhbE9iamVjdCogZ2wKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3Vt
ZW50KDApOwogCiAgICAgSlNPYmplY3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+
bmV3VGFyZ2V0KCkpOwotICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gbmV3VGFyZ2V0ID09IGNh
bGxGcmFtZS0+anNDYWxsZWUoKQotICAgICAgICA/IGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlD
b21waWxlRXJyb3JTdHJ1Y3R1cmUoKQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0
ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRGdW5jdGlvblJl
YWxtKHZtLCBuZXdUYXJnZXQpLT53ZWJBc3NlbWJseUNvbXBpbGVFcnJvclN0cnVjdHVyZSgpKTsK
KyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RVUkUodm0s
IHdlYkFzc2VtYmx5Q29tcGlsZUVycm9yU3RydWN0dXJlLCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+
anNDYWxsZWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKEpTV2ViQXNzZW1ibHlD
b21waWxlRXJyb3I6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBzdHJ1Y3R1cmUsIG1lc3NhZ2Up
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eUdsb2JhbENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwCmluZGV4IDkxYmJhNzY1Y2NmNTMxMGZiMGZh
OWEyMDA4YTMyOTQzOWZlMDgyNzMuLmQwYTgwZTkxNzRlN2E0M2IzMmU2NDhkNDAxYTVmNmNjODkx
YWI1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5R2xvYmFsQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwCkBAIC01NSw5ICs1NSw3IEBAIEpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5R2xvYmFsLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CiAKICAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0gYXNPYmplY3QoY2FsbEZy
YW1lLT5uZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0dXJlKiB3ZWJBc3NlbWJseUdsb2JhbFN0cnVj
dHVyZSA9IG5ld1RhcmdldCA9PSBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkKLSAgICAgICAgPyBnbG9i
YWxPYmplY3QtPndlYkFzc2VtYmx5R2xvYmFsU3RydWN0dXJlKCkKLSAgICAgICAgOiBJbnRlcm5h
bEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIG5ld1Rhcmdl
dCwgZ2V0RnVuY3Rpb25SZWFsbSh2bSwgbmV3VGFyZ2V0KS0+d2ViQXNzZW1ibHlHbG9iYWxTdHJ1
Y3R1cmUoKSk7CisgICAgU3RydWN0dXJlKiB3ZWJBc3NlbWJseUdsb2JhbFN0cnVjdHVyZSA9IEpT
Q19HRVRfREVSSVZFRF9TVFJVQ1RVUkUodm0sIHdlYkFzc2VtYmx5R2xvYmFsU3RydWN0dXJlLCBu
ZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
Tih0aHJvd1Njb3BlLCB7IH0pOwogCiAgICAgSlNPYmplY3QqIGdsb2JhbERlc2NyaXB0b3I7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3Rh
bmNlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmNwcAppbmRleCBmNGFlN2EzMjYxYTBkOTRkMmEyOWFm
NDQ5MWRhMmQyMTVmYmNhZTAxLi41M2U4ZGRkNTUxMTY1M2JlOGE3MmFkOGRmMjc4YzdhZDNmMDUx
YTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eUluc3RhbmNlQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHAKQEAgLTY2LDkgKzY2LDcgQEAg
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlJbnN0YW5jZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0
aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVUeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCAic2Vjb25kIGFyZ3VtZW50IHRvIFdlYkFzc2VtYmx5Lkluc3RhbmNlIG11c3QgYmUg
dW5kZWZpbmVkIG9yIGFuIE9iamVjdCJfcywgZGVmYXVsdFNvdXJjZUFwcGVuZGVyLCBydW50aW1l
VHlwZUZvclZhbHVlKHZtLCBpbXBvcnRBcmd1bWVudCkpKSk7CiAKICAgICBKU09iamVjdCogbmV3
VGFyZ2V0ID0gYXNPYmplY3QoY2FsbEZyYW1lLT5uZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0dXJl
KiBpbnN0YW5jZVN0cnVjdHVyZSA9IG5ld1RhcmdldCA9PSBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkK
LSAgICAgICAgPyBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5SW5zdGFuY2VTdHJ1Y3R1cmUoKQot
ICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2Jh
bE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdUYXJnZXQpLT53ZWJB
c3NlbWJseUluc3RhbmNlU3RydWN0dXJlKCkpOworICAgIFN0cnVjdHVyZSogaW5zdGFuY2VTdHJ1
Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCB3ZWJBc3NlbWJseUluc3RhbmNl
U3RydWN0dXJlLCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSog
aW5zdGFuY2UgPSBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OnRyeUNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OmNyZWF0ZVByaXZhdGVNb2R1bGVLZXkoKSwgbW9k
dWxlLCBpbXBvcnRPYmplY3QsIGluc3RhbmNlU3RydWN0dXJlLCBSZWY8V2FzbTo6TW9kdWxlPiht
b2R1bGUtPm1vZHVsZSgpKSwgV2FzbTo6Q3JlYXRpb25Nb2RlOjpGcm9tSlMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25z
dHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxp
bmtFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCAyYzVmNmEyOTMxZjE1MjE1ODVhYWE5MzVlNTZi
NGJkMmYxOWMxNmIxLi4xYzYwYzhjNWMxOTQ3NTE4MWRkMzBjYTYwZWYzZGRjNjVkM2NkNTBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtF
cnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtNTMsOSArNTMsNyBAQCBKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNXZWJBc3NlbWJseUxpbmtFcnJvciwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGNhbGxGcmFtZS0+YXJn
dW1lbnQoMCk7CiAKICAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0gYXNPYmplY3QoY2FsbEZyYW1l
LT5uZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBuZXdUYXJnZXQgPT0g
Y2FsbEZyYW1lLT5qc0NhbGxlZSgpCi0gICAgICAgID8gZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJs
eUxpbmtFcnJvclN0cnVjdHVyZSgpCi0gICAgICAgIDogSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRl
U3ViY2xhc3NTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQsIGdldEZ1bmN0aW9uUmVh
bG0odm0sIG5ld1RhcmdldCktPndlYkFzc2VtYmx5TGlua0Vycm9yU3RydWN0dXJlKCkpOworICAg
IFN0cnVjdHVyZSogc3RydWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgd2Vi
QXNzZW1ibHlMaW5rRXJyb3JTdHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2FsbEZyYW1lLT5qc0NhbGxl
ZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoSlNXZWJBc3NlbWJseUxpbmtFcnJv
cjo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIHN0cnVjdHVyZSwgbWVzc2FnZSkpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlN
ZW1vcnlDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZmQ5YjA2MzJjMTEyMjYyMDBhYmZkNjhlNDVmZGFl
MmQ5NmJkOWFjOC4uNzIxMmViNTMxMjQ5ZDFlMzdkNmRkODYwZTFiY2E1Yjg2MzVjODM0MCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHAKQEAgLTU4LDkgKzU4LDcgQEAgSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlNZW1vcnksIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2IKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKIAogICAgIEpTT2JqZWN0KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJhbWUtPm5ld1Rh
cmdldCgpKTsKLSAgICBTdHJ1Y3R1cmUqIHdlYkFzc2VtYmx5TWVtb3J5U3RydWN0dXJlID0gbmV3
VGFyZ2V0ID09IGNhbGxGcmFtZS0+anNDYWxsZWUoKQotICAgICAgICA/IGdsb2JhbE9iamVjdC0+
d2ViQXNzZW1ibHlNZW1vcnlTdHJ1Y3R1cmUoKQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb246
OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRGdW5j
dGlvblJlYWxtKHZtLCBuZXdUYXJnZXQpLT53ZWJBc3NlbWJseU1lbW9yeVN0cnVjdHVyZSgpKTsK
KyAgICBTdHJ1Y3R1cmUqIHdlYkFzc2VtYmx5TWVtb3J5U3RydWN0dXJlID0gSlNDX0dFVF9ERVJJ
VkVEX1NUUlVDVFVSRSh2bSwgd2ViQXNzZW1ibHlNZW1vcnlTdHJ1Y3R1cmUsIG5ld1RhcmdldCwg
Y2FsbEZyYW1lLT5qc0NhbGxlZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2Nv
cGUsIHsgfSk7CiAKICAgICBKU09iamVjdCogbWVtb3J5RGVzY3JpcHRvcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVD
b25zdHJ1Y3Rvci5jcHAKaW5kZXggNDgyYjYyNDkxMWRjZjBmZGFhMTU1MjRiNzlkNjhmYzBmOGFk
YmRjYi4uZWY2ZDI1MDFhNzlkNjNlZWZjNDFhNmQ2NTdhN2M1MDQzYTU1YzdiNSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1
Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlN
b2R1bGVDb25zdHJ1Y3Rvci5jcHAKQEAgLTE4MCw5ICsxODAsNyBAQCBKU1dlYkFzc2VtYmx5TW9k
dWxlKiBXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yOjpjcmVhdGVNb2R1bGUoSlNHbG9iYWxP
YmplY3QqCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAg
SlNPYmplY3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkpOwot
ICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gbmV3VGFyZ2V0ID09IGNhbGxGcmFtZS0+anNDYWxs
ZWUoKQotICAgICAgICA/IGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlNb2R1bGVTdHJ1Y3R1cmUo
KQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGds
b2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdUYXJnZXQpLT53
ZWJBc3NlbWJseU1vZHVsZVN0cnVjdHVyZSgpKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9
IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RVUkUodm0sIHdlYkFzc2VtYmx5TW9kdWxlU3RydWN0dXJl
LCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgbnVsbHB0cik7CiAKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpT
V2ViQXNzZW1ibHlNb2R1bGU6OmNyZWF0ZVN0dWIodm0sIGdsb2JhbE9iamVjdCwgc3RydWN0dXJl
LCBXYXNtOjpNb2R1bGU6OnZhbGlkYXRlU3luYygmdm0ud2FzbUNvbnRleHQsIFdURk1vdmUoYnVm
ZmVyKSkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYTg1
NjY5YzUxOGIxZTlhYTY4Yzk1YWQwNTY2ZWJmZDZmYzNkZmE4YS4uMDY2ZjI2YzljOWE3Njc5YzMx
YTMxMWQ0YjhkZGM1OTEyZWQ0NTczZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1
Y3Rvci5jcHAKQEAgLTU1LDkgKzU1LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0
cnVjdEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2wKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAogICAgIEpTT2Jq
ZWN0KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJhbWUtPm5ld1RhcmdldCgpKTsKLSAgICBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG5ld1RhcmdldCA9PSBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkK
LSAgICAgICAgPyBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5UnVudGltZUVycm9yU3RydWN0dXJl
KCkKLSAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShn
bG9iYWxPYmplY3QsIG5ld1RhcmdldCwgZ2V0RnVuY3Rpb25SZWFsbSh2bSwgbmV3VGFyZ2V0KS0+
d2ViQXNzZW1ibHlSdW50aW1lRXJyb3JTdHJ1Y3R1cmUoKSk7CisgICAgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCB3ZWJBc3NlbWJseVJ1bnRpbWVF
cnJvclN0cnVjdHVyZSwgbmV3VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3I6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBz
dHJ1Y3R1cmUsIFdURk1vdmUobWVzc2FnZVN0cmluZykpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3Iu
Y3BwCmluZGV4IDc2MjZmZGU4ZmQ3YTQyOGMzMmQ0NGFjYTY1ZDBjY2MwYmYyYTUyOTMuLmI4MDU4
YTlkMmE1MzRkYTRjYTdiYTc5NjY5ZmMzNjQ5NGFiZTBmMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVj
dG9yLmNwcApAQCAtNTYsOSArNTYsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0SlNXZWJBc3NlbWJseVRhYmxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNPYmplY3Qq
IG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkpOwotICAgIFN0cnVj
dHVyZSogd2ViQXNzZW1ibHlUYWJsZVN0cnVjdHVyZSA9IG5ld1RhcmdldCA9PSBjYWxsRnJhbWUt
PmpzQ2FsbGVlKCkKLSAgICAgICAgPyBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5VGFibGVTdHJ1
Y3R1cmUoKQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0
dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdUYXJn
ZXQpLT53ZWJBc3NlbWJseVRhYmxlU3RydWN0dXJlKCkpOworICAgIFN0cnVjdHVyZSogd2ViQXNz
ZW1ibHlUYWJsZVN0cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RVUkUodm0sIHdlYkFz
c2VtYmx5VGFibGVTdHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2FsbEZyYW1lLT5qc0NhbGxlZSgpKTsK
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CiAKICAgICBKU09iamVj
dCogbWVtb3J5RGVzY3JpcHRvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV3JhcHBlckNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdyYXBwZXJDYWNoZS5oCmluZGV4IGFlZjEyYmQyMzAyNWU3MGY5Y2Q3MzAxZTY5ZjhmYzlmMjIx
NTlmMzkuLjBhMWVmYWJmOTRlOTJlODg4MjExOTA3NWMwNDJjYjY3NjU5MTljMjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlckNhY2hlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyQ2FjaGUuaApAQCAtMjE2LDcg
KzIxNiw5IEBAIHRlbXBsYXRlPHR5cGVuYW1lIERPTUNsYXNzPiBpbmxpbmUgdm9pZCBzZXRTdWJj
bGFzc1N0cnVjdHVyZUlmTmVlZGVkKEpTQzo6SlNHbG9iCiAgICAgSlNDOjpWTSYgdm0gPSBsZXhp
Y2FsR2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKIAotICAgIGF1dG8qIG5ld1RhcmdldEdsb2JhbE9iamVjdCA9IEpTQzo6anNDYXN0
PEpTRE9NR2xvYmFsT2JqZWN0Kj4oSlNDOjpnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdUYXJnZXQp
KTsKKyAgICBhdXRvKiBmdW5jdGlvbkdsb2JhbE9iamVjdCA9IEpTQzo6Z2V0RnVuY3Rpb25SZWFs
bShsZXhpY2FsR2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQpOworICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHZvaWQoKSk7CisgICAgYXV0byogbmV3VGFyZ2V0R2xvYmFsT2JqZWN0ID0gSlND
Ojpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihmdW5jdGlvbkdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byogYmFzZVN0cnVjdHVyZSA9IGdldERPTVN0cnVjdHVyZTxXcmFwcGVyQ2xhc3M+KHZtLCAq
bmV3VGFyZ2V0R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvKiBzdWJjbGFzc1N0cnVjdHVyZSA9IEpT
Qzo6SW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUobGV4aWNhbEdsb2Jh
bE9iamVjdCwgbmV3VGFyZ2V0LCBiYXNlU3RydWN0dXJlKTsKICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCB2b2lkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNIVE1MRWxlbWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0hUTUxFbGVtZW50Q3VzdG9tLmNwcAppbmRleCBlY2VmM2JhYjIzMDU5ZjY0ODk1N2RlN2I2NTFh
YjE3YzIwNTg1N2I1Li43MDI0ZWRhZGI0NzcwZmRkNDE3OGVlNGM1OWY1ODllZjczOGNmY2I2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxFbGVtZW50Q3VzdG9t
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxFbGVtZW50Q3VzdG9t
LmNwcApAQCAtNTUsNyArNTUsOSBAQCBFbmNvZGVkSlNWYWx1ZSBjb25zdHJ1Y3RKU0hUTUxFbGVt
ZW50KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRgogICAgIEFTU0VS
VChjb250ZXh0LT5pc0RvY3VtZW50KCkpOwogCiAgICAgYXV0byogbmV3VGFyZ2V0ID0gY2FsbEZy
YW1lLm5ld1RhcmdldCgpLmdldE9iamVjdCgpOwotICAgIGF1dG8qIG5ld1RhcmdldEdsb2JhbE9i
amVjdCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdldEZ1bmN0aW9uUmVhbG0odm0sIG5l
d1RhcmdldCkpOworICAgIGF1dG8qIGZ1bmN0aW9uR2xvYmFsT2JqZWN0ID0gZ2V0RnVuY3Rpb25S
ZWFsbShsZXhpY2FsR2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQpOworICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIHsgfSk7CisgICAgYXV0byogbmV3VGFyZ2V0R2xvYmFsT2JqZWN0ID0ganND
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZnVuY3Rpb25HbG9iYWxPYmplY3QpOwogICAgIEpTVmFs
dWUgaHRtbEVsZW1lbnRDb25zdHJ1Y3RvclZhbHVlID0gSlNIVE1MRWxlbWVudDo6Z2V0Q29uc3Ry
dWN0b3Iodm0sIG5ld1RhcmdldEdsb2JhbE9iamVjdCk7CiAgICAgaWYgKG5ld1RhcmdldCA9PSBo
dG1sRWxlbWVudENvbnN0cnVjdG9yVmFsdWUpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCAibmV3LnRhcmdldCBpcyBub3QgYSB2YWxp
ZCBjdXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvciJfcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0No
YW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNhNWUyNzA0OTUzYWQwODU0NTc2NDQ4
NGJjMzQ5ODI5Yjk4MmJhNWUuLjg4NjQ0ZWM5M2RlMGE1YTUzODJiNGUyZGE5NjIwNGI5MDg0MTZk
ZDAgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMDItMjcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFw
cGxlLmNvbT4KKworICAgICAgICBbSlNDXSBUaHJvdyBUeXBlRXJyb3Igd2hlbiBnZXRGdW5jdGlv
blJlYWxtIGhpdHMgcmV2b2tlZCBQcm94eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiB0ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sOgorCiAyMDIxLTAy
LTI2ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIEZvbGxv
d3VwIHRlc3QgZml4IHRvIHIyNzM1OTQKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9leHBl
Y3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAppbmRleCA3
NWE2NjQ5YjlmYjY0Y2YxMjQ5ZTBhNGIwOTMxM2MwMmZhODcxN2NjLi5kNTkyN2IxYzdhODA4ZGY3
YjFkODZjYmY5MmEwYzNiMzVlNTJlNTY0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvZXhw
ZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCkBA
IC02MTIsMTIgKzYxMiw2IEBAIHRlc3QvYnVpbHQtaW5zL0Z1bmN0aW9uL2NhbGwtYmluZC10aGlz
LXJlYWxtLXVuZGVmLmpzOgogdGVzdC9idWlsdC1pbnMvRnVuY3Rpb24vaW50ZXJuYWxzL0NhbGwv
Y2xhc3MtY3Rvci1yZWFsbS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQg
YSBUeXBlRXJyb3IgYnV0IGdvdCBhIFR5cGVFcnJvcicKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYy
RXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIGJ1dCBnb3QgYSBUeXBlRXJyb3InCi10ZXN0L2J1
aWx0LWlucy9GdW5jdGlvbi9pbnRlcm5hbHMvQ29uc3RydWN0L2Jhc2UtY3Rvci1yZXZva2VkLXBy
b3h5LXJlYWxtLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVF
cnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKLSAg
c3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRo
cm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwotdGVzdC9idWlsdC1pbnMv
RnVuY3Rpb24vaW50ZXJuYWxzL0NvbnN0cnVjdC9iYXNlLWN0b3ItcmV2b2tlZC1wcm94eS5qczoK
LSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhy
b3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCi0gIHN0cmljdCBtb2RlOiAn
VGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4
Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKIHRlc3QvYnVpbHQtaW5zL0Z1bmN0aW9uL2ludGVy
bmFscy9Db25zdHJ1Y3QvZGVyaXZlZC1yZXR1cm4tdmFsLXJlYWxtLmpzOgogICBkZWZhdWx0OiAn
VGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEgVHlwZUVycm9yJwog
ICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgYnV0IGdv
dCBhIFR5cGVFcnJvcicK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421768</attachid>
            <date>2021-02-27 23:28:54 -0800</date>
            <delta_ts>2021-02-27 23:34:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222523-20210227232853.patch</filename>
            <type>text/plain</type>
            <size>63887</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
OWZmOWEwOGQ5OWJhYzlhMjMwM2FjMWJlODY3MmY5YWZhNDUxODI0Li4zOGE5YjljMjJjZjA0NjY4
YjhhMDllMTY4NTE1ZDYzMTY2MGY5YzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTAgQEAKKzIwMjEtMDItMjcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KKworICAgICAgICBbSlNDXSBUaHJvdyBUeXBlRXJyb3Igd2hlbiBnZXRGdW5jdGlvblJlYWxt
IGhpdHMgcmV2b2tlZCBQcm94eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIyNTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBwYXRjaCB0aHJvd3MgVHlwZUVycm9yIHdoZW4gZ2V0RnVuY3Rpb25S
ZWFsbSBlbmNvdW50ZXJzIHJldm9rZWQgUHJveHkuIEhvd2V2ZXIsCisgICAgICAgIHRoaXMgbWFr
ZXMgZGVyaXZlZCBzdHJ1Y3R1cmUgY3JlYXRpb24gY29kZSBkaWZmaWN1bHQgdG8gYmUgd3JpdHRl
biBpbmxpbmVseS4KKyAgICAgICAgVGhlIGZhc3QgcGF0aCBvZiBkZXJpdmVkIHN0cnVjdHVyZSBj
cmVhdGlvbiBtdXN0IGJlIGlubGluZWQgc2luY2UgdGhpcyBpcyBjcml0aWNhbAorICAgICAgICBw
YXRoIG9mIGV2ZXJ5IGJ1aWx0aW4gY29uc3RydWN0b3JzLgorCisgICAgICAgIFNvLCB0aGlzIHBh
dGNoIGludHJvZHVjZXMgSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSBtYWNybyB3aGljaCBzdHJl
YW1saW5lcyB0aGUgZGVyaXZlZAorICAgICAgICBzdHJ1Y3R1cmUgY3JlYXRpb24gY29kZSB3aGls
ZSBrZWVwaW5nIHRoZSBmYXN0IHBhdGggaW5saW5lZC4gQW5kIGl0IGluc2VydHMgYXBwcm9wcmlh
dGUKKyAgICAgICAgZXJyb3IgY2hlY2tzIGFmdGVyIHRoaXMgbmV3IGdldEZ1bmN0aW9uUmVhbG0g
Y2FsbC4KKworICAgICAgICBUaGVuLCB3ZSBhcHByb3ByaWF0ZWx5IHVzZSBnZXRGdW5jdGlvblJl
YWxtIGluIG9wX2NyZWF0ZV90aGlzIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogZGZnL0RG
R09wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkpTQ19ERUZJTkVfSklUX09QRVJB
VElPTik6CisgICAgICAgICogcnVudGltZS9BZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBydW50
aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0NPTU1PTl9TTE9XX1BBVEgpOgorICAgICAgICAqIHJ1bnRp
bWUvRGF0ZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0RGF0ZSk6Cisg
ICAgICAgICogcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBydW50aW1lL0ZpbmFsaXphdGlvblJl
Z2lzdHJ5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6OmNvbnN0cnVjdEZ1bmN0aW9uU2tpcHBpbmdFdmFsRW5hYmxlZENoZWNrKToKKyAg
ICAgICAgKiBydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpnZXRG
dW5jdGlvblJlYWxtKToKKyAgICAgICAgKiBydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaDoKKyAg
ICAgICAgKiBydW50aW1lL0ludGxDb2xsYXRvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBydW50aW1lL0ludGxEYXRl
VGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKToKKyAgICAgICAgKiBydW50aW1lL0ludGxEaXNwbGF5TmFtZXNDb25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAg
ICogcnVudGltZS9JbnRsTGlzdEZvcm1hdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBydW50aW1lL0ludGxMb2NhbGVD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisgICAgICAgICogcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUv
SW50bFBsdXJhbFJ1bGVzQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1h
dENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KToKKyAgICAgICAgKiBydW50aW1lL0ludGxTZWdtZW50ZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9K
U0FycmF5QnVmZmVyQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNBcnJh
eUJ1ZmZlckNvbnN0cnVjdG9yPHNoYXJpbmdNb2RlPjo6Y29uc3RydWN0SW1wbCk6CisgICAgICAg
ICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oOgor
ICAgICAgICAoSlNDOjpjb25zdHJ1Y3RDdXN0b21BcnJheUJ1ZmZlcklmTmVlZGVkKToKKyAgICAg
ICAgKEpTQzo6Y29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3SW1wbCk6CisgICAgICAgICog
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6
ZXJyb3JTdHJ1Y3R1cmVXaXRoRXJyb3JUeXBlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6SlNHbG9i
YWxPYmplY3Q6OmFycmF5QnVmZmVyU3RydWN0dXJlV2l0aFNoYXJpbmdNb2RlIGNvbnN0KToKKyAg
ICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnR5cGVkQXJyYXlTdHJ1Y3R1cmVXaXRoVHlwZWRB
cnJheVR5cGUgY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3RJbmxpbmVz
Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjphcnJheVN0cnVjdHVyZUZvckluZGV4
aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24gY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvTWFwQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChK
U0M6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBlPjo6Y29uc3RydWN0SW1wbCk6Cisg
ICAgICAgICogcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdE9iamVjdFdpdGhOZXdUYXJnZXQpOgor
ICAgICAgICAqIHJ1bnRpbWUvUHJveHlDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OlBy
b3h5Q29uc3RydWN0b3I6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlByb3h5Q29uc3RydWN0b3I6
OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuaDoK
KyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
Z2V0UmVnRXhwU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1NldENvbnN0cnVjdG9yLmNw
cDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBy
dW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVu
dGltZS9XZWFrT2JqZWN0UmVmQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9y
LmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAg
KiB3YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHdhc20vanMvV2Vi
QXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9q
cy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxl
Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVj
dG9yOjpjcmVhdGVNb2R1bGUpOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1l
RXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuY3Bw
OgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorCiAyMDIxLTAyLTI2
ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gQXZv
aWQgY3JlYXRpbmcgZnVuY3Rpb25zIHVubmVjZXNzYXJpbHkgaW4gYnVpbHRpbnMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAzNTU5MDcwZGU2NjI2MDdhOTQ3YjI5Yjk1NjNjNmVlNGQ4ZWYxYWVkLi45NDE4YTdhNmM0
M2I0M2Q4N2I3YzgyODlmODk1M2I5YTYwZTEzMWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMjEtMDItMjcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAg
ICAgICBbSlNDXSBUaHJvdyBUeXBlRXJyb3Igd2hlbiBnZXRGdW5jdGlvblJlYWxtIGhpdHMgcmV2
b2tlZCBQcm94eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIyNTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXJDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6
c2V0U3ViY2xhc3NTdHJ1Y3R1cmVJZk5lZWRlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNI
VE1MRWxlbWVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RKU0hUTUxF
bGVtZW50KToKKwogMjAyMS0wMi0yNyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzM0NzQgYW5kIHIyNzM0
NzkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCBi
MjExZWQ2MTFhNmRhODY0ZDA2MDFjZGViZjMzYzY2MGY1NWFmZTA0Li4xOGJiOWQyYTE4MjMxMmU2
M2NlYmM4YTZkNWNhOWUzOTNlMjg4ODNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT3BlcmF0aW9ucy5jcHAKQEAgLTMzMCw3ICszMzAsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQ3JlYXRlVGhpcywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYgogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAgIGlmIChw
cm90by5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xv
YmFsT2JqZWN0LCBhc09iamVjdChwcm90bykpOwotICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eU9i
amVjdChnbG9iYWxPYmplY3QpOworICAgIEpTR2xvYmFsT2JqZWN0KiBmdW5jdGlvbkdsb2JhbE9i
amVjdCA9IGdldEZ1bmN0aW9uUmVhbG0oZ2xvYmFsT2JqZWN0LCBjb25zdHJ1Y3Rvcik7CisgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CisgICAgcmV0dXJuIGNvbnN0cnVj
dEVtcHR5T2JqZWN0KGZ1bmN0aW9uR2xvYmFsT2JqZWN0KTsKIH0KIAogSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVByb21pc2UsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogY29uc3RydWN0b3IpKQpAQCAtMzM5LDkgKzM0MSw3
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVQcm9taXNlLCBKU0Nl
bGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7Ci0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBjb25zdHJ1Y3RvciA9
PSBnbG9iYWxPYmplY3QtPnByb21pc2VDb25zdHJ1Y3RvcigpCi0gICAgICAgID8gZ2xvYmFsT2Jq
ZWN0LT5wcm9taXNlU3RydWN0dXJlKCkKLSAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVh
dGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIGNvbnN0cnVjdG9yLCBnZXRGdW5jdGlv
blJlYWxtKHZtLCBjb25zdHJ1Y3RvciktPnByb21pc2VTdHJ1Y3R1cmUoKSk7CisgICAgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCBwcm9taXNlU3Ry
dWN0dXJlLCBjb25zdHJ1Y3RvciwgZ2xvYmFsT2JqZWN0LT5wcm9taXNlQ29uc3RydWN0b3IoKSk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHNjb3BlLCBKU1Byb21pc2U6OmNyZWF0ZSh2bSwgc3RydWN0dXJlKSk7CiB9CkBA
IC0zNTIsOSArMzUyLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0
ZUludGVybmFsUHJvbWlzZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWMKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9
IGNvbnN0cnVjdG9yID09IGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3Io
KQotICAgICAgICA/IGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0dXJlKCkKLSAg
ICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxP
YmplY3QsIGNvbnN0cnVjdG9yLCBnZXRGdW5jdGlvblJlYWxtKHZtLCBjb25zdHJ1Y3RvciktPmlu
dGVybmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpT
Q19HRVRfREVSSVZFRF9TVFJVQ1RVUkUodm0sIGludGVybmFsUHJvbWlzZVN0cnVjdHVyZSwgY29u
c3RydWN0b3IsIGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3IoKSk7CiAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHNjb3BlLCBKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUpKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVy
cm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVn
YXRlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggN2Q4NWE2MDA5MGRlZmI1YTBiMGU1ZTU3YjBl
OTA3MzM0MTcxNDBkNy4uM2QxYTA0Y2FmNWU0MDdiMGY5Y2E5YTI0NGI1ODM4YWJmMDdhZDIyNCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3JD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVn
YXRlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTcyLDkgKzcyLDcgQEAgSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNvbnN0cnVjdEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogZ2wKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpOwog
CiAgICAgSlNPYmplY3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+bmV3VGFyZ2V0
KCkpOwotICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBuZXdUYXJnZXQgPT0gY2FsbEZy
YW1lLT5qc0NhbGxlZSgpCi0gICAgICAgID8gZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShF
cnJvclR5cGU6OkFnZ3JlZ2F0ZUVycm9yKQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNy
ZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRGdW5jdGlv
blJlYWxtKHZtLCBuZXdUYXJnZXQpLT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OkFnZ3JlZ2F0
ZUVycm9yKSk7CisgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZF
RF9TVFJVQ1RVUkUodm0sIGVycm9yU3RydWN0dXJlV2l0aEVycm9yVHlwZTxFcnJvclR5cGU6OkFn
Z3JlZ2F0ZUVycm9yPiwgbmV3VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgQVNTRVJUKGVycm9yU3RydWN0dXJl
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25z
dHJ1Y3Rvci5jcHAKaW5kZXggMDBmODViMzE3ZmQxMDU2NWQ0ZTg2NjQxZjk3M2I0NWU2NGMzMTMy
ZS4uZWUyNTA2ZjkyNjM3NTU2ZDc0Mzk4NmI5MTE1NTY2ZWYxYmJhYWEzNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCkBA
IC00Nyw5ICs0Nyw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXaXRoQm9v
bGVhbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgSlNWYWx1ZSBib29s
ZWFuID0ganNCb29sZWFuKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9Cb29sZWFuKGdsb2JhbE9i
amVjdCkpOwogCiAgICAgSlNPYmplY3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+
bmV3VGFyZ2V0KCkpOwotICAgIFN0cnVjdHVyZSogYm9vbGVhblN0cnVjdHVyZSA9IG5ld1Rhcmdl
dCA9PSBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkKLSAgICAgICAgPyBnbG9iYWxPYmplY3QtPmJvb2xl
YW5PYmplY3RTdHJ1Y3R1cmUoKQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1
YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxt
KHZtLCBuZXdUYXJnZXQpLT5ib29sZWFuT2JqZWN0U3RydWN0dXJlKCkpOworICAgIFN0cnVjdHVy
ZSogYm9vbGVhblN0cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RVUkUodm0sIGJvb2xl
YW5PYmplY3RTdHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2FsbEZyYW1lLT5qc0NhbGxlZSgpKTsKICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgQm9vbGVhbk9iamVjdCog
b2JqID0gQm9vbGVhbk9iamVjdDo6Y3JlYXRlKHZtLCBib29sZWFuU3RydWN0dXJlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCmluZGV4
IGQyNTEyMmYzNTZhNzI0NTIzYmY1ZTViODI3NTljOWM3OWU5YjA2NjEuLmFlMjRjMWFhODA1NTRj
ZDlmYTI4MDQ2OGU1OTViMmQxZjY5ZmNjN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcApAQCAtMjQ2LDEzICsyNDYsMTYgQEAgSlND
X0RFRklORV9DT01NT05fU0xPV19QQVRIKHNsb3dfcGF0aF9jcmVhdGVfdGhpcykKICAgICAgICAg
ICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIWhhc0luZGV4ZWRQcm9wZXJ0aWVzKHJlc3VsdC0+aW5k
ZXhpbmdUeXBlKCkpLCAiV2UgcmVseSBvbiBKU0ZpbmFsT2JqZWN0IG5vdCBzdGFydGluZyBvdXQg
d2l0aCBhbiBpbmRleGluZyB0eXBlIG90aGVyd2lzZSB3ZSB3b3VsZCBwb3RlbnRpYWxseSBuZWVk
IHRvIGNvbnZlcnQgdG8gc2xvdyBwdXQgc3RvcmFnZSIpOwogICAgICAgICB9CiAgICAgfSBlbHNl
IHsKLSAgICAgICAgLy8gaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4w
LyNzZWMtb3JkaW5hcnljcmVhdGVmcm9tY29uc3RydWN0b3IKKyAgICAgICAgLy8gaHR0cHM6Ly90
YzM5LmVzL2VjbWEyNjIvI3NlYy1nZXRwcm90b3R5cGVmcm9tY29uc3RydWN0b3IKICAgICAgICAg
SlNWYWx1ZSBwcm90byA9IGNvbnN0cnVjdG9yQXNPYmplY3QtPmdldChnbG9iYWxPYmplY3QsIHZt
LnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSk7CiAgICAgICAgIENIRUNLX0VYQ0VQVElPTigpOwog
ICAgICAgICBpZiAocHJvdG8uaXNPYmplY3QoKSkKICAgICAgICAgICAgIHJlc3VsdCA9IGNvbnN0
cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdCwgYXNPYmplY3QocHJvdG8pKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgcmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2Jq
ZWN0KTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBKU0dsb2JhbE9iamVjdCogZnVuY3Rp
b25HbG9iYWxPYmplY3QgPSBnZXRGdW5jdGlvblJlYWxtKGdsb2JhbE9iamVjdCwgY29uc3RydWN0
b3JBc09iamVjdCk7CisgICAgICAgICAgICBDSEVDS19FWENFUFRJT04oKTsKKyAgICAgICAgICAg
IHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGZ1bmN0aW9uR2xvYmFsT2JqZWN0KTsKKyAg
ICAgICAgfQogICAgIH0KICAgICBSRVRVUk4ocmVzdWx0KTsKIH0KQEAgLTI2NSwxNSArMjY4LDEx
IEBAIEpTQ19ERUZJTkVfQ09NTU9OX1NMT1dfUEFUSChzbG93X3BhdGhfY3JlYXRlX3Byb21pc2Up
CiAKICAgICBKU1Byb21pc2UqIHJlc3VsdCA9IG51bGxwdHI7CiAgICAgaWYgKGJ5dGVjb2RlLm1f
aXNJbnRlcm5hbFByb21pc2UpIHsKLSAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBjb25z
dHJ1Y3RvckFzT2JqZWN0ID09IGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlQ29uc3RydWN0
b3IoKQotICAgICAgICAgICAgPyBnbG9iYWxPYmplY3QtPmludGVybmFsUHJvbWlzZVN0cnVjdHVy
ZSgpCi0gICAgICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0
dXJlKGdsb2JhbE9iamVjdCwgY29uc3RydWN0b3JBc09iamVjdCwgZ2V0RnVuY3Rpb25SZWFsbSh2
bSwgY29uc3RydWN0b3JBc09iamVjdCktPmludGVybmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKKyAg
ICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZt
LCBpbnRlcm5hbFByb21pc2VTdHJ1Y3R1cmUsIGNvbnN0cnVjdG9yQXNPYmplY3QsIGdsb2JhbE9i
amVjdC0+aW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3IoKSk7CiAgICAgICAgIENIRUNLX0VYQ0VQ
VElPTigpOwogICAgICAgICByZXN1bHQgPSBKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBz
dHJ1Y3R1cmUpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0g
Y29uc3RydWN0b3JBc09iamVjdCA9PSBnbG9iYWxPYmplY3QtPnByb21pc2VDb25zdHJ1Y3Rvcigp
Ci0gICAgICAgICAgICA/IGdsb2JhbE9iamVjdC0+cHJvbWlzZVN0cnVjdHVyZSgpCi0gICAgICAg
ICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9i
amVjdCwgY29uc3RydWN0b3JBc09iamVjdCwgZ2V0RnVuY3Rpb25SZWFsbSh2bSwgY29uc3RydWN0
b3JBc09iamVjdCktPnByb21pc2VTdHJ1Y3R1cmUoKSk7CisgICAgICAgIFN0cnVjdHVyZSogc3Ry
dWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgcHJvbWlzZVN0cnVjdHVyZSwg
Y29uc3RydWN0b3JBc09iamVjdCwgZ2xvYmFsT2JqZWN0LT5wcm9taXNlQ29uc3RydWN0b3IoKSk7
CiAgICAgICAgIENIRUNLX0VYQ0VQVElPTigpOwogICAgICAgICByZXN1bHQgPSBKU1Byb21pc2U6
OmNyZWF0ZSh2bSwgc3RydWN0dXJlKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAppbmRleCBmMzQwZjViYzBhMzMwYTU1N2Qz
MTIxOGJhYjlmNTJmZWMzNjIzZmI4Li40MjFlMmZkMTE1NmQ1MGM5YmU2YWU2MjJlMjQ5ZjI3Yjk3
ODYwYmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29u
c3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25z
dHJ1Y3Rvci5jcHAKQEAgLTEyNyw5ICsxMjcsMTEgQEAgSlNPYmplY3QqIGNvbnN0cnVjdERhdGUo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBuZXdUYXJnZXQsIGNvbnN0IEEK
ICAgICAgICAgdmFsdWUgPSBtaWxsaXNlY29uZHNGcm9tQ29tcG9uZW50cyhnbG9iYWxPYmplY3Qs
IGFyZ3MsIFdURjo6TG9jYWxUaW1lKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBu
dWxscHRyKTsKIAotICAgIFN0cnVjdHVyZSogZGF0ZVN0cnVjdHVyZSA9ICFuZXdUYXJnZXQgfHwg
bmV3VGFyZ2V0ID09IGdsb2JhbE9iamVjdC0+ZGF0ZUNvbnN0cnVjdG9yKCkKLSAgICAgICAgPyBn
bG9iYWxPYmplY3QtPmRhdGVTdHJ1Y3R1cmUoKQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb246
OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgYXNPYmplY3QobmV3VGFyZ2V0
KSwgZ2V0RnVuY3Rpb25SZWFsbSh2bSwgYXNPYmplY3QobmV3VGFyZ2V0KSktPmRhdGVTdHJ1Y3R1
cmUoKSk7CisgICAgU3RydWN0dXJlKiBkYXRlU3RydWN0dXJlID0gbnVsbHB0cjsKKyAgICBpZiAo
IW5ld1RhcmdldCkKKyAgICAgICAgZGF0ZVN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+ZGF0ZVN0
cnVjdHVyZSgpOworICAgIGVsc2UKKyAgICAgICAgZGF0ZVN0cnVjdHVyZSA9IEpTQ19HRVRfREVS
SVZFRF9TVFJVQ1RVUkUodm0sIGRhdGVTdHJ1Y3R1cmUsIGFzT2JqZWN0KG5ld1RhcmdldCksIGds
b2JhbE9iamVjdC0+ZGF0ZUNvbnN0cnVjdG9yKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIG51bGxwdHIpOwogCiAgICAgcmV0dXJuIERhdGVJbnN0YW5jZTo6Y3JlYXRlKHZtLCBk
YXRlU3RydWN0dXJlLCB2YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDliZTkzMGNmMWMzYzlhNDBlNjA4NTk4MzU1
OGExYTU5YmM3OGI2MmYuLjQ5Zjc4MTMzZWMyMzBjNTgwMDQxZDE2ZTQ5Y2U3ZmQxNjMxMTJiMGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0
b3IuY3BwCkBAIC01NSw5ICs1NSw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1
Y3RFcnJvckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgSlNW
YWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKIAogICAgIEpTT2JqZWN0KiBu
ZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJhbWUtPm5ld1RhcmdldCgpKTsKLSAgICBTdHJ1Y3R1
cmUqIGVycm9yU3RydWN0dXJlID0gbmV3VGFyZ2V0ID09IGNhbGxGcmFtZS0+anNDYWxsZWUoKQot
ICAgICAgICA/IGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoKQotICAgICAgICA6IEludGVy
bmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFy
Z2V0LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdUYXJnZXQpLT5lcnJvclN0cnVjdHVyZSgpKTsK
KyAgICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVS
RSh2bSwgZXJyb3JTdHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2FsbEZyYW1lLT5qc0NhbGxlZSgpKTsK
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2Jh
bE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBF
cnJvclR5cGU6OkVycm9yLCBmYWxzZSkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ZpbmFsaXphdGlvblJlZ2lzdHJ5Q29uc3RydWN0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRmluYWxpemF0aW9uUmVnaXN0cnlDb25zdHJ1Y3Rvci5j
cHAKaW5kZXggYmFiZTRkZTE5Y2EzM2Y5ZGE1ODI4MjlhOTkxMGM3ZDVmYjBhM2M3Ni4uZjMxZGI4
NmE3OTYxNmU0NWE4ZGMxMTVhYTI2NTcwYWMzYzdlNjZmNSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRmluYWxpemF0aW9uUmVnaXN0cnlDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRmluYWxpemF0aW9uUmVnaXN0cnlD
b25zdHJ1Y3Rvci5jcHAKQEAgLTY5LDkgKzY5LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGNvbnN0cnVjdEZpbmFsaXphdGlvblJlZ2lzdHJ5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8K
ICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkZp
cnN0IGFyZ3VtZW50IHRvIEZpbmFsaXphdGlvblJlZ2lzdHJ5IHNob3VsZCBiZSBhIGZ1bmN0aW9u
Il9zKTsKIAogICAgIEpTT2JqZWN0KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJhbWUtPm5l
d1RhcmdldCgpKTsKLSAgICBTdHJ1Y3R1cmUqIGZpbmFsaXphdGlvblJlZ2lzdHJ5U3RydWN0dXJl
ID0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpID09IG5ld1RhcmdldAotICAgICAgICA/IGdsb2JhbE9i
amVjdC0+ZmluYWxpemF0aW9uUmVnaXN0cnlTdHJ1Y3R1cmUoKQotICAgICAgICA6IEludGVybmFs
RnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0
LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdUYXJnZXQpLT5maW5hbGl6YXRpb25SZWdpc3RyeVN0
cnVjdHVyZSgpKTsKKyAgICBTdHJ1Y3R1cmUqIGZpbmFsaXphdGlvblJlZ2lzdHJ5U3RydWN0dXJl
ID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgZmluYWxpemF0aW9uUmVnaXN0cnlTdHJ1
Y3R1cmUsIG5ld1RhcmdldCwgY2FsbEZyYW1lLT5qc0NhbGxlZSgpKTsKICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShKU0ZpbmFsaXphdGlvblJlZ2lzdHJ5OjpjcmVhdGUo
dm0sIGZpbmFsaXphdGlvblJlZ2lzdHJ5U3RydWN0dXJlLCBjYWxsRnJhbWUtPnVuY2hlY2tlZEFy
Z3VtZW50KDApLmdldE9iamVjdCgpKSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAppbmRleCAwMzk4NWM1OTU2NzM0
NDUyMGNlZWRhYjQ2ZWFiYjQ2MjJkMzQ0N2I3Li4xN2JjMjQ2MTQ5NTE5YzBlMzA1YWM4MmVkOTQz
NmYyYzFjNDU2NzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9G
dW5jdGlvbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcApAQCAtMTU5LDggKzE1OSwxMiBAQCBKU09iamVjdCog
Y29uc3RydWN0RnVuY3Rpb25Ta2lwcGluZ0V2YWxFbmFibGVkQ2hlY2soCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIH0KIAorICAgIEpTR2xvYmFsT2JqZWN0KiBzdHJ1Y3R1cmVHbG9iYWxP
YmplY3QgPSBnbG9iYWxPYmplY3Q7CiAgICAgYm9vbCBuZWVkc1N1YmNsYXNzU3RydWN0dXJlID0g
bmV3VGFyZ2V0ICYmIG5ld1RhcmdldCAhPSBnbG9iYWxPYmplY3QtPmZ1bmN0aW9uQ29uc3RydWN0
b3IoKTsKLSAgICBKU0dsb2JhbE9iamVjdCogc3RydWN0dXJlR2xvYmFsT2JqZWN0ID0gbmVlZHNT
dWJjbGFzc1N0cnVjdHVyZSA/IGdldEZ1bmN0aW9uUmVhbG0odm0sIGFzT2JqZWN0KG5ld1Rhcmdl
dCkpIDogZ2xvYmFsT2JqZWN0OworICAgIGlmIChuZWVkc1N1YmNsYXNzU3RydWN0dXJlKSB7Cisg
ICAgICAgIHN0cnVjdHVyZUdsb2JhbE9iamVjdCA9IGdldEZ1bmN0aW9uUmVhbG0oZ2xvYmFsT2Jq
ZWN0LCBhc09iamVjdChuZXdUYXJnZXQpKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgbnVsbHB0cik7CisgICAgfQogICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gbnVsbHB0
cjsKICAgICBzd2l0Y2ggKGZ1bmN0aW9uQ29uc3RydWN0aW9uTW9kZSkgewogICAgIGNhc2UgRnVu
Y3Rpb25Db25zdHJ1Y3Rpb25Nb2RlOjpGdW5jdGlvbjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAKaW5kZXggMjZlZDhjOTVkYmNiZWRi
MDBmOWJkMzNmZTMzZmNmNmZkODE4N2I3Yy4uMGI4ZDYyMzUxNDQwNmMxMTgwOGZlZWE2NzBjMDc1
YmE2ZGEyNTZmNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
ZXJuYWxGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
ZXJuYWxGdW5jdGlvbi5jcHAKQEAgLTE3Miw4ICsxNzIsMTEgQEAgSW50ZXJuYWxGdW5jdGlvbiog
SW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlRnVuY3Rpb25UaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5l
ZChWTSYKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1nZXRmdW5jdGlvbnJl
YWxtCi1KU0dsb2JhbE9iamVjdCogZ2V0RnVuY3Rpb25SZWFsbShWTSYgdm0sIEpTT2JqZWN0KiBv
YmplY3QpCitKU0dsb2JhbE9iamVjdCogZ2V0RnVuY3Rpb25SZWFsbShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0KQogeworICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisK
ICAgICBBU1NFUlQob2JqZWN0LT5pc0NhbGxhYmxlKHZtKSk7CiAKICAgICB3aGlsZSAodHJ1ZSkg
ewpAQCAtMTg0LDE0ICsxODcsMTIgQEAgSlNHbG9iYWxPYmplY3QqIGdldEZ1bmN0aW9uUmVhbG0o
Vk0mIHZtLCBKU09iamVjdCogb2JqZWN0KQogCiAgICAgICAgIGlmIChvYmplY3QtPnR5cGUoKSA9
PSBQcm94eU9iamVjdFR5cGUpIHsKICAgICAgICAgICAgIGF1dG8qIHByb3h5ID0ganNDYXN0PFBy
b3h5T2JqZWN0Kj4ob2JqZWN0KTsKLSAgICAgICAgICAgIC8vIFBlciBzdGVwIDQuYSwgYSBUeXBl
RXJyb3Igc2hvdWxkIGJlIHRocm93biBmb3IgcmV2b2tlZCBQcm94eSwgeWV0IHdlIHNraXAgaXQg
c2luY2U6Ci0gICAgICAgICAgICAvLyBhKSBJdCBpcyBiYXJlbHkgb2JzZXJ2YWJsZSBhbnl3YXk6
ICJwcm90b3R5cGUiIGxvb2t1cCBpbiBjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZSgpIHdpbGwgdGhy
b3cgZm9yIHJldm9rZWQgUHJveHkuCi0gICAgICAgICAgICAvLyBiKSBUaHJvd2luZyBnZXRGdW5j
dGlvblJlYWxtKCkgd2lsbCByZXN0cmljdCBjYWxsaW5nIGl0IGlubGluZSBhcyBhbiBhcmd1bWVu
dCBvZiBjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZSgpLgotICAgICAgICAgICAgLy8gYykgVGhlcmUg
aXMgb25nb2luZyBkaXNjdXNzaW9uIG9uIHJlbW92aW5nIGl0OiBodHRwczovL2dpdGh1Yi5jb20v
dGMzOS9lY21hMjYyL2lzc3Vlcy8xNzk4LgotICAgICAgICAgICAgaWYgKCFwcm94eS0+aXNSZXZv
a2VkKCkpIHsKLSAgICAgICAgICAgICAgICBvYmplY3QgPSBwcm94eS0+dGFyZ2V0KCk7Ci0gICAg
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBpZiAocHJveHktPmlzUmV2b2tlZCgp
KSB7CisgICAgICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
IkNhbm5vdCBnZXQgZnVuY3Rpb24gcmVhbG0gZnJvbSByZXZva2VkIFByb3h5Il9zKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9i
amVjdCA9IHByb3h5LT50YXJnZXQoKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKICAgICAgICAgcmV0dXJuIG9iamVjdC0+Z2xvYmFsT2JqZWN0KHZtKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaAppbmRleCA2YzQyMzk3
ZTJkZTJlZjhiNzkyZTFjYTBhMzRiNzU4ZWQ0NmZlMzUwLi5kMzIzNjliMWQyMWUxYWU3ZmVhZmEy
ZWI0YzA2NGQ1MWM3YTg2Y2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50ZXJuYWxGdW5jdGlvbi5oCkBAIC05OCw2ICs5OCwxNiBAQCBjbGFzcyBJbnRlcm5hbEZ1
bmN0aW9uIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIFdyaXRlQmFycmllcjxKU0ds
b2JhbE9iamVjdD4gbV9nbG9iYWxPYmplY3Q7CiB9OwogCi1KU19FWFBPUlRfUFJJVkFURSBKU0ds
b2JhbE9iamVjdCogZ2V0RnVuY3Rpb25SZWFsbShWTSYsIEpTT2JqZWN0Kik7CitKU19FWFBPUlRf
UFJJVkFURSBKU0dsb2JhbE9iamVjdCogZ2V0RnVuY3Rpb25SZWFsbShKU0dsb2JhbE9iamVjdCos
IEpTT2JqZWN0Kik7CisKKyNkZWZpbmUgSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgc3Ry
dWN0dXJlTWVtYmVyRnVuY3Rpb25OYW1lLCBuZXdUYXJnZXQsIGNvbnN0cnVjdG9yKSBcCisgICAg
KChuZXdUYXJnZXQpID09IChjb25zdHJ1Y3RvcikgXAorICAgICAgICA/IGdsb2JhbE9iamVjdC0+
c3RydWN0dXJlTWVtYmVyRnVuY3Rpb25OYW1lKCkgXAorICAgICAgICA6IChbJl0oKSAtPiBTdHJ1
Y3R1cmUqIHsgXAorICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
KHZtKSk7IFwKKyAgICAgICAgICAgIGF1dG8qIGZ1bmN0aW9uR2xvYmFsT2JqZWN0ID0gZ2V0RnVu
Y3Rpb25SZWFsbShnbG9iYWxPYmplY3QsIChuZXdUYXJnZXQpKTsgXAorICAgICAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7IFwKKyAgICAgICAgICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTihzY29wZSwgSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1
cmUoZ2xvYmFsT2JqZWN0LCAobmV3VGFyZ2V0KSwgZnVuY3Rpb25HbG9iYWxPYmplY3QtPnN0cnVj
dHVyZU1lbWJlckZ1bmN0aW9uTmFtZSgpKSk7IFwKKyAgICAgICAgfSgpKSkKIAogfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
Q29sbGF0b3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYmFiYmE1MWM0NjA3ZGFkMmNhZDY3NmZj
OTc3OTU1YzFhNTNhNTFhZS4uYzgwOWI5MWY1OWM4NTYyYjNhNGQ4ZWJmZTdmNzcxYjFkNzFhODkw
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9y
Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxD
b2xsYXRvckNvbnN0cnVjdG9yLmNwcApAQCAtODksOSArODksNyBAQCBKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oY29uc3RydWN0SW50bENvbGxhdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQwogICAgIC8vIDIuIExldCBjb2xsYXRvciBiZSBPcmRpbmFyeUNyZWF0ZUZyb21Db25z
dHJ1Y3RvcihuZXdUYXJnZXQsICVDb2xsYXRvclByb3RvdHlwZSUpLgogICAgIC8vIDMuIFJldHVy
bklmQWJydXB0KGNvbGxhdG9yKS4KICAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0gYXNPYmplY3Qo
Y2FsbEZyYW1lLT5uZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBuZXdU
YXJnZXQgPT0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpCi0gICAgICAgID8gZ2xvYmFsT2JqZWN0LT5j
b2xsYXRvclN0cnVjdHVyZSgpCi0gICAgICAgIDogSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3Vi
Y2xhc3NTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQsIGdldEZ1bmN0aW9uUmVhbG0o
dm0sIG5ld1RhcmdldCktPmNvbGxhdG9yU3RydWN0dXJlKCkpOworICAgIFN0cnVjdHVyZSogc3Ry
dWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgY29sbGF0b3JTdHJ1Y3R1cmUs
IG5ld1RhcmdldCwgY2FsbEZyYW1lLT5qc0NhbGxlZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCB7IH0pOwogCiAgICAgSW50bENvbGxhdG9yKiBjb2xsYXRvciA9IEludGxDb2xs
YXRvcjo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuY3Bw
CmluZGV4IGQ5NWJmMWIzYmE1ZDg5MWQ1MzFmMzdjYzg0NmNkZTdkZDBkZjY0YmMuLjFiYmExYjA1
YzJlMzJhYzBkMThkZDE0MzZjMzQ4ODY0MGY3MGE0YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1
Y3Rvci5jcHAKQEAgLTg3LDkgKzg3LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0
cnVjdEludGxEYXRlVGltZUZvcm1hdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICAv
LyAyLiBMZXQgZGF0ZVRpbWVGb3JtYXQgYmUgT3JkaW5hcnlDcmVhdGVGcm9tQ29uc3RydWN0b3Io
bmV3VGFyZ2V0LCAlRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUlKS4KICAgICAvLyAzLiBSZXR1cm5J
ZkFicnVwdChkYXRlVGltZUZvcm1hdCkuCiAgICAgSlNPYmplY3QqIG5ld1RhcmdldCA9IGFzT2Jq
ZWN0KGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkpOwotICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0g
bmV3VGFyZ2V0ID09IGNhbGxGcmFtZS0+anNDYWxsZWUoKQotICAgICAgICA/IGdsb2JhbE9iamVj
dC0+ZGF0ZVRpbWVGb3JtYXRTdHJ1Y3R1cmUoKQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb246
OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRGdW5j
dGlvblJlYWxtKHZtLCBuZXdUYXJnZXQpLT5kYXRlVGltZUZvcm1hdFN0cnVjdHVyZSgpKTsKKyAg
ICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RVUkUodm0sIGRh
dGVUaW1lRm9ybWF0U3RydWN0dXJlLCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIEludGxEYXRlVGlt
ZUZvcm1hdCogZGF0ZVRpbWVGb3JtYXQgPSBJbnRsRGF0ZVRpbWVGb3JtYXQ6OmNyZWF0ZSh2bSwg
c3RydWN0dXJlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxEaXNwbGF5TmFtZXNDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsRGlzcGxheU5hbWVzQ29uc3RydWN0b3IuY3BwCmluZGV4IDFiOTQ3YmFjZGU3YzI0
OTRkOGQwODMyNjNkYTE1NTkwOTRjMWM1YWUuLmQxZjA2NmYwYTA5MzM3NjkxMWRiMTBiODhmYWE5
ZjQ1ZjM1YjU2OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxEaXNwbGF5TmFtZXNDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bERpc3BsYXlOYW1lc0NvbnN0cnVjdG9yLmNwcApAQCAtODQsOSArODQsNyBA
QCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SW50bERpc3BsYXlOYW1lcywgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKIAogICAgIEpTT2JqZWN0KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJh
bWUtPm5ld1RhcmdldCgpKTsKLSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG5ld1RhcmdldCA9
PSBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkKLSAgICAgICAgPyBnbG9iYWxPYmplY3QtPmRpc3BsYXlO
YW1lc1N0cnVjdHVyZSgpCi0gICAgICAgIDogSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xh
c3NTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQsIGdldEZ1bmN0aW9uUmVhbG0odm0s
IG5ld1RhcmdldCktPmRpc3BsYXlOYW1lc1N0cnVjdHVyZSgpKTsKKyAgICBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RVUkUodm0sIGRpc3BsYXlOYW1lc1N0cnVj
dHVyZSwgbmV3VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICBJbnRsRGlzcGxheU5hbWVzKiBkaXNwbGF5TmFt
ZXMgPSBJbnRsRGlzcGxheU5hbWVzOjpjcmVhdGUodm0sIHN0cnVjdHVyZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTGlzdEZvcm1hdENvbnN0cnVjdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxMaXN0Rm9ybWF0Q29uc3Ry
dWN0b3IuY3BwCmluZGV4IDJiNGFkNjVlMTk2OTlkZDc0NmU1NGYxNmNkZGQ4YWQxN2U4MjU1ZDYu
LjQ3ZTVlZTIzZGJmMWUwYjAzOWMzY2FmMDc4MGYxYjY0M2Q1YzEyYzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxMaXN0Rm9ybWF0Q29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxMaXN0Rm9ybWF0Q29uc3Ry
dWN0b3IuY3BwCkBAIC04NCw5ICs4NCw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25z
dHJ1Y3RJbnRsTGlzdEZvcm1hdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNPYmplY3QqIG5l
d1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkpOwotICAgIFN0cnVjdHVy
ZSogc3RydWN0dXJlID0gbmV3VGFyZ2V0ID09IGNhbGxGcmFtZS0+anNDYWxsZWUoKQotICAgICAg
ICA/IGdsb2JhbE9iamVjdC0+bGlzdEZvcm1hdFN0cnVjdHVyZSgpCi0gICAgICAgIDogSW50ZXJu
YWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBuZXdUYXJn
ZXQsIGdldEZ1bmN0aW9uUmVhbG0odm0sIG5ld1RhcmdldCktPmxpc3RGb3JtYXRTdHJ1Y3R1cmUo
KSk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJF
KHZtLCBsaXN0Rm9ybWF0U3RydWN0dXJlLCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUo
KSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIEludGxMaXN0
Rm9ybWF0KiBsaXN0Rm9ybWF0ID0gSW50bExpc3RGb3JtYXQ6OmNyZWF0ZSh2bSwgc3RydWN0dXJl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxMb2NhbGVD
b25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTG9jYWxl
Q29uc3RydWN0b3IuY3BwCmluZGV4IDE4YzRjYmE3MzlhNzk0YWY1MzM0MThjZDQ3OGFiNTY1YzY5
ZGU5OGIuLmU2NTcxYTIxODQ4MjFlOWNiZDIxNTY0ZGQ0ZmZhYTIzOTU0ZGYwNzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxMb2NhbGVDb25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExvY2FsZUNvbnN0cnVj
dG9yLmNwcApAQCAtNzAsOSArNzAsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0SW50bExvY2FsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbAogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIEpTT2JqZWN0KiBuZXdU
YXJnZXQgPSBhc09iamVjdChjYWxsRnJhbWUtPm5ld1RhcmdldCgpKTsKLSAgICBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSA9IG5ld1RhcmdldCA9PSBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkKLSAgICAgICAg
PyBnbG9iYWxPYmplY3QtPmxvY2FsZVN0cnVjdHVyZSgpCi0gICAgICAgIDogSW50ZXJuYWxGdW5j
dGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQsIGdl
dEZ1bmN0aW9uUmVhbG0odm0sIG5ld1RhcmdldCktPmxvY2FsZVN0cnVjdHVyZSgpKTsKKyAgICBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RVUkUodm0sIGxvY2Fs
ZVN0cnVjdHVyZSwgbmV3VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICBJbnRsTG9jYWxlKiBsb2NhbGUgPSBJ
bnRsTG9jYWxlOjpjcmVhdGUodm0sIHN0cnVjdHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yLmNw
cAppbmRleCA4OTViYjQ3YWE1YjU5MGMzMTBjNTE1N2E0ZTA3YzRhNWZlOGRiMWM4Li4xYzViMjkz
YWZjZGFlMmViNjJlYmJjMjY0NDM3OWFmNTkzMjExMGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rv
ci5jcHAKQEAgLTg3LDkgKzg3LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVj
dEludGxOdW1iZXJGb3JtYXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICAvLyAy
LiBMZXQgbnVtYmVyRm9ybWF0IGJlIE9yZGluYXJ5Q3JlYXRlRnJvbUNvbnN0cnVjdG9yKG5ld1Rh
cmdldCwgJU51bWJlckZvcm1hdFByb3RvdHlwZSUpLgogICAgIC8vIDMuIFJldHVybklmQWJydXB0
KG51bWJlckZvcm1hdCkuCiAgICAgSlNPYmplY3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxG
cmFtZS0+bmV3VGFyZ2V0KCkpOwotICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gbmV3VGFyZ2V0
ID09IGNhbGxGcmFtZS0+anNDYWxsZWUoKQotICAgICAgICA/IGdsb2JhbE9iamVjdC0+bnVtYmVy
Rm9ybWF0U3RydWN0dXJlKCkKLSAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJj
bGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIG5ld1RhcmdldCwgZ2V0RnVuY3Rpb25SZWFsbSh2
bSwgbmV3VGFyZ2V0KS0+bnVtYmVyRm9ybWF0U3RydWN0dXJlKCkpOworICAgIFN0cnVjdHVyZSog
c3RydWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgbnVtYmVyRm9ybWF0U3Ry
dWN0dXJlLCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIEludGxOdW1iZXJGb3JtYXQqIG51bWJlckZv
cm1hdCA9IEludGxOdW1iZXJGb3JtYXQ6OmNyZWF0ZSh2bSwgc3RydWN0dXJlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQbHVyYWxSdWxlc0NvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQbHVyYWxSdWxlc0Nv
bnN0cnVjdG9yLmNwcAppbmRleCBhZjM5YTk2NjNhZjA3OWM1ZDI3OGMyN2Y0NDY4YzU2NWQxZTM2
NGVhLi5mODg1MGIxMGE4YmZlNjU3MDQzZDJhMWVhZDA3MTEwNDFiOTIwNTkxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUGx1cmFsUnVsZXNDb25zdHJ1Y3Rv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFBsdXJhbFJ1bGVz
Q29uc3RydWN0b3IuY3BwCkBAIC04Nyw5ICs4Nyw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihjb25zdHJ1Y3RJbnRsUGx1cmFsUnVsZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
CiAgICAgLy8gMTMuMi4xIEludGwuUGx1cmFsUnVsZXMgKFsgbG9jYWxlcyBbICwgb3B0aW9ucyBd
IF0pCiAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hNDAyLyNzZWMtaW50bC5wbHVy
YWxydWxlcwogICAgIEpTT2JqZWN0KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJhbWUtPm5l
d1RhcmdldCgpKTsKLSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG5ld1RhcmdldCA9PSBjYWxs
RnJhbWUtPmpzQ2FsbGVlKCkKLSAgICAgICAgPyBnbG9iYWxPYmplY3QtPnBsdXJhbFJ1bGVzU3Ry
dWN0dXJlKCkKLSAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVj
dHVyZShnbG9iYWxPYmplY3QsIG5ld1RhcmdldCwgZ2V0RnVuY3Rpb25SZWFsbSh2bSwgbmV3VGFy
Z2V0KS0+cGx1cmFsUnVsZXNTdHJ1Y3R1cmUoKSk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUg
PSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCBwbHVyYWxSdWxlc1N0cnVjdHVyZSwgbmV3
VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHsgfSk7CiAKICAgICBJbnRsUGx1cmFsUnVsZXMqIHBsdXJhbFJ1bGVzID0gSW50bFBs
dXJhbFJ1bGVzOjpjcmVhdGUodm0sIHN0cnVjdHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUmVsYXRpdmVUaW1lRm9ybWF0Q29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdENv
bnN0cnVjdG9yLmNwcAppbmRleCBkMTIyZGNkYTI5MGZmZjE3NzM2ZGQwNWI5MjljMzQ2M2FkNjZj
OGZhLi4xNzRiNmZkY2UyYzg2YmZjMTFiNWViMWVmNTM3MjA5OGVhODk4NDk0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUmVsYXRpdmVUaW1lRm9ybWF0Q29u
c3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxSZWxh
dGl2ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKQEAgLTg1LDkgKzg1LDcgQEAgSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEludGxSZWxhdGl2ZVRpbWVGb3JtYXQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmEKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAKICAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0gYXNPYmplY3QoY2FsbEZyYW1lLT5uZXdUYXJn
ZXQoKSk7Ci0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBuZXdUYXJnZXQgPT0gY2FsbEZyYW1l
LT5qc0NhbGxlZSgpCi0gICAgICAgID8gZ2xvYmFsT2JqZWN0LT5yZWxhdGl2ZVRpbWVGb3JtYXRT
dHJ1Y3R1cmUoKQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3Ry
dWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdU
YXJnZXQpLT5yZWxhdGl2ZVRpbWVGb3JtYXRTdHJ1Y3R1cmUoKSk7CisgICAgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCByZWxhdGl2ZVRpbWVGb3Jt
YXRTdHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2FsbEZyYW1lLT5qc0NhbGxlZSgpKTsKICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgSW50bFJlbGF0aXZlVGltZUZvcm1h
dCogcmVsYXRpdmVUaW1lRm9ybWF0ID0gSW50bFJlbGF0aXZlVGltZUZvcm1hdDo6Y3JlYXRlKHZt
LCBzdHJ1Y3R1cmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bFNlZ21lbnRlckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxTZWdtZW50ZXJDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZWIxYmJiNDhmMWFjZGMzYTIx
YjdjZTlhODVlMWM1OTcyMzllMGVhOS4uZmZkNzNmNzM2YTk3NDMzNzhkZmRiMWEzMWQ0YmY5OWY5
OGRlYWU1MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFNl
Z21lbnRlckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsU2VnbWVudGVyQ29uc3RydWN0b3IuY3BwCkBAIC04NCw5ICs4NCw3IEBAIEpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RJbnRsU2VnbWVudGVyLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAKICAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0gYXNPYmplY3QoY2FsbEZyYW1lLT5uZXdUYXJn
ZXQoKSk7Ci0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBuZXdUYXJnZXQgPT0gY2FsbEZyYW1l
LT5qc0NhbGxlZSgpCi0gICAgICAgID8gZ2xvYmFsT2JqZWN0LT5zZWdtZW50ZXJTdHJ1Y3R1cmUo
KQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGds
b2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdUYXJnZXQpLT5z
ZWdtZW50ZXJTdHJ1Y3R1cmUoKSk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBKU0NfR0VU
X0RFUklWRURfU1RSVUNUVVJFKHZtLCBzZWdtZW50ZXJTdHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2Fs
bEZyYW1lLT5qc0NhbGxlZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0p
OwogCiAgICAgSW50bFNlZ21lbnRlciogc2VnbWVudGVyID0gSW50bFNlZ21lbnRlcjo6Y3JlYXRl
KHZtLCBzdHJ1Y3R1cmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNjc1ZDk3YmVhMDY0YzIw
ZDAwMDY3ZjdlZTdmMWFkN2U1Y2U0NzhjNi4uMzk5NzQ3NDFmNjEzMWQ4MzExNzM2ZDkwYjQ2Y2Fl
MTliMjk4MmE0NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
cnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuY3BwCkBAIC03OCw5ICs3OCw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTR2VuZXJpY0FycmF5QnVmZmVyQ29uc3RydWN0b3I8c2hhcmluZ01vZGU+Ojpj
b25zdHJ1Y3RJbXBsKEpTR2xvCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwogCiAgICAgSlNPYmplY3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+bmV3
VGFyZ2V0KCkpOwotICAgIFN0cnVjdHVyZSogYXJyYXlCdWZmZXJTdHJ1Y3R1cmUgPSBuZXdUYXJn
ZXQgPT0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpCi0gICAgICAgID8gZ2xvYmFsT2JqZWN0LT5hcnJh
eUJ1ZmZlclN0cnVjdHVyZShzaGFyaW5nTW9kZSkKLSAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9u
OjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIG5ld1RhcmdldCwgZ2V0RnVu
Y3Rpb25SZWFsbSh2bSwgbmV3VGFyZ2V0KS0+YXJyYXlCdWZmZXJTdHJ1Y3R1cmUoc2hhcmluZ01v
ZGUpKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RV
UkUodm0sIGFycmF5QnVmZmVyU3RydWN0dXJlV2l0aFNoYXJpbmdNb2RlPHNoYXJpbmdNb2RlPiwg
bmV3VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHsgfSk7CiAKICAgICB1bnNpZ25lZCBsZW5ndGg7CkBAIC0xMDIsNyArMTAwLDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNHZW5lcmljQXJyYXlCdWZmZXJDb25zdHJ1Y3RvcjxzaGFyaW5n
TW9kZT46OmNvbnN0cnVjdEltcGwoSlNHbG8KICAgICAgICAgYnVmZmVyLT5tYWtlU2hhcmVkKCk7
CiAgICAgQVNTRVJUKHNoYXJpbmdNb2RlID09IGJ1ZmZlci0+c2hhcmluZ01vZGUoKSk7CiAKLSAg
ICBKU0FycmF5QnVmZmVyKiByZXN1bHQgPSBKU0FycmF5QnVmZmVyOjpjcmVhdGUodm0sIGFycmF5
QnVmZmVyU3RydWN0dXJlLCBXVEZNb3ZlKGJ1ZmZlcikpOworICAgIEpTQXJyYXlCdWZmZXIqIHJl
c3VsdCA9IEpTQXJyYXlCdWZmZXI6OmNyZWF0ZSh2bSwgc3RydWN0dXJlLCBXVEZNb3ZlKGJ1ZmZl
cikpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdD
b25zdHJ1Y3RvcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmgKaW5kZXggNzg2NTUyYTJiODYw
OTcyYjZkZmM3NzUyY2IxMDgxNWYzNzcyYWNmNC4uOTRmNmNiYWQ5NmYyOWEzN2Y3ZjgxMmJlMDNm
YTNlOWZlN2RkYWMxYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9y
SW5saW5lcy5oCkBAIC0xMzQsNyArMTM0LDkgQEAgaW5saW5lIEpTQXJyYXlCdWZmZXIqIGNvbnN0
cnVjdEN1c3RvbUFycmF5QnVmZmVySWZOZWVkZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgYXV0byByZXN1bHQgPSBKU0FycmF5
QnVmZmVyOjpjcmVhdGUodm0sIGdldEZ1bmN0aW9uUmVhbG0odm0sIGFzT2JqZWN0KHNwZWNpZXMu
dmFsdWUoKSkpLT5hcnJheUJ1ZmZlclN0cnVjdHVyZShBcnJheUJ1ZmZlclNoYXJpbmdNb2RlOjpE
ZWZhdWx0KSwgV1RGTW92ZShidWZmZXIpKTsKKyAgICBKU0dsb2JhbE9iamVjdCogZnVuY3Rpb25H
bG9iYWxPYmplY3QgPSBnZXRGdW5jdGlvblJlYWxtKGdsb2JhbE9iamVjdCwgYXNPYmplY3Qoc3Bl
Y2llcy52YWx1ZSgpKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7
CisgICAgYXV0byByZXN1bHQgPSBKU0FycmF5QnVmZmVyOjpjcmVhdGUodm0sIGZ1bmN0aW9uR2xv
YmFsT2JqZWN0LT5hcnJheUJ1ZmZlclN0cnVjdHVyZShBcnJheUJ1ZmZlclNoYXJpbmdNb2RlOjpE
ZWZhdWx0KSwgV1RGTW92ZShidWZmZXIpKTsKICAgICBpZiAocHJvdG90eXBlLmlzT2JqZWN0KCkp
CiAgICAgICAgIHJlc3VsdC0+c2V0UHJvdG90eXBlRGlyZWN0KHZtLCBwcm90b3R5cGUpOwogICAg
IHJldHVybiByZXN1bHQ7CkBAIC0yNjAsMTEgKzI2Miw4IEBAIEFMV0FZU19JTkxJTkUgRW5jb2Rl
ZEpTVmFsdWUgY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3SW1wbChKU0dsb2JhbE9iamVj
dCoKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU09i
amVjdCogbmV3VGFyZ2V0ID0gYXNPYmplY3QoY2FsbEZyYW1lLT5uZXdUYXJnZXQoKSk7Ci0gICAg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBuZXdUYXJnZXQgPT0gY2FsbEZyYW1lLT5qc0NhbGxlZSgp
Ci0gICAgICAgID8gZ2xvYmFsT2JqZWN0LT50eXBlZEFycmF5U3RydWN0dXJlKFZpZXdDbGFzczo6
VHlwZWRBcnJheVN0b3JhZ2VUeXBlKQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0
ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRGdW5jdGlvblJl
YWxtKHZtLCBuZXdUYXJnZXQpLT50eXBlZEFycmF5U3RydWN0dXJlKFZpZXdDbGFzczo6VHlwZWRB
cnJheVN0b3JhZ2VUeXBlKSk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBKU0NfR0VUX0RF
UklWRURfU1RSVUNUVVJFKHZtLCB0eXBlZEFycmF5U3RydWN0dXJlV2l0aFR5cGVkQXJyYXlUeXBl
PFZpZXdDbGFzczo6VHlwZWRBcnJheVN0b3JhZ2VUeXBlPiwgbmV3VGFyZ2V0LCBjYWxsRnJhbWUt
PmpzQ2FsbGVlKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0KICAg
ICBzaXplX3QgYXJnQ291bnQgPSBjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKTsKIAogICAgIGlm
ICghYXJnQ291bnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oCmluZGV4IDNlOWJkNjI0NTkzMzFiOGE1MTYyNjIyMzE0OThhZGYyZTExMzcyNTgu
LmIzNjI5MjhjMmQ5ZjFlMWViYzgzNTkzMDgwNTA5M2QwM2Y5YmEwMDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtNzg2LDYgKzc4Niw4
IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0IDogcHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmpl
Y3QgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQorICAgIHRlbXBsYXRlPEVycm9yVHlwZSBlcnJvclR5cGU+IFN0cnVjdHVyZSog
ZXJyb3JTdHJ1Y3R1cmVXaXRoRXJyb3JUeXBlKCkgY29uc3QgeyByZXR1cm4gZXJyb3JTdHJ1Y3R1
cmUoZXJyb3JUeXBlKTsgfQorCiAgICAgU3RydWN0dXJlKiBjYWxsZWVTdHJ1Y3R1cmUoKSBjb25z
dCB7IHJldHVybiBtX2NhbGxlZVN0cnVjdHVyZS5nZXQoKTsgfQogICAgIFN0cnVjdHVyZSogaG9z
dEZ1bmN0aW9uU3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV9ob3N0RnVuY3Rpb25TdHJ1Y3R1
cmUuZ2V0KCk7IH0KIApAQCAtOTE1LDYgKzkxNyw3IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0IDog
cHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgewogICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CisgICAgdGVt
cGxhdGU8QXJyYXlCdWZmZXJTaGFyaW5nTW9kZSBzaGFyaW5nTW9kZT4gU3RydWN0dXJlKiBhcnJh
eUJ1ZmZlclN0cnVjdHVyZVdpdGhTaGFyaW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIGFycmF5QnVm
ZmVyU3RydWN0dXJlKHNoYXJpbmdNb2RlKTsgfQogICAgIEpTT2JqZWN0KiBhcnJheUJ1ZmZlckNv
bnN0cnVjdG9yKEFycmF5QnVmZmVyU2hhcmluZ01vZGUgc2hhcmluZ01vZGUpIGNvbnN0CiAgICAg
ewogICAgICAgICBzd2l0Y2ggKHNoYXJpbmdNb2RlKSB7CkBAIC05NzgsNiArOTgxLDcgQEAgY2xh
c3MgSlNHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdCB7CiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiB0eXBlZEFycmF5U3RydWN0
dXJlQ29uY3VycmVudGx5KHR5cGUpID09IHN0cnVjdHVyZTsKICAgICB9CisgICAgdGVtcGxhdGU8
VHlwZWRBcnJheVR5cGUgdHlwZT4gU3RydWN0dXJlKiB0eXBlZEFycmF5U3RydWN0dXJlV2l0aFR5
cGVkQXJyYXlUeXBlKCkgY29uc3QgeyByZXR1cm4gdHlwZWRBcnJheVN0cnVjdHVyZSh0eXBlKTsg
fQogCiAgICAgSlNPYmplY3QqIHR5cGVkQXJyYXlDb25zdHJ1Y3RvcihUeXBlZEFycmF5VHlwZSB0
eXBlKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3RJbmxpbmVzLmgKaW5kZXggNWYxZjI1MjQ5M2Y0MDY2ZTAyYjFiYTBj
M2Y2YWJhZTVjMzllNDUyMS4uZmYwNWU3NDgyZmY2ZGU5YjBhZWZhZGQxMGNjY2IzYjNjMmMxNWUy
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3RJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3RJbmxpbmVzLmgKQEAgLTEwMSw5ICsxMDEsMTMgQEAgQUxXQVlTX0lOTElORSBib29sIEpT
R2xvYmFsT2JqZWN0Ojppc1NldFByb3RvdHlwZUFkZEZhc3RBbmROb25PYnNlcnZhYmxlKCkKIAog
QUxXQVlTX0lOTElORSBTdHJ1Y3R1cmUqIEpTR2xvYmFsT2JqZWN0OjphcnJheVN0cnVjdHVyZUZv
ckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSW5kZXhpbmdUeXBlIGluZGV4aW5nVHlwZSwgSlNWYWx1ZSBuZXdUYXJnZXQpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuICFuZXdUYXJnZXQgfHwgbmV3VGFyZ2V0ID09IGdsb2JhbE9iamVjdC0+YXJy
YXlDb25zdHJ1Y3RvcigpCi0gICAgICAgID8gZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZv
ckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oaW5kZXhpbmdUeXBlKQotICAgICAgICA6IElu
dGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgYXNP
YmplY3QobmV3VGFyZ2V0KSwgZ2V0RnVuY3Rpb25SZWFsbShnbG9iYWxPYmplY3QtPnZtKCksIGFz
T2JqZWN0KG5ld1RhcmdldCkpLT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0Fs
bG9jYXRpb24oaW5kZXhpbmdUeXBlKSk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBpZiAoIW5l
d1RhcmdldCB8fCBuZXdUYXJnZXQgPT0gZ2xvYmFsT2JqZWN0LT5hcnJheUNvbnN0cnVjdG9yKCkp
CisgICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdU
eXBlRHVyaW5nQWxsb2NhdGlvbihpbmRleGluZ1R5cGUpOworICAgIGF1dG8qIGZ1bmN0aW9uR2xv
YmFsT2JqZWN0ID0gZ2V0RnVuY3Rpb25SZWFsbShnbG9iYWxPYmplY3QsIGFzT2JqZWN0KG5ld1Rh
cmdldCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOworICAgIFJF
TEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NT
dHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBhc09iamVjdChuZXdUYXJnZXQpLCBmdW5jdGlvbkdsb2Jh
bE9iamVjdC0+YXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKGlu
ZGV4aW5nVHlwZSkpKTsKIH0KIAogaW5saW5lIEpTRnVuY3Rpb24qIEpTR2xvYmFsT2JqZWN0Ojp0
aHJvd1R5cGVFcnJvckZ1bmN0aW9uKCkgY29uc3QgeyByZXR1cm4ganNDYXN0PEpTRnVuY3Rpb24q
PihsaW5rVGltZUNvbnN0YW50KExpbmtUaW1lQ29uc3RhbnQ6OnRocm93VHlwZUVycm9yRnVuY3Rp
b24pKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwQ29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwQ29uc3RydWN0
b3IuY3BwCmluZGV4IDJjMzczMjU4MGNiZWNlMTM1YjJjZTUwYzkzMmRlYmExODBiY2YyZjMuLjc1
NTcxMDA5ZjhhMWViYWNkNDg5OWNlZTAzMGY4MTE3ZDNlYjdmMjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5jcHAKQEAgLTYzLDkgKzYzLDcg
QEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdE1hcCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSoKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CiAKICAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0gYXNPYmplY3QoY2FsbEZy
YW1lLT5uZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0dXJlKiBtYXBTdHJ1Y3R1cmUgPSBuZXdUYXJn
ZXQgPT0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpCi0gICAgICAgID8gZ2xvYmFsT2JqZWN0LT5tYXBT
dHJ1Y3R1cmUoKQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3Ry
dWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdU
YXJnZXQpLT5tYXBTdHJ1Y3R1cmUoKSk7CisgICAgU3RydWN0dXJlKiBtYXBTdHJ1Y3R1cmUgPSBK
U0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCBtYXBTdHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2Fs
bEZyYW1lLT5qc0NhbGxlZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0p
OwogCiAgICAgSlNWYWx1ZSBpdGVyYWJsZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3Ry
dWN0b3IuY3BwCmluZGV4IGI2ZTdlZGVmZDQyZWRjNjM1ZDkwYjdlMGU4YzdiNGZjMGMyNDNkMWQu
LmY1N2FhNTUwZjM3OGJhMTA3ODkwODQ3NGUxNDg0NmQ3YmQzYTM1YzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3Iu
Y3BwCkBAIC01MiwxMiArNTIsOCBAQCBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgTmF0aXZlRXJyb3JD
b25zdHJ1Y3RvcjxlcnJvclR5cGU+Ojpjb25zdHJ1Y3RJbXBsKEpTR2xvYmFsTwogICAgIEpTVmFs
dWUgbWVzc2FnZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CiAKICAgICBKU09iamVjdCogbmV3
VGFyZ2V0ID0gYXNPYmplY3QoY2FsbEZyYW1lLT5uZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0dXJl
KiBlcnJvclN0cnVjdHVyZSA9IG5ld1RhcmdldCA9PSBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkKLSAg
ICAgICAgPyBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKGVycm9yVHlwZSkKLSAgICAgICAg
OiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3Qs
IG5ld1RhcmdldCwgZ2V0RnVuY3Rpb25SZWFsbSh2bSwgbmV3VGFyZ2V0KS0+ZXJyb3JTdHJ1Y3R1
cmUoZXJyb3JUeXBlKSk7CisgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IEpTQ19HRVRf
REVSSVZFRF9TVFJVQ1RVUkUodm0sIGVycm9yU3RydWN0dXJlV2l0aEVycm9yVHlwZTxlcnJvclR5
cGU+LCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKLSAgICBBU1NFUlQoZXJyb3JTdHJ1Y3R1cmUpOwotCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6
Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5
cGVOb3RoaW5nLCBlcnJvclR5cGUsIGZhbHNlKSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKaW5kZXggOGZmNDUzNDk1
NWEwYTgxNzlkYjUyYzAyMzA4NDQ3ODhiZjM4ZDg2Yi4uNjIzYTE2YjUyMzVkZjgzOWZiOWU1ZGVl
ZWZiNjUyODVhY2E2MjdkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcApAQCAtMTAxLDkgKzEwMSw3IEBAIEpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihjb25zdHJ1Y3ROdW1iZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplCiAgICAgfQogCiAgICAgSlNPYmplY3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0
KGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkpOwotICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gbmV3
VGFyZ2V0ID09IGNhbGxGcmFtZS0+anNDYWxsZWUoKQotICAgICAgICA/IGdsb2JhbE9iamVjdC0+
bnVtYmVyT2JqZWN0U3RydWN0dXJlKCkKLSAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVh
dGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIG5ld1RhcmdldCwgZ2V0RnVuY3Rpb25S
ZWFsbSh2bSwgbmV3VGFyZ2V0KS0+bnVtYmVyT2JqZWN0U3RydWN0dXJlKCkpOworICAgIFN0cnVj
dHVyZSogc3RydWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgbnVtYmVyT2Jq
ZWN0U3RydWN0dXJlLCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIE51bWJlck9iamVjdCogb2JqZWN0
ID0gTnVtYmVyT2JqZWN0OjpjcmVhdGUodm0sIHN0cnVjdHVyZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKaW5kZXggODE4MDQ5
MWM1MzE1NjkzZjQ5NTMwMzVlYTlkYjY3OThkOTEwMDMzYi4uODBmYWUwMGZiMGJhY2U3MjI2MjZj
MjNkODQ0YjE1NzY2ZDUwMThhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcApAQCAtMTE0LDcgKzExNCw5IEBAIHN0YXRpYyBB
TFdBWVNfSU5MSU5FIEpTT2JqZWN0KiBjb25zdHJ1Y3RPYmplY3RXaXRoTmV3VGFyZ2V0KEpTR2xv
YmFsT2JqZWN0KiBnbG9iCiAgICAgLy8gMS4gSWYgTmV3VGFyZ2V0IGlzIG5laXRoZXIgdW5kZWZp
bmVkIG5vciB0aGUgYWN0aXZlIGZ1bmN0aW9uLCB0aGVuCiAgICAgaWYgKG5ld1RhcmdldCAmJiBu
ZXdUYXJnZXQgIT0gb2JqZWN0Q29uc3RydWN0b3IpIHsKICAgICAgICAgLy8gYS4gUmV0dXJuID8g
T3JkaW5hcnlDcmVhdGVGcm9tQ29uc3RydWN0b3IoTmV3VGFyZ2V0LCAiJU9iamVjdFByb3RvdHlw
ZSUiKS4KLSAgICAgICAgU3RydWN0dXJlKiBiYXNlU3RydWN0dXJlID0gZ2V0RnVuY3Rpb25SZWFs
bSh2bSwgYXNPYmplY3QobmV3VGFyZ2V0KSktPm9iamVjdFN0cnVjdHVyZUZvck9iamVjdENvbnN0
cnVjdG9yKCk7CisgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBmdW5jdGlvbkdsb2JhbE9iamVjdCA9
IGdldEZ1bmN0aW9uUmVhbG0oZ2xvYmFsT2JqZWN0LCBhc09iamVjdChuZXdUYXJnZXQpKTsKKyAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CisgICAgICAgIFN0cnVj
dHVyZSogYmFzZVN0cnVjdHVyZSA9IGZ1bmN0aW9uR2xvYmFsT2JqZWN0LT5vYmplY3RTdHJ1Y3R1
cmVGb3JPYmplY3RDb25zdHJ1Y3RvcigpOwogICAgICAgICBTdHJ1Y3R1cmUqIG9iamVjdFN0cnVj
dHVyZSA9IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9i
amVjdCwgYXNPYmplY3QobmV3VGFyZ2V0KSwgYmFzZVN0cnVjdHVyZSk7CiAgICAgICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAgICAgICByZXR1cm4gY29uc3RydWN0
RW1wdHlPYmplY3Qodm0sIG9iamVjdFN0cnVjdHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwCmluZGV4IGRjY2ZjZGM4YWZiMzY4
ZTMwMzU0YWE2ZWU2OTBlODA5MGEzNmQzM2IuLjM4N2JlMjQ4MjYwYzViN2JkY2M4OTZhNzgzNzY0
MTNhN2UyNTkxZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1By
b3h5Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1By
b3h5Q29uc3RydWN0b3IuY3BwCkBAIC00MCw3ICs0MCw3IEBAIGNvbnN0IENsYXNzSW5mbyBQcm94
eUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJQcm94eSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIs
IG51CiBQcm94eUNvbnN0cnVjdG9yKiBQcm94eUNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsKICAgICBQcm94eUNvbnN0cnVjdG9yKiBjb25zdHJ1Y3Rv
ciA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFByb3h5Q29uc3RydWN0b3I+KHZtLmhlYXAp
KSBQcm94eUNvbnN0cnVjdG9yKHZtLCBzdHJ1Y3R1cmUpOwotICAgIGNvbnN0cnVjdG9yLT5maW5p
c2hDcmVhdGlvbih2bSwgIlByb3h5Iiwgc3RydWN0dXJlLT5nbG9iYWxPYmplY3QoKSk7CisgICAg
Y29uc3RydWN0b3ItPmZpbmlzaENyZWF0aW9uKHZtLCBzdHJ1Y3R1cmUtPmdsb2JhbE9iamVjdCgp
KTsKICAgICByZXR1cm4gY29uc3RydWN0b3I7CiB9CiAKQEAgLTc0LDEwICs3NCwxMCBAQCBKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04obWFrZVJldm9jYWJsZVByb3h5LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsK
IH0KIAotdm9pZCBQcm94eUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIGNvbnN0
IGNoYXIqIG5hbWUsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIFByb3h5Q29u
c3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkKIHsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgMiwgbmFtZSwgUHJvcGVydHlB
ZGRpdGlvbk1vZGU6OldpdGhTdHJ1Y3R1cmVUcmFuc2l0aW9uKTsKLSAgICBwdXREaXJlY3Qodm0s
IG1ha2VJZGVudGlmaWVyKHZtLCAicmV2b2NhYmxlIiksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0LCAyLCAicmV2b2NhYmxlIl9zLCBtYWtlUmV2b2NhYmxlUHJveHkpKTsKKyAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgMiwgIlByb3h5IiwgUHJvcGVydHlBZGRpdGlvbk1v
ZGU6OldpdGhvdXRTdHJ1Y3R1cmVUcmFuc2l0aW9uKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9O
X1dJVEhPVVRfVFJBTlNJVElPTigicmV2b2NhYmxlIiwgbWFrZVJldm9jYWJsZVByb3h5LCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMik7CiB9CiAK
IEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RQcm94eU9iamVjdCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuaAppbmRleCA1YzkzYTY2
MzA4NTgzNTcwZjU0MjFiY2VjM2UwNzQ5MGVjYjg2NGU4Li5iNDNmZDFjMzBiMDYzN2NkYjk4MWIz
MDJmY2I3ZjYxMzgxZWYxMTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Qcm94eUNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUHJveHlDb25zdHJ1Y3Rvci5oCkBAIC00Myw3ICs0Myw3IEBAIGNsYXNzIFByb3h5Q29uc3Ry
dWN0b3IgZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKElu
dGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAogICAgIH0KIAot
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBjb25zdCBjaGFyKiBuYW1lLCBKU0dsb2JhbE9i
amVjdCopOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCopOwog
CiBwcml2YXRlOgogICAgIFByb3h5Q29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcApp
bmRleCA0YTMwOGJkOWRhZTQ1YmM4NjY0YzljZmU4NGFhOWQ2Nzk1ZGYxOWUxLi4yN2FiNDA1NTA0
OTQyNzRiNzJkMWQxNmM4OTM4YzFiZDM5NGQ2YTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0yMTIsOSArMjEyLDEw
IEBAIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRSZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGlu
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAKIGlubGluZSBTdHJ1Y3R1cmUqIGdldFJlZ0V4
cFN0cnVjdHVyZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIG5ld1Rhcmdl
dCkKIHsKLSAgICByZXR1cm4gIW5ld1RhcmdldCB8fCBuZXdUYXJnZXQgPT0gZ2xvYmFsT2JqZWN0
LT5yZWdFeHBDb25zdHJ1Y3RvcigpCi0gICAgICAgID8gZ2xvYmFsT2JqZWN0LT5yZWdFeHBTdHJ1
Y3R1cmUoKQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0
dXJlKGdsb2JhbE9iamVjdCwgYXNPYmplY3QobmV3VGFyZ2V0KSwgZ2V0RnVuY3Rpb25SZWFsbShn
bG9iYWxPYmplY3QtPnZtKCksIGFzT2JqZWN0KG5ld1RhcmdldCkpLT5yZWdFeHBTdHJ1Y3R1cmUo
KSk7CisgICAgaWYgKCFuZXdUYXJnZXQpCisgICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QtPnJl
Z0V4cFN0cnVjdHVyZSgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBy
ZXR1cm4gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgcmVnRXhwU3RydWN0dXJlLCBhc09i
amVjdChuZXdUYXJnZXQpLCBnbG9iYWxPYmplY3QtPnJlZ0V4cENvbnN0cnVjdG9yKCkpOwogfQog
CiBpbmxpbmUgT3B0aW9uU2V0PFlhcnI6OkZsYWdzPiB0b0ZsYWdzKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTVmFsdWUgZmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TZXRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggOWZkYTg5YzZkNzZkNmRmNmNlZjJlZGRi
MzI5MGZjZDg3YjFlOTJlNC4uODFlYmFkOWE3MjI1MTZjOWMwZTg5MDFkYjY3YjcxYzFiMmZhNWU3
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENvbnN0cnVjdG9y
LmNwcApAQCAtNjMsOSArNjMsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0
U2V0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKgogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIEpTT2JqZWN0KiBuZXdUYXJn
ZXQgPSBhc09iamVjdChjYWxsRnJhbWUtPm5ld1RhcmdldCgpKTsKLSAgICBTdHJ1Y3R1cmUqIHNl
dFN0cnVjdHVyZSA9IG5ld1RhcmdldCA9PSBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkKLSAgICAgICAg
PyBnbG9iYWxPYmplY3QtPnNldFN0cnVjdHVyZSgpCi0gICAgICAgIDogSW50ZXJuYWxGdW5jdGlv
bjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQsIGdldEZ1
bmN0aW9uUmVhbG0odm0sIG5ld1RhcmdldCktPnNldFN0cnVjdHVyZSgpKTsKKyAgICBTdHJ1Y3R1
cmUqIHNldFN0cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RVUkUodm0sIHNldFN0cnVj
dHVyZSwgbmV3VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICBKU1ZhbHVlIGl0ZXJhYmxlID0gY2FsbEZyYW1l
LT5hcmd1bWVudCgwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ0NvbnN0cnVjdG9yLmNwcAppbmRleCBmMmJhNWM0MTFiYTYyZTA2MGJlYTVkZWNjNWU4ZDU1
OTFmNWEyY2YzLi45MmRjOTQ2OWQyYTg0YzU0OTIyMGUyMWY1ZjE2Zjc3YTAwNTVmZDg1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3Iu
Y3BwCkBAIC0xNDAsOSArMTQwLDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVj
dFdpdGhTdHJpbmdDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU09iamVjdCogbmV3VGFy
Z2V0ID0gYXNPYmplY3QoY2FsbEZyYW1lLT5uZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUgPSBuZXdUYXJnZXQgPT0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpCi0gICAgICAgID8g
Z2xvYmFsT2JqZWN0LT5zdHJpbmdPYmplY3RTdHJ1Y3R1cmUoKQotICAgICAgICA6IEludGVybmFs
RnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0
LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdUYXJnZXQpLT5zdHJpbmdPYmplY3RTdHJ1Y3R1cmUo
KSk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJF
KHZtLCBzdHJpbmdPYmplY3RTdHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2FsbEZyYW1lLT5qc0NhbGxl
ZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgaWYgKCFj
YWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3IuY3BwCmluZGV4IDlhOGM2ZmUzZWRjNGI2YTUx
N2M2MDhlODdkNjg1Yjc1MDhjOGU0NDYuLjRmYzg0ZTUxOWM0NDFjMTY5NGJjZmU0NDdjMWVlMzBl
ZWI2MmQ0MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtN
YXBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vh
a01hcENvbnN0cnVjdG9yLmNwcApAQCAtNjIsOSArNjIsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY29uc3RydWN0V2Vha01hcCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcgogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIEpT
T2JqZWN0KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJhbWUtPm5ld1RhcmdldCgpKTsKLSAg
ICBTdHJ1Y3R1cmUqIHdlYWtNYXBTdHJ1Y3R1cmUgPSBuZXdUYXJnZXQgPT0gY2FsbEZyYW1lLT5q
c0NhbGxlZSgpCi0gICAgICAgID8gZ2xvYmFsT2JqZWN0LT53ZWFrTWFwU3RydWN0dXJlKCkKLSAg
ICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxP
YmplY3QsIG5ld1RhcmdldCwgZ2V0RnVuY3Rpb25SZWFsbSh2bSwgbmV3VGFyZ2V0KS0+d2Vha01h
cFN0cnVjdHVyZSgpKTsKKyAgICBTdHJ1Y3R1cmUqIHdlYWtNYXBTdHJ1Y3R1cmUgPSBKU0NfR0VU
X0RFUklWRURfU1RSVUNUVVJFKHZtLCB3ZWFrTWFwU3RydWN0dXJlLCBuZXdUYXJnZXQsIGNhbGxG
cmFtZS0+anNDYWxsZWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsK
IAogICAgIEpTV2Vha01hcCogd2Vha01hcCA9IEpTV2Vha01hcDo6Y3JlYXRlKHZtLCB3ZWFrTWFw
U3RydWN0dXJlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dl
YWtPYmplY3RSZWZDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9XZWFrT2JqZWN0UmVmQ29uc3RydWN0b3IuY3BwCmluZGV4IDU2NGQwOTM0MjA2MDg4OGJkMWRk
MTdlYTA2MDUwOTcwNTc0YzUxZTcuLmZiZmFmMzVjNzhiZjZlOTY4NzFjYzBkNzQxMDFmY2ZiYjA3
ZGU5ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtPYmpl
Y3RSZWZDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
V2Vha09iamVjdFJlZkNvbnN0cnVjdG9yLmNwcApAQCAtNjQsOSArNjQsNyBAQCBKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oY29uc3RydWN0V2Vha1JlZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcgogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmpl
Y3QsIHNjb3BlLCAiRmlyc3QgYXJndW1lbnQgdG8gV2Vha1JlZiBzaG91bGQgYmUgYW4gb2JqZWN0
Il9zKTsKIAogICAgIEpTT2JqZWN0KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJhbWUtPm5l
d1RhcmdldCgpKTsKLSAgICBTdHJ1Y3R1cmUqIHdlYWtPYmplY3RSZWZTdHJ1Y3R1cmUgPSBuZXdU
YXJnZXQgPT0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpCi0gICAgICAgID8gZ2xvYmFsT2JqZWN0LT53
ZWFrT2JqZWN0UmVmU3RydWN0dXJlKCkKLSAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVh
dGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIG5ld1RhcmdldCwgZ2V0RnVuY3Rpb25S
ZWFsbSh2bSwgbmV3VGFyZ2V0KS0+d2Vha09iamVjdFJlZlN0cnVjdHVyZSgpKTsKKyAgICBTdHJ1
Y3R1cmUqIHdlYWtPYmplY3RSZWZTdHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJF
KHZtLCB3ZWFrT2JqZWN0UmVmU3RydWN0dXJlLCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxs
ZWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKEpTV2Vha09iamVjdFJlZjo6Y3Jl
YXRlKHZtLCB3ZWFrT2JqZWN0UmVmU3RydWN0dXJlLCBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3Vt
ZW50KDApLmdldE9iamVjdCgpKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMzkyOWNjOTJhMjAyODgxNGJjZjA5
YjRhOWQxNGUyMmEyZmQwNzNmNC4uNjI0ZWIwYzJhMDU4ZWU3ZDhjOGUxMGM0YWVjZjBiMTEwNzUy
YjdmYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldENv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0
Q29uc3RydWN0b3IuY3BwCkBAIC02Miw5ICs2Miw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihjb25zdHJ1Y3RXZWFrU2V0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNPYmpl
Y3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkpOwotICAgIFN0
cnVjdHVyZSogd2Vha1NldFN0cnVjdHVyZSA9IG5ld1RhcmdldCA9PSBjYWxsRnJhbWUtPmpzQ2Fs
bGVlKCkKLSAgICAgICAgPyBnbG9iYWxPYmplY3QtPndlYWtTZXRTdHJ1Y3R1cmUoKQotICAgICAg
ICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVj
dCwgbmV3VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdUYXJnZXQpLT53ZWFrU2V0U3Ry
dWN0dXJlKCkpOworICAgIFN0cnVjdHVyZSogd2Vha1NldFN0cnVjdHVyZSA9IEpTQ19HRVRfREVS
SVZFRF9TVFJVQ1RVUkUodm0sIHdlYWtTZXRTdHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2FsbEZyYW1l
LT5qc0NhbGxlZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAg
ICAgSlNXZWFrU2V0KiB3ZWFrU2V0ID0gSlNXZWFrU2V0OjpjcmVhdGUodm0sIHdlYWtTZXRTdHJ1
Y3R1cmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCBjM2Ew
ZDM5N2Y1MDRlMjU4ZjFkNzBmOGI0ODJiNzlhMWQ5ZTcyNjZjLi41NjE4MWU0MjI4MzE4N2E4M2U3
NmY0ZDg5MDg2NDEzYjAwOWQzOGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVj
dG9yLmNwcApAQCAtNTMsOSArNTMsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbAogICAgIEpT
VmFsdWUgbWVzc2FnZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CiAKICAgICBKU09iamVjdCog
bmV3VGFyZ2V0ID0gYXNPYmplY3QoY2FsbEZyYW1lLT5uZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUgPSBuZXdUYXJnZXQgPT0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpCi0gICAg
ICAgID8gZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseUNvbXBpbGVFcnJvclN0cnVjdHVyZSgpCi0g
ICAgICAgIDogSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZ2xvYmFs
T2JqZWN0LCBuZXdUYXJnZXQsIGdldEZ1bmN0aW9uUmVhbG0odm0sIG5ld1RhcmdldCktPndlYkFz
c2VtYmx5Q29tcGlsZUVycm9yU3RydWN0dXJlKCkpOworICAgIFN0cnVjdHVyZSogc3RydWN0dXJl
ID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgd2ViQXNzZW1ibHlDb21waWxlRXJyb3JT
dHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2FsbEZyYW1lLT5qc0NhbGxlZSgpKTsKICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3Bl
LCBKU1ZhbHVlOjplbmNvZGUoSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjo6Y3JlYXRlKGdsb2Jh
bE9iamVjdCwgdm0sIHN0cnVjdHVyZSwgbWVzc2FnZSkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rv
ci5jcHAKaW5kZXggOTFiYmE3NjVjY2Y1MzEwZmIwZmE5YTIwMDhhMzI5NDM5ZmUwODI3My4uZDBh
ODBlOTE3NGU3YTQzYjMyZTY0OGQ0MDFhNWY2Y2M4OTFhYjVmYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25z
dHJ1Y3Rvci5jcHAKQEAgLTU1LDkgKzU1LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNv
bnN0cnVjdEpTV2ViQXNzZW1ibHlHbG9iYWwsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIEpTT2Jq
ZWN0KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJhbWUtPm5ld1RhcmdldCgpKTsKLSAgICBT
dHJ1Y3R1cmUqIHdlYkFzc2VtYmx5R2xvYmFsU3RydWN0dXJlID0gbmV3VGFyZ2V0ID09IGNhbGxG
cmFtZS0+anNDYWxsZWUoKQotICAgICAgICA/IGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlHbG9i
YWxTdHJ1Y3R1cmUoKQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNz
U3RydWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBu
ZXdUYXJnZXQpLT53ZWJBc3NlbWJseUdsb2JhbFN0cnVjdHVyZSgpKTsKKyAgICBTdHJ1Y3R1cmUq
IHdlYkFzc2VtYmx5R2xvYmFsU3RydWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2
bSwgd2ViQXNzZW1ibHlHbG9iYWxTdHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2FsbEZyYW1lLT5qc0Nh
bGxlZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CiAKICAg
ICBKU09iamVjdCogZ2xvYmFsRGVzY3JpcHRvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3Iu
Y3BwCmluZGV4IGY0YWU3YTMyNjFhMGQ5NGQyYTI5YWY0NDkxZGEyZDIxNWZiY2FlMDEuLjUzZThk
ZGQ1NTExNjUzYmU4YTcyYWQ4ZGYyNzhjN2FkM2YwNTFhMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNv
bnN0cnVjdG9yLmNwcApAQCAtNjYsOSArNjYsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
Y29uc3RydWN0SlNXZWJBc3NlbWJseUluc3RhbmNlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVj
dCwgc2NvcGUsIGNyZWF0ZVR5cGVFcnJvcihnbG9iYWxPYmplY3QsICJzZWNvbmQgYXJndW1lbnQg
dG8gV2ViQXNzZW1ibHkuSW5zdGFuY2UgbXVzdCBiZSB1bmRlZmluZWQgb3IgYW4gT2JqZWN0Il9z
LCBkZWZhdWx0U291cmNlQXBwZW5kZXIsIHJ1bnRpbWVUeXBlRm9yVmFsdWUodm0sIGltcG9ydEFy
Z3VtZW50KSkpKTsKIAogICAgIEpTT2JqZWN0KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJh
bWUtPm5ld1RhcmdldCgpKTsKLSAgICBTdHJ1Y3R1cmUqIGluc3RhbmNlU3RydWN0dXJlID0gbmV3
VGFyZ2V0ID09IGNhbGxGcmFtZS0+anNDYWxsZWUoKQotICAgICAgICA/IGdsb2JhbE9iamVjdC0+
d2ViQXNzZW1ibHlJbnN0YW5jZVN0cnVjdHVyZSgpCi0gICAgICAgIDogSW50ZXJuYWxGdW5jdGlv
bjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQsIGdldEZ1
bmN0aW9uUmVhbG0odm0sIG5ld1RhcmdldCktPndlYkFzc2VtYmx5SW5zdGFuY2VTdHJ1Y3R1cmUo
KSk7CisgICAgU3RydWN0dXJlKiBpbnN0YW5jZVN0cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9T
VFJVQ1RVUkUodm0sIHdlYkFzc2VtYmx5SW5zdGFuY2VTdHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2Fs
bEZyYW1lLT5qc0NhbGxlZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0p
OwogCiAgICAgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0YW5jZSA9IEpTV2ViQXNzZW1ibHlJ
bnN0YW5jZTo6dHJ5Q3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIEpTV2ViQXNzZW1ibHlJbnN0YW5j
ZTo6Y3JlYXRlUHJpdmF0ZU1vZHVsZUtleSgpLCBtb2R1bGUsIGltcG9ydE9iamVjdCwgaW5zdGFu
Y2VTdHJ1Y3R1cmUsIFJlZjxXYXNtOjpNb2R1bGU+KG1vZHVsZS0+bW9kdWxlKCkpLCBXYXNtOjpD
cmVhdGlvbk1vZGU6OkZyb21KUyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwCmlu
ZGV4IDJjNWY2YTI5MzFmMTUyMTU4NWFhYTkzNWU1NmI0YmQyZjE5YzE2YjEuLjFjNjBjOGM1YzE5
NDc1MTgxZGQzMGNhNjBlZjNkZGM2NWQzY2Q1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3Ry
dWN0b3IuY3BwCkBAIC01Myw5ICs1Myw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25z
dHJ1Y3RKU1dlYkFzc2VtYmx5TGlua0Vycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAg
SlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKIAogICAgIEpTT2JqZWN0
KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJhbWUtPm5ld1RhcmdldCgpKTsKLSAgICBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSA9IG5ld1RhcmdldCA9PSBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkKLSAg
ICAgICAgPyBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5TGlua0Vycm9yU3RydWN0dXJlKCkKLSAg
ICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxP
YmplY3QsIG5ld1RhcmdldCwgZ2V0RnVuY3Rpb25SZWFsbSh2bSwgbmV3VGFyZ2V0KS0+d2ViQXNz
ZW1ibHlMaW5rRXJyb3JTdHJ1Y3R1cmUoKSk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBK
U0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCB3ZWJBc3NlbWJseUxpbmtFcnJvclN0cnVjdHVy
ZSwgbmV3VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFs
dWU6OmVuY29kZShKU1dlYkFzc2VtYmx5TGlua0Vycm9yOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2
bSwgc3RydWN0dXJlLCBtZXNzYWdlKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmNwcAppbmRl
eCBmZDliMDYzMmMxMTIyNjIwMGFiZmQ2OGU0NWZkYWUyZDk2YmQ5YWM4Li43MjEyZWI1MzEyNDlk
MWUzN2Q2ZGQ4NjBlMWJjYTViODYzNWM4MzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmNw
cApAQCAtNTgsOSArNTgsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNX
ZWJBc3NlbWJseU1lbW9yeSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNPYmplY3QqIG5ld1Rh
cmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkpOwotICAgIFN0cnVjdHVyZSog
d2ViQXNzZW1ibHlNZW1vcnlTdHJ1Y3R1cmUgPSBuZXdUYXJnZXQgPT0gY2FsbEZyYW1lLT5qc0Nh
bGxlZSgpCi0gICAgICAgID8gZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseU1lbW9yeVN0cnVjdHVy
ZSgpCi0gICAgICAgIDogSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUo
Z2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQsIGdldEZ1bmN0aW9uUmVhbG0odm0sIG5ld1RhcmdldCkt
PndlYkFzc2VtYmx5TWVtb3J5U3RydWN0dXJlKCkpOworICAgIFN0cnVjdHVyZSogd2ViQXNzZW1i
bHlNZW1vcnlTdHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCB3ZWJBc3Nl
bWJseU1lbW9yeVN0cnVjdHVyZSwgbmV3VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwog
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgeyB9KTsKIAogICAgIEpTT2JqZWN0
KiBtZW1vcnlEZXNjcmlwdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcAppbmRleCA0ODJi
NjI0OTExZGNmMGZkYWExNTUyNGI3OWQ2OGZjMGY4YWRiZGNiLi5lZjZkMjUwMWE3OWQ2M2VlZmM0
MWE2ZDY1N2E3YzUwNDNhNTVjN2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcApAQCAt
MTgwLDkgKzE4MCw3IEBAIEpTV2ViQXNzZW1ibHlNb2R1bGUqIFdlYkFzc2VtYmx5TW9kdWxlQ29u
c3RydWN0b3I6OmNyZWF0ZU1vZHVsZShKU0dsb2JhbE9iamVjdCoKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0gYXNP
YmplY3QoY2FsbEZyYW1lLT5uZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUg
PSBuZXdUYXJnZXQgPT0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpCi0gICAgICAgID8gZ2xvYmFsT2Jq
ZWN0LT53ZWJBc3NlbWJseU1vZHVsZVN0cnVjdHVyZSgpCi0gICAgICAgIDogSW50ZXJuYWxGdW5j
dGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQsIGdl
dEZ1bmN0aW9uUmVhbG0odm0sIG5ld1RhcmdldCktPndlYkFzc2VtYmx5TW9kdWxlU3RydWN0dXJl
KCkpOworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVS
RSh2bSwgd2ViQXNzZW1ibHlNb2R1bGVTdHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2FsbEZyYW1lLT5q
c0NhbGxlZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNXZWJBc3NlbWJseU1vZHVsZTo6Y3JlYXRl
U3R1Yih2bSwgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIFdhc206Ok1vZHVsZTo6dmFsaWRhdGVT
eW5jKCZ2bS53YXNtQ29udGV4dCwgV1RGTW92ZShidWZmZXIpKSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1
Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRp
bWVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCBhODU2NjljNTE4YjFlOWFhNjhjOTVhZDA1NjZl
YmZkNmZjM2RmYThhLi4wNjZmMjZjOWM5YTc2NzljMzFhMzExZDRiOGRkYzU5MTJlZDQ1NzNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRp
bWVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtNTUsOSArNTUsNyBA
QCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNXZWJBc3NlbWJseVJ1bnRpbWVF
cnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbAogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IGVuY29kZWRKU1ZhbHVlKCkpOwogCiAgICAgSlNPYmplY3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0
KGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkpOwotICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gbmV3
VGFyZ2V0ID09IGNhbGxGcmFtZS0+anNDYWxsZWUoKQotICAgICAgICA/IGdsb2JhbE9iamVjdC0+
d2ViQXNzZW1ibHlSdW50aW1lRXJyb3JTdHJ1Y3R1cmUoKQotICAgICAgICA6IEludGVybmFsRnVu
Y3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBn
ZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdUYXJnZXQpLT53ZWJBc3NlbWJseVJ1bnRpbWVFcnJvclN0
cnVjdHVyZSgpKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9T
VFJVQ1RVUkUodm0sIHdlYkFzc2VtYmx5UnVudGltZUVycm9yU3RydWN0dXJlLCBuZXdUYXJnZXQs
IGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
eyB9KTsKIAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNXZWJBc3NlbWJseVJ1bnRpbWVF
cnJvcjo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIHN0cnVjdHVyZSwgV1RGTW92ZShtZXNzYWdl
U3RyaW5nKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNzYyNmZkZThmZDdhNDI4
YzMyZDQ0YWNhNjVkMGNjYzBiZjJhNTI5My4uYjgwNThhOWQyYTUzNGRhNGNhN2JhNzk2NjlmYzM2
NDk0YWJlMGYwZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuY3BwCkBAIC01Niw5ICs1Niw3IEBA
IEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5VGFibGUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CiAKICAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0gYXNPYmplY3QoY2Fs
bEZyYW1lLT5uZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0dXJlKiB3ZWJBc3NlbWJseVRhYmxlU3Ry
dWN0dXJlID0gbmV3VGFyZ2V0ID09IGNhbGxGcmFtZS0+anNDYWxsZWUoKQotICAgICAgICA/IGds
b2JhbE9iamVjdC0+d2ViQXNzZW1ibHlUYWJsZVN0cnVjdHVyZSgpCi0gICAgICAgIDogSW50ZXJu
YWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBuZXdUYXJn
ZXQsIGdldEZ1bmN0aW9uUmVhbG0odm0sIG5ld1RhcmdldCktPndlYkFzc2VtYmx5VGFibGVTdHJ1
Y3R1cmUoKSk7CisgICAgU3RydWN0dXJlKiB3ZWJBc3NlbWJseVRhYmxlU3RydWN0dXJlID0gSlND
X0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgd2ViQXNzZW1ibHlUYWJsZVN0cnVjdHVyZSwgbmV3
VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
dGhyb3dTY29wZSwgeyB9KTsKIAogICAgIEpTT2JqZWN0KiBtZW1vcnlEZXNjcmlwdG9yOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyQ2FjaGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlckNhY2hlLmgKaW5kZXggYWVm
MTJiZDIzMDI1ZTcwZjljZDczMDFlNjlmOGZjOWYyMjE1OWYzOS4uMGExZWZhYmY5NGU5MmU4ODgy
MTE5MDc1YzA0MmNiNjc2NTkxOWMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XcmFwcGVyQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdyYXBwZXJDYWNoZS5oCkBAIC0yMTYsNyArMjE2LDkgQEAgdGVtcGxhdGU8dHlwZW5h
bWUgRE9NQ2xhc3M+IGlubGluZSB2b2lkIHNldFN1YmNsYXNzU3RydWN0dXJlSWZOZWVkZWQoSlND
OjpKU0dsb2IKICAgICBKU0M6OlZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgYXV0byogbmV3
VGFyZ2V0R2xvYmFsT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihKU0M6
OmdldEZ1bmN0aW9uUmVhbG0odm0sIG5ld1RhcmdldCkpOworICAgIGF1dG8qIGZ1bmN0aW9uR2xv
YmFsT2JqZWN0ID0gSlNDOjpnZXRGdW5jdGlvblJlYWxtKGxleGljYWxHbG9iYWxPYmplY3QsIG5l
d1RhcmdldCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKKyAgICBh
dXRvKiBuZXdUYXJnZXRHbG9iYWxPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVj
dCo+KGZ1bmN0aW9uR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvKiBiYXNlU3RydWN0dXJlID0gZ2V0
RE9NU3RydWN0dXJlPFdyYXBwZXJDbGFzcz4odm0sICpuZXdUYXJnZXRHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8qIHN1YmNsYXNzU3RydWN0dXJlID0gSlNDOjpJbnRlcm5hbEZ1bmN0aW9uOjpjcmVh
dGVTdWJjbGFzc1N0cnVjdHVyZShsZXhpY2FsR2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQsIGJhc2VT
dHJ1Y3R1cmUpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxFbGVtZW50Q3VzdG9tLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRDdXN0b20uY3BwCmlu
ZGV4IGVjZWYzYmFiMjMwNTlmNjQ4OTU3ZGU3YjY1MWFiMTdjMjA1ODU3YjUuLjcwMjRlZGFkYjQ3
NzBmZGQ0MTc4ZWU0YzU5ZjU4OWVmNzM4Y2ZjYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRDdXN0b20uY3BwCkBAIC01NSw3ICs1NSw5IEBAIEVu
Y29kZWRKU1ZhbHVlIGNvbnN0cnVjdEpTSFRNTEVsZW1lbnQoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGCiAgICAgQVNTRVJUKGNvbnRleHQtPmlzRG9jdW1lbnQoKSk7
CiAKICAgICBhdXRvKiBuZXdUYXJnZXQgPSBjYWxsRnJhbWUubmV3VGFyZ2V0KCkuZ2V0T2JqZWN0
KCk7Ci0gICAgYXV0byogbmV3VGFyZ2V0R2xvYmFsT2JqZWN0ID0ganNDYXN0PEpTRE9NR2xvYmFs
T2JqZWN0Kj4oZ2V0RnVuY3Rpb25SZWFsbSh2bSwgbmV3VGFyZ2V0KSk7CisgICAgYXV0byogZnVu
Y3Rpb25HbG9iYWxPYmplY3QgPSBnZXRGdW5jdGlvblJlYWxtKGxleGljYWxHbG9iYWxPYmplY3Qs
IG5ld1RhcmdldCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBh
dXRvKiBuZXdUYXJnZXRHbG9iYWxPYmplY3QgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihm
dW5jdGlvbkdsb2JhbE9iamVjdCk7CiAgICAgSlNWYWx1ZSBodG1sRWxlbWVudENvbnN0cnVjdG9y
VmFsdWUgPSBKU0hUTUxFbGVtZW50OjpnZXRDb25zdHJ1Y3Rvcih2bSwgbmV3VGFyZ2V0R2xvYmFs
T2JqZWN0KTsKICAgICBpZiAobmV3VGFyZ2V0ID09IGh0bWxFbGVtZW50Q29uc3RydWN0b3JWYWx1
ZSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwg
c2NvcGUsICJuZXcudGFyZ2V0IGlzIG5vdCBhIHZhbGlkIGN1c3RvbSBlbGVtZW50IGNvbnN0cnVj
dG9yIl9zKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggM2E1ZTI3MDQ5NTNhZDA4NTQ1NzY0NDg0YmMzNDk4MjliOTgyYmE1ZS4uODg2NDRl
YzkzZGUwYTVhNTM4MmI0ZTJkYTk2MjA0YjkwODQxNmRkMCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0w
Mi0yNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0Nd
IFRocm93IFR5cGVFcnJvciB3aGVuIGdldEZ1bmN0aW9uUmVhbG0gaGl0cyByZXZva2VkIFByb3h5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1MjMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3Qy
NjIvZXhwZWN0YXRpb25zLnlhbWw6CisKIDIwMjEtMDItMjYgIE1pY2hhZWwgU2Fib2ZmICA8bXNh
Ym9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgRm9sbG93dXAgdGVzdCBmaXggdG8gcjI3MzU5NApk
aWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sIGIvSlNUZXN0cy90
ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCmluZGV4IDc1YTY2NDliOWZiNjRjZjEyNDllMGE0YjA5
MzEzYzAyZmE4NzE3Y2MuLmQ1OTI3YjFjN2E4MDhkZjdiMWQ4NmNiZjkyYTBjM2IzNWU1MmU1NjQg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAorKysgYi9KU1Rl
c3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKQEAgLTYxMiwxMiArNjEyLDYgQEAgdGVzdC9i
dWlsdC1pbnMvRnVuY3Rpb24vY2FsbC1iaW5kLXRoaXMtcmVhbG0tdW5kZWYuanM6CiB0ZXN0L2J1
aWx0LWlucy9GdW5jdGlvbi9pbnRlcm5hbHMvQ2FsbC9jbGFzcy1jdG9yLXJlYWxtLmpzOgogICBk
ZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEgVHlw
ZUVycm9yJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJy
b3IgYnV0IGdvdCBhIFR5cGVFcnJvcicKLXRlc3QvYnVpbHQtaW5zL0Z1bmN0aW9uL2ludGVybmFs
cy9Db25zdHJ1Y3QvYmFzZS1jdG9yLXJldm9rZWQtcHJveHktcmVhbG0uanM6Ci0gIGRlZmF1bHQ6
ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8g
ZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJv
cjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2Fz
IHRocm93biBhdCBhbGwnCi10ZXN0L2J1aWx0LWlucy9GdW5jdGlvbi9pbnRlcm5hbHMvQ29uc3Ry
dWN0L2Jhc2UtY3Rvci1yZXZva2VkLXByb3h5LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMg
dGhyb3duIGF0IGFsbCcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEg
VHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxs
JwogdGVzdC9idWlsdC1pbnMvRnVuY3Rpb24vaW50ZXJuYWxzL0NvbnN0cnVjdC9kZXJpdmVkLXJl
dHVybi12YWwtcmVhbG0uanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEg
VHlwZUVycm9yIGJ1dCBnb3QgYSBUeXBlRXJyb3InCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEgVHlwZUVycm9yJwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421769</attachid>
            <date>2021-02-27 23:34:53 -0800</date>
            <delta_ts>2021-03-01 11:21:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222523-20210227233452.patch</filename>
            <type>text/plain</type>
            <size>63921</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
OWZmOWEwOGQ5OWJhYzlhMjMwM2FjMWJlODY3MmY5YWZhNDUxODI0Li4zOGE5YjljMjJjZjA0NjY4
YjhhMDllMTY4NTE1ZDYzMTY2MGY5YzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTAgQEAKKzIwMjEtMDItMjcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KKworICAgICAgICBbSlNDXSBUaHJvdyBUeXBlRXJyb3Igd2hlbiBnZXRGdW5jdGlvblJlYWxt
IGhpdHMgcmV2b2tlZCBQcm94eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIyNTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBwYXRjaCB0aHJvd3MgVHlwZUVycm9yIHdoZW4gZ2V0RnVuY3Rpb25S
ZWFsbSBlbmNvdW50ZXJzIHJldm9rZWQgUHJveHkuIEhvd2V2ZXIsCisgICAgICAgIHRoaXMgbWFr
ZXMgZGVyaXZlZCBzdHJ1Y3R1cmUgY3JlYXRpb24gY29kZSBkaWZmaWN1bHQgdG8gYmUgd3JpdHRl
biBpbmxpbmVseS4KKyAgICAgICAgVGhlIGZhc3QgcGF0aCBvZiBkZXJpdmVkIHN0cnVjdHVyZSBj
cmVhdGlvbiBtdXN0IGJlIGlubGluZWQgc2luY2UgdGhpcyBpcyBjcml0aWNhbAorICAgICAgICBw
YXRoIG9mIGV2ZXJ5IGJ1aWx0aW4gY29uc3RydWN0b3JzLgorCisgICAgICAgIFNvLCB0aGlzIHBh
dGNoIGludHJvZHVjZXMgSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSBtYWNybyB3aGljaCBzdHJl
YW1saW5lcyB0aGUgZGVyaXZlZAorICAgICAgICBzdHJ1Y3R1cmUgY3JlYXRpb24gY29kZSB3aGls
ZSBrZWVwaW5nIHRoZSBmYXN0IHBhdGggaW5saW5lZC4gQW5kIGl0IGluc2VydHMgYXBwcm9wcmlh
dGUKKyAgICAgICAgZXJyb3IgY2hlY2tzIGFmdGVyIHRoaXMgbmV3IGdldEZ1bmN0aW9uUmVhbG0g
Y2FsbC4KKworICAgICAgICBUaGVuLCB3ZSBhcHByb3ByaWF0ZWx5IHVzZSBnZXRGdW5jdGlvblJl
YWxtIGluIG9wX2NyZWF0ZV90aGlzIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogZGZnL0RG
R09wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkpTQ19ERUZJTkVfSklUX09QRVJB
VElPTik6CisgICAgICAgICogcnVudGltZS9BZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBydW50
aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0NPTU1PTl9TTE9XX1BBVEgpOgorICAgICAgICAqIHJ1bnRp
bWUvRGF0ZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0RGF0ZSk6Cisg
ICAgICAgICogcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBydW50aW1lL0ZpbmFsaXphdGlvblJl
Z2lzdHJ5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6OmNvbnN0cnVjdEZ1bmN0aW9uU2tpcHBpbmdFdmFsRW5hYmxlZENoZWNrKToKKyAg
ICAgICAgKiBydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpnZXRG
dW5jdGlvblJlYWxtKToKKyAgICAgICAgKiBydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaDoKKyAg
ICAgICAgKiBydW50aW1lL0ludGxDb2xsYXRvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBydW50aW1lL0ludGxEYXRl
VGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKToKKyAgICAgICAgKiBydW50aW1lL0ludGxEaXNwbGF5TmFtZXNDb25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAg
ICogcnVudGltZS9JbnRsTGlzdEZvcm1hdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBydW50aW1lL0ludGxMb2NhbGVD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisgICAgICAgICogcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUv
SW50bFBsdXJhbFJ1bGVzQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1h
dENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KToKKyAgICAgICAgKiBydW50aW1lL0ludGxTZWdtZW50ZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9K
U0FycmF5QnVmZmVyQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNBcnJh
eUJ1ZmZlckNvbnN0cnVjdG9yPHNoYXJpbmdNb2RlPjo6Y29uc3RydWN0SW1wbCk6CisgICAgICAg
ICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oOgor
ICAgICAgICAoSlNDOjpjb25zdHJ1Y3RDdXN0b21BcnJheUJ1ZmZlcklmTmVlZGVkKToKKyAgICAg
ICAgKEpTQzo6Y29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3SW1wbCk6CisgICAgICAgICog
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6
ZXJyb3JTdHJ1Y3R1cmVXaXRoRXJyb3JUeXBlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6SlNHbG9i
YWxPYmplY3Q6OmFycmF5QnVmZmVyU3RydWN0dXJlV2l0aFNoYXJpbmdNb2RlIGNvbnN0KToKKyAg
ICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnR5cGVkQXJyYXlTdHJ1Y3R1cmVXaXRoVHlwZWRB
cnJheVR5cGUgY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3RJbmxpbmVz
Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjphcnJheVN0cnVjdHVyZUZvckluZGV4
aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24gY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvTWFwQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChK
U0M6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBlPjo6Y29uc3RydWN0SW1wbCk6Cisg
ICAgICAgICogcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdE9iamVjdFdpdGhOZXdUYXJnZXQpOgor
ICAgICAgICAqIHJ1bnRpbWUvUHJveHlDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OlBy
b3h5Q29uc3RydWN0b3I6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlByb3h5Q29uc3RydWN0b3I6
OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuaDoK
KyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
Z2V0UmVnRXhwU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1NldENvbnN0cnVjdG9yLmNw
cDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBy
dW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVu
dGltZS9XZWFrT2JqZWN0UmVmQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9y
LmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAg
KiB3YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHdhc20vanMvV2Vi
QXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9q
cy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxl
Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVj
dG9yOjpjcmVhdGVNb2R1bGUpOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1l
RXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuY3Bw
OgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorCiAyMDIxLTAyLTI2
ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gQXZv
aWQgY3JlYXRpbmcgZnVuY3Rpb25zIHVubmVjZXNzYXJpbHkgaW4gYnVpbHRpbnMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAzNTU5MDcwZGU2NjI2MDdhOTQ3YjI5Yjk1NjNjNmVlNGQ4ZWYxYWVkLi45NDE4YTdhNmM0
M2I0M2Q4N2I3YzgyODlmODk1M2I5YTYwZTEzMWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMjEtMDItMjcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAg
ICAgICBbSlNDXSBUaHJvdyBUeXBlRXJyb3Igd2hlbiBnZXRGdW5jdGlvblJlYWxtIGhpdHMgcmV2
b2tlZCBQcm94eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIyNTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXJDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6
c2V0U3ViY2xhc3NTdHJ1Y3R1cmVJZk5lZWRlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNI
VE1MRWxlbWVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RKU0hUTUxF
bGVtZW50KToKKwogMjAyMS0wMi0yNyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzM0NzQgYW5kIHIyNzM0
NzkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCBi
MjExZWQ2MTFhNmRhODY0ZDA2MDFjZGViZjMzYzY2MGY1NWFmZTA0Li4xOGJiOWQyYTE4MjMxMmU2
M2NlYmM4YTZkNWNhOWUzOTNlMjg4ODNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT3BlcmF0aW9ucy5jcHAKQEAgLTMzMCw3ICszMzAsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQ3JlYXRlVGhpcywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYgogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAgIGlmIChw
cm90by5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xv
YmFsT2JqZWN0LCBhc09iamVjdChwcm90bykpOwotICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eU9i
amVjdChnbG9iYWxPYmplY3QpOworICAgIEpTR2xvYmFsT2JqZWN0KiBmdW5jdGlvbkdsb2JhbE9i
amVjdCA9IGdldEZ1bmN0aW9uUmVhbG0oZ2xvYmFsT2JqZWN0LCBjb25zdHJ1Y3Rvcik7CisgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CisgICAgcmV0dXJuIGNvbnN0cnVj
dEVtcHR5T2JqZWN0KGZ1bmN0aW9uR2xvYmFsT2JqZWN0KTsKIH0KIAogSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVByb21pc2UsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogY29uc3RydWN0b3IpKQpAQCAtMzM5LDkgKzM0MSw3
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVQcm9taXNlLCBKU0Nl
bGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7Ci0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBjb25zdHJ1Y3RvciA9
PSBnbG9iYWxPYmplY3QtPnByb21pc2VDb25zdHJ1Y3RvcigpCi0gICAgICAgID8gZ2xvYmFsT2Jq
ZWN0LT5wcm9taXNlU3RydWN0dXJlKCkKLSAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVh
dGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIGNvbnN0cnVjdG9yLCBnZXRGdW5jdGlv
blJlYWxtKHZtLCBjb25zdHJ1Y3RvciktPnByb21pc2VTdHJ1Y3R1cmUoKSk7CisgICAgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCBwcm9taXNlU3Ry
dWN0dXJlLCBjb25zdHJ1Y3RvciwgZ2xvYmFsT2JqZWN0LT5wcm9taXNlQ29uc3RydWN0b3IoKSk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHNjb3BlLCBKU1Byb21pc2U6OmNyZWF0ZSh2bSwgc3RydWN0dXJlKSk7CiB9CkBA
IC0zNTIsOSArMzUyLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0
ZUludGVybmFsUHJvbWlzZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWMKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9
IGNvbnN0cnVjdG9yID09IGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3Io
KQotICAgICAgICA/IGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0dXJlKCkKLSAg
ICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxP
YmplY3QsIGNvbnN0cnVjdG9yLCBnZXRGdW5jdGlvblJlYWxtKHZtLCBjb25zdHJ1Y3RvciktPmlu
dGVybmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpT
Q19HRVRfREVSSVZFRF9TVFJVQ1RVUkUodm0sIGludGVybmFsUHJvbWlzZVN0cnVjdHVyZSwgY29u
c3RydWN0b3IsIGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3IoKSk7CiAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHNjb3BlLCBKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUpKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVy
cm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVn
YXRlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggN2Q4NWE2MDA5MGRlZmI1YTBiMGU1ZTU3YjBl
OTA3MzM0MTcxNDBkNy4uM2QxYTA0Y2FmNWU0MDdiMGY5Y2E5YTI0NGI1ODM4YWJmMDdhZDIyNCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3JD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVn
YXRlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTcyLDkgKzcyLDcgQEAgSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNvbnN0cnVjdEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogZ2wKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpOwog
CiAgICAgSlNPYmplY3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+bmV3VGFyZ2V0
KCkpOwotICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBuZXdUYXJnZXQgPT0gY2FsbEZy
YW1lLT5qc0NhbGxlZSgpCi0gICAgICAgID8gZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShF
cnJvclR5cGU6OkFnZ3JlZ2F0ZUVycm9yKQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNy
ZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRGdW5jdGlv
blJlYWxtKHZtLCBuZXdUYXJnZXQpLT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OkFnZ3JlZ2F0
ZUVycm9yKSk7CisgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZF
RF9TVFJVQ1RVUkUodm0sIGVycm9yU3RydWN0dXJlV2l0aEVycm9yVHlwZTxFcnJvclR5cGU6OkFn
Z3JlZ2F0ZUVycm9yPiwgbmV3VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgQVNTRVJUKGVycm9yU3RydWN0dXJl
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25z
dHJ1Y3Rvci5jcHAKaW5kZXggMDBmODViMzE3ZmQxMDU2NWQ0ZTg2NjQxZjk3M2I0NWU2NGMzMTMy
ZS4uZWUyNTA2ZjkyNjM3NTU2ZDc0Mzk4NmI5MTE1NTY2ZWYxYmJhYWEzNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCkBA
IC00Nyw5ICs0Nyw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXaXRoQm9v
bGVhbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgSlNWYWx1ZSBib29s
ZWFuID0ganNCb29sZWFuKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9Cb29sZWFuKGdsb2JhbE9i
amVjdCkpOwogCiAgICAgSlNPYmplY3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+
bmV3VGFyZ2V0KCkpOwotICAgIFN0cnVjdHVyZSogYm9vbGVhblN0cnVjdHVyZSA9IG5ld1Rhcmdl
dCA9PSBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkKLSAgICAgICAgPyBnbG9iYWxPYmplY3QtPmJvb2xl
YW5PYmplY3RTdHJ1Y3R1cmUoKQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1
YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxt
KHZtLCBuZXdUYXJnZXQpLT5ib29sZWFuT2JqZWN0U3RydWN0dXJlKCkpOworICAgIFN0cnVjdHVy
ZSogYm9vbGVhblN0cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RVUkUodm0sIGJvb2xl
YW5PYmplY3RTdHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2FsbEZyYW1lLT5qc0NhbGxlZSgpKTsKICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgQm9vbGVhbk9iamVjdCog
b2JqID0gQm9vbGVhbk9iamVjdDo6Y3JlYXRlKHZtLCBib29sZWFuU3RydWN0dXJlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCmluZGV4
IGQyNTEyMmYzNTZhNzI0NTIzYmY1ZTViODI3NTljOWM3OWU5YjA2NjEuLmFlMjRjMWFhODA1NTRj
ZDlmYTI4MDQ2OGU1OTViMmQxZjY5ZmNjN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcApAQCAtMjQ2LDEzICsyNDYsMTYgQEAgSlND
X0RFRklORV9DT01NT05fU0xPV19QQVRIKHNsb3dfcGF0aF9jcmVhdGVfdGhpcykKICAgICAgICAg
ICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIWhhc0luZGV4ZWRQcm9wZXJ0aWVzKHJlc3VsdC0+aW5k
ZXhpbmdUeXBlKCkpLCAiV2UgcmVseSBvbiBKU0ZpbmFsT2JqZWN0IG5vdCBzdGFydGluZyBvdXQg
d2l0aCBhbiBpbmRleGluZyB0eXBlIG90aGVyd2lzZSB3ZSB3b3VsZCBwb3RlbnRpYWxseSBuZWVk
IHRvIGNvbnZlcnQgdG8gc2xvdyBwdXQgc3RvcmFnZSIpOwogICAgICAgICB9CiAgICAgfSBlbHNl
IHsKLSAgICAgICAgLy8gaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4w
LyNzZWMtb3JkaW5hcnljcmVhdGVmcm9tY29uc3RydWN0b3IKKyAgICAgICAgLy8gaHR0cHM6Ly90
YzM5LmVzL2VjbWEyNjIvI3NlYy1nZXRwcm90b3R5cGVmcm9tY29uc3RydWN0b3IKICAgICAgICAg
SlNWYWx1ZSBwcm90byA9IGNvbnN0cnVjdG9yQXNPYmplY3QtPmdldChnbG9iYWxPYmplY3QsIHZt
LnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSk7CiAgICAgICAgIENIRUNLX0VYQ0VQVElPTigpOwog
ICAgICAgICBpZiAocHJvdG8uaXNPYmplY3QoKSkKICAgICAgICAgICAgIHJlc3VsdCA9IGNvbnN0
cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdCwgYXNPYmplY3QocHJvdG8pKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgcmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2Jq
ZWN0KTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBKU0dsb2JhbE9iamVjdCogZnVuY3Rp
b25HbG9iYWxPYmplY3QgPSBnZXRGdW5jdGlvblJlYWxtKGdsb2JhbE9iamVjdCwgY29uc3RydWN0
b3JBc09iamVjdCk7CisgICAgICAgICAgICBDSEVDS19FWENFUFRJT04oKTsKKyAgICAgICAgICAg
IHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGZ1bmN0aW9uR2xvYmFsT2JqZWN0KTsKKyAg
ICAgICAgfQogICAgIH0KICAgICBSRVRVUk4ocmVzdWx0KTsKIH0KQEAgLTI2NSwxNSArMjY4LDEx
IEBAIEpTQ19ERUZJTkVfQ09NTU9OX1NMT1dfUEFUSChzbG93X3BhdGhfY3JlYXRlX3Byb21pc2Up
CiAKICAgICBKU1Byb21pc2UqIHJlc3VsdCA9IG51bGxwdHI7CiAgICAgaWYgKGJ5dGVjb2RlLm1f
aXNJbnRlcm5hbFByb21pc2UpIHsKLSAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBjb25z
dHJ1Y3RvckFzT2JqZWN0ID09IGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlQ29uc3RydWN0
b3IoKQotICAgICAgICAgICAgPyBnbG9iYWxPYmplY3QtPmludGVybmFsUHJvbWlzZVN0cnVjdHVy
ZSgpCi0gICAgICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0
dXJlKGdsb2JhbE9iamVjdCwgY29uc3RydWN0b3JBc09iamVjdCwgZ2V0RnVuY3Rpb25SZWFsbSh2
bSwgY29uc3RydWN0b3JBc09iamVjdCktPmludGVybmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKKyAg
ICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZt
LCBpbnRlcm5hbFByb21pc2VTdHJ1Y3R1cmUsIGNvbnN0cnVjdG9yQXNPYmplY3QsIGdsb2JhbE9i
amVjdC0+aW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3IoKSk7CiAgICAgICAgIENIRUNLX0VYQ0VQ
VElPTigpOwogICAgICAgICByZXN1bHQgPSBKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBz
dHJ1Y3R1cmUpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0g
Y29uc3RydWN0b3JBc09iamVjdCA9PSBnbG9iYWxPYmplY3QtPnByb21pc2VDb25zdHJ1Y3Rvcigp
Ci0gICAgICAgICAgICA/IGdsb2JhbE9iamVjdC0+cHJvbWlzZVN0cnVjdHVyZSgpCi0gICAgICAg
ICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9i
amVjdCwgY29uc3RydWN0b3JBc09iamVjdCwgZ2V0RnVuY3Rpb25SZWFsbSh2bSwgY29uc3RydWN0
b3JBc09iamVjdCktPnByb21pc2VTdHJ1Y3R1cmUoKSk7CisgICAgICAgIFN0cnVjdHVyZSogc3Ry
dWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgcHJvbWlzZVN0cnVjdHVyZSwg
Y29uc3RydWN0b3JBc09iamVjdCwgZ2xvYmFsT2JqZWN0LT5wcm9taXNlQ29uc3RydWN0b3IoKSk7
CiAgICAgICAgIENIRUNLX0VYQ0VQVElPTigpOwogICAgICAgICByZXN1bHQgPSBKU1Byb21pc2U6
OmNyZWF0ZSh2bSwgc3RydWN0dXJlKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAppbmRleCBmMzQwZjViYzBhMzMwYTU1N2Qz
MTIxOGJhYjlmNTJmZWMzNjIzZmI4Li43ODg3MGY0ZWFlMmQ5MzFmOTMzY2MwZWI0NDdhYmNkN2Rl
MDZiODEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29u
c3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25z
dHJ1Y3Rvci5jcHAKQEAgLTEyNywxMCArMTI3LDEzIEBAIEpTT2JqZWN0KiBjb25zdHJ1Y3REYXRl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgbmV3VGFyZ2V0LCBjb25zdCBB
CiAgICAgICAgIHZhbHVlID0gbWlsbGlzZWNvbmRzRnJvbUNvbXBvbmVudHMoZ2xvYmFsT2JqZWN0
LCBhcmdzLCBXVEY6OkxvY2FsVGltZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
bnVsbHB0cik7CiAKLSAgICBTdHJ1Y3R1cmUqIGRhdGVTdHJ1Y3R1cmUgPSAhbmV3VGFyZ2V0IHx8
IG5ld1RhcmdldCA9PSBnbG9iYWxPYmplY3QtPmRhdGVDb25zdHJ1Y3RvcigpCi0gICAgICAgID8g
Z2xvYmFsT2JqZWN0LT5kYXRlU3RydWN0dXJlKCkKLSAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9u
OjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIGFzT2JqZWN0KG5ld1Rhcmdl
dCksIGdldEZ1bmN0aW9uUmVhbG0odm0sIGFzT2JqZWN0KG5ld1RhcmdldCkpLT5kYXRlU3RydWN0
dXJlKCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOworICAgIFN0
cnVjdHVyZSogZGF0ZVN0cnVjdHVyZSA9IG51bGxwdHI7CisgICAgaWYgKCFuZXdUYXJnZXQpCisg
ICAgICAgIGRhdGVTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmRhdGVTdHJ1Y3R1cmUoKTsKKyAg
ICBlbHNlIHsKKyAgICAgICAgZGF0ZVN0cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RV
UkUodm0sIGRhdGVTdHJ1Y3R1cmUsIGFzT2JqZWN0KG5ld1RhcmdldCksIGdsb2JhbE9iamVjdC0+
ZGF0ZUNvbnN0cnVjdG9yKCkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBu
dWxscHRyKTsKKyAgICB9CiAKICAgICByZXR1cm4gRGF0ZUluc3RhbmNlOjpjcmVhdGUodm0sIGRh
dGVTdHJ1Y3R1cmUsIHZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggOWJlOTMwY2YxYzNjOWE0MGU2MDg1OTgz
NTU4YTFhNTliYzc4YjYyZi4uNDlmNzgxMzNlYzIzMGM1ODAwNDFkMTZlNDljZTdmZDE2MzExMmIw
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1
Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1
Y3Rvci5jcHAKQEAgLTU1LDkgKzU1LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0
cnVjdEVycm9yQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICBK
U1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogCiAgICAgSlNPYmplY3Qq
IG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkpOwotICAgIFN0cnVj
dHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBuZXdUYXJnZXQgPT0gY2FsbEZyYW1lLT5qc0NhbGxlZSgp
Ci0gICAgICAgID8gZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZSgpCi0gICAgICAgIDogSW50
ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBuZXdU
YXJnZXQsIGdldEZ1bmN0aW9uUmVhbG0odm0sIG5ld1RhcmdldCktPmVycm9yU3RydWN0dXJlKCkp
OworICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNU
VVJFKHZtLCBlcnJvclN0cnVjdHVyZSwgbmV3VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkp
OwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xv
YmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcs
IEVycm9yVHlwZTo6RXJyb3IsIGZhbHNlKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRmluYWxpemF0aW9uUmVnaXN0cnlDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GaW5hbGl6YXRpb25SZWdpc3RyeUNvbnN0cnVjdG9y
LmNwcAppbmRleCBiYWJlNGRlMTljYTMzZjlkYTU4MjgyOWE5OTEwYzdkNWZiMGEzYzc2Li5mMzFk
Yjg2YTc5NjE2ZTQ1YThkYzExNWFhMjY1NzBhYzNjN2U2NmY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9GaW5hbGl6YXRpb25SZWdpc3RyeUNvbnN0cnVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GaW5hbGl6YXRpb25SZWdpc3Ry
eUNvbnN0cnVjdG9yLmNwcApAQCAtNjksOSArNjksNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oY29uc3RydWN0RmluYWxpemF0aW9uUmVnaXN0cnksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
TwogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAi
Rmlyc3QgYXJndW1lbnQgdG8gRmluYWxpemF0aW9uUmVnaXN0cnkgc2hvdWxkIGJlIGEgZnVuY3Rp
b24iX3MpOwogCiAgICAgSlNPYmplY3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+
bmV3VGFyZ2V0KCkpOwotICAgIFN0cnVjdHVyZSogZmluYWxpemF0aW9uUmVnaXN0cnlTdHJ1Y3R1
cmUgPSBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkgPT0gbmV3VGFyZ2V0Ci0gICAgICAgID8gZ2xvYmFs
T2JqZWN0LT5maW5hbGl6YXRpb25SZWdpc3RyeVN0cnVjdHVyZSgpCi0gICAgICAgIDogSW50ZXJu
YWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBuZXdUYXJn
ZXQsIGdldEZ1bmN0aW9uUmVhbG0odm0sIG5ld1RhcmdldCktPmZpbmFsaXphdGlvblJlZ2lzdHJ5
U3RydWN0dXJlKCkpOworICAgIFN0cnVjdHVyZSogZmluYWxpemF0aW9uUmVnaXN0cnlTdHJ1Y3R1
cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCBmaW5hbGl6YXRpb25SZWdpc3RyeVN0
cnVjdHVyZSwgbmV3VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKEpTRmluYWxpemF0aW9uUmVnaXN0cnk6OmNyZWF0
ZSh2bSwgZmluYWxpemF0aW9uUmVnaXN0cnlTdHJ1Y3R1cmUsIGNhbGxGcmFtZS0+dW5jaGVja2Vk
QXJndW1lbnQoMCkuZ2V0T2JqZWN0KCkpKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCmluZGV4IDAzOTg1YzU5NTY3
MzQ0NTIwY2VlZGFiNDZlYWJiNDYyMmQzNDQ3YjcuLjE3YmMyNDYxNDk1MTljMGUzMDVhYzgyZWQ5
NDM2ZjJjMWM0NTY3MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCkBAIC0xNTksOCArMTU5LDEyIEBAIEpTT2JqZWN0
KiBjb25zdHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRDaGVjaygKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgfQogCisgICAgSlNHbG9iYWxPYmplY3QqIHN0cnVjdHVyZUdsb2Jh
bE9iamVjdCA9IGdsb2JhbE9iamVjdDsKICAgICBib29sIG5lZWRzU3ViY2xhc3NTdHJ1Y3R1cmUg
PSBuZXdUYXJnZXQgJiYgbmV3VGFyZ2V0ICE9IGdsb2JhbE9iamVjdC0+ZnVuY3Rpb25Db25zdHJ1
Y3RvcigpOwotICAgIEpTR2xvYmFsT2JqZWN0KiBzdHJ1Y3R1cmVHbG9iYWxPYmplY3QgPSBuZWVk
c1N1YmNsYXNzU3RydWN0dXJlID8gZ2V0RnVuY3Rpb25SZWFsbSh2bSwgYXNPYmplY3QobmV3VGFy
Z2V0KSkgOiBnbG9iYWxPYmplY3Q7CisgICAgaWYgKG5lZWRzU3ViY2xhc3NTdHJ1Y3R1cmUpIHsK
KyAgICAgICAgc3RydWN0dXJlR2xvYmFsT2JqZWN0ID0gZ2V0RnVuY3Rpb25SZWFsbShnbG9iYWxP
YmplY3QsIGFzT2JqZWN0KG5ld1RhcmdldCkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBudWxscHRyKTsKKyAgICB9CiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBudWxs
cHRyOwogICAgIHN3aXRjaCAoZnVuY3Rpb25Db25zdHJ1Y3Rpb25Nb2RlKSB7CiAgICAgY2FzZSBG
dW5jdGlvbkNvbnN0cnVjdGlvbk1vZGU6OkZ1bmN0aW9uOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAppbmRleCAyNmVkOGM5NWRiY2Jl
ZGIwMGY5YmQzM2ZlMzNmY2Y2ZmQ4MTg3YjdjLi4wYjhkNjIzNTE0NDA2YzExODA4ZmVlYTY3MGMw
NzViYTZkYTI1NmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRlcm5hbEZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRlcm5hbEZ1bmN0aW9uLmNwcApAQCAtMTcyLDggKzE3MiwxMSBAQCBJbnRlcm5hbEZ1bmN0aW9u
KiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVGdW5jdGlvblRoYXRNYXNxdWVyYWRlc0FzVW5kZWZp
bmVkKFZNJgogfQogCiAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWdldGZ1bmN0aW9u
cmVhbG0KLUpTR2xvYmFsT2JqZWN0KiBnZXRGdW5jdGlvblJlYWxtKFZNJiB2bSwgSlNPYmplY3Qq
IG9iamVjdCkKK0pTR2xvYmFsT2JqZWN0KiBnZXRGdW5jdGlvblJlYWxtKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QpCiB7CisgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
KwogICAgIEFTU0VSVChvYmplY3QtPmlzQ2FsbGFibGUodm0pKTsKIAogICAgIHdoaWxlICh0cnVl
KSB7CkBAIC0xODQsMTQgKzE4NywxMiBAQCBKU0dsb2JhbE9iamVjdCogZ2V0RnVuY3Rpb25SZWFs
bShWTSYgdm0sIEpTT2JqZWN0KiBvYmplY3QpCiAKICAgICAgICAgaWYgKG9iamVjdC0+dHlwZSgp
ID09IFByb3h5T2JqZWN0VHlwZSkgewogICAgICAgICAgICAgYXV0byogcHJveHkgPSBqc0Nhc3Q8
UHJveHlPYmplY3QqPihvYmplY3QpOwotICAgICAgICAgICAgLy8gUGVyIHN0ZXAgNC5hLCBhIFR5
cGVFcnJvciBzaG91bGQgYmUgdGhyb3duIGZvciByZXZva2VkIFByb3h5LCB5ZXQgd2Ugc2tpcCBp
dCBzaW5jZToKLSAgICAgICAgICAgIC8vIGEpIEl0IGlzIGJhcmVseSBvYnNlcnZhYmxlIGFueXdh
eTogInByb3RvdHlwZSIgbG9va3VwIGluIGNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKCkgd2lsbCB0
aHJvdyBmb3IgcmV2b2tlZCBQcm94eS4KLSAgICAgICAgICAgIC8vIGIpIFRocm93aW5nIGdldEZ1
bmN0aW9uUmVhbG0oKSB3aWxsIHJlc3RyaWN0IGNhbGxpbmcgaXQgaW5saW5lIGFzIGFuIGFyZ3Vt
ZW50IG9mIGNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKCkuCi0gICAgICAgICAgICAvLyBjKSBUaGVy
ZSBpcyBvbmdvaW5nIGRpc2N1c3Npb24gb24gcmVtb3ZpbmcgaXQ6IGh0dHBzOi8vZ2l0aHViLmNv
bS90YzM5L2VjbWEyNjIvaXNzdWVzLzE3OTguCi0gICAgICAgICAgICBpZiAoIXByb3h5LT5pc1Jl
dm9rZWQoKSkgewotICAgICAgICAgICAgICAgIG9iamVjdCA9IHByb3h5LT50YXJnZXQoKTsKLSAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChwcm94eS0+aXNSZXZva2Vk
KCkpIHsKKyAgICAgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3Bl
LCAiQ2Fubm90IGdldCBmdW5jdGlvbiByZWFsbSBmcm9tIHJldm9rZWQgUHJveHkiX3MpOworICAg
ICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAgICAgfQorICAgICAgICAgICAg
b2JqZWN0ID0gcHJveHktPnRhcmdldCgpOworICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0KIAogICAgICAgICByZXR1cm4gb2JqZWN0LT5nbG9iYWxPYmplY3Qodm0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCmluZGV4IDZjNDIz
OTdlMmRlMmVmOGI3OTJlMWNhMGEzNGI3NThlZDQ2ZmUzNTAuLmQzMjM2OWIxZDIxZTFhZTdmZWFm
YTJlYjRjMDY0ZDUxYzdhODZjZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGVybmFsRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKQEAgLTk4LDYgKzk4LDE2IEBAIGNsYXNzIEludGVybmFs
RnVuY3Rpb24gOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgV3JpdGVCYXJyaWVyPEpT
R2xvYmFsT2JqZWN0PiBtX2dsb2JhbE9iamVjdDsKIH07CiAKLUpTX0VYUE9SVF9QUklWQVRFIEpT
R2xvYmFsT2JqZWN0KiBnZXRGdW5jdGlvblJlYWxtKFZNJiwgSlNPYmplY3QqKTsKK0pTX0VYUE9S
VF9QUklWQVRFIEpTR2xvYmFsT2JqZWN0KiBnZXRGdW5jdGlvblJlYWxtKEpTR2xvYmFsT2JqZWN0
KiwgSlNPYmplY3QqKTsKKworI2RlZmluZSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCBz
dHJ1Y3R1cmVNZW1iZXJGdW5jdGlvbk5hbWUsIG5ld1RhcmdldCwgY29uc3RydWN0b3IpIFwKKyAg
ICAoKG5ld1RhcmdldCkgPT0gKGNvbnN0cnVjdG9yKSBcCisgICAgICAgID8gZ2xvYmFsT2JqZWN0
LT5zdHJ1Y3R1cmVNZW1iZXJGdW5jdGlvbk5hbWUoKSBcCisgICAgICAgIDogKFsmXSgpIC0+IFN0
cnVjdHVyZSogeyBcCisgICAgICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSgodm0pKTsgXAorICAgICAgICAgICAgYXV0byogZnVuY3Rpb25HbG9iYWxPYmplY3QgPSBnZXRG
dW5jdGlvblJlYWxtKGdsb2JhbE9iamVjdCwgKG5ld1RhcmdldCkpOyBcCisgICAgICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsgXAorICAgICAgICAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVj
dHVyZShnbG9iYWxPYmplY3QsIChuZXdUYXJnZXQpLCBmdW5jdGlvbkdsb2JhbE9iamVjdC0+c3Ry
dWN0dXJlTWVtYmVyRnVuY3Rpb25OYW1lKCkpKTsgXAorICAgICAgICB9KCkpKQogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxDb2xsYXRvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxDb2xsYXRvckNvbnN0cnVjdG9yLmNwcAppbmRleCBiYWJiYTUxYzQ2MDdkYWQyY2FkNjc2
ZmM5Nzc5NTVjMWE1M2E1MWFlLi5jODA5YjkxZjU5Yzg1NjJiM2E0ZDhlYmZlN2Y3NzFiMWQ3MWE4
OTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0
b3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwCkBAIC04OSw5ICs4OSw3IEBAIEpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihjb25zdHJ1Y3RJbnRsQ29sbGF0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDCiAgICAgLy8gMi4gTGV0IGNvbGxhdG9yIGJlIE9yZGluYXJ5Q3JlYXRlRnJvbUNv
bnN0cnVjdG9yKG5ld1RhcmdldCwgJUNvbGxhdG9yUHJvdG90eXBlJSkuCiAgICAgLy8gMy4gUmV0
dXJuSWZBYnJ1cHQoY29sbGF0b3IpLgogICAgIEpTT2JqZWN0KiBuZXdUYXJnZXQgPSBhc09iamVj
dChjYWxsRnJhbWUtPm5ld1RhcmdldCgpKTsKLSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG5l
d1RhcmdldCA9PSBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkKLSAgICAgICAgPyBnbG9iYWxPYmplY3Qt
PmNvbGxhdG9yU3RydWN0dXJlKCkKLSAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVT
dWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIG5ld1RhcmdldCwgZ2V0RnVuY3Rpb25SZWFs
bSh2bSwgbmV3VGFyZ2V0KS0+Y29sbGF0b3JTdHJ1Y3R1cmUoKSk7CisgICAgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCBjb2xsYXRvclN0cnVjdHVy
ZSwgbmV3VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICBJbnRsQ29sbGF0b3IqIGNvbGxhdG9yID0gSW50bENv
bGxhdG9yOjpjcmVhdGUodm0sIHN0cnVjdHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5j
cHAKaW5kZXggZDk1YmYxYjNiYTVkODkxZDUzMWYzN2NjODQ2Y2RlN2RkMGRmNjRiYy4uMWJiYTFi
MDVjMmUzMmFjMGQxOGRkMTQzNmMzNDg4NjQwZjcwYTRhOSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0
cnVjdG9yLmNwcApAQCAtODcsOSArODcsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29u
c3RydWN0SW50bERhdGVUaW1lRm9ybWF0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogICAg
IC8vIDIuIExldCBkYXRlVGltZUZvcm1hdCBiZSBPcmRpbmFyeUNyZWF0ZUZyb21Db25zdHJ1Y3Rv
cihuZXdUYXJnZXQsICVEYXRlVGltZUZvcm1hdFByb3RvdHlwZSUpLgogICAgIC8vIDMuIFJldHVy
bklmQWJydXB0KGRhdGVUaW1lRm9ybWF0KS4KICAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0gYXNP
YmplY3QoY2FsbEZyYW1lLT5uZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUg
PSBuZXdUYXJnZXQgPT0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpCi0gICAgICAgID8gZ2xvYmFsT2Jq
ZWN0LT5kYXRlVGltZUZvcm1hdFN0cnVjdHVyZSgpCi0gICAgICAgIDogSW50ZXJuYWxGdW5jdGlv
bjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQsIGdldEZ1
bmN0aW9uUmVhbG0odm0sIG5ld1RhcmdldCktPmRhdGVUaW1lRm9ybWF0U3RydWN0dXJlKCkpOwor
ICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwg
ZGF0ZVRpbWVGb3JtYXRTdHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2FsbEZyYW1lLT5qc0NhbGxlZSgp
KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgSW50bERhdGVU
aW1lRm9ybWF0KiBkYXRlVGltZUZvcm1hdCA9IEludGxEYXRlVGltZUZvcm1hdDo6Y3JlYXRlKHZt
LCBzdHJ1Y3R1cmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bERpc3BsYXlOYW1lc0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxEaXNwbGF5TmFtZXNDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMWI5NDdiYWNkZTdj
MjQ5NGQ4ZDA4MzI2M2RhMTU1OTA5NGMxYzVhZS4uZDFmMDY2ZjBhMDkzMzc2OTExZGIxMGI4OGZh
YTlmNDVmMzViNTY4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bERpc3BsYXlOYW1lc0NvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsRGlzcGxheU5hbWVzQ29uc3RydWN0b3IuY3BwCkBAIC04NCw5ICs4NCw3
IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RJbnRsRGlzcGxheU5hbWVzLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogCiAgICAgSlNPYmplY3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxG
cmFtZS0+bmV3VGFyZ2V0KCkpOwotICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gbmV3VGFyZ2V0
ID09IGNhbGxGcmFtZS0+anNDYWxsZWUoKQotICAgICAgICA/IGdsb2JhbE9iamVjdC0+ZGlzcGxh
eU5hbWVzU3RydWN0dXJlKCkKLSAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJj
bGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIG5ld1RhcmdldCwgZ2V0RnVuY3Rpb25SZWFsbSh2
bSwgbmV3VGFyZ2V0KS0+ZGlzcGxheU5hbWVzU3RydWN0dXJlKCkpOworICAgIFN0cnVjdHVyZSog
c3RydWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgZGlzcGxheU5hbWVzU3Ry
dWN0dXJlLCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIEludGxEaXNwbGF5TmFtZXMqIGRpc3BsYXlO
YW1lcyA9IEludGxEaXNwbGF5TmFtZXM6OmNyZWF0ZSh2bSwgc3RydWN0dXJlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxMaXN0Rm9ybWF0Q29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExpc3RGb3JtYXRDb25z
dHJ1Y3Rvci5jcHAKaW5kZXggMmI0YWQ2NWUxOTY5OWRkNzQ2ZTU0ZjE2Y2RkZDhhZDE3ZTgyNTVk
Ni4uNDdlNWVlMjNkYmYxZTBiMDM5YzNjYWYwNzgwZjFiNjQzZDVjMTJjOSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExpc3RGb3JtYXRDb25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExpc3RGb3JtYXRDb25z
dHJ1Y3Rvci5jcHAKQEAgLTg0LDkgKzg0LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNv
bnN0cnVjdEludGxMaXN0Rm9ybWF0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU09iamVjdCog
bmV3VGFyZ2V0ID0gYXNPYmplY3QoY2FsbEZyYW1lLT5uZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUgPSBuZXdUYXJnZXQgPT0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpCi0gICAg
ICAgID8gZ2xvYmFsT2JqZWN0LT5saXN0Rm9ybWF0U3RydWN0dXJlKCkKLSAgICAgICAgOiBJbnRl
cm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIG5ld1Rh
cmdldCwgZ2V0RnVuY3Rpb25SZWFsbSh2bSwgbmV3VGFyZ2V0KS0+bGlzdEZvcm1hdFN0cnVjdHVy
ZSgpKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RV
UkUodm0sIGxpc3RGb3JtYXRTdHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2FsbEZyYW1lLT5qc0NhbGxl
ZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgSW50bExp
c3RGb3JtYXQqIGxpc3RGb3JtYXQgPSBJbnRsTGlzdEZvcm1hdDo6Y3JlYXRlKHZtLCBzdHJ1Y3R1
cmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExvY2Fs
ZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxMb2Nh
bGVDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMThjNGNiYTczOWE3OTRhZjUzMzQxOGNkNDc4YWI1NjVj
NjlkZTk4Yi4uZTY1NzFhMjE4NDgyMWU5Y2JkMjE1NjRkZDRmZmFhMjM5NTRkZjA3NCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExvY2FsZUNvbnN0cnVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTG9jYWxlQ29uc3Ry
dWN0b3IuY3BwCkBAIC03MCw5ICs3MCw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25z
dHJ1Y3RJbnRsTG9jYWxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsCiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNPYmplY3QqIG5l
d1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkpOwotICAgIFN0cnVjdHVy
ZSogc3RydWN0dXJlID0gbmV3VGFyZ2V0ID09IGNhbGxGcmFtZS0+anNDYWxsZWUoKQotICAgICAg
ICA/IGdsb2JhbE9iamVjdC0+bG9jYWxlU3RydWN0dXJlKCkKLSAgICAgICAgOiBJbnRlcm5hbEZ1
bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIG5ld1RhcmdldCwg
Z2V0RnVuY3Rpb25SZWFsbSh2bSwgbmV3VGFyZ2V0KS0+bG9jYWxlU3RydWN0dXJlKCkpOworICAg
IFN0cnVjdHVyZSogc3RydWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgbG9j
YWxlU3RydWN0dXJlLCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIEludGxMb2NhbGUqIGxvY2FsZSA9
IEludGxMb2NhbGU6OmNyZWF0ZSh2bSwgc3RydWN0dXJlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3Iu
Y3BwCmluZGV4IDg5NWJiNDdhYTViNTkwYzMxMGM1MTU3YTRlMDdjNGE1ZmU4ZGIxYzguLjFjNWIy
OTNhZmNkYWUyZWI2MmViYmMyNjQ0Mzc5YWY1OTMyMTEwZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdENvbnN0cnVj
dG9yLmNwcApAQCAtODcsOSArODcsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0SW50bE51bWJlckZvcm1hdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIC8v
IDIuIExldCBudW1iZXJGb3JtYXQgYmUgT3JkaW5hcnlDcmVhdGVGcm9tQ29uc3RydWN0b3IobmV3
VGFyZ2V0LCAlTnVtYmVyRm9ybWF0UHJvdG90eXBlJSkuCiAgICAgLy8gMy4gUmV0dXJuSWZBYnJ1
cHQobnVtYmVyRm9ybWF0KS4KICAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0gYXNPYmplY3QoY2Fs
bEZyYW1lLT5uZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBuZXdUYXJn
ZXQgPT0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpCi0gICAgICAgID8gZ2xvYmFsT2JqZWN0LT5udW1i
ZXJGb3JtYXRTdHJ1Y3R1cmUoKQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1
YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxt
KHZtLCBuZXdUYXJnZXQpLT5udW1iZXJGb3JtYXRTdHJ1Y3R1cmUoKSk7CisgICAgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCBudW1iZXJGb3JtYXRT
dHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2FsbEZyYW1lLT5qc0NhbGxlZSgpKTsKICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgSW50bE51bWJlckZvcm1hdCogbnVtYmVy
Rm9ybWF0ID0gSW50bE51bWJlckZvcm1hdDo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFBsdXJhbFJ1bGVzQ29uc3Ry
dWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFBsdXJhbFJ1bGVz
Q29uc3RydWN0b3IuY3BwCmluZGV4IGFmMzlhOTY2M2FmMDc5YzVkMjc4YzI3ZjQ0NjhjNTY1ZDFl
MzY0ZWEuLmY4ODUwYjEwYThiZmU2NTcwNDNkMmExZWFkMDcxMTA0MWI5MjA1OTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQbHVyYWxSdWxlc0NvbnN0cnVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUGx1cmFsUnVs
ZXNDb25zdHJ1Y3Rvci5jcHAKQEAgLTg3LDkgKzg3LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGNvbnN0cnVjdEludGxQbHVyYWxSdWxlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QKICAgICAvLyAxMy4yLjEgSW50bC5QbHVyYWxSdWxlcyAoWyBsb2NhbGVzIFsgLCBvcHRpb25z
IF0gXSkKICAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWE0MDIvI3NlYy1pbnRsLnBs
dXJhbHJ1bGVzCiAgICAgSlNPYmplY3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+
bmV3VGFyZ2V0KCkpOwotICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gbmV3VGFyZ2V0ID09IGNh
bGxGcmFtZS0+anNDYWxsZWUoKQotICAgICAgICA/IGdsb2JhbE9iamVjdC0+cGx1cmFsUnVsZXNT
dHJ1Y3R1cmUoKQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3Ry
dWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdU
YXJnZXQpLT5wbHVyYWxSdWxlc1N0cnVjdHVyZSgpKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RVUkUodm0sIHBsdXJhbFJ1bGVzU3RydWN0dXJlLCBu
ZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgeyB9KTsKIAogICAgIEludGxQbHVyYWxSdWxlcyogcGx1cmFsUnVsZXMgPSBJbnRs
UGx1cmFsUnVsZXM6OmNyZWF0ZSh2bSwgc3RydWN0dXJlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUmVsYXRpdmVUaW1lRm9ybWF0
Q29uc3RydWN0b3IuY3BwCmluZGV4IGQxMjJkY2RhMjkwZmZmMTc3MzZkZDA1YjkyOWMzNDYzYWQ2
NmM4ZmEuLjE3NGI2ZmRjZTJjODZiZmMxMWI1ZWIxZWY1MzcyMDk4ZWE4OTg0OTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXRD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJl
bGF0aXZlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcApAQCAtODUsOSArODUsNyBAQCBKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SW50bFJlbGF0aXZlVGltZUZvcm1hdCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKIAogICAgIEpTT2JqZWN0KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJhbWUtPm5ld1Rh
cmdldCgpKTsKLSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG5ld1RhcmdldCA9PSBjYWxsRnJh
bWUtPmpzQ2FsbGVlKCkKLSAgICAgICAgPyBnbG9iYWxPYmplY3QtPnJlbGF0aXZlVGltZUZvcm1h
dFN0cnVjdHVyZSgpCi0gICAgICAgIDogSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NT
dHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQsIGdldEZ1bmN0aW9uUmVhbG0odm0sIG5l
d1RhcmdldCktPnJlbGF0aXZlVGltZUZvcm1hdFN0cnVjdHVyZSgpKTsKKyAgICBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RVUkUodm0sIHJlbGF0aXZlVGltZUZv
cm1hdFN0cnVjdHVyZSwgbmV3VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICBJbnRsUmVsYXRpdmVUaW1lRm9y
bWF0KiByZWxhdGl2ZVRpbWVGb3JtYXQgPSBJbnRsUmVsYXRpdmVUaW1lRm9ybWF0OjpjcmVhdGUo
dm0sIHN0cnVjdHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsU2VnbWVudGVyQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bFNlZ21lbnRlckNvbnN0cnVjdG9yLmNwcAppbmRleCBlYjFiYmI0OGYxYWNkYzNh
MjFiN2NlOWE4NWUxYzU5NzIzOWUwZWE5Li5mZmQ3M2Y3MzZhOTc0MzM3OGRmZGIxYTMxZDRiZjk5
Zjk4ZGVhZTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
U2VnbWVudGVyQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxTZWdtZW50ZXJDb25zdHJ1Y3Rvci5jcHAKQEAgLTg0LDkgKzg0LDcgQEAgSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEludGxTZWdtZW50ZXIsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LAogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKIAogICAgIEpTT2JqZWN0KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJhbWUtPm5ld1Rh
cmdldCgpKTsKLSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG5ld1RhcmdldCA9PSBjYWxsRnJh
bWUtPmpzQ2FsbGVlKCkKLSAgICAgICAgPyBnbG9iYWxPYmplY3QtPnNlZ21lbnRlclN0cnVjdHVy
ZSgpCi0gICAgICAgIDogSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUo
Z2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQsIGdldEZ1bmN0aW9uUmVhbG0odm0sIG5ld1RhcmdldCkt
PnNlZ21lbnRlclN0cnVjdHVyZSgpKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpTQ19H
RVRfREVSSVZFRF9TVFJVQ1RVUkUodm0sIHNlZ21lbnRlclN0cnVjdHVyZSwgbmV3VGFyZ2V0LCBj
YWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7CiAKICAgICBJbnRsU2VnbWVudGVyKiBzZWdtZW50ZXIgPSBJbnRsU2VnbWVudGVyOjpjcmVh
dGUodm0sIHN0cnVjdHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcAppbmRleCA2NzVkOTdiZWEwNjRj
MjBkMDAwNjdmN2VlN2YxYWQ3ZTVjZTQ3OGM2Li4zOTk3NDc0MWY2MTMxZDgzMTE3MzZkOTBiNDZj
YWUxOWIyOTgyYTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0FycmF5QnVmZmVyQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5jcHAKQEAgLTc4LDkgKzc4LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNHZW5lcmljQXJyYXlCdWZmZXJDb25zdHJ1Y3RvcjxzaGFyaW5nTW9kZT46
OmNvbnN0cnVjdEltcGwoSlNHbG8KICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CiAKICAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0gYXNPYmplY3QoY2FsbEZyYW1lLT5u
ZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0dXJlKiBhcnJheUJ1ZmZlclN0cnVjdHVyZSA9IG5ld1Rh
cmdldCA9PSBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkKLSAgICAgICAgPyBnbG9iYWxPYmplY3QtPmFy
cmF5QnVmZmVyU3RydWN0dXJlKHNoYXJpbmdNb2RlKQotICAgICAgICA6IEludGVybmFsRnVuY3Rp
b246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRG
dW5jdGlvblJlYWxtKHZtLCBuZXdUYXJnZXQpLT5hcnJheUJ1ZmZlclN0cnVjdHVyZShzaGFyaW5n
TW9kZSkpOworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVD
VFVSRSh2bSwgYXJyYXlCdWZmZXJTdHJ1Y3R1cmVXaXRoU2hhcmluZ01vZGU8c2hhcmluZ01vZGU+
LCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgeyB9KTsKIAogICAgIHVuc2lnbmVkIGxlbmd0aDsKQEAgLTEwMiw3ICsxMDAs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0dlbmVyaWNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yPHNoYXJp
bmdNb2RlPjo6Y29uc3RydWN0SW1wbChKU0dsbwogICAgICAgICBidWZmZXItPm1ha2VTaGFyZWQo
KTsKICAgICBBU1NFUlQoc2hhcmluZ01vZGUgPT0gYnVmZmVyLT5zaGFyaW5nTW9kZSgpKTsKIAot
ICAgIEpTQXJyYXlCdWZmZXIqIHJlc3VsdCA9IEpTQXJyYXlCdWZmZXI6OmNyZWF0ZSh2bSwgYXJy
YXlCdWZmZXJTdHJ1Y3R1cmUsIFdURk1vdmUoYnVmZmVyKSk7CisgICAgSlNBcnJheUJ1ZmZlciog
cmVzdWx0ID0gSlNBcnJheUJ1ZmZlcjo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUoYnVm
ZmVyKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmll
d0NvbnN0cnVjdG9ySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
ZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaAppbmRleCA3ODY1NTJhMmI4
NjA5NzJiNmRmYzc3NTJjYjEwODE1ZjM3NzJhY2Y0Li42ZDRlOWY5YmJiMTFkN2ExZjliYTcxOTJl
OWEwMWZhZjhkMTM2MTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0
b3JJbmxpbmVzLmgKQEAgLTEzNCw3ICsxMzQsOSBAQCBpbmxpbmUgSlNBcnJheUJ1ZmZlciogY29u
c3RydWN0Q3VzdG9tQXJyYXlCdWZmZXJJZk5lZWRlZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBhdXRvIHJlc3VsdCA9IEpTQXJy
YXlCdWZmZXI6OmNyZWF0ZSh2bSwgZ2V0RnVuY3Rpb25SZWFsbSh2bSwgYXNPYmplY3Qoc3BlY2ll
cy52YWx1ZSgpKSktPmFycmF5QnVmZmVyU3RydWN0dXJlKEFycmF5QnVmZmVyU2hhcmluZ01vZGU6
OkRlZmF1bHQpLCBXVEZNb3ZlKGJ1ZmZlcikpOworICAgIEpTR2xvYmFsT2JqZWN0KiBmdW5jdGlv
bkdsb2JhbE9iamVjdCA9IGdldEZ1bmN0aW9uUmVhbG0oZ2xvYmFsT2JqZWN0LCBhc09iamVjdChz
cGVjaWVzLnZhbHVlKCkpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRy
KTsKKyAgICBhdXRvIHJlc3VsdCA9IEpTQXJyYXlCdWZmZXI6OmNyZWF0ZSh2bSwgZnVuY3Rpb25H
bG9iYWxPYmplY3QtPmFycmF5QnVmZmVyU3RydWN0dXJlKEFycmF5QnVmZmVyU2hhcmluZ01vZGU6
OkRlZmF1bHQpLCBXVEZNb3ZlKGJ1ZmZlcikpOwogICAgIGlmIChwcm90b3R5cGUuaXNPYmplY3Qo
KSkKICAgICAgICAgcmVzdWx0LT5zZXRQcm90b3R5cGVEaXJlY3Qodm0sIHByb3RvdHlwZSk7CiAg
ICAgcmV0dXJuIHJlc3VsdDsKQEAgLTI2MCw5ICsyNjIsNyBAQCBBTFdBWVNfSU5MSU5FIEVuY29k
ZWRKU1ZhbHVlIGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld0ltcGwoSlNHbG9iYWxPYmpl
Y3QqCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNP
YmplY3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkpOwotICAg
IFN0cnVjdHVyZSogc3RydWN0dXJlID0gbmV3VGFyZ2V0ID09IGNhbGxGcmFtZS0+anNDYWxsZWUo
KQotICAgICAgICA/IGdsb2JhbE9iamVjdC0+dHlwZWRBcnJheVN0cnVjdHVyZShWaWV3Q2xhc3M6
OlR5cGVkQXJyYXlTdG9yYWdlVHlwZSkKLSAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVh
dGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIG5ld1RhcmdldCwgZ2V0RnVuY3Rpb25S
ZWFsbSh2bSwgbmV3VGFyZ2V0KS0+dHlwZWRBcnJheVN0cnVjdHVyZShWaWV3Q2xhc3M6OlR5cGVk
QXJyYXlTdG9yYWdlVHlwZSkpOworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gSlNDX0dFVF9E
RVJJVkVEX1NUUlVDVFVSRSh2bSwgdHlwZWRBcnJheVN0cnVjdHVyZVdpdGhUeXBlZEFycmF5VHlw
ZTxWaWV3Q2xhc3M6OlR5cGVkQXJyYXlTdG9yYWdlVHlwZT4sIG5ld1RhcmdldCwgY2FsbEZyYW1l
LT5qc0NhbGxlZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAg
ICAgc2l6ZV90IGFyZ0NvdW50ID0gY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCAzZTliZDYy
NDU5MzMxYjhhNTE2MjYyMjMxNDk4YWRmMmUxMTM3MjU4Li5iMzYyOTI4YzJkOWYxZTFlYmM4MzU5
MzA4MDUwOTNkMDNmOWJhMDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmgKQEAgLTc4Niw2ICs3ODYsOCBAQCBjbGFzcyBKU0dsb2JhbE9iamVj
dCA6IHB1YmxpYyBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0IHsKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KKyAgICB0ZW1wbGF0
ZTxFcnJvclR5cGUgZXJyb3JUeXBlPiBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlV2l0aEVycm9y
VHlwZSgpIGNvbnN0IHsgcmV0dXJuIGVycm9yU3RydWN0dXJlKGVycm9yVHlwZSk7IH0KKwogICAg
IFN0cnVjdHVyZSogY2FsbGVlU3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsZWVTdHJ1
Y3R1cmUuZ2V0KCk7IH0KICAgICBTdHJ1Y3R1cmUqIGhvc3RGdW5jdGlvblN0cnVjdHVyZSgpIGNv
bnN0IHsgcmV0dXJuIG1faG9zdEZ1bmN0aW9uU3RydWN0dXJlLmdldCgpOyB9CiAKQEAgLTkxNSw2
ICs5MTcsNyBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdCA6IHB1YmxpYyBKU1NlZ21lbnRlZFZhcmlh
YmxlT2JqZWN0IHsKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQorICAgIHRlbXBsYXRlPEFycmF5QnVmZmVyU2hhcmlu
Z01vZGUgc2hhcmluZ01vZGU+IFN0cnVjdHVyZSogYXJyYXlCdWZmZXJTdHJ1Y3R1cmVXaXRoU2hh
cmluZ01vZGUoKSBjb25zdCB7IHJldHVybiBhcnJheUJ1ZmZlclN0cnVjdHVyZShzaGFyaW5nTW9k
ZSk7IH0KICAgICBKU09iamVjdCogYXJyYXlCdWZmZXJDb25zdHJ1Y3RvcihBcnJheUJ1ZmZlclNo
YXJpbmdNb2RlIHNoYXJpbmdNb2RlKSBjb25zdAogICAgIHsKICAgICAgICAgc3dpdGNoIChzaGFy
aW5nTW9kZSkgewpAQCAtOTc4LDYgKzk4MSw3IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0IDogcHVi
bGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgewogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICByZXR1cm4gdHlwZWRBcnJheVN0cnVjdHVyZUNvbmN1cnJlbnRseSh0eXBlKSA9
PSBzdHJ1Y3R1cmU7CiAgICAgfQorICAgIHRlbXBsYXRlPFR5cGVkQXJyYXlUeXBlIHR5cGU+IFN0
cnVjdHVyZSogdHlwZWRBcnJheVN0cnVjdHVyZVdpdGhUeXBlZEFycmF5VHlwZSgpIGNvbnN0IHsg
cmV0dXJuIHR5cGVkQXJyYXlTdHJ1Y3R1cmUodHlwZSk7IH0KIAogICAgIEpTT2JqZWN0KiB0eXBl
ZEFycmF5Q29uc3RydWN0b3IoVHlwZWRBcnJheVR5cGUgdHlwZSkgY29uc3QKICAgICB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdElubGlu
ZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0SW5saW5l
cy5oCmluZGV4IDVmMWYyNTI0OTNmNDA2NmUwMmIxYmEwYzNmNmFiYWU1YzM5ZTQ1MjEuLmZmMDVl
NzQ4MmZmNmRlOWIwYWVmYWRkMTBjY2NiM2IzYzJjMTVlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0SW5saW5lcy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0SW5saW5lcy5oCkBAIC0xMDEs
OSArMTAxLDEzIEBAIEFMV0FZU19JTkxJTkUgYm9vbCBKU0dsb2JhbE9iamVjdDo6aXNTZXRQcm90
b3R5cGVBZGRGYXN0QW5kTm9uT2JzZXJ2YWJsZSgpCiAKIEFMV0FZU19JTkxJTkUgU3RydWN0dXJl
KiBKU0dsb2JhbE9iamVjdDo6YXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxv
Y2F0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEluZGV4aW5nVHlwZSBpbmRleGlu
Z1R5cGUsIEpTVmFsdWUgbmV3VGFyZ2V0KSBjb25zdAogewotICAgIHJldHVybiAhbmV3VGFyZ2V0
IHx8IG5ld1RhcmdldCA9PSBnbG9iYWxPYmplY3QtPmFycmF5Q29uc3RydWN0b3IoKQotICAgICAg
ICA/IGdsb2JhbE9iamVjdC0+YXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxv
Y2F0aW9uKGluZGV4aW5nVHlwZSkKLSAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVT
dWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIGFzT2JqZWN0KG5ld1RhcmdldCksIGdldEZ1
bmN0aW9uUmVhbG0oZ2xvYmFsT2JqZWN0LT52bSgpLCBhc09iamVjdChuZXdUYXJnZXQpKS0+YXJy
YXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKGluZGV4aW5nVHlwZSkp
OworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgaWYgKCFuZXdUYXJnZXQgfHwgbmV3VGFyZ2V0ID09
IGdsb2JhbE9iamVjdC0+YXJyYXlDb25zdHJ1Y3RvcigpKQorICAgICAgICByZXR1cm4gZ2xvYmFs
T2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oaW5k
ZXhpbmdUeXBlKTsKKyAgICBhdXRvKiBmdW5jdGlvbkdsb2JhbE9iamVjdCA9IGdldEZ1bmN0aW9u
UmVhbG0oZ2xvYmFsT2JqZWN0LCBhc09iamVjdChuZXdUYXJnZXQpKTsKKyAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUs
IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwg
YXNPYmplY3QobmV3VGFyZ2V0KSwgZnVuY3Rpb25HbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJl
Rm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbihpbmRleGluZ1R5cGUpKSk7CiB9CiAKIGlu
bGluZSBKU0Z1bmN0aW9uKiBKU0dsb2JhbE9iamVjdDo6dGhyb3dUeXBlRXJyb3JGdW5jdGlvbigp
IGNvbnN0IHsgcmV0dXJuIGpzQ2FzdDxKU0Z1bmN0aW9uKj4obGlua1RpbWVDb25zdGFudChMaW5r
VGltZUNvbnN0YW50Ojp0aHJvd1R5cGVFcnJvckZ1bmN0aW9uKSk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmNwcAppbmRleCAyYzM3MzI1ODBj
YmVjZTEzNWIyY2U1MGM5MzJkZWJhMTgwYmNmMmYzLi43NTU3MTAwOWY4YTFlYmFjZDQ4OTljZWUw
MzBmODExN2QzZWI3ZjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9NYXBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TWFwQ29uc3RydWN0b3IuY3BwCkBAIC02Myw5ICs2Myw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihjb25zdHJ1Y3RNYXAsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNP
YmplY3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkpOwotICAg
IFN0cnVjdHVyZSogbWFwU3RydWN0dXJlID0gbmV3VGFyZ2V0ID09IGNhbGxGcmFtZS0+anNDYWxs
ZWUoKQotICAgICAgICA/IGdsb2JhbE9iamVjdC0+bWFwU3RydWN0dXJlKCkKLSAgICAgICAgOiBJ
bnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIG5l
d1RhcmdldCwgZ2V0RnVuY3Rpb25SZWFsbSh2bSwgbmV3VGFyZ2V0KS0+bWFwU3RydWN0dXJlKCkp
OworICAgIFN0cnVjdHVyZSogbWFwU3RydWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVS
RSh2bSwgbWFwU3RydWN0dXJlLCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIEpTVmFsdWUgaXRlcmFi
bGUgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCBiNmU3ZWRl
ZmQ0MmVkYzYzNWQ5MGI3ZTBlOGM3YjRmYzBjMjQzZDFkLi5mNTdhYTU1MGYzNzhiYTEwNzg5MDg0
NzRlMTQ4NDZkN2JkM2EzNWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtNTIsMTIgKzUyLDggQEAg
aW5saW5lIEVuY29kZWRKU1ZhbHVlIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBlPjo6
Y29uc3RydWN0SW1wbChKU0dsb2JhbE8KICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUt
PmFyZ3VtZW50KDApOwogCiAgICAgSlNPYmplY3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxG
cmFtZS0+bmV3VGFyZ2V0KCkpOwotICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBuZXdU
YXJnZXQgPT0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpCi0gICAgICAgID8gZ2xvYmFsT2JqZWN0LT5l
cnJvclN0cnVjdHVyZShlcnJvclR5cGUpCi0gICAgICAgIDogSW50ZXJuYWxGdW5jdGlvbjo6Y3Jl
YXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQsIGdldEZ1bmN0aW9u
UmVhbG0odm0sIG5ld1RhcmdldCktPmVycm9yU3RydWN0dXJlKGVycm9yVHlwZSkpOworICAgIFN0
cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCBl
cnJvclN0cnVjdHVyZVdpdGhFcnJvclR5cGU8ZXJyb3JUeXBlPiwgbmV3VGFyZ2V0LCBjYWxsRnJh
bWUtPmpzQ2FsbGVlKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0g
ICAgQVNTRVJUKGVycm9yU3RydWN0dXJlKTsKLQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVy
cm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZXJyb3JUeXBlLCBm
YWxzZSkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TnVtYmVyQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVt
YmVyQ29uc3RydWN0b3IuY3BwCmluZGV4IDhmZjQ1MzQ5NTVhMGE4MTc5ZGI1MmMwMjMwODQ0Nzg4
YmYzOGQ4NmIuLjYyM2ExNmI1MjM1ZGY4MzlmYjllNWRlZWVmYjY1Mjg1YWNhNjI3ZDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5j
cHAKQEAgLTEwMSw5ICsxMDEsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0
TnVtYmVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAgIH0KIAog
ICAgIEpTT2JqZWN0KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJhbWUtPm5ld1RhcmdldCgp
KTsKLSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG5ld1RhcmdldCA9PSBjYWxsRnJhbWUtPmpz
Q2FsbGVlKCkKLSAgICAgICAgPyBnbG9iYWxPYmplY3QtPm51bWJlck9iamVjdFN0cnVjdHVyZSgp
Ci0gICAgICAgIDogSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZ2xv
YmFsT2JqZWN0LCBuZXdUYXJnZXQsIGdldEZ1bmN0aW9uUmVhbG0odm0sIG5ld1RhcmdldCktPm51
bWJlck9iamVjdFN0cnVjdHVyZSgpKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpTQ19H
RVRfREVSSVZFRF9TVFJVQ1RVUkUodm0sIG51bWJlck9iamVjdFN0cnVjdHVyZSwgbmV3VGFyZ2V0
LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHsgfSk7CiAKICAgICBOdW1iZXJPYmplY3QqIG9iamVjdCA9IE51bWJlck9iamVjdDo6Y3JlYXRl
KHZtLCBzdHJ1Y3R1cmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T2JqZWN0Q29uc3RydWN0b3IuY3BwCmluZGV4IDgxODA0OTFjNTMxNTY5M2Y0OTUzMDM1ZWE5ZGI2
Nzk4ZDkxMDAzM2IuLjgwZmFlMDBmYjBiYWNlNzIyNjI2YzIzZDg0NGIxNTc2NmQ1MDE4YTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rv
ci5jcHAKQEAgLTExNCw3ICsxMTQsOSBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBKU09iamVjdCog
Y29uc3RydWN0T2JqZWN0V2l0aE5ld1RhcmdldChKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIC8v
IDEuIElmIE5ld1RhcmdldCBpcyBuZWl0aGVyIHVuZGVmaW5lZCBub3IgdGhlIGFjdGl2ZSBmdW5j
dGlvbiwgdGhlbgogICAgIGlmIChuZXdUYXJnZXQgJiYgbmV3VGFyZ2V0ICE9IG9iamVjdENvbnN0
cnVjdG9yKSB7CiAgICAgICAgIC8vIGEuIFJldHVybiA/IE9yZGluYXJ5Q3JlYXRlRnJvbUNvbnN0
cnVjdG9yKE5ld1RhcmdldCwgIiVPYmplY3RQcm90b3R5cGUlIikuCi0gICAgICAgIFN0cnVjdHVy
ZSogYmFzZVN0cnVjdHVyZSA9IGdldEZ1bmN0aW9uUmVhbG0odm0sIGFzT2JqZWN0KG5ld1Rhcmdl
dCkpLT5vYmplY3RTdHJ1Y3R1cmVGb3JPYmplY3RDb25zdHJ1Y3RvcigpOworICAgICAgICBKU0ds
b2JhbE9iamVjdCogZnVuY3Rpb25HbG9iYWxPYmplY3QgPSBnZXRGdW5jdGlvblJlYWxtKGdsb2Jh
bE9iamVjdCwgYXNPYmplY3QobmV3VGFyZ2V0KSk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIG51bGxwdHIpOworICAgICAgICBTdHJ1Y3R1cmUqIGJhc2VTdHJ1Y3R1cmUgPSBm
dW5jdGlvbkdsb2JhbE9iamVjdC0+b2JqZWN0U3RydWN0dXJlRm9yT2JqZWN0Q29uc3RydWN0b3Io
KTsKICAgICAgICAgU3RydWN0dXJlKiBvYmplY3RTdHJ1Y3R1cmUgPSBJbnRlcm5hbEZ1bmN0aW9u
OjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIGFzT2JqZWN0KG5ld1Rhcmdl
dCksIGJhc2VTdHJ1Y3R1cmUpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBu
dWxscHRyKTsKICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEVtcHR5T2JqZWN0KHZtLCBvYmplY3RT
dHJ1Y3R1cmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJv
eHlDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eUNv
bnN0cnVjdG9yLmNwcAppbmRleCBkY2NmY2RjOGFmYjM2OGUzMDM1NGFhNmVlNjkwZTgwOTBhMzZk
MzNiLi4zODdiZTI0ODI2MGM1YjdiZGNjODk2YTc4Mzc2NDEzYTdlMjU5MWQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmNwcApAQCAt
NDAsNyArNDAsNyBAQCBjb25zdCBDbGFzc0luZm8gUHJveHlDb25zdHJ1Y3Rvcjo6c19pbmZvID0g
eyAiUHJveHkiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudQogUHJveHlDb25zdHJ1Y3Rvciog
UHJveHlDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiB7
CiAgICAgUHJveHlDb25zdHJ1Y3RvciogY29uc3RydWN0b3IgPSBuZXcgKE5vdE51bGwsIGFsbG9j
YXRlQ2VsbDxQcm94eUNvbnN0cnVjdG9yPih2bS5oZWFwKSkgUHJveHlDb25zdHJ1Y3Rvcih2bSwg
c3RydWN0dXJlKTsKLSAgICBjb25zdHJ1Y3Rvci0+ZmluaXNoQ3JlYXRpb24odm0sICJQcm94eSIs
IHN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCkpOworICAgIGNvbnN0cnVjdG9yLT5maW5pc2hDcmVh
dGlvbih2bSwgc3RydWN0dXJlLT5nbG9iYWxPYmplY3QoKSk7CiAgICAgcmV0dXJuIGNvbnN0cnVj
dG9yOwogfQogCkBAIC03NCwxMCArNzQsMTAgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1h
a2VSZXZvY2FibGVQcm94eSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGwKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLXZvaWQgUHJveHlDb25zdHJ1
Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBjb25zdCBjaGFyKiBuYW1lLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0KQordm9pZCBQcm94eUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7Ci0gICAgQmFzZTo6Zmlu
aXNoQ3JlYXRpb24odm0sIDIsIG5hbWUsIFByb3BlcnR5QWRkaXRpb25Nb2RlOjpXaXRoU3RydWN0
dXJlVHJhbnNpdGlvbik7Ci0gICAgcHV0RGlyZWN0KHZtLCBtYWtlSWRlbnRpZmllcih2bSwgInJl
dm9jYWJsZSIpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgMiwgInJldm9j
YWJsZSJfcywgbWFrZVJldm9jYWJsZVByb3h5KSk7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
dm0sIDIsICJQcm94eSIsIFByb3BlcnR5QWRkaXRpb25Nb2RlOjpXaXRob3V0U3RydWN0dXJlVHJh
bnNpdGlvbik7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInJl
dm9jYWJsZSIsIG1ha2VSZXZvY2FibGVQcm94eSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIDIpOwogfQogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oY29uc3RydWN0UHJveHlPYmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm94eUNvbnN0cnVjdG9yLmgKaW5kZXggNWM5M2E2NjMwODU4MzU3MGY1NDIxYmNlYzNlMDc0
OTBlY2I4NjRlOC4uYjQzZmQxYzMwYjA2MzdjZGI5ODFiMzAyZmNiN2Y2MTM4MWVmMTE0NCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlDb25zdHJ1Y3Rvci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuaApA
QCAtNDMsNyArNDMsNyBAQCBjbGFzcyBQcm94eUNvbnN0cnVjdG9yIGZpbmFsIDogcHVibGljIElu
dGVybmFsRnVuY3Rpb24gewogICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKICAgICB9CiAKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9u
KFZNJiwgY29uc3QgY2hhciogbmFtZSwgSlNHbG9iYWxPYmplY3QqKTsKKyAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKIAogcHJpdmF0ZToKICAgICBQcm94eUNv
bnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNGEzMDhiZDlkYWU0NWJjODY2
NGM5Y2ZlODRhYTlkNjc5NWRmMTllMS4uMjdhYjQwNTUwNDk0Mjc0YjcyZDFkMTZjODkzOGMxYmQz
OTRkNmE0NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cENvbnN0cnVjdG9yLmNwcApAQCAtMjEyLDkgKzIxMiwxMCBAQCBKU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0UmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsTwogCiBpbmxpbmUgU3RydWN0dXJlKiBnZXRSZWdFeHBTdHJ1Y3R1cmUoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBuZXdUYXJnZXQpCiB7Ci0gICAgcmV0dXJuICFuZXdU
YXJnZXQgfHwgbmV3VGFyZ2V0ID09IGdsb2JhbE9iamVjdC0+cmVnRXhwQ29uc3RydWN0b3IoKQot
ICAgICAgICA/IGdsb2JhbE9iamVjdC0+cmVnRXhwU3RydWN0dXJlKCkKLSAgICAgICAgOiBJbnRl
cm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIGFzT2Jq
ZWN0KG5ld1RhcmdldCksIGdldEZ1bmN0aW9uUmVhbG0oZ2xvYmFsT2JqZWN0LT52bSgpLCBhc09i
amVjdChuZXdUYXJnZXQpKS0+cmVnRXhwU3RydWN0dXJlKCkpOworICAgIGlmICghbmV3VGFyZ2V0
KQorICAgICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5yZWdFeHBTdHJ1Y3R1cmUoKTsKKyAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgcmV0dXJuIEpTQ19HRVRfREVSSVZFRF9T
VFJVQ1RVUkUodm0sIHJlZ0V4cFN0cnVjdHVyZSwgYXNPYmplY3QobmV3VGFyZ2V0KSwgZ2xvYmFs
T2JqZWN0LT5yZWdFeHBDb25zdHJ1Y3RvcigpKTsKIH0KIAogaW5saW5lIE9wdGlvblNldDxZYXJy
OjpGbGFncz4gdG9GbGFncyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGZs
YWdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3Ry
dWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3Iu
Y3BwCmluZGV4IDlmZGE4OWM2ZDc2ZDZkZjZjZWYyZWRkYjMyOTBmY2Q4N2IxZTkyZTQuLjgxZWJh
ZDlhNzIyNTE2YzljMGU4OTAxZGI2N2I3MWMxYjJmYTVlNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5jcHAKQEAgLTYzLDkgKzYzLDcgQEAg
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFNldCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSoKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CiAKICAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0gYXNPYmplY3QoY2FsbEZyYW1l
LT5uZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0dXJlKiBzZXRTdHJ1Y3R1cmUgPSBuZXdUYXJnZXQg
PT0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpCi0gICAgICAgID8gZ2xvYmFsT2JqZWN0LT5zZXRTdHJ1
Y3R1cmUoKQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0
dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdUYXJn
ZXQpLT5zZXRTdHJ1Y3R1cmUoKSk7CisgICAgU3RydWN0dXJlKiBzZXRTdHJ1Y3R1cmUgPSBKU0Nf
R0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCBzZXRTdHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2FsbEZy
YW1lLT5qc0NhbGxlZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwog
CiAgICAgSlNWYWx1ZSBpdGVyYWJsZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKaW5k
ZXggZjJiYTVjNDExYmE2MmUwNjBiZWE1ZGVjYzVlOGQ1NTkxZjVhMmNmMy4uOTJkYzk0NjlkMmE4
NGM1NDkyMjBlMjFmNWYxNmY3N2EwMDU1ZmQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcApAQCAtMTQwLDkgKzE0MCw3IEBA
IEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXaXRoU3RyaW5nQ29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwogCiAgICAgSlNPYmplY3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFt
ZS0+bmV3VGFyZ2V0KCkpOwotICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gbmV3VGFyZ2V0ID09
IGNhbGxGcmFtZS0+anNDYWxsZWUoKQotICAgICAgICA/IGdsb2JhbE9iamVjdC0+c3RyaW5nT2Jq
ZWN0U3RydWN0dXJlKCkKLSAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFz
c1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIG5ld1RhcmdldCwgZ2V0RnVuY3Rpb25SZWFsbSh2bSwg
bmV3VGFyZ2V0KS0+c3RyaW5nT2JqZWN0U3RydWN0dXJlKCkpOworICAgIFN0cnVjdHVyZSogc3Ry
dWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgc3RyaW5nT2JqZWN0U3RydWN0
dXJlLCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIGlmICghY2FsbEZyYW1lLT5hcmd1bWVudENvdW50
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQ29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcENvbnN0
cnVjdG9yLmNwcAppbmRleCA5YThjNmZlM2VkYzRiNmE1MTdjNjA4ZTg3ZDY4NWI3NTA4YzhlNDQ2
Li40ZmM4NGU1MTljNDQxYzE2OTRiY2ZlNDQ3YzFlZTMwZWViNjJkNDM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5jcHAKQEAg
LTYyLDkgKzYyLDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdlYWtNYXAs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnIKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0gYXNP
YmplY3QoY2FsbEZyYW1lLT5uZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0dXJlKiB3ZWFrTWFwU3Ry
dWN0dXJlID0gbmV3VGFyZ2V0ID09IGNhbGxGcmFtZS0+anNDYWxsZWUoKQotICAgICAgICA/IGds
b2JhbE9iamVjdC0+d2Vha01hcFN0cnVjdHVyZSgpCi0gICAgICAgIDogSW50ZXJuYWxGdW5jdGlv
bjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQsIGdldEZ1
bmN0aW9uUmVhbG0odm0sIG5ld1RhcmdldCktPndlYWtNYXBTdHJ1Y3R1cmUoKSk7CisgICAgU3Ry
dWN0dXJlKiB3ZWFrTWFwU3RydWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwg
d2Vha01hcFN0cnVjdHVyZSwgbmV3VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICBKU1dlYWtNYXAqIHdlYWtN
YXAgPSBKU1dlYWtNYXA6OmNyZWF0ZSh2bSwgd2Vha01hcFN0cnVjdHVyZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrT2JqZWN0UmVmQ29uc3RydWN0b3Iu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha09iamVjdFJlZkNvbnN0cnVj
dG9yLmNwcAppbmRleCA1NjRkMDkzNDIwNjA4ODhiZDFkZDE3ZWEwNjA1MDk3MDU3NGM1MWU3Li5m
YmZhZjM1Yzc4YmY2ZTk2ODcxY2MwZDc0MTAxZmNmYmIwN2RlOTg2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrT2JqZWN0UmVmQ29uc3RydWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtPYmplY3RSZWZDb25zdHJ1Y3Rv
ci5jcHAKQEAgLTY0LDkgKzY0LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVj
dFdlYWtSZWYsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnIKICAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkZpcnN0IGFyZ3Vt
ZW50IHRvIFdlYWtSZWYgc2hvdWxkIGJlIGFuIG9iamVjdCJfcyk7CiAKICAgICBKU09iamVjdCog
bmV3VGFyZ2V0ID0gYXNPYmplY3QoY2FsbEZyYW1lLT5uZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0
dXJlKiB3ZWFrT2JqZWN0UmVmU3RydWN0dXJlID0gbmV3VGFyZ2V0ID09IGNhbGxGcmFtZS0+anND
YWxsZWUoKQotICAgICAgICA/IGdsb2JhbE9iamVjdC0+d2Vha09iamVjdFJlZlN0cnVjdHVyZSgp
Ci0gICAgICAgIDogSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZ2xv
YmFsT2JqZWN0LCBuZXdUYXJnZXQsIGdldEZ1bmN0aW9uUmVhbG0odm0sIG5ld1RhcmdldCktPndl
YWtPYmplY3RSZWZTdHJ1Y3R1cmUoKSk7CisgICAgU3RydWN0dXJlKiB3ZWFrT2JqZWN0UmVmU3Ry
dWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgd2Vha09iamVjdFJlZlN0cnVj
dHVyZSwgbmV3VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpT
VmFsdWU6OmVuY29kZShKU1dlYWtPYmplY3RSZWY6OmNyZWF0ZSh2bSwgd2Vha09iamVjdFJlZlN0
cnVjdHVyZSwgY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKS5nZXRPYmplY3QoKSkpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRDb25zdHJ1
Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0Q29uc3RydWN0
b3IuY3BwCmluZGV4IDM5MjljYzkyYTIwMjg4MTRiY2YwOWI0YTlkMTRlMjJhMmZkMDczZjQuLjYy
NGViMGMyYTA1OGVlN2Q4YzhlMTBjNGFlY2YwYjExMDc1MmI3ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmNwcApAQCAtNjIs
OSArNjIsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0V2Vha1NldCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcgogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIEpTT2JqZWN0KiBuZXdUYXJnZXQgPSBhc09iamVj
dChjYWxsRnJhbWUtPm5ld1RhcmdldCgpKTsKLSAgICBTdHJ1Y3R1cmUqIHdlYWtTZXRTdHJ1Y3R1
cmUgPSBuZXdUYXJnZXQgPT0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpCi0gICAgICAgID8gZ2xvYmFs
T2JqZWN0LT53ZWFrU2V0U3RydWN0dXJlKCkKLSAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpj
cmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIG5ld1RhcmdldCwgZ2V0RnVuY3Rp
b25SZWFsbSh2bSwgbmV3VGFyZ2V0KS0+d2Vha1NldFN0cnVjdHVyZSgpKTsKKyAgICBTdHJ1Y3R1
cmUqIHdlYWtTZXRTdHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCB3ZWFr
U2V0U3RydWN0dXJlLCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIEpTV2Vha1NldCogd2Vha1NldCA9
IEpTV2Vha1NldDo6Y3JlYXRlKHZtLCB3ZWFrU2V0U3RydWN0dXJlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3Ry
dWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21w
aWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYzNhMGQzOTdmNTA0ZTI1OGYxZDcwZjhiNDgy
Yjc5YTFkOWU3MjY2Yy4uNTYxODFlNDIyODMxODdhODNlNzZmNGQ4OTA4NjQxM2IwMDlkMzhmYyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21w
aWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTUzLDkgKzUzLDcg
QEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlDb21waWxl
RXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2wKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJh
bWUtPmFyZ3VtZW50KDApOwogCiAgICAgSlNPYmplY3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNh
bGxGcmFtZS0+bmV3VGFyZ2V0KCkpOwotICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gbmV3VGFy
Z2V0ID09IGNhbGxGcmFtZS0+anNDYWxsZWUoKQotICAgICAgICA/IGdsb2JhbE9iamVjdC0+d2Vi
QXNzZW1ibHlDb21waWxlRXJyb3JTdHJ1Y3R1cmUoKQotICAgICAgICA6IEludGVybmFsRnVuY3Rp
b246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRG
dW5jdGlvblJlYWxtKHZtLCBuZXdUYXJnZXQpLT53ZWJBc3NlbWJseUNvbXBpbGVFcnJvclN0cnVj
dHVyZSgpKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJV
Q1RVUkUodm0sIHdlYkFzc2VtYmx5Q29tcGlsZUVycm9yU3RydWN0dXJlLCBuZXdUYXJnZXQsIGNh
bGxGcmFtZS0+anNDYWxsZWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9
KTsKIAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKEpTV2Vi
QXNzZW1ibHlDb21waWxlRXJyb3I6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBzdHJ1Y3R1cmUs
IG1lc3NhZ2UpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseUdsb2JhbENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwCmluZGV4IDkxYmJhNzY1Y2Nm
NTMxMGZiMGZhOWEyMDA4YTMyOTQzOWZlMDgyNzMuLmQwYTgwZTkxNzRlN2E0M2IzMmU2NDhkNDAx
YTVmNmNjODkxYWI1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwCkBAIC01NSw5ICs1
NSw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5R2xv
YmFsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0gYXNPYmpl
Y3QoY2FsbEZyYW1lLT5uZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0dXJlKiB3ZWJBc3NlbWJseUds
b2JhbFN0cnVjdHVyZSA9IG5ld1RhcmdldCA9PSBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkKLSAgICAg
ICAgPyBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5R2xvYmFsU3RydWN0dXJlKCkKLSAgICAgICAg
OiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3Qs
IG5ld1RhcmdldCwgZ2V0RnVuY3Rpb25SZWFsbSh2bSwgbmV3VGFyZ2V0KS0+d2ViQXNzZW1ibHlH
bG9iYWxTdHJ1Y3R1cmUoKSk7CisgICAgU3RydWN0dXJlKiB3ZWJBc3NlbWJseUdsb2JhbFN0cnVj
dHVyZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RVUkUodm0sIHdlYkFzc2VtYmx5R2xvYmFsU3Ry
dWN0dXJlLCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pOwogCiAgICAgSlNPYmplY3QqIGdsb2JhbERlc2Ny
aXB0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseUluc3RhbmNlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmNwcAppbmRleCBmNGFlN2EzMjYxYTBk
OTRkMmEyOWFmNDQ5MWRhMmQyMTVmYmNhZTAxLi41M2U4ZGRkNTUxMTY1M2JlOGE3MmFkOGRmMjc4
YzdhZDNmMDUxYTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHAKQEAgLTY2LDkg
KzY2LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlJ
bnN0YW5jZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZSh0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVUeXBlRXJy
b3IoZ2xvYmFsT2JqZWN0LCAic2Vjb25kIGFyZ3VtZW50IHRvIFdlYkFzc2VtYmx5Lkluc3RhbmNl
IG11c3QgYmUgdW5kZWZpbmVkIG9yIGFuIE9iamVjdCJfcywgZGVmYXVsdFNvdXJjZUFwcGVuZGVy
LCBydW50aW1lVHlwZUZvclZhbHVlKHZtLCBpbXBvcnRBcmd1bWVudCkpKSk7CiAKICAgICBKU09i
amVjdCogbmV3VGFyZ2V0ID0gYXNPYmplY3QoY2FsbEZyYW1lLT5uZXdUYXJnZXQoKSk7Ci0gICAg
U3RydWN0dXJlKiBpbnN0YW5jZVN0cnVjdHVyZSA9IG5ld1RhcmdldCA9PSBjYWxsRnJhbWUtPmpz
Q2FsbGVlKCkKLSAgICAgICAgPyBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5SW5zdGFuY2VTdHJ1
Y3R1cmUoKQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0
dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdUYXJn
ZXQpLT53ZWJBc3NlbWJseUluc3RhbmNlU3RydWN0dXJlKCkpOworICAgIFN0cnVjdHVyZSogaW5z
dGFuY2VTdHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCB3ZWJBc3NlbWJs
eUluc3RhbmNlU3RydWN0dXJlLCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIEpTV2ViQXNzZW1ibHlJ
bnN0YW5jZSogaW5zdGFuY2UgPSBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OnRyeUNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0LCBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OmNyZWF0ZVByaXZhdGVNb2R1bGVL
ZXkoKSwgbW9kdWxlLCBpbXBvcnRPYmplY3QsIGluc3RhbmNlU3RydWN0dXJlLCBSZWY8V2FzbTo6
TW9kdWxlPihtb2R1bGUtPm1vZHVsZSgpKSwgV2FzbTo6Q3JlYXRpb25Nb2RlOjpGcm9tSlMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5r
RXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCAyYzVmNmEyOTMxZjE1MjE1ODVh
YWE5MzVlNTZiNGJkMmYxOWMxNmIxLi4xYzYwYzhjNWMxOTQ3NTE4MWRkMzBjYTYwZWYzZGRjNjVk
M2NkNTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtNTMsOSArNTMs
NyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNXZWJBc3NlbWJseUxpbmtF
cnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGNhbGxG
cmFtZS0+YXJndW1lbnQoMCk7CiAKICAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0gYXNPYmplY3Qo
Y2FsbEZyYW1lLT5uZXdUYXJnZXQoKSk7Ci0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBuZXdU
YXJnZXQgPT0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpCi0gICAgICAgID8gZ2xvYmFsT2JqZWN0LT53
ZWJBc3NlbWJseUxpbmtFcnJvclN0cnVjdHVyZSgpCi0gICAgICAgIDogSW50ZXJuYWxGdW5jdGlv
bjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQsIGdldEZ1
bmN0aW9uUmVhbG0odm0sIG5ld1RhcmdldCktPndlYkFzc2VtYmx5TGlua0Vycm9yU3RydWN0dXJl
KCkpOworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gSlNDX0dFVF9ERVJJVkVEX1NUUlVDVFVS
RSh2bSwgd2ViQXNzZW1ibHlMaW5rRXJyb3JTdHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2FsbEZyYW1l
LT5qc0NhbGxlZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoSlNXZWJBc3NlbWJs
eUxpbmtFcnJvcjo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIHN0cnVjdHVyZSwgbWVzc2FnZSkp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
TWVtb3J5Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZmQ5YjA2MzJjMTEyMjYyMDBhYmZk
NjhlNDVmZGFlMmQ5NmJkOWFjOC4uNzIxMmViNTMxMjQ5ZDFlMzdkNmRkODYwZTFiY2E1Yjg2MzVj
ODM0MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHAKQEAgLTU4LDkgKzU4LDcgQEAgSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlNZW1vcnksIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKIAogICAgIEpTT2JqZWN0KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJh
bWUtPm5ld1RhcmdldCgpKTsKLSAgICBTdHJ1Y3R1cmUqIHdlYkFzc2VtYmx5TWVtb3J5U3RydWN0
dXJlID0gbmV3VGFyZ2V0ID09IGNhbGxGcmFtZS0+anNDYWxsZWUoKQotICAgICAgICA/IGdsb2Jh
bE9iamVjdC0+d2ViQXNzZW1ibHlNZW1vcnlTdHJ1Y3R1cmUoKQotICAgICAgICA6IEludGVybmFs
RnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0
LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdUYXJnZXQpLT53ZWJBc3NlbWJseU1lbW9yeVN0cnVj
dHVyZSgpKTsKKyAgICBTdHJ1Y3R1cmUqIHdlYkFzc2VtYmx5TWVtb3J5U3RydWN0dXJlID0gSlND
X0dFVF9ERVJJVkVEX1NUUlVDVFVSRSh2bSwgd2ViQXNzZW1ibHlNZW1vcnlTdHJ1Y3R1cmUsIG5l
d1RhcmdldCwgY2FsbEZyYW1lLT5qc0NhbGxlZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHRocm93U2NvcGUsIHsgfSk7CiAKICAgICBKU09iamVjdCogbWVtb3J5RGVzY3JpcHRvcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxl
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNDgyYjYyNDkxMWRjZjBmZGFhMTU1MjRiNzlk
NjhmYzBmOGFkYmRjYi4uZWY2ZDI1MDFhNzlkNjNlZWZjNDFhNmQ2NTdhN2M1MDQzYTU1YzdiNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1
bGVDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHAKQEAgLTE4MCw5ICsxODAsNyBAQCBKU1dlYkFz
c2VtYmx5TW9kdWxlKiBXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yOjpjcmVhdGVNb2R1bGUo
SlNHbG9iYWxPYmplY3QqCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogCiAgICAgSlNPYmplY3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+bmV3VGFy
Z2V0KCkpOwotICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gbmV3VGFyZ2V0ID09IGNhbGxGcmFt
ZS0+anNDYWxsZWUoKQotICAgICAgICA/IGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlNb2R1bGVT
dHJ1Y3R1cmUoKQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3Ry
dWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdU
YXJnZXQpLT53ZWJBc3NlbWJseU1vZHVsZVN0cnVjdHVyZSgpKTsKKyAgICBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RVUkUodm0sIHdlYkFzc2VtYmx5TW9kdWxl
U3RydWN0dXJlLCBuZXdUYXJnZXQsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
c2NvcGUsIEpTV2ViQXNzZW1ibHlNb2R1bGU6OmNyZWF0ZVN0dWIodm0sIGdsb2JhbE9iamVjdCwg
c3RydWN0dXJlLCBXYXNtOjpNb2R1bGU6OnZhbGlkYXRlU3luYygmdm0ud2FzbUNvbnRleHQsIFdU
Rk1vdmUoYnVmZmVyKSkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAK
aW5kZXggYTg1NjY5YzUxOGIxZTlhYTY4Yzk1YWQwNTY2ZWJmZDZmYzNkZmE4YS4uMDY2ZjI2Yzlj
OWE3Njc5YzMxYTMxMWQ0YjhkZGM1OTEyZWQ0NTczZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJy
b3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTU1LDkgKzU1LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IsIChKU0dsb2JhbE9iamVjdCog
Z2wKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAog
ICAgIEpTT2JqZWN0KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJhbWUtPm5ld1RhcmdldCgp
KTsKLSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG5ld1RhcmdldCA9PSBjYWxsRnJhbWUtPmpz
Q2FsbGVlKCkKLSAgICAgICAgPyBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5UnVudGltZUVycm9y
U3RydWN0dXJlKCkKLSAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0
cnVjdHVyZShnbG9iYWxPYmplY3QsIG5ld1RhcmdldCwgZ2V0RnVuY3Rpb25SZWFsbSh2bSwgbmV3
VGFyZ2V0KS0+d2ViQXNzZW1ibHlSdW50aW1lRXJyb3JTdHJ1Y3R1cmUoKSk7CisgICAgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUgPSBKU0NfR0VUX0RFUklWRURfU1RSVUNUVVJFKHZtLCB3ZWJBc3NlbWJs
eVJ1bnRpbWVFcnJvclN0cnVjdHVyZSwgbmV3VGFyZ2V0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkp
OwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3I6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUobWVzc2FnZVN0cmluZykpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rv
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29u
c3RydWN0b3IuY3BwCmluZGV4IDc2MjZmZGU4ZmQ3YTQyOGMzMmQ0NGFjYTY1ZDBjY2MwYmYyYTUy
OTMuLmI4MDU4YTlkMmE1MzRkYTRjYTdiYTc5NjY5ZmMzNjQ5NGFiZTBmMGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJs
ZUNvbnN0cnVjdG9yLmNwcApAQCAtNTYsOSArNTYsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oY29uc3RydWN0SlNXZWJBc3NlbWJseVRhYmxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
agogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAg
SlNPYmplY3QqIG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkpOwot
ICAgIFN0cnVjdHVyZSogd2ViQXNzZW1ibHlUYWJsZVN0cnVjdHVyZSA9IG5ld1RhcmdldCA9PSBj
YWxsRnJhbWUtPmpzQ2FsbGVlKCkKLSAgICAgICAgPyBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5
VGFibGVTdHJ1Y3R1cmUoKQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNs
YXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxtKHZt
LCBuZXdUYXJnZXQpLT53ZWJBc3NlbWJseVRhYmxlU3RydWN0dXJlKCkpOworICAgIFN0cnVjdHVy
ZSogd2ViQXNzZW1ibHlUYWJsZVN0cnVjdHVyZSA9IEpTQ19HRVRfREVSSVZFRF9TVFJVQ1RVUkUo
dm0sIHdlYkFzc2VtYmx5VGFibGVTdHJ1Y3R1cmUsIG5ld1RhcmdldCwgY2FsbEZyYW1lLT5qc0Nh
bGxlZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CiAKICAg
ICBKU09iamVjdCogbWVtb3J5RGVzY3JpcHRvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlckNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdyYXBwZXJDYWNoZS5oCmluZGV4IGFlZjEyYmQyMzAyNWU3MGY5Y2Q3MzAxZTY5
ZjhmYzlmMjIxNTlmMzkuLjBhMWVmYWJmOTRlOTJlODg4MjExOTA3NWMwNDJjYjY3NjU5MTljMjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlckNhY2hl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyQ2FjaGUuaApA
QCAtMjE2LDcgKzIxNiw5IEBAIHRlbXBsYXRlPHR5cGVuYW1lIERPTUNsYXNzPiBpbmxpbmUgdm9p
ZCBzZXRTdWJjbGFzc1N0cnVjdHVyZUlmTmVlZGVkKEpTQzo6SlNHbG9iCiAgICAgSlNDOjpWTSYg
dm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIGF1dG8qIG5ld1RhcmdldEdsb2JhbE9iamVjdCA9IEpT
Qzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oSlNDOjpnZXRGdW5jdGlvblJlYWxtKHZtLCBu
ZXdUYXJnZXQpKTsKKyAgICBhdXRvKiBmdW5jdGlvbkdsb2JhbE9iamVjdCA9IEpTQzo6Z2V0RnVu
Y3Rpb25SZWFsbShsZXhpY2FsR2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQpOworICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CisgICAgYXV0byogbmV3VGFyZ2V0R2xvYmFsT2Jq
ZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihmdW5jdGlvbkdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byogYmFzZVN0cnVjdHVyZSA9IGdldERPTVN0cnVjdHVyZTxXcmFwcGVyQ2xh
c3M+KHZtLCAqbmV3VGFyZ2V0R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvKiBzdWJjbGFzc1N0cnVj
dHVyZSA9IEpTQzo6SW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUobGV4
aWNhbEdsb2JhbE9iamVjdCwgbmV3VGFyZ2V0LCBiYXNlU3RydWN0dXJlKTsKICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNIVE1MRWxlbWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0hUTUxFbGVtZW50Q3VzdG9tLmNwcAppbmRleCBlY2VmM2JhYjIzMDU5ZjY0ODk1
N2RlN2I2NTFhYjE3YzIwNTg1N2I1Li43MDI0ZWRhZGI0NzcwZmRkNDE3OGVlNGM1OWY1ODllZjcz
OGNmY2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxFbGVt
ZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxFbGVt
ZW50Q3VzdG9tLmNwcApAQCAtNTUsNyArNTUsOSBAQCBFbmNvZGVkSlNWYWx1ZSBjb25zdHJ1Y3RK
U0hUTUxFbGVtZW50KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRgog
ICAgIEFTU0VSVChjb250ZXh0LT5pc0RvY3VtZW50KCkpOwogCiAgICAgYXV0byogbmV3VGFyZ2V0
ID0gY2FsbEZyYW1lLm5ld1RhcmdldCgpLmdldE9iamVjdCgpOwotICAgIGF1dG8qIG5ld1Rhcmdl
dEdsb2JhbE9iamVjdCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdldEZ1bmN0aW9uUmVh
bG0odm0sIG5ld1RhcmdldCkpOworICAgIGF1dG8qIGZ1bmN0aW9uR2xvYmFsT2JqZWN0ID0gZ2V0
RnVuY3Rpb25SZWFsbShsZXhpY2FsR2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQpOworICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgYXV0byogbmV3VGFyZ2V0R2xvYmFsT2Jq
ZWN0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZnVuY3Rpb25HbG9iYWxPYmplY3QpOwog
ICAgIEpTVmFsdWUgaHRtbEVsZW1lbnRDb25zdHJ1Y3RvclZhbHVlID0gSlNIVE1MRWxlbWVudDo6
Z2V0Q29uc3RydWN0b3Iodm0sIG5ld1RhcmdldEdsb2JhbE9iamVjdCk7CiAgICAgaWYgKG5ld1Rh
cmdldCA9PSBodG1sRWxlbWVudENvbnN0cnVjdG9yVmFsdWUpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCAibmV3LnRhcmdldCBpcyBu
b3QgYSB2YWxpZCBjdXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvciJfcyk7CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNhNWUyNzA0OTUzYWQw
ODU0NTc2NDQ4NGJjMzQ5ODI5Yjk4MmJhNWUuLjg4NjQ0ZWM5M2RlMGE1YTUzODJiNGUyZGE5NjIw
NGI5MDg0MTZkZDAgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMDItMjcgIFl1c3VrZSBTdXp1a2kgIDx5
c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBUaHJvdyBUeXBlRXJyb3Igd2hlbiBn
ZXRGdW5jdGlvblJlYWxtIGhpdHMgcmV2b2tlZCBQcm94eQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB0ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sOgor
CiAyMDIxLTAyLTI2ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAg
ICAgIEZvbGxvd3VwIHRlc3QgZml4IHRvIHIyNzM1OTQKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVz
dDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFt
bAppbmRleCA3NWE2NjQ5YjlmYjY0Y2YxMjQ5ZTBhNGIwOTMxM2MwMmZhODcxN2NjLi5kNTkyN2Ix
YzdhODA4ZGY3YjFkODZjYmY5MmEwYzNiMzVlNTJlNTY0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rl
c3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9u
cy55YW1sCkBAIC02MTIsMTIgKzYxMiw2IEBAIHRlc3QvYnVpbHQtaW5zL0Z1bmN0aW9uL2NhbGwt
YmluZC10aGlzLXJlYWxtLXVuZGVmLmpzOgogdGVzdC9idWlsdC1pbnMvRnVuY3Rpb24vaW50ZXJu
YWxzL0NhbGwvY2xhc3MtY3Rvci1yZWFsbS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjog
RXhwZWN0ZWQgYSBUeXBlRXJyb3IgYnV0IGdvdCBhIFR5cGVFcnJvcicKICAgc3RyaWN0IG1vZGU6
ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIGJ1dCBnb3QgYSBUeXBlRXJyb3In
Ci10ZXN0L2J1aWx0LWlucy9GdW5jdGlvbi9pbnRlcm5hbHMvQ29uc3RydWN0L2Jhc2UtY3Rvci1y
ZXZva2VkLXByb3h5LXJlYWxtLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0
IGFsbCcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9y
IHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwotdGVzdC9i
dWlsdC1pbnMvRnVuY3Rpb24vaW50ZXJuYWxzL0NvbnN0cnVjdC9iYXNlLWN0b3ItcmV2b2tlZC1w
cm94eS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3Ig
dG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCi0gIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24g
YnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKIHRlc3QvYnVpbHQtaW5zL0Z1bmN0
aW9uL2ludGVybmFscy9Db25zdHJ1Y3QvZGVyaXZlZC1yZXR1cm4tdmFsLXJlYWxtLmpzOgogICBk
ZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEgVHlw
ZUVycm9yJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJy
b3IgYnV0IGdvdCBhIFR5cGVFcnJvcicK
</data>

          </attachment>
      

    </bug>

</bugzilla>