<?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>231368</bug_id>
          
          <creation_ts>2021-10-07 09:42:56 -0700</creation_ts>
          <short_desc>[JSC][32bit] Fix profiling in baseline</short_desc>
          <delta_ts>2021-10-11 02:11:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geza Lore">glore</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>clopez</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>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1801631</commentid>
    <comment_count>0</comment_count>
    <who name="Geza Lore">glore</who>
    <bug_when>2021-10-07 09:42:56 -0700</bug_when>
    <thetext>[JSC][32-bit] Fix profiling in baseline</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801643</commentid>
    <comment_count>1</comment_count>
      <attachid>440507</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2021-10-07 10:23:09 -0700</bug_when>
    <thetext>Created attachment 440507
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801747</commentid>
    <comment_count>2</comment_count>
      <attachid>440507</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-07 13:19:58 -0700</bug_when>
    <thetext>Comment on attachment 440507
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802547</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-11 02:10:47 -0700</bug_when>
    <thetext>Committed r283887 (242764@main): &lt;https://commits.webkit.org/242764@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440507.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802548</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-11 02:11:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/84091436&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440507</attachid>
            <date>2021-10-07 10:23:09 -0700</date>
            <delta_ts>2021-10-11 02:10:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231368-20211007182307.patch</filename>
            <type>text/plain</type>
            <size>32294</size>
            <attacher name="Geza Lore">glore</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNzA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
ZDJjNWEzYTgxNTRlNjUyN2Y3NjIyMzU0NGM3NDE3ZTZmOWRhODc3Li5kMjk2MTA1MzhjMzA0M2Y0
NWFmMTg3NjYwNmUzNDI4MjAxMjBhNTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAyMS0xMC0wNyAgR2V6YSBMb3JlICA8Z2xvcmVAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbSlNDXVszMmJpdF0gRml4IHByb2ZpbGluZyBpbiBiYXNlbGluZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMzY4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4ZXMgcHJvZmlsaW5nIG9t
aXNzaW9ucyBpbnRyb2R1Y2VkIHdpdGggdGhlIHJlY2VudCAzMi1iaXQgYmFzZWxpbmUKKyAgICAg
ICAgYnVpbGQgZml4ZXMsIGFuZCBhbHNvIGJyaW5ncyB0aGUgcmVzdCBvZiBwcm9maWxlIHVwZGF0
ZXMgaW4tbGluZSB3aXRoCisgICAgICAgIHRoZSB1bmxpbmtlZCBiYXNlbGluZSBvbiA2NC1iaXQg
cGxhdGZvcm1zLgorCisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRDYWxs
MzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRQdXRDYWxsUmVzdWx0KToKKyAgICAg
ICAgKEpTQzo6SklUOjpjb21waWxlU2V0dXBGcmFtZSk6CisgICAgICAgIChKU0M6OkpJVDo6Y29t
cGlsZU9wQ2FsbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9pdGVyYXRvcl9vcGVuKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9pdGVyYXRvcl9vcGVuKToKKyAgICAgICAg
KEpTQzo6SklUOjplbWl0X29wX2l0ZXJhdG9yX25leHQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRTbG93X29wX2l0ZXJhdG9yX25leHQpOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVzLmg6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZUlmUHJvZmlsZWRPcGNvZGUp
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbCk6CisgICAgICAgICogaml0
L0pJVE9wY29kZXMzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9qbmVxX3B0
cik6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF90b19udW1iZXIpOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRfb3BfdG9fbnVtZXJpYyk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF90
b19vYmplY3QpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfY2F0Y2gpOgorICAgICAgICAq
IGppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
X29wX2dldF9ieV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92
YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X3ByaXZhdGVfbmFtZSk6CisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfZ2V0X3ByaXZhdGVfbmFtZSk6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdF9vcF9wdXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29w
X3RyeV9nZXRfYnlfaWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkX2Rp
cmVjdCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X2lkX2RpcmVjdCk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfaWQpOgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRTbG93X29wX2dldF9ieV9pZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9n
ZXRfYnlfaWRfd2l0aF90aGlzKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9nZXRf
YnlfaWRfd2l0aF90aGlzKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2luX2J5X3ZhbCk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfZnJvbV9zY29wZSk6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2Zyb21fc2NvcGUpOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRfb3BfZ2V0X2Zyb21fYXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29w
X2dldF9pbnRlcm5hbF9maWVsZCk6CisKIDIwMjEtMTAtMDYgIEdlemEgTG9yZSAgPGdlemFsb3Jl
QGdtYWlsLmNvbT4KIAogICAgICAgICBBbGxvdyBERkcgdG8gdXNlIHJlZ0NTMCBHUFIgKExMSW50
IG1ldGFkYXRhVGFibGUpIG9uIEFSTXY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAppbmRleCA5ZWI3
NjRjOTA0NGZkNjA0ZDk1NTI5ZDI2M2Q4Yjg0YzBjYjQyNmE4Li40N2M1YTlmZWY0Yjk1YjYyZmZh
NjkzN2ZmYmM3MDk2ZWQzZjlkN2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAgLTM0Mywx
NyArMzQzLDEyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGVtaXRXcml0ZUJhcnJp
ZXIoSlNDZWxsKiBvd25lcik7CiAgICAgICAgIHZvaWQgZW1pdFdyaXRlQmFycmllcihHUFJSZWcg
b3duZXIpOwogCi0gICAgICAgIC8vIFRoaXMgYXNzdW1lcyB0aGF0IHRoZSB2YWx1ZSB0byBwcm9m
aWxlIGlzIGluIHJlZ1QwIGFuZCB0aGF0IHJlZ1QzIGlzIGF2YWlsYWJsZSBmb3IKLSAgICAgICAg
Ly8gc2NyYXRjaC4KKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBCeXRlY29kZT4gdm9pZCBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGNvbnN0IEJ5dGVjb2RlJiwg
R1BSUmVnKTsKLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQnl0ZWNvZGU+IHZvaWQgZW1pdFZh
bHVlUHJvZmlsaW5nU2l0ZShjb25zdCBCeXRlY29kZSYsIEpTVmFsdWVSZWdzKTsKLSNpZiBVU0Uo
SlNWQUxVRTMyXzY0KQotICAgICAgICB2b2lkIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoVmFsdWVQ
cm9maWxlJiwgSlNWYWx1ZVJlZ3MpOwotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNZXRhZGF0
YT4KLSAgICAgICAgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3NhbWU8ZGVjbHR5cGUoTWV0YWRh
dGE6Om1fcHJvZmlsZSksIFZhbHVlUHJvZmlsZT46OnZhbHVlLCB2b2lkPgotICAgICAgICBlbWl0
VmFsdWVQcm9maWxpbmdTaXRlKE1ldGFkYXRhJiwgSlNWYWx1ZVJlZ3MpOwogI2VuZGlmCisgICAg
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIEJ5dGVjb2RlPiB2b2lkIGVtaXRWYWx1ZVByb2ZpbGluZ1Np
dGUoY29uc3QgQnl0ZWNvZGUmLCBKU1ZhbHVlUmVncyk7CiAKKyAgICAgICAgLy8gVGhpcyBhc3N1
bWVzIHRoYXQgdGhlIHZhbHVlIHRvIHByb2ZpbGUgaXMgaW4gcmVnVDAgKHJlZ1QxL3JlZ1QwIG9u
IEpTVkFMVUUzMl82NCkuCiAgICAgICAgIHZvaWQgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZUlmUHJv
ZmlsZWRPcGNvZGUoLi4uKTsKICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3A+CiAgICAgICAg
IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19zYW1lPGRlY2x0eXBlKE9wOjpNZXRhZGF0YTo6bV9w
cm9maWxlKSwgVmFsdWVQcm9maWxlPjo6dmFsdWUsIHZvaWQ+CkBAIC0zNjQsMTEgKzM1OSw2IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQnl0ZWNvZGU+CiAg
ICAgICAgIHZvaWQgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKGNvbnN0IEJ5dGVjb2Rl
JiwgcHRyZGlmZl90LCBSZWdpc3RlcklEIGNlbGxHUFIsIFJlZ2lzdGVySUQgc2NyYXRjaEdQUik7
CiAKLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICB2b2lkIGVtaXRBcnJheVByb2ZpbGlu
Z1NpdGVXaXRoQ2VsbChSZWdpc3RlcklELCBBcnJheVByb2ZpbGUqICwgUmVnaXN0ZXJJRCk7Ci0g
ICAgICAgIHZvaWQgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKFJlZ2lzdGVySUQsIFJl
Z2lzdGVySUQgLCBSZWdpc3RlcklEKTsKLSNlbmRpZgotCiAgICAgICAgIHRlbXBsYXRlPHR5cGVu
YW1lIE9wPgogICAgICAgICBFQ01BTW9kZSBlY21hTW9kZShPcCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAppbmRleCAyYTMzMTY3NDUyNTRiNmQ0YmZkMTc5
YzhlMTMwN2NlNmZlYmE5NDlhLi5hODdmOWI5MGE1YmRmMTM3ZDdmODFjOTRiYTFmOWY2ZjA4MzA2
OTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwCkBAIC01
Miw3ICs1Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogdGVtcGxhdGU8dHlwZW5hbWUgT3A+CiB2b2lk
IEpJVDo6ZW1pdFB1dENhbGxSZXN1bHQoY29uc3QgT3AmIGJ5dGVjb2RlKQogewotICAgIGVtaXRW
YWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9wcm9maWxlZENvZGVCbG9jayks
IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCkpOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUo
Ynl0ZWNvZGUsIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCkpOwogICAgIGVtaXRTdG9yZShkZXN0
aW5hdGlvbkZvcihieXRlY29kZSwgbV9ieXRlY29kZUluZGV4LmNoZWNrcG9pbnQoKSkudmlydHVh
bFJlZ2lzdGVyKCksIHJlZ1QxLCByZWdUMCk7CiB9CiAKQEAgLTE1NywxNSArMTU3LDE0IEBAIHN0
ZDo6ZW5hYmxlX2lmX3Q8CiBKSVQ6OmNvbXBpbGVTZXR1cEZyYW1lKGNvbnN0IE9wJiBieXRlY29k
ZSwgQ2FsbExpbmtJbmZvKikKIHsKICAgICB1bnNpZ25lZCBjaGVja3BvaW50ID0gbV9ieXRlY29k
ZUluZGV4LmNoZWNrcG9pbnQoKTsKLSAgICBhdXRvJiBtZXRhZGF0YSA9IGJ5dGVjb2RlLm1ldGFk
YXRhKG1fcHJvZmlsZWRDb2RlQmxvY2spOwogICAgIGludCBhcmdDb3VudCA9IGFyZ3VtZW50Q291
bnRJbmNsdWRpbmdUaGlzRm9yKGJ5dGVjb2RlLCBjaGVja3BvaW50KTsKICAgICBpbnQgcmVnaXN0
ZXJPZmZzZXQgPSAtc3RhdGljX2Nhc3Q8aW50PihzdGFja09mZnNldEluUmVnaXN0ZXJzRm9yQ2Fs
bChieXRlY29kZSwgY2hlY2twb2ludCkpOwogCiAgICAgaWYgKE9wOjpvcGNvZGVJRCA9PSBvcF9j
YWxsICYmIHNob3VsZEVtaXRQcm9maWxpbmcoKSkgewogICAgICAgICBlbWl0TG9hZChWaXJ0dWFs
UmVnaXN0ZXIocmVnaXN0ZXJPZmZzZXQgKyBDYWxsRnJhbWU6OmFyZ3VtZW50T2Zmc2V0SW5jbHVk
aW5nVGhpcygwKSksIHJlZ1QwLCByZWdUMSk7CiAgICAgICAgIEp1bXAgZG9uZSA9IGJyYW5jaElm
Tm90Q2VsbChyZWdUMCk7Ci0gICAgICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QxLCBKU0NlbGw6OnN0
cnVjdHVyZUlET2Zmc2V0KCkpLCByZWdUMSk7Ci0gICAgICAgIHN0b3JlMzIocmVnVDEsIG1ldGFk
YXRhLm1fY2FsbExpbmtJbmZvLm1fYXJyYXlQcm9maWxlLmFkZHJlc3NPZkxhc3RTZWVuU3RydWN0
dXJlSUQoKSk7CisgICAgICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QxLCBKU0NlbGw6OnN0cnVjdHVy
ZUlET2Zmc2V0KCkpLCByZWdUMCk7CisgICAgICAgIHN0b3JlMzJUb01ldGFkYXRhKHJlZ1QwLCBi
eXRlY29kZSwgT3BDYWxsOjpNZXRhZGF0YTo6b2Zmc2V0T2ZDYWxsTGlua0luZm8oKSArIExMSW50
Q2FsbExpbmtJbmZvOjpvZmZzZXRPZkFycmF5UHJvZmlsZSgpICsgQXJyYXlQcm9maWxlOjpvZmZz
ZXRPZkxhc3RTZWVuU3RydWN0dXJlSUQoKSk7CiAgICAgICAgIGRvbmUubGluayh0aGlzKTsKICAg
ICB9CiAKQEAgLTMyMCw3ICszMTksNyBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbChjb25zdCBJ
bnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIHVuc2lnbmVkIGNhbGxMaW5rSW5mb0luZAogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBzbG93UGF0aHMgPSBpbmZvLT5lbWl0RmFzdFBh
dGgoKnRoaXMsIHJlZ1QwLCByZWdUMiwgQ2FsbExpbmtJbmZvOjpVc2VEYXRhSUM6Olllcyk7Cisg
ICAgYXV0byBzbG93UGF0aHMgPSBpbmZvLT5lbWl0RmFzdFBhdGgoKnRoaXMsIHJlZ1QwLCByZWdU
MiwgQ2FsbExpbmtJbmZvOjpVc2VEYXRhSUM6Ok5vKTsKICAgICBhZGRTbG93Q2FzZShzbG93UGF0
aHMpOwogICAgIG1fY2FsbENvbXBpbGF0aW9uSW5mb1tjYWxsTGlua0luZm9JbmRleF0uZG9uZUxv
Y2F0aW9uID0gbGFiZWwoKTsKIApAQCAtNDExLDcgKzQxMCw3IEBAIHZvaWQgSklUOjplbWl0X29w
X2l0ZXJhdG9yX29wZW4oY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogICAgIGFkZFNs
b3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRCeUlkcy5hcHBlbmQoZ2VuKTsK
IAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9wcm9maWxl
ZENvZGVCbG9jayksIG5leHRSZWdzKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVj
b2RlLCBuZXh0UmVncyk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihieXRlY29kZS5tX25l
eHQsIG5leHRSZWdzKTsKIAogICAgIGZhc3RDYXNlLmxpbmsodGhpcyk7CkBAIC00NDEsNyArNDQw
LDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2l0ZXJhdG9yX29wZW4oY29uc3QgSW5zdHJ1Y3Rp
b24qIGluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0MKICAgICBMYWJlbCBjb2xkUGF0aEJlZ2luID0g
bGFiZWwoKTsKIAogICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb25XaXRoUHJvZmlsZSgKLSAg
ICAgICAgYnl0ZWNvZGUubWV0YWRhdGEobV9wcm9maWxlZENvZGVCbG9jayksIC8vIG1ldGFkYXRh
CisgICAgICAgIGJ5dGVjb2RlLAogICAgICAgICBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIC8v
IG9wZXJhdGlvbgogICAgICAgICBuZXh0VlJlZywgLy8gcmVzdWx0CiAgICAgICAgIFRydXN0ZWRJ
bW1QdHIobV9wcm9maWxlZENvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCkpLCAvLyBhcmcxCkBAIC00
NjEsNyArNDYwLDYgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2l0ZXJhdG9yX29wZW4oY29uc3Qg
SW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0MKIHZvaWQgSklUOjplbWl0X29w
X2l0ZXJhdG9yX25leHQoY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogewogICAgIGF1
dG8gYnl0ZWNvZGUgPSBpbnN0cnVjdGlvbi0+YXM8T3BJdGVyYXRvck5leHQ+KCk7Ci0gICAgYXV0
byYgbWV0YWRhdGEgPSBieXRlY29kZS5tZXRhZGF0YShtX3Byb2ZpbGVkQ29kZUJsb2NrKTsKICAg
ICBhdXRvKiB0cnlGYXN0RnVuY3Rpb24gPSAoWyZdICgpIHsKICAgICAgICAgc3dpdGNoIChpbnN0
cnVjdGlvbi0+d2lkdGgoKSkgewogICAgICAgICBjYXNlIE5hcnJvdzogcmV0dXJuIGl0ZXJhdG9y
X25leHRfdHJ5X2Zhc3RfbmFycm93OwpAQCAtNDgwLDcgKzQ3OCw5IEBAIHZvaWQgSklUOjplbWl0
X29wX2l0ZXJhdG9yX25leHQoY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogICAgIEp1
bXAgZmFzdENhc2UgPSBicmFuY2gzMihOb3RFcXVhbCwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIy
LCBUcnVzdGVkSW1tMzIoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KEl0ZXJhdGlvbk1vZGU6OkdlbmVy
aWMpKSk7CiAKICAgICBnZW5lcmljQ2FzZS5saW5rKHRoaXMpOwotICAgIG9yOChUcnVzdGVkSW1t
MzIoc3RhdGljX2Nhc3Q8dWludDhfdD4oSXRlcmF0aW9uTW9kZTo6R2VuZXJpYykpLCBBYnNvbHV0
ZUFkZHJlc3MoJm1ldGFkYXRhLm1faXRlcmF0aW9uTWV0YWRhdGEuc2Vlbk1vZGVzKSk7CisgICAg
bG9hZDhGcm9tTWV0YWRhdGEoYnl0ZWNvZGUsIE9wSXRlcmF0b3JOZXh0OjpNZXRhZGF0YTo6b2Zm
c2V0T2ZJdGVyYXRpb25NZXRhZGF0YSgpICsgSXRlcmF0aW9uTW9kZU1ldGFkYXRhOjpvZmZzZXRP
ZlNlZW5Nb2RlcygpLCByZWdUMCk7CisgICAgb3IzMihUcnVzdGVkSW1tMzIoc3RhdGljX2Nhc3Q8
dWludDhfdD4oSXRlcmF0aW9uTW9kZTo6R2VuZXJpYykpLCByZWdUMCk7CisgICAgc3RvcmU4VG9N
ZXRhZGF0YShyZWdUMCwgYnl0ZWNvZGUsIE9wSXRlcmF0b3JOZXh0OjpNZXRhZGF0YTo6b2Zmc2V0
T2ZJdGVyYXRpb25NZXRhZGF0YSgpICsgSXRlcmF0aW9uTW9kZU1ldGFkYXRhOjpvZmZzZXRPZlNl
ZW5Nb2RlcygpKTsKICAgICBjb21waWxlT3BDYWxsPE9wSXRlcmF0b3JOZXh0PihpbnN0cnVjdGlv
biwgbV9jYWxsTGlua0luZm9JbmRleCsrKTsKICAgICBhZHZhbmNlVG9OZXh0Q2hlY2twb2ludCgp
OwogICAgIC8vIGNhbGwgcmVzdWx0ICh7IGRvbmUsIHZhbHVlIH0gSlNPYmplY3QpIGluIHJlZ1Qx
LCByZWdUMApAQCAtNTIxLDcgKzUyMSw3IEBAIHZvaWQgSklUOjplbWl0X29wX2l0ZXJhdG9yX25l
eHQoY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogICAgICAgICBhZGRTbG93Q2FzZShn
ZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgICAgICBtX2dldEJ5SWRzLmFwcGVuZChnZW4pOwogCi0g
ICAgICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUobWV0YWRhdGEsIGRvbmVSZWdzKTsKKyAgICAg
ICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZSwgZG9uZVJlZ3MpOwogICAgICAgICBl
bWl0UHV0VmlydHVhbFJlZ2lzdGVyKGJ5dGVjb2RlLm1fZG9uZSwgZG9uZVJlZ3MpOwogICAgICAg
ICBhZHZhbmNlVG9OZXh0Q2hlY2twb2ludCgpOwogICAgIH0KQEAgLTU1MSw3ICs1NTEsNyBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF9pdGVyYXRvcl9uZXh0KGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnVj
dGlvbikKICAgICAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKICAgICAgICAg
bV9nZXRCeUlkcy5hcHBlbmQoZ2VuKTsKIAotICAgICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRl
KG1ldGFkYXRhLCByZXN1bHRSZWdzKTsKKyAgICAgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShi
eXRlY29kZSwgcmVzdWx0UmVncyk7CiAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoYnl0
ZWNvZGUubV92YWx1ZSwgcmVzdWx0UmVncyk7CiAKICAgICAgICAgaXRlcmF0aW9uRG9uZS5saW5r
KHRoaXMpOwpAQCAtNTg5LDcgKzU4OSw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9pdGVyYXRv
cl9uZXh0KGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDCiAgICAg
ICAgIExhYmVsIGNvbGRQYXRoQmVnaW4gPSBsYWJlbCgpOwogCiAgICAgICAgIENhbGwgY2FsbCA9
IGNhbGxPcGVyYXRpb25XaXRoUHJvZmlsZSgKLSAgICAgICAgICAgIGJ5dGVjb2RlLm1ldGFkYXRh
KG1fcHJvZmlsZWRDb2RlQmxvY2spLCAvLyBtZXRhZGF0YQorICAgICAgICAgICAgYnl0ZWNvZGUs
CiAgICAgICAgICAgICBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIC8vIG9wZXJhdGlvbgogICAg
ICAgICAgICAgZG9uZVZSZWcsIC8vIHJlc3VsdAogICAgICAgICAgICAgVHJ1c3RlZEltbVB0ciht
X3Byb2ZpbGVkQ29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKSksIC8vIGFyZzEKQEAgLTYxOSw3ICs2
MTksNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaXRlcmF0b3JfbmV4dChjb25zdCBJbnN0cnVj
dGlvbiogaW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93QwogICAgICAgICBMYWJlbCBjb2xkUGF0aEJl
Z2luID0gbGFiZWwoKTsKIAogICAgICAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uV2l0aFBy
b2ZpbGUoCi0gICAgICAgICAgICBieXRlY29kZS5tZXRhZGF0YShtX3Byb2ZpbGVkQ29kZUJsb2Nr
KSwgLy8gbWV0YWRhdGEKKyAgICAgICAgICAgIGJ5dGVjb2RlLAogICAgICAgICAgICAgb3BlcmF0
aW9uR2V0QnlJZE9wdGltaXplLCAvLyBvcGVyYXRpb24KICAgICAgICAgICAgIHZhbHVlVlJlZywg
Ly8gcmVzdWx0CiAgICAgICAgICAgICBUcnVzdGVkSW1tUHRyKG1fcHJvZmlsZWRDb2RlQmxvY2st
Pmdsb2JhbE9iamVjdCgpKSwgLy8gYXJnMQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGlu
ZXMuaAppbmRleCA4ZGJjMzA3ZGQ4ZmRkMDEyZDc1YTIyMzg0ZGY1MGJjYjdhZjc4YzVjLi5lOGU1
Nzg4ODQyMTg4ZTY4NTc1NzZiZGI2ZWMzMjZhOWFmZjhjZDlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVElubGluZXMuaApAQCAtMzI5LDMyICszMjksMTUgQEAgQUxXQVlTX0lOTElORSBi
b29sIEpJVDo6aXNPcGVyYW5kQ29uc3RhbnRDaGFyKFZpcnR1YWxSZWdpc3RlciBzcmMpCiAgICAg
cmV0dXJuIGdldENvbnN0YW50T3BlcmFuZChzcmMpLmlzU3RyaW5nKCkgJiYgYXNTdHJpbmcoZ2V0
Q29uc3RhbnRPcGVyYW5kKHNyYykuYXNDZWxsKCkpLT5sZW5ndGgoKSA9PSAxOwogfQogCi0jaWYg
VVNFKEpTVkFMVUUzMl82NCkKLWlubGluZSB2b2lkIEpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0
ZShWYWx1ZVByb2ZpbGUmIHZhbHVlUHJvZmlsZSwgSlNWYWx1ZVJlZ3MgdmFsdWUpCi17Ci0gICAg
aWYgKCFzaG91bGRFbWl0UHJvZmlsaW5nKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIEVuY29k
ZWRWYWx1ZURlc2NyaXB0b3IqIGRlc2NyaXB0b3IgPSBiaXR3aXNlX2Nhc3Q8RW5jb2RlZFZhbHVl
RGVzY3JpcHRvcio+KHZhbHVlUHJvZmlsZS5tX2J1Y2tldHMpOwotICAgIHN0b3JlMzIodmFsdWUu
cGF5bG9hZEdQUigpLCAmZGVzY3JpcHRvci0+YXNCaXRzLnBheWxvYWQpOwotICAgIHN0b3JlMzIo
dmFsdWUudGFnR1BSKCksICZkZXNjcmlwdG9yLT5hc0JpdHMudGFnKTsKLX0KLQotdGVtcGxhdGU8
dHlwZW5hbWUgTWV0YWRhdGE+Ci1zdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfc2FtZTxkZWNsdHlw
ZShNZXRhZGF0YTo6bV9wcm9maWxlKSwgVmFsdWVQcm9maWxlPjo6dmFsdWUsIHZvaWQ+IEpJVDo6
ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShNZXRhZGF0YSYgbWV0YWRhdGEsIEpTVmFsdWVSZWdzIHZh
bHVlKQotewotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUodmFsdWVQcm9maWxlRm9yKG1ldGFk
YXRhLCBtX2J5dGVjb2RlSW5kZXguY2hlY2twb2ludCgpKSwgdmFsdWUpOwotfQotI2VuZGlmCi0K
IHRlbXBsYXRlPHR5cGVuYW1lIE9wPgogaW5saW5lIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19z
YW1lPGRlY2x0eXBlKE9wOjpNZXRhZGF0YTo6bV9wcm9maWxlKSwgVmFsdWVQcm9maWxlPjo6dmFs
dWUsIHZvaWQ+IEpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZUlmUHJvZmlsZWRPcGNvZGUoT3Ag
Ynl0ZWNvZGUpCiB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdT
aXRlKGJ5dGVjb2RlLCByZWdUMCk7CisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0IHsgcmVnVDAgfTsK
ICNlbHNlCi0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZSwgSlNWYWx1ZVJlZ3Mo
cmVnVDEsIHJlZ1QwKSk7CisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0IHsgcmVnVDEsIHJlZ1QwIH07
CiAjZW5kaWYKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLCByZXN1bHQpOwog
fQogCiBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRWYWx1ZVByb2ZpbGluZ1NpdGVJZlByb2ZpbGVkT3Bj
b2RlKC4uLikgeyB9CkBAIC0zNjUsMjcgKzM0OCwyOCBAQCBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRW
YWx1ZVByb2ZpbGluZ1NpdGUoY29uc3QgQnl0ZWNvZGUmIGJ5dGVjb2RlLCBKU1ZhbHVlUmVncyB2
YQogICAgIGlmICghc2hvdWxkRW1pdFByb2ZpbGluZygpKQogICAgICAgICByZXR1cm47CiAKLSNp
ZiBVU0UoSlNWQUxVRTY0KQogICAgIHB0cmRpZmZfdCBvZmZzZXQgPSBtX3VubGlua2VkQ29kZUJs
b2NrLT5tZXRhZGF0YSgpLm9mZnNldEluTWV0YWRhdGFUYWJsZShieXRlY29kZSkgKyB2YWx1ZVBy
b2ZpbGVPZmZzZXRGb3I8Qnl0ZWNvZGU+KG1fYnl0ZWNvZGVJbmRleC5jaGVja3BvaW50KCkpICsg
VmFsdWVQcm9maWxlOjpvZmZzZXRPZkZpcnN0QnVja2V0KCk7CisjaWYgVVNFKEpTVkFMVUU2NCkK
ICAgICBzdG9yZTY0KHZhbHVlLmdwcigpLCBBZGRyZXNzKHNfbWV0YWRhdGFHUFIsIG9mZnNldCkp
OwogI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0odmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShieXRl
Y29kZSk7Ci0gICAgLy8gRklYTUUuCisgICAgc3RvcmUzMih2YWx1ZS5wYXlsb2FkR1BSKCksIEFk
ZHJlc3Moc19tZXRhZGF0YUdQUiwgb2Zmc2V0ICsgUGF5bG9hZE9mZnNldCkpOworICAgIHN0b3Jl
MzIodmFsdWUudGFnR1BSKCksIEFkZHJlc3Moc19tZXRhZGF0YUdQUiwgb2Zmc2V0ICsgVGFnT2Zm
c2V0KSk7CiAjZW5kaWYKIH0KIAorI2lmIFVTRShKU1ZBTFVFNjQpCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBCeXRlY29kZT4KIGlubGluZSB2b2lkIEpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShjb25z
dCBCeXRlY29kZSYgYnl0ZWNvZGUsIEdQUlJlZyByZXN1bHRSZWcpCiB7CiAgICAgZW1pdFZhbHVl
UHJvZmlsaW5nU2l0ZShieXRlY29kZSwgSlNWYWx1ZVJlZ3MocmVzdWx0UmVnKSk7CiB9CisjZW5k
aWYKIAogdGVtcGxhdGUgPHR5cGVuYW1lIEJ5dGVjb2RlPgogaW5saW5lIHZvaWQgSklUOjplbWl0
QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwoY29uc3QgQnl0ZWNvZGUmIGJ5dGVjb2RlLCBwdHJk
aWZmX3Qgb2Zmc2V0T2ZBcnJheVByb2ZpbGUsIFJlZ2lzdGVySUQgY2VsbEdQUiwgUmVnaXN0ZXJJ
RCBzY3JhdGNoR1BSKQogewogICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpIHsKLSAgICAg
ICAgbG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6c3RydWN0
dXJlSURPZmZzZXQoKSksIHNjcmF0Y2hHUFIpOworICAgICAgICBsb2FkMzIoQWRkcmVzcyhjZWxs
R1BSLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBzY3JhdGNoR1BSKTsKICAgICAgICAg
c3RvcmUzMlRvTWV0YWRhdGEoc2NyYXRjaEdQUiwgYnl0ZWNvZGUsIG9mZnNldE9mQXJyYXlQcm9m
aWxlKTsKICAgICB9CiB9CkBAIC0zOTYsMjQgKzM4MCw2IEBAIGlubGluZSB2b2lkIEpJVDo6ZW1p
dEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKGNvbnN0IEJ5dGVjb2RlJiBieXRlY29kZSwgUmVn
aXN0CiAgICAgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKGJ5dGVjb2RlLCBCeXRlY29k
ZTo6TWV0YWRhdGE6Om9mZnNldE9mQXJyYXlQcm9maWxlKCkgKyBBcnJheVByb2ZpbGU6Om9mZnNl
dE9mTGFzdFNlZW5TdHJ1Y3R1cmVJRCgpLCBjZWxsR1BSLCBzY3JhdGNoR1BSKTsKIH0KIAotI2lm
IFVTRShKU1ZBTFVFMzJfNjQpCi1pbmxpbmUgdm9pZCBKSVQ6OmVtaXRBcnJheVByb2ZpbGluZ1Np
dGVXaXRoQ2VsbChSZWdpc3RlcklEIGNlbGxHUFIsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxl
LCBSZWdpc3RlcklEIHNjcmF0Y2hHUFIpCi17Ci0gICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmco
KSkgewotICAgICAgICBsb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoY2VsbEdQUiwgSlND
ZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgc2NyYXRjaEdQUik7Ci0gICAgICAgIHN0b3JlMzIo
c2NyYXRjaEdQUiwgYXJyYXlQcm9maWxlLT5hZGRyZXNzT2ZMYXN0U2VlblN0cnVjdHVyZUlEKCkp
OwotICAgIH0KLX0KLQotaW5saW5lIHZvaWQgSklUOjplbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0
aENlbGwoUmVnaXN0ZXJJRCBjZWxsR1BSLCBSZWdpc3RlcklEIGFycmF5UHJvZmlsZUdQUiwgUmVn
aXN0ZXJJRCBzY3JhdGNoR1BSKQotewotICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpIHsK
LSAgICAgICAgbG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6
c3RydWN0dXJlSURPZmZzZXQoKSksIHNjcmF0Y2hHUFIpOwotICAgICAgICBzdG9yZTMyKHNjcmF0
Y2hHUFIsIEFkZHJlc3MoYXJyYXlQcm9maWxlR1BSLCBBcnJheVByb2ZpbGU6Om9mZnNldE9mTGFz
dFNlZW5TdHJ1Y3R1cmVJRCgpKSk7Ci0gICAgfQotfQotI2VuZGlmCi0KIEFMV0FZU19JTkxJTkUg
aW50MzJfdCBKSVQ6OmdldE9wZXJhbmRDb25zdGFudEludChWaXJ0dWFsUmVnaXN0ZXIgc3JjKQog
ewogICAgIHJldHVybiBnZXRDb25zdGFudE9wZXJhbmQoc3JjKS5hc0ludDMyKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKaW5kZXggMTQyMGQxOTc2
YTczZjZlMmEzOTdkYzllYzM2NjVmYWM3NGNiNzc5Yi4uYTJiZjZlYjNmNzU0ZWIxYTE3Y2RjNzYz
MzUwNzkzOWQzMTlhYmQzNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGNvZGVzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bj
b2RlczMyXzY0LmNwcApAQCAtNTE4LDcgKzUxOCw2IEBAIHZvaWQgSklUOjplbWl0X29wX2plcV9w
dHIoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHZvaWQgSklUOjplbWl0
X29wX2puZXFfcHRyKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAg
ICAgYXV0byBieXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BKbmVxUHRyPigpOwot
ICAgIGF1dG8mIG1ldGFkYXRhID0gYnl0ZWNvZGUubWV0YWRhdGEobV9wcm9maWxlZENvZGVCbG9j
ayk7CiAgICAgVmlydHVhbFJlZ2lzdGVyIHNyYyA9IGJ5dGVjb2RlLm1fdmFsdWU7CiAgICAgSlNW
YWx1ZSBzcGVjaWFsUG9pbnRlciA9IGdldENvbnN0YW50T3BlcmFuZChieXRlY29kZS5tX3NwZWNp
YWxQb2ludGVyKTsKICAgICBBU1NFUlQoc3BlY2lhbFBvaW50ZXIuaXNDZWxsKCkpOwpAQCAtNTI4
LDcgKzUyNyw3IEBAIHZvaWQgSklUOjplbWl0X29wX2puZXFfcHRyKGNvbnN0IEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgSnVtcCBub3RDZWxsID0gYnJhbmNoSWZOb3RDZWxs
KHJlZ1QxKTsKICAgICBKdW1wIGVxdWFsID0gYnJhbmNoUHRyKEVxdWFsLCByZWdUMCwgVHJ1c3Rl
ZEltbVB0cihzcGVjaWFsUG9pbnRlci5hc0NlbGwoKSkpOwogICAgIG5vdENlbGwubGluayh0aGlz
KTsKLSAgICBzdG9yZTgoVHJ1c3RlZEltbTMyKDEpLCAmbWV0YWRhdGEubV9oYXNKdW1wZWQpOwor
ICAgIHN0b3JlOFRvTWV0YWRhdGEoVHJ1c3RlZEltbTMyKDEpLCBieXRlY29kZSwgT3BKbmVxUHRy
OjpNZXRhZGF0YTo6b2Zmc2V0T2ZIYXNKdW1wZWQoKSk7CiAgICAgYWRkSnVtcChqdW1wKCksIHRh
cmdldCk7CiAgICAgZXF1YWwubGluayh0aGlzKTsKIH0KQEAgLTg3Niw3ICs4NzUsNyBAQCB2b2lk
IEpJVDo6ZW1pdF9vcF90b19udW1iZXIoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbikKICAgICBhZGRTbG93Q2FzZShicmFuY2gzMihBYm92ZU9yRXF1YWwsIHJlZ1QxLCBUcnVz
dGVkSW1tMzIoSlNWYWx1ZTo6TG93ZXN0VGFnKSkpOwogICAgIGlzSW50MzIubGluayh0aGlzKTsK
IAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9wcm9maWxl
ZENvZGVCbG9jayksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCkpOworICAgIGVtaXRWYWx1ZVBy
b2ZpbGluZ1NpdGUoYnl0ZWNvZGUsIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCkpOwogICAgIGlm
IChzcmMgIT0gZHN0KQogICAgICAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOwogfQpA
QCAtODk4LDcgKzg5Nyw3IEBAIHZvaWQgSklUOjplbWl0X29wX3RvX251bWVyaWMoY29uc3QgSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBhZGRTbG93Q2FzZShicmFuY2hJZk5v
dE51bWJlcihhcmd1bWVudFZhbHVlUmVncywgcmVnVDIpKTsKICAgICBpc0JpZ0ludC5saW5rKHRo
aXMpOwogCi0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX3By
b2ZpbGVkQ29kZUJsb2NrKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSk7CisgICAgZW1pdFZh
bHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSk7CiAg
ICAgaWYgKHNyYyAhPSBkc3QpCiAgICAgICAgIGVtaXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7
CiB9CkBAIC05MjksNyArOTI4LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfdG9fb2JqZWN0KGNvbnN0
IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgYWRkU2xvd0Nhc2UoYnJhbmNo
SWZOb3RDZWxsKHJlZ1QxKSk7CiAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoSWZOb3RPYmplY3QocmVn
VDApKTsKIAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9w
cm9maWxlZENvZGVCbG9jayksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCkpOworICAgIGVtaXRW
YWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUsIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCkpOwog
ICAgIGlmIChzcmMgIT0gZHN0KQogICAgICAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDAp
OwogfQpAQCAtOTc5LDIzICs5NzgsMTEgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfY2F0Y2goY29uc3Qg
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAvLyBhcmd1bWVudCB0eXBlIHBy
b29mcywgc3RvcmluZyBsb2NhbHMgdG8gdGhlIGJ1ZmZlciwgZXRjCiAgICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTU5OAogCi0gICAgYXV0byYgbWV0YWRh
dGEgPSBieXRlY29kZS5tZXRhZGF0YShtX3Byb2ZpbGVkQ29kZUJsb2NrKTsKLSAgICBWYWx1ZVBy
b2ZpbGVBbmRWaXJ0dWFsUmVnaXN0ZXJCdWZmZXIqIGJ1ZmZlciA9IG1ldGFkYXRhLm1fYnVmZmVy
OwotICAgIGlmIChidWZmZXIgfHwgIXNob3VsZEVtaXRQcm9maWxpbmcoKSkKLSAgICAgICAgY2Fs
bE9wZXJhdGlvbk5vRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uVHJ5T1NSRW50ZXJBdENhdGNoLCAm
dm0oKSwgbV9ieXRlY29kZUluZGV4LmFzQml0cygpKTsKLSAgICBlbHNlCi0gICAgICAgIGNhbGxP
cGVyYXRpb25Ob0V4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvblRyeU9TUkVudGVyQXRDYXRjaEFuZFZh
bHVlUHJvZmlsZSwgJnZtKCksIG1fYnl0ZWNvZGVJbmRleC5hc0JpdHMoKSk7CisgICAgY2FsbE9w
ZXJhdGlvbk5vRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uVHJ5T1NSRW50ZXJBdENhdGNoQW5kVmFs
dWVQcm9maWxlLCAmdm0oKSwgbV9ieXRlY29kZUluZGV4LmFzQml0cygpKTsKICAgICBhdXRvIHNr
aXBPU1JFbnRyeSA9IGJyYW5jaFRlc3RQdHIoWmVybywgcmV0dXJuVmFsdWVHUFIpOwogICAgIGVt
aXRSZXN0b3JlQ2FsbGVlU2F2ZXMoKTsKICAgICBmYXJKdW1wKHJldHVyblZhbHVlR1BSLCBOb1B0
clRhZyk7CiAgICAgc2tpcE9TUkVudHJ5LmxpbmsodGhpcyk7Ci0gICAgaWYgKGJ1ZmZlciAmJiBz
aG91bGRFbWl0UHJvZmlsaW5nKCkpIHsKLSAgICAgICAgYnVmZmVyLT5mb3JFYWNoKFsmXSAoVmFs
dWVQcm9maWxlQW5kVmlydHVhbFJlZ2lzdGVyJiBwcm9maWxlKSB7Ci0gICAgICAgICAgICBKU1Zh
bHVlUmVncyByZWdzKHJlZ1QxLCByZWdUMCk7Ci0gICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJl
Z2lzdGVyKHByb2ZpbGUubV9vcGVyYW5kLCByZWdzKTsKLSAgICAgICAgICAgIGVtaXRWYWx1ZVBy
b2ZpbGluZ1NpdGUoc3RhdGljX2Nhc3Q8VmFsdWVQcm9maWxlJj4ocHJvZmlsZSksIHJlZ3MpOwot
ICAgICAgICB9KTsKLSAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3Bw
CmluZGV4IDI3MjE3MDUzNTllY2NiYjg1ODg4MTMyNTliOWJjNmVjN2UyNzM0YTQuLjkxZmFhNGU1
MmZmYjEyYTNmNmI1MmU3YjkzYTU1MGRhY2UyZjRjZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcApAQCAtMjM3LDIyICsy
MzcsMjAgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2RlbF9ieV9pZChjb25zdCBJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2wKIHZvaWQgSklUOjplbWl0X29wX2dldF9i
eV92YWwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBhdXRv
IGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcEdldEJ5VmFsPigpOwotICAgIGF1
dG8mIG1ldGFkYXRhID0gYnl0ZWNvZGUubWV0YWRhdGEobV9wcm9maWxlZENvZGVCbG9jayk7CiAg
ICAgVmlydHVhbFJlZ2lzdGVyIGRzdCA9IGJ5dGVjb2RlLm1fZHN0OwogICAgIFZpcnR1YWxSZWdp
c3RlciBiYXNlID0gYnl0ZWNvZGUubV9iYXNlOwogICAgIFZpcnR1YWxSZWdpc3RlciBwcm9wZXJ0
eSA9IGJ5dGVjb2RlLm1fcHJvcGVydHk7Ci0gICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gJm1l
dGFkYXRhLm1fYXJyYXlQcm9maWxlOwogCiAgICAgZW1pdExvYWQyKGJhc2UsIHJlZ1QxLCByZWdU
MCwgcHJvcGVydHksIHJlZ1QzLCByZWdUMik7CiAKLSAgICBpZiAobWV0YWRhdGEubV9zZWVuSWRl
bnRpZmllcnMuY291bnQoKSA+IE9wdGlvbnM6OmdldEJ5VmFsSUNNYXhOdW1iZXJPZklkZW50aWZp
ZXJzKCkpIHsKKyAgICBpZiAoYnl0ZWNvZGUubWV0YWRhdGEobV9wcm9maWxlZENvZGVCbG9jayku
bV9zZWVuSWRlbnRpZmllcnMuY291bnQoKSA+IE9wdGlvbnM6OmdldEJ5VmFsSUNNYXhOdW1iZXJP
ZklkZW50aWZpZXJzKCkpIHsKICAgICAgICAgYXV0byBub3RDZWxsID0gYnJhbmNoSWZOb3RDZWxs
KHJlZ1QxKTsKLSAgICAgICAgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKHJlZ1QwLCBw
cm9maWxlLCByZWdUNCk7CisgICAgICAgIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChi
eXRlY29kZSwgcmVnVDAsIHJlZ1Q0KTsKICAgICAgICAgbm90Q2VsbC5saW5rKHRoaXMpOwotICAg
ICAgICBjYWxsT3BlcmF0aW9uV2l0aFByb2ZpbGUoYnl0ZWNvZGUubWV0YWRhdGEobV9wcm9maWxl
ZENvZGVCbG9jayksIG9wZXJhdGlvbkdldEJ5VmFsLCBkc3QsIFRydXN0ZWRJbW1QdHIobV9wcm9m
aWxlZENvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCkpLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDAp
LCBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpKTsKKyAgICAgICAgY2FsbE9wZXJhdGlvbldpdGhQ
cm9maWxlKGJ5dGVjb2RlLCBvcGVyYXRpb25HZXRCeVZhbCwgZHN0LCBUcnVzdGVkSW1tUHRyKG1f
cHJvZmlsZWRDb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJl
Z1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
ZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2UsIHJlZ1QxKTsKLSAgICAgICAgZW1pdEFy
cmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKHJlZ1QwLCBwcm9maWxlLCByZWdUNCk7CisgICAgICAg
IGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChieXRlY29kZSwgcmVnVDAsIHJlZ1Q0KTsK
IAogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJl
Z1QwKTsKIApAQCAtMjY1LDcgKzI2Myw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwo
Y29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgYWRkU2xvd0Nh
c2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKICAgICAgICAgbV9nZXRCeVZhbHMuYXBwZW5kKGdlbik7
CiAKLSAgICAgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX3By
b2ZpbGVkQ29kZUJsb2NrKSwgcmVzdWx0UmVncyk7CisgICAgICAgIGVtaXRWYWx1ZVByb2ZpbGlu
Z1NpdGUoYnl0ZWNvZGUsIHJlc3VsdFJlZ3MpOwogICAgICAgICBlbWl0U3RvcmUoZHN0LCByZWdU
MSwgcmVnVDApOwogICAgIH0KIH0KQEAgLTI4NCw3ICsyODIsNyBAQCB2b2lkIEpJVDo6ZW1pdFNs
b3dfb3BfZ2V0X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBW
ZWN0b3I8UwogICAgICAgICBsaW5rQWxsU2xvd0Nhc2VzKGl0ZXIpOwogCiAgICAgICAgIExhYmVs
IGNvbGRQYXRoQmVnaW4gPSBsYWJlbCgpOwotICAgICAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0
aW9uV2l0aFByb2ZpbGUoYnl0ZWNvZGUubWV0YWRhdGEobV9wcm9maWxlZENvZGVCbG9jayksIG9w
ZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUsIGRzdCwgVHJ1c3RlZEltbVB0cihtX3Byb2ZpbGVkQ29k
ZUJsb2NrLT5nbG9iYWxPYmplY3QoKSksIGdlbi5zdHViSW5mbygpLCBwcm9maWxlLCBKU1ZhbHVl
UmVncyhyZWdUMSwgcmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpKTsKKyAgICAgICAg
Q2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbldpdGhQcm9maWxlKGJ5dGVjb2RlLCBvcGVyYXRpb25H
ZXRCeVZhbE9wdGltaXplLCBkc3QsIFRydXN0ZWRJbW1QdHIobV9wcm9maWxlZENvZGVCbG9jay0+
Z2xvYmFsT2JqZWN0KCkpLCBnZW4uc3R1YkluZm8oKSwgcHJvZmlsZSwgSlNWYWx1ZVJlZ3MocmVn
VDEsIHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKSk7CiAgICAgICAgIGdlbi5yZXBv
cnRTbG93UGF0aENhbGwoY29sZFBhdGhCZWdpbiwgY2FsbCk7CiAgICAgfQogfQpAQCAtMzExLDcg
KzMwOSw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9wcml2YXRlX25hbWUoY29uc3QgSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhK
dW1wKCkpOwogICAgIG1fZ2V0QnlWYWxzLmFwcGVuZChnZW4pOwogCi0gICAgZW1pdFZhbHVlUHJv
ZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX3Byb2ZpbGVkQ29kZUJsb2NrKSwgcmVzdWx0
UmVncyk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZSwgcmVzdWx0UmVncyk7
CiAgICAgZW1pdFN0b3JlKGRzdCwgcmVzdWx0UmVncy50YWdHUFIoKSwgcmVzdWx0UmVncy5wYXls
b2FkR1BSKCkpOwogfQogCkBAIC0zMzAsNyArMzI4LDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29w
X2dldF9wcml2YXRlX25hbWUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwg
VmUKIAogICAgIGF1dG8gYmFzZUdQUiA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CiAgICAg
YXV0byBwcm9wZXJ0eUdQUiA9IEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMik7Ci0gICAgQ2FsbCBj
YWxsID0gY2FsbE9wZXJhdGlvbldpdGhQcm9maWxlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fcHJvZmls
ZWRDb2RlQmxvY2spLCBvcGVyYXRpb25HZXRQcml2YXRlTmFtZU9wdGltaXplLCBkc3QsIFRydXN0
ZWRJbW1QdHIobV9wcm9maWxlZENvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCkpLCBnZW4uc3R1Yklu
Zm8oKSwgYmFzZUdQUiwgcHJvcGVydHlHUFIpOworICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRp
b25XaXRoUHJvZmlsZShieXRlY29kZSwgb3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVPcHRpbWl6ZSwg
ZHN0LCBUcnVzdGVkSW1tUHRyKG1fcHJvZmlsZWRDb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpKSwg
Z2VuLnN0dWJJbmZvKCksIGJhc2VHUFIsIHByb3BlcnR5R1BSKTsKICAgICBnZW4ucmVwb3J0U2xv
d1BhdGhDYWxsKGNvbGRQYXRoQmVnaW4sIGNhbGwpOwogfQogCkBAIC00NjUsMTcgKzQ2MywxNiBA
QCB0ZW1wbGF0ZTx0eXBlbmFtZSBPcD4KIHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV92YWwoY29u
c3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBhdXRvIGJ5dGVjb2Rl
ID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcD4oKTsKLSAgICBhdXRvJiBtZXRhZGF0YSA9IGJ5
dGVjb2RlLm1ldGFkYXRhKG1fcHJvZmlsZWRDb2RlQmxvY2spOwogICAgIFZpcnR1YWxSZWdpc3Rl
ciBiYXNlID0gYnl0ZWNvZGUubV9iYXNlOwogICAgIFZpcnR1YWxSZWdpc3RlciBwcm9wZXJ0eSA9
IGJ5dGVjb2RlLm1fcHJvcGVydHk7CiAgICAgVmlydHVhbFJlZ2lzdGVyIHZhbHVlID0gYnl0ZWNv
ZGUubV92YWx1ZTsKLSAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSAmbWV0YWRhdGEubV9hcnJh
eVByb2ZpbGU7CiAKICAgICBlbWl0TG9hZDIoYmFzZSwgcmVnVDEsIHJlZ1QwLCBwcm9wZXJ0eSwg
cmVnVDMsIHJlZ1QyKTsKICAgICBlbWl0TG9hZCh2YWx1ZSwgcmVnVDUsIHJlZ1Q0KTsKLSAgICBt
b3ZlKFRydXN0ZWRJbW1QdHIocHJvZmlsZSksIHJlZ1Q2KTsKKwogICAgIGVtaXRKdW1wU2xvd0Nh
c2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7Ci0gICAgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdp
dGhDZWxsKHJlZ1QwLCByZWdUNiwgcmVnVDcpOworICAgIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVX
aXRoQ2VsbChieXRlY29kZSwgcmVnVDAsIHJlZ1Q2KTsKKyAgICBtYXRlcmlhbGl6ZVBvaW50ZXJJ
bnRvTWV0YWRhdGEoYnl0ZWNvZGUsIE9wOjpNZXRhZGF0YTo6b2Zmc2V0T2ZBcnJheVByb2ZpbGUo
KSwgcmVnVDYpOwogCiAgICAgSklUUHV0QnlWYWxHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX3By
b2ZpbGVkQ29kZUJsb2NrLCBKSVRUeXBlOjpCYXNlbGluZUpJVCwgQ29kZU9yaWdpbihtX2J5dGVj
b2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIEFjY2Vzc1R5cGU6OlB1
dEJ5VmFsLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCkBAIC01NDgs
NyArNTQ1LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfdHJ5X2dldF9ieV9pZChjb25zdCBJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1
bXAoKSk7CiAgICAgbV9nZXRCeUlkcy5hcHBlbmQoZ2VuKTsKICAgICAKLSAgICBlbWl0VmFsdWVQ
cm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fcHJvZmlsZWRDb2RlQmxvY2spLCByZXN1
bHRSZWdzKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLCByZXN1bHRSZWdz
KTsKICAgICBlbWl0U3RvcmUoZHN0LCByZXN1bHRSZWdzLnRhZ0dQUigpLCByZXN1bHRSZWdzLnBh
eWxvYWRHUFIoKSk7CiB9CiAKQEAgLTU4OSw3ICs1ODYsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9n
ZXRfYnlfaWRfZGlyZWN0KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAg
ICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKICAgICBtX2dldEJ5SWRzLmFwcGVu
ZChnZW4pOwogCi0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YSht
X3Byb2ZpbGVkQ29kZUJsb2NrKSwgcmVzdWx0UmVncyk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5n
U2l0ZShieXRlY29kZSwgcmVzdWx0UmVncyk7CiAgICAgZW1pdFN0b3JlKGRzdCwgcmVzdWx0UmVn
cy50YWdHUFIoKSwgcmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpOwogfQogCkBAIC02MDUsNyArNjAy
LDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV9pZF9kaXJlY3QoY29uc3QgSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmUKIAogICAgIExhYmVsIGNvbGRQYXRoQmVnaW4g
PSBsYWJlbCgpOwogCi0gICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbldpdGhQcm9maWxlKGJ5
dGVjb2RlLm1ldGFkYXRhKG1fcHJvZmlsZWRDb2RlQmxvY2spLCBvcGVyYXRpb25HZXRCeUlkRGly
ZWN0T3B0aW1pemUsIHJlc3VsdFZSZWcsIG1fcHJvZmlsZWRDb2RlQmxvY2stPmdsb2JhbE9iamVj
dCgpLCBnZW4uc3R1YkluZm8oKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSwgQ2FjaGVhYmxl
SWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKG1fcHJvZmls
ZWRDb2RlQmxvY2ssICppZGVudCkucmF3Qml0cygpKTsKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3Bl
cmF0aW9uV2l0aFByb2ZpbGUoYnl0ZWNvZGUsIG9wZXJhdGlvbkdldEJ5SWREaXJlY3RPcHRpbWl6
ZSwgcmVzdWx0VlJlZywgbV9wcm9maWxlZENvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCksIGdlbi5z
dHViSW5mbygpLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApLCBDYWNoZWFibGVJZGVudGlmaWVy
OjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV9wcm9maWxlZENvZGVCbG9j
aywgKmlkZW50KS5yYXdCaXRzKCkpOwogCiAgICAgZ2VuLnJlcG9ydFNsb3dQYXRoQ2FsbChjb2xk
UGF0aEJlZ2luLCBjYWxsKTsKIH0KQEAgLTYxNCw3ICs2MTEsNiBAQCB2b2lkIEpJVDo6ZW1pdFNs
b3dfb3BfZ2V0X2J5X2lkX2RpcmVjdChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uLCBWZQogdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkKGNvbnN0IEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgYXV0byBieXRlY29kZSA9IGN1cnJlbnRJbnN0cnVj
dGlvbi0+YXM8T3BHZXRCeUlkPigpOwotICAgIGF1dG8mIG1ldGFkYXRhID0gYnl0ZWNvZGUubWV0
YWRhdGEobV9wcm9maWxlZENvZGVCbG9jayk7CiAgICAgVmlydHVhbFJlZ2lzdGVyIGRzdCA9IGJ5
dGVjb2RlLm1fZHN0OwogICAgIFZpcnR1YWxSZWdpc3RlciBiYXNlID0gYnl0ZWNvZGUubV9iYXNl
OwogICAgIGNvbnN0IElkZW50aWZpZXIqIGlkZW50ID0gJihtX3Byb2ZpbGVkQ29kZUJsb2NrLT5p
ZGVudGlmaWVyKGJ5dGVjb2RlLm1fcHJvcGVydHkpKTsKQEAgLTYyMyw4ICs2MTksOSBAQCB2b2lk
IEpJVDo6ZW1pdF9vcF9nZXRfYnlfaWQoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbikKICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwoYmFzZSwgcmVnVDEpOwogCiAg
ICAgaWYgKCppZGVudCA9PSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5sZW5ndGggJiYgc2hvdWxkRW1p
dFByb2ZpbGluZygpKSB7Ci0gICAgICAgIEp1bXAgbm90QXJyYXlMZW5ndGhNb2RlID0gYnJhbmNo
OChOb3RFcXVhbCwgQWJzb2x1dGVBZGRyZXNzKCZtZXRhZGF0YS5tX21vZGVNZXRhZGF0YS5tb2Rl
KSwgVHJ1c3RlZEltbTMyKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KEdldEJ5SWRNb2RlOjpBcnJheUxl
bmd0aCkpKTsKLSAgICAgICAgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKHJlZ1QwLCAm
bWV0YWRhdGEubV9tb2RlTWV0YWRhdGEuYXJyYXlMZW5ndGhNb2RlLmFycmF5UHJvZmlsZSwgcmVn
VDIpOworICAgICAgICBsb2FkOEZyb21NZXRhZGF0YShieXRlY29kZSwgT3BHZXRCeUlkOjpNZXRh
ZGF0YTo6b2Zmc2V0T2ZNb2RlTWV0YWRhdGEoKSArIEdldEJ5SWRNb2RlTWV0YWRhdGE6Om9mZnNl
dE9mTW9kZSgpLCByZWdUMik7CisgICAgICAgIEp1bXAgbm90QXJyYXlMZW5ndGhNb2RlID0gYnJh
bmNoMzIoTm90RXF1YWwsIFRydXN0ZWRJbW0zMihzdGF0aWNfY2FzdDx1aW50OF90PihHZXRCeUlk
TW9kZTo6QXJyYXlMZW5ndGgpKSwgcmVnVDIpOworICAgICAgICBlbWl0QXJyYXlQcm9maWxpbmdT
aXRlV2l0aENlbGwoYnl0ZWNvZGUsIE9wR2V0QnlJZDo6TWV0YWRhdGE6Om9mZnNldE9mTW9kZU1l
dGFkYXRhKCkgKyBHZXRCeUlkTW9kZU1ldGFkYXRhQXJyYXlMZW5ndGg6Om9mZnNldE9mQXJyYXlQ
cm9maWxlKCksIHJlZ1QwLCByZWdUMik7CiAgICAgICAgIG5vdEFycmF5TGVuZ3RoTW9kZS5saW5r
KHRoaXMpOwogICAgIH0KIApAQCAtNjM2LDcgKzYzMyw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dl
dF9ieV9pZChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGFkZFNs
b3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRCeUlkcy5hcHBlbmQoZ2VuKTsK
IAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9wcm9maWxl
ZENvZGVCbG9jayksIHJlc3VsdFJlZ3MpOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0
ZWNvZGUsIHJlc3VsdFJlZ3MpOwogICAgIGVtaXRTdG9yZShkc3QsIHJlc3VsdFJlZ3MudGFnR1BS
KCksIHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKIH0KIApAQCAtNjUyLDcgKzY0OSw3IEBAIHZv
aWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfaWQoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbiwgVmVjdG9yPFNsCiAgICAgCiAgICAgTGFiZWwgY29sZFBhdGhCZWdpbiA9IGxh
YmVsKCk7CiAgICAgCi0gICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbldpdGhQcm9maWxlKGJ5
dGVjb2RlLm1ldGFkYXRhKG1fcHJvZmlsZWRDb2RlQmxvY2spLCBvcGVyYXRpb25HZXRCeUlkT3B0
aW1pemUsIHJlc3VsdFZSZWcsIG1fcHJvZmlsZWRDb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpLCBn
ZW4uc3R1YkluZm8oKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSwgQ2FjaGVhYmxlSWRlbnRp
Zmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKG1fcHJvZmlsZWRDb2Rl
QmxvY2ssICppZGVudCkucmF3Qml0cygpKTsKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9u
V2l0aFByb2ZpbGUoYnl0ZWNvZGUsIG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgcmVzdWx0VlJl
ZywgbV9wcm9maWxlZENvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCksIGdlbi5zdHViSW5mbygpLCBK
U1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApLCBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9t
SWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV9wcm9maWxlZENvZGVCbG9jaywgKmlkZW50KS5y
YXdCaXRzKCkpOwogICAgIAogICAgIGdlbi5yZXBvcnRTbG93UGF0aENhbGwoY29sZFBhdGhCZWdp
biwgY2FsbCk7CiB9CkBAIC02NzksNyArNjc2LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5
X2lkX3dpdGhfdGhpcyhjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAg
IGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRCeUlkc1dpdGhUaGlz
LmFwcGVuZChnZW4pOwogCi0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRh
ZGF0YShtX3Byb2ZpbGVkQ29kZUJsb2NrKSwgcmVzdWx0UmVncyk7CisgICAgZW1pdFZhbHVlUHJv
ZmlsaW5nU2l0ZShieXRlY29kZSwgcmVzdWx0UmVncyk7CiAgICAgZW1pdFN0b3JlKGRzdCwgcmVz
dWx0UmVncy50YWdHUFIoKSwgcmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpOwogfQogCkBAIC02OTUs
NyArNjkyLDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV9pZF93aXRoX3RoaXMoY29u
c3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwKICAgICAKICAgICBMYWJlbCBjb2xk
UGF0aEJlZ2luID0gbGFiZWwoKTsKICAgICAKLSAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9u
V2l0aFByb2ZpbGUoYnl0ZWNvZGUubWV0YWRhdGEobV9wcm9maWxlZENvZGVCbG9jayksIG9wZXJh
dGlvbkdldEJ5SWRXaXRoVGhpc09wdGltaXplLCByZXN1bHRWUmVnLCBtX3Byb2ZpbGVkQ29kZUJs
b2NrLT5nbG9iYWxPYmplY3QoKSwgZ2VuLnN0dWJJbmZvKCksIEpTVmFsdWVSZWdzKHJlZ1QxLCBy
ZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1Q0LCByZWdUMyksIENhY2hlYWJsZUlkZW50aWZpZXI6OmNy
ZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX3Byb2ZpbGVkQ29kZUJsb2NrLCAq
aWRlbnQpLnJhd0JpdHMoKSk7CisgICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbldpdGhQcm9m
aWxlKGJ5dGVjb2RlLCBvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXNPcHRpbWl6ZSwgcmVzdWx0VlJl
ZywgbV9wcm9maWxlZENvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCksIGdlbi5zdHViSW5mbygpLCBK
U1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUNCwgcmVnVDMpLCBDYWNo
ZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV9w
cm9maWxlZENvZGVCbG9jaywgKmlkZW50KS5yYXdCaXRzKCkpOwogICAgIAogICAgIGdlbi5yZXBv
cnRTbG93UGF0aENhbGwoY29sZFBhdGhCZWdpbiwgY2FsbCk7CiB9CkBAIC03OTYsMTIgKzc5Mywx
MCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9pbl9ieV92YWwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbikKICAgICBWaXJ0dWFsUmVnaXN0ZXIgZHN0ID0gYnl0ZWNvZGUubV9kc3Q7
CiAgICAgVmlydHVhbFJlZ2lzdGVyIGJhc2UgPSBieXRlY29kZS5tX2Jhc2U7CiAgICAgVmlydHVh
bFJlZ2lzdGVyIHByb3BlcnR5ID0gYnl0ZWNvZGUubV9wcm9wZXJ0eTsKLSAgICBhdXRvJiBtZXRh
ZGF0YSA9IGJ5dGVjb2RlLm1ldGFkYXRhKG1fcHJvZmlsZWRDb2RlQmxvY2spOwotICAgIEFycmF5
UHJvZmlsZSogcHJvZmlsZSA9ICZtZXRhZGF0YS5tX2FycmF5UHJvZmlsZTsKIAogICAgIGVtaXRM
b2FkMihiYXNlLCByZWdUMSwgcmVnVDAsIHByb3BlcnR5LCByZWdUMywgcmVnVDIpOwogICAgIGVt
aXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7Ci0gICAgZW1pdEFycmF5UHJv
ZmlsaW5nU2l0ZVdpdGhDZWxsKHJlZ1QwLCBwcm9maWxlLCByZWdUNCk7CisgICAgZW1pdEFycmF5
UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKGJ5dGVjb2RlLCByZWdUMCwgcmVnVDQpOwogCiAgICAgSklU
SW5CeVZhbEdlbmVyYXRvciBnZW4oCiAgICAgICAgIG1fcHJvZmlsZWRDb2RlQmxvY2ssIEpJVFR5
cGU6OkJhc2VsaW5lSklULCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5k
ZXgobV9ieXRlY29kZUluZGV4KSwgQWNjZXNzVHlwZTo6SW5CeVZhbCwgUmVnaXN0ZXJTZXQ6OnN0
dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLApAQCAtMTE0Miw3ICsxMTM3LDcgQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfZ2V0X2Zyb21fc2NvcGUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbikKICAgICAgICAgZW1pdENvZGUocmVzb2x2ZVR5cGUsIGZhbHNlKTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEo
bV9wcm9maWxlZENvZGVCbG9jayksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCkpOworICAgIGVt
aXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUsIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCkp
OwogICAgIGVtaXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7CiB9CiAKQEAgLTExNTIsNyArMTE0
Nyw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfZnJvbV9zY29wZShjb25zdCBJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0CiAKICAgICBhdXRvIGJ5dGVjb2RlID0gY3Vy
cmVudEluc3RydWN0aW9uLT5hczxPcEdldEZyb21TY29wZT4oKTsKICAgICBWaXJ0dWFsUmVnaXN0
ZXIgZHN0ID0gYnl0ZWNvZGUubV9kc3Q7Ci0gICAgY2FsbE9wZXJhdGlvbldpdGhQcm9maWxlKGJ5
dGVjb2RlLm1ldGFkYXRhKG1fcHJvZmlsZWRDb2RlQmxvY2spLCBvcGVyYXRpb25HZXRGcm9tU2Nv
cGUsIGRzdCwgbV9wcm9maWxlZENvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCksIGN1cnJlbnRJbnN0
cnVjdGlvbik7CisgICAgY2FsbE9wZXJhdGlvbldpdGhQcm9maWxlKGJ5dGVjb2RlLCBvcGVyYXRp
b25HZXRGcm9tU2NvcGUsIGRzdCwgbV9wcm9maWxlZENvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCks
IGN1cnJlbnRJbnN0cnVjdGlvbik7CiB9CiAKIHZvaWQgSklUOjplbWl0UHV0R2xvYmFsVmFyaWFi
bGUoSlNWYWx1ZSogb3BlcmFuZCwgVmlydHVhbFJlZ2lzdGVyIHZhbHVlLCBXYXRjaHBvaW50U2V0
KiBzZXQpCkBAIC0xMzI0LDEzICsxMzE5LDEzIEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9mcm9t
X2FyZ3VtZW50cyhjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIFZp
cnR1YWxSZWdpc3RlciBhcmd1bWVudHMgPSBieXRlY29kZS5tX2FyZ3VtZW50czsKICAgICBpbnQg
aW5kZXggPSBieXRlY29kZS5tX2luZGV4OwogCi0gICAgSlNWYWx1ZVJlZ3MgcmVzdXRsUmVncyA9
IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9
IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CiAgICAgCiAgICAgZW1pdExvYWRQYXlsb2FkKGFy
Z3VtZW50cywgcmVnVDApOwotICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QwLCBEaXJlY3RBcmd1bWVu
dHM6OnN0b3JhZ2VPZmZzZXQoKSArIGluZGV4ICogc2l6ZW9mKFdyaXRlQmFycmllcjxVbmtub3du
PikgKyBUYWdPZmZzZXQpLCByZXN1dGxSZWdzLnRhZ0dQUigpKTsKLSAgICBsb2FkMzIoQWRkcmVz
cyhyZWdUMCwgRGlyZWN0QXJndW1lbnRzOjpzdG9yYWdlT2Zmc2V0KCkgKyBpbmRleCAqIHNpemVv
ZihXcml0ZUJhcnJpZXI8VW5rbm93bj4pICsgUGF5bG9hZE9mZnNldCksIHJlc3V0bFJlZ3MucGF5
bG9hZEdQUigpKTsKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRh
KG1fcHJvZmlsZWRDb2RlQmxvY2spLCByZXN1dGxSZWdzKTsKLSAgICBlbWl0U3RvcmUoZHN0LCBy
ZXN1dGxSZWdzLnRhZ0dQUigpLCByZXN1dGxSZWdzLnBheWxvYWRHUFIoKSk7CisgICAgbG9hZDMy
KEFkZHJlc3MocmVnVDAsIERpcmVjdEFyZ3VtZW50czo6c3RvcmFnZU9mZnNldCgpICsgaW5kZXgg
KiBzaXplb2YoV3JpdGVCYXJyaWVyPFVua25vd24+KSArIFRhZ09mZnNldCksIHJlc3VsdFJlZ3Mu
dGFnR1BSKCkpOworICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QwLCBEaXJlY3RBcmd1bWVudHM6OnN0
b3JhZ2VPZmZzZXQoKSArIGluZGV4ICogc2l6ZW9mKFdyaXRlQmFycmllcjxVbmtub3duPikgKyBQ
YXlsb2FkT2Zmc2V0KSwgcmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpOworICAgIGVtaXRWYWx1ZVBy
b2ZpbGluZ1NpdGUoYnl0ZWNvZGUsIHJlc3VsdFJlZ3MpOworICAgIGVtaXRTdG9yZShkc3QsIHJl
c3VsdFJlZ3MudGFnR1BSKCksIHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKIH0KIAogdm9pZCBK
SVQ6OmVtaXRfb3BfcHV0X3RvX2FyZ3VtZW50cyhjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQpAQCAtMTM1MSw3ICsxMzQ2LDYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X3Rv
X2FyZ3VtZW50cyhjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogdm9pZCBK
SVQ6OmVtaXRfb3BfZ2V0X2ludGVybmFsX2ZpZWxkKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiB7CiAgICAgYXV0byBieXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+
YXM8T3BHZXRJbnRlcm5hbEZpZWxkPigpOwotICAgIGF1dG8mIG1ldGFkYXRhID0gYnl0ZWNvZGUu
bWV0YWRhdGEobV9wcm9maWxlZENvZGVCbG9jayk7CiAgICAgVmlydHVhbFJlZ2lzdGVyIGRzdCA9
IGJ5dGVjb2RlLm1fZHN0OwogICAgIFZpcnR1YWxSZWdpc3RlciBiYXNlID0gYnl0ZWNvZGUubV9i
YXNlOwogICAgIHVuc2lnbmVkIGluZGV4ID0gYnl0ZWNvZGUubV9pbmRleDsKQEAgLTEzNjEsNyAr
MTM1NSw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9pbnRlcm5hbF9maWVsZChjb25zdCBJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRMb2FkUGF5bG9hZChiYXNlLCBy
ZWdUMik7CiAgICAgbG9hZDMyKEFkZHJlc3MocmVnVDIsIEpTSW50ZXJuYWxGaWVsZE9iamVjdElt
cGw8Pjo6b2Zmc2V0T2ZJbnRlcm5hbEZpZWxkKGluZGV4KSArIFRhZ09mZnNldCksIHJlc3VsdFJl
Z3MudGFnR1BSKCkpOwogICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QyLCBKU0ludGVybmFsRmllbGRP
YmplY3RJbXBsPD46Om9mZnNldE9mSW50ZXJuYWxGaWVsZChpbmRleCkgKyBQYXlsb2FkT2Zmc2V0
KSwgcmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpOwotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUo
bWV0YWRhdGEsIHJlc3VsdFJlZ3MpOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNv
ZGUsIHJlc3VsdFJlZ3MpOwogICAgIGVtaXRTdG9yZShkc3QsIHJlc3VsdFJlZ3MudGFnR1BSKCks
IHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>