<?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>204549</bug_id>
          
          <creation_ts>2019-11-23 08:54:37 -0800</creation_ts>
          <short_desc>Reduce JSC&apos;s binary size</short_desc>
          <delta_ts>2019-12-10 11:43:22 -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>JavaScriptCore</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="Tadeu Zagallo">tzagallo</reporter>
          <assigned_to name="Tadeu Zagallo">tzagallo</assigned_to>
          <cc>annulen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jberlin</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rniwa</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1593208</commentid>
    <comment_count>0</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-11-23 08:54:37 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593212</commentid>
    <comment_count>1</comment_count>
      <attachid>384238</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-11-23 09:07:25 -0800</bug_when>
    <thetext>Created attachment 384238
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593214</commentid>
    <comment_count>2</comment_count>
      <attachid>384239</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-11-23 09:46:13 -0800</bug_when>
    <thetext>Created attachment 384239
Patch

Fix build when WebAssembly is disabled</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596961</commentid>
    <comment_count>3</comment_count>
      <attachid>384239</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-12-09 14:40:01 -0800</bug_when>
    <thetext>Comment on attachment 384239
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=384239&amp;action=review

&gt; Source/JavaScriptCore/ChangeLog:12
&gt; +        - We were generating 2 instances of dumpBytecode, at 30kb each
&gt; +        - We had 3 instances of computeUsesForBytecodeIndex at 11kb each
&gt; +        - We had 8 instances of emit_compareAndJump(Slow) at 8kb (7kb for Slow) each.

you should say what you actually did. (e.g, made them one instance instead of N)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597253</commentid>
    <comment_count>4</comment_count>
      <attachid>385286</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-12-10 10:56:58 -0800</bug_when>
    <thetext>Created attachment 385286
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597274</commentid>
    <comment_count>5</comment_count>
      <attachid>385286</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-10 11:41:47 -0800</bug_when>
    <thetext>Comment on attachment 385286
Patch for landing

Clearing flags on attachment: 385286

Committed r253335: &lt;https://trac.webkit.org/changeset/253335&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597275</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-10 11:41:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597276</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-10 11:43:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/57802078&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384238</attachid>
            <date>2019-11-23 09:07:25 -0800</date>
            <delta_ts>2019-11-23 09:46:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204549-20191123090723.patch</filename>
            <type>text/plain</type>
            <size>52985</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyODEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NTczNmFkZTg5M2Y1NThlODZkNjYyZDY5ZGI3ZGI5ZDZiZjJiYzU0Li5mZGZiOTUxMmVhYzZhOWI4
ZDU1MTc0YzE3MTkzYjNlNjEwZjc2YjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAxOS0xMS0yMyAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBSZWR1Y2UgSlNDJ3MgYmluYXJ5IHNpemUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDU0OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBXYXNtIGludGVycHJldGVyIGxhbmRl
ZCBpbiByMjUxODg2IGFuZCBzaWduaWZpY2FudGx5IGluY3JlYXNlZCBKU0MncyBiaW5hcnkgc2l6
ZS4gVG8gdHJ5IGFuZAorICAgICAgICBvZmZzZXQgdGhhdCwgaGVyZSBhbmQgc29tZSBlYXN5IGZp
eGVzIHRoYXQgZ2V0IHVzIH4yMDBrYiBiYWNrOgorICAgICAgICAtIFdlIHdlcmUgZ2VuZXJhdGlu
ZyAyIGluc3RhbmNlcyBvZiBkdW1wQnl0ZWNvZGUsIGF0IDMwa2IgZWFjaAorICAgICAgICAtIFdl
IGhhZCAzIGluc3RhbmNlcyBvZiBjb21wdXRlVXNlc0ZvckJ5dGVjb2RlSW5kZXggYXQgMTFrYiBl
YWNoCisgICAgICAgIC0gV2UgaGFkIDggaW5zdGFuY2VzIG9mIGVtaXRfY29tcGFyZUFuZEp1bXAo
U2xvdykgYXQgOGtiICg3a2IgZm9yIFNsb3cpIGVhY2guCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAg
ICAqIGJ5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVE
dW1wZXJCYXNlOjpwcmludExvY2F0aW9uQW5kT3ApOgorICAgICAgICAoSlNDOjpCeXRlY29kZUR1
bXBlckJhc2U6OmR1bXBWYWx1ZSk6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIu
aDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVEdW1wZXJCYXNlOjp+Qnl0ZWNvZGVEdW1wZXJCYXNl
KToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVEdW1wZXJCYXNlOjpkdW1wVmFsdWUpOgorICAgICAg
ICAoSlNDOjpCeXRlY29kZUR1bXBlckJhc2U6OkJ5dGVjb2RlRHVtcGVyQmFzZSk6CisgICAgICAg
IChKU0M6OkJ5dGVjb2RlRHVtcGVyOjpCeXRlY29kZUR1bXBlcik6CisgICAgICAgICogYnl0ZWNv
ZGUvQnl0ZWNvZGVVc2VEZWYuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaC4KKyAgICAgICAgKEpTQzo6Y29tcHV0ZVVzZXNGb3JC
eXRlY29kZUluZGV4SW1wbCk6CisgICAgICAgIChKU0M6OmNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVJ
bmRleEltcGwpOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmg6CisgICAgICAg
IChKU0M6OmNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVJbmRleCk6CisgICAgICAgIChKU0M6OmNvbXB1
dGVEZWZzRm9yQnl0ZWNvZGVJbmRleCk6CisgICAgICAgICogZ2VuZXJhdG9yL0RTTC5yYjoKKyAg
ICAgICAgKiBnZW5lcmF0b3IvT3Bjb2RlLnJiOgorICAgICAgICAqIGdlbmVyYXRvci9PcHRpb25z
LnJiOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUQXJpdGhtZXRpYy5j
cHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9jb21wYXJlQW5kSnVtcCk6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdF9jb21wYXJlQW5kSnVtcEltcGwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRfY29tcGFyZVVuc2lnbmVkQW5kSnVtcCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9jb21w
YXJlVW5zaWduZWRBbmRKdW1wSW1wbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9jb21wYXJl
VW5zaWduZWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfY29tcGFyZVVuc2lnbmVkSW1wbCk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9jb21wYXJlQW5kSnVtcFNsb3cpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfY29tcGFyZUFuZEp1bXBTbG93SW1wbCk6CisKIDIwMTktMTEtMjIgIFRh
ZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkFzc2VtYmx5
XSBWYWxpZGF0ZSBhbmQgZ2VuZXJhdGUgYnl0ZWNvZGUgaW4gb25lIHBhc3MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAwZjhjNDE5NDA2NGZmMDNhN2MwNjgwNDA2YTRmY2Y2
ZWFkYzYwNDIzLi5jZjVjZGU0NDE1NGU3ZmE4NTQ0N2RhN2UyZWY3OTE0YWE0YmM2MmZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMTMsMTAgKzIxMywxMCBAQCBzZXQo
R0VORVJBVE9SCiApCiAKIGFkZF9jdXN0b21fY29tbWFuZCgKLSAgICBPVVRQVVQgJHtKYXZhU2Ny
aXB0Q29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9CeXRlY29kZXMuaCAke0phdmFTY3JpcHRDb3Jl
X0RFUklWRURfU09VUkNFU19ESVJ9L0luaXRCeXRlY29kZXMuYXNtICR7SmF2YVNjcmlwdENvcmVf
REVSSVZFRF9TT1VSQ0VTX0RJUn0vQnl0ZWNvZGVTdHJ1Y3RzLmggJHtKYXZhU2NyaXB0Q29yZV9E
RVJJVkVEX1NPVVJDRVNfRElSfS9CeXRlY29kZUluZGljZXMuaCAke0phdmFTY3JpcHRDb3JlX0RF
UklWRURfU09VUkNFU19ESVJ9L1dhc21MTEludEdlbmVyYXRvcklubGluZXMuaCAke0phdmFTY3Jp
cHRDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0luaXRXYXNtLmFzbQorICAgIE9VVFBVVCAke0ph
dmFTY3JpcHRDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0J5dGVjb2Rlcy5oICR7SmF2YVNjcmlw
dENvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vSW5pdEJ5dGVjb2Rlcy5hc20gJHtKYXZhU2NyaXB0
Q29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9CeXRlY29kZVN0cnVjdHMuaCAke0phdmFTY3JpcHRD
b3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0J5dGVjb2RlSW5kaWNlcy5oICR7SmF2YVNjcmlwdENv
cmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2FzbUxMSW50R2VuZXJhdG9ySW5saW5lcy5oICR7SmF2
YVNjcmlwdENvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vSW5pdFdhc20uYXNtICR7SmF2YVNjcmlw
dENvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQnl0ZWNvZGVEdW1wZXJHZW5lcmF0ZWQuY3BwCiAg
ICAgTUFJTl9ERVBFTkRFTkNZICR7SkFWQVNDUklQVENPUkVfRElSfS9nZW5lcmF0b3IvbWFpbi5y
YgogICAgIERFUEVORFMgJHtHRU5FUkFUT1J9IGJ5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYgotICAg
IENPTU1BTkQgJHtSVUJZX0VYRUNVVEFCTEV9ICR7SkFWQVNDUklQVENPUkVfRElSfS9nZW5lcmF0
b3IvbWFpbi5yYiAtLWJ5dGVjb2Rlc19oICR7SmF2YVNjcmlwdENvcmVfREVSSVZFRF9TT1VSQ0VT
X0RJUn0vQnl0ZWNvZGVzLmggLS1pbml0X2J5dGVjb2Rlc19hc20gJHtKYXZhU2NyaXB0Q29yZV9E
RVJJVkVEX1NPVVJDRVNfRElSfS9Jbml0Qnl0ZWNvZGVzLmFzbSAtLWJ5dGVjb2RlX3N0cnVjdHNf
aCAke0phdmFTY3JpcHRDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0J5dGVjb2RlU3RydWN0cy5o
IC0tYnl0ZWNvZGVfaW5kaWNlc19oICR7SmF2YVNjcmlwdENvcmVfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vQnl0ZWNvZGVJbmRpY2VzLmggJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2J5dGVjb2RlL0J5dGVj
b2RlTGlzdC5yYiAtLXdhc21fanNvbiAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vd2FzbS93YXNtLmpz
b24gLS13YXNtX2xsaW50X2dlbmVyYXRvcl9oICR7SmF2YVNjcmlwdENvcmVfREVSSVZFRF9TT1VS
Q0VTX0RJUn0vV2FzbUxMSW50R2VuZXJhdG9ySW5saW5lcy5oIC0taW5pdF93YXNtX2xsaW50ICR7
SmF2YVNjcmlwdENvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vSW5pdFdhc20uYXNtCisgICAgQ09N
TUFORCAke1JVQllfRVhFQ1VUQUJMRX0gJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2dlbmVyYXRvci9t
YWluLnJiIC0tYnl0ZWNvZGVzX2ggJHtKYXZhU2NyaXB0Q29yZV9ERVJJVkVEX1NPVVJDRVNfRElS
fS9CeXRlY29kZXMuaCAtLWluaXRfYnl0ZWNvZGVzX2FzbSAke0phdmFTY3JpcHRDb3JlX0RFUklW
RURfU09VUkNFU19ESVJ9L0luaXRCeXRlY29kZXMuYXNtIC0tYnl0ZWNvZGVfc3RydWN0c19oICR7
SmF2YVNjcmlwdENvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQnl0ZWNvZGVTdHJ1Y3RzLmggLS1i
eXRlY29kZV9pbmRpY2VzX2ggJHtKYXZhU2NyaXB0Q29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9C
eXRlY29kZUluZGljZXMuaCAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0ZWNvZGUvQnl0ZWNvZGVM
aXN0LnJiIC0td2FzbV9qc29uICR7SkFWQVNDUklQVENPUkVfRElSfS93YXNtL3dhc20uanNvbiAt
LXdhc21fbGxpbnRfZ2VuZXJhdG9yX2ggJHtKYXZhU2NyaXB0Q29yZV9ERVJJVkVEX1NPVVJDRVNf
RElSfS9XYXNtTExJbnRHZW5lcmF0b3JJbmxpbmVzLmggLS1pbml0X3dhc21fbGxpbnQgJHtKYXZh
U2NyaXB0Q29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9Jbml0V2FzbS5hc20gLS1ieXRlY29kZV9k
dW1wZXIgJHtKYXZhU2NyaXB0Q29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9CeXRlY29kZUR1bXBl
ckdlbmVyYXRlZC5jcHAKICAgICBWRVJCQVRJTSkKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMTRhYTQy
MGNmM2Y0YzI3M2Q5YThhYWIzOTEwODMwZjk2YzhkNGY0My4uOGJiMTc1OGQ3YjlmNjU4ZTg0OGY3
N2E2ZDZlOTMyNTNkN2U2ZWVjZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtOSw2ICs5LDcgQEAgJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL0JpZ0ludENvbnN0
cnVjdG9yLmx1dC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNj
cmlwdENvcmUvQmlnSW50UHJvdG90eXBlLmx1dC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvQm9vbGVhblByb3RvdHlwZS5sdXQuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL0J5dGVjb2RlQ2Fj
aGVWZXJzaW9uLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2Ny
aXB0Q29yZS9CeXRlY29kZUR1bXBlckdlbmVyYXRlZC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9CeXRlY29kZUluZGljZXMuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL0J5dGVjb2RlU3Ry
dWN0cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENv
cmUvQnl0ZWNvZGVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVk
U291cmNlcy5tYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
aW5kZXggMzBkZDI1OGE0MGVkYzYyNDcwZDg5MzAwZGQ4ZWEwNzM0YzMzYjI5MS4uYWQxY2Y3MTJk
ZjVmN2U3MmM5ZDM2M2UzNzI4MTNiMzgzY2RiYjQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTIxNiw2ICsyMTYsNyBAQCBCWVRFQ09ERV9GSUxFUyA9
IFwKICAgICBJbml0Qnl0ZWNvZGVzLmFzbSBcCiAgICAgV2FzbUxMSW50R2VuZXJhdG9ySW5saW5l
cy5oIFwKICAgICBJbml0V2FzbS5hc20gXAorICAgIEJ5dGVjb2RlRHVtcGVyR2VuZXJhdGVkLmNw
cCBcCiAjCiBCWVRFQ09ERV9GSUxFU19QQVRURVJOUyA9ICQoc3Vic3QgLiwlLCQoQllURUNPREVf
RklMRVMpKQogCkBAIC0yMzAsNiArMjMxLDcgQEAgJChCWVRFQ09ERV9GSUxFU19QQVRURVJOUyk6
ICQod2lsZGNhcmQgJChKYXZhU2NyaXB0Q29yZSkvZ2VuZXJhdG9yLyoucmIpICQoSmF2YVMKICAg
ICAtLXdhc21fanNvbiAkKEphdmFTY3JpcHRDb3JlKS93YXNtL3dhc20uanNvbiBcCiAgICAgLS13
YXNtX2xsaW50X2dlbmVyYXRvcl9oIFdhc21MTEludEdlbmVyYXRvcklubGluZXMuaCBcCiAgICAg
LS1pbml0X3dhc21fbGxpbnQgSW5pdFdhc20uYXNtIFwKKyAgICAtLWJ5dGVjb2RlX2R1bXBlciBC
eXRlY29kZUR1bXBlckdlbmVyYXRlZC5jcHAgXAogCiAjIEluc3BlY3RvciBpbnRlcmZhY2VzCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAppbmRleCAzZDcwZWQ4MzVkY2JkOTBlMDM1NTU4NDZh
YTJkODNhOWU2YjJkMDQyLi40NGVkYzY5NzE1MWZiNmUyMmRhZGFhMzc4ZTEwNDVlMThmNDQwYmQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0CkBAIC0yMDEsNiArMjAxLDcgQEAgYnl0ZWNv
ZGUvQnl0ZWNvZGVJbmRleC5jcHAKIGJ5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnku
Y3BwCiBieXRlY29kZS9CeXRlY29kZUxpdmVuZXNzQW5hbHlzaXMuY3BwCiBieXRlY29kZS9CeXRl
Y29kZVJld3JpdGVyLmNwcAorYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwCiBieXRlY29kZS9D
YWxsRWRnZS5jcHAKIGJ5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKIGJ5dGVjb2RlL0NhbGxMaW5r
U3RhdHVzLmNwcApAQCAtMjg0LDYgKzI4NSw5IEBAIGJ5dGVjb2RlL1ZhcmlhYmxlV3JpdGVGaXJl
RGV0YWlsLmNwcAogYnl0ZWNvZGUvVmlydHVhbFJlZ2lzdGVyLmNwcAogYnl0ZWNvZGUvV2F0Y2hw
b2ludC5jcHAKIAorLy8gRGVyaXZlZCBTb3VyY2VzCitCeXRlY29kZUR1bXBlckdlbmVyYXRlZC5j
cHAKKwogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAogYnl0ZWNvbXBpbGVyL05v
ZGVzQ29kZWdlbi5jcHAKIGJ5dGVjb21waWxlci9Qcm9maWxlVHlwZUJ5dGVjb2RlRmxhZy5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBl
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3Bw
CmluZGV4IDdiNDE1NDkyZDUxN2EyZGI0YzIxZDkzMzYzM2QxOGY5N2IzNTJiYmUuLjllOGI1NmY5
MDE4NWEwMTZiY2YyZWE3YWNlM2M3MjBiZDljNjVkODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcApAQCAtNTUsNiArNTUsMjcgQEAg
c3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBpc0NvbnN0YW50UmVnaXN0ZXJJbmRleChpbnQgaW5k
ZXgpCiAgICAgcmV0dXJuIGluZGV4ID49IEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4OwogfQog
Cit2b2lkIEJ5dGVjb2RlRHVtcGVyQmFzZTo6cHJpbnRMb2NhdGlvbkFuZE9wKEluc3RydWN0aW9u
U3RyZWFtOjpPZmZzZXQgbG9jYXRpb24sIGNvbnN0IGNoYXIqIG9wKQoreworICAgIG1fY3VycmVu
dExvY2F0aW9uID0gbG9jYXRpb247CisgICAgbV9vdXQucHJpbnRmKCJbJTR1XSAlLTE4cyAiLCBs
b2NhdGlvbiwgb3ApOworfQorCit2b2lkIEJ5dGVjb2RlRHVtcGVyQmFzZTo6ZHVtcFZhbHVlKFZp
cnR1YWxSZWdpc3RlciByZWcpCit7CisgICAgbV9vdXQucHJpbnRmKCIlcyIsIHJlZ2lzdGVyTmFt
ZShyZWcub2Zmc2V0KCkpLmRhdGEoKSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFRyYWl0cz4K
K3ZvaWQgQnl0ZWNvZGVEdW1wZXJCYXNlOjpkdW1wVmFsdWUoR2VuZXJpY0JvdW5kTGFiZWw8VHJh
aXRzPiBsYWJlbCkKK3sKKyAgICBJbnN0cnVjdGlvblN0cmVhbTo6T2Zmc2V0IHRhcmdldE9mZnNl
dCA9IGxhYmVsLnRhcmdldCgpICsgbV9jdXJyZW50TG9jYXRpb247CisgICAgbV9vdXQucHJpbnQo
bGFiZWwudGFyZ2V0KCksICIoLT4iLCB0YXJnZXRPZmZzZXQsICIpIik7Cit9CisKK3RlbXBsYXRl
IHZvaWQgQnl0ZWNvZGVEdW1wZXJCYXNlOjpkdW1wVmFsdWUoR2VuZXJpY0JvdW5kTGFiZWw8SlNH
ZW5lcmF0b3JUcmFpdHM+KTsKK3RlbXBsYXRlIHZvaWQgQnl0ZWNvZGVEdW1wZXJCYXNlOjpkdW1w
VmFsdWUoR2VuZXJpY0JvdW5kTGFiZWw8V2FzbTo6R2VuZXJhdG9yVHJhaXRzPik7CisKIHRlbXBs
YXRlPGNsYXNzIEJsb2NrPgogQ1N0cmluZyBCeXRlY29kZUR1bXBlcjxCbG9jaz46OnJlZ2lzdGVy
TmFtZShpbnQgcikgY29uc3QKIHsKQEAgLTcxLDE5ICs5Miw2IEBAIENTdHJpbmcgQnl0ZWNvZGVE
dW1wZXI8QmxvY2s+Ojpjb25zdGFudE5hbWUoaW50IGluZGV4KSBjb25zdAogICAgIHJldHVybiB0
b0NTdHJpbmcodmFsdWUsICIoIiwgVmlydHVhbFJlZ2lzdGVyKGluZGV4KSwgIikiKTsKIH0KIAot
dGVtcGxhdGU8Y2xhc3MgQmxvY2s+Ci12b2lkIEJ5dGVjb2RlRHVtcGVyPEJsb2NrPjo6cHJpbnRM
b2NhdGlvbkFuZE9wKEluc3RydWN0aW9uU3RyZWFtOjpPZmZzZXQgbG9jYXRpb24sIGNvbnN0IGNo
YXIqIG9wKQotewotICAgIG1fY3VycmVudExvY2F0aW9uID0gbG9jYXRpb247Ci0gICAgbV9vdXQu
cHJpbnRmKCJbJTR1XSAlLTE4cyAiLCBsb2NhdGlvbiwgb3ApOwotfQotCi10ZW1wbGF0ZTxjbGFz
cyBCbG9jaz4KLXZvaWQgQnl0ZWNvZGVEdW1wZXI8QmxvY2s+OjpkdW1wVmFsdWUoVmlydHVhbFJl
Z2lzdGVyIHJlZykKLXsKLSAgICBtX291dC5wcmludGYoIiVzIiwgcmVnaXN0ZXJOYW1lKHJlZy5v
ZmZzZXQoKSkuZGF0YSgpKTsKLX0KLQogdGVtcGxhdGU8Y2xhc3MgQmxvY2s+CiB2b2lkIEJ5dGVj
b2RlRHVtcGVyPEJsb2NrPjo6ZHVtcEJ5dGVjb2RlKGNvbnN0IEluc3RydWN0aW9uU3RyZWFtOjpS
ZWYmIGl0LCBjb25zdCBJQ1N0YXR1c01hcCYpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5oCmluZGV4IDY4OWUwMjJjYjQ1YjBiMzIzMmE5M2Ri
N2JhOTc1MzY4ZDAyYjNjZmMuLjViZTk0MTI3Y2EyNDY1ZWY3M2JmNjgxMmFjY2FjMDUyMDkyYzJi
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1
bXBlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBl
ci5oCkBAIC0yNiwyMCArMjYsMjEgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJCeXRl
Y29kZUdlbmVyYXRvckJhc2UuaCIKICNpbmNsdWRlICJDYWxsTGlua0luZm8uaCIKICNpbmNsdWRl
ICJJQ1N0YXR1c01hcC5oIgogI2luY2x1ZGUgIkluc3RydWN0aW9uU3RyZWFtLmgiCi0jaW5jbHVk
ZSAiTGFiZWwuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVTdHViSW5mby5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKIAogc3RydWN0IEluc3RydWN0aW9uOwogCi10ZW1wbGF0ZTxjbGFzcyBCbG9jaz4KLWNs
YXNzIEJ5dGVjb2RlRHVtcGVyIHsKK2NsYXNzIEJ5dGVjb2RlRHVtcGVyQmFzZSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIHZvaWQgZHVtcEJ5dGVjb2RlKEJsb2NrKiwgUHJpbnRTdHJlYW0mIG91dCwg
Y29uc3QgSW5zdHJ1Y3Rpb25TdHJlYW06OlJlZiYgaXQsIGNvbnN0IElDU3RhdHVzTWFwJiA9IElD
U3RhdHVzTWFwKCkpOworICAgIHZpcnR1YWwgfkJ5dGVjb2RlRHVtcGVyQmFzZSgpCisgICAgewor
ICAgIH0KIAogICAgIHZvaWQgcHJpbnRMb2NhdGlvbkFuZE9wKEluc3RydWN0aW9uU3RyZWFtOjpP
ZmZzZXQgbG9jYXRpb24sIGNvbnN0IGNoYXIqIG9wKTsKIApAQCAtNTQsMTggKzU1LDMwIEBAIHB1
YmxpYzoKICAgICB2b2lkIGR1bXBWYWx1ZShWaXJ0dWFsUmVnaXN0ZXIpOwogCiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgVHJhaXRzPgotICAgIHZvaWQgZHVtcFZhbHVlKEdlbmVyaWNCb3VuZExhYmVs
PFRyYWl0cz4gbGFiZWwpCisgICAgdm9pZCBkdW1wVmFsdWUoR2VuZXJpY0JvdW5kTGFiZWw8VHJh
aXRzPik7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHZvaWQgZHVtcFZhbHVlKFQg
dikgeyBtX291dC5wcmludCh2KTsgfQorCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCBDU3RyaW5n
IHJlZ2lzdGVyTmFtZShpbnQpIGNvbnN0ID0gMDsKKworICAgIEJ5dGVjb2RlRHVtcGVyQmFzZShQ
cmludFN0cmVhbSYgb3V0KQorICAgICAgICA6IG1fb3V0KG91dCkKICAgICB7Ci0gICAgICAgIElu
c3RydWN0aW9uU3RyZWFtOjpPZmZzZXQgdGFyZ2V0T2Zmc2V0ID0gbGFiZWwudGFyZ2V0KCkgKyBt
X2N1cnJlbnRMb2NhdGlvbjsKLSAgICAgICAgbV9vdXQucHJpbnQobGFiZWwudGFyZ2V0KCksICIo
LT4iLCB0YXJnZXRPZmZzZXQsICIpIik7CiAgICAgfQogCisgICAgUHJpbnRTdHJlYW0mIG1fb3V0
OworICAgIEluc3RydWN0aW9uU3RyZWFtOjpPZmZzZXQgbV9jdXJyZW50TG9jYXRpb24geyAwIH07
Cit9OwogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KLSAgICB2b2lkIGR1bXBWYWx1ZShUIHYp
IHsgbV9vdXQucHJpbnQodik7IH0KK3RlbXBsYXRlPGNsYXNzIEJsb2NrPgorY2xhc3MgQnl0ZWNv
ZGVEdW1wZXIgOiBwdWJsaWMgQnl0ZWNvZGVEdW1wZXJCYXNlIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgdm9pZCBkdW1wQnl0ZWNvZGUoQmxvY2sqLCBQcmludFN0cmVhbSYgb3V0LCBjb25zdCBJbnN0
cnVjdGlvblN0cmVhbTo6UmVmJiBpdCwgY29uc3QgSUNTdGF0dXNNYXAmID0gSUNTdGF0dXNNYXAo
KSk7CiAKICAgICBCeXRlY29kZUR1bXBlcihCbG9jayogYmxvY2ssIFByaW50U3RyZWFtJiBvdXQp
Ci0gICAgICAgIDogbV9vdXQob3V0KQorICAgICAgICA6IEJ5dGVjb2RlRHVtcGVyQmFzZShvdXQp
CiAgICAgICAgICwgbV9ibG9jayhibG9jaykKICAgICB7CiAgICAgfQpAQCAtNzcsMTQgKzkwLDEy
IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgZHVtcEJ5dGVjb2RlKGNvbnN0IEluc3RydWN0aW9u
U3RyZWFtOjpSZWYmIGl0LCBjb25zdCBJQ1N0YXR1c01hcCYpOwogCi0gICAgUHJpbnRTdHJlYW0m
IG1fb3V0OworICAgIENTdHJpbmcgcmVnaXN0ZXJOYW1lKGludCByKSBjb25zdCBvdmVycmlkZTsK
IAogcHJpdmF0ZToKLSAgICBDU3RyaW5nIHJlZ2lzdGVyTmFtZShpbnQgcikgY29uc3Q7CiAgICAg
dmlydHVhbCBDU3RyaW5nIGNvbnN0YW50TmFtZShpbnQgaW5kZXgpIGNvbnN0OwogCiAgICAgQmxv
Y2sqIG1fYmxvY2s7Ci0gICAgSW5zdHJ1Y3Rpb25TdHJlYW06Ok9mZnNldCBtX2N1cnJlbnRMb2Nh
dGlvbiB7IDAgfTsKIH07CiAKIHRlbXBsYXRlPGNsYXNzIEJsb2NrPgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWI2
MzI5MzRlYjZjMWZjNWNjYWE3MWIwZTQyOTNhYTlhZDY2MmU5NQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAKQEAgLTAs
MCArMSw0OTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJCeXRlY29kZVVzZURlZi5oIgorCituYW1lc3BhY2UgSlNDIHsKKworI2RlZmluZSBDQUxM
X0ZVTkNUT1IoX19hcmcpIFwKKyAgICBmdW5jdG9yKF9fYnl0ZWNvZGUubV8jI19fYXJnKTsKKwor
I2RlZmluZSBVU0VTX09SX0RFRlMoX19vcGNvZGUsIC4uLikgXAorICAgIGNhc2UgX19vcGNvZGU6
Om9wY29kZUlEOiB7IFwKKyAgICAgICAgYXV0byBfX2J5dGVjb2RlID0gaW5zdHJ1Y3Rpb24tPmFz
PF9fb3Bjb2RlPigpOyBcCisgICAgICAgIFdURl9MQVpZX0ZPUl9FQUNIX1RFUk0oQ0FMTF9GVU5D
VE9SLCBfX1ZBX0FSR1NfXykgXAorICAgICAgICByZXR1cm47IFwKKyAgICB9CisKKyNkZWZpbmUg
VVNFUyBVU0VTX09SX0RFRlMKKyNkZWZpbmUgREVGUyBVU0VTX09SX0RFRlMKKwordm9pZCBjb21w
dXRlVXNlc0ZvckJ5dGVjb2RlSW5kZXhJbXBsKFZpcnR1YWxSZWdpc3RlciBzY29wZVJlZ2lzdGVy
LCBjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIGNvbnN0IEZ1bmN0aW9uPHZvaWQoVmly
dHVhbFJlZ2lzdGVyKT4mIGZ1bmN0b3IpCit7CisgICAgT3Bjb2RlSUQgb3Bjb2RlSUQgPSBpbnN0
cnVjdGlvbi0+b3Bjb2RlSUQoKTsKKworICAgIGF1dG8gaGFuZGxlTmV3QXJyYXlMaWtlID0gWyZd
KGF1dG8gb3ApIHsKKyAgICAgICAgaW50IGJhc2UgPSBvcC5tX2FyZ3Yub2Zmc2V0KCk7CisgICAg
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3RhdGljX2Nhc3Q8aW50PihvcC5tX2FyZ2MpOyBpKysp
CisgICAgICAgICAgICBmdW5jdG9yKFZpcnR1YWxSZWdpc3RlciB7IGJhc2UgLSBpIH0pOworICAg
IH07CisKKyAgICBhdXRvIGhhbmRsZU9wQ2FsbExpa2UgPSBbJl0oYXV0byBvcCkgeworICAgICAg
ICBmdW5jdG9yKG9wLm1fY2FsbGVlKTsKKyAgICAgICAgaW50IGxhc3RBcmcgPSAtc3RhdGljX2Nh
c3Q8aW50PihvcC5tX2FyZ3YpICsgQ2FsbEZyYW1lOjp0aGlzQXJndW1lbnRPZmZzZXQoKTsKKyAg
ICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdGF0aWNfY2FzdDxpbnQ+KG9wLm1fYXJnYyk7IGkr
KykKKyAgICAgICAgICAgIGZ1bmN0b3IoVmlydHVhbFJlZ2lzdGVyIHsgbGFzdEFyZyArIGkgfSk7
CisgICAgICAgIGlmIChvcGNvZGVJRCA9PSBvcF9jYWxsX2V2YWwpCisgICAgICAgICAgICBmdW5j
dG9yKHNjb3BlUmVnaXN0ZXIpOworICAgICAgICByZXR1cm47CisgICAgfTsKKworICAgIHN3aXRj
aCAob3Bjb2RlSUQpIHsKKyAgICBjYXNlIG9wX3dpZGUxNjoKKyAgICBjYXNlIG9wX3dpZGUzMjoK
KyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKworICAgIC8vIE5vIHVzZXMu
CisgICAgY2FzZSBvcF9uZXdfcmVnZXhwOgorICAgIGNhc2Ugb3BfZGVidWc6CisgICAgY2FzZSBv
cF9qbmVxX3B0cjoKKyAgICBjYXNlIG9wX2xvb3BfaGludDoKKyAgICBjYXNlIG9wX2ptcDoKKyAg
ICBjYXNlIG9wX25ld19vYmplY3Q6CisgICAgY2FzZSBvcF9uZXdfcHJvbWlzZToKKyAgICBjYXNl
IG9wX25ld19nZW5lcmF0b3I6CisgICAgY2FzZSBvcF9lbnRlcjoKKyAgICBjYXNlIG9wX2FyZ3Vt
ZW50X2NvdW50OgorICAgIGNhc2Ugb3BfY2F0Y2g6CisgICAgY2FzZSBvcF9wcm9maWxlX2NvbnRy
b2xfZmxvdzoKKyAgICBjYXNlIG9wX2NyZWF0ZV9kaXJlY3RfYXJndW1lbnRzOgorICAgIGNhc2Ug
b3BfY3JlYXRlX2Nsb25lZF9hcmd1bWVudHM6CisgICAgY2FzZSBvcF9nZXRfcmVzdF9sZW5ndGg6
CisgICAgY2FzZSBvcF9jaGVja190cmFwczoKKyAgICBjYXNlIG9wX2dldF9hcmd1bWVudDoKKyAg
ICBjYXNlIG9wX25vcDoKKyAgICBjYXNlIG9wX3VucmVhY2hhYmxlOgorICAgIGNhc2Ugb3Bfc3Vw
ZXJfc2FtcGxlcl9iZWdpbjoKKyAgICBjYXNlIG9wX3N1cGVyX3NhbXBsZXJfZW5kOgorICAgICAg
ICByZXR1cm47CisKKyAgICBVU0VTKE9wR2V0U2NvcGUsIGRzdCkKKyAgICBVU0VTKE9wVG9UaGlz
LCBzcmNEc3QpCisgICAgVVNFUyhPcENoZWNrVGR6LCB0YXJnZXRWaXJ0dWFsUmVnaXN0ZXIpCisg
ICAgVVNFUyhPcElkZW50aXR5V2l0aFByb2ZpbGUsIHNyY0RzdCkKKyAgICBVU0VTKE9wUHJvZmls
ZVR5cGUsIHRhcmdldFZpcnR1YWxSZWdpc3Rlcik7CisgICAgVVNFUyhPcFRocm93LCB2YWx1ZSkK
KyAgICBVU0VTKE9wVGhyb3dTdGF0aWNFcnJvciwgbWVzc2FnZSkKKyAgICBVU0VTKE9wRW5kLCB2
YWx1ZSkKKyAgICBVU0VTKE9wUmV0LCB2YWx1ZSkKKyAgICBVU0VTKE9wSnRydWUsIGNvbmRpdGlv
bikKKyAgICBVU0VTKE9wSmZhbHNlLCBjb25kaXRpb24pCisgICAgVVNFUyhPcEplcU51bGwsIHZh
bHVlKQorICAgIFVTRVMoT3BKbmVxTnVsbCwgdmFsdWUpCisgICAgVVNFUyhPcEp1bmRlZmluZWRP
ck51bGwsIHZhbHVlKQorICAgIFVTRVMoT3BKbnVuZGVmaW5lZE9yTnVsbCwgdmFsdWUpCisgICAg
VVNFUyhPcERlYywgc3JjRHN0KQorICAgIFVTRVMoT3BJbmMsIHNyY0RzdCkKKyAgICBVU0VTKE9w
TG9nU2hhZG93Q2hpY2tlblByb2xvZ3VlLCBzY29wZSkKKworICAgIFVTRVMoT3BKbGVzcywgbGhz
LCByaHMpCisgICAgVVNFUyhPcEpsZXNzZXEsIGxocywgcmhzKQorICAgIFVTRVMoT3BKZ3JlYXRl
ciwgbGhzLCByaHMpCisgICAgVVNFUyhPcEpncmVhdGVyZXEsIGxocywgcmhzKQorICAgIFVTRVMo
T3BKbmxlc3MsIGxocywgcmhzKQorICAgIFVTRVMoT3BKbmxlc3NlcSwgbGhzLCByaHMpCisgICAg
VVNFUyhPcEpuZ3JlYXRlciwgbGhzLCByaHMpCisgICAgVVNFUyhPcEpuZ3JlYXRlcmVxLCBsaHMs
IHJocykKKyAgICBVU0VTKE9wSmVxLCBsaHMsIHJocykKKyAgICBVU0VTKE9wSm5lcSwgbGhzLCBy
aHMpCisgICAgVVNFUyhPcEpzdHJpY3RlcSwgbGhzLCByaHMpCisgICAgVVNFUyhPcEpuc3RyaWN0
ZXEsIGxocywgcmhzKQorICAgIFVTRVMoT3BKYmVsb3csIGxocywgcmhzKQorICAgIFVTRVMoT3BK
YmVsb3dlcSwgbGhzLCByaHMpCisgICAgVVNFUyhPcFNldEZ1bmN0aW9uTmFtZSwgZnVuY3Rpb24s
IG5hbWUpCisgICAgVVNFUyhPcExvZ1NoYWRvd0NoaWNrZW5UYWlsLCB0aGlzVmFsdWUsIHNjb3Bl
KQorCisgICAgVVNFUyhPcFB1dEJ5VmFsLCBiYXNlLCBwcm9wZXJ0eSwgdmFsdWUpCisgICAgVVNF
UyhPcFB1dEJ5VmFsRGlyZWN0LCBiYXNlLCBwcm9wZXJ0eSwgdmFsdWUpCisKKyAgICBVU0VTKE9w
UHV0QnlJZCwgYmFzZSwgdmFsdWUpCisgICAgVVNFUyhPcFB1dFRvU2NvcGUsIHNjb3BlLCB2YWx1
ZSkKKyAgICBVU0VTKE9wUHV0VG9Bcmd1bWVudHMsIGFyZ3VtZW50cywgdmFsdWUpCisKKyAgICBV
U0VTKE9wUHV0QnlJZFdpdGhUaGlzLCBiYXNlLCB0aGlzVmFsdWUsIHZhbHVlKQorCisgICAgVVNF
UyhPcFB1dEJ5VmFsV2l0aFRoaXMsIGJhc2UsIHRoaXNWYWx1ZSwgcHJvcGVydHksIHZhbHVlKQor
CisgICAgVVNFUyhPcFB1dEdldHRlckJ5SWQsIGJhc2UsIGFjY2Vzc29yKQorICAgIFVTRVMoT3BQ
dXRTZXR0ZXJCeUlkLCBiYXNlLCBhY2Nlc3NvcikKKworICAgIFVTRVMoT3BQdXRHZXR0ZXJTZXR0
ZXJCeUlkLCBiYXNlLCBnZXR0ZXIsIHNldHRlcikKKworICAgIFVTRVMoT3BQdXRHZXR0ZXJCeVZh
bCwgYmFzZSwgcHJvcGVydHksIGFjY2Vzc29yKQorICAgIFVTRVMoT3BQdXRTZXR0ZXJCeVZhbCwg
YmFzZSwgcHJvcGVydHksIGFjY2Vzc29yKQorCisgICAgVVNFUyhPcERlZmluZURhdGFQcm9wZXJ0
eSwgYmFzZSwgcHJvcGVydHksIHZhbHVlLCBhdHRyaWJ1dGVzKQorCisgICAgVVNFUyhPcERlZmlu
ZUFjY2Vzc29yUHJvcGVydHksIGJhc2UsIHByb3BlcnR5LCBnZXR0ZXIsIHNldHRlciwgYXR0cmli
dXRlcykKKworICAgIFVTRVMoT3BTcHJlYWQsIGFyZ3VtZW50KQorICAgIFVTRVMoT3BHZXRQcm9w
ZXJ0eUVudW1lcmF0b3IsIGJhc2UpCisgICAgVVNFUyhPcEdldEVudW1lcmFibGVMZW5ndGgsIGJh
c2UpCisgICAgVVNFUyhPcE5ld0Z1bmNFeHAsIHNjb3BlKQorICAgIFVTRVMoT3BOZXdHZW5lcmF0
b3JGdW5jRXhwLCBzY29wZSkKKyAgICBVU0VTKE9wTmV3QXN5bmNGdW5jRXhwLCBzY29wZSkKKyAg
ICBVU0VTKE9wVG9JbmRleFN0cmluZywgaW5kZXgpCisgICAgVVNFUyhPcENyZWF0ZUxleGljYWxF
bnZpcm9ubWVudCwgc2NvcGUsIHN5bWJvbFRhYmxlLCBpbml0aWFsVmFsdWUpCisgICAgVVNFUyhP
cENyZWF0ZUdlbmVyYXRvckZyYW1lRW52aXJvbm1lbnQsIHNjb3BlLCBzeW1ib2xUYWJsZSwgaW5p
dGlhbFZhbHVlKQorICAgIFVTRVMoT3BSZXNvbHZlU2NvcGUsIHNjb3BlKQorICAgIFVTRVMoT3BS
ZXNvbHZlU2NvcGVGb3JIb2lzdGluZ0Z1bmNEZWNsSW5FdmFsLCBzY29wZSkKKyAgICBVU0VTKE9w
R2V0RnJvbVNjb3BlLCBzY29wZSkKKyAgICBVU0VTKE9wVG9QcmltaXRpdmUsIHNyYykKKyAgICBV
U0VTKE9wVHJ5R2V0QnlJZCwgYmFzZSkKKyAgICBVU0VTKE9wR2V0QnlJZCwgYmFzZSkKKyAgICBV
U0VTKE9wR2V0QnlJZERpcmVjdCwgYmFzZSkKKyAgICBVU0VTKE9wSW5CeUlkLCBiYXNlKQorICAg
IFVTRVMoT3BUeXBlb2YsIHZhbHVlKQorICAgIFVTRVMoT3BJc0VtcHR5LCBvcGVyYW5kKQorICAg
IFVTRVMoT3BJc1VuZGVmaW5lZCwgb3BlcmFuZCkKKyAgICBVU0VTKE9wSXNVbmRlZmluZWRPck51
bGwsIG9wZXJhbmQpCisgICAgVVNFUyhPcElzQm9vbGVhbiwgb3BlcmFuZCkKKyAgICBVU0VTKE9w
SXNOdW1iZXIsIG9wZXJhbmQpCisgICAgVVNFUyhPcElzT2JqZWN0LCBvcGVyYW5kKQorICAgIFVT
RVMoT3BJc09iamVjdE9yTnVsbCwgb3BlcmFuZCkKKyAgICBVU0VTKE9wSXNDZWxsV2l0aFR5cGUs
IG9wZXJhbmQpCisgICAgVVNFUyhPcElzRnVuY3Rpb24sIG9wZXJhbmQpCisgICAgVVNFUyhPcFRv
TnVtYmVyLCBvcGVyYW5kKQorICAgIFVTRVMoT3BUb051bWVyaWMsIG9wZXJhbmQpCisgICAgVVNF
UyhPcFRvU3RyaW5nLCBvcGVyYW5kKQorICAgIFVTRVMoT3BUb09iamVjdCwgb3BlcmFuZCkKKyAg
ICBVU0VTKE9wTmVnYXRlLCBvcGVyYW5kKQorICAgIFVTRVMoT3BCaXRub3QsIG9wZXJhbmQpCisg
ICAgVVNFUyhPcEVxTnVsbCwgb3BlcmFuZCkKKyAgICBVU0VTKE9wTmVxTnVsbCwgb3BlcmFuZCkK
KyAgICBVU0VTKE9wTm90LCBvcGVyYW5kKQorICAgIFVTRVMoT3BVbnNpZ25lZCwgb3BlcmFuZCkK
KyAgICBVU0VTKE9wTW92LCBzcmMpCisgICAgVVNFUyhPcE5ld0FycmF5V2l0aFNpemUsIGxlbmd0
aCkKKyAgICBVU0VTKE9wQ3JlYXRlVGhpcywgY2FsbGVlKQorICAgIFVTRVMoT3BDcmVhdGVQcm9t
aXNlLCBjYWxsZWUpCisgICAgVVNFUyhPcENyZWF0ZUdlbmVyYXRvciwgY2FsbGVlKQorICAgIFVT
RVMoT3BDcmVhdGVBc3luY0dlbmVyYXRvciwgY2FsbGVlKQorICAgIFVTRVMoT3BEZWxCeUlkLCBi
YXNlKQorICAgIFVTRVMoT3BOZXdGdW5jLCBzY29wZSkKKyAgICBVU0VTKE9wTmV3QXN5bmNHZW5l
cmF0b3JGdW5jLCBzY29wZSkKKyAgICBVU0VTKE9wTmV3QXN5bmNHZW5lcmF0b3JGdW5jRXhwLCBz
Y29wZSkKKyAgICBVU0VTKE9wTmV3R2VuZXJhdG9yRnVuYywgc2NvcGUpCisgICAgVVNFUyhPcE5l
d0FzeW5jRnVuYywgc2NvcGUpCisgICAgVVNFUyhPcEdldFBhcmVudFNjb3BlLCBzY29wZSkKKyAg
ICBVU0VTKE9wQ3JlYXRlU2NvcGVkQXJndW1lbnRzLCBzY29wZSkKKyAgICBVU0VTKE9wQ3JlYXRl
UmVzdCwgYXJyYXlTaXplKQorICAgIFVTRVMoT3BHZXRGcm9tQXJndW1lbnRzLCBhcmd1bWVudHMp
CisgICAgVVNFUyhPcE5ld0FycmF5QnVmZmVyLCBpbW11dGFibGVCdXR0ZXJmbHkpCisKKyAgICBV
U0VTKE9wSGFzR2VuZXJpY1Byb3BlcnR5LCBiYXNlLCBwcm9wZXJ0eSkKKyAgICBVU0VTKE9wSGFz
SW5kZXhlZFByb3BlcnR5LCBiYXNlLCBwcm9wZXJ0eSkKKyAgICBVU0VTKE9wRW51bWVyYXRvclN0
cnVjdHVyZVBuYW1lLCBlbnVtZXJhdG9yLCBpbmRleCkKKyAgICBVU0VTKE9wRW51bWVyYXRvckdl
bmVyaWNQbmFtZSwgZW51bWVyYXRvciwgaW5kZXgpCisgICAgVVNFUyhPcEdldEJ5VmFsLCBiYXNl
LCBwcm9wZXJ0eSkKKyAgICBVU0VTKE9wSW5CeVZhbCwgYmFzZSwgcHJvcGVydHkpCisgICAgVVNF
UyhPcE92ZXJyaWRlc0hhc0luc3RhbmNlLCBjb25zdHJ1Y3RvciwgaGFzSW5zdGFuY2VWYWx1ZSkK
KyAgICBVU0VTKE9wSW5zdGFuY2VvZiwgdmFsdWUsIHByb3RvdHlwZSkKKyAgICBVU0VTKE9wQWRk
LCBsaHMsIHJocykKKyAgICBVU0VTKE9wTXVsLCBsaHMsIHJocykKKyAgICBVU0VTKE9wRGl2LCBs
aHMsIHJocykKKyAgICBVU0VTKE9wTW9kLCBsaHMsIHJocykKKyAgICBVU0VTKE9wU3ViLCBsaHMs
IHJocykKKyAgICBVU0VTKE9wUG93LCBsaHMsIHJocykKKyAgICBVU0VTKE9wTHNoaWZ0LCBsaHMs
IHJocykKKyAgICBVU0VTKE9wUnNoaWZ0LCBsaHMsIHJocykKKyAgICBVU0VTKE9wVXJzaGlmdCwg
bGhzLCByaHMpCisgICAgVVNFUyhPcEJpdGFuZCwgbGhzLCByaHMpCisgICAgVVNFUyhPcEJpdHhv
ciwgbGhzLCByaHMpCisgICAgVVNFUyhPcEJpdG9yLCBsaHMsIHJocykKKyAgICBVU0VTKE9wTGVz
cywgbGhzLCByaHMpCisgICAgVVNFUyhPcExlc3NlcSwgbGhzLCByaHMpCisgICAgVVNFUyhPcEdy
ZWF0ZXIsIGxocywgcmhzKQorICAgIFVTRVMoT3BHcmVhdGVyZXEsIGxocywgcmhzKQorICAgIFVT
RVMoT3BCZWxvdywgbGhzLCByaHMpCisgICAgVVNFUyhPcEJlbG93ZXEsIGxocywgcmhzKQorICAg
IFVTRVMoT3BOc3RyaWN0ZXEsIGxocywgcmhzKQorICAgIFVTRVMoT3BTdHJpY3RlcSwgbGhzLCBy
aHMpCisgICAgVVNFUyhPcE5lcSwgbGhzLCByaHMpCisgICAgVVNFUyhPcEVxLCBsaHMsIHJocykK
KyAgICBVU0VTKE9wUHVzaFdpdGhTY29wZSwgY3VycmVudFNjb3BlLCBuZXdTY29wZSkKKyAgICBV
U0VTKE9wR2V0QnlJZFdpdGhUaGlzLCBiYXNlLCB0aGlzVmFsdWUpCisgICAgVVNFUyhPcERlbEJ5
VmFsLCBiYXNlLCBwcm9wZXJ0eSkKKyAgICBVU0VTKE9wVGFpbENhbGxGb3J3YXJkQXJndW1lbnRz
LCBjYWxsZWUsIHRoaXNWYWx1ZSkKKworICAgIFVTRVMoT3BHZXRCeVZhbFdpdGhUaGlzLCBiYXNl
LCB0aGlzVmFsdWUsIHByb3BlcnR5KQorICAgIFVTRVMoT3BJbnN0YW5jZW9mQ3VzdG9tLCB2YWx1
ZSwgY29uc3RydWN0b3IsIGhhc0luc3RhbmNlVmFsdWUpCisgICAgVVNFUyhPcEhhc1N0cnVjdHVy
ZVByb3BlcnR5LCBiYXNlLCBwcm9wZXJ0eSwgZW51bWVyYXRvcikKKyAgICBVU0VTKE9wQ29uc3Ry
dWN0VmFyYXJncywgY2FsbGVlLCB0aGlzVmFsdWUsIGFyZ3VtZW50cykKKyAgICBVU0VTKE9wQ2Fs
bFZhcmFyZ3MsIGNhbGxlZSwgdGhpc1ZhbHVlLCBhcmd1bWVudHMpCisgICAgVVNFUyhPcFRhaWxD
YWxsVmFyYXJncywgY2FsbGVlLCB0aGlzVmFsdWUsIGFyZ3VtZW50cykKKworICAgIFVTRVMoT3BH
ZXREaXJlY3RQbmFtZSwgYmFzZSwgcHJvcGVydHksIGluZGV4LCBlbnVtZXJhdG9yKQorCisgICAg
VVNFUyhPcFN3aXRjaFN0cmluZywgc2NydXRpbmVlKQorICAgIFVTRVMoT3BTd2l0Y2hDaGFyLCBz
Y3J1dGluZWUpCisgICAgVVNFUyhPcFN3aXRjaEltbSwgc2NydXRpbmVlKQorCisgICAgVVNFUyhP
cEdldEludGVybmFsRmllbGQsIGJhc2UpCisgICAgVVNFUyhPcFB1dEludGVybmFsRmllbGQsIGJh
c2UsIHZhbHVlKQorCisgICAgVVNFUyhPcFlpZWxkLCBnZW5lcmF0b3IsIGFyZ3VtZW50KQorCisg
ICAgY2FzZSBvcF9uZXdfYXJyYXlfd2l0aF9zcHJlYWQ6CisgICAgICAgIGhhbmRsZU5ld0FycmF5
TGlrZShpbnN0cnVjdGlvbi0+YXM8T3BOZXdBcnJheVdpdGhTcHJlYWQ+KCkpOworICAgICAgICBy
ZXR1cm47CisgICAgY2FzZSBvcF9uZXdfYXJyYXk6CisgICAgICAgIGhhbmRsZU5ld0FycmF5TGlr
ZShpbnN0cnVjdGlvbi0+YXM8T3BOZXdBcnJheT4oKSk7CisgICAgICAgIHJldHVybjsKKworICAg
IGNhc2Ugb3Bfc3RyY2F0OiB7CisgICAgICAgIGF1dG8gYnl0ZWNvZGUgPSBpbnN0cnVjdGlvbi0+
YXM8T3BTdHJjYXQ+KCk7CisgICAgICAgIGludCBiYXNlID0gYnl0ZWNvZGUubV9zcmMub2Zmc2V0
KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYnl0ZWNvZGUubV9jb3VudDsgaSsrKQor
ICAgICAgICAgICAgZnVuY3RvcihWaXJ0dWFsUmVnaXN0ZXIgeyBiYXNlIC0gaSB9KTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGNhc2Ugb3BfY29uc3RydWN0OgorICAgICAgICBoYW5k
bGVPcENhbGxMaWtlKGluc3RydWN0aW9uLT5hczxPcENvbnN0cnVjdD4oKSk7CisgICAgICAgIHJl
dHVybjsKKyAgICBjYXNlIG9wX2NhbGxfZXZhbDoKKyAgICAgICAgaGFuZGxlT3BDYWxsTGlrZShp
bnN0cnVjdGlvbi0+YXM8T3BDYWxsRXZhbD4oKSk7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNl
IG9wX2NhbGw6CisgICAgICAgIGhhbmRsZU9wQ2FsbExpa2UoaW5zdHJ1Y3Rpb24tPmFzPE9wQ2Fs
bD4oKSk7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIG9wX3RhaWxfY2FsbDoKKyAgICAgICAg
aGFuZGxlT3BDYWxsTGlrZShpbnN0cnVjdGlvbi0+YXM8T3BUYWlsQ2FsbD4oKSk7CisgICAgICAg
IHJldHVybjsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwordm9pZCBjb21wdXRlRGVmc0ZvckJ5
dGVjb2RlSW5kZXhJbXBsKHVuc2lnbmVkIG51bVZhcnMsIGNvbnN0IEluc3RydWN0aW9uKiBpbnN0
cnVjdGlvbiwgY29uc3QgRnVuY3Rpb248dm9pZChWaXJ0dWFsUmVnaXN0ZXIpPiYgZnVuY3RvcikK
K3sKKyAgICBzd2l0Y2ggKGluc3RydWN0aW9uLT5vcGNvZGVJRCgpKSB7CisgICAgY2FzZSBvcF93
aWRlMTY6CisgICAgY2FzZSBvcF93aWRlMzI6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisKKyAgICAvLyBUaGVzZSBkb24ndCBkZWZpbmUgYW55dGhpbmcuCisgICAgY2Fz
ZSBvcF9wdXRfdG9fc2NvcGU6CisgICAgY2FzZSBvcF9lbmQ6CisgICAgY2FzZSBvcF90aHJvdzoK
KyAgICBjYXNlIG9wX3Rocm93X3N0YXRpY19lcnJvcjoKKyAgICBjYXNlIG9wX2NoZWNrX3RkejoK
KyAgICBjYXNlIG9wX2RlYnVnOgorICAgIGNhc2Ugb3BfcmV0OgorICAgIGNhc2Ugb3Bfam1wOgor
ICAgIGNhc2Ugb3BfanRydWU6CisgICAgY2FzZSBvcF9qZmFsc2U6CisgICAgY2FzZSBvcF9qZXFf
bnVsbDoKKyAgICBjYXNlIG9wX2puZXFfbnVsbDoKKyAgICBjYXNlIG9wX2p1bmRlZmluZWRfb3Jf
bnVsbDoKKyAgICBjYXNlIG9wX2pudW5kZWZpbmVkX29yX251bGw6CisgICAgY2FzZSBvcF9qbmVx
X3B0cjoKKyAgICBjYXNlIG9wX2psZXNzOgorICAgIGNhc2Ugb3Bfamxlc3NlcToKKyAgICBjYXNl
IG9wX2pncmVhdGVyOgorICAgIGNhc2Ugb3BfamdyZWF0ZXJlcToKKyAgICBjYXNlIG9wX2pubGVz
czoKKyAgICBjYXNlIG9wX2pubGVzc2VxOgorICAgIGNhc2Ugb3Bfam5ncmVhdGVyOgorICAgIGNh
c2Ugb3Bfam5ncmVhdGVyZXE6CisgICAgY2FzZSBvcF9qZXE6CisgICAgY2FzZSBvcF9qbmVxOgor
ICAgIGNhc2Ugb3BfanN0cmljdGVxOgorICAgIGNhc2Ugb3Bfam5zdHJpY3RlcToKKyAgICBjYXNl
IG9wX2piZWxvdzoKKyAgICBjYXNlIG9wX2piZWxvd2VxOgorICAgIGNhc2Ugb3BfbG9vcF9oaW50
OgorICAgIGNhc2Ugb3Bfc3dpdGNoX2ltbToKKyAgICBjYXNlIG9wX3N3aXRjaF9jaGFyOgorICAg
IGNhc2Ugb3Bfc3dpdGNoX3N0cmluZzoKKyAgICBjYXNlIG9wX3B1dF9ieV9pZDoKKyAgICBjYXNl
IG9wX3B1dF9ieV9pZF93aXRoX3RoaXM6CisgICAgY2FzZSBvcF9wdXRfYnlfdmFsX3dpdGhfdGhp
czoKKyAgICBjYXNlIG9wX3B1dF9nZXR0ZXJfYnlfaWQ6CisgICAgY2FzZSBvcF9wdXRfc2V0dGVy
X2J5X2lkOgorICAgIGNhc2Ugb3BfcHV0X2dldHRlcl9zZXR0ZXJfYnlfaWQ6CisgICAgY2FzZSBv
cF9wdXRfZ2V0dGVyX2J5X3ZhbDoKKyAgICBjYXNlIG9wX3B1dF9zZXR0ZXJfYnlfdmFsOgorICAg
IGNhc2Ugb3BfcHV0X2J5X3ZhbDoKKyAgICBjYXNlIG9wX3B1dF9ieV92YWxfZGlyZWN0OgorICAg
IGNhc2Ugb3BfcHV0X2ludGVybmFsX2ZpZWxkOgorICAgIGNhc2Ugb3BfZGVmaW5lX2RhdGFfcHJv
cGVydHk6CisgICAgY2FzZSBvcF9kZWZpbmVfYWNjZXNzb3JfcHJvcGVydHk6CisgICAgY2FzZSBv
cF9wcm9maWxlX3R5cGU6CisgICAgY2FzZSBvcF9wcm9maWxlX2NvbnRyb2xfZmxvdzoKKyAgICBj
YXNlIG9wX3B1dF90b19hcmd1bWVudHM6CisgICAgY2FzZSBvcF9zZXRfZnVuY3Rpb25fbmFtZToK
KyAgICBjYXNlIG9wX2NoZWNrX3RyYXBzOgorICAgIGNhc2Ugb3BfbG9nX3NoYWRvd19jaGlja2Vu
X3Byb2xvZ3VlOgorICAgIGNhc2Ugb3BfbG9nX3NoYWRvd19jaGlja2VuX3RhaWw6CisgICAgY2Fz
ZSBvcF95aWVsZDoKKyAgICBjYXNlIG9wX25vcDoKKyAgICBjYXNlIG9wX3VucmVhY2hhYmxlOgor
ICAgIGNhc2Ugb3Bfc3VwZXJfc2FtcGxlcl9iZWdpbjoKKyAgICBjYXNlIG9wX3N1cGVyX3NhbXBs
ZXJfZW5kOgorI2RlZmluZSBMTElOVF9IRUxQRVJfT1BDT0RFUyhvcGNvZGUsIGxlbmd0aCkgY2Fz
ZSBvcGNvZGU6CisgICAgICAgIEZPUl9FQUNIX0xMSU5UX09QQ09ERV9FWFRFTlNJT04oTExJTlRf
SEVMUEVSX09QQ09ERVMpOworI3VuZGVmIExMSU5UX0hFTFBFUl9PUENPREVTCisgICAgICAgIHJl
dHVybjsKKyAgICAvLyBUaGVzZSBhbGwgaGF2ZSBhIHNpbmdsZSBkZXN0aW5hdGlvbiBmb3IgdGhl
IGZpcnN0IGFyZ3VtZW50LgorICAgIERFRlMoT3BBcmd1bWVudENvdW50LCBkc3QpCisgICAgREVG
UyhPcFRvSW5kZXhTdHJpbmcsIGRzdCkKKyAgICBERUZTKE9wR2V0RW51bWVyYWJsZUxlbmd0aCwg
ZHN0KQorICAgIERFRlMoT3BIYXNJbmRleGVkUHJvcGVydHksIGRzdCkKKyAgICBERUZTKE9wSGFz
U3RydWN0dXJlUHJvcGVydHksIGRzdCkKKyAgICBERUZTKE9wSGFzR2VuZXJpY1Byb3BlcnR5LCBk
c3QpCisgICAgREVGUyhPcEdldERpcmVjdFBuYW1lLCBkc3QpCisgICAgREVGUyhPcEdldFByb3Bl
cnR5RW51bWVyYXRvciwgZHN0KQorICAgIERFRlMoT3BFbnVtZXJhdG9yU3RydWN0dXJlUG5hbWUs
IGRzdCkKKyAgICBERUZTKE9wRW51bWVyYXRvckdlbmVyaWNQbmFtZSwgZHN0KQorICAgIERFRlMo
T3BHZXRQYXJlbnRTY29wZSwgZHN0KQorICAgIERFRlMoT3BQdXNoV2l0aFNjb3BlLCBkc3QpCisg
ICAgREVGUyhPcENyZWF0ZUxleGljYWxFbnZpcm9ubWVudCwgZHN0KQorICAgIERFRlMoT3BDcmVh
dGVHZW5lcmF0b3JGcmFtZUVudmlyb25tZW50LCBkc3QpCisgICAgREVGUyhPcFJlc29sdmVTY29w
ZSwgZHN0KQorICAgIERFRlMoT3BSZXNvbHZlU2NvcGVGb3JIb2lzdGluZ0Z1bmNEZWNsSW5FdmFs
LCBkc3QpCisgICAgREVGUyhPcFN0cmNhdCwgZHN0KQorICAgIERFRlMoT3BUb1ByaW1pdGl2ZSwg
ZHN0KQorICAgIERFRlMoT3BDcmVhdGVUaGlzLCBkc3QpCisgICAgREVGUyhPcENyZWF0ZVByb21p
c2UsIGRzdCkKKyAgICBERUZTKE9wQ3JlYXRlR2VuZXJhdG9yLCBkc3QpCisgICAgREVGUyhPcENy
ZWF0ZUFzeW5jR2VuZXJhdG9yLCBkc3QpCisgICAgREVGUyhPcE5ld0FycmF5LCBkc3QpCisgICAg
REVGUyhPcE5ld0FycmF5V2l0aFNwcmVhZCwgZHN0KQorICAgIERFRlMoT3BTcHJlYWQsIGRzdCkK
KyAgICBERUZTKE9wTmV3QXJyYXlCdWZmZXIsIGRzdCkKKyAgICBERUZTKE9wTmV3QXJyYXlXaXRo
U2l6ZSwgZHN0KQorICAgIERFRlMoT3BOZXdSZWdleHAsIGRzdCkKKyAgICBERUZTKE9wTmV3RnVu
YywgZHN0KQorICAgIERFRlMoT3BOZXdGdW5jRXhwLCBkc3QpCisgICAgREVGUyhPcE5ld0dlbmVy
YXRvckZ1bmMsIGRzdCkKKyAgICBERUZTKE9wTmV3R2VuZXJhdG9yRnVuY0V4cCwgZHN0KQorICAg
IERFRlMoT3BOZXdBc3luY0dlbmVyYXRvckZ1bmMsIGRzdCkKKyAgICBERUZTKE9wTmV3QXN5bmNH
ZW5lcmF0b3JGdW5jRXhwLCBkc3QpCisgICAgREVGUyhPcE5ld0FzeW5jRnVuYywgZHN0KQorICAg
IERFRlMoT3BOZXdBc3luY0Z1bmNFeHAsIGRzdCkKKyAgICBERUZTKE9wQ2FsbFZhcmFyZ3MsIGRz
dCkKKyAgICBERUZTKE9wVGFpbENhbGxWYXJhcmdzLCBkc3QpCisgICAgREVGUyhPcFRhaWxDYWxs
Rm9yd2FyZEFyZ3VtZW50cywgZHN0KQorICAgIERFRlMoT3BDb25zdHJ1Y3RWYXJhcmdzLCBkc3Qp
CisgICAgREVGUyhPcEdldEZyb21TY29wZSwgZHN0KQorICAgIERFRlMoT3BDYWxsLCBkc3QpCisg
ICAgREVGUyhPcFRhaWxDYWxsLCBkc3QpCisgICAgREVGUyhPcENhbGxFdmFsLCBkc3QpCisgICAg
REVGUyhPcENvbnN0cnVjdCwgZHN0KQorICAgIERFRlMoT3BUcnlHZXRCeUlkLCBkc3QpCisgICAg
REVGUyhPcEdldEJ5SWQsIGRzdCkKKyAgICBERUZTKE9wR2V0QnlJZERpcmVjdCwgZHN0KQorICAg
IERFRlMoT3BHZXRCeUlkV2l0aFRoaXMsIGRzdCkKKyAgICBERUZTKE9wR2V0QnlWYWxXaXRoVGhp
cywgZHN0KQorICAgIERFRlMoT3BPdmVycmlkZXNIYXNJbnN0YW5jZSwgZHN0KQorICAgIERFRlMo
T3BJbnN0YW5jZW9mLCBkc3QpCisgICAgREVGUyhPcEluc3RhbmNlb2ZDdXN0b20sIGRzdCkKKyAg
ICBERUZTKE9wR2V0QnlWYWwsIGRzdCkKKyAgICBERUZTKE9wVHlwZW9mLCBkc3QpCisgICAgREVG
UyhPcElkZW50aXR5V2l0aFByb2ZpbGUsIHNyY0RzdCkKKyAgICBERUZTKE9wSXNFbXB0eSwgZHN0
KQorICAgIERFRlMoT3BJc1VuZGVmaW5lZCwgZHN0KQorICAgIFVTRVMoT3BJc1VuZGVmaW5lZE9y
TnVsbCwgZHN0KQorICAgIERFRlMoT3BJc0Jvb2xlYW4sIGRzdCkKKyAgICBERUZTKE9wSXNOdW1i
ZXIsIGRzdCkKKyAgICBERUZTKE9wSXNPYmplY3QsIGRzdCkKKyAgICBERUZTKE9wSXNPYmplY3RP
ck51bGwsIGRzdCkKKyAgICBERUZTKE9wSXNDZWxsV2l0aFR5cGUsIGRzdCkKKyAgICBERUZTKE9w
SXNGdW5jdGlvbiwgZHN0KQorICAgIERFRlMoT3BJbkJ5SWQsIGRzdCkKKyAgICBERUZTKE9wSW5C
eVZhbCwgZHN0KQorICAgIERFRlMoT3BUb051bWJlciwgZHN0KQorICAgIERFRlMoT3BUb051bWVy
aWMsIGRzdCkKKyAgICBERUZTKE9wVG9TdHJpbmcsIGRzdCkKKyAgICBERUZTKE9wVG9PYmplY3Qs
IGRzdCkKKyAgICBERUZTKE9wTmVnYXRlLCBkc3QpCisgICAgREVGUyhPcEFkZCwgZHN0KQorICAg
IERFRlMoT3BNdWwsIGRzdCkKKyAgICBERUZTKE9wRGl2LCBkc3QpCisgICAgREVGUyhPcE1vZCwg
ZHN0KQorICAgIERFRlMoT3BTdWIsIGRzdCkKKyAgICBERUZTKE9wUG93LCBkc3QpCisgICAgREVG
UyhPcExzaGlmdCwgZHN0KQorICAgIERFRlMoT3BSc2hpZnQsIGRzdCkKKyAgICBERUZTKE9wVXJz
aGlmdCwgZHN0KQorICAgIERFRlMoT3BCaXRhbmQsIGRzdCkKKyAgICBERUZTKE9wQml0eG9yLCBk
c3QpCisgICAgREVGUyhPcEJpdG9yLCBkc3QpCisgICAgREVGUyhPcEJpdG5vdCwgZHN0KQorICAg
IERFRlMoT3BJbmMsIHNyY0RzdCkKKyAgICBERUZTKE9wRGVjLCBzcmNEc3QpCisgICAgREVGUyhP
cEVxLCBkc3QpCisgICAgREVGUyhPcE5lcSwgZHN0KQorICAgIERFRlMoT3BTdHJpY3RlcSwgZHN0
KQorICAgIERFRlMoT3BOc3RyaWN0ZXEsIGRzdCkKKyAgICBERUZTKE9wTGVzcywgZHN0KQorICAg
IERFRlMoT3BMZXNzZXEsIGRzdCkKKyAgICBERUZTKE9wR3JlYXRlciwgZHN0KQorICAgIERFRlMo
T3BHcmVhdGVyZXEsIGRzdCkKKyAgICBERUZTKE9wQmVsb3csIGRzdCkKKyAgICBERUZTKE9wQmVs
b3dlcSwgZHN0KQorICAgIERFRlMoT3BOZXFOdWxsLCBkc3QpCisgICAgREVGUyhPcEVxTnVsbCwg
ZHN0KQorICAgIERFRlMoT3BOb3QsIGRzdCkKKyAgICBERUZTKE9wTW92LCBkc3QpCisgICAgREVG
UyhPcE5ld09iamVjdCwgZHN0KQorICAgIERFRlMoT3BOZXdQcm9taXNlLCBkc3QpCisgICAgREVG
UyhPcE5ld0dlbmVyYXRvciwgZHN0KQorICAgIERFRlMoT3BUb1RoaXMsIHNyY0RzdCkKKyAgICBE
RUZTKE9wR2V0U2NvcGUsIGRzdCkKKyAgICBERUZTKE9wQ3JlYXRlRGlyZWN0QXJndW1lbnRzLCBk
c3QpCisgICAgREVGUyhPcENyZWF0ZVNjb3BlZEFyZ3VtZW50cywgZHN0KQorICAgIERFRlMoT3BD
cmVhdGVDbG9uZWRBcmd1bWVudHMsIGRzdCkKKyAgICBERUZTKE9wRGVsQnlJZCwgZHN0KQorICAg
IERFRlMoT3BEZWxCeVZhbCwgZHN0KQorICAgIERFRlMoT3BVbnNpZ25lZCwgZHN0KQorICAgIERF
RlMoT3BHZXRGcm9tQXJndW1lbnRzLCBkc3QpCisgICAgREVGUyhPcEdldEFyZ3VtZW50LCBkc3Qp
CisgICAgREVGUyhPcENyZWF0ZVJlc3QsIGRzdCkKKyAgICBERUZTKE9wR2V0UmVzdExlbmd0aCwg
ZHN0KQorICAgIERFRlMoT3BHZXRJbnRlcm5hbEZpZWxkLCBkc3QpCisKKyAgICBERUZTKE9wQ2F0
Y2gsIGV4Y2VwdGlvbiwgdGhyb3duVmFsdWUpCisKKyAgICBjYXNlIG9wX2VudGVyOiB7CisgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IG51bVZhcnM7IGktLTspCisgICAgICAgICAgICBmdW5jdG9y
KHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGkpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICB9Cit9CisKKyN1bmRlZiBDQUxMX0ZVTkNUT1IKKyN1bmRlZiBVU0VTX09SX0RFRlMKKyN1bmRl
ZiBVU0VTCisjdW5kZWYgREVGUworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCmluZGV4IDI4ZmRiMzhhODY4ZWQ0
MDllYjE4NzEzMjg5NzQ1YjFkNTg0MGUxZDEuLmIzYjAwYTk5MjM3MzNkMzFhYzg0ZTVkODgyZGE5
MDNlOWJlZGM3ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9C
eXRlY29kZVVzZURlZi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRl
Y29kZVVzZURlZi5oCkBAIC0zMiw0NzAgKzMyLDIzIEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi0j
ZGVmaW5lIENBTExfRlVOQ1RPUihfX2FyZykgXAotICAgIGZ1bmN0b3IoX19ieXRlY29kZS5tXyMj
X19hcmcpOwordm9pZCBjb21wdXRlVXNlc0ZvckJ5dGVjb2RlSW5kZXhJbXBsKFZpcnR1YWxSZWdp
c3RlciwgY29uc3QgSW5zdHJ1Y3Rpb24qLCBjb25zdCBGdW5jdGlvbjx2b2lkKFZpcnR1YWxSZWdp
c3Rlcik+Jik7Cit2b2lkIGNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVJbmRleEltcGwodW5zaWduZWQs
IGNvbnN0IEluc3RydWN0aW9uKiwgY29uc3QgRnVuY3Rpb248dm9pZChWaXJ0dWFsUmVnaXN0ZXIp
PiYpOwogCi0jZGVmaW5lIFVTRVNfT1JfREVGUyhfX29wY29kZSwgLi4uKSBcCi0gICAgY2FzZSBf
X29wY29kZTo6b3Bjb2RlSUQ6IHsgXAotICAgICAgICBhdXRvIF9fYnl0ZWNvZGUgPSBpbnN0cnVj
dGlvbi0+YXM8X19vcGNvZGU+KCk7IFwKLSAgICAgICAgV1RGX0xBWllfRk9SX0VBQ0hfVEVSTShD
QUxMX0ZVTkNUT1IsIF9fVkFfQVJHU19fKSBcCi0gICAgICAgIHJldHVybjsgXAotICAgIH0KLQot
I2RlZmluZSBVU0VTIFVTRVNfT1JfREVGUwotI2RlZmluZSBERUZTIFVTRVNfT1JfREVGUwotCi10
ZW1wbGF0ZTx0eXBlbmFtZSBCbG9jaywgdHlwZW5hbWUgRnVuY3Rvcj4KLXZvaWQgY29tcHV0ZVVz
ZXNGb3JCeXRlY29kZUluZGV4KEJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0IEluc3RydWN0aW9uKiBp
bnN0cnVjdGlvbiwgY29uc3QgRnVuY3RvciYgZnVuY3RvcikKK3RlbXBsYXRlPHR5cGVuYW1lIEJs
b2NrPgordm9pZCBjb21wdXRlVXNlc0ZvckJ5dGVjb2RlSW5kZXgoQmxvY2sqIGNvZGVCbG9jaywg
Y29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCBjb25zdCBGdW5jdGlvbjx2b2lkKFZpcnR1
YWxSZWdpc3Rlcik+JiBmdW5jdG9yKQogewogICAgIE9wY29kZUlEIG9wY29kZUlEID0gaW5zdHJ1
Y3Rpb24tPm9wY29kZUlEKCk7CiAgICAgaWYgKG9wY29kZUlEICE9IG9wX2VudGVyICYmIChjb2Rl
QmxvY2stPndhc0NvbXBpbGVkV2l0aERlYnVnZ2luZ09wY29kZXMoKSB8fCBjb2RlQmxvY2stPnVz
ZXNFdmFsKCkpICYmIGNvZGVCbG9jay0+c2NvcGVSZWdpc3RlcigpLmlzVmFsaWQoKSkKICAgICAg
ICAgZnVuY3Rvcihjb2RlQmxvY2stPnNjb3BlUmVnaXN0ZXIoKSk7CiAKLSAgICBhdXRvIGhhbmRs
ZU5ld0FycmF5TGlrZSA9IFsmXShhdXRvIG9wKSB7Ci0gICAgICAgIGludCBiYXNlID0gb3AubV9h
cmd2Lm9mZnNldCgpOwotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0YXRpY19jYXN0PGlu
dD4ob3AubV9hcmdjKTsgaSsrKQotICAgICAgICAgICAgZnVuY3RvcihWaXJ0dWFsUmVnaXN0ZXIg
eyBiYXNlIC0gaSB9KTsKLSAgICB9OwotCi0gICAgYXV0byBoYW5kbGVPcENhbGxMaWtlID0gWyZd
KGF1dG8gb3ApIHsKLSAgICAgICAgZnVuY3RvcihvcC5tX2NhbGxlZSk7Ci0gICAgICAgIGludCBs
YXN0QXJnID0gLXN0YXRpY19jYXN0PGludD4ob3AubV9hcmd2KSArIENhbGxGcmFtZTo6dGhpc0Fy
Z3VtZW50T2Zmc2V0KCk7Ci0gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3RhdGljX2Nhc3Q8
aW50PihvcC5tX2FyZ2MpOyBpKyspCi0gICAgICAgICAgICBmdW5jdG9yKFZpcnR1YWxSZWdpc3Rl
ciB7IGxhc3RBcmcgKyBpIH0pOwotICAgICAgICBpZiAob3Bjb2RlSUQgPT0gb3BfY2FsbF9ldmFs
KQotICAgICAgICAgICAgZnVuY3Rvcihjb2RlQmxvY2stPnNjb3BlUmVnaXN0ZXIoKSk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9OwotCi0gICAgc3dpdGNoIChvcGNvZGVJRCkgewotICAgIGNhc2Ug
b3Bfd2lkZTE2OgotICAgIGNhc2Ugb3Bfd2lkZTMyOgotICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotCi0gICAgLy8gTm8gdXNlcy4KLSAgICBjYXNlIG9wX25ld19yZWdleHA6
Ci0gICAgY2FzZSBvcF9kZWJ1ZzoKLSAgICBjYXNlIG9wX2puZXFfcHRyOgotICAgIGNhc2Ugb3Bf
bG9vcF9oaW50OgotICAgIGNhc2Ugb3Bfam1wOgotICAgIGNhc2Ugb3BfbmV3X29iamVjdDoKLSAg
ICBjYXNlIG9wX25ld19wcm9taXNlOgotICAgIGNhc2Ugb3BfbmV3X2dlbmVyYXRvcjoKLSAgICBj
YXNlIG9wX2VudGVyOgotICAgIGNhc2Ugb3BfYXJndW1lbnRfY291bnQ6Ci0gICAgY2FzZSBvcF9j
YXRjaDoKLSAgICBjYXNlIG9wX3Byb2ZpbGVfY29udHJvbF9mbG93OgotICAgIGNhc2Ugb3BfY3Jl
YXRlX2RpcmVjdF9hcmd1bWVudHM6Ci0gICAgY2FzZSBvcF9jcmVhdGVfY2xvbmVkX2FyZ3VtZW50
czoKLSAgICBjYXNlIG9wX2dldF9yZXN0X2xlbmd0aDoKLSAgICBjYXNlIG9wX2NoZWNrX3RyYXBz
OgotICAgIGNhc2Ugb3BfZ2V0X2FyZ3VtZW50OgotICAgIGNhc2Ugb3Bfbm9wOgotICAgIGNhc2Ug
b3BfdW5yZWFjaGFibGU6Ci0gICAgY2FzZSBvcF9zdXBlcl9zYW1wbGVyX2JlZ2luOgotICAgIGNh
c2Ugb3Bfc3VwZXJfc2FtcGxlcl9lbmQ6Ci0gICAgICAgIHJldHVybjsKLQotICAgIFVTRVMoT3BH
ZXRTY29wZSwgZHN0KQotICAgIFVTRVMoT3BUb1RoaXMsIHNyY0RzdCkKLSAgICBVU0VTKE9wQ2hl
Y2tUZHosIHRhcmdldFZpcnR1YWxSZWdpc3RlcikKLSAgICBVU0VTKE9wSWRlbnRpdHlXaXRoUHJv
ZmlsZSwgc3JjRHN0KQotICAgIFVTRVMoT3BQcm9maWxlVHlwZSwgdGFyZ2V0VmlydHVhbFJlZ2lz
dGVyKTsKLSAgICBVU0VTKE9wVGhyb3csIHZhbHVlKQotICAgIFVTRVMoT3BUaHJvd1N0YXRpY0Vy
cm9yLCBtZXNzYWdlKQotICAgIFVTRVMoT3BFbmQsIHZhbHVlKQotICAgIFVTRVMoT3BSZXQsIHZh
bHVlKQotICAgIFVTRVMoT3BKdHJ1ZSwgY29uZGl0aW9uKQotICAgIFVTRVMoT3BKZmFsc2UsIGNv
bmRpdGlvbikKLSAgICBVU0VTKE9wSmVxTnVsbCwgdmFsdWUpCi0gICAgVVNFUyhPcEpuZXFOdWxs
LCB2YWx1ZSkKLSAgICBVU0VTKE9wSnVuZGVmaW5lZE9yTnVsbCwgdmFsdWUpCi0gICAgVVNFUyhP
cEpudW5kZWZpbmVkT3JOdWxsLCB2YWx1ZSkKLSAgICBVU0VTKE9wRGVjLCBzcmNEc3QpCi0gICAg
VVNFUyhPcEluYywgc3JjRHN0KQotICAgIFVTRVMoT3BMb2dTaGFkb3dDaGlja2VuUHJvbG9ndWUs
IHNjb3BlKQotCi0gICAgVVNFUyhPcEpsZXNzLCBsaHMsIHJocykKLSAgICBVU0VTKE9wSmxlc3Nl
cSwgbGhzLCByaHMpCi0gICAgVVNFUyhPcEpncmVhdGVyLCBsaHMsIHJocykKLSAgICBVU0VTKE9w
SmdyZWF0ZXJlcSwgbGhzLCByaHMpCi0gICAgVVNFUyhPcEpubGVzcywgbGhzLCByaHMpCi0gICAg
VVNFUyhPcEpubGVzc2VxLCBsaHMsIHJocykKLSAgICBVU0VTKE9wSm5ncmVhdGVyLCBsaHMsIHJo
cykKLSAgICBVU0VTKE9wSm5ncmVhdGVyZXEsIGxocywgcmhzKQotICAgIFVTRVMoT3BKZXEsIGxo
cywgcmhzKQotICAgIFVTRVMoT3BKbmVxLCBsaHMsIHJocykKLSAgICBVU0VTKE9wSnN0cmljdGVx
LCBsaHMsIHJocykKLSAgICBVU0VTKE9wSm5zdHJpY3RlcSwgbGhzLCByaHMpCi0gICAgVVNFUyhP
cEpiZWxvdywgbGhzLCByaHMpCi0gICAgVVNFUyhPcEpiZWxvd2VxLCBsaHMsIHJocykKLSAgICBV
U0VTKE9wU2V0RnVuY3Rpb25OYW1lLCBmdW5jdGlvbiwgbmFtZSkKLSAgICBVU0VTKE9wTG9nU2hh
ZG93Q2hpY2tlblRhaWwsIHRoaXNWYWx1ZSwgc2NvcGUpCi0KLSAgICBVU0VTKE9wUHV0QnlWYWws
IGJhc2UsIHByb3BlcnR5LCB2YWx1ZSkKLSAgICBVU0VTKE9wUHV0QnlWYWxEaXJlY3QsIGJhc2Us
IHByb3BlcnR5LCB2YWx1ZSkKLQotICAgIFVTRVMoT3BQdXRCeUlkLCBiYXNlLCB2YWx1ZSkKLSAg
ICBVU0VTKE9wUHV0VG9TY29wZSwgc2NvcGUsIHZhbHVlKQotICAgIFVTRVMoT3BQdXRUb0FyZ3Vt
ZW50cywgYXJndW1lbnRzLCB2YWx1ZSkKLQotICAgIFVTRVMoT3BQdXRCeUlkV2l0aFRoaXMsIGJh
c2UsIHRoaXNWYWx1ZSwgdmFsdWUpCi0KLSAgICBVU0VTKE9wUHV0QnlWYWxXaXRoVGhpcywgYmFz
ZSwgdGhpc1ZhbHVlLCBwcm9wZXJ0eSwgdmFsdWUpCi0KLSAgICBVU0VTKE9wUHV0R2V0dGVyQnlJ
ZCwgYmFzZSwgYWNjZXNzb3IpCi0gICAgVVNFUyhPcFB1dFNldHRlckJ5SWQsIGJhc2UsIGFjY2Vz
c29yKQotCi0gICAgVVNFUyhPcFB1dEdldHRlclNldHRlckJ5SWQsIGJhc2UsIGdldHRlciwgc2V0
dGVyKQotCi0gICAgVVNFUyhPcFB1dEdldHRlckJ5VmFsLCBiYXNlLCBwcm9wZXJ0eSwgYWNjZXNz
b3IpCi0gICAgVVNFUyhPcFB1dFNldHRlckJ5VmFsLCBiYXNlLCBwcm9wZXJ0eSwgYWNjZXNzb3Ip
Ci0KLSAgICBVU0VTKE9wRGVmaW5lRGF0YVByb3BlcnR5LCBiYXNlLCBwcm9wZXJ0eSwgdmFsdWUs
IGF0dHJpYnV0ZXMpCi0KLSAgICBVU0VTKE9wRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eSwgYmFzZSwg
cHJvcGVydHksIGdldHRlciwgc2V0dGVyLCBhdHRyaWJ1dGVzKQotCi0gICAgVVNFUyhPcFNwcmVh
ZCwgYXJndW1lbnQpCi0gICAgVVNFUyhPcEdldFByb3BlcnR5RW51bWVyYXRvciwgYmFzZSkKLSAg
ICBVU0VTKE9wR2V0RW51bWVyYWJsZUxlbmd0aCwgYmFzZSkKLSAgICBVU0VTKE9wTmV3RnVuY0V4
cCwgc2NvcGUpCi0gICAgVVNFUyhPcE5ld0dlbmVyYXRvckZ1bmNFeHAsIHNjb3BlKQotICAgIFVT
RVMoT3BOZXdBc3luY0Z1bmNFeHAsIHNjb3BlKQotICAgIFVTRVMoT3BUb0luZGV4U3RyaW5nLCBp
bmRleCkKLSAgICBVU0VTKE9wQ3JlYXRlTGV4aWNhbEVudmlyb25tZW50LCBzY29wZSwgc3ltYm9s
VGFibGUsIGluaXRpYWxWYWx1ZSkKLSAgICBVU0VTKE9wQ3JlYXRlR2VuZXJhdG9yRnJhbWVFbnZp
cm9ubWVudCwgc2NvcGUsIHN5bWJvbFRhYmxlLCBpbml0aWFsVmFsdWUpCi0gICAgVVNFUyhPcFJl
c29sdmVTY29wZSwgc2NvcGUpCi0gICAgVVNFUyhPcFJlc29sdmVTY29wZUZvckhvaXN0aW5nRnVu
Y0RlY2xJbkV2YWwsIHNjb3BlKQotICAgIFVTRVMoT3BHZXRGcm9tU2NvcGUsIHNjb3BlKQotICAg
IFVTRVMoT3BUb1ByaW1pdGl2ZSwgc3JjKQotICAgIFVTRVMoT3BUcnlHZXRCeUlkLCBiYXNlKQot
ICAgIFVTRVMoT3BHZXRCeUlkLCBiYXNlKQotICAgIFVTRVMoT3BHZXRCeUlkRGlyZWN0LCBiYXNl
KQotICAgIFVTRVMoT3BJbkJ5SWQsIGJhc2UpCi0gICAgVVNFUyhPcFR5cGVvZiwgdmFsdWUpCi0g
ICAgVVNFUyhPcElzRW1wdHksIG9wZXJhbmQpCi0gICAgVVNFUyhPcElzVW5kZWZpbmVkLCBvcGVy
YW5kKQotICAgIFVTRVMoT3BJc1VuZGVmaW5lZE9yTnVsbCwgb3BlcmFuZCkKLSAgICBVU0VTKE9w
SXNCb29sZWFuLCBvcGVyYW5kKQotICAgIFVTRVMoT3BJc051bWJlciwgb3BlcmFuZCkKLSAgICBV
U0VTKE9wSXNPYmplY3QsIG9wZXJhbmQpCi0gICAgVVNFUyhPcElzT2JqZWN0T3JOdWxsLCBvcGVy
YW5kKQotICAgIFVTRVMoT3BJc0NlbGxXaXRoVHlwZSwgb3BlcmFuZCkKLSAgICBVU0VTKE9wSXNG
dW5jdGlvbiwgb3BlcmFuZCkKLSAgICBVU0VTKE9wVG9OdW1iZXIsIG9wZXJhbmQpCi0gICAgVVNF
UyhPcFRvTnVtZXJpYywgb3BlcmFuZCkKLSAgICBVU0VTKE9wVG9TdHJpbmcsIG9wZXJhbmQpCi0g
ICAgVVNFUyhPcFRvT2JqZWN0LCBvcGVyYW5kKQotICAgIFVTRVMoT3BOZWdhdGUsIG9wZXJhbmQp
Ci0gICAgVVNFUyhPcEJpdG5vdCwgb3BlcmFuZCkKLSAgICBVU0VTKE9wRXFOdWxsLCBvcGVyYW5k
KQotICAgIFVTRVMoT3BOZXFOdWxsLCBvcGVyYW5kKQotICAgIFVTRVMoT3BOb3QsIG9wZXJhbmQp
Ci0gICAgVVNFUyhPcFVuc2lnbmVkLCBvcGVyYW5kKQotICAgIFVTRVMoT3BNb3YsIHNyYykKLSAg
ICBVU0VTKE9wTmV3QXJyYXlXaXRoU2l6ZSwgbGVuZ3RoKQotICAgIFVTRVMoT3BDcmVhdGVUaGlz
LCBjYWxsZWUpCi0gICAgVVNFUyhPcENyZWF0ZVByb21pc2UsIGNhbGxlZSkKLSAgICBVU0VTKE9w
Q3JlYXRlR2VuZXJhdG9yLCBjYWxsZWUpCi0gICAgVVNFUyhPcENyZWF0ZUFzeW5jR2VuZXJhdG9y
LCBjYWxsZWUpCi0gICAgVVNFUyhPcERlbEJ5SWQsIGJhc2UpCi0gICAgVVNFUyhPcE5ld0Z1bmMs
IHNjb3BlKQotICAgIFVTRVMoT3BOZXdBc3luY0dlbmVyYXRvckZ1bmMsIHNjb3BlKQotICAgIFVT
RVMoT3BOZXdBc3luY0dlbmVyYXRvckZ1bmNFeHAsIHNjb3BlKQotICAgIFVTRVMoT3BOZXdHZW5l
cmF0b3JGdW5jLCBzY29wZSkKLSAgICBVU0VTKE9wTmV3QXN5bmNGdW5jLCBzY29wZSkKLSAgICBV
U0VTKE9wR2V0UGFyZW50U2NvcGUsIHNjb3BlKQotICAgIFVTRVMoT3BDcmVhdGVTY29wZWRBcmd1
bWVudHMsIHNjb3BlKQotICAgIFVTRVMoT3BDcmVhdGVSZXN0LCBhcnJheVNpemUpCi0gICAgVVNF
UyhPcEdldEZyb21Bcmd1bWVudHMsIGFyZ3VtZW50cykKLSAgICBVU0VTKE9wTmV3QXJyYXlCdWZm
ZXIsIGltbXV0YWJsZUJ1dHRlcmZseSkKLQotICAgIFVTRVMoT3BIYXNHZW5lcmljUHJvcGVydHks
IGJhc2UsIHByb3BlcnR5KQotICAgIFVTRVMoT3BIYXNJbmRleGVkUHJvcGVydHksIGJhc2UsIHBy
b3BlcnR5KQotICAgIFVTRVMoT3BFbnVtZXJhdG9yU3RydWN0dXJlUG5hbWUsIGVudW1lcmF0b3Is
IGluZGV4KQotICAgIFVTRVMoT3BFbnVtZXJhdG9yR2VuZXJpY1BuYW1lLCBlbnVtZXJhdG9yLCBp
bmRleCkKLSAgICBVU0VTKE9wR2V0QnlWYWwsIGJhc2UsIHByb3BlcnR5KQotICAgIFVTRVMoT3BJ
bkJ5VmFsLCBiYXNlLCBwcm9wZXJ0eSkKLSAgICBVU0VTKE9wT3ZlcnJpZGVzSGFzSW5zdGFuY2Us
IGNvbnN0cnVjdG9yLCBoYXNJbnN0YW5jZVZhbHVlKQotICAgIFVTRVMoT3BJbnN0YW5jZW9mLCB2
YWx1ZSwgcHJvdG90eXBlKQotICAgIFVTRVMoT3BBZGQsIGxocywgcmhzKQotICAgIFVTRVMoT3BN
dWwsIGxocywgcmhzKQotICAgIFVTRVMoT3BEaXYsIGxocywgcmhzKQotICAgIFVTRVMoT3BNb2Qs
IGxocywgcmhzKQotICAgIFVTRVMoT3BTdWIsIGxocywgcmhzKQotICAgIFVTRVMoT3BQb3csIGxo
cywgcmhzKQotICAgIFVTRVMoT3BMc2hpZnQsIGxocywgcmhzKQotICAgIFVTRVMoT3BSc2hpZnQs
IGxocywgcmhzKQotICAgIFVTRVMoT3BVcnNoaWZ0LCBsaHMsIHJocykKLSAgICBVU0VTKE9wQml0
YW5kLCBsaHMsIHJocykKLSAgICBVU0VTKE9wQml0eG9yLCBsaHMsIHJocykKLSAgICBVU0VTKE9w
Qml0b3IsIGxocywgcmhzKQotICAgIFVTRVMoT3BMZXNzLCBsaHMsIHJocykKLSAgICBVU0VTKE9w
TGVzc2VxLCBsaHMsIHJocykKLSAgICBVU0VTKE9wR3JlYXRlciwgbGhzLCByaHMpCi0gICAgVVNF
UyhPcEdyZWF0ZXJlcSwgbGhzLCByaHMpCi0gICAgVVNFUyhPcEJlbG93LCBsaHMsIHJocykKLSAg
ICBVU0VTKE9wQmVsb3dlcSwgbGhzLCByaHMpCi0gICAgVVNFUyhPcE5zdHJpY3RlcSwgbGhzLCBy
aHMpCi0gICAgVVNFUyhPcFN0cmljdGVxLCBsaHMsIHJocykKLSAgICBVU0VTKE9wTmVxLCBsaHMs
IHJocykKLSAgICBVU0VTKE9wRXEsIGxocywgcmhzKQotICAgIFVTRVMoT3BQdXNoV2l0aFNjb3Bl
LCBjdXJyZW50U2NvcGUsIG5ld1Njb3BlKQotICAgIFVTRVMoT3BHZXRCeUlkV2l0aFRoaXMsIGJh
c2UsIHRoaXNWYWx1ZSkKLSAgICBVU0VTKE9wRGVsQnlWYWwsIGJhc2UsIHByb3BlcnR5KQotICAg
IFVTRVMoT3BUYWlsQ2FsbEZvcndhcmRBcmd1bWVudHMsIGNhbGxlZSwgdGhpc1ZhbHVlKQotCi0g
ICAgVVNFUyhPcEdldEJ5VmFsV2l0aFRoaXMsIGJhc2UsIHRoaXNWYWx1ZSwgcHJvcGVydHkpCi0g
ICAgVVNFUyhPcEluc3RhbmNlb2ZDdXN0b20sIHZhbHVlLCBjb25zdHJ1Y3RvciwgaGFzSW5zdGFu
Y2VWYWx1ZSkKLSAgICBVU0VTKE9wSGFzU3RydWN0dXJlUHJvcGVydHksIGJhc2UsIHByb3BlcnR5
LCBlbnVtZXJhdG9yKQotICAgIFVTRVMoT3BDb25zdHJ1Y3RWYXJhcmdzLCBjYWxsZWUsIHRoaXNW
YWx1ZSwgYXJndW1lbnRzKQotICAgIFVTRVMoT3BDYWxsVmFyYXJncywgY2FsbGVlLCB0aGlzVmFs
dWUsIGFyZ3VtZW50cykKLSAgICBVU0VTKE9wVGFpbENhbGxWYXJhcmdzLCBjYWxsZWUsIHRoaXNW
YWx1ZSwgYXJndW1lbnRzKQotCi0gICAgVVNFUyhPcEdldERpcmVjdFBuYW1lLCBiYXNlLCBwcm9w
ZXJ0eSwgaW5kZXgsIGVudW1lcmF0b3IpCi0KLSAgICBVU0VTKE9wU3dpdGNoU3RyaW5nLCBzY3J1
dGluZWUpCi0gICAgVVNFUyhPcFN3aXRjaENoYXIsIHNjcnV0aW5lZSkKLSAgICBVU0VTKE9wU3dp
dGNoSW1tLCBzY3J1dGluZWUpCi0KLSAgICBVU0VTKE9wR2V0SW50ZXJuYWxGaWVsZCwgYmFzZSkK
LSAgICBVU0VTKE9wUHV0SW50ZXJuYWxGaWVsZCwgYmFzZSwgdmFsdWUpCi0KLSAgICBVU0VTKE9w
WWllbGQsIGdlbmVyYXRvciwgYXJndW1lbnQpCi0KLSAgICBjYXNlIG9wX25ld19hcnJheV93aXRo
X3NwcmVhZDoKLSAgICAgICAgaGFuZGxlTmV3QXJyYXlMaWtlKGluc3RydWN0aW9uLT5hczxPcE5l
d0FycmF5V2l0aFNwcmVhZD4oKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIG9wX25ld19h
cnJheToKLSAgICAgICAgaGFuZGxlTmV3QXJyYXlMaWtlKGluc3RydWN0aW9uLT5hczxPcE5ld0Fy
cmF5PigpKTsKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY2FzZSBvcF9zdHJjYXQ6IHsKLSAgICAg
ICAgYXV0byBieXRlY29kZSA9IGluc3RydWN0aW9uLT5hczxPcFN0cmNhdD4oKTsKLSAgICAgICAg
aW50IGJhc2UgPSBieXRlY29kZS5tX3NyYy5vZmZzZXQoKTsKLSAgICAgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBieXRlY29kZS5tX2NvdW50OyBpKyspCi0gICAgICAgICAgICBmdW5jdG9yKFZpcnR1
YWxSZWdpc3RlciB7IGJhc2UgLSBpIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg
Y2FzZSBvcF9jb25zdHJ1Y3Q6Ci0gICAgICAgIGhhbmRsZU9wQ2FsbExpa2UoaW5zdHJ1Y3Rpb24t
PmFzPE9wQ29uc3RydWN0PigpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2Ugb3BfY2FsbF9l
dmFsOgotICAgICAgICBoYW5kbGVPcENhbGxMaWtlKGluc3RydWN0aW9uLT5hczxPcENhbGxFdmFs
PigpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2Ugb3BfY2FsbDoKLSAgICAgICAgaGFuZGxl
T3BDYWxsTGlrZShpbnN0cnVjdGlvbi0+YXM8T3BDYWxsPigpKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIGNhc2Ugb3BfdGFpbF9jYWxsOgotICAgICAgICBoYW5kbGVPcENhbGxMaWtlKGluc3RydWN0
aW9uLT5hczxPcFRhaWxDYWxsPigpKTsKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZGVmYXVsdDoK
LSAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgfQorICAgIGNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVJbmRleEltcGwoY29kZUJsb2NrLT5zY29w
ZVJlZ2lzdGVyKCksIGluc3RydWN0aW9uLCBmdW5jdG9yKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5h
bWUgQmxvY2ssIHR5cGVuYW1lIEZ1bmN0b3I+Ci12b2lkIGNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVJ
bmRleChCbG9jayogY29kZUJsb2NrLCBjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIGNv
bnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCit0ZW1wbGF0ZTx0eXBlbmFtZSBCbG9jaz4KK3ZvaWQgY29t
cHV0ZURlZnNGb3JCeXRlY29kZUluZGV4KEJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0IEluc3RydWN0
aW9uKiBpbnN0cnVjdGlvbiwgY29uc3QgRnVuY3Rpb248dm9pZChWaXJ0dWFsUmVnaXN0ZXIpPiYg
ZnVuY3RvcikKIHsKLSAgICBzd2l0Y2ggKGluc3RydWN0aW9uLT5vcGNvZGVJRCgpKSB7Ci0gICAg
Y2FzZSBvcF93aWRlMTY6Ci0gICAgY2FzZSBvcF93aWRlMzI6Ci0gICAgICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0KLSAgICAvLyBUaGVzZSBkb24ndCBkZWZpbmUgYW55dGhpbmcu
Ci0gICAgY2FzZSBvcF9wdXRfdG9fc2NvcGU6Ci0gICAgY2FzZSBvcF9lbmQ6Ci0gICAgY2FzZSBv
cF90aHJvdzoKLSAgICBjYXNlIG9wX3Rocm93X3N0YXRpY19lcnJvcjoKLSAgICBjYXNlIG9wX2No
ZWNrX3RkejoKLSAgICBjYXNlIG9wX2RlYnVnOgotICAgIGNhc2Ugb3BfcmV0OgotICAgIGNhc2Ug
b3Bfam1wOgotICAgIGNhc2Ugb3BfanRydWU6Ci0gICAgY2FzZSBvcF9qZmFsc2U6Ci0gICAgY2Fz
ZSBvcF9qZXFfbnVsbDoKLSAgICBjYXNlIG9wX2puZXFfbnVsbDoKLSAgICBjYXNlIG9wX2p1bmRl
ZmluZWRfb3JfbnVsbDoKLSAgICBjYXNlIG9wX2pudW5kZWZpbmVkX29yX251bGw6Ci0gICAgY2Fz
ZSBvcF9qbmVxX3B0cjoKLSAgICBjYXNlIG9wX2psZXNzOgotICAgIGNhc2Ugb3Bfamxlc3NlcToK
LSAgICBjYXNlIG9wX2pncmVhdGVyOgotICAgIGNhc2Ugb3BfamdyZWF0ZXJlcToKLSAgICBjYXNl
IG9wX2pubGVzczoKLSAgICBjYXNlIG9wX2pubGVzc2VxOgotICAgIGNhc2Ugb3Bfam5ncmVhdGVy
OgotICAgIGNhc2Ugb3Bfam5ncmVhdGVyZXE6Ci0gICAgY2FzZSBvcF9qZXE6Ci0gICAgY2FzZSBv
cF9qbmVxOgotICAgIGNhc2Ugb3BfanN0cmljdGVxOgotICAgIGNhc2Ugb3Bfam5zdHJpY3RlcToK
LSAgICBjYXNlIG9wX2piZWxvdzoKLSAgICBjYXNlIG9wX2piZWxvd2VxOgotICAgIGNhc2Ugb3Bf
bG9vcF9oaW50OgotICAgIGNhc2Ugb3Bfc3dpdGNoX2ltbToKLSAgICBjYXNlIG9wX3N3aXRjaF9j
aGFyOgotICAgIGNhc2Ugb3Bfc3dpdGNoX3N0cmluZzoKLSAgICBjYXNlIG9wX3B1dF9ieV9pZDoK
LSAgICBjYXNlIG9wX3B1dF9ieV9pZF93aXRoX3RoaXM6Ci0gICAgY2FzZSBvcF9wdXRfYnlfdmFs
X3dpdGhfdGhpczoKLSAgICBjYXNlIG9wX3B1dF9nZXR0ZXJfYnlfaWQ6Ci0gICAgY2FzZSBvcF9w
dXRfc2V0dGVyX2J5X2lkOgotICAgIGNhc2Ugb3BfcHV0X2dldHRlcl9zZXR0ZXJfYnlfaWQ6Ci0g
ICAgY2FzZSBvcF9wdXRfZ2V0dGVyX2J5X3ZhbDoKLSAgICBjYXNlIG9wX3B1dF9zZXR0ZXJfYnlf
dmFsOgotICAgIGNhc2Ugb3BfcHV0X2J5X3ZhbDoKLSAgICBjYXNlIG9wX3B1dF9ieV92YWxfZGly
ZWN0OgotICAgIGNhc2Ugb3BfcHV0X2ludGVybmFsX2ZpZWxkOgotICAgIGNhc2Ugb3BfZGVmaW5l
X2RhdGFfcHJvcGVydHk6Ci0gICAgY2FzZSBvcF9kZWZpbmVfYWNjZXNzb3JfcHJvcGVydHk6Ci0g
ICAgY2FzZSBvcF9wcm9maWxlX3R5cGU6Ci0gICAgY2FzZSBvcF9wcm9maWxlX2NvbnRyb2xfZmxv
dzoKLSAgICBjYXNlIG9wX3B1dF90b19hcmd1bWVudHM6Ci0gICAgY2FzZSBvcF9zZXRfZnVuY3Rp
b25fbmFtZToKLSAgICBjYXNlIG9wX2NoZWNrX3RyYXBzOgotICAgIGNhc2Ugb3BfbG9nX3NoYWRv
d19jaGlja2VuX3Byb2xvZ3VlOgotICAgIGNhc2Ugb3BfbG9nX3NoYWRvd19jaGlja2VuX3RhaWw6
Ci0gICAgY2FzZSBvcF95aWVsZDoKLSAgICBjYXNlIG9wX25vcDoKLSAgICBjYXNlIG9wX3VucmVh
Y2hhYmxlOgotICAgIGNhc2Ugb3Bfc3VwZXJfc2FtcGxlcl9iZWdpbjoKLSAgICBjYXNlIG9wX3N1
cGVyX3NhbXBsZXJfZW5kOgotI2RlZmluZSBMTElOVF9IRUxQRVJfT1BDT0RFUyhvcGNvZGUsIGxl
bmd0aCkgY2FzZSBvcGNvZGU6Ci0gICAgICAgIEZPUl9FQUNIX0xMSU5UX09QQ09ERV9FWFRFTlNJ
T04oTExJTlRfSEVMUEVSX09QQ09ERVMpOwotI3VuZGVmIExMSU5UX0hFTFBFUl9PUENPREVTCi0g
ICAgICAgIHJldHVybjsKLSAgICAvLyBUaGVzZSBhbGwgaGF2ZSBhIHNpbmdsZSBkZXN0aW5hdGlv
biBmb3IgdGhlIGZpcnN0IGFyZ3VtZW50LgotICAgIERFRlMoT3BBcmd1bWVudENvdW50LCBkc3Qp
Ci0gICAgREVGUyhPcFRvSW5kZXhTdHJpbmcsIGRzdCkKLSAgICBERUZTKE9wR2V0RW51bWVyYWJs
ZUxlbmd0aCwgZHN0KQotICAgIERFRlMoT3BIYXNJbmRleGVkUHJvcGVydHksIGRzdCkKLSAgICBE
RUZTKE9wSGFzU3RydWN0dXJlUHJvcGVydHksIGRzdCkKLSAgICBERUZTKE9wSGFzR2VuZXJpY1By
b3BlcnR5LCBkc3QpCi0gICAgREVGUyhPcEdldERpcmVjdFBuYW1lLCBkc3QpCi0gICAgREVGUyhP
cEdldFByb3BlcnR5RW51bWVyYXRvciwgZHN0KQotICAgIERFRlMoT3BFbnVtZXJhdG9yU3RydWN0
dXJlUG5hbWUsIGRzdCkKLSAgICBERUZTKE9wRW51bWVyYXRvckdlbmVyaWNQbmFtZSwgZHN0KQot
ICAgIERFRlMoT3BHZXRQYXJlbnRTY29wZSwgZHN0KQotICAgIERFRlMoT3BQdXNoV2l0aFNjb3Bl
LCBkc3QpCi0gICAgREVGUyhPcENyZWF0ZUxleGljYWxFbnZpcm9ubWVudCwgZHN0KQotICAgIERF
RlMoT3BDcmVhdGVHZW5lcmF0b3JGcmFtZUVudmlyb25tZW50LCBkc3QpCi0gICAgREVGUyhPcFJl
c29sdmVTY29wZSwgZHN0KQotICAgIERFRlMoT3BSZXNvbHZlU2NvcGVGb3JIb2lzdGluZ0Z1bmNE
ZWNsSW5FdmFsLCBkc3QpCi0gICAgREVGUyhPcFN0cmNhdCwgZHN0KQotICAgIERFRlMoT3BUb1By
aW1pdGl2ZSwgZHN0KQotICAgIERFRlMoT3BDcmVhdGVUaGlzLCBkc3QpCi0gICAgREVGUyhPcENy
ZWF0ZVByb21pc2UsIGRzdCkKLSAgICBERUZTKE9wQ3JlYXRlR2VuZXJhdG9yLCBkc3QpCi0gICAg
REVGUyhPcENyZWF0ZUFzeW5jR2VuZXJhdG9yLCBkc3QpCi0gICAgREVGUyhPcE5ld0FycmF5LCBk
c3QpCi0gICAgREVGUyhPcE5ld0FycmF5V2l0aFNwcmVhZCwgZHN0KQotICAgIERFRlMoT3BTcHJl
YWQsIGRzdCkKLSAgICBERUZTKE9wTmV3QXJyYXlCdWZmZXIsIGRzdCkKLSAgICBERUZTKE9wTmV3
QXJyYXlXaXRoU2l6ZSwgZHN0KQotICAgIERFRlMoT3BOZXdSZWdleHAsIGRzdCkKLSAgICBERUZT
KE9wTmV3RnVuYywgZHN0KQotICAgIERFRlMoT3BOZXdGdW5jRXhwLCBkc3QpCi0gICAgREVGUyhP
cE5ld0dlbmVyYXRvckZ1bmMsIGRzdCkKLSAgICBERUZTKE9wTmV3R2VuZXJhdG9yRnVuY0V4cCwg
ZHN0KQotICAgIERFRlMoT3BOZXdBc3luY0dlbmVyYXRvckZ1bmMsIGRzdCkKLSAgICBERUZTKE9w
TmV3QXN5bmNHZW5lcmF0b3JGdW5jRXhwLCBkc3QpCi0gICAgREVGUyhPcE5ld0FzeW5jRnVuYywg
ZHN0KQotICAgIERFRlMoT3BOZXdBc3luY0Z1bmNFeHAsIGRzdCkKLSAgICBERUZTKE9wQ2FsbFZh
cmFyZ3MsIGRzdCkKLSAgICBERUZTKE9wVGFpbENhbGxWYXJhcmdzLCBkc3QpCi0gICAgREVGUyhP
cFRhaWxDYWxsRm9yd2FyZEFyZ3VtZW50cywgZHN0KQotICAgIERFRlMoT3BDb25zdHJ1Y3RWYXJh
cmdzLCBkc3QpCi0gICAgREVGUyhPcEdldEZyb21TY29wZSwgZHN0KQotICAgIERFRlMoT3BDYWxs
LCBkc3QpCi0gICAgREVGUyhPcFRhaWxDYWxsLCBkc3QpCi0gICAgREVGUyhPcENhbGxFdmFsLCBk
c3QpCi0gICAgREVGUyhPcENvbnN0cnVjdCwgZHN0KQotICAgIERFRlMoT3BUcnlHZXRCeUlkLCBk
c3QpCi0gICAgREVGUyhPcEdldEJ5SWQsIGRzdCkKLSAgICBERUZTKE9wR2V0QnlJZERpcmVjdCwg
ZHN0KQotICAgIERFRlMoT3BHZXRCeUlkV2l0aFRoaXMsIGRzdCkKLSAgICBERUZTKE9wR2V0QnlW
YWxXaXRoVGhpcywgZHN0KQotICAgIERFRlMoT3BPdmVycmlkZXNIYXNJbnN0YW5jZSwgZHN0KQot
ICAgIERFRlMoT3BJbnN0YW5jZW9mLCBkc3QpCi0gICAgREVGUyhPcEluc3RhbmNlb2ZDdXN0b20s
IGRzdCkKLSAgICBERUZTKE9wR2V0QnlWYWwsIGRzdCkKLSAgICBERUZTKE9wVHlwZW9mLCBkc3Qp
Ci0gICAgREVGUyhPcElkZW50aXR5V2l0aFByb2ZpbGUsIHNyY0RzdCkKLSAgICBERUZTKE9wSXNF
bXB0eSwgZHN0KQotICAgIERFRlMoT3BJc1VuZGVmaW5lZCwgZHN0KQotICAgIFVTRVMoT3BJc1Vu
ZGVmaW5lZE9yTnVsbCwgZHN0KQotICAgIERFRlMoT3BJc0Jvb2xlYW4sIGRzdCkKLSAgICBERUZT
KE9wSXNOdW1iZXIsIGRzdCkKLSAgICBERUZTKE9wSXNPYmplY3QsIGRzdCkKLSAgICBERUZTKE9w
SXNPYmplY3RPck51bGwsIGRzdCkKLSAgICBERUZTKE9wSXNDZWxsV2l0aFR5cGUsIGRzdCkKLSAg
ICBERUZTKE9wSXNGdW5jdGlvbiwgZHN0KQotICAgIERFRlMoT3BJbkJ5SWQsIGRzdCkKLSAgICBE
RUZTKE9wSW5CeVZhbCwgZHN0KQotICAgIERFRlMoT3BUb051bWJlciwgZHN0KQotICAgIERFRlMo
T3BUb051bWVyaWMsIGRzdCkKLSAgICBERUZTKE9wVG9TdHJpbmcsIGRzdCkKLSAgICBERUZTKE9w
VG9PYmplY3QsIGRzdCkKLSAgICBERUZTKE9wTmVnYXRlLCBkc3QpCi0gICAgREVGUyhPcEFkZCwg
ZHN0KQotICAgIERFRlMoT3BNdWwsIGRzdCkKLSAgICBERUZTKE9wRGl2LCBkc3QpCi0gICAgREVG
UyhPcE1vZCwgZHN0KQotICAgIERFRlMoT3BTdWIsIGRzdCkKLSAgICBERUZTKE9wUG93LCBkc3Qp
Ci0gICAgREVGUyhPcExzaGlmdCwgZHN0KQotICAgIERFRlMoT3BSc2hpZnQsIGRzdCkKLSAgICBE
RUZTKE9wVXJzaGlmdCwgZHN0KQotICAgIERFRlMoT3BCaXRhbmQsIGRzdCkKLSAgICBERUZTKE9w
Qml0eG9yLCBkc3QpCi0gICAgREVGUyhPcEJpdG9yLCBkc3QpCi0gICAgREVGUyhPcEJpdG5vdCwg
ZHN0KQotICAgIERFRlMoT3BJbmMsIHNyY0RzdCkKLSAgICBERUZTKE9wRGVjLCBzcmNEc3QpCi0g
ICAgREVGUyhPcEVxLCBkc3QpCi0gICAgREVGUyhPcE5lcSwgZHN0KQotICAgIERFRlMoT3BTdHJp
Y3RlcSwgZHN0KQotICAgIERFRlMoT3BOc3RyaWN0ZXEsIGRzdCkKLSAgICBERUZTKE9wTGVzcywg
ZHN0KQotICAgIERFRlMoT3BMZXNzZXEsIGRzdCkKLSAgICBERUZTKE9wR3JlYXRlciwgZHN0KQot
ICAgIERFRlMoT3BHcmVhdGVyZXEsIGRzdCkKLSAgICBERUZTKE9wQmVsb3csIGRzdCkKLSAgICBE
RUZTKE9wQmVsb3dlcSwgZHN0KQotICAgIERFRlMoT3BOZXFOdWxsLCBkc3QpCi0gICAgREVGUyhP
cEVxTnVsbCwgZHN0KQotICAgIERFRlMoT3BOb3QsIGRzdCkKLSAgICBERUZTKE9wTW92LCBkc3Qp
Ci0gICAgREVGUyhPcE5ld09iamVjdCwgZHN0KQotICAgIERFRlMoT3BOZXdQcm9taXNlLCBkc3Qp
Ci0gICAgREVGUyhPcE5ld0dlbmVyYXRvciwgZHN0KQotICAgIERFRlMoT3BUb1RoaXMsIHNyY0Rz
dCkKLSAgICBERUZTKE9wR2V0U2NvcGUsIGRzdCkKLSAgICBERUZTKE9wQ3JlYXRlRGlyZWN0QXJn
dW1lbnRzLCBkc3QpCi0gICAgREVGUyhPcENyZWF0ZVNjb3BlZEFyZ3VtZW50cywgZHN0KQotICAg
IERFRlMoT3BDcmVhdGVDbG9uZWRBcmd1bWVudHMsIGRzdCkKLSAgICBERUZTKE9wRGVsQnlJZCwg
ZHN0KQotICAgIERFRlMoT3BEZWxCeVZhbCwgZHN0KQotICAgIERFRlMoT3BVbnNpZ25lZCwgZHN0
KQotICAgIERFRlMoT3BHZXRGcm9tQXJndW1lbnRzLCBkc3QpCi0gICAgREVGUyhPcEdldEFyZ3Vt
ZW50LCBkc3QpCi0gICAgREVGUyhPcENyZWF0ZVJlc3QsIGRzdCkKLSAgICBERUZTKE9wR2V0UmVz
dExlbmd0aCwgZHN0KQotICAgIERFRlMoT3BHZXRJbnRlcm5hbEZpZWxkLCBkc3QpCi0KLSAgICBE
RUZTKE9wQ2F0Y2gsIGV4Y2VwdGlvbiwgdGhyb3duVmFsdWUpCi0KLSAgICBjYXNlIG9wX2VudGVy
OiB7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IGNvZGVCbG9jay0+bnVtVmFycygpOyBpLS07
KQotICAgICAgICAgICAgZnVuY3Rvcih2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChpKSk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0gICAgfQorICAgIGNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVJbmRl
eEltcGwoY29kZUJsb2NrLT5udW1WYXJzKCksIGluc3RydWN0aW9uLCBmdW5jdG9yKTsKIH0KIAog
I3VuZGVmIENBTExfRlVOQ1RPUgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2dl
bmVyYXRvci9EU0wucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdG9yL0RTTC5yYgpp
bmRleCBmY2FhNzkyZTE3YTMyNjQ4ZTEzNTVlMjJiYTc5ZjE0MzM1ZmM1OTU0Li41MjA1ZTQwM2Jl
MTJlYzg0MTg5MTZiOTZkMWRkNDliZmI5ZWU0N2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZ2VuZXJhdG9yL0RTTC5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2Vu
ZXJhdG9yL0RTTC5yYgpAQCAtMTA4LDYgKzEwOCw3IEBAIG1vZHVsZSBEU0wKIAogICAgICAgICB3
cml0ZV9ieXRlY29kZXMoYnl0ZWNvZGVfbGlzdCwgb3B0aW9uc1s6Ynl0ZWNvZGVzX2ZpbGVuYW1l
XSkKICAgICAgICAgd3JpdGVfYnl0ZWNvZGVfc3RydWN0cyhieXRlY29kZV9saXN0LCBvcHRpb25z
WzpieXRlY29kZV9zdHJ1Y3RzX2ZpbGVuYW1lXSkKKyAgICAgICAgd3JpdGVfYnl0ZWNvZGVfZHVt
cGVyKGJ5dGVjb2RlX2xpc3QsIG9wdGlvbnNbOmJ5dGVjb2RlX2R1bXBlcl9maWxlbmFtZV0pCiAg
ICAgICAgIHdyaXRlX2J5dGVjb2Rlc19pbml0KG9wdGlvbnNbOmluaXRfYXNtX2ZpbGVuYW1lXSwg
Ynl0ZWNvZGVfbGlzdCkKICAgICAgICAgd3JpdGVfaW5kaWNlcyhieXRlY29kZV9saXN0LCBvcHRp
b25zWzpieXRlY29kZV9pbmRpY2VzX2ZpbGVuYW1lXSkKICAgICAgICAgd3JpdGVfbGxpbnRfZ2Vu
ZXJhdG9yKG9wdGlvbnNbOndhc21fbGxpbnRfZ2VuZXJhdG9yX2ZpbGVuYW1lXSwgYnl0ZWNvZGVf
bGlzdCwgQHdhc21fanNvbikKQEAgLTE0MywxMCArMTQ0LDMxIEBAIG1vZHVsZSBEU0wKICNpbmNs
dWRlICJUb1RoaXNTdGF0dXMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CisKK3ZvaWQgZHVtcEJ5dGVj
b2RlKEJ5dGVjb2RlRHVtcGVyQmFzZSogZHVtcGVyLCBJbnN0cnVjdGlvblN0cmVhbTo6T2Zmc2V0
LCBjb25zdCBJbnN0cnVjdGlvbiopOwordm9pZCBkdW1wV2FzbShCeXRlY29kZUR1bXBlckJhc2Uq
IGR1bXBlciwgSW5zdHJ1Y3Rpb25TdHJlYW06Ok9mZnNldCwgY29uc3QgSW5zdHJ1Y3Rpb24qKTsK
KwogRU9GCiAKICAgICAgICAgICAgIHRlbXBsYXRlLmJvZHkgPSA8PC1FT0YKICN7b3Bjb2Rlcy5t
YXAoJjpzdHJ1Y3QpLmpvaW4oIlxuIil9CitFT0YKKyAgICAgICAgICAgIHRlbXBsYXRlLnN1ZmZp
eCA9ICJ9IC8vIG5hbWVzcGFjZSBKU0MiCisgICAgICAgIGVuZAorICAgIGVuZAorCisgICAgZGVm
IHNlbGYud3JpdGVfYnl0ZWNvZGVfZHVtcGVyKGJ5dGVjb2RlX2xpc3QsIGJ5dGVjb2RlX2R1bXBl
cl9maWxlbmFtZSkKKyAgICAgICAgR2VuZXJhdGVkRmlsZTo6Y3JlYXRlKGJ5dGVjb2RlX2R1bXBl
cl9maWxlbmFtZSwgYnl0ZWNvZGVfbGlzdCkgZG8gfHRlbXBsYXRlfAorICAgICAgICAgICAgdGVt
cGxhdGUucHJlZml4ID0gPDwtRU9GCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQnl0
ZWNvZGVEdW1wZXIuaCIKKyMKKyNpbmNsdWRlICJCeXRlY29kZVN0cnVjdHMuaCIKKworbmFtZXNw
YWNlIEpTQyB7CitFT0YKKworICAgICAgICAgICAgdGVtcGxhdGUuYm9keSA9IDw8LUVPRgogI3tP
cGNvZGUuZHVtcF9ieXRlY29kZSg6Qnl0ZWNvZGUsIDpKU09wY29kZVRyYWl0cywgb3Bjb2Rlc19m
aWx0ZXIgeyB8c3wgcy5jb25maWdbOmVtaXRfaW5fc3RydWN0c19maWxlXSAmJiAhcy5pc193YXNt
PyB9KX0KICN7T3Bjb2RlLmR1bXBfYnl0ZWNvZGUoOldhc20sIDpXYXNtT3Bjb2RlVHJhaXRzLCBv
cGNvZGVzX2ZpbHRlciB7IHxzfCBzLmlzX3dhc20/IH0pfQogRU9GCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdG9yL09wY29kZS5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9nZW5lcmF0b3IvT3Bjb2RlLnJiCmluZGV4IDQzNGM0ZmE3Y2ViYTQwZjY2OTg3MzUwYzVl
N2U1YzMwY2M1YjI4MTcuLmRhYjg2ODZjYTMzYTEwMmM5YmZhMWRmMTgwM2ViYjRmMGFiMjQ0ODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9nZW5lcmF0b3IvT3Bjb2RlLnJiCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9nZW5lcmF0b3IvT3Bjb2RlLnJiCkBAIC0yMjMsOCAr
MjIzLDcgQEAgRU9GCiAKICAgICBkZWYgZHVtcGVyCiAgICAgICAgIDw8LUVPRgotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEJsb2NrPgotICAgIHZvaWQgZHVtcChCeXRlY29kZUR1bXBlcjxCbG9jaz4q
IGR1bXBlciwgSW5zdHJ1Y3Rpb25TdHJlYW06Ok9mZnNldCBfX2xvY2F0aW9uLCBpbnQgX19zaXpl
U2hpZnRBbW91bnQpCisgICAgdm9pZCBkdW1wKEJ5dGVjb2RlRHVtcGVyQmFzZSogZHVtcGVyLCBJ
bnN0cnVjdGlvblN0cmVhbTo6T2Zmc2V0IF9fbG9jYXRpb24sIGludCBfX3NpemVTaGlmdEFtb3Vu
dCkKICAgICB7CiAgICAgICAgIGR1bXBlci0+cHJpbnRMb2NhdGlvbkFuZE9wKF9fbG9jYXRpb24s
ICYiKioje0BuYW1lfSJbMiAtIF9fc2l6ZVNoaWZ0QW1vdW50XSk7CiAje3ByaW50X2FyZ3MgeyB8
YXJnfApAQCAtMzI2LDggKzMyNSw3IEBAIEVPRgogCiAgICAgZGVmIHNlbGYuZHVtcF9ieXRlY29k
ZShuYW1lLCBvcGNvZGVfdHJhaXRzLCBvcGNvZGVzKQogICAgICAgICA8PC1FT0YuY2hvbXAKLXRl
bXBsYXRlPHR5cGVuYW1lIEJ5dGVjb2RlRHVtcGVyPgotc3RhdGljIHZvaWQgZHVtcCN7bmFtZX0o
Qnl0ZWNvZGVEdW1wZXIqIGR1bXBlciwgSW5zdHJ1Y3Rpb25TdHJlYW06Ok9mZnNldCBfX2xvY2F0
aW9uLCBjb25zdCBJbnN0cnVjdGlvbiogX19pbnN0cnVjdGlvbikKK3ZvaWQgZHVtcCN7bmFtZX0o
Qnl0ZWNvZGVEdW1wZXJCYXNlKiBkdW1wZXIsIEluc3RydWN0aW9uU3RyZWFtOjpPZmZzZXQgX19s
b2NhdGlvbiwgY29uc3QgSW5zdHJ1Y3Rpb24qIF9faW5zdHJ1Y3Rpb24pCiB7CiAgICAgc3dpdGNo
IChfX2luc3RydWN0aW9uLT5vcGNvZGVJRDwje29wY29kZV90cmFpdHN9PigpKSB7CiAje29wY29k
ZXMubWFwIHsgfG9wfApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2dlbmVyYXRv
ci9PcHRpb25zLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2dlbmVyYXRvci9PcHRpb25zLnJi
CmluZGV4IGE4MjkyMjBmNDZmMjhkNzAwN2M1YzA4NzAwNjViZWZhYmM5MWM4YWYuLmZmODIyMTcy
YTIyYTgwMTM5MzRmOWNhZDRlNzViNjVlMDE4Nzk5NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9nZW5lcmF0b3IvT3B0aW9ucy5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZ2VuZXJhdG9yL09wdGlvbnMucmIKQEAgLTU2LDYgKzU2LDEwIEBAICRjb25maWcgPSB7CiAg
ICAgICAgIGxvbmc6ICItLWluaXRfd2FzbV9sbGludCBGSUxFIiwKICAgICAgICAgZGVzYzogImdl
bmVyYXRlIFdhc20gYnl0ZWNvZGVzIGluaXQgRklMRSIsCiAgICAgfSwKKyAgICBieXRlY29kZV9k
dW1wZXJfZmlsZW5hbWU6IHsKKyAgICAgICAgbG9uZzogIi0tYnl0ZWNvZGVfZHVtcGVyIEZJTEUi
LAorICAgICAgICBkZXNjOiAiZ2VuZXJhdGUgYnl0ZWNvZGUgZHVtcGVyIEZJTEUiLAorICAgIH0s
CiB9OwogCiBtb2R1bGUgT3B0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKaW5kZXggMGFiNzNl
NzMyNjEyNWM5NmY0MTg2YmMxZDgxNDE1MjZlYjc0MjZmZC4uOGUwNzJiODk3NGE0ZjJlYWRhZmJi
YjJmYjlmNTFjMDUyZTcxYWFmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCkBAIC00NjksMTIg
KzQ2OSwxNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBP
cD4KICAgICAgICAgdm9pZCBlbWl0X2NvbXBhcmVBbmRKdW1wKGNvbnN0IEluc3RydWN0aW9uKiwg
UmVsYXRpb25hbENvbmRpdGlvbik7CisgICAgICAgIHZvaWQgZW1pdF9jb21wYXJlQW5kSnVtcElt
cGwoaW50IG9wMSwgaW50IG9wMiwgdW5zaWduZWQgdGFyZ2V0LCBSZWxhdGlvbmFsQ29uZGl0aW9u
KTsKICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3A+CiAgICAgICAgIHZvaWQgZW1pdF9jb21w
YXJlVW5zaWduZWQoY29uc3QgSW5zdHJ1Y3Rpb24qLCBSZWxhdGlvbmFsQ29uZGl0aW9uKTsKKyAg
ICAgICAgdm9pZCBlbWl0X2NvbXBhcmVVbnNpZ25lZEltcGwoaW50IGRzdCwgaW50IG9wMSwgaW50
IG9wMiwgUmVsYXRpb25hbENvbmRpdGlvbik7CiAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9w
PgogICAgICAgICB2b2lkIGVtaXRfY29tcGFyZVVuc2lnbmVkQW5kSnVtcChjb25zdCBJbnN0cnVj
dGlvbiosIFJlbGF0aW9uYWxDb25kaXRpb24pOworICAgICAgICB2b2lkIGVtaXRfY29tcGFyZVVu
c2lnbmVkQW5kSnVtcEltcGwoaW50IG9wMSwgaW50IG9wMiwgdW5zaWduZWQgdGFyZ2V0LCBSZWxh
dGlvbmFsQ29uZGl0aW9uKTsKICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3A+CiAgICAgICAg
IHZvaWQgZW1pdF9jb21wYXJlQW5kSnVtcFNsb3coY29uc3QgSW5zdHJ1Y3Rpb24qLCBEb3VibGVD
b25kaXRpb24sIHNpemVfdCAoSklUX09QRVJBVElPTiAqb3BlcmF0aW9uKShKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSksIGJvb2wgaW52ZXJ0LCBWZWN0b3I8
U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CisgICAgICAgIHZvaWQgZW1pdF9jb21wYXJlQW5k
SnVtcFNsb3dJbXBsKGludCBvcDEsIGludCBvcDIsIHVuc2lnbmVkIHRhcmdldCwgc2l6ZV90IGlu
c3RydWN0aW9uU2l6ZSwgRG91YmxlQ29uZGl0aW9uLCBzaXplX3QgKEpJVF9PUEVSQVRJT04gKm9w
ZXJhdGlvbikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUp
LCBib29sIGludmVydCwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAg
ICAKICAgICAgICAgdm9pZCBhc3NlcnRTdGFja1BvaW50ZXJPZmZzZXQoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAKaW5kZXggYmI2MzVmOGU3NmUzYzhj
ZDVlMDM0NjBkZDFmYzdiMGU2N2QzNGIxYy4uMzQ1ODc0NGZiY2RkNTNhY2Y5YTQzMzI4YmM0OTRi
MGZlZGNiODkzZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0
aG1ldGljLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMu
Y3BwCkBAIC0xNzAsMTYgKzE3MCwyMSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF91bnNpZ25lZChjb25z
dCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBP
cD4KIHZvaWQgSklUOjplbWl0X2NvbXBhcmVBbmRKdW1wKGNvbnN0IEluc3RydWN0aW9uKiBpbnN0
cnVjdGlvbiwgUmVsYXRpb25hbENvbmRpdGlvbiBjb25kaXRpb24pCit7CisgICAgYXV0byBieXRl
Y29kZSA9IGluc3RydWN0aW9uLT5hczxPcD4oKTsKKyAgICBpbnQgb3AxID0gYnl0ZWNvZGUubV9s
aHMub2Zmc2V0KCk7CisgICAgaW50IG9wMiA9IGJ5dGVjb2RlLm1fcmhzLm9mZnNldCgpOworICAg
IHVuc2lnbmVkIHRhcmdldCA9IGp1bXBUYXJnZXQoaW5zdHJ1Y3Rpb24sIGJ5dGVjb2RlLm1fdGFy
Z2V0TGFiZWwpOworICAgIGVtaXRfY29tcGFyZUFuZEp1bXBJbXBsKG9wMSwgb3AyLCB0YXJnZXQs
IGNvbmRpdGlvbik7Cit9CisKK3ZvaWQgSklUOjplbWl0X2NvbXBhcmVBbmRKdW1wSW1wbChpbnQg
b3AxLCBpbnQgb3AyLCB1bnNpZ25lZCB0YXJnZXQsIFJlbGF0aW9uYWxDb25kaXRpb24gY29uZGl0
aW9uKQogewogICAgIC8vIFdlIGdlbmVyYXRlIGlubGluZSBjb2RlIGZvciB0aGUgZm9sbG93aW5n
IGNhc2VzIGluIHRoZSBmYXN0IHBhdGg6CiAgICAgLy8gLSBpbnQgaW1tZWRpYXRlIHRvIGNvbnN0
YW50IGludCBpbW1lZGlhdGUKICAgICAvLyAtIGNvbnN0YW50IGludCBpbW1lZGlhdGUgdG8gaW50
IGltbWVkaWF0ZQogICAgIC8vIC0gaW50IGltbWVkaWF0ZSB0byBpbnQgaW1tZWRpYXRlCiAKLSAg
ICBhdXRvIGJ5dGVjb2RlID0gaW5zdHJ1Y3Rpb24tPmFzPE9wPigpOwotICAgIGludCBvcDEgPSBi
eXRlY29kZS5tX2xocy5vZmZzZXQoKTsKLSAgICBpbnQgb3AyID0gYnl0ZWNvZGUubV9yaHMub2Zm
c2V0KCk7Ci0gICAgdW5zaWduZWQgdGFyZ2V0ID0ganVtcFRhcmdldChpbnN0cnVjdGlvbiwgYnl0
ZWNvZGUubV90YXJnZXRMYWJlbCk7CiAgICAgYm9vbCBkaXNhbGxvd0FsbG9jYXRpb24gPSBmYWxz
ZTsKICAgICBpZiAoaXNPcGVyYW5kQ29uc3RhbnRDaGFyKG9wMSkpIHsKICAgICAgICAgZW1pdEdl
dFZpcnR1YWxSZWdpc3RlcihvcDIsIHJlZ1QwKTsKQEAgLTIyOCw2ICsyMzMsMTEgQEAgdm9pZCBK
SVQ6OmVtaXRfY29tcGFyZVVuc2lnbmVkQW5kSnVtcChjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1
Y3Rpb24sIFJlbGF0aW9uYWwKICAgICBpbnQgb3AxID0gYnl0ZWNvZGUubV9saHMub2Zmc2V0KCk7
CiAgICAgaW50IG9wMiA9IGJ5dGVjb2RlLm1fcmhzLm9mZnNldCgpOwogICAgIHVuc2lnbmVkIHRh
cmdldCA9IGp1bXBUYXJnZXQoaW5zdHJ1Y3Rpb24sIGJ5dGVjb2RlLm1fdGFyZ2V0TGFiZWwpOwor
ICAgIGVtaXRfY29tcGFyZVVuc2lnbmVkQW5kSnVtcEltcGwob3AxLCBvcDIsIHRhcmdldCwgY29u
ZGl0aW9uKTsKK30KKwordm9pZCBKSVQ6OmVtaXRfY29tcGFyZVVuc2lnbmVkQW5kSnVtcEltcGwo
aW50IG9wMSwgaW50IG9wMiwgdW5zaWduZWQgdGFyZ2V0LCBSZWxhdGlvbmFsQ29uZGl0aW9uIGNv
bmRpdGlvbikKK3sKICAgICBpZiAoaXNPcGVyYW5kQ29uc3RhbnRJbnQob3AyKSkgewogICAgICAg
ICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMSwgcmVnVDApOwogICAgICAgICBpbnQzMl90IG9w
MmltbSA9IGdldE9wZXJhbmRDb25zdGFudEludChvcDIpOwpAQCAtMjQ5LDYgKzI1OSwxMSBAQCB2
b2lkIEpJVDo6ZW1pdF9jb21wYXJlVW5zaWduZWQoY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0
aW9uLCBSZWxhdGlvbmFsQ29uZGl0aQogICAgIGludCBkc3QgPSBieXRlY29kZS5tX2RzdC5vZmZz
ZXQoKTsKICAgICBpbnQgb3AxID0gYnl0ZWNvZGUubV9saHMub2Zmc2V0KCk7CiAgICAgaW50IG9w
MiA9IGJ5dGVjb2RlLm1fcmhzLm9mZnNldCgpOworICAgIGVtaXRfY29tcGFyZVVuc2lnbmVkSW1w
bChkc3QsIG9wMSwgb3AyLCBjb25kaXRpb24pOworfQorCit2b2lkIEpJVDo6ZW1pdF9jb21wYXJl
VW5zaWduZWRJbXBsKGludCBkc3QsIGludCBvcDEsIGludCBvcDIsIFJlbGF0aW9uYWxDb25kaXRp
b24gY29uZGl0aW9uKQorewogICAgIGlmIChpc09wZXJhbmRDb25zdGFudEludChvcDIpKSB7CiAg
ICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AxLCByZWdUMCk7CiAgICAgICAgIGludDMy
X3Qgb3AyaW1tID0gZ2V0T3BlcmFuZENvbnN0YW50SW50KG9wMik7CkBAIC0yNzIsNiArMjg3LDEx
IEBAIHZvaWQgSklUOjplbWl0X2NvbXBhcmVBbmRKdW1wU2xvdyhjb25zdCBJbnN0cnVjdGlvbiog
aW5zdHJ1Y3Rpb24sIERvdWJsZUNvbmRpdGlvCiAgICAgaW50IG9wMSA9IGJ5dGVjb2RlLm1fbGhz
Lm9mZnNldCgpOwogICAgIGludCBvcDIgPSBieXRlY29kZS5tX3Jocy5vZmZzZXQoKTsKICAgICB1
bnNpZ25lZCB0YXJnZXQgPSBqdW1wVGFyZ2V0KGluc3RydWN0aW9uLCBieXRlY29kZS5tX3Rhcmdl
dExhYmVsKTsKKyAgICBlbWl0X2NvbXBhcmVBbmRKdW1wU2xvd0ltcGwob3AxLCBvcDIsIHRhcmdl
dCwgaW5zdHJ1Y3Rpb24tPnNpemUoKSwgY29uZGl0aW9uLCBvcGVyYXRpb24sIGludmVydCwgaXRl
cik7Cit9CisKK3ZvaWQgSklUOjplbWl0X2NvbXBhcmVBbmRKdW1wU2xvd0ltcGwoaW50IG9wMSwg
aW50IG9wMiwgdW5zaWduZWQgdGFyZ2V0LCBzaXplX3QgaW5zdHJ1Y3Rpb25TaXplLCBEb3VibGVD
b25kaXRpb24gY29uZGl0aW9uLCBzaXplX3QgKEpJVF9PUEVSQVRJT04gKm9wZXJhdGlvbikoSlNH
bG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpLCBib29sIGludmVy
dCwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKK3sKIAogICAgIC8vIFdl
IGdlbmVyYXRlIGlubGluZSBjb2RlIGZvciB0aGUgZm9sbG93aW5nIGNhc2VzIGluIHRoZSBzbG93
IHBhdGg6CiAgICAgLy8gLSBmbG9hdGluZy1wb2ludCBudW1iZXIgdG8gY29uc3RhbnQgaW50IGlt
bWVkaWF0ZQpAQCAtMzAyLDcgKzMyMiw3IEBAIHZvaWQgSklUOjplbWl0X2NvbXBhcmVBbmRKdW1w
U2xvdyhjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIERvdWJsZUNvbmRpdGlvCiAKICAg
ICAgICAgICAgIGVtaXRKdW1wU2xvd1RvSG90KGJyYW5jaERvdWJsZShjb25kaXRpb24sIGZwUmVn
VDAsIGZwUmVnVDEpLCB0YXJnZXQpOwogCi0gICAgICAgICAgICBlbWl0SnVtcFNsb3dUb0hvdChq
dW1wKCksIGluc3RydWN0aW9uLT5zaXplKCkpOworICAgICAgICAgICAgZW1pdEp1bXBTbG93VG9I
b3QoanVtcCgpLCBpbnN0cnVjdGlvblNpemUpOwogCiAgICAgICAgICAgICBmYWlsMS5saW5rKHRo
aXMpOwogICAgICAgICB9CkBAIC0zMjgsNyArMzQ4LDcgQEAgdm9pZCBKSVQ6OmVtaXRfY29tcGFy
ZUFuZEp1bXBTbG93KGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgRG91YmxlQ29uZGl0
aW8KIAogICAgICAgICAgICAgZW1pdEp1bXBTbG93VG9Ib3QoYnJhbmNoRG91YmxlKGNvbmRpdGlv
biwgZnBSZWdUMCwgZnBSZWdUMSksIHRhcmdldCk7CiAKLSAgICAgICAgICAgIGVtaXRKdW1wU2xv
d1RvSG90KGp1bXAoKSwgaW5zdHJ1Y3Rpb24tPnNpemUoKSk7CisgICAgICAgICAgICBlbWl0SnVt
cFNsb3dUb0hvdChqdW1wKCksIGluc3RydWN0aW9uU2l6ZSk7CiAKICAgICAgICAgICAgIGZhaWwx
LmxpbmsodGhpcyk7CiAgICAgICAgIH0KQEAgLTM1Miw3ICszNzIsNyBAQCB2b2lkIEpJVDo6ZW1p
dF9jb21wYXJlQW5kSnVtcFNsb3coY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCBEb3Vi
bGVDb25kaXRpbwogCiAgICAgICAgIGVtaXRKdW1wU2xvd1RvSG90KGJyYW5jaERvdWJsZShjb25k
aXRpb24sIGZwUmVnVDAsIGZwUmVnVDEpLCB0YXJnZXQpOwogCi0gICAgICAgIGVtaXRKdW1wU2xv
d1RvSG90KGp1bXAoKSwgaW5zdHJ1Y3Rpb24tPnNpemUoKSk7CisgICAgICAgIGVtaXRKdW1wU2xv
d1RvSG90KGp1bXAoKSwgaW5zdHJ1Y3Rpb25TaXplKTsKIAogICAgICAgICBmYWlsMS5saW5rKHRo
aXMpOwogICAgICAgICBmYWlsMi5saW5rKHRoaXMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384239</attachid>
            <date>2019-11-23 09:46:13 -0800</date>
            <delta_ts>2019-12-10 10:56:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204549-20191123094611.patch</filename>
            <type>text/plain</type>
            <size>53818</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyODEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NTczNmFkZTg5M2Y1NThlODZkNjYyZDY5ZGI3ZGI5ZDZiZjJiYzU0Li5mZGZiOTUxMmVhYzZhOWI4
ZDU1MTc0YzE3MTkzYjNlNjEwZjc2YjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAxOS0xMS0yMyAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBSZWR1Y2UgSlNDJ3MgYmluYXJ5IHNpemUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDU0OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBXYXNtIGludGVycHJldGVyIGxhbmRl
ZCBpbiByMjUxODg2IGFuZCBzaWduaWZpY2FudGx5IGluY3JlYXNlZCBKU0MncyBiaW5hcnkgc2l6
ZS4gVG8gdHJ5IGFuZAorICAgICAgICBvZmZzZXQgdGhhdCwgaGVyZSBhbmQgc29tZSBlYXN5IGZp
eGVzIHRoYXQgZ2V0IHVzIH4yMDBrYiBiYWNrOgorICAgICAgICAtIFdlIHdlcmUgZ2VuZXJhdGlu
ZyAyIGluc3RhbmNlcyBvZiBkdW1wQnl0ZWNvZGUsIGF0IDMwa2IgZWFjaAorICAgICAgICAtIFdl
IGhhZCAzIGluc3RhbmNlcyBvZiBjb21wdXRlVXNlc0ZvckJ5dGVjb2RlSW5kZXggYXQgMTFrYiBl
YWNoCisgICAgICAgIC0gV2UgaGFkIDggaW5zdGFuY2VzIG9mIGVtaXRfY29tcGFyZUFuZEp1bXAo
U2xvdykgYXQgOGtiICg3a2IgZm9yIFNsb3cpIGVhY2guCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAg
ICAqIGJ5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVE
dW1wZXJCYXNlOjpwcmludExvY2F0aW9uQW5kT3ApOgorICAgICAgICAoSlNDOjpCeXRlY29kZUR1
bXBlckJhc2U6OmR1bXBWYWx1ZSk6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIu
aDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVEdW1wZXJCYXNlOjp+Qnl0ZWNvZGVEdW1wZXJCYXNl
KToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVEdW1wZXJCYXNlOjpkdW1wVmFsdWUpOgorICAgICAg
ICAoSlNDOjpCeXRlY29kZUR1bXBlckJhc2U6OkJ5dGVjb2RlRHVtcGVyQmFzZSk6CisgICAgICAg
IChKU0M6OkJ5dGVjb2RlRHVtcGVyOjpCeXRlY29kZUR1bXBlcik6CisgICAgICAgICogYnl0ZWNv
ZGUvQnl0ZWNvZGVVc2VEZWYuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaC4KKyAgICAgICAgKEpTQzo6Y29tcHV0ZVVzZXNGb3JC
eXRlY29kZUluZGV4SW1wbCk6CisgICAgICAgIChKU0M6OmNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVJ
bmRleEltcGwpOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmg6CisgICAgICAg
IChKU0M6OmNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVJbmRleCk6CisgICAgICAgIChKU0M6OmNvbXB1
dGVEZWZzRm9yQnl0ZWNvZGVJbmRleCk6CisgICAgICAgICogZ2VuZXJhdG9yL0RTTC5yYjoKKyAg
ICAgICAgKiBnZW5lcmF0b3IvT3Bjb2RlLnJiOgorICAgICAgICAqIGdlbmVyYXRvci9PcHRpb25z
LnJiOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUQXJpdGhtZXRpYy5j
cHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9jb21wYXJlQW5kSnVtcCk6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdF9jb21wYXJlQW5kSnVtcEltcGwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRfY29tcGFyZVVuc2lnbmVkQW5kSnVtcCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9jb21w
YXJlVW5zaWduZWRBbmRKdW1wSW1wbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9jb21wYXJl
VW5zaWduZWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfY29tcGFyZVVuc2lnbmVkSW1wbCk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9jb21wYXJlQW5kSnVtcFNsb3cpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfY29tcGFyZUFuZEp1bXBTbG93SW1wbCk6CisKIDIwMTktMTEtMjIgIFRh
ZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkFzc2VtYmx5
XSBWYWxpZGF0ZSBhbmQgZ2VuZXJhdGUgYnl0ZWNvZGUgaW4gb25lIHBhc3MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAwZjhjNDE5NDA2NGZmMDNhN2MwNjgwNDA2YTRmY2Y2
ZWFkYzYwNDIzLi5jZjVjZGU0NDE1NGU3ZmE4NTQ0N2RhN2UyZWY3OTE0YWE0YmM2MmZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMTMsMTAgKzIxMywxMCBAQCBzZXQo
R0VORVJBVE9SCiApCiAKIGFkZF9jdXN0b21fY29tbWFuZCgKLSAgICBPVVRQVVQgJHtKYXZhU2Ny
aXB0Q29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9CeXRlY29kZXMuaCAke0phdmFTY3JpcHRDb3Jl
X0RFUklWRURfU09VUkNFU19ESVJ9L0luaXRCeXRlY29kZXMuYXNtICR7SmF2YVNjcmlwdENvcmVf
REVSSVZFRF9TT1VSQ0VTX0RJUn0vQnl0ZWNvZGVTdHJ1Y3RzLmggJHtKYXZhU2NyaXB0Q29yZV9E
RVJJVkVEX1NPVVJDRVNfRElSfS9CeXRlY29kZUluZGljZXMuaCAke0phdmFTY3JpcHRDb3JlX0RF
UklWRURfU09VUkNFU19ESVJ9L1dhc21MTEludEdlbmVyYXRvcklubGluZXMuaCAke0phdmFTY3Jp
cHRDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0luaXRXYXNtLmFzbQorICAgIE9VVFBVVCAke0ph
dmFTY3JpcHRDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0J5dGVjb2Rlcy5oICR7SmF2YVNjcmlw
dENvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vSW5pdEJ5dGVjb2Rlcy5hc20gJHtKYXZhU2NyaXB0
Q29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9CeXRlY29kZVN0cnVjdHMuaCAke0phdmFTY3JpcHRD
b3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0J5dGVjb2RlSW5kaWNlcy5oICR7SmF2YVNjcmlwdENv
cmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vV2FzbUxMSW50R2VuZXJhdG9ySW5saW5lcy5oICR7SmF2
YVNjcmlwdENvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vSW5pdFdhc20uYXNtICR7SmF2YVNjcmlw
dENvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQnl0ZWNvZGVEdW1wZXJHZW5lcmF0ZWQuY3BwCiAg
ICAgTUFJTl9ERVBFTkRFTkNZICR7SkFWQVNDUklQVENPUkVfRElSfS9nZW5lcmF0b3IvbWFpbi5y
YgogICAgIERFUEVORFMgJHtHRU5FUkFUT1J9IGJ5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYgotICAg
IENPTU1BTkQgJHtSVUJZX0VYRUNVVEFCTEV9ICR7SkFWQVNDUklQVENPUkVfRElSfS9nZW5lcmF0
b3IvbWFpbi5yYiAtLWJ5dGVjb2Rlc19oICR7SmF2YVNjcmlwdENvcmVfREVSSVZFRF9TT1VSQ0VT
X0RJUn0vQnl0ZWNvZGVzLmggLS1pbml0X2J5dGVjb2Rlc19hc20gJHtKYXZhU2NyaXB0Q29yZV9E
RVJJVkVEX1NPVVJDRVNfRElSfS9Jbml0Qnl0ZWNvZGVzLmFzbSAtLWJ5dGVjb2RlX3N0cnVjdHNf
aCAke0phdmFTY3JpcHRDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0J5dGVjb2RlU3RydWN0cy5o
IC0tYnl0ZWNvZGVfaW5kaWNlc19oICR7SmF2YVNjcmlwdENvcmVfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vQnl0ZWNvZGVJbmRpY2VzLmggJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2J5dGVjb2RlL0J5dGVj
b2RlTGlzdC5yYiAtLXdhc21fanNvbiAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vd2FzbS93YXNtLmpz
b24gLS13YXNtX2xsaW50X2dlbmVyYXRvcl9oICR7SmF2YVNjcmlwdENvcmVfREVSSVZFRF9TT1VS
Q0VTX0RJUn0vV2FzbUxMSW50R2VuZXJhdG9ySW5saW5lcy5oIC0taW5pdF93YXNtX2xsaW50ICR7
SmF2YVNjcmlwdENvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vSW5pdFdhc20uYXNtCisgICAgQ09N
TUFORCAke1JVQllfRVhFQ1VUQUJMRX0gJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2dlbmVyYXRvci9t
YWluLnJiIC0tYnl0ZWNvZGVzX2ggJHtKYXZhU2NyaXB0Q29yZV9ERVJJVkVEX1NPVVJDRVNfRElS
fS9CeXRlY29kZXMuaCAtLWluaXRfYnl0ZWNvZGVzX2FzbSAke0phdmFTY3JpcHRDb3JlX0RFUklW
RURfU09VUkNFU19ESVJ9L0luaXRCeXRlY29kZXMuYXNtIC0tYnl0ZWNvZGVfc3RydWN0c19oICR7
SmF2YVNjcmlwdENvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQnl0ZWNvZGVTdHJ1Y3RzLmggLS1i
eXRlY29kZV9pbmRpY2VzX2ggJHtKYXZhU2NyaXB0Q29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9C
eXRlY29kZUluZGljZXMuaCAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0ZWNvZGUvQnl0ZWNvZGVM
aXN0LnJiIC0td2FzbV9qc29uICR7SkFWQVNDUklQVENPUkVfRElSfS93YXNtL3dhc20uanNvbiAt
LXdhc21fbGxpbnRfZ2VuZXJhdG9yX2ggJHtKYXZhU2NyaXB0Q29yZV9ERVJJVkVEX1NPVVJDRVNf
RElSfS9XYXNtTExJbnRHZW5lcmF0b3JJbmxpbmVzLmggLS1pbml0X3dhc21fbGxpbnQgJHtKYXZh
U2NyaXB0Q29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9Jbml0V2FzbS5hc20gLS1ieXRlY29kZV9k
dW1wZXIgJHtKYXZhU2NyaXB0Q29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9CeXRlY29kZUR1bXBl
ckdlbmVyYXRlZC5jcHAKICAgICBWRVJCQVRJTSkKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMTRhYTQy
MGNmM2Y0YzI3M2Q5YThhYWIzOTEwODMwZjk2YzhkNGY0My4uOGJiMTc1OGQ3YjlmNjU4ZTg0OGY3
N2E2ZDZlOTMyNTNkN2U2ZWVjZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtOSw2ICs5LDcgQEAgJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL0JpZ0ludENvbnN0
cnVjdG9yLmx1dC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNj
cmlwdENvcmUvQmlnSW50UHJvdG90eXBlLmx1dC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvQm9vbGVhblByb3RvdHlwZS5sdXQuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL0J5dGVjb2RlQ2Fj
aGVWZXJzaW9uLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2Ny
aXB0Q29yZS9CeXRlY29kZUR1bXBlckdlbmVyYXRlZC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9CeXRlY29kZUluZGljZXMuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL0J5dGVjb2RlU3Ry
dWN0cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENv
cmUvQnl0ZWNvZGVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVk
U291cmNlcy5tYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
aW5kZXggMzBkZDI1OGE0MGVkYzYyNDcwZDg5MzAwZGQ4ZWEwNzM0YzMzYjI5MS4uYWQxY2Y3MTJk
ZjVmN2U3MmM5ZDM2M2UzNzI4MTNiMzgzY2RiYjQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTIxNiw2ICsyMTYsNyBAQCBCWVRFQ09ERV9GSUxFUyA9
IFwKICAgICBJbml0Qnl0ZWNvZGVzLmFzbSBcCiAgICAgV2FzbUxMSW50R2VuZXJhdG9ySW5saW5l
cy5oIFwKICAgICBJbml0V2FzbS5hc20gXAorICAgIEJ5dGVjb2RlRHVtcGVyR2VuZXJhdGVkLmNw
cCBcCiAjCiBCWVRFQ09ERV9GSUxFU19QQVRURVJOUyA9ICQoc3Vic3QgLiwlLCQoQllURUNPREVf
RklMRVMpKQogCkBAIC0yMzAsNiArMjMxLDcgQEAgJChCWVRFQ09ERV9GSUxFU19QQVRURVJOUyk6
ICQod2lsZGNhcmQgJChKYXZhU2NyaXB0Q29yZSkvZ2VuZXJhdG9yLyoucmIpICQoSmF2YVMKICAg
ICAtLXdhc21fanNvbiAkKEphdmFTY3JpcHRDb3JlKS93YXNtL3dhc20uanNvbiBcCiAgICAgLS13
YXNtX2xsaW50X2dlbmVyYXRvcl9oIFdhc21MTEludEdlbmVyYXRvcklubGluZXMuaCBcCiAgICAg
LS1pbml0X3dhc21fbGxpbnQgSW5pdFdhc20uYXNtIFwKKyAgICAtLWJ5dGVjb2RlX2R1bXBlciBC
eXRlY29kZUR1bXBlckdlbmVyYXRlZC5jcHAgXAogCiAjIEluc3BlY3RvciBpbnRlcmZhY2VzCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAppbmRleCAzZDcwZWQ4MzVkY2JkOTBlMDM1NTU4NDZh
YTJkODNhOWU2YjJkMDQyLi40NGVkYzY5NzE1MWZiNmUyMmRhZGFhMzc4ZTEwNDVlMThmNDQwYmQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0CkBAIC0yMDEsNiArMjAxLDcgQEAgYnl0ZWNv
ZGUvQnl0ZWNvZGVJbmRleC5jcHAKIGJ5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnku
Y3BwCiBieXRlY29kZS9CeXRlY29kZUxpdmVuZXNzQW5hbHlzaXMuY3BwCiBieXRlY29kZS9CeXRl
Y29kZVJld3JpdGVyLmNwcAorYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwCiBieXRlY29kZS9D
YWxsRWRnZS5jcHAKIGJ5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKIGJ5dGVjb2RlL0NhbGxMaW5r
U3RhdHVzLmNwcApAQCAtMjg0LDYgKzI4NSw5IEBAIGJ5dGVjb2RlL1ZhcmlhYmxlV3JpdGVGaXJl
RGV0YWlsLmNwcAogYnl0ZWNvZGUvVmlydHVhbFJlZ2lzdGVyLmNwcAogYnl0ZWNvZGUvV2F0Y2hw
b2ludC5jcHAKIAorLy8gRGVyaXZlZCBTb3VyY2VzCitCeXRlY29kZUR1bXBlckdlbmVyYXRlZC5j
cHAKKwogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAogYnl0ZWNvbXBpbGVyL05v
ZGVzQ29kZWdlbi5jcHAKIGJ5dGVjb21waWxlci9Qcm9maWxlVHlwZUJ5dGVjb2RlRmxhZy5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBl
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3Bw
CmluZGV4IDdiNDE1NDkyZDUxN2EyZGI0YzIxZDkzMzYzM2QxOGY5N2IzNTJiYmUuLmJiYjc5NDMz
NGQxMzdjZWRjYTgxNTViNjEyM2I4ODk3OGIxODllMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcApAQCAtNTUsNiArNTUsMzAgQEAg
c3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBpc0NvbnN0YW50UmVnaXN0ZXJJbmRleChpbnQgaW5k
ZXgpCiAgICAgcmV0dXJuIGluZGV4ID49IEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4OwogfQog
Cit2b2lkIEJ5dGVjb2RlRHVtcGVyQmFzZTo6cHJpbnRMb2NhdGlvbkFuZE9wKEluc3RydWN0aW9u
U3RyZWFtOjpPZmZzZXQgbG9jYXRpb24sIGNvbnN0IGNoYXIqIG9wKQoreworICAgIG1fY3VycmVu
dExvY2F0aW9uID0gbG9jYXRpb247CisgICAgbV9vdXQucHJpbnRmKCJbJTR1XSAlLTE4cyAiLCBs
b2NhdGlvbiwgb3ApOworfQorCit2b2lkIEJ5dGVjb2RlRHVtcGVyQmFzZTo6ZHVtcFZhbHVlKFZp
cnR1YWxSZWdpc3RlciByZWcpCit7CisgICAgbV9vdXQucHJpbnRmKCIlcyIsIHJlZ2lzdGVyTmFt
ZShyZWcub2Zmc2V0KCkpLmRhdGEoKSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFRyYWl0cz4K
K3ZvaWQgQnl0ZWNvZGVEdW1wZXJCYXNlOjpkdW1wVmFsdWUoR2VuZXJpY0JvdW5kTGFiZWw8VHJh
aXRzPiBsYWJlbCkKK3sKKyAgICBJbnN0cnVjdGlvblN0cmVhbTo6T2Zmc2V0IHRhcmdldE9mZnNl
dCA9IGxhYmVsLnRhcmdldCgpICsgbV9jdXJyZW50TG9jYXRpb247CisgICAgbV9vdXQucHJpbnQo
bGFiZWwudGFyZ2V0KCksICIoLT4iLCB0YXJnZXRPZmZzZXQsICIpIik7Cit9CisKK3RlbXBsYXRl
IHZvaWQgQnl0ZWNvZGVEdW1wZXJCYXNlOjpkdW1wVmFsdWUoR2VuZXJpY0JvdW5kTGFiZWw8SlNH
ZW5lcmF0b3JUcmFpdHM+KTsKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKK3RlbXBsYXRlIHZv
aWQgQnl0ZWNvZGVEdW1wZXJCYXNlOjpkdW1wVmFsdWUoR2VuZXJpY0JvdW5kTGFiZWw8V2FzbTo6
R2VuZXJhdG9yVHJhaXRzPik7CisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQorCiB0ZW1w
bGF0ZTxjbGFzcyBCbG9jaz4KIENTdHJpbmcgQnl0ZWNvZGVEdW1wZXI8QmxvY2s+OjpyZWdpc3Rl
ck5hbWUoaW50IHIpIGNvbnN0CiB7CkBAIC03MSwxOSArOTUsNiBAQCBDU3RyaW5nIEJ5dGVjb2Rl
RHVtcGVyPEJsb2NrPjo6Y29uc3RhbnROYW1lKGludCBpbmRleCkgY29uc3QKICAgICByZXR1cm4g
dG9DU3RyaW5nKHZhbHVlLCAiKCIsIFZpcnR1YWxSZWdpc3RlcihpbmRleCksICIpIik7CiB9CiAK
LXRlbXBsYXRlPGNsYXNzIEJsb2NrPgotdm9pZCBCeXRlY29kZUR1bXBlcjxCbG9jaz46OnByaW50
TG9jYXRpb25BbmRPcChJbnN0cnVjdGlvblN0cmVhbTo6T2Zmc2V0IGxvY2F0aW9uLCBjb25zdCBj
aGFyKiBvcCkKLXsKLSAgICBtX2N1cnJlbnRMb2NhdGlvbiA9IGxvY2F0aW9uOwotICAgIG1fb3V0
LnByaW50ZigiWyU0dV0gJS0xOHMgIiwgbG9jYXRpb24sIG9wKTsKLX0KLQotdGVtcGxhdGU8Y2xh
c3MgQmxvY2s+Ci12b2lkIEJ5dGVjb2RlRHVtcGVyPEJsb2NrPjo6ZHVtcFZhbHVlKFZpcnR1YWxS
ZWdpc3RlciByZWcpCi17Ci0gICAgbV9vdXQucHJpbnRmKCIlcyIsIHJlZ2lzdGVyTmFtZShyZWcu
b2Zmc2V0KCkpLmRhdGEoKSk7Ci19Ci0KIHRlbXBsYXRlPGNsYXNzIEJsb2NrPgogdm9pZCBCeXRl
Y29kZUR1bXBlcjxCbG9jaz46OmR1bXBCeXRlY29kZShjb25zdCBJbnN0cnVjdGlvblN0cmVhbTo6
UmVmJiBpdCwgY29uc3QgSUNTdGF0dXNNYXAmKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuaAppbmRleCA2ODllMDIyY2I0NWIwYjMyMzJhOTNk
YjdiYTk3NTM2OGQwMmIzY2ZjLi41YmU5NDEyN2NhMjQ2NWVmNzNiZjY4MTJhY2NhYzA1MjA5MmMy
YjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVE
dW1wZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1w
ZXIuaApAQCAtMjYsMjAgKzI2LDIxIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQnl0
ZWNvZGVHZW5lcmF0b3JCYXNlLmgiCiAjaW5jbHVkZSAiQ2FsbExpbmtJbmZvLmgiCiAjaW5jbHVk
ZSAiSUNTdGF0dXNNYXAuaCIKICNpbmNsdWRlICJJbnN0cnVjdGlvblN0cmVhbS5oIgotI2luY2x1
ZGUgIkxhYmVsLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlU3R1YkluZm8uaCIKIAogbmFtZXNwYWNl
IEpTQyB7CiAKIHN0cnVjdCBJbnN0cnVjdGlvbjsKIAotdGVtcGxhdGU8Y2xhc3MgQmxvY2s+Ci1j
bGFzcyBCeXRlY29kZUR1bXBlciB7CitjbGFzcyBCeXRlY29kZUR1bXBlckJhc2UgewogcHVibGlj
OgotICAgIHN0YXRpYyB2b2lkIGR1bXBCeXRlY29kZShCbG9jayosIFByaW50U3RyZWFtJiBvdXQs
IGNvbnN0IEluc3RydWN0aW9uU3RyZWFtOjpSZWYmIGl0LCBjb25zdCBJQ1N0YXR1c01hcCYgPSBJ
Q1N0YXR1c01hcCgpKTsKKyAgICB2aXJ0dWFsIH5CeXRlY29kZUR1bXBlckJhc2UoKQorICAgIHsK
KyAgICB9CiAKICAgICB2b2lkIHByaW50TG9jYXRpb25BbmRPcChJbnN0cnVjdGlvblN0cmVhbTo6
T2Zmc2V0IGxvY2F0aW9uLCBjb25zdCBjaGFyKiBvcCk7CiAKQEAgLTU0LDE4ICs1NSwzMCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBkdW1wVmFsdWUoVmlydHVhbFJlZ2lzdGVyKTsKIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFRyYWl0cz4KLSAgICB2b2lkIGR1bXBWYWx1ZShHZW5lcmljQm91bmRMYWJl
bDxUcmFpdHM+IGxhYmVsKQorICAgIHZvaWQgZHVtcFZhbHVlKEdlbmVyaWNCb3VuZExhYmVsPFRy
YWl0cz4pOworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICB2b2lkIGR1bXBWYWx1ZShU
IHYpIHsgbV9vdXQucHJpbnQodik7IH0KKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgQ1N0cmlu
ZyByZWdpc3Rlck5hbWUoaW50KSBjb25zdCA9IDA7CisKKyAgICBCeXRlY29kZUR1bXBlckJhc2Uo
UHJpbnRTdHJlYW0mIG91dCkKKyAgICAgICAgOiBtX291dChvdXQpCiAgICAgewotICAgICAgICBJ
bnN0cnVjdGlvblN0cmVhbTo6T2Zmc2V0IHRhcmdldE9mZnNldCA9IGxhYmVsLnRhcmdldCgpICsg
bV9jdXJyZW50TG9jYXRpb247Ci0gICAgICAgIG1fb3V0LnByaW50KGxhYmVsLnRhcmdldCgpLCAi
KC0+IiwgdGFyZ2V0T2Zmc2V0LCAiKSIpOwogICAgIH0KIAorICAgIFByaW50U3RyZWFtJiBtX291
dDsKKyAgICBJbnN0cnVjdGlvblN0cmVhbTo6T2Zmc2V0IG1fY3VycmVudExvY2F0aW9uIHsgMCB9
OworfTsKIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgdm9pZCBkdW1wVmFsdWUoVCB2
KSB7IG1fb3V0LnByaW50KHYpOyB9Cit0ZW1wbGF0ZTxjbGFzcyBCbG9jaz4KK2NsYXNzIEJ5dGVj
b2RlRHVtcGVyIDogcHVibGljIEJ5dGVjb2RlRHVtcGVyQmFzZSB7CitwdWJsaWM6CisgICAgc3Rh
dGljIHZvaWQgZHVtcEJ5dGVjb2RlKEJsb2NrKiwgUHJpbnRTdHJlYW0mIG91dCwgY29uc3QgSW5z
dHJ1Y3Rpb25TdHJlYW06OlJlZiYgaXQsIGNvbnN0IElDU3RhdHVzTWFwJiA9IElDU3RhdHVzTWFw
KCkpOwogCiAgICAgQnl0ZWNvZGVEdW1wZXIoQmxvY2sqIGJsb2NrLCBQcmludFN0cmVhbSYgb3V0
KQotICAgICAgICA6IG1fb3V0KG91dCkKKyAgICAgICAgOiBCeXRlY29kZUR1bXBlckJhc2Uob3V0
KQogICAgICAgICAsIG1fYmxvY2soYmxvY2spCiAgICAgewogICAgIH0KQEAgLTc3LDE0ICs5MCwx
MiBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIGR1bXBCeXRlY29kZShjb25zdCBJbnN0cnVjdGlv
blN0cmVhbTo6UmVmJiBpdCwgY29uc3QgSUNTdGF0dXNNYXAmKTsKIAotICAgIFByaW50U3RyZWFt
JiBtX291dDsKKyAgICBDU3RyaW5nIHJlZ2lzdGVyTmFtZShpbnQgcikgY29uc3Qgb3ZlcnJpZGU7
CiAKIHByaXZhdGU6Ci0gICAgQ1N0cmluZyByZWdpc3Rlck5hbWUoaW50IHIpIGNvbnN0OwogICAg
IHZpcnR1YWwgQ1N0cmluZyBjb25zdGFudE5hbWUoaW50IGluZGV4KSBjb25zdDsKIAogICAgIEJs
b2NrKiBtX2Jsb2NrOwotICAgIEluc3RydWN0aW9uU3RyZWFtOjpPZmZzZXQgbV9jdXJyZW50TG9j
YXRpb24geyAwIH07CiB9OwogCiB0ZW1wbGF0ZTxjbGFzcyBCbG9jaz4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVi
NjMyOTM0ZWI2YzFmYzVjY2FhNzFiMGU0MjkzYWE5YWQ2NjJlOTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwCkBAIC0w
LDAgKzEsNDk3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiQnl0ZWNvZGVVc2VEZWYuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKKyNkZWZpbmUgQ0FM
TF9GVU5DVE9SKF9fYXJnKSBcCisgICAgZnVuY3RvcihfX2J5dGVjb2RlLm1fIyNfX2FyZyk7CisK
KyNkZWZpbmUgVVNFU19PUl9ERUZTKF9fb3Bjb2RlLCAuLi4pIFwKKyAgICBjYXNlIF9fb3Bjb2Rl
OjpvcGNvZGVJRDogeyBcCisgICAgICAgIGF1dG8gX19ieXRlY29kZSA9IGluc3RydWN0aW9uLT5h
czxfX29wY29kZT4oKTsgXAorICAgICAgICBXVEZfTEFaWV9GT1JfRUFDSF9URVJNKENBTExfRlVO
Q1RPUiwgX19WQV9BUkdTX18pIFwKKyAgICAgICAgcmV0dXJuOyBcCisgICAgfQorCisjZGVmaW5l
IFVTRVMgVVNFU19PUl9ERUZTCisjZGVmaW5lIERFRlMgVVNFU19PUl9ERUZTCisKK3ZvaWQgY29t
cHV0ZVVzZXNGb3JCeXRlY29kZUluZGV4SW1wbChWaXJ0dWFsUmVnaXN0ZXIgc2NvcGVSZWdpc3Rl
ciwgY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCBjb25zdCBGdW5jdGlvbjx2b2lkKFZp
cnR1YWxSZWdpc3Rlcik+JiBmdW5jdG9yKQoreworICAgIE9wY29kZUlEIG9wY29kZUlEID0gaW5z
dHJ1Y3Rpb24tPm9wY29kZUlEKCk7CisKKyAgICBhdXRvIGhhbmRsZU5ld0FycmF5TGlrZSA9IFsm
XShhdXRvIG9wKSB7CisgICAgICAgIGludCBiYXNlID0gb3AubV9hcmd2Lm9mZnNldCgpOworICAg
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0YXRpY19jYXN0PGludD4ob3AubV9hcmdjKTsgaSsr
KQorICAgICAgICAgICAgZnVuY3RvcihWaXJ0dWFsUmVnaXN0ZXIgeyBiYXNlIC0gaSB9KTsKKyAg
ICB9OworCisgICAgYXV0byBoYW5kbGVPcENhbGxMaWtlID0gWyZdKGF1dG8gb3ApIHsKKyAgICAg
ICAgZnVuY3RvcihvcC5tX2NhbGxlZSk7CisgICAgICAgIGludCBsYXN0QXJnID0gLXN0YXRpY19j
YXN0PGludD4ob3AubV9hcmd2KSArIENhbGxGcmFtZTo6dGhpc0FyZ3VtZW50T2Zmc2V0KCk7Cisg
ICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3RhdGljX2Nhc3Q8aW50PihvcC5tX2FyZ2MpOyBp
KyspCisgICAgICAgICAgICBmdW5jdG9yKFZpcnR1YWxSZWdpc3RlciB7IGxhc3RBcmcgKyBpIH0p
OworICAgICAgICBpZiAob3Bjb2RlSUQgPT0gb3BfY2FsbF9ldmFsKQorICAgICAgICAgICAgZnVu
Y3RvcihzY29wZVJlZ2lzdGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH07CisKKyAgICBzd2l0
Y2ggKG9wY29kZUlEKSB7CisgICAgY2FzZSBvcF93aWRlMTY6CisgICAgY2FzZSBvcF93aWRlMzI6
CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisKKyAgICAvLyBObyB1c2Vz
LgorICAgIGNhc2Ugb3BfbmV3X3JlZ2V4cDoKKyAgICBjYXNlIG9wX2RlYnVnOgorICAgIGNhc2Ug
b3Bfam5lcV9wdHI6CisgICAgY2FzZSBvcF9sb29wX2hpbnQ6CisgICAgY2FzZSBvcF9qbXA6Cisg
ICAgY2FzZSBvcF9uZXdfb2JqZWN0OgorICAgIGNhc2Ugb3BfbmV3X3Byb21pc2U6CisgICAgY2Fz
ZSBvcF9uZXdfZ2VuZXJhdG9yOgorICAgIGNhc2Ugb3BfZW50ZXI6CisgICAgY2FzZSBvcF9hcmd1
bWVudF9jb3VudDoKKyAgICBjYXNlIG9wX2NhdGNoOgorICAgIGNhc2Ugb3BfcHJvZmlsZV9jb250
cm9sX2Zsb3c6CisgICAgY2FzZSBvcF9jcmVhdGVfZGlyZWN0X2FyZ3VtZW50czoKKyAgICBjYXNl
IG9wX2NyZWF0ZV9jbG9uZWRfYXJndW1lbnRzOgorICAgIGNhc2Ugb3BfZ2V0X3Jlc3RfbGVuZ3Ro
OgorICAgIGNhc2Ugb3BfY2hlY2tfdHJhcHM6CisgICAgY2FzZSBvcF9nZXRfYXJndW1lbnQ6Cisg
ICAgY2FzZSBvcF9ub3A6CisgICAgY2FzZSBvcF91bnJlYWNoYWJsZToKKyAgICBjYXNlIG9wX3N1
cGVyX3NhbXBsZXJfYmVnaW46CisgICAgY2FzZSBvcF9zdXBlcl9zYW1wbGVyX2VuZDoKKyAgICAg
ICAgcmV0dXJuOworCisgICAgVVNFUyhPcEdldFNjb3BlLCBkc3QpCisgICAgVVNFUyhPcFRvVGhp
cywgc3JjRHN0KQorICAgIFVTRVMoT3BDaGVja1RkeiwgdGFyZ2V0VmlydHVhbFJlZ2lzdGVyKQor
ICAgIFVTRVMoT3BJZGVudGl0eVdpdGhQcm9maWxlLCBzcmNEc3QpCisgICAgVVNFUyhPcFByb2Zp
bGVUeXBlLCB0YXJnZXRWaXJ0dWFsUmVnaXN0ZXIpOworICAgIFVTRVMoT3BUaHJvdywgdmFsdWUp
CisgICAgVVNFUyhPcFRocm93U3RhdGljRXJyb3IsIG1lc3NhZ2UpCisgICAgVVNFUyhPcEVuZCwg
dmFsdWUpCisgICAgVVNFUyhPcFJldCwgdmFsdWUpCisgICAgVVNFUyhPcEp0cnVlLCBjb25kaXRp
b24pCisgICAgVVNFUyhPcEpmYWxzZSwgY29uZGl0aW9uKQorICAgIFVTRVMoT3BKZXFOdWxsLCB2
YWx1ZSkKKyAgICBVU0VTKE9wSm5lcU51bGwsIHZhbHVlKQorICAgIFVTRVMoT3BKdW5kZWZpbmVk
T3JOdWxsLCB2YWx1ZSkKKyAgICBVU0VTKE9wSm51bmRlZmluZWRPck51bGwsIHZhbHVlKQorICAg
IFVTRVMoT3BEZWMsIHNyY0RzdCkKKyAgICBVU0VTKE9wSW5jLCBzcmNEc3QpCisgICAgVVNFUyhP
cExvZ1NoYWRvd0NoaWNrZW5Qcm9sb2d1ZSwgc2NvcGUpCisKKyAgICBVU0VTKE9wSmxlc3MsIGxo
cywgcmhzKQorICAgIFVTRVMoT3BKbGVzc2VxLCBsaHMsIHJocykKKyAgICBVU0VTKE9wSmdyZWF0
ZXIsIGxocywgcmhzKQorICAgIFVTRVMoT3BKZ3JlYXRlcmVxLCBsaHMsIHJocykKKyAgICBVU0VT
KE9wSm5sZXNzLCBsaHMsIHJocykKKyAgICBVU0VTKE9wSm5sZXNzZXEsIGxocywgcmhzKQorICAg
IFVTRVMoT3BKbmdyZWF0ZXIsIGxocywgcmhzKQorICAgIFVTRVMoT3BKbmdyZWF0ZXJlcSwgbGhz
LCByaHMpCisgICAgVVNFUyhPcEplcSwgbGhzLCByaHMpCisgICAgVVNFUyhPcEpuZXEsIGxocywg
cmhzKQorICAgIFVTRVMoT3BKc3RyaWN0ZXEsIGxocywgcmhzKQorICAgIFVTRVMoT3BKbnN0cmlj
dGVxLCBsaHMsIHJocykKKyAgICBVU0VTKE9wSmJlbG93LCBsaHMsIHJocykKKyAgICBVU0VTKE9w
SmJlbG93ZXEsIGxocywgcmhzKQorICAgIFVTRVMoT3BTZXRGdW5jdGlvbk5hbWUsIGZ1bmN0aW9u
LCBuYW1lKQorICAgIFVTRVMoT3BMb2dTaGFkb3dDaGlja2VuVGFpbCwgdGhpc1ZhbHVlLCBzY29w
ZSkKKworICAgIFVTRVMoT3BQdXRCeVZhbCwgYmFzZSwgcHJvcGVydHksIHZhbHVlKQorICAgIFVT
RVMoT3BQdXRCeVZhbERpcmVjdCwgYmFzZSwgcHJvcGVydHksIHZhbHVlKQorCisgICAgVVNFUyhP
cFB1dEJ5SWQsIGJhc2UsIHZhbHVlKQorICAgIFVTRVMoT3BQdXRUb1Njb3BlLCBzY29wZSwgdmFs
dWUpCisgICAgVVNFUyhPcFB1dFRvQXJndW1lbnRzLCBhcmd1bWVudHMsIHZhbHVlKQorCisgICAg
VVNFUyhPcFB1dEJ5SWRXaXRoVGhpcywgYmFzZSwgdGhpc1ZhbHVlLCB2YWx1ZSkKKworICAgIFVT
RVMoT3BQdXRCeVZhbFdpdGhUaGlzLCBiYXNlLCB0aGlzVmFsdWUsIHByb3BlcnR5LCB2YWx1ZSkK
KworICAgIFVTRVMoT3BQdXRHZXR0ZXJCeUlkLCBiYXNlLCBhY2Nlc3NvcikKKyAgICBVU0VTKE9w
UHV0U2V0dGVyQnlJZCwgYmFzZSwgYWNjZXNzb3IpCisKKyAgICBVU0VTKE9wUHV0R2V0dGVyU2V0
dGVyQnlJZCwgYmFzZSwgZ2V0dGVyLCBzZXR0ZXIpCisKKyAgICBVU0VTKE9wUHV0R2V0dGVyQnlW
YWwsIGJhc2UsIHByb3BlcnR5LCBhY2Nlc3NvcikKKyAgICBVU0VTKE9wUHV0U2V0dGVyQnlWYWws
IGJhc2UsIHByb3BlcnR5LCBhY2Nlc3NvcikKKworICAgIFVTRVMoT3BEZWZpbmVEYXRhUHJvcGVy
dHksIGJhc2UsIHByb3BlcnR5LCB2YWx1ZSwgYXR0cmlidXRlcykKKworICAgIFVTRVMoT3BEZWZp
bmVBY2Nlc3NvclByb3BlcnR5LCBiYXNlLCBwcm9wZXJ0eSwgZ2V0dGVyLCBzZXR0ZXIsIGF0dHJp
YnV0ZXMpCisKKyAgICBVU0VTKE9wU3ByZWFkLCBhcmd1bWVudCkKKyAgICBVU0VTKE9wR2V0UHJv
cGVydHlFbnVtZXJhdG9yLCBiYXNlKQorICAgIFVTRVMoT3BHZXRFbnVtZXJhYmxlTGVuZ3RoLCBi
YXNlKQorICAgIFVTRVMoT3BOZXdGdW5jRXhwLCBzY29wZSkKKyAgICBVU0VTKE9wTmV3R2VuZXJh
dG9yRnVuY0V4cCwgc2NvcGUpCisgICAgVVNFUyhPcE5ld0FzeW5jRnVuY0V4cCwgc2NvcGUpCisg
ICAgVVNFUyhPcFRvSW5kZXhTdHJpbmcsIGluZGV4KQorICAgIFVTRVMoT3BDcmVhdGVMZXhpY2Fs
RW52aXJvbm1lbnQsIHNjb3BlLCBzeW1ib2xUYWJsZSwgaW5pdGlhbFZhbHVlKQorICAgIFVTRVMo
T3BDcmVhdGVHZW5lcmF0b3JGcmFtZUVudmlyb25tZW50LCBzY29wZSwgc3ltYm9sVGFibGUsIGlu
aXRpYWxWYWx1ZSkKKyAgICBVU0VTKE9wUmVzb2x2ZVNjb3BlLCBzY29wZSkKKyAgICBVU0VTKE9w
UmVzb2x2ZVNjb3BlRm9ySG9pc3RpbmdGdW5jRGVjbEluRXZhbCwgc2NvcGUpCisgICAgVVNFUyhP
cEdldEZyb21TY29wZSwgc2NvcGUpCisgICAgVVNFUyhPcFRvUHJpbWl0aXZlLCBzcmMpCisgICAg
VVNFUyhPcFRyeUdldEJ5SWQsIGJhc2UpCisgICAgVVNFUyhPcEdldEJ5SWQsIGJhc2UpCisgICAg
VVNFUyhPcEdldEJ5SWREaXJlY3QsIGJhc2UpCisgICAgVVNFUyhPcEluQnlJZCwgYmFzZSkKKyAg
ICBVU0VTKE9wVHlwZW9mLCB2YWx1ZSkKKyAgICBVU0VTKE9wSXNFbXB0eSwgb3BlcmFuZCkKKyAg
ICBVU0VTKE9wSXNVbmRlZmluZWQsIG9wZXJhbmQpCisgICAgVVNFUyhPcElzVW5kZWZpbmVkT3JO
dWxsLCBvcGVyYW5kKQorICAgIFVTRVMoT3BJc0Jvb2xlYW4sIG9wZXJhbmQpCisgICAgVVNFUyhP
cElzTnVtYmVyLCBvcGVyYW5kKQorICAgIFVTRVMoT3BJc09iamVjdCwgb3BlcmFuZCkKKyAgICBV
U0VTKE9wSXNPYmplY3RPck51bGwsIG9wZXJhbmQpCisgICAgVVNFUyhPcElzQ2VsbFdpdGhUeXBl
LCBvcGVyYW5kKQorICAgIFVTRVMoT3BJc0Z1bmN0aW9uLCBvcGVyYW5kKQorICAgIFVTRVMoT3BU
b051bWJlciwgb3BlcmFuZCkKKyAgICBVU0VTKE9wVG9OdW1lcmljLCBvcGVyYW5kKQorICAgIFVT
RVMoT3BUb1N0cmluZywgb3BlcmFuZCkKKyAgICBVU0VTKE9wVG9PYmplY3QsIG9wZXJhbmQpCisg
ICAgVVNFUyhPcE5lZ2F0ZSwgb3BlcmFuZCkKKyAgICBVU0VTKE9wQml0bm90LCBvcGVyYW5kKQor
ICAgIFVTRVMoT3BFcU51bGwsIG9wZXJhbmQpCisgICAgVVNFUyhPcE5lcU51bGwsIG9wZXJhbmQp
CisgICAgVVNFUyhPcE5vdCwgb3BlcmFuZCkKKyAgICBVU0VTKE9wVW5zaWduZWQsIG9wZXJhbmQp
CisgICAgVVNFUyhPcE1vdiwgc3JjKQorICAgIFVTRVMoT3BOZXdBcnJheVdpdGhTaXplLCBsZW5n
dGgpCisgICAgVVNFUyhPcENyZWF0ZVRoaXMsIGNhbGxlZSkKKyAgICBVU0VTKE9wQ3JlYXRlUHJv
bWlzZSwgY2FsbGVlKQorICAgIFVTRVMoT3BDcmVhdGVHZW5lcmF0b3IsIGNhbGxlZSkKKyAgICBV
U0VTKE9wQ3JlYXRlQXN5bmNHZW5lcmF0b3IsIGNhbGxlZSkKKyAgICBVU0VTKE9wRGVsQnlJZCwg
YmFzZSkKKyAgICBVU0VTKE9wTmV3RnVuYywgc2NvcGUpCisgICAgVVNFUyhPcE5ld0FzeW5jR2Vu
ZXJhdG9yRnVuYywgc2NvcGUpCisgICAgVVNFUyhPcE5ld0FzeW5jR2VuZXJhdG9yRnVuY0V4cCwg
c2NvcGUpCisgICAgVVNFUyhPcE5ld0dlbmVyYXRvckZ1bmMsIHNjb3BlKQorICAgIFVTRVMoT3BO
ZXdBc3luY0Z1bmMsIHNjb3BlKQorICAgIFVTRVMoT3BHZXRQYXJlbnRTY29wZSwgc2NvcGUpCisg
ICAgVVNFUyhPcENyZWF0ZVNjb3BlZEFyZ3VtZW50cywgc2NvcGUpCisgICAgVVNFUyhPcENyZWF0
ZVJlc3QsIGFycmF5U2l6ZSkKKyAgICBVU0VTKE9wR2V0RnJvbUFyZ3VtZW50cywgYXJndW1lbnRz
KQorICAgIFVTRVMoT3BOZXdBcnJheUJ1ZmZlciwgaW1tdXRhYmxlQnV0dGVyZmx5KQorCisgICAg
VVNFUyhPcEhhc0dlbmVyaWNQcm9wZXJ0eSwgYmFzZSwgcHJvcGVydHkpCisgICAgVVNFUyhPcEhh
c0luZGV4ZWRQcm9wZXJ0eSwgYmFzZSwgcHJvcGVydHkpCisgICAgVVNFUyhPcEVudW1lcmF0b3JT
dHJ1Y3R1cmVQbmFtZSwgZW51bWVyYXRvciwgaW5kZXgpCisgICAgVVNFUyhPcEVudW1lcmF0b3JH
ZW5lcmljUG5hbWUsIGVudW1lcmF0b3IsIGluZGV4KQorICAgIFVTRVMoT3BHZXRCeVZhbCwgYmFz
ZSwgcHJvcGVydHkpCisgICAgVVNFUyhPcEluQnlWYWwsIGJhc2UsIHByb3BlcnR5KQorICAgIFVT
RVMoT3BPdmVycmlkZXNIYXNJbnN0YW5jZSwgY29uc3RydWN0b3IsIGhhc0luc3RhbmNlVmFsdWUp
CisgICAgVVNFUyhPcEluc3RhbmNlb2YsIHZhbHVlLCBwcm90b3R5cGUpCisgICAgVVNFUyhPcEFk
ZCwgbGhzLCByaHMpCisgICAgVVNFUyhPcE11bCwgbGhzLCByaHMpCisgICAgVVNFUyhPcERpdiwg
bGhzLCByaHMpCisgICAgVVNFUyhPcE1vZCwgbGhzLCByaHMpCisgICAgVVNFUyhPcFN1YiwgbGhz
LCByaHMpCisgICAgVVNFUyhPcFBvdywgbGhzLCByaHMpCisgICAgVVNFUyhPcExzaGlmdCwgbGhz
LCByaHMpCisgICAgVVNFUyhPcFJzaGlmdCwgbGhzLCByaHMpCisgICAgVVNFUyhPcFVyc2hpZnQs
IGxocywgcmhzKQorICAgIFVTRVMoT3BCaXRhbmQsIGxocywgcmhzKQorICAgIFVTRVMoT3BCaXR4
b3IsIGxocywgcmhzKQorICAgIFVTRVMoT3BCaXRvciwgbGhzLCByaHMpCisgICAgVVNFUyhPcExl
c3MsIGxocywgcmhzKQorICAgIFVTRVMoT3BMZXNzZXEsIGxocywgcmhzKQorICAgIFVTRVMoT3BH
cmVhdGVyLCBsaHMsIHJocykKKyAgICBVU0VTKE9wR3JlYXRlcmVxLCBsaHMsIHJocykKKyAgICBV
U0VTKE9wQmVsb3csIGxocywgcmhzKQorICAgIFVTRVMoT3BCZWxvd2VxLCBsaHMsIHJocykKKyAg
ICBVU0VTKE9wTnN0cmljdGVxLCBsaHMsIHJocykKKyAgICBVU0VTKE9wU3RyaWN0ZXEsIGxocywg
cmhzKQorICAgIFVTRVMoT3BOZXEsIGxocywgcmhzKQorICAgIFVTRVMoT3BFcSwgbGhzLCByaHMp
CisgICAgVVNFUyhPcFB1c2hXaXRoU2NvcGUsIGN1cnJlbnRTY29wZSwgbmV3U2NvcGUpCisgICAg
VVNFUyhPcEdldEJ5SWRXaXRoVGhpcywgYmFzZSwgdGhpc1ZhbHVlKQorICAgIFVTRVMoT3BEZWxC
eVZhbCwgYmFzZSwgcHJvcGVydHkpCisgICAgVVNFUyhPcFRhaWxDYWxsRm9yd2FyZEFyZ3VtZW50
cywgY2FsbGVlLCB0aGlzVmFsdWUpCisKKyAgICBVU0VTKE9wR2V0QnlWYWxXaXRoVGhpcywgYmFz
ZSwgdGhpc1ZhbHVlLCBwcm9wZXJ0eSkKKyAgICBVU0VTKE9wSW5zdGFuY2VvZkN1c3RvbSwgdmFs
dWUsIGNvbnN0cnVjdG9yLCBoYXNJbnN0YW5jZVZhbHVlKQorICAgIFVTRVMoT3BIYXNTdHJ1Y3R1
cmVQcm9wZXJ0eSwgYmFzZSwgcHJvcGVydHksIGVudW1lcmF0b3IpCisgICAgVVNFUyhPcENvbnN0
cnVjdFZhcmFyZ3MsIGNhbGxlZSwgdGhpc1ZhbHVlLCBhcmd1bWVudHMpCisgICAgVVNFUyhPcENh
bGxWYXJhcmdzLCBjYWxsZWUsIHRoaXNWYWx1ZSwgYXJndW1lbnRzKQorICAgIFVTRVMoT3BUYWls
Q2FsbFZhcmFyZ3MsIGNhbGxlZSwgdGhpc1ZhbHVlLCBhcmd1bWVudHMpCisKKyAgICBVU0VTKE9w
R2V0RGlyZWN0UG5hbWUsIGJhc2UsIHByb3BlcnR5LCBpbmRleCwgZW51bWVyYXRvcikKKworICAg
IFVTRVMoT3BTd2l0Y2hTdHJpbmcsIHNjcnV0aW5lZSkKKyAgICBVU0VTKE9wU3dpdGNoQ2hhciwg
c2NydXRpbmVlKQorICAgIFVTRVMoT3BTd2l0Y2hJbW0sIHNjcnV0aW5lZSkKKworICAgIFVTRVMo
T3BHZXRJbnRlcm5hbEZpZWxkLCBiYXNlKQorICAgIFVTRVMoT3BQdXRJbnRlcm5hbEZpZWxkLCBi
YXNlLCB2YWx1ZSkKKworICAgIFVTRVMoT3BZaWVsZCwgZ2VuZXJhdG9yLCBhcmd1bWVudCkKKwor
ICAgIGNhc2Ugb3BfbmV3X2FycmF5X3dpdGhfc3ByZWFkOgorICAgICAgICBoYW5kbGVOZXdBcnJh
eUxpa2UoaW5zdHJ1Y3Rpb24tPmFzPE9wTmV3QXJyYXlXaXRoU3ByZWFkPigpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIGNhc2Ugb3BfbmV3X2FycmF5OgorICAgICAgICBoYW5kbGVOZXdBcnJheUxp
a2UoaW5zdHJ1Y3Rpb24tPmFzPE9wTmV3QXJyYXk+KCkpOworICAgICAgICByZXR1cm47CisKKyAg
ICBjYXNlIG9wX3N0cmNhdDogeworICAgICAgICBhdXRvIGJ5dGVjb2RlID0gaW5zdHJ1Y3Rpb24t
PmFzPE9wU3RyY2F0PigpOworICAgICAgICBpbnQgYmFzZSA9IGJ5dGVjb2RlLm1fc3JjLm9mZnNl
dCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGJ5dGVjb2RlLm1fY291bnQ7IGkrKykK
KyAgICAgICAgICAgIGZ1bmN0b3IoVmlydHVhbFJlZ2lzdGVyIHsgYmFzZSAtIGkgfSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjYXNlIG9wX2NvbnN0cnVjdDoKKyAgICAgICAgaGFu
ZGxlT3BDYWxsTGlrZShpbnN0cnVjdGlvbi0+YXM8T3BDb25zdHJ1Y3Q+KCkpOworICAgICAgICBy
ZXR1cm47CisgICAgY2FzZSBvcF9jYWxsX2V2YWw6CisgICAgICAgIGhhbmRsZU9wQ2FsbExpa2Uo
aW5zdHJ1Y3Rpb24tPmFzPE9wQ2FsbEV2YWw+KCkpOworICAgICAgICByZXR1cm47CisgICAgY2Fz
ZSBvcF9jYWxsOgorICAgICAgICBoYW5kbGVPcENhbGxMaWtlKGluc3RydWN0aW9uLT5hczxPcENh
bGw+KCkpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBvcF90YWlsX2NhbGw6CisgICAgICAg
IGhhbmRsZU9wQ2FsbExpa2UoaW5zdHJ1Y3Rpb24tPmFzPE9wVGFpbENhbGw+KCkpOworICAgICAg
ICByZXR1cm47CisKKyAgICBkZWZhdWx0OgorICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3ZvaWQgY29tcHV0ZURlZnNGb3JC
eXRlY29kZUluZGV4SW1wbCh1bnNpZ25lZCBudW1WYXJzLCBjb25zdCBJbnN0cnVjdGlvbiogaW5z
dHJ1Y3Rpb24sIGNvbnN0IEZ1bmN0aW9uPHZvaWQoVmlydHVhbFJlZ2lzdGVyKT4mIGZ1bmN0b3Ip
Cit7CisgICAgc3dpdGNoIChpbnN0cnVjdGlvbi0+b3Bjb2RlSUQoKSkgeworICAgIGNhc2Ugb3Bf
d2lkZTE2OgorICAgIGNhc2Ugb3Bfd2lkZTMyOgorICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworCisgICAgLy8gVGhlc2UgZG9uJ3QgZGVmaW5lIGFueXRoaW5nLgorICAgIGNh
c2Ugb3BfcHV0X3RvX3Njb3BlOgorICAgIGNhc2Ugb3BfZW5kOgorICAgIGNhc2Ugb3BfdGhyb3c6
CisgICAgY2FzZSBvcF90aHJvd19zdGF0aWNfZXJyb3I6CisgICAgY2FzZSBvcF9jaGVja190ZHo6
CisgICAgY2FzZSBvcF9kZWJ1ZzoKKyAgICBjYXNlIG9wX3JldDoKKyAgICBjYXNlIG9wX2ptcDoK
KyAgICBjYXNlIG9wX2p0cnVlOgorICAgIGNhc2Ugb3BfamZhbHNlOgorICAgIGNhc2Ugb3BfamVx
X251bGw6CisgICAgY2FzZSBvcF9qbmVxX251bGw6CisgICAgY2FzZSBvcF9qdW5kZWZpbmVkX29y
X251bGw6CisgICAgY2FzZSBvcF9qbnVuZGVmaW5lZF9vcl9udWxsOgorICAgIGNhc2Ugb3Bfam5l
cV9wdHI6CisgICAgY2FzZSBvcF9qbGVzczoKKyAgICBjYXNlIG9wX2psZXNzZXE6CisgICAgY2Fz
ZSBvcF9qZ3JlYXRlcjoKKyAgICBjYXNlIG9wX2pncmVhdGVyZXE6CisgICAgY2FzZSBvcF9qbmxl
c3M6CisgICAgY2FzZSBvcF9qbmxlc3NlcToKKyAgICBjYXNlIG9wX2puZ3JlYXRlcjoKKyAgICBj
YXNlIG9wX2puZ3JlYXRlcmVxOgorICAgIGNhc2Ugb3BfamVxOgorICAgIGNhc2Ugb3Bfam5lcToK
KyAgICBjYXNlIG9wX2pzdHJpY3RlcToKKyAgICBjYXNlIG9wX2puc3RyaWN0ZXE6CisgICAgY2Fz
ZSBvcF9qYmVsb3c6CisgICAgY2FzZSBvcF9qYmVsb3dlcToKKyAgICBjYXNlIG9wX2xvb3BfaGlu
dDoKKyAgICBjYXNlIG9wX3N3aXRjaF9pbW06CisgICAgY2FzZSBvcF9zd2l0Y2hfY2hhcjoKKyAg
ICBjYXNlIG9wX3N3aXRjaF9zdHJpbmc6CisgICAgY2FzZSBvcF9wdXRfYnlfaWQ6CisgICAgY2Fz
ZSBvcF9wdXRfYnlfaWRfd2l0aF90aGlzOgorICAgIGNhc2Ugb3BfcHV0X2J5X3ZhbF93aXRoX3Ro
aXM6CisgICAgY2FzZSBvcF9wdXRfZ2V0dGVyX2J5X2lkOgorICAgIGNhc2Ugb3BfcHV0X3NldHRl
cl9ieV9pZDoKKyAgICBjYXNlIG9wX3B1dF9nZXR0ZXJfc2V0dGVyX2J5X2lkOgorICAgIGNhc2Ug
b3BfcHV0X2dldHRlcl9ieV92YWw6CisgICAgY2FzZSBvcF9wdXRfc2V0dGVyX2J5X3ZhbDoKKyAg
ICBjYXNlIG9wX3B1dF9ieV92YWw6CisgICAgY2FzZSBvcF9wdXRfYnlfdmFsX2RpcmVjdDoKKyAg
ICBjYXNlIG9wX3B1dF9pbnRlcm5hbF9maWVsZDoKKyAgICBjYXNlIG9wX2RlZmluZV9kYXRhX3By
b3BlcnR5OgorICAgIGNhc2Ugb3BfZGVmaW5lX2FjY2Vzc29yX3Byb3BlcnR5OgorICAgIGNhc2Ug
b3BfcHJvZmlsZV90eXBlOgorICAgIGNhc2Ugb3BfcHJvZmlsZV9jb250cm9sX2Zsb3c6CisgICAg
Y2FzZSBvcF9wdXRfdG9fYXJndW1lbnRzOgorICAgIGNhc2Ugb3Bfc2V0X2Z1bmN0aW9uX25hbWU6
CisgICAgY2FzZSBvcF9jaGVja190cmFwczoKKyAgICBjYXNlIG9wX2xvZ19zaGFkb3dfY2hpY2tl
bl9wcm9sb2d1ZToKKyAgICBjYXNlIG9wX2xvZ19zaGFkb3dfY2hpY2tlbl90YWlsOgorICAgIGNh
c2Ugb3BfeWllbGQ6CisgICAgY2FzZSBvcF9ub3A6CisgICAgY2FzZSBvcF91bnJlYWNoYWJsZToK
KyAgICBjYXNlIG9wX3N1cGVyX3NhbXBsZXJfYmVnaW46CisgICAgY2FzZSBvcF9zdXBlcl9zYW1w
bGVyX2VuZDoKKyNkZWZpbmUgTExJTlRfSEVMUEVSX09QQ09ERVMob3Bjb2RlLCBsZW5ndGgpIGNh
c2Ugb3Bjb2RlOgorICAgICAgICBGT1JfRUFDSF9MTElOVF9PUENPREVfRVhURU5TSU9OKExMSU5U
X0hFTFBFUl9PUENPREVTKTsKKyN1bmRlZiBMTElOVF9IRUxQRVJfT1BDT0RFUworICAgICAgICBy
ZXR1cm47CisgICAgLy8gVGhlc2UgYWxsIGhhdmUgYSBzaW5nbGUgZGVzdGluYXRpb24gZm9yIHRo
ZSBmaXJzdCBhcmd1bWVudC4KKyAgICBERUZTKE9wQXJndW1lbnRDb3VudCwgZHN0KQorICAgIERF
RlMoT3BUb0luZGV4U3RyaW5nLCBkc3QpCisgICAgREVGUyhPcEdldEVudW1lcmFibGVMZW5ndGgs
IGRzdCkKKyAgICBERUZTKE9wSGFzSW5kZXhlZFByb3BlcnR5LCBkc3QpCisgICAgREVGUyhPcEhh
c1N0cnVjdHVyZVByb3BlcnR5LCBkc3QpCisgICAgREVGUyhPcEhhc0dlbmVyaWNQcm9wZXJ0eSwg
ZHN0KQorICAgIERFRlMoT3BHZXREaXJlY3RQbmFtZSwgZHN0KQorICAgIERFRlMoT3BHZXRQcm9w
ZXJ0eUVudW1lcmF0b3IsIGRzdCkKKyAgICBERUZTKE9wRW51bWVyYXRvclN0cnVjdHVyZVBuYW1l
LCBkc3QpCisgICAgREVGUyhPcEVudW1lcmF0b3JHZW5lcmljUG5hbWUsIGRzdCkKKyAgICBERUZT
KE9wR2V0UGFyZW50U2NvcGUsIGRzdCkKKyAgICBERUZTKE9wUHVzaFdpdGhTY29wZSwgZHN0KQor
ICAgIERFRlMoT3BDcmVhdGVMZXhpY2FsRW52aXJvbm1lbnQsIGRzdCkKKyAgICBERUZTKE9wQ3Jl
YXRlR2VuZXJhdG9yRnJhbWVFbnZpcm9ubWVudCwgZHN0KQorICAgIERFRlMoT3BSZXNvbHZlU2Nv
cGUsIGRzdCkKKyAgICBERUZTKE9wUmVzb2x2ZVNjb3BlRm9ySG9pc3RpbmdGdW5jRGVjbEluRXZh
bCwgZHN0KQorICAgIERFRlMoT3BTdHJjYXQsIGRzdCkKKyAgICBERUZTKE9wVG9QcmltaXRpdmUs
IGRzdCkKKyAgICBERUZTKE9wQ3JlYXRlVGhpcywgZHN0KQorICAgIERFRlMoT3BDcmVhdGVQcm9t
aXNlLCBkc3QpCisgICAgREVGUyhPcENyZWF0ZUdlbmVyYXRvciwgZHN0KQorICAgIERFRlMoT3BD
cmVhdGVBc3luY0dlbmVyYXRvciwgZHN0KQorICAgIERFRlMoT3BOZXdBcnJheSwgZHN0KQorICAg
IERFRlMoT3BOZXdBcnJheVdpdGhTcHJlYWQsIGRzdCkKKyAgICBERUZTKE9wU3ByZWFkLCBkc3Qp
CisgICAgREVGUyhPcE5ld0FycmF5QnVmZmVyLCBkc3QpCisgICAgREVGUyhPcE5ld0FycmF5V2l0
aFNpemUsIGRzdCkKKyAgICBERUZTKE9wTmV3UmVnZXhwLCBkc3QpCisgICAgREVGUyhPcE5ld0Z1
bmMsIGRzdCkKKyAgICBERUZTKE9wTmV3RnVuY0V4cCwgZHN0KQorICAgIERFRlMoT3BOZXdHZW5l
cmF0b3JGdW5jLCBkc3QpCisgICAgREVGUyhPcE5ld0dlbmVyYXRvckZ1bmNFeHAsIGRzdCkKKyAg
ICBERUZTKE9wTmV3QXN5bmNHZW5lcmF0b3JGdW5jLCBkc3QpCisgICAgREVGUyhPcE5ld0FzeW5j
R2VuZXJhdG9yRnVuY0V4cCwgZHN0KQorICAgIERFRlMoT3BOZXdBc3luY0Z1bmMsIGRzdCkKKyAg
ICBERUZTKE9wTmV3QXN5bmNGdW5jRXhwLCBkc3QpCisgICAgREVGUyhPcENhbGxWYXJhcmdzLCBk
c3QpCisgICAgREVGUyhPcFRhaWxDYWxsVmFyYXJncywgZHN0KQorICAgIERFRlMoT3BUYWlsQ2Fs
bEZvcndhcmRBcmd1bWVudHMsIGRzdCkKKyAgICBERUZTKE9wQ29uc3RydWN0VmFyYXJncywgZHN0
KQorICAgIERFRlMoT3BHZXRGcm9tU2NvcGUsIGRzdCkKKyAgICBERUZTKE9wQ2FsbCwgZHN0KQor
ICAgIERFRlMoT3BUYWlsQ2FsbCwgZHN0KQorICAgIERFRlMoT3BDYWxsRXZhbCwgZHN0KQorICAg
IERFRlMoT3BDb25zdHJ1Y3QsIGRzdCkKKyAgICBERUZTKE9wVHJ5R2V0QnlJZCwgZHN0KQorICAg
IERFRlMoT3BHZXRCeUlkLCBkc3QpCisgICAgREVGUyhPcEdldEJ5SWREaXJlY3QsIGRzdCkKKyAg
ICBERUZTKE9wR2V0QnlJZFdpdGhUaGlzLCBkc3QpCisgICAgREVGUyhPcEdldEJ5VmFsV2l0aFRo
aXMsIGRzdCkKKyAgICBERUZTKE9wT3ZlcnJpZGVzSGFzSW5zdGFuY2UsIGRzdCkKKyAgICBERUZT
KE9wSW5zdGFuY2VvZiwgZHN0KQorICAgIERFRlMoT3BJbnN0YW5jZW9mQ3VzdG9tLCBkc3QpCisg
ICAgREVGUyhPcEdldEJ5VmFsLCBkc3QpCisgICAgREVGUyhPcFR5cGVvZiwgZHN0KQorICAgIERF
RlMoT3BJZGVudGl0eVdpdGhQcm9maWxlLCBzcmNEc3QpCisgICAgREVGUyhPcElzRW1wdHksIGRz
dCkKKyAgICBERUZTKE9wSXNVbmRlZmluZWQsIGRzdCkKKyAgICBVU0VTKE9wSXNVbmRlZmluZWRP
ck51bGwsIGRzdCkKKyAgICBERUZTKE9wSXNCb29sZWFuLCBkc3QpCisgICAgREVGUyhPcElzTnVt
YmVyLCBkc3QpCisgICAgREVGUyhPcElzT2JqZWN0LCBkc3QpCisgICAgREVGUyhPcElzT2JqZWN0
T3JOdWxsLCBkc3QpCisgICAgREVGUyhPcElzQ2VsbFdpdGhUeXBlLCBkc3QpCisgICAgREVGUyhP
cElzRnVuY3Rpb24sIGRzdCkKKyAgICBERUZTKE9wSW5CeUlkLCBkc3QpCisgICAgREVGUyhPcElu
QnlWYWwsIGRzdCkKKyAgICBERUZTKE9wVG9OdW1iZXIsIGRzdCkKKyAgICBERUZTKE9wVG9OdW1l
cmljLCBkc3QpCisgICAgREVGUyhPcFRvU3RyaW5nLCBkc3QpCisgICAgREVGUyhPcFRvT2JqZWN0
LCBkc3QpCisgICAgREVGUyhPcE5lZ2F0ZSwgZHN0KQorICAgIERFRlMoT3BBZGQsIGRzdCkKKyAg
ICBERUZTKE9wTXVsLCBkc3QpCisgICAgREVGUyhPcERpdiwgZHN0KQorICAgIERFRlMoT3BNb2Qs
IGRzdCkKKyAgICBERUZTKE9wU3ViLCBkc3QpCisgICAgREVGUyhPcFBvdywgZHN0KQorICAgIERF
RlMoT3BMc2hpZnQsIGRzdCkKKyAgICBERUZTKE9wUnNoaWZ0LCBkc3QpCisgICAgREVGUyhPcFVy
c2hpZnQsIGRzdCkKKyAgICBERUZTKE9wQml0YW5kLCBkc3QpCisgICAgREVGUyhPcEJpdHhvciwg
ZHN0KQorICAgIERFRlMoT3BCaXRvciwgZHN0KQorICAgIERFRlMoT3BCaXRub3QsIGRzdCkKKyAg
ICBERUZTKE9wSW5jLCBzcmNEc3QpCisgICAgREVGUyhPcERlYywgc3JjRHN0KQorICAgIERFRlMo
T3BFcSwgZHN0KQorICAgIERFRlMoT3BOZXEsIGRzdCkKKyAgICBERUZTKE9wU3RyaWN0ZXEsIGRz
dCkKKyAgICBERUZTKE9wTnN0cmljdGVxLCBkc3QpCisgICAgREVGUyhPcExlc3MsIGRzdCkKKyAg
ICBERUZTKE9wTGVzc2VxLCBkc3QpCisgICAgREVGUyhPcEdyZWF0ZXIsIGRzdCkKKyAgICBERUZT
KE9wR3JlYXRlcmVxLCBkc3QpCisgICAgREVGUyhPcEJlbG93LCBkc3QpCisgICAgREVGUyhPcEJl
bG93ZXEsIGRzdCkKKyAgICBERUZTKE9wTmVxTnVsbCwgZHN0KQorICAgIERFRlMoT3BFcU51bGws
IGRzdCkKKyAgICBERUZTKE9wTm90LCBkc3QpCisgICAgREVGUyhPcE1vdiwgZHN0KQorICAgIERF
RlMoT3BOZXdPYmplY3QsIGRzdCkKKyAgICBERUZTKE9wTmV3UHJvbWlzZSwgZHN0KQorICAgIERF
RlMoT3BOZXdHZW5lcmF0b3IsIGRzdCkKKyAgICBERUZTKE9wVG9UaGlzLCBzcmNEc3QpCisgICAg
REVGUyhPcEdldFNjb3BlLCBkc3QpCisgICAgREVGUyhPcENyZWF0ZURpcmVjdEFyZ3VtZW50cywg
ZHN0KQorICAgIERFRlMoT3BDcmVhdGVTY29wZWRBcmd1bWVudHMsIGRzdCkKKyAgICBERUZTKE9w
Q3JlYXRlQ2xvbmVkQXJndW1lbnRzLCBkc3QpCisgICAgREVGUyhPcERlbEJ5SWQsIGRzdCkKKyAg
ICBERUZTKE9wRGVsQnlWYWwsIGRzdCkKKyAgICBERUZTKE9wVW5zaWduZWQsIGRzdCkKKyAgICBE
RUZTKE9wR2V0RnJvbUFyZ3VtZW50cywgZHN0KQorICAgIERFRlMoT3BHZXRBcmd1bWVudCwgZHN0
KQorICAgIERFRlMoT3BDcmVhdGVSZXN0LCBkc3QpCisgICAgREVGUyhPcEdldFJlc3RMZW5ndGgs
IGRzdCkKKyAgICBERUZTKE9wR2V0SW50ZXJuYWxGaWVsZCwgZHN0KQorCisgICAgREVGUyhPcENh
dGNoLCBleGNlcHRpb24sIHRocm93blZhbHVlKQorCisgICAgY2FzZSBvcF9lbnRlcjogeworICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1WYXJzOyBpLS07KQorICAgICAgICAgICAgZnVuY3Rv
cih2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgfQorfQorCisjdW5kZWYgQ0FMTF9GVU5DVE9SCisjdW5kZWYgVVNFU19PUl9ERUZTCisjdW5k
ZWYgVVNFUworI3VuZGVmIERFRlMKK30gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAppbmRleCAyOGZkYjM4YTg2OGVk
NDA5ZWIxODcxMzI4OTc0NWIxZDU4NDBlMWQxLi5iM2IwMGE5OTIzNzMzZDMxYWM4NGU1ZDg4MmRh
OTAzZTliZWRjN2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVVc2VEZWYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0
ZWNvZGVVc2VEZWYuaApAQCAtMzIsNDcwICszMiwyMyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAot
I2RlZmluZSBDQUxMX0ZVTkNUT1IoX19hcmcpIFwKLSAgICBmdW5jdG9yKF9fYnl0ZWNvZGUubV8j
I19fYXJnKTsKK3ZvaWQgY29tcHV0ZVVzZXNGb3JCeXRlY29kZUluZGV4SW1wbChWaXJ0dWFsUmVn
aXN0ZXIsIGNvbnN0IEluc3RydWN0aW9uKiwgY29uc3QgRnVuY3Rpb248dm9pZChWaXJ0dWFsUmVn
aXN0ZXIpPiYpOwordm9pZCBjb21wdXRlRGVmc0ZvckJ5dGVjb2RlSW5kZXhJbXBsKHVuc2lnbmVk
LCBjb25zdCBJbnN0cnVjdGlvbiosIGNvbnN0IEZ1bmN0aW9uPHZvaWQoVmlydHVhbFJlZ2lzdGVy
KT4mKTsKIAotI2RlZmluZSBVU0VTX09SX0RFRlMoX19vcGNvZGUsIC4uLikgXAotICAgIGNhc2Ug
X19vcGNvZGU6Om9wY29kZUlEOiB7IFwKLSAgICAgICAgYXV0byBfX2J5dGVjb2RlID0gaW5zdHJ1
Y3Rpb24tPmFzPF9fb3Bjb2RlPigpOyBcCi0gICAgICAgIFdURl9MQVpZX0ZPUl9FQUNIX1RFUk0o
Q0FMTF9GVU5DVE9SLCBfX1ZBX0FSR1NfXykgXAotICAgICAgICByZXR1cm47IFwKLSAgICB9Ci0K
LSNkZWZpbmUgVVNFUyBVU0VTX09SX0RFRlMKLSNkZWZpbmUgREVGUyBVU0VTX09SX0RFRlMKLQot
dGVtcGxhdGU8dHlwZW5hbWUgQmxvY2ssIHR5cGVuYW1lIEZ1bmN0b3I+Ci12b2lkIGNvbXB1dGVV
c2VzRm9yQnl0ZWNvZGVJbmRleChCbG9jayogY29kZUJsb2NrLCBjb25zdCBJbnN0cnVjdGlvbiog
aW5zdHJ1Y3Rpb24sIGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCit0ZW1wbGF0ZTx0eXBlbmFtZSBC
bG9jaz4KK3ZvaWQgY29tcHV0ZVVzZXNGb3JCeXRlY29kZUluZGV4KEJsb2NrKiBjb2RlQmxvY2ss
IGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgY29uc3QgRnVuY3Rpb248dm9pZChWaXJ0
dWFsUmVnaXN0ZXIpPiYgZnVuY3RvcikKIHsKICAgICBPcGNvZGVJRCBvcGNvZGVJRCA9IGluc3Ry
dWN0aW9uLT5vcGNvZGVJRCgpOwogICAgIGlmIChvcGNvZGVJRCAhPSBvcF9lbnRlciAmJiAoY29k
ZUJsb2NrLT53YXNDb21waWxlZFdpdGhEZWJ1Z2dpbmdPcGNvZGVzKCkgfHwgY29kZUJsb2NrLT51
c2VzRXZhbCgpKSAmJiBjb2RlQmxvY2stPnNjb3BlUmVnaXN0ZXIoKS5pc1ZhbGlkKCkpCiAgICAg
ICAgIGZ1bmN0b3IoY29kZUJsb2NrLT5zY29wZVJlZ2lzdGVyKCkpOwogCi0gICAgYXV0byBoYW5k
bGVOZXdBcnJheUxpa2UgPSBbJl0oYXV0byBvcCkgewotICAgICAgICBpbnQgYmFzZSA9IG9wLm1f
YXJndi5vZmZzZXQoKTsKLSAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdGF0aWNfY2FzdDxp
bnQ+KG9wLm1fYXJnYyk7IGkrKykKLSAgICAgICAgICAgIGZ1bmN0b3IoVmlydHVhbFJlZ2lzdGVy
IHsgYmFzZSAtIGkgfSk7Ci0gICAgfTsKLQotICAgIGF1dG8gaGFuZGxlT3BDYWxsTGlrZSA9IFsm
XShhdXRvIG9wKSB7Ci0gICAgICAgIGZ1bmN0b3Iob3AubV9jYWxsZWUpOwotICAgICAgICBpbnQg
bGFzdEFyZyA9IC1zdGF0aWNfY2FzdDxpbnQ+KG9wLm1fYXJndikgKyBDYWxsRnJhbWU6OnRoaXNB
cmd1bWVudE9mZnNldCgpOwotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0YXRpY19jYXN0
PGludD4ob3AubV9hcmdjKTsgaSsrKQotICAgICAgICAgICAgZnVuY3RvcihWaXJ0dWFsUmVnaXN0
ZXIgeyBsYXN0QXJnICsgaSB9KTsKLSAgICAgICAgaWYgKG9wY29kZUlEID09IG9wX2NhbGxfZXZh
bCkKLSAgICAgICAgICAgIGZ1bmN0b3IoY29kZUJsb2NrLT5zY29wZVJlZ2lzdGVyKCkpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfTsKLQotICAgIHN3aXRjaCAob3Bjb2RlSUQpIHsKLSAgICBjYXNl
IG9wX3dpZGUxNjoKLSAgICBjYXNlIG9wX3dpZGUzMjoKLSAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLQotICAgIC8vIE5vIHVzZXMuCi0gICAgY2FzZSBvcF9uZXdfcmVnZXhw
OgotICAgIGNhc2Ugb3BfZGVidWc6Ci0gICAgY2FzZSBvcF9qbmVxX3B0cjoKLSAgICBjYXNlIG9w
X2xvb3BfaGludDoKLSAgICBjYXNlIG9wX2ptcDoKLSAgICBjYXNlIG9wX25ld19vYmplY3Q6Ci0g
ICAgY2FzZSBvcF9uZXdfcHJvbWlzZToKLSAgICBjYXNlIG9wX25ld19nZW5lcmF0b3I6Ci0gICAg
Y2FzZSBvcF9lbnRlcjoKLSAgICBjYXNlIG9wX2FyZ3VtZW50X2NvdW50OgotICAgIGNhc2Ugb3Bf
Y2F0Y2g6Ci0gICAgY2FzZSBvcF9wcm9maWxlX2NvbnRyb2xfZmxvdzoKLSAgICBjYXNlIG9wX2Ny
ZWF0ZV9kaXJlY3RfYXJndW1lbnRzOgotICAgIGNhc2Ugb3BfY3JlYXRlX2Nsb25lZF9hcmd1bWVu
dHM6Ci0gICAgY2FzZSBvcF9nZXRfcmVzdF9sZW5ndGg6Ci0gICAgY2FzZSBvcF9jaGVja190cmFw
czoKLSAgICBjYXNlIG9wX2dldF9hcmd1bWVudDoKLSAgICBjYXNlIG9wX25vcDoKLSAgICBjYXNl
IG9wX3VucmVhY2hhYmxlOgotICAgIGNhc2Ugb3Bfc3VwZXJfc2FtcGxlcl9iZWdpbjoKLSAgICBj
YXNlIG9wX3N1cGVyX3NhbXBsZXJfZW5kOgotICAgICAgICByZXR1cm47Ci0KLSAgICBVU0VTKE9w
R2V0U2NvcGUsIGRzdCkKLSAgICBVU0VTKE9wVG9UaGlzLCBzcmNEc3QpCi0gICAgVVNFUyhPcENo
ZWNrVGR6LCB0YXJnZXRWaXJ0dWFsUmVnaXN0ZXIpCi0gICAgVVNFUyhPcElkZW50aXR5V2l0aFBy
b2ZpbGUsIHNyY0RzdCkKLSAgICBVU0VTKE9wUHJvZmlsZVR5cGUsIHRhcmdldFZpcnR1YWxSZWdp
c3Rlcik7Ci0gICAgVVNFUyhPcFRocm93LCB2YWx1ZSkKLSAgICBVU0VTKE9wVGhyb3dTdGF0aWNF
cnJvciwgbWVzc2FnZSkKLSAgICBVU0VTKE9wRW5kLCB2YWx1ZSkKLSAgICBVU0VTKE9wUmV0LCB2
YWx1ZSkKLSAgICBVU0VTKE9wSnRydWUsIGNvbmRpdGlvbikKLSAgICBVU0VTKE9wSmZhbHNlLCBj
b25kaXRpb24pCi0gICAgVVNFUyhPcEplcU51bGwsIHZhbHVlKQotICAgIFVTRVMoT3BKbmVxTnVs
bCwgdmFsdWUpCi0gICAgVVNFUyhPcEp1bmRlZmluZWRPck51bGwsIHZhbHVlKQotICAgIFVTRVMo
T3BKbnVuZGVmaW5lZE9yTnVsbCwgdmFsdWUpCi0gICAgVVNFUyhPcERlYywgc3JjRHN0KQotICAg
IFVTRVMoT3BJbmMsIHNyY0RzdCkKLSAgICBVU0VTKE9wTG9nU2hhZG93Q2hpY2tlblByb2xvZ3Vl
LCBzY29wZSkKLQotICAgIFVTRVMoT3BKbGVzcywgbGhzLCByaHMpCi0gICAgVVNFUyhPcEpsZXNz
ZXEsIGxocywgcmhzKQotICAgIFVTRVMoT3BKZ3JlYXRlciwgbGhzLCByaHMpCi0gICAgVVNFUyhP
cEpncmVhdGVyZXEsIGxocywgcmhzKQotICAgIFVTRVMoT3BKbmxlc3MsIGxocywgcmhzKQotICAg
IFVTRVMoT3BKbmxlc3NlcSwgbGhzLCByaHMpCi0gICAgVVNFUyhPcEpuZ3JlYXRlciwgbGhzLCBy
aHMpCi0gICAgVVNFUyhPcEpuZ3JlYXRlcmVxLCBsaHMsIHJocykKLSAgICBVU0VTKE9wSmVxLCBs
aHMsIHJocykKLSAgICBVU0VTKE9wSm5lcSwgbGhzLCByaHMpCi0gICAgVVNFUyhPcEpzdHJpY3Rl
cSwgbGhzLCByaHMpCi0gICAgVVNFUyhPcEpuc3RyaWN0ZXEsIGxocywgcmhzKQotICAgIFVTRVMo
T3BKYmVsb3csIGxocywgcmhzKQotICAgIFVTRVMoT3BKYmVsb3dlcSwgbGhzLCByaHMpCi0gICAg
VVNFUyhPcFNldEZ1bmN0aW9uTmFtZSwgZnVuY3Rpb24sIG5hbWUpCi0gICAgVVNFUyhPcExvZ1No
YWRvd0NoaWNrZW5UYWlsLCB0aGlzVmFsdWUsIHNjb3BlKQotCi0gICAgVVNFUyhPcFB1dEJ5VmFs
LCBiYXNlLCBwcm9wZXJ0eSwgdmFsdWUpCi0gICAgVVNFUyhPcFB1dEJ5VmFsRGlyZWN0LCBiYXNl
LCBwcm9wZXJ0eSwgdmFsdWUpCi0KLSAgICBVU0VTKE9wUHV0QnlJZCwgYmFzZSwgdmFsdWUpCi0g
ICAgVVNFUyhPcFB1dFRvU2NvcGUsIHNjb3BlLCB2YWx1ZSkKLSAgICBVU0VTKE9wUHV0VG9Bcmd1
bWVudHMsIGFyZ3VtZW50cywgdmFsdWUpCi0KLSAgICBVU0VTKE9wUHV0QnlJZFdpdGhUaGlzLCBi
YXNlLCB0aGlzVmFsdWUsIHZhbHVlKQotCi0gICAgVVNFUyhPcFB1dEJ5VmFsV2l0aFRoaXMsIGJh
c2UsIHRoaXNWYWx1ZSwgcHJvcGVydHksIHZhbHVlKQotCi0gICAgVVNFUyhPcFB1dEdldHRlckJ5
SWQsIGJhc2UsIGFjY2Vzc29yKQotICAgIFVTRVMoT3BQdXRTZXR0ZXJCeUlkLCBiYXNlLCBhY2Nl
c3NvcikKLQotICAgIFVTRVMoT3BQdXRHZXR0ZXJTZXR0ZXJCeUlkLCBiYXNlLCBnZXR0ZXIsIHNl
dHRlcikKLQotICAgIFVTRVMoT3BQdXRHZXR0ZXJCeVZhbCwgYmFzZSwgcHJvcGVydHksIGFjY2Vz
c29yKQotICAgIFVTRVMoT3BQdXRTZXR0ZXJCeVZhbCwgYmFzZSwgcHJvcGVydHksIGFjY2Vzc29y
KQotCi0gICAgVVNFUyhPcERlZmluZURhdGFQcm9wZXJ0eSwgYmFzZSwgcHJvcGVydHksIHZhbHVl
LCBhdHRyaWJ1dGVzKQotCi0gICAgVVNFUyhPcERlZmluZUFjY2Vzc29yUHJvcGVydHksIGJhc2Us
IHByb3BlcnR5LCBnZXR0ZXIsIHNldHRlciwgYXR0cmlidXRlcykKLQotICAgIFVTRVMoT3BTcHJl
YWQsIGFyZ3VtZW50KQotICAgIFVTRVMoT3BHZXRQcm9wZXJ0eUVudW1lcmF0b3IsIGJhc2UpCi0g
ICAgVVNFUyhPcEdldEVudW1lcmFibGVMZW5ndGgsIGJhc2UpCi0gICAgVVNFUyhPcE5ld0Z1bmNF
eHAsIHNjb3BlKQotICAgIFVTRVMoT3BOZXdHZW5lcmF0b3JGdW5jRXhwLCBzY29wZSkKLSAgICBV
U0VTKE9wTmV3QXN5bmNGdW5jRXhwLCBzY29wZSkKLSAgICBVU0VTKE9wVG9JbmRleFN0cmluZywg
aW5kZXgpCi0gICAgVVNFUyhPcENyZWF0ZUxleGljYWxFbnZpcm9ubWVudCwgc2NvcGUsIHN5bWJv
bFRhYmxlLCBpbml0aWFsVmFsdWUpCi0gICAgVVNFUyhPcENyZWF0ZUdlbmVyYXRvckZyYW1lRW52
aXJvbm1lbnQsIHNjb3BlLCBzeW1ib2xUYWJsZSwgaW5pdGlhbFZhbHVlKQotICAgIFVTRVMoT3BS
ZXNvbHZlU2NvcGUsIHNjb3BlKQotICAgIFVTRVMoT3BSZXNvbHZlU2NvcGVGb3JIb2lzdGluZ0Z1
bmNEZWNsSW5FdmFsLCBzY29wZSkKLSAgICBVU0VTKE9wR2V0RnJvbVNjb3BlLCBzY29wZSkKLSAg
ICBVU0VTKE9wVG9QcmltaXRpdmUsIHNyYykKLSAgICBVU0VTKE9wVHJ5R2V0QnlJZCwgYmFzZSkK
LSAgICBVU0VTKE9wR2V0QnlJZCwgYmFzZSkKLSAgICBVU0VTKE9wR2V0QnlJZERpcmVjdCwgYmFz
ZSkKLSAgICBVU0VTKE9wSW5CeUlkLCBiYXNlKQotICAgIFVTRVMoT3BUeXBlb2YsIHZhbHVlKQot
ICAgIFVTRVMoT3BJc0VtcHR5LCBvcGVyYW5kKQotICAgIFVTRVMoT3BJc1VuZGVmaW5lZCwgb3Bl
cmFuZCkKLSAgICBVU0VTKE9wSXNVbmRlZmluZWRPck51bGwsIG9wZXJhbmQpCi0gICAgVVNFUyhP
cElzQm9vbGVhbiwgb3BlcmFuZCkKLSAgICBVU0VTKE9wSXNOdW1iZXIsIG9wZXJhbmQpCi0gICAg
VVNFUyhPcElzT2JqZWN0LCBvcGVyYW5kKQotICAgIFVTRVMoT3BJc09iamVjdE9yTnVsbCwgb3Bl
cmFuZCkKLSAgICBVU0VTKE9wSXNDZWxsV2l0aFR5cGUsIG9wZXJhbmQpCi0gICAgVVNFUyhPcElz
RnVuY3Rpb24sIG9wZXJhbmQpCi0gICAgVVNFUyhPcFRvTnVtYmVyLCBvcGVyYW5kKQotICAgIFVT
RVMoT3BUb051bWVyaWMsIG9wZXJhbmQpCi0gICAgVVNFUyhPcFRvU3RyaW5nLCBvcGVyYW5kKQot
ICAgIFVTRVMoT3BUb09iamVjdCwgb3BlcmFuZCkKLSAgICBVU0VTKE9wTmVnYXRlLCBvcGVyYW5k
KQotICAgIFVTRVMoT3BCaXRub3QsIG9wZXJhbmQpCi0gICAgVVNFUyhPcEVxTnVsbCwgb3BlcmFu
ZCkKLSAgICBVU0VTKE9wTmVxTnVsbCwgb3BlcmFuZCkKLSAgICBVU0VTKE9wTm90LCBvcGVyYW5k
KQotICAgIFVTRVMoT3BVbnNpZ25lZCwgb3BlcmFuZCkKLSAgICBVU0VTKE9wTW92LCBzcmMpCi0g
ICAgVVNFUyhPcE5ld0FycmF5V2l0aFNpemUsIGxlbmd0aCkKLSAgICBVU0VTKE9wQ3JlYXRlVGhp
cywgY2FsbGVlKQotICAgIFVTRVMoT3BDcmVhdGVQcm9taXNlLCBjYWxsZWUpCi0gICAgVVNFUyhP
cENyZWF0ZUdlbmVyYXRvciwgY2FsbGVlKQotICAgIFVTRVMoT3BDcmVhdGVBc3luY0dlbmVyYXRv
ciwgY2FsbGVlKQotICAgIFVTRVMoT3BEZWxCeUlkLCBiYXNlKQotICAgIFVTRVMoT3BOZXdGdW5j
LCBzY29wZSkKLSAgICBVU0VTKE9wTmV3QXN5bmNHZW5lcmF0b3JGdW5jLCBzY29wZSkKLSAgICBV
U0VTKE9wTmV3QXN5bmNHZW5lcmF0b3JGdW5jRXhwLCBzY29wZSkKLSAgICBVU0VTKE9wTmV3R2Vu
ZXJhdG9yRnVuYywgc2NvcGUpCi0gICAgVVNFUyhPcE5ld0FzeW5jRnVuYywgc2NvcGUpCi0gICAg
VVNFUyhPcEdldFBhcmVudFNjb3BlLCBzY29wZSkKLSAgICBVU0VTKE9wQ3JlYXRlU2NvcGVkQXJn
dW1lbnRzLCBzY29wZSkKLSAgICBVU0VTKE9wQ3JlYXRlUmVzdCwgYXJyYXlTaXplKQotICAgIFVT
RVMoT3BHZXRGcm9tQXJndW1lbnRzLCBhcmd1bWVudHMpCi0gICAgVVNFUyhPcE5ld0FycmF5QnVm
ZmVyLCBpbW11dGFibGVCdXR0ZXJmbHkpCi0KLSAgICBVU0VTKE9wSGFzR2VuZXJpY1Byb3BlcnR5
LCBiYXNlLCBwcm9wZXJ0eSkKLSAgICBVU0VTKE9wSGFzSW5kZXhlZFByb3BlcnR5LCBiYXNlLCBw
cm9wZXJ0eSkKLSAgICBVU0VTKE9wRW51bWVyYXRvclN0cnVjdHVyZVBuYW1lLCBlbnVtZXJhdG9y
LCBpbmRleCkKLSAgICBVU0VTKE9wRW51bWVyYXRvckdlbmVyaWNQbmFtZSwgZW51bWVyYXRvciwg
aW5kZXgpCi0gICAgVVNFUyhPcEdldEJ5VmFsLCBiYXNlLCBwcm9wZXJ0eSkKLSAgICBVU0VTKE9w
SW5CeVZhbCwgYmFzZSwgcHJvcGVydHkpCi0gICAgVVNFUyhPcE92ZXJyaWRlc0hhc0luc3RhbmNl
LCBjb25zdHJ1Y3RvciwgaGFzSW5zdGFuY2VWYWx1ZSkKLSAgICBVU0VTKE9wSW5zdGFuY2VvZiwg
dmFsdWUsIHByb3RvdHlwZSkKLSAgICBVU0VTKE9wQWRkLCBsaHMsIHJocykKLSAgICBVU0VTKE9w
TXVsLCBsaHMsIHJocykKLSAgICBVU0VTKE9wRGl2LCBsaHMsIHJocykKLSAgICBVU0VTKE9wTW9k
LCBsaHMsIHJocykKLSAgICBVU0VTKE9wU3ViLCBsaHMsIHJocykKLSAgICBVU0VTKE9wUG93LCBs
aHMsIHJocykKLSAgICBVU0VTKE9wTHNoaWZ0LCBsaHMsIHJocykKLSAgICBVU0VTKE9wUnNoaWZ0
LCBsaHMsIHJocykKLSAgICBVU0VTKE9wVXJzaGlmdCwgbGhzLCByaHMpCi0gICAgVVNFUyhPcEJp
dGFuZCwgbGhzLCByaHMpCi0gICAgVVNFUyhPcEJpdHhvciwgbGhzLCByaHMpCi0gICAgVVNFUyhP
cEJpdG9yLCBsaHMsIHJocykKLSAgICBVU0VTKE9wTGVzcywgbGhzLCByaHMpCi0gICAgVVNFUyhP
cExlc3NlcSwgbGhzLCByaHMpCi0gICAgVVNFUyhPcEdyZWF0ZXIsIGxocywgcmhzKQotICAgIFVT
RVMoT3BHcmVhdGVyZXEsIGxocywgcmhzKQotICAgIFVTRVMoT3BCZWxvdywgbGhzLCByaHMpCi0g
ICAgVVNFUyhPcEJlbG93ZXEsIGxocywgcmhzKQotICAgIFVTRVMoT3BOc3RyaWN0ZXEsIGxocywg
cmhzKQotICAgIFVTRVMoT3BTdHJpY3RlcSwgbGhzLCByaHMpCi0gICAgVVNFUyhPcE5lcSwgbGhz
LCByaHMpCi0gICAgVVNFUyhPcEVxLCBsaHMsIHJocykKLSAgICBVU0VTKE9wUHVzaFdpdGhTY29w
ZSwgY3VycmVudFNjb3BlLCBuZXdTY29wZSkKLSAgICBVU0VTKE9wR2V0QnlJZFdpdGhUaGlzLCBi
YXNlLCB0aGlzVmFsdWUpCi0gICAgVVNFUyhPcERlbEJ5VmFsLCBiYXNlLCBwcm9wZXJ0eSkKLSAg
ICBVU0VTKE9wVGFpbENhbGxGb3J3YXJkQXJndW1lbnRzLCBjYWxsZWUsIHRoaXNWYWx1ZSkKLQot
ICAgIFVTRVMoT3BHZXRCeVZhbFdpdGhUaGlzLCBiYXNlLCB0aGlzVmFsdWUsIHByb3BlcnR5KQot
ICAgIFVTRVMoT3BJbnN0YW5jZW9mQ3VzdG9tLCB2YWx1ZSwgY29uc3RydWN0b3IsIGhhc0luc3Rh
bmNlVmFsdWUpCi0gICAgVVNFUyhPcEhhc1N0cnVjdHVyZVByb3BlcnR5LCBiYXNlLCBwcm9wZXJ0
eSwgZW51bWVyYXRvcikKLSAgICBVU0VTKE9wQ29uc3RydWN0VmFyYXJncywgY2FsbGVlLCB0aGlz
VmFsdWUsIGFyZ3VtZW50cykKLSAgICBVU0VTKE9wQ2FsbFZhcmFyZ3MsIGNhbGxlZSwgdGhpc1Zh
bHVlLCBhcmd1bWVudHMpCi0gICAgVVNFUyhPcFRhaWxDYWxsVmFyYXJncywgY2FsbGVlLCB0aGlz
VmFsdWUsIGFyZ3VtZW50cykKLQotICAgIFVTRVMoT3BHZXREaXJlY3RQbmFtZSwgYmFzZSwgcHJv
cGVydHksIGluZGV4LCBlbnVtZXJhdG9yKQotCi0gICAgVVNFUyhPcFN3aXRjaFN0cmluZywgc2Ny
dXRpbmVlKQotICAgIFVTRVMoT3BTd2l0Y2hDaGFyLCBzY3J1dGluZWUpCi0gICAgVVNFUyhPcFN3
aXRjaEltbSwgc2NydXRpbmVlKQotCi0gICAgVVNFUyhPcEdldEludGVybmFsRmllbGQsIGJhc2Up
Ci0gICAgVVNFUyhPcFB1dEludGVybmFsRmllbGQsIGJhc2UsIHZhbHVlKQotCi0gICAgVVNFUyhP
cFlpZWxkLCBnZW5lcmF0b3IsIGFyZ3VtZW50KQotCi0gICAgY2FzZSBvcF9uZXdfYXJyYXlfd2l0
aF9zcHJlYWQ6Ci0gICAgICAgIGhhbmRsZU5ld0FycmF5TGlrZShpbnN0cnVjdGlvbi0+YXM8T3BO
ZXdBcnJheVdpdGhTcHJlYWQ+KCkpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBvcF9uZXdf
YXJyYXk6Ci0gICAgICAgIGhhbmRsZU5ld0FycmF5TGlrZShpbnN0cnVjdGlvbi0+YXM8T3BOZXdB
cnJheT4oKSk7Ci0gICAgICAgIHJldHVybjsKLQotICAgIGNhc2Ugb3Bfc3RyY2F0OiB7Ci0gICAg
ICAgIGF1dG8gYnl0ZWNvZGUgPSBpbnN0cnVjdGlvbi0+YXM8T3BTdHJjYXQ+KCk7Ci0gICAgICAg
IGludCBiYXNlID0gYnl0ZWNvZGUubV9zcmMub2Zmc2V0KCk7Ci0gICAgICAgIGZvciAoaW50IGkg
PSAwOyBpIDwgYnl0ZWNvZGUubV9jb3VudDsgaSsrKQotICAgICAgICAgICAgZnVuY3RvcihWaXJ0
dWFsUmVnaXN0ZXIgeyBiYXNlIC0gaSB9KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IGNhc2Ugb3BfY29uc3RydWN0OgotICAgICAgICBoYW5kbGVPcENhbGxMaWtlKGluc3RydWN0aW9u
LT5hczxPcENvbnN0cnVjdD4oKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIG9wX2NhbGxf
ZXZhbDoKLSAgICAgICAgaGFuZGxlT3BDYWxsTGlrZShpbnN0cnVjdGlvbi0+YXM8T3BDYWxsRXZh
bD4oKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIG9wX2NhbGw6Ci0gICAgICAgIGhhbmRs
ZU9wQ2FsbExpa2UoaW5zdHJ1Y3Rpb24tPmFzPE9wQ2FsbD4oKSk7Ci0gICAgICAgIHJldHVybjsK
LSAgICBjYXNlIG9wX3RhaWxfY2FsbDoKLSAgICAgICAgaGFuZGxlT3BDYWxsTGlrZShpbnN0cnVj
dGlvbi0+YXM8T3BUYWlsQ2FsbD4oKSk7Ci0gICAgICAgIHJldHVybjsKLQotICAgIGRlZmF1bHQ6
Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwot
ICAgIH0KKyAgICBjb21wdXRlVXNlc0ZvckJ5dGVjb2RlSW5kZXhJbXBsKGNvZGVCbG9jay0+c2Nv
cGVSZWdpc3RlcigpLCBpbnN0cnVjdGlvbiwgZnVuY3Rvcik7CiB9CiAKLXRlbXBsYXRlPHR5cGVu
YW1lIEJsb2NrLCB0eXBlbmFtZSBGdW5jdG9yPgotdm9pZCBjb21wdXRlRGVmc0ZvckJ5dGVjb2Rl
SW5kZXgoQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCBj
b25zdCBGdW5jdG9yJiBmdW5jdG9yKQordGVtcGxhdGU8dHlwZW5hbWUgQmxvY2s+Cit2b2lkIGNv
bXB1dGVEZWZzRm9yQnl0ZWNvZGVJbmRleChCbG9jayogY29kZUJsb2NrLCBjb25zdCBJbnN0cnVj
dGlvbiogaW5zdHJ1Y3Rpb24sIGNvbnN0IEZ1bmN0aW9uPHZvaWQoVmlydHVhbFJlZ2lzdGVyKT4m
IGZ1bmN0b3IpCiB7Ci0gICAgc3dpdGNoIChpbnN0cnVjdGlvbi0+b3Bjb2RlSUQoKSkgewotICAg
IGNhc2Ugb3Bfd2lkZTE2OgotICAgIGNhc2Ugb3Bfd2lkZTMyOgotICAgICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotCi0gICAgLy8gVGhlc2UgZG9uJ3QgZGVmaW5lIGFueXRoaW5n
LgotICAgIGNhc2Ugb3BfcHV0X3RvX3Njb3BlOgotICAgIGNhc2Ugb3BfZW5kOgotICAgIGNhc2Ug
b3BfdGhyb3c6Ci0gICAgY2FzZSBvcF90aHJvd19zdGF0aWNfZXJyb3I6Ci0gICAgY2FzZSBvcF9j
aGVja190ZHo6Ci0gICAgY2FzZSBvcF9kZWJ1ZzoKLSAgICBjYXNlIG9wX3JldDoKLSAgICBjYXNl
IG9wX2ptcDoKLSAgICBjYXNlIG9wX2p0cnVlOgotICAgIGNhc2Ugb3BfamZhbHNlOgotICAgIGNh
c2Ugb3BfamVxX251bGw6Ci0gICAgY2FzZSBvcF9qbmVxX251bGw6Ci0gICAgY2FzZSBvcF9qdW5k
ZWZpbmVkX29yX251bGw6Ci0gICAgY2FzZSBvcF9qbnVuZGVmaW5lZF9vcl9udWxsOgotICAgIGNh
c2Ugb3Bfam5lcV9wdHI6Ci0gICAgY2FzZSBvcF9qbGVzczoKLSAgICBjYXNlIG9wX2psZXNzZXE6
Ci0gICAgY2FzZSBvcF9qZ3JlYXRlcjoKLSAgICBjYXNlIG9wX2pncmVhdGVyZXE6Ci0gICAgY2Fz
ZSBvcF9qbmxlc3M6Ci0gICAgY2FzZSBvcF9qbmxlc3NlcToKLSAgICBjYXNlIG9wX2puZ3JlYXRl
cjoKLSAgICBjYXNlIG9wX2puZ3JlYXRlcmVxOgotICAgIGNhc2Ugb3BfamVxOgotICAgIGNhc2Ug
b3Bfam5lcToKLSAgICBjYXNlIG9wX2pzdHJpY3RlcToKLSAgICBjYXNlIG9wX2puc3RyaWN0ZXE6
Ci0gICAgY2FzZSBvcF9qYmVsb3c6Ci0gICAgY2FzZSBvcF9qYmVsb3dlcToKLSAgICBjYXNlIG9w
X2xvb3BfaGludDoKLSAgICBjYXNlIG9wX3N3aXRjaF9pbW06Ci0gICAgY2FzZSBvcF9zd2l0Y2hf
Y2hhcjoKLSAgICBjYXNlIG9wX3N3aXRjaF9zdHJpbmc6Ci0gICAgY2FzZSBvcF9wdXRfYnlfaWQ6
Ci0gICAgY2FzZSBvcF9wdXRfYnlfaWRfd2l0aF90aGlzOgotICAgIGNhc2Ugb3BfcHV0X2J5X3Zh
bF93aXRoX3RoaXM6Ci0gICAgY2FzZSBvcF9wdXRfZ2V0dGVyX2J5X2lkOgotICAgIGNhc2Ugb3Bf
cHV0X3NldHRlcl9ieV9pZDoKLSAgICBjYXNlIG9wX3B1dF9nZXR0ZXJfc2V0dGVyX2J5X2lkOgot
ICAgIGNhc2Ugb3BfcHV0X2dldHRlcl9ieV92YWw6Ci0gICAgY2FzZSBvcF9wdXRfc2V0dGVyX2J5
X3ZhbDoKLSAgICBjYXNlIG9wX3B1dF9ieV92YWw6Ci0gICAgY2FzZSBvcF9wdXRfYnlfdmFsX2Rp
cmVjdDoKLSAgICBjYXNlIG9wX3B1dF9pbnRlcm5hbF9maWVsZDoKLSAgICBjYXNlIG9wX2RlZmlu
ZV9kYXRhX3Byb3BlcnR5OgotICAgIGNhc2Ugb3BfZGVmaW5lX2FjY2Vzc29yX3Byb3BlcnR5Ogot
ICAgIGNhc2Ugb3BfcHJvZmlsZV90eXBlOgotICAgIGNhc2Ugb3BfcHJvZmlsZV9jb250cm9sX2Zs
b3c6Ci0gICAgY2FzZSBvcF9wdXRfdG9fYXJndW1lbnRzOgotICAgIGNhc2Ugb3Bfc2V0X2Z1bmN0
aW9uX25hbWU6Ci0gICAgY2FzZSBvcF9jaGVja190cmFwczoKLSAgICBjYXNlIG9wX2xvZ19zaGFk
b3dfY2hpY2tlbl9wcm9sb2d1ZToKLSAgICBjYXNlIG9wX2xvZ19zaGFkb3dfY2hpY2tlbl90YWls
OgotICAgIGNhc2Ugb3BfeWllbGQ6Ci0gICAgY2FzZSBvcF9ub3A6Ci0gICAgY2FzZSBvcF91bnJl
YWNoYWJsZToKLSAgICBjYXNlIG9wX3N1cGVyX3NhbXBsZXJfYmVnaW46Ci0gICAgY2FzZSBvcF9z
dXBlcl9zYW1wbGVyX2VuZDoKLSNkZWZpbmUgTExJTlRfSEVMUEVSX09QQ09ERVMob3Bjb2RlLCBs
ZW5ndGgpIGNhc2Ugb3Bjb2RlOgotICAgICAgICBGT1JfRUFDSF9MTElOVF9PUENPREVfRVhURU5T
SU9OKExMSU5UX0hFTFBFUl9PUENPREVTKTsKLSN1bmRlZiBMTElOVF9IRUxQRVJfT1BDT0RFUwot
ICAgICAgICByZXR1cm47Ci0gICAgLy8gVGhlc2UgYWxsIGhhdmUgYSBzaW5nbGUgZGVzdGluYXRp
b24gZm9yIHRoZSBmaXJzdCBhcmd1bWVudC4KLSAgICBERUZTKE9wQXJndW1lbnRDb3VudCwgZHN0
KQotICAgIERFRlMoT3BUb0luZGV4U3RyaW5nLCBkc3QpCi0gICAgREVGUyhPcEdldEVudW1lcmFi
bGVMZW5ndGgsIGRzdCkKLSAgICBERUZTKE9wSGFzSW5kZXhlZFByb3BlcnR5LCBkc3QpCi0gICAg
REVGUyhPcEhhc1N0cnVjdHVyZVByb3BlcnR5LCBkc3QpCi0gICAgREVGUyhPcEhhc0dlbmVyaWNQ
cm9wZXJ0eSwgZHN0KQotICAgIERFRlMoT3BHZXREaXJlY3RQbmFtZSwgZHN0KQotICAgIERFRlMo
T3BHZXRQcm9wZXJ0eUVudW1lcmF0b3IsIGRzdCkKLSAgICBERUZTKE9wRW51bWVyYXRvclN0cnVj
dHVyZVBuYW1lLCBkc3QpCi0gICAgREVGUyhPcEVudW1lcmF0b3JHZW5lcmljUG5hbWUsIGRzdCkK
LSAgICBERUZTKE9wR2V0UGFyZW50U2NvcGUsIGRzdCkKLSAgICBERUZTKE9wUHVzaFdpdGhTY29w
ZSwgZHN0KQotICAgIERFRlMoT3BDcmVhdGVMZXhpY2FsRW52aXJvbm1lbnQsIGRzdCkKLSAgICBE
RUZTKE9wQ3JlYXRlR2VuZXJhdG9yRnJhbWVFbnZpcm9ubWVudCwgZHN0KQotICAgIERFRlMoT3BS
ZXNvbHZlU2NvcGUsIGRzdCkKLSAgICBERUZTKE9wUmVzb2x2ZVNjb3BlRm9ySG9pc3RpbmdGdW5j
RGVjbEluRXZhbCwgZHN0KQotICAgIERFRlMoT3BTdHJjYXQsIGRzdCkKLSAgICBERUZTKE9wVG9Q
cmltaXRpdmUsIGRzdCkKLSAgICBERUZTKE9wQ3JlYXRlVGhpcywgZHN0KQotICAgIERFRlMoT3BD
cmVhdGVQcm9taXNlLCBkc3QpCi0gICAgREVGUyhPcENyZWF0ZUdlbmVyYXRvciwgZHN0KQotICAg
IERFRlMoT3BDcmVhdGVBc3luY0dlbmVyYXRvciwgZHN0KQotICAgIERFRlMoT3BOZXdBcnJheSwg
ZHN0KQotICAgIERFRlMoT3BOZXdBcnJheVdpdGhTcHJlYWQsIGRzdCkKLSAgICBERUZTKE9wU3By
ZWFkLCBkc3QpCi0gICAgREVGUyhPcE5ld0FycmF5QnVmZmVyLCBkc3QpCi0gICAgREVGUyhPcE5l
d0FycmF5V2l0aFNpemUsIGRzdCkKLSAgICBERUZTKE9wTmV3UmVnZXhwLCBkc3QpCi0gICAgREVG
UyhPcE5ld0Z1bmMsIGRzdCkKLSAgICBERUZTKE9wTmV3RnVuY0V4cCwgZHN0KQotICAgIERFRlMo
T3BOZXdHZW5lcmF0b3JGdW5jLCBkc3QpCi0gICAgREVGUyhPcE5ld0dlbmVyYXRvckZ1bmNFeHAs
IGRzdCkKLSAgICBERUZTKE9wTmV3QXN5bmNHZW5lcmF0b3JGdW5jLCBkc3QpCi0gICAgREVGUyhP
cE5ld0FzeW5jR2VuZXJhdG9yRnVuY0V4cCwgZHN0KQotICAgIERFRlMoT3BOZXdBc3luY0Z1bmMs
IGRzdCkKLSAgICBERUZTKE9wTmV3QXN5bmNGdW5jRXhwLCBkc3QpCi0gICAgREVGUyhPcENhbGxW
YXJhcmdzLCBkc3QpCi0gICAgREVGUyhPcFRhaWxDYWxsVmFyYXJncywgZHN0KQotICAgIERFRlMo
T3BUYWlsQ2FsbEZvcndhcmRBcmd1bWVudHMsIGRzdCkKLSAgICBERUZTKE9wQ29uc3RydWN0VmFy
YXJncywgZHN0KQotICAgIERFRlMoT3BHZXRGcm9tU2NvcGUsIGRzdCkKLSAgICBERUZTKE9wQ2Fs
bCwgZHN0KQotICAgIERFRlMoT3BUYWlsQ2FsbCwgZHN0KQotICAgIERFRlMoT3BDYWxsRXZhbCwg
ZHN0KQotICAgIERFRlMoT3BDb25zdHJ1Y3QsIGRzdCkKLSAgICBERUZTKE9wVHJ5R2V0QnlJZCwg
ZHN0KQotICAgIERFRlMoT3BHZXRCeUlkLCBkc3QpCi0gICAgREVGUyhPcEdldEJ5SWREaXJlY3Qs
IGRzdCkKLSAgICBERUZTKE9wR2V0QnlJZFdpdGhUaGlzLCBkc3QpCi0gICAgREVGUyhPcEdldEJ5
VmFsV2l0aFRoaXMsIGRzdCkKLSAgICBERUZTKE9wT3ZlcnJpZGVzSGFzSW5zdGFuY2UsIGRzdCkK
LSAgICBERUZTKE9wSW5zdGFuY2VvZiwgZHN0KQotICAgIERFRlMoT3BJbnN0YW5jZW9mQ3VzdG9t
LCBkc3QpCi0gICAgREVGUyhPcEdldEJ5VmFsLCBkc3QpCi0gICAgREVGUyhPcFR5cGVvZiwgZHN0
KQotICAgIERFRlMoT3BJZGVudGl0eVdpdGhQcm9maWxlLCBzcmNEc3QpCi0gICAgREVGUyhPcElz
RW1wdHksIGRzdCkKLSAgICBERUZTKE9wSXNVbmRlZmluZWQsIGRzdCkKLSAgICBVU0VTKE9wSXNV
bmRlZmluZWRPck51bGwsIGRzdCkKLSAgICBERUZTKE9wSXNCb29sZWFuLCBkc3QpCi0gICAgREVG
UyhPcElzTnVtYmVyLCBkc3QpCi0gICAgREVGUyhPcElzT2JqZWN0LCBkc3QpCi0gICAgREVGUyhP
cElzT2JqZWN0T3JOdWxsLCBkc3QpCi0gICAgREVGUyhPcElzQ2VsbFdpdGhUeXBlLCBkc3QpCi0g
ICAgREVGUyhPcElzRnVuY3Rpb24sIGRzdCkKLSAgICBERUZTKE9wSW5CeUlkLCBkc3QpCi0gICAg
REVGUyhPcEluQnlWYWwsIGRzdCkKLSAgICBERUZTKE9wVG9OdW1iZXIsIGRzdCkKLSAgICBERUZT
KE9wVG9OdW1lcmljLCBkc3QpCi0gICAgREVGUyhPcFRvU3RyaW5nLCBkc3QpCi0gICAgREVGUyhP
cFRvT2JqZWN0LCBkc3QpCi0gICAgREVGUyhPcE5lZ2F0ZSwgZHN0KQotICAgIERFRlMoT3BBZGQs
IGRzdCkKLSAgICBERUZTKE9wTXVsLCBkc3QpCi0gICAgREVGUyhPcERpdiwgZHN0KQotICAgIERF
RlMoT3BNb2QsIGRzdCkKLSAgICBERUZTKE9wU3ViLCBkc3QpCi0gICAgREVGUyhPcFBvdywgZHN0
KQotICAgIERFRlMoT3BMc2hpZnQsIGRzdCkKLSAgICBERUZTKE9wUnNoaWZ0LCBkc3QpCi0gICAg
REVGUyhPcFVyc2hpZnQsIGRzdCkKLSAgICBERUZTKE9wQml0YW5kLCBkc3QpCi0gICAgREVGUyhP
cEJpdHhvciwgZHN0KQotICAgIERFRlMoT3BCaXRvciwgZHN0KQotICAgIERFRlMoT3BCaXRub3Qs
IGRzdCkKLSAgICBERUZTKE9wSW5jLCBzcmNEc3QpCi0gICAgREVGUyhPcERlYywgc3JjRHN0KQot
ICAgIERFRlMoT3BFcSwgZHN0KQotICAgIERFRlMoT3BOZXEsIGRzdCkKLSAgICBERUZTKE9wU3Ry
aWN0ZXEsIGRzdCkKLSAgICBERUZTKE9wTnN0cmljdGVxLCBkc3QpCi0gICAgREVGUyhPcExlc3Ms
IGRzdCkKLSAgICBERUZTKE9wTGVzc2VxLCBkc3QpCi0gICAgREVGUyhPcEdyZWF0ZXIsIGRzdCkK
LSAgICBERUZTKE9wR3JlYXRlcmVxLCBkc3QpCi0gICAgREVGUyhPcEJlbG93LCBkc3QpCi0gICAg
REVGUyhPcEJlbG93ZXEsIGRzdCkKLSAgICBERUZTKE9wTmVxTnVsbCwgZHN0KQotICAgIERFRlMo
T3BFcU51bGwsIGRzdCkKLSAgICBERUZTKE9wTm90LCBkc3QpCi0gICAgREVGUyhPcE1vdiwgZHN0
KQotICAgIERFRlMoT3BOZXdPYmplY3QsIGRzdCkKLSAgICBERUZTKE9wTmV3UHJvbWlzZSwgZHN0
KQotICAgIERFRlMoT3BOZXdHZW5lcmF0b3IsIGRzdCkKLSAgICBERUZTKE9wVG9UaGlzLCBzcmNE
c3QpCi0gICAgREVGUyhPcEdldFNjb3BlLCBkc3QpCi0gICAgREVGUyhPcENyZWF0ZURpcmVjdEFy
Z3VtZW50cywgZHN0KQotICAgIERFRlMoT3BDcmVhdGVTY29wZWRBcmd1bWVudHMsIGRzdCkKLSAg
ICBERUZTKE9wQ3JlYXRlQ2xvbmVkQXJndW1lbnRzLCBkc3QpCi0gICAgREVGUyhPcERlbEJ5SWQs
IGRzdCkKLSAgICBERUZTKE9wRGVsQnlWYWwsIGRzdCkKLSAgICBERUZTKE9wVW5zaWduZWQsIGRz
dCkKLSAgICBERUZTKE9wR2V0RnJvbUFyZ3VtZW50cywgZHN0KQotICAgIERFRlMoT3BHZXRBcmd1
bWVudCwgZHN0KQotICAgIERFRlMoT3BDcmVhdGVSZXN0LCBkc3QpCi0gICAgREVGUyhPcEdldFJl
c3RMZW5ndGgsIGRzdCkKLSAgICBERUZTKE9wR2V0SW50ZXJuYWxGaWVsZCwgZHN0KQotCi0gICAg
REVGUyhPcENhdGNoLCBleGNlcHRpb24sIHRocm93blZhbHVlKQotCi0gICAgY2FzZSBvcF9lbnRl
cjogewotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBjb2RlQmxvY2stPm51bVZhcnMoKTsgaS0t
OykKLSAgICAgICAgICAgIGZ1bmN0b3IodmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoaSkpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotICAgIH0KKyAgICBjb21wdXRlRGVmc0ZvckJ5dGVjb2RlSW5k
ZXhJbXBsKGNvZGVCbG9jay0+bnVtVmFycygpLCBpbnN0cnVjdGlvbiwgZnVuY3Rvcik7CiB9CiAK
ICN1bmRlZiBDQUxMX0ZVTkNUT1IKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9n
ZW5lcmF0b3IvRFNMLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2dlbmVyYXRvci9EU0wucmIK
aW5kZXggZmNhYTc5MmUxN2EzMjY0OGUxMzU1ZTIyYmE3OWYxNDMzNWZjNTk1NC4uZTZiZGFlZmQ5
YTJiY2VkMzBhZTM2ZDdmYTZhODU3MzE4NTRkYzBhMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2dlbmVyYXRvci9EU0wucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2dl
bmVyYXRvci9EU0wucmIKQEAgLTEwOCw2ICsxMDgsNyBAQCBtb2R1bGUgRFNMCiAKICAgICAgICAg
d3JpdGVfYnl0ZWNvZGVzKGJ5dGVjb2RlX2xpc3QsIG9wdGlvbnNbOmJ5dGVjb2Rlc19maWxlbmFt
ZV0pCiAgICAgICAgIHdyaXRlX2J5dGVjb2RlX3N0cnVjdHMoYnl0ZWNvZGVfbGlzdCwgb3B0aW9u
c1s6Ynl0ZWNvZGVfc3RydWN0c19maWxlbmFtZV0pCisgICAgICAgIHdyaXRlX2J5dGVjb2RlX2R1
bXBlcihieXRlY29kZV9saXN0LCBvcHRpb25zWzpieXRlY29kZV9kdW1wZXJfZmlsZW5hbWVdKQog
ICAgICAgICB3cml0ZV9ieXRlY29kZXNfaW5pdChvcHRpb25zWzppbml0X2FzbV9maWxlbmFtZV0s
IGJ5dGVjb2RlX2xpc3QpCiAgICAgICAgIHdyaXRlX2luZGljZXMoYnl0ZWNvZGVfbGlzdCwgb3B0
aW9uc1s6Ynl0ZWNvZGVfaW5kaWNlc19maWxlbmFtZV0pCiAgICAgICAgIHdyaXRlX2xsaW50X2dl
bmVyYXRvcihvcHRpb25zWzp3YXNtX2xsaW50X2dlbmVyYXRvcl9maWxlbmFtZV0sIGJ5dGVjb2Rl
X2xpc3QsIEB3YXNtX2pzb24pCkBAIC0xMjcsOCArMTI4LDYgQEAgbW9kdWxlIERTTAogCiAgICAg
ZGVmIHNlbGYud3JpdGVfYnl0ZWNvZGVfc3RydWN0cyhieXRlY29kZV9saXN0LCBieXRlY29kZV9z
dHJ1Y3RzX2ZpbGVuYW1lKQogICAgICAgICBHZW5lcmF0ZWRGaWxlOjpjcmVhdGUoYnl0ZWNvZGVf
c3RydWN0c19maWxlbmFtZSwgYnl0ZWNvZGVfbGlzdCkgZG8gfHRlbXBsYXRlfAotICAgICAgICAg
ICAgb3Bjb2RlcyA9IG9wY29kZXNfZm9yKDplbWl0X2luX3N0cnVjdHNfZmlsZSkKLQogICAgICAg
ICAgICAgdGVtcGxhdGUucHJlZml4ID0gPDwtRU9GCiAjcHJhZ21hIG9uY2UKIApAQCAtMTQyLDEz
ICsxNDEsNDQgQEAgbW9kdWxlIERTTAogI2luY2x1ZGUgIlB1dEJ5SWRGbGFncy5oIgogI2luY2x1
ZGUgIlRvVGhpc1N0YXR1cy5oIgogCituYW1lc3BhY2UgSlNDIHsKKwordm9pZCBkdW1wQnl0ZWNv
ZGUoQnl0ZWNvZGVEdW1wZXJCYXNlKiBkdW1wZXIsIEluc3RydWN0aW9uU3RyZWFtOjpPZmZzZXQs
IGNvbnN0IEluc3RydWN0aW9uKik7CisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCit2b2lkIGR1
bXBXYXNtKEJ5dGVjb2RlRHVtcGVyQmFzZSogZHVtcGVyLCBJbnN0cnVjdGlvblN0cmVhbTo6T2Zm
c2V0LCBjb25zdCBJbnN0cnVjdGlvbiopOworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkK
KworRU9GCisKKyAgICAgICAgICAgIHRlbXBsYXRlLmJvZHkgPSA8PC1FT0YKKyN7b3Bjb2Rlc19m
aWx0ZXIgeyB8c3wgcy5jb25maWdbOmVtaXRfaW5fc3RydWN0c19maWxlXSAmJiAhcy5pc193YXNt
PyB9Lm1hcCgmOnN0cnVjdCkuam9pbigiXG4iKX0KKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkK
KyN7b3Bjb2Rlc19maWx0ZXIgeyB8c3wgcy5jb25maWdbOmVtaXRfaW5fc3RydWN0c19maWxlXSAm
JiBzLmlzX3dhc20/IH0ubWFwKCY6c3RydWN0KS5qb2luKCJcbiIpfQorI2VuZGlmIC8vIEVOQUJM
RShXRUJBU1NFTUJMWSkKK0VPRgorICAgICAgICAgICAgdGVtcGxhdGUuc3VmZml4ID0gIn0gLy8g
bmFtZXNwYWNlIEpTQyIKKyAgICAgICAgZW5kCisgICAgZW5kCisKKyAgICBkZWYgc2VsZi53cml0
ZV9ieXRlY29kZV9kdW1wZXIoYnl0ZWNvZGVfbGlzdCwgYnl0ZWNvZGVfZHVtcGVyX2ZpbGVuYW1l
KQorICAgICAgICBHZW5lcmF0ZWRGaWxlOjpjcmVhdGUoYnl0ZWNvZGVfZHVtcGVyX2ZpbGVuYW1l
LCBieXRlY29kZV9saXN0KSBkbyB8dGVtcGxhdGV8CisgICAgICAgICAgICB0ZW1wbGF0ZS5wcmVm
aXggPSA8PC1FT0YKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJCeXRlY29kZUR1bXBl
ci5oIgorCisjaW5jbHVkZSAiQnl0ZWNvZGVTdHJ1Y3RzLmgiCisKIG5hbWVzcGFjZSBKU0Mgewog
RU9GCiAKICAgICAgICAgICAgIHRlbXBsYXRlLmJvZHkgPSA8PC1FT0YKLSN7b3Bjb2Rlcy5tYXAo
JjpzdHJ1Y3QpLmpvaW4oIlxuIil9CiAje09wY29kZS5kdW1wX2J5dGVjb2RlKDpCeXRlY29kZSwg
OkpTT3Bjb2RlVHJhaXRzLCBvcGNvZGVzX2ZpbHRlciB7IHxzfCBzLmNvbmZpZ1s6ZW1pdF9pbl9z
dHJ1Y3RzX2ZpbGVdICYmICFzLmlzX3dhc20/IH0pfQorCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
KQogI3tPcGNvZGUuZHVtcF9ieXRlY29kZSg6V2FzbSwgOldhc21PcGNvZGVUcmFpdHMsIG9wY29k
ZXNfZmlsdGVyIHsgfHN8IHMuaXNfd2FzbT8gfSl9CisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VN
QkxZKQogRU9GCiAgICAgICAgICAgICB0ZW1wbGF0ZS5zdWZmaXggPSAifSAvLyBuYW1lc3BhY2Ug
SlNDIgogICAgICAgICBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9nZW5l
cmF0b3IvT3Bjb2RlLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2dlbmVyYXRvci9PcGNvZGUu
cmIKaW5kZXggNDM0YzRmYTdjZWJhNDBmNjY5ODczNTBjNWU3ZTVjMzBjYzViMjgxNy4uZGFiODY4
NmNhMzNhMTAyYzliZmExZGYxODAzZWJiNGYwYWIyNDQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2dlbmVyYXRvci9PcGNvZGUucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2dlbmVyYXRvci9PcGNvZGUucmIKQEAgLTIyMyw4ICsyMjMsNyBAQCBFT0YKIAogICAgIGRl
ZiBkdW1wZXIKICAgICAgICAgPDwtRU9GCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgQmxvY2s+Ci0g
ICAgdm9pZCBkdW1wKEJ5dGVjb2RlRHVtcGVyPEJsb2NrPiogZHVtcGVyLCBJbnN0cnVjdGlvblN0
cmVhbTo6T2Zmc2V0IF9fbG9jYXRpb24sIGludCBfX3NpemVTaGlmdEFtb3VudCkKKyAgICB2b2lk
IGR1bXAoQnl0ZWNvZGVEdW1wZXJCYXNlKiBkdW1wZXIsIEluc3RydWN0aW9uU3RyZWFtOjpPZmZz
ZXQgX19sb2NhdGlvbiwgaW50IF9fc2l6ZVNoaWZ0QW1vdW50KQogICAgIHsKICAgICAgICAgZHVt
cGVyLT5wcmludExvY2F0aW9uQW5kT3AoX19sb2NhdGlvbiwgJiIqKiN7QG5hbWV9IlsyIC0gX19z
aXplU2hpZnRBbW91bnRdKTsKICN7cHJpbnRfYXJncyB7IHxhcmd8CkBAIC0zMjYsOCArMzI1LDcg
QEAgRU9GCiAKICAgICBkZWYgc2VsZi5kdW1wX2J5dGVjb2RlKG5hbWUsIG9wY29kZV90cmFpdHMs
IG9wY29kZXMpCiAgICAgICAgIDw8LUVPRi5jaG9tcAotdGVtcGxhdGU8dHlwZW5hbWUgQnl0ZWNv
ZGVEdW1wZXI+Ci1zdGF0aWMgdm9pZCBkdW1wI3tuYW1lfShCeXRlY29kZUR1bXBlciogZHVtcGVy
LCBJbnN0cnVjdGlvblN0cmVhbTo6T2Zmc2V0IF9fbG9jYXRpb24sIGNvbnN0IEluc3RydWN0aW9u
KiBfX2luc3RydWN0aW9uKQordm9pZCBkdW1wI3tuYW1lfShCeXRlY29kZUR1bXBlckJhc2UqIGR1
bXBlciwgSW5zdHJ1Y3Rpb25TdHJlYW06Ok9mZnNldCBfX2xvY2F0aW9uLCBjb25zdCBJbnN0cnVj
dGlvbiogX19pbnN0cnVjdGlvbikKIHsKICAgICBzd2l0Y2ggKF9faW5zdHJ1Y3Rpb24tPm9wY29k
ZUlEPCN7b3Bjb2RlX3RyYWl0c30+KCkpIHsKICN7b3Bjb2Rlcy5tYXAgeyB8b3B8CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdG9yL09wdGlvbnMucmIgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZ2VuZXJhdG9yL09wdGlvbnMucmIKaW5kZXggYTgyOTIyMGY0NmYyOGQ3
MDA3YzVjMDg3MDA2NWJlZmFiYzkxYzhhZi4uZmY4MjIxNzJhMjJhODAxMzkzNGY5Y2FkNGU3NWI2
NWUwMTg3OTk0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2dlbmVyYXRvci9P
cHRpb25zLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9nZW5lcmF0b3IvT3B0aW9ucy5y
YgpAQCAtNTYsNiArNTYsMTAgQEAgJGNvbmZpZyA9IHsKICAgICAgICAgbG9uZzogIi0taW5pdF93
YXNtX2xsaW50IEZJTEUiLAogICAgICAgICBkZXNjOiAiZ2VuZXJhdGUgV2FzbSBieXRlY29kZXMg
aW5pdCBGSUxFIiwKICAgICB9LAorICAgIGJ5dGVjb2RlX2R1bXBlcl9maWxlbmFtZTogeworICAg
ICAgICBsb25nOiAiLS1ieXRlY29kZV9kdW1wZXIgRklMRSIsCisgICAgICAgIGRlc2M6ICJnZW5l
cmF0ZSBieXRlY29kZSBkdW1wZXIgRklMRSIsCisgICAgfSwKIH07CiAKIG1vZHVsZSBPcHRpb25z
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuaAppbmRleCAwYWI3M2U3MzI2MTI1Yzk2ZjQxODZiYzFkODE0
MTUyNmViNzQyNmZkLi44ZTA3MmI4OTc0YTRmMmVhZGFmYmJiMmZiOWY1MWMwNTJlNzFhYWY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAgLTQ2OSwxMiArNDY5LDE2IEBAIG5hbWVzcGFjZSBK
U0MgewogCiAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9wPgogICAgICAgICB2b2lkIGVtaXRf
Y29tcGFyZUFuZEp1bXAoY29uc3QgSW5zdHJ1Y3Rpb24qLCBSZWxhdGlvbmFsQ29uZGl0aW9uKTsK
KyAgICAgICAgdm9pZCBlbWl0X2NvbXBhcmVBbmRKdW1wSW1wbChpbnQgb3AxLCBpbnQgb3AyLCB1
bnNpZ25lZCB0YXJnZXQsIFJlbGF0aW9uYWxDb25kaXRpb24pOwogICAgICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBPcD4KICAgICAgICAgdm9pZCBlbWl0X2NvbXBhcmVVbnNpZ25lZChjb25zdCBJbnN0
cnVjdGlvbiosIFJlbGF0aW9uYWxDb25kaXRpb24pOworICAgICAgICB2b2lkIGVtaXRfY29tcGFy
ZVVuc2lnbmVkSW1wbChpbnQgZHN0LCBpbnQgb3AxLCBpbnQgb3AyLCBSZWxhdGlvbmFsQ29uZGl0
aW9uKTsKICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3A+CiAgICAgICAgIHZvaWQgZW1pdF9j
b21wYXJlVW5zaWduZWRBbmRKdW1wKGNvbnN0IEluc3RydWN0aW9uKiwgUmVsYXRpb25hbENvbmRp
dGlvbik7CisgICAgICAgIHZvaWQgZW1pdF9jb21wYXJlVW5zaWduZWRBbmRKdW1wSW1wbChpbnQg
b3AxLCBpbnQgb3AyLCB1bnNpZ25lZCB0YXJnZXQsIFJlbGF0aW9uYWxDb25kaXRpb24pOwogICAg
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcD4KICAgICAgICAgdm9pZCBlbWl0X2NvbXBhcmVBbmRK
dW1wU2xvdyhjb25zdCBJbnN0cnVjdGlvbiosIERvdWJsZUNvbmRpdGlvbiwgc2l6ZV90IChKSVRf
T1BFUkFUSU9OICpvcGVyYXRpb24pKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlKSwgYm9vbCBpbnZlcnQsIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0
b3ImKTsKKyAgICAgICAgdm9pZCBlbWl0X2NvbXBhcmVBbmRKdW1wU2xvd0ltcGwoaW50IG9wMSwg
aW50IG9wMiwgdW5zaWduZWQgdGFyZ2V0LCBzaXplX3QgaW5zdHJ1Y3Rpb25TaXplLCBEb3VibGVD
b25kaXRpb24sIHNpemVfdCAoSklUX09QRVJBVElPTiAqb3BlcmF0aW9uKShKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSksIGJvb2wgaW52ZXJ0LCBWZWN0b3I8
U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CiAgICAgICAgIAogICAgICAgICB2b2lkIGFzc2Vy
dFN0YWNrUG9pbnRlck9mZnNldCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVEFyaXRobWV0aWMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRB
cml0aG1ldGljLmNwcAppbmRleCBiYjYzNWY4ZTc2ZTNjOGNkNWUwMzQ2MGRkMWZjN2IwZTY3ZDM0
YjFjLi4zNDU4NzQ0ZmJjZGQ1M2FjZjlhNDMzMjhiYzQ5NGIwZmVkY2I4OTNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAKQEAgLTE3MCwxNiArMTcwLDIx
IEBAIHZvaWQgSklUOjplbWl0X29wX3Vuc2lnbmVkKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiAKIHRlbXBsYXRlPHR5cGVuYW1lIE9wPgogdm9pZCBKSVQ6OmVtaXRfY29t
cGFyZUFuZEp1bXAoY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCBSZWxhdGlvbmFsQ29u
ZGl0aW9uIGNvbmRpdGlvbikKK3sKKyAgICBhdXRvIGJ5dGVjb2RlID0gaW5zdHJ1Y3Rpb24tPmFz
PE9wPigpOworICAgIGludCBvcDEgPSBieXRlY29kZS5tX2xocy5vZmZzZXQoKTsKKyAgICBpbnQg
b3AyID0gYnl0ZWNvZGUubV9yaHMub2Zmc2V0KCk7CisgICAgdW5zaWduZWQgdGFyZ2V0ID0ganVt
cFRhcmdldChpbnN0cnVjdGlvbiwgYnl0ZWNvZGUubV90YXJnZXRMYWJlbCk7CisgICAgZW1pdF9j
b21wYXJlQW5kSnVtcEltcGwob3AxLCBvcDIsIHRhcmdldCwgY29uZGl0aW9uKTsKK30KKwordm9p
ZCBKSVQ6OmVtaXRfY29tcGFyZUFuZEp1bXBJbXBsKGludCBvcDEsIGludCBvcDIsIHVuc2lnbmVk
IHRhcmdldCwgUmVsYXRpb25hbENvbmRpdGlvbiBjb25kaXRpb24pCiB7CiAgICAgLy8gV2UgZ2Vu
ZXJhdGUgaW5saW5lIGNvZGUgZm9yIHRoZSBmb2xsb3dpbmcgY2FzZXMgaW4gdGhlIGZhc3QgcGF0
aDoKICAgICAvLyAtIGludCBpbW1lZGlhdGUgdG8gY29uc3RhbnQgaW50IGltbWVkaWF0ZQogICAg
IC8vIC0gY29uc3RhbnQgaW50IGltbWVkaWF0ZSB0byBpbnQgaW1tZWRpYXRlCiAgICAgLy8gLSBp
bnQgaW1tZWRpYXRlIHRvIGludCBpbW1lZGlhdGUKIAotICAgIGF1dG8gYnl0ZWNvZGUgPSBpbnN0
cnVjdGlvbi0+YXM8T3A+KCk7Ci0gICAgaW50IG9wMSA9IGJ5dGVjb2RlLm1fbGhzLm9mZnNldCgp
OwotICAgIGludCBvcDIgPSBieXRlY29kZS5tX3Jocy5vZmZzZXQoKTsKLSAgICB1bnNpZ25lZCB0
YXJnZXQgPSBqdW1wVGFyZ2V0KGluc3RydWN0aW9uLCBieXRlY29kZS5tX3RhcmdldExhYmVsKTsK
ICAgICBib29sIGRpc2FsbG93QWxsb2NhdGlvbiA9IGZhbHNlOwogICAgIGlmIChpc09wZXJhbmRD
b25zdGFudENoYXIob3AxKSkgewogICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKG9wMiwg
cmVnVDApOwpAQCAtMjI4LDYgKzIzMywxMSBAQCB2b2lkIEpJVDo6ZW1pdF9jb21wYXJlVW5zaWdu
ZWRBbmRKdW1wKGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgUmVsYXRpb25hbAogICAg
IGludCBvcDEgPSBieXRlY29kZS5tX2xocy5vZmZzZXQoKTsKICAgICBpbnQgb3AyID0gYnl0ZWNv
ZGUubV9yaHMub2Zmc2V0KCk7CiAgICAgdW5zaWduZWQgdGFyZ2V0ID0ganVtcFRhcmdldChpbnN0
cnVjdGlvbiwgYnl0ZWNvZGUubV90YXJnZXRMYWJlbCk7CisgICAgZW1pdF9jb21wYXJlVW5zaWdu
ZWRBbmRKdW1wSW1wbChvcDEsIG9wMiwgdGFyZ2V0LCBjb25kaXRpb24pOworfQorCit2b2lkIEpJ
VDo6ZW1pdF9jb21wYXJlVW5zaWduZWRBbmRKdW1wSW1wbChpbnQgb3AxLCBpbnQgb3AyLCB1bnNp
Z25lZCB0YXJnZXQsIFJlbGF0aW9uYWxDb25kaXRpb24gY29uZGl0aW9uKQorewogICAgIGlmIChp
c09wZXJhbmRDb25zdGFudEludChvcDIpKSB7CiAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0
ZXIob3AxLCByZWdUMCk7CiAgICAgICAgIGludDMyX3Qgb3AyaW1tID0gZ2V0T3BlcmFuZENvbnN0
YW50SW50KG9wMik7CkBAIC0yNDksNiArMjU5LDExIEBAIHZvaWQgSklUOjplbWl0X2NvbXBhcmVV
bnNpZ25lZChjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIFJlbGF0aW9uYWxDb25kaXRp
CiAgICAgaW50IGRzdCA9IGJ5dGVjb2RlLm1fZHN0Lm9mZnNldCgpOwogICAgIGludCBvcDEgPSBi
eXRlY29kZS5tX2xocy5vZmZzZXQoKTsKICAgICBpbnQgb3AyID0gYnl0ZWNvZGUubV9yaHMub2Zm
c2V0KCk7CisgICAgZW1pdF9jb21wYXJlVW5zaWduZWRJbXBsKGRzdCwgb3AxLCBvcDIsIGNvbmRp
dGlvbik7Cit9CisKK3ZvaWQgSklUOjplbWl0X2NvbXBhcmVVbnNpZ25lZEltcGwoaW50IGRzdCwg
aW50IG9wMSwgaW50IG9wMiwgUmVsYXRpb25hbENvbmRpdGlvbiBjb25kaXRpb24pCit7CiAgICAg
aWYgKGlzT3BlcmFuZENvbnN0YW50SW50KG9wMikpIHsKICAgICAgICAgZW1pdEdldFZpcnR1YWxS
ZWdpc3RlcihvcDEsIHJlZ1QwKTsKICAgICAgICAgaW50MzJfdCBvcDJpbW0gPSBnZXRPcGVyYW5k
Q29uc3RhbnRJbnQob3AyKTsKQEAgLTI3Miw2ICsyODcsMTEgQEAgdm9pZCBKSVQ6OmVtaXRfY29t
cGFyZUFuZEp1bXBTbG93KGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgRG91YmxlQ29u
ZGl0aW8KICAgICBpbnQgb3AxID0gYnl0ZWNvZGUubV9saHMub2Zmc2V0KCk7CiAgICAgaW50IG9w
MiA9IGJ5dGVjb2RlLm1fcmhzLm9mZnNldCgpOwogICAgIHVuc2lnbmVkIHRhcmdldCA9IGp1bXBU
YXJnZXQoaW5zdHJ1Y3Rpb24sIGJ5dGVjb2RlLm1fdGFyZ2V0TGFiZWwpOworICAgIGVtaXRfY29t
cGFyZUFuZEp1bXBTbG93SW1wbChvcDEsIG9wMiwgdGFyZ2V0LCBpbnN0cnVjdGlvbi0+c2l6ZSgp
LCBjb25kaXRpb24sIG9wZXJhdGlvbiwgaW52ZXJ0LCBpdGVyKTsKK30KKwordm9pZCBKSVQ6OmVt
aXRfY29tcGFyZUFuZEp1bXBTbG93SW1wbChpbnQgb3AxLCBpbnQgb3AyLCB1bnNpZ25lZCB0YXJn
ZXQsIHNpemVfdCBpbnN0cnVjdGlvblNpemUsIERvdWJsZUNvbmRpdGlvbiBjb25kaXRpb24sIHNp
emVfdCAoSklUX09QRVJBVElPTiAqb3BlcmF0aW9uKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSksIGJvb2wgaW52ZXJ0LCBWZWN0b3I8U2xvd0Nhc2VFbnRy
eT46Oml0ZXJhdG9yJiBpdGVyKQorewogCiAgICAgLy8gV2UgZ2VuZXJhdGUgaW5saW5lIGNvZGUg
Zm9yIHRoZSBmb2xsb3dpbmcgY2FzZXMgaW4gdGhlIHNsb3cgcGF0aDoKICAgICAvLyAtIGZsb2F0
aW5nLXBvaW50IG51bWJlciB0byBjb25zdGFudCBpbnQgaW1tZWRpYXRlCkBAIC0zMDIsNyArMzIy
LDcgQEAgdm9pZCBKSVQ6OmVtaXRfY29tcGFyZUFuZEp1bXBTbG93KGNvbnN0IEluc3RydWN0aW9u
KiBpbnN0cnVjdGlvbiwgRG91YmxlQ29uZGl0aW8KIAogICAgICAgICAgICAgZW1pdEp1bXBTbG93
VG9Ib3QoYnJhbmNoRG91YmxlKGNvbmRpdGlvbiwgZnBSZWdUMCwgZnBSZWdUMSksIHRhcmdldCk7
CiAKLSAgICAgICAgICAgIGVtaXRKdW1wU2xvd1RvSG90KGp1bXAoKSwgaW5zdHJ1Y3Rpb24tPnNp
emUoKSk7CisgICAgICAgICAgICBlbWl0SnVtcFNsb3dUb0hvdChqdW1wKCksIGluc3RydWN0aW9u
U2l6ZSk7CiAKICAgICAgICAgICAgIGZhaWwxLmxpbmsodGhpcyk7CiAgICAgICAgIH0KQEAgLTMy
OCw3ICszNDgsNyBAQCB2b2lkIEpJVDo6ZW1pdF9jb21wYXJlQW5kSnVtcFNsb3coY29uc3QgSW5z
dHJ1Y3Rpb24qIGluc3RydWN0aW9uLCBEb3VibGVDb25kaXRpbwogCiAgICAgICAgICAgICBlbWl0
SnVtcFNsb3dUb0hvdChicmFuY2hEb3VibGUoY29uZGl0aW9uLCBmcFJlZ1QwLCBmcFJlZ1QxKSwg
dGFyZ2V0KTsKIAotICAgICAgICAgICAgZW1pdEp1bXBTbG93VG9Ib3QoanVtcCgpLCBpbnN0cnVj
dGlvbi0+c2l6ZSgpKTsKKyAgICAgICAgICAgIGVtaXRKdW1wU2xvd1RvSG90KGp1bXAoKSwgaW5z
dHJ1Y3Rpb25TaXplKTsKIAogICAgICAgICAgICAgZmFpbDEubGluayh0aGlzKTsKICAgICAgICAg
fQpAQCAtMzUyLDcgKzM3Miw3IEBAIHZvaWQgSklUOjplbWl0X2NvbXBhcmVBbmRKdW1wU2xvdyhj
b25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIERvdWJsZUNvbmRpdGlvCiAKICAgICAgICAg
ZW1pdEp1bXBTbG93VG9Ib3QoYnJhbmNoRG91YmxlKGNvbmRpdGlvbiwgZnBSZWdUMCwgZnBSZWdU
MSksIHRhcmdldCk7CiAKLSAgICAgICAgZW1pdEp1bXBTbG93VG9Ib3QoanVtcCgpLCBpbnN0cnVj
dGlvbi0+c2l6ZSgpKTsKKyAgICAgICAgZW1pdEp1bXBTbG93VG9Ib3QoanVtcCgpLCBpbnN0cnVj
dGlvblNpemUpOwogCiAgICAgICAgIGZhaWwxLmxpbmsodGhpcyk7CiAgICAgICAgIGZhaWwyLmxp
bmsodGhpcyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385286</attachid>
            <date>2019-12-10 10:56:58 -0800</date>
            <delta_ts>2019-12-10 11:41:47 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-204549-20191210105657.patch</filename>
            <type>text/plain</type>
            <size>54270</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
OTUzOGQ5MGM5YTY5NWY2MWVhNGE3NDA4YjVmMWY5MDk1NTM2MGQ4Li4wNzExYjQxODlkMWFiN2Y0
MzY3MjA1YWNlNDgwMmM1MWU2Yjg5ZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MyBAQAorMjAxOS0xMS0yMyAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBSZWR1Y2UgSlNDJ3MgYmluYXJ5IHNpemUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDU0OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IFNhYW0gQmFyYXRpLgorCisgICAgICAgIFRoZSBXYXNtIGludGVycHJldGVyIGxhbmRlZCBp
biByMjUxODg2IGFuZCBzaWduaWZpY2FudGx5IGluY3JlYXNlZCBKU0MncyBiaW5hcnkgc2l6ZS4g
VG8gdHJ5IGFuZAorICAgICAgICBvZmZzZXQgdGhhdCwgaGVyZSBhbmQgc29tZSBlYXN5IGZpeGVz
IHRoYXQgZ2V0IHVzIH4yMDBrYiBiYWNrOgorICAgICAgICAtIFdlIHdlcmUgZ2VuZXJhdGluZyAy
IGluc3RhbmNlcyBvZiBkdW1wQnl0ZWNvZGUsIGF0IDMwa2IgZWFjaC4gSSBjaGFuZ2VkIHRoZSBn
ZW5lcmF0b3IgdG8gZW1pdCBhIGNwcAorICAgICAgICAgIGZpbGUgaW5zdGVhZCwgYXZvaWRpbmcg
dGhlIGR1cGxpY2F0aW9uLgorICAgICAgICAtIFdlIGhhZCAzIGluc3RhbmNlcyBvZiBjb21wdXRl
VXNlc0ZvckJ5dGVjb2RlSW5kZXggYXQgMTFrYiBlYWNoLiBJIGtlcHQgdGhlIHdvcmsgdGhhdCBk
ZXBlbmRlZCBvbiB0aGUKKyAgICAgICAgIHRlbXBsYXRlIHR5cGUgaW4gdGhlIHRlbXBsYXRlIGZ1
bmN0aW9uIGFuZCBtb3ZlZCB0aGUgbWFzc2l2ZSBzd2l0Y2ggaW50byBjb21wdXRlVXNlc0ZvckJ5
dGVjb2RlSW5kZXhJbXBsLgorICAgICAgICAgSSBhbHNvIGRpZCB0aGUgc2FtZSBmb3IgY29tcHV0
ZURlZnNGb3JCeXRlY29kZUluZGV4LgorICAgICAgICAtIFdlIGhhZCA4IGluc3RhbmNlcyBvZiBl
bWl0X2NvbXBhcmVBbmRKdW1wKFNsb3cpIGF0IDhrYiAoN2tiIGZvciBTbG93KSBlYWNoLiBJIGtl
cHQgdGhlIGNvZGUKKyAgICAgICAgICB0aGF0IGV4dHJhY3RzIHRoZSBkYXRhIGZyb20gdGhlIGJ5
dGVjb2RlIGluIHRoZSB0ZW1wbGF0ZSwgYnV0IG1vdmVkIHRoZSBidWxrIG9mIHRoZSBmdW5jdGlv
bgorICAgICAgICAgIGludG8gZW1pdF9jb21wYXJlQW5kSnVtcChTbG93KUltcGwuCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcDoKKyAgICAgICAg
KEpTQzo6Qnl0ZWNvZGVEdW1wZXJCYXNlOjpwcmludExvY2F0aW9uQW5kT3ApOgorICAgICAgICAo
SlNDOjpCeXRlY29kZUR1bXBlckJhc2U6OmR1bXBWYWx1ZSk6CisgICAgICAgICogYnl0ZWNvZGUv
Qnl0ZWNvZGVEdW1wZXIuaDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVEdW1wZXJCYXNlOjp+Qnl0
ZWNvZGVEdW1wZXJCYXNlKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVEdW1wZXJCYXNlOjpkdW1w
VmFsdWUpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUR1bXBlckJhc2U6OkJ5dGVjb2RlRHVtcGVy
QmFzZSk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlRHVtcGVyOjpCeXRlY29kZUR1bXBlcik6Cisg
ICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaC4KKyAgICAgICAgKEpTQzo6
Y29tcHV0ZVVzZXNGb3JCeXRlY29kZUluZGV4SW1wbCk6CisgICAgICAgIChKU0M6OmNvbXB1dGVE
ZWZzRm9yQnl0ZWNvZGVJbmRleEltcGwpOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNl
RGVmLmg6CisgICAgICAgIChKU0M6OmNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVJbmRleCk6CisgICAg
ICAgIChKU0M6OmNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVJbmRleCk6CisgICAgICAgICogZ2VuZXJh
dG9yL0RTTC5yYjoKKyAgICAgICAgKiBnZW5lcmF0b3IvT3Bjb2RlLnJiOgorICAgICAgICAqIGdl
bmVyYXRvci9PcHRpb25zLnJiOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQv
SklUQXJpdGhtZXRpYy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9jb21wYXJlQW5kSnVt
cCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9jb21wYXJlQW5kSnVtcEltcGwpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfY29tcGFyZVVuc2lnbmVkQW5kSnVtcCk6CisgICAgICAgIChKU0M6
OkpJVDo6ZW1pdF9jb21wYXJlVW5zaWduZWRBbmRKdW1wSW1wbCk6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdF9jb21wYXJlVW5zaWduZWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfY29tcGFy
ZVVuc2lnbmVkSW1wbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9jb21wYXJlQW5kSnVtcFNs
b3cpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfY29tcGFyZUFuZEp1bXBTbG93SW1wbCk6CisK
IDIwMTktMTItMTAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbSlNDXSBQdXQgSlNBcnJheSBpbiBJc29TdWJzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IGM5YTgyYTc4NTRmYTdiOTUxMzQ0YzRmZjE1ZjRhYTUwZWVjOGE1MjYu
LjNkY2NlMGY4MWVkNDRjNzRkNjBlYTVhMGM2MjhkOGJmYWQ5MzMwOGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIxNCwxMCArMjE0LDEwIEBAIHNldChHRU5FUkFUT1IK
ICkKIAogYWRkX2N1c3RvbV9jb21tYW5kKAotICAgIE9VVFBVVCAke0phdmFTY3JpcHRDb3JlX0RF
UklWRURfU09VUkNFU19ESVJ9L0J5dGVjb2Rlcy5oICR7SmF2YVNjcmlwdENvcmVfREVSSVZFRF9T
T1VSQ0VTX0RJUn0vSW5pdEJ5dGVjb2Rlcy5hc20gJHtKYXZhU2NyaXB0Q29yZV9ERVJJVkVEX1NP
VVJDRVNfRElSfS9CeXRlY29kZVN0cnVjdHMuaCAke0phdmFTY3JpcHRDb3JlX0RFUklWRURfU09V
UkNFU19ESVJ9L0J5dGVjb2RlSW5kaWNlcy5oICR7SmF2YVNjcmlwdENvcmVfREVSSVZFRF9TT1VS
Q0VTX0RJUn0vV2FzbUxMSW50R2VuZXJhdG9ySW5saW5lcy5oICR7SmF2YVNjcmlwdENvcmVfREVS
SVZFRF9TT1VSQ0VTX0RJUn0vSW5pdFdhc20uYXNtCisgICAgT1VUUFVUICR7SmF2YVNjcmlwdENv
cmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQnl0ZWNvZGVzLmggJHtKYXZhU2NyaXB0Q29yZV9ERVJJ
VkVEX1NPVVJDRVNfRElSfS9Jbml0Qnl0ZWNvZGVzLmFzbSAke0phdmFTY3JpcHRDb3JlX0RFUklW
RURfU09VUkNFU19ESVJ9L0J5dGVjb2RlU3RydWN0cy5oICR7SmF2YVNjcmlwdENvcmVfREVSSVZF
RF9TT1VSQ0VTX0RJUn0vQnl0ZWNvZGVJbmRpY2VzLmggJHtKYXZhU2NyaXB0Q29yZV9ERVJJVkVE
X1NPVVJDRVNfRElSfS9XYXNtTExJbnRHZW5lcmF0b3JJbmxpbmVzLmggJHtKYXZhU2NyaXB0Q29y
ZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9Jbml0V2FzbS5hc20gJHtKYXZhU2NyaXB0Q29yZV9ERVJJ
VkVEX1NPVVJDRVNfRElSfS9CeXRlY29kZUR1bXBlckdlbmVyYXRlZC5jcHAKICAgICBNQUlOX0RF
UEVOREVOQ1kgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2dlbmVyYXRvci9tYWluLnJiCiAgICAgREVQ
RU5EUyAke0dFTkVSQVRPUn0gYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCi0gICAgQ09NTUFORCAk
e1JVQllfRVhFQ1VUQUJMRX0gJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2dlbmVyYXRvci9tYWluLnJi
IC0tYnl0ZWNvZGVzX2ggJHtKYXZhU2NyaXB0Q29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9CeXRl
Y29kZXMuaCAtLWluaXRfYnl0ZWNvZGVzX2FzbSAke0phdmFTY3JpcHRDb3JlX0RFUklWRURfU09V
UkNFU19ESVJ9L0luaXRCeXRlY29kZXMuYXNtIC0tYnl0ZWNvZGVfc3RydWN0c19oICR7SmF2YVNj
cmlwdENvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQnl0ZWNvZGVTdHJ1Y3RzLmggLS1ieXRlY29k
ZV9pbmRpY2VzX2ggJHtKYXZhU2NyaXB0Q29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9CeXRlY29k
ZUluZGljZXMuaCAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJi
IC0td2FzbV9qc29uICR7SkFWQVNDUklQVENPUkVfRElSfS93YXNtL3dhc20uanNvbiAtLXdhc21f
bGxpbnRfZ2VuZXJhdG9yX2ggJHtKYXZhU2NyaXB0Q29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9X
YXNtTExJbnRHZW5lcmF0b3JJbmxpbmVzLmggLS1pbml0X3dhc21fbGxpbnQgJHtKYXZhU2NyaXB0
Q29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9Jbml0V2FzbS5hc20KKyAgICBDT01NQU5EICR7UlVC
WV9FWEVDVVRBQkxFfSAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZ2VuZXJhdG9yL21haW4ucmIgLS1i
eXRlY29kZXNfaCAke0phdmFTY3JpcHRDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0J5dGVjb2Rl
cy5oIC0taW5pdF9ieXRlY29kZXNfYXNtICR7SmF2YVNjcmlwdENvcmVfREVSSVZFRF9TT1VSQ0VT
X0RJUn0vSW5pdEJ5dGVjb2Rlcy5hc20gLS1ieXRlY29kZV9zdHJ1Y3RzX2ggJHtKYXZhU2NyaXB0
Q29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9CeXRlY29kZVN0cnVjdHMuaCAtLWJ5dGVjb2RlX2lu
ZGljZXNfaCAke0phdmFTY3JpcHRDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0J5dGVjb2RlSW5k
aWNlcy5oICR7SkFWQVNDUklQVENPUkVfRElSfS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIgLS13
YXNtX2pzb24gJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3dhc20vd2FzbS5qc29uIC0td2FzbV9sbGlu
dF9nZW5lcmF0b3JfaCAke0phdmFTY3JpcHRDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1dhc21M
TEludEdlbmVyYXRvcklubGluZXMuaCAtLWluaXRfd2FzbV9sbGludCAke0phdmFTY3JpcHRDb3Jl
X0RFUklWRURfU09VUkNFU19ESVJ9L0luaXRXYXNtLmFzbSAtLWJ5dGVjb2RlX2R1bXBlciAke0ph
dmFTY3JpcHRDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0J5dGVjb2RlRHVtcGVyR2VuZXJhdGVk
LmNwcAogICAgIFZFUkJBVElNKQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCAzZDJlN2RkYzYxYTVhNWFj
OTBkYTExNTQ2ZWM4YWViYzk0OTVhNmQxLi5hNzQ0NTBjYTc5MWM3ZmE4ZDYyYzhiOTA5YWFmZTQx
NGU5NDZlZjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC04LDYgKzgsNyBAQCAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvQXN5bmNHZW5lcmF0b3JQcm90b3R5
cGUubHV0LgogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRD
b3JlL0JpZ0ludENvbnN0cnVjdG9yLmx1dC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvQmlnSW50UHJvdG90eXBlLmx1dC5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvQm9vbGVhblByb3RvdHlw
ZS5sdXQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRD
b3JlL0J5dGVjb2RlRHVtcGVyR2VuZXJhdGVkLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL0J5dGVjb2RlSW5kaWNlcy5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvQnl0ZWNvZGVTdHJ1Y3Rz
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9C
eXRlY29kZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCAzODY2ZTJiY2IzNzhjZmJlMmVlYzIyNWQ5ZjQxZjA1YmRlYTRiZDRmLi5lMmEzNmZhODc2NDkw
OWFiZmQwZTE4OTZkM2E5YTdjMzYxZjFiMjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQpAQCAtMjE4LDYgKzIxOCw3IEBAIEJZVEVDT0RFX0ZJTEVTID0gXAog
ICAgIEluaXRCeXRlY29kZXMuYXNtIFwKICAgICBXYXNtTExJbnRHZW5lcmF0b3JJbmxpbmVzLmgg
XAogICAgIEluaXRXYXNtLmFzbSBcCisgICAgQnl0ZWNvZGVEdW1wZXJHZW5lcmF0ZWQuY3BwIFwK
ICMKIEJZVEVDT0RFX0ZJTEVTX1BBVFRFUk5TID0gJChzdWJzdCAuLCUsJChCWVRFQ09ERV9GSUxF
UykpCiAKQEAgLTIzMiw2ICsyMzMsNyBAQCAkKEJZVEVDT0RFX0ZJTEVTX1BBVFRFUk5TKTogJCh3
aWxkY2FyZCAkKEphdmFTY3JpcHRDb3JlKS9nZW5lcmF0b3IvKi5yYikgJChKYXZhUwogICAgIC0t
d2FzbV9qc29uICQoSmF2YVNjcmlwdENvcmUpL3dhc20vd2FzbS5qc29uIFwKICAgICAtLXdhc21f
bGxpbnRfZ2VuZXJhdG9yX2ggV2FzbUxMSW50R2VuZXJhdG9ySW5saW5lcy5oIFwKICAgICAtLWlu
aXRfd2FzbV9sbGludCBJbml0V2FzbS5hc20gXAorICAgIC0tYnl0ZWNvZGVfZHVtcGVyIEJ5dGVj
b2RlRHVtcGVyR2VuZXJhdGVkLmNwcCBcCiAKICMgSW5zcGVjdG9yIGludGVyZmFjZXMKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL1NvdXJjZXMudHh0CmluZGV4IGJlOWEyYTgwM2Q1NjcwNDhkNWE4ZWFmODBjNGUw
MGI5MjNkZjJmOTguLmUxMTgzNzc5NTM0ODM2OWI1MDVhNTY0OTcxZTZlMWZjZWQ0NDExMzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKQEAgLTIwMSw2ICsyMDEsNyBAQCBieXRlY29kZS9C
eXRlY29kZUluZGV4LmNwcAogYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5jcHAK
IGJ5dGVjb2RlL0J5dGVjb2RlTGl2ZW5lc3NBbmFseXNpcy5jcHAKIGJ5dGVjb2RlL0J5dGVjb2Rl
UmV3cml0ZXIuY3BwCitieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAKIGJ5dGVjb2RlL0NhbGxF
ZGdlLmNwcAogYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcAogYnl0ZWNvZGUvQ2FsbExpbmtTdGF0
dXMuY3BwCkBAIC0yODQsNiArMjg1LDkgQEAgYnl0ZWNvZGUvVmFyaWFibGVXcml0ZUZpcmVEZXRh
aWwuY3BwCiBieXRlY29kZS9WaXJ0dWFsUmVnaXN0ZXIuY3BwCiBieXRlY29kZS9XYXRjaHBvaW50
LmNwcAogCisvLyBEZXJpdmVkIFNvdXJjZXMKK0J5dGVjb2RlRHVtcGVyR2VuZXJhdGVkLmNwcAor
CiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCiBieXRlY29tcGlsZXIvTm9kZXND
b2RlZ2VuLmNwcAogYnl0ZWNvbXBpbGVyL1Byb2ZpbGVUeXBlQnl0ZWNvZGVGbGFnLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKaW5k
ZXggN2I0MTU0OTJkNTE3YTJkYjRjMjFkOTMzNjMzZDE4Zjk3YjM1MmJiZS4uYmJiNzk0MzM0ZDEz
N2NlZGNhODE1NWI2MTIzYjg4OTc4YjE4OWUwMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwCkBAIC01NSw2ICs1NSwzMCBAQCBzdGF0
aWMgQUxXQVlTX0lOTElORSBib29sIGlzQ29uc3RhbnRSZWdpc3RlckluZGV4KGludCBpbmRleCkK
ICAgICByZXR1cm4gaW5kZXggPj0gRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXg7CiB9CiAKK3Zv
aWQgQnl0ZWNvZGVEdW1wZXJCYXNlOjpwcmludExvY2F0aW9uQW5kT3AoSW5zdHJ1Y3Rpb25TdHJl
YW06Ok9mZnNldCBsb2NhdGlvbiwgY29uc3QgY2hhciogb3ApCit7CisgICAgbV9jdXJyZW50TG9j
YXRpb24gPSBsb2NhdGlvbjsKKyAgICBtX291dC5wcmludGYoIlslNHVdICUtMThzICIsIGxvY2F0
aW9uLCBvcCk7Cit9CisKK3ZvaWQgQnl0ZWNvZGVEdW1wZXJCYXNlOjpkdW1wVmFsdWUoVmlydHVh
bFJlZ2lzdGVyIHJlZykKK3sKKyAgICBtX291dC5wcmludGYoIiVzIiwgcmVnaXN0ZXJOYW1lKHJl
Zy5vZmZzZXQoKSkuZGF0YSgpKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVHJhaXRzPgordm9p
ZCBCeXRlY29kZUR1bXBlckJhc2U6OmR1bXBWYWx1ZShHZW5lcmljQm91bmRMYWJlbDxUcmFpdHM+
IGxhYmVsKQoreworICAgIEluc3RydWN0aW9uU3RyZWFtOjpPZmZzZXQgdGFyZ2V0T2Zmc2V0ID0g
bGFiZWwudGFyZ2V0KCkgKyBtX2N1cnJlbnRMb2NhdGlvbjsKKyAgICBtX291dC5wcmludChsYWJl
bC50YXJnZXQoKSwgIigtPiIsIHRhcmdldE9mZnNldCwgIikiKTsKK30KKwordGVtcGxhdGUgdm9p
ZCBCeXRlY29kZUR1bXBlckJhc2U6OmR1bXBWYWx1ZShHZW5lcmljQm91bmRMYWJlbDxKU0dlbmVy
YXRvclRyYWl0cz4pOworCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQordGVtcGxhdGUgdm9pZCBC
eXRlY29kZUR1bXBlckJhc2U6OmR1bXBWYWx1ZShHZW5lcmljQm91bmRMYWJlbDxXYXNtOjpHZW5l
cmF0b3JUcmFpdHM+KTsKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCisKIHRlbXBsYXRl
PGNsYXNzIEJsb2NrPgogQ1N0cmluZyBCeXRlY29kZUR1bXBlcjxCbG9jaz46OnJlZ2lzdGVyTmFt
ZShpbnQgcikgY29uc3QKIHsKQEAgLTcxLDE5ICs5NSw2IEBAIENTdHJpbmcgQnl0ZWNvZGVEdW1w
ZXI8QmxvY2s+Ojpjb25zdGFudE5hbWUoaW50IGluZGV4KSBjb25zdAogICAgIHJldHVybiB0b0NT
dHJpbmcodmFsdWUsICIoIiwgVmlydHVhbFJlZ2lzdGVyKGluZGV4KSwgIikiKTsKIH0KIAotdGVt
cGxhdGU8Y2xhc3MgQmxvY2s+Ci12b2lkIEJ5dGVjb2RlRHVtcGVyPEJsb2NrPjo6cHJpbnRMb2Nh
dGlvbkFuZE9wKEluc3RydWN0aW9uU3RyZWFtOjpPZmZzZXQgbG9jYXRpb24sIGNvbnN0IGNoYXIq
IG9wKQotewotICAgIG1fY3VycmVudExvY2F0aW9uID0gbG9jYXRpb247Ci0gICAgbV9vdXQucHJp
bnRmKCJbJTR1XSAlLTE4cyAiLCBsb2NhdGlvbiwgb3ApOwotfQotCi10ZW1wbGF0ZTxjbGFzcyBC
bG9jaz4KLXZvaWQgQnl0ZWNvZGVEdW1wZXI8QmxvY2s+OjpkdW1wVmFsdWUoVmlydHVhbFJlZ2lz
dGVyIHJlZykKLXsKLSAgICBtX291dC5wcmludGYoIiVzIiwgcmVnaXN0ZXJOYW1lKHJlZy5vZmZz
ZXQoKSkuZGF0YSgpKTsKLX0KLQogdGVtcGxhdGU8Y2xhc3MgQmxvY2s+CiB2b2lkIEJ5dGVjb2Rl
RHVtcGVyPEJsb2NrPjo6ZHVtcEJ5dGVjb2RlKGNvbnN0IEluc3RydWN0aW9uU3RyZWFtOjpSZWYm
IGl0LCBjb25zdCBJQ1N0YXR1c01hcCYpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9CeXRlY29kZUR1bXBlci5oCmluZGV4IDY4OWUwMjJjYjQ1YjBiMzIzMmE5M2RiN2Jh
OTc1MzY4ZDAyYjNjZmMuLjViZTk0MTI3Y2EyNDY1ZWY3M2JmNjgxMmFjY2FjMDUyMDkyYzJiMWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBl
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5o
CkBAIC0yNiwyMCArMjYsMjEgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJCeXRlY29k
ZUdlbmVyYXRvckJhc2UuaCIKICNpbmNsdWRlICJDYWxsTGlua0luZm8uaCIKICNpbmNsdWRlICJJ
Q1N0YXR1c01hcC5oIgogI2luY2x1ZGUgIkluc3RydWN0aW9uU3RyZWFtLmgiCi0jaW5jbHVkZSAi
TGFiZWwuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVTdHViSW5mby5oIgogCiBuYW1lc3BhY2UgSlND
IHsKIAogc3RydWN0IEluc3RydWN0aW9uOwogCi10ZW1wbGF0ZTxjbGFzcyBCbG9jaz4KLWNsYXNz
IEJ5dGVjb2RlRHVtcGVyIHsKK2NsYXNzIEJ5dGVjb2RlRHVtcGVyQmFzZSB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIHZvaWQgZHVtcEJ5dGVjb2RlKEJsb2NrKiwgUHJpbnRTdHJlYW0mIG91dCwgY29u
c3QgSW5zdHJ1Y3Rpb25TdHJlYW06OlJlZiYgaXQsIGNvbnN0IElDU3RhdHVzTWFwJiA9IElDU3Rh
dHVzTWFwKCkpOworICAgIHZpcnR1YWwgfkJ5dGVjb2RlRHVtcGVyQmFzZSgpCisgICAgeworICAg
IH0KIAogICAgIHZvaWQgcHJpbnRMb2NhdGlvbkFuZE9wKEluc3RydWN0aW9uU3RyZWFtOjpPZmZz
ZXQgbG9jYXRpb24sIGNvbnN0IGNoYXIqIG9wKTsKIApAQCAtNTQsMTggKzU1LDMwIEBAIHB1Ymxp
YzoKICAgICB2b2lkIGR1bXBWYWx1ZShWaXJ0dWFsUmVnaXN0ZXIpOwogCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVHJhaXRzPgotICAgIHZvaWQgZHVtcFZhbHVlKEdlbmVyaWNCb3VuZExhYmVsPFRy
YWl0cz4gbGFiZWwpCisgICAgdm9pZCBkdW1wVmFsdWUoR2VuZXJpY0JvdW5kTGFiZWw8VHJhaXRz
Pik7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHZvaWQgZHVtcFZhbHVlKFQgdikg
eyBtX291dC5wcmludCh2KTsgfQorCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCBDU3RyaW5nIHJl
Z2lzdGVyTmFtZShpbnQpIGNvbnN0ID0gMDsKKworICAgIEJ5dGVjb2RlRHVtcGVyQmFzZShQcmlu
dFN0cmVhbSYgb3V0KQorICAgICAgICA6IG1fb3V0KG91dCkKICAgICB7Ci0gICAgICAgIEluc3Ry
dWN0aW9uU3RyZWFtOjpPZmZzZXQgdGFyZ2V0T2Zmc2V0ID0gbGFiZWwudGFyZ2V0KCkgKyBtX2N1
cnJlbnRMb2NhdGlvbjsKLSAgICAgICAgbV9vdXQucHJpbnQobGFiZWwudGFyZ2V0KCksICIoLT4i
LCB0YXJnZXRPZmZzZXQsICIpIik7CiAgICAgfQogCisgICAgUHJpbnRTdHJlYW0mIG1fb3V0Owor
ICAgIEluc3RydWN0aW9uU3RyZWFtOjpPZmZzZXQgbV9jdXJyZW50TG9jYXRpb24geyAwIH07Cit9
OwogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KLSAgICB2b2lkIGR1bXBWYWx1ZShUIHYpIHsg
bV9vdXQucHJpbnQodik7IH0KK3RlbXBsYXRlPGNsYXNzIEJsb2NrPgorY2xhc3MgQnl0ZWNvZGVE
dW1wZXIgOiBwdWJsaWMgQnl0ZWNvZGVEdW1wZXJCYXNlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
dm9pZCBkdW1wQnl0ZWNvZGUoQmxvY2sqLCBQcmludFN0cmVhbSYgb3V0LCBjb25zdCBJbnN0cnVj
dGlvblN0cmVhbTo6UmVmJiBpdCwgY29uc3QgSUNTdGF0dXNNYXAmID0gSUNTdGF0dXNNYXAoKSk7
CiAKICAgICBCeXRlY29kZUR1bXBlcihCbG9jayogYmxvY2ssIFByaW50U3RyZWFtJiBvdXQpCi0g
ICAgICAgIDogbV9vdXQob3V0KQorICAgICAgICA6IEJ5dGVjb2RlRHVtcGVyQmFzZShvdXQpCiAg
ICAgICAgICwgbV9ibG9jayhibG9jaykKICAgICB7CiAgICAgfQpAQCAtNzcsMTQgKzkwLDEyIEBA
IHByb3RlY3RlZDoKIAogICAgIHZvaWQgZHVtcEJ5dGVjb2RlKGNvbnN0IEluc3RydWN0aW9uU3Ry
ZWFtOjpSZWYmIGl0LCBjb25zdCBJQ1N0YXR1c01hcCYpOwogCi0gICAgUHJpbnRTdHJlYW0mIG1f
b3V0OworICAgIENTdHJpbmcgcmVnaXN0ZXJOYW1lKGludCByKSBjb25zdCBvdmVycmlkZTsKIAog
cHJpdmF0ZToKLSAgICBDU3RyaW5nIHJlZ2lzdGVyTmFtZShpbnQgcikgY29uc3Q7CiAgICAgdmly
dHVhbCBDU3RyaW5nIGNvbnN0YW50TmFtZShpbnQgaW5kZXgpIGNvbnN0OwogCiAgICAgQmxvY2sq
IG1fYmxvY2s7Ci0gICAgSW5zdHJ1Y3Rpb25TdHJlYW06Ok9mZnNldCBtX2N1cnJlbnRMb2NhdGlv
biB7IDAgfTsKIH07CiAKIHRlbXBsYXRlPGNsYXNzIEJsb2NrPgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWI2MzI5
MzRlYjZjMWZjNWNjYWE3MWIwZTQyOTNhYTlhZDY2MmU5NQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAKQEAgLTAsMCAr
MSw0OTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJCeXRlY29kZVVzZURlZi5oIgorCituYW1lc3BhY2UgSlNDIHsKKworI2RlZmluZSBDQUxMX0ZV
TkNUT1IoX19hcmcpIFwKKyAgICBmdW5jdG9yKF9fYnl0ZWNvZGUubV8jI19fYXJnKTsKKworI2Rl
ZmluZSBVU0VTX09SX0RFRlMoX19vcGNvZGUsIC4uLikgXAorICAgIGNhc2UgX19vcGNvZGU6Om9w
Y29kZUlEOiB7IFwKKyAgICAgICAgYXV0byBfX2J5dGVjb2RlID0gaW5zdHJ1Y3Rpb24tPmFzPF9f
b3Bjb2RlPigpOyBcCisgICAgICAgIFdURl9MQVpZX0ZPUl9FQUNIX1RFUk0oQ0FMTF9GVU5DVE9S
LCBfX1ZBX0FSR1NfXykgXAorICAgICAgICByZXR1cm47IFwKKyAgICB9CisKKyNkZWZpbmUgVVNF
UyBVU0VTX09SX0RFRlMKKyNkZWZpbmUgREVGUyBVU0VTX09SX0RFRlMKKwordm9pZCBjb21wdXRl
VXNlc0ZvckJ5dGVjb2RlSW5kZXhJbXBsKFZpcnR1YWxSZWdpc3RlciBzY29wZVJlZ2lzdGVyLCBj
b25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIGNvbnN0IEZ1bmN0aW9uPHZvaWQoVmlydHVh
bFJlZ2lzdGVyKT4mIGZ1bmN0b3IpCit7CisgICAgT3Bjb2RlSUQgb3Bjb2RlSUQgPSBpbnN0cnVj
dGlvbi0+b3Bjb2RlSUQoKTsKKworICAgIGF1dG8gaGFuZGxlTmV3QXJyYXlMaWtlID0gWyZdKGF1
dG8gb3ApIHsKKyAgICAgICAgaW50IGJhc2UgPSBvcC5tX2FyZ3Yub2Zmc2V0KCk7CisgICAgICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgc3RhdGljX2Nhc3Q8aW50PihvcC5tX2FyZ2MpOyBpKyspCisg
ICAgICAgICAgICBmdW5jdG9yKFZpcnR1YWxSZWdpc3RlciB7IGJhc2UgLSBpIH0pOworICAgIH07
CisKKyAgICBhdXRvIGhhbmRsZU9wQ2FsbExpa2UgPSBbJl0oYXV0byBvcCkgeworICAgICAgICBm
dW5jdG9yKG9wLm1fY2FsbGVlKTsKKyAgICAgICAgaW50IGxhc3RBcmcgPSAtc3RhdGljX2Nhc3Q8
aW50PihvcC5tX2FyZ3YpICsgQ2FsbEZyYW1lOjp0aGlzQXJndW1lbnRPZmZzZXQoKTsKKyAgICAg
ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdGF0aWNfY2FzdDxpbnQ+KG9wLm1fYXJnYyk7IGkrKykK
KyAgICAgICAgICAgIGZ1bmN0b3IoVmlydHVhbFJlZ2lzdGVyIHsgbGFzdEFyZyArIGkgfSk7Cisg
ICAgICAgIGlmIChvcGNvZGVJRCA9PSBvcF9jYWxsX2V2YWwpCisgICAgICAgICAgICBmdW5jdG9y
KHNjb3BlUmVnaXN0ZXIpOworICAgICAgICByZXR1cm47CisgICAgfTsKKworICAgIHN3aXRjaCAo
b3Bjb2RlSUQpIHsKKyAgICBjYXNlIG9wX3dpZGUxNjoKKyAgICBjYXNlIG9wX3dpZGUzMjoKKyAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKworICAgIC8vIE5vIHVzZXMuCisg
ICAgY2FzZSBvcF9uZXdfcmVnZXhwOgorICAgIGNhc2Ugb3BfZGVidWc6CisgICAgY2FzZSBvcF9q
bmVxX3B0cjoKKyAgICBjYXNlIG9wX2xvb3BfaGludDoKKyAgICBjYXNlIG9wX2ptcDoKKyAgICBj
YXNlIG9wX25ld19vYmplY3Q6CisgICAgY2FzZSBvcF9uZXdfcHJvbWlzZToKKyAgICBjYXNlIG9w
X25ld19nZW5lcmF0b3I6CisgICAgY2FzZSBvcF9lbnRlcjoKKyAgICBjYXNlIG9wX2FyZ3VtZW50
X2NvdW50OgorICAgIGNhc2Ugb3BfY2F0Y2g6CisgICAgY2FzZSBvcF9wcm9maWxlX2NvbnRyb2xf
ZmxvdzoKKyAgICBjYXNlIG9wX2NyZWF0ZV9kaXJlY3RfYXJndW1lbnRzOgorICAgIGNhc2Ugb3Bf
Y3JlYXRlX2Nsb25lZF9hcmd1bWVudHM6CisgICAgY2FzZSBvcF9nZXRfcmVzdF9sZW5ndGg6Cisg
ICAgY2FzZSBvcF9jaGVja190cmFwczoKKyAgICBjYXNlIG9wX2dldF9hcmd1bWVudDoKKyAgICBj
YXNlIG9wX25vcDoKKyAgICBjYXNlIG9wX3VucmVhY2hhYmxlOgorICAgIGNhc2Ugb3Bfc3VwZXJf
c2FtcGxlcl9iZWdpbjoKKyAgICBjYXNlIG9wX3N1cGVyX3NhbXBsZXJfZW5kOgorICAgICAgICBy
ZXR1cm47CisKKyAgICBVU0VTKE9wR2V0U2NvcGUsIGRzdCkKKyAgICBVU0VTKE9wVG9UaGlzLCBz
cmNEc3QpCisgICAgVVNFUyhPcENoZWNrVGR6LCB0YXJnZXRWaXJ0dWFsUmVnaXN0ZXIpCisgICAg
VVNFUyhPcElkZW50aXR5V2l0aFByb2ZpbGUsIHNyY0RzdCkKKyAgICBVU0VTKE9wUHJvZmlsZVR5
cGUsIHRhcmdldFZpcnR1YWxSZWdpc3Rlcik7CisgICAgVVNFUyhPcFRocm93LCB2YWx1ZSkKKyAg
ICBVU0VTKE9wVGhyb3dTdGF0aWNFcnJvciwgbWVzc2FnZSkKKyAgICBVU0VTKE9wRW5kLCB2YWx1
ZSkKKyAgICBVU0VTKE9wUmV0LCB2YWx1ZSkKKyAgICBVU0VTKE9wSnRydWUsIGNvbmRpdGlvbikK
KyAgICBVU0VTKE9wSmZhbHNlLCBjb25kaXRpb24pCisgICAgVVNFUyhPcEplcU51bGwsIHZhbHVl
KQorICAgIFVTRVMoT3BKbmVxTnVsbCwgdmFsdWUpCisgICAgVVNFUyhPcEp1bmRlZmluZWRPck51
bGwsIHZhbHVlKQorICAgIFVTRVMoT3BKbnVuZGVmaW5lZE9yTnVsbCwgdmFsdWUpCisgICAgVVNF
UyhPcERlYywgc3JjRHN0KQorICAgIFVTRVMoT3BJbmMsIHNyY0RzdCkKKyAgICBVU0VTKE9wTG9n
U2hhZG93Q2hpY2tlblByb2xvZ3VlLCBzY29wZSkKKworICAgIFVTRVMoT3BKbGVzcywgbGhzLCBy
aHMpCisgICAgVVNFUyhPcEpsZXNzZXEsIGxocywgcmhzKQorICAgIFVTRVMoT3BKZ3JlYXRlciwg
bGhzLCByaHMpCisgICAgVVNFUyhPcEpncmVhdGVyZXEsIGxocywgcmhzKQorICAgIFVTRVMoT3BK
bmxlc3MsIGxocywgcmhzKQorICAgIFVTRVMoT3BKbmxlc3NlcSwgbGhzLCByaHMpCisgICAgVVNF
UyhPcEpuZ3JlYXRlciwgbGhzLCByaHMpCisgICAgVVNFUyhPcEpuZ3JlYXRlcmVxLCBsaHMsIHJo
cykKKyAgICBVU0VTKE9wSmVxLCBsaHMsIHJocykKKyAgICBVU0VTKE9wSm5lcSwgbGhzLCByaHMp
CisgICAgVVNFUyhPcEpzdHJpY3RlcSwgbGhzLCByaHMpCisgICAgVVNFUyhPcEpuc3RyaWN0ZXEs
IGxocywgcmhzKQorICAgIFVTRVMoT3BKYmVsb3csIGxocywgcmhzKQorICAgIFVTRVMoT3BKYmVs
b3dlcSwgbGhzLCByaHMpCisgICAgVVNFUyhPcFNldEZ1bmN0aW9uTmFtZSwgZnVuY3Rpb24sIG5h
bWUpCisgICAgVVNFUyhPcExvZ1NoYWRvd0NoaWNrZW5UYWlsLCB0aGlzVmFsdWUsIHNjb3BlKQor
CisgICAgVVNFUyhPcFB1dEJ5VmFsLCBiYXNlLCBwcm9wZXJ0eSwgdmFsdWUpCisgICAgVVNFUyhP
cFB1dEJ5VmFsRGlyZWN0LCBiYXNlLCBwcm9wZXJ0eSwgdmFsdWUpCisKKyAgICBVU0VTKE9wUHV0
QnlJZCwgYmFzZSwgdmFsdWUpCisgICAgVVNFUyhPcFB1dFRvU2NvcGUsIHNjb3BlLCB2YWx1ZSkK
KyAgICBVU0VTKE9wUHV0VG9Bcmd1bWVudHMsIGFyZ3VtZW50cywgdmFsdWUpCisKKyAgICBVU0VT
KE9wUHV0QnlJZFdpdGhUaGlzLCBiYXNlLCB0aGlzVmFsdWUsIHZhbHVlKQorCisgICAgVVNFUyhP
cFB1dEJ5VmFsV2l0aFRoaXMsIGJhc2UsIHRoaXNWYWx1ZSwgcHJvcGVydHksIHZhbHVlKQorCisg
ICAgVVNFUyhPcFB1dEdldHRlckJ5SWQsIGJhc2UsIGFjY2Vzc29yKQorICAgIFVTRVMoT3BQdXRT
ZXR0ZXJCeUlkLCBiYXNlLCBhY2Nlc3NvcikKKworICAgIFVTRVMoT3BQdXRHZXR0ZXJTZXR0ZXJC
eUlkLCBiYXNlLCBnZXR0ZXIsIHNldHRlcikKKworICAgIFVTRVMoT3BQdXRHZXR0ZXJCeVZhbCwg
YmFzZSwgcHJvcGVydHksIGFjY2Vzc29yKQorICAgIFVTRVMoT3BQdXRTZXR0ZXJCeVZhbCwgYmFz
ZSwgcHJvcGVydHksIGFjY2Vzc29yKQorCisgICAgVVNFUyhPcERlZmluZURhdGFQcm9wZXJ0eSwg
YmFzZSwgcHJvcGVydHksIHZhbHVlLCBhdHRyaWJ1dGVzKQorCisgICAgVVNFUyhPcERlZmluZUFj
Y2Vzc29yUHJvcGVydHksIGJhc2UsIHByb3BlcnR5LCBnZXR0ZXIsIHNldHRlciwgYXR0cmlidXRl
cykKKworICAgIFVTRVMoT3BTcHJlYWQsIGFyZ3VtZW50KQorICAgIFVTRVMoT3BHZXRQcm9wZXJ0
eUVudW1lcmF0b3IsIGJhc2UpCisgICAgVVNFUyhPcEdldEVudW1lcmFibGVMZW5ndGgsIGJhc2Up
CisgICAgVVNFUyhPcE5ld0Z1bmNFeHAsIHNjb3BlKQorICAgIFVTRVMoT3BOZXdHZW5lcmF0b3JG
dW5jRXhwLCBzY29wZSkKKyAgICBVU0VTKE9wTmV3QXN5bmNGdW5jRXhwLCBzY29wZSkKKyAgICBV
U0VTKE9wVG9JbmRleFN0cmluZywgaW5kZXgpCisgICAgVVNFUyhPcENyZWF0ZUxleGljYWxFbnZp
cm9ubWVudCwgc2NvcGUsIHN5bWJvbFRhYmxlLCBpbml0aWFsVmFsdWUpCisgICAgVVNFUyhPcENy
ZWF0ZUdlbmVyYXRvckZyYW1lRW52aXJvbm1lbnQsIHNjb3BlLCBzeW1ib2xUYWJsZSwgaW5pdGlh
bFZhbHVlKQorICAgIFVTRVMoT3BSZXNvbHZlU2NvcGUsIHNjb3BlKQorICAgIFVTRVMoT3BSZXNv
bHZlU2NvcGVGb3JIb2lzdGluZ0Z1bmNEZWNsSW5FdmFsLCBzY29wZSkKKyAgICBVU0VTKE9wR2V0
RnJvbVNjb3BlLCBzY29wZSkKKyAgICBVU0VTKE9wVG9QcmltaXRpdmUsIHNyYykKKyAgICBVU0VT
KE9wVHJ5R2V0QnlJZCwgYmFzZSkKKyAgICBVU0VTKE9wR2V0QnlJZCwgYmFzZSkKKyAgICBVU0VT
KE9wR2V0QnlJZERpcmVjdCwgYmFzZSkKKyAgICBVU0VTKE9wSW5CeUlkLCBiYXNlKQorICAgIFVT
RVMoT3BUeXBlb2YsIHZhbHVlKQorICAgIFVTRVMoT3BJc0VtcHR5LCBvcGVyYW5kKQorICAgIFVT
RVMoT3BJc1VuZGVmaW5lZCwgb3BlcmFuZCkKKyAgICBVU0VTKE9wSXNVbmRlZmluZWRPck51bGws
IG9wZXJhbmQpCisgICAgVVNFUyhPcElzQm9vbGVhbiwgb3BlcmFuZCkKKyAgICBVU0VTKE9wSXNO
dW1iZXIsIG9wZXJhbmQpCisgICAgVVNFUyhPcElzT2JqZWN0LCBvcGVyYW5kKQorICAgIFVTRVMo
T3BJc09iamVjdE9yTnVsbCwgb3BlcmFuZCkKKyAgICBVU0VTKE9wSXNDZWxsV2l0aFR5cGUsIG9w
ZXJhbmQpCisgICAgVVNFUyhPcElzRnVuY3Rpb24sIG9wZXJhbmQpCisgICAgVVNFUyhPcFRvTnVt
YmVyLCBvcGVyYW5kKQorICAgIFVTRVMoT3BUb051bWVyaWMsIG9wZXJhbmQpCisgICAgVVNFUyhP
cFRvU3RyaW5nLCBvcGVyYW5kKQorICAgIFVTRVMoT3BUb09iamVjdCwgb3BlcmFuZCkKKyAgICBV
U0VTKE9wTmVnYXRlLCBvcGVyYW5kKQorICAgIFVTRVMoT3BCaXRub3QsIG9wZXJhbmQpCisgICAg
VVNFUyhPcEVxTnVsbCwgb3BlcmFuZCkKKyAgICBVU0VTKE9wTmVxTnVsbCwgb3BlcmFuZCkKKyAg
ICBVU0VTKE9wTm90LCBvcGVyYW5kKQorICAgIFVTRVMoT3BVbnNpZ25lZCwgb3BlcmFuZCkKKyAg
ICBVU0VTKE9wTW92LCBzcmMpCisgICAgVVNFUyhPcE5ld0FycmF5V2l0aFNpemUsIGxlbmd0aCkK
KyAgICBVU0VTKE9wQ3JlYXRlVGhpcywgY2FsbGVlKQorICAgIFVTRVMoT3BDcmVhdGVQcm9taXNl
LCBjYWxsZWUpCisgICAgVVNFUyhPcENyZWF0ZUdlbmVyYXRvciwgY2FsbGVlKQorICAgIFVTRVMo
T3BDcmVhdGVBc3luY0dlbmVyYXRvciwgY2FsbGVlKQorICAgIFVTRVMoT3BEZWxCeUlkLCBiYXNl
KQorICAgIFVTRVMoT3BOZXdGdW5jLCBzY29wZSkKKyAgICBVU0VTKE9wTmV3QXN5bmNHZW5lcmF0
b3JGdW5jLCBzY29wZSkKKyAgICBVU0VTKE9wTmV3QXN5bmNHZW5lcmF0b3JGdW5jRXhwLCBzY29w
ZSkKKyAgICBVU0VTKE9wTmV3R2VuZXJhdG9yRnVuYywgc2NvcGUpCisgICAgVVNFUyhPcE5ld0Fz
eW5jRnVuYywgc2NvcGUpCisgICAgVVNFUyhPcEdldFBhcmVudFNjb3BlLCBzY29wZSkKKyAgICBV
U0VTKE9wQ3JlYXRlU2NvcGVkQXJndW1lbnRzLCBzY29wZSkKKyAgICBVU0VTKE9wQ3JlYXRlUmVz
dCwgYXJyYXlTaXplKQorICAgIFVTRVMoT3BHZXRGcm9tQXJndW1lbnRzLCBhcmd1bWVudHMpCisg
ICAgVVNFUyhPcE5ld0FycmF5QnVmZmVyLCBpbW11dGFibGVCdXR0ZXJmbHkpCisKKyAgICBVU0VT
KE9wSGFzR2VuZXJpY1Byb3BlcnR5LCBiYXNlLCBwcm9wZXJ0eSkKKyAgICBVU0VTKE9wSGFzSW5k
ZXhlZFByb3BlcnR5LCBiYXNlLCBwcm9wZXJ0eSkKKyAgICBVU0VTKE9wRW51bWVyYXRvclN0cnVj
dHVyZVBuYW1lLCBlbnVtZXJhdG9yLCBpbmRleCkKKyAgICBVU0VTKE9wRW51bWVyYXRvckdlbmVy
aWNQbmFtZSwgZW51bWVyYXRvciwgaW5kZXgpCisgICAgVVNFUyhPcEdldEJ5VmFsLCBiYXNlLCBw
cm9wZXJ0eSkKKyAgICBVU0VTKE9wSW5CeVZhbCwgYmFzZSwgcHJvcGVydHkpCisgICAgVVNFUyhP
cE92ZXJyaWRlc0hhc0luc3RhbmNlLCBjb25zdHJ1Y3RvciwgaGFzSW5zdGFuY2VWYWx1ZSkKKyAg
ICBVU0VTKE9wSW5zdGFuY2VvZiwgdmFsdWUsIHByb3RvdHlwZSkKKyAgICBVU0VTKE9wQWRkLCBs
aHMsIHJocykKKyAgICBVU0VTKE9wTXVsLCBsaHMsIHJocykKKyAgICBVU0VTKE9wRGl2LCBsaHMs
IHJocykKKyAgICBVU0VTKE9wTW9kLCBsaHMsIHJocykKKyAgICBVU0VTKE9wU3ViLCBsaHMsIHJo
cykKKyAgICBVU0VTKE9wUG93LCBsaHMsIHJocykKKyAgICBVU0VTKE9wTHNoaWZ0LCBsaHMsIHJo
cykKKyAgICBVU0VTKE9wUnNoaWZ0LCBsaHMsIHJocykKKyAgICBVU0VTKE9wVXJzaGlmdCwgbGhz
LCByaHMpCisgICAgVVNFUyhPcEJpdGFuZCwgbGhzLCByaHMpCisgICAgVVNFUyhPcEJpdHhvciwg
bGhzLCByaHMpCisgICAgVVNFUyhPcEJpdG9yLCBsaHMsIHJocykKKyAgICBVU0VTKE9wTGVzcywg
bGhzLCByaHMpCisgICAgVVNFUyhPcExlc3NlcSwgbGhzLCByaHMpCisgICAgVVNFUyhPcEdyZWF0
ZXIsIGxocywgcmhzKQorICAgIFVTRVMoT3BHcmVhdGVyZXEsIGxocywgcmhzKQorICAgIFVTRVMo
T3BCZWxvdywgbGhzLCByaHMpCisgICAgVVNFUyhPcEJlbG93ZXEsIGxocywgcmhzKQorICAgIFVT
RVMoT3BOc3RyaWN0ZXEsIGxocywgcmhzKQorICAgIFVTRVMoT3BTdHJpY3RlcSwgbGhzLCByaHMp
CisgICAgVVNFUyhPcE5lcSwgbGhzLCByaHMpCisgICAgVVNFUyhPcEVxLCBsaHMsIHJocykKKyAg
ICBVU0VTKE9wUHVzaFdpdGhTY29wZSwgY3VycmVudFNjb3BlLCBuZXdTY29wZSkKKyAgICBVU0VT
KE9wR2V0QnlJZFdpdGhUaGlzLCBiYXNlLCB0aGlzVmFsdWUpCisgICAgVVNFUyhPcERlbEJ5VmFs
LCBiYXNlLCBwcm9wZXJ0eSkKKyAgICBVU0VTKE9wVGFpbENhbGxGb3J3YXJkQXJndW1lbnRzLCBj
YWxsZWUsIHRoaXNWYWx1ZSkKKworICAgIFVTRVMoT3BHZXRCeVZhbFdpdGhUaGlzLCBiYXNlLCB0
aGlzVmFsdWUsIHByb3BlcnR5KQorICAgIFVTRVMoT3BJbnN0YW5jZW9mQ3VzdG9tLCB2YWx1ZSwg
Y29uc3RydWN0b3IsIGhhc0luc3RhbmNlVmFsdWUpCisgICAgVVNFUyhPcEhhc1N0cnVjdHVyZVBy
b3BlcnR5LCBiYXNlLCBwcm9wZXJ0eSwgZW51bWVyYXRvcikKKyAgICBVU0VTKE9wQ29uc3RydWN0
VmFyYXJncywgY2FsbGVlLCB0aGlzVmFsdWUsIGFyZ3VtZW50cykKKyAgICBVU0VTKE9wQ2FsbFZh
cmFyZ3MsIGNhbGxlZSwgdGhpc1ZhbHVlLCBhcmd1bWVudHMpCisgICAgVVNFUyhPcFRhaWxDYWxs
VmFyYXJncywgY2FsbGVlLCB0aGlzVmFsdWUsIGFyZ3VtZW50cykKKworICAgIFVTRVMoT3BHZXRE
aXJlY3RQbmFtZSwgYmFzZSwgcHJvcGVydHksIGluZGV4LCBlbnVtZXJhdG9yKQorCisgICAgVVNF
UyhPcFN3aXRjaFN0cmluZywgc2NydXRpbmVlKQorICAgIFVTRVMoT3BTd2l0Y2hDaGFyLCBzY3J1
dGluZWUpCisgICAgVVNFUyhPcFN3aXRjaEltbSwgc2NydXRpbmVlKQorCisgICAgVVNFUyhPcEdl
dEludGVybmFsRmllbGQsIGJhc2UpCisgICAgVVNFUyhPcFB1dEludGVybmFsRmllbGQsIGJhc2Us
IHZhbHVlKQorCisgICAgVVNFUyhPcFlpZWxkLCBnZW5lcmF0b3IsIGFyZ3VtZW50KQorCisgICAg
Y2FzZSBvcF9uZXdfYXJyYXlfd2l0aF9zcHJlYWQ6CisgICAgICAgIGhhbmRsZU5ld0FycmF5TGlr
ZShpbnN0cnVjdGlvbi0+YXM8T3BOZXdBcnJheVdpdGhTcHJlYWQ+KCkpOworICAgICAgICByZXR1
cm47CisgICAgY2FzZSBvcF9uZXdfYXJyYXk6CisgICAgICAgIGhhbmRsZU5ld0FycmF5TGlrZShp
bnN0cnVjdGlvbi0+YXM8T3BOZXdBcnJheT4oKSk7CisgICAgICAgIHJldHVybjsKKworICAgIGNh
c2Ugb3Bfc3RyY2F0OiB7CisgICAgICAgIGF1dG8gYnl0ZWNvZGUgPSBpbnN0cnVjdGlvbi0+YXM8
T3BTdHJjYXQ+KCk7CisgICAgICAgIGludCBiYXNlID0gYnl0ZWNvZGUubV9zcmMub2Zmc2V0KCk7
CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYnl0ZWNvZGUubV9jb3VudDsgaSsrKQorICAg
ICAgICAgICAgZnVuY3RvcihWaXJ0dWFsUmVnaXN0ZXIgeyBiYXNlIC0gaSB9KTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGNhc2Ugb3BfY29uc3RydWN0OgorICAgICAgICBoYW5kbGVP
cENhbGxMaWtlKGluc3RydWN0aW9uLT5hczxPcENvbnN0cnVjdD4oKSk7CisgICAgICAgIHJldHVy
bjsKKyAgICBjYXNlIG9wX2NhbGxfZXZhbDoKKyAgICAgICAgaGFuZGxlT3BDYWxsTGlrZShpbnN0
cnVjdGlvbi0+YXM8T3BDYWxsRXZhbD4oKSk7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIG9w
X2NhbGw6CisgICAgICAgIGhhbmRsZU9wQ2FsbExpa2UoaW5zdHJ1Y3Rpb24tPmFzPE9wQ2FsbD4o
KSk7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIG9wX3RhaWxfY2FsbDoKKyAgICAgICAgaGFu
ZGxlT3BDYWxsTGlrZShpbnN0cnVjdGlvbi0+YXM8T3BUYWlsQ2FsbD4oKSk7CisgICAgICAgIHJl
dHVybjsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwordm9pZCBjb21wdXRlRGVmc0ZvckJ5dGVj
b2RlSW5kZXhJbXBsKHVuc2lnbmVkIG51bVZhcnMsIGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnVj
dGlvbiwgY29uc3QgRnVuY3Rpb248dm9pZChWaXJ0dWFsUmVnaXN0ZXIpPiYgZnVuY3RvcikKK3sK
KyAgICBzd2l0Y2ggKGluc3RydWN0aW9uLT5vcGNvZGVJRCgpKSB7CisgICAgY2FzZSBvcF93aWRl
MTY6CisgICAgY2FzZSBvcF93aWRlMzI6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisKKyAgICAvLyBUaGVzZSBkb24ndCBkZWZpbmUgYW55dGhpbmcuCisgICAgY2FzZSBv
cF9wdXRfdG9fc2NvcGU6CisgICAgY2FzZSBvcF9lbmQ6CisgICAgY2FzZSBvcF90aHJvdzoKKyAg
ICBjYXNlIG9wX3Rocm93X3N0YXRpY19lcnJvcjoKKyAgICBjYXNlIG9wX2NoZWNrX3RkejoKKyAg
ICBjYXNlIG9wX2RlYnVnOgorICAgIGNhc2Ugb3BfcmV0OgorICAgIGNhc2Ugb3Bfam1wOgorICAg
IGNhc2Ugb3BfanRydWU6CisgICAgY2FzZSBvcF9qZmFsc2U6CisgICAgY2FzZSBvcF9qZXFfbnVs
bDoKKyAgICBjYXNlIG9wX2puZXFfbnVsbDoKKyAgICBjYXNlIG9wX2p1bmRlZmluZWRfb3JfbnVs
bDoKKyAgICBjYXNlIG9wX2pudW5kZWZpbmVkX29yX251bGw6CisgICAgY2FzZSBvcF9qbmVxX3B0
cjoKKyAgICBjYXNlIG9wX2psZXNzOgorICAgIGNhc2Ugb3Bfamxlc3NlcToKKyAgICBjYXNlIG9w
X2pncmVhdGVyOgorICAgIGNhc2Ugb3BfamdyZWF0ZXJlcToKKyAgICBjYXNlIG9wX2pubGVzczoK
KyAgICBjYXNlIG9wX2pubGVzc2VxOgorICAgIGNhc2Ugb3Bfam5ncmVhdGVyOgorICAgIGNhc2Ug
b3Bfam5ncmVhdGVyZXE6CisgICAgY2FzZSBvcF9qZXE6CisgICAgY2FzZSBvcF9qbmVxOgorICAg
IGNhc2Ugb3BfanN0cmljdGVxOgorICAgIGNhc2Ugb3Bfam5zdHJpY3RlcToKKyAgICBjYXNlIG9w
X2piZWxvdzoKKyAgICBjYXNlIG9wX2piZWxvd2VxOgorICAgIGNhc2Ugb3BfbG9vcF9oaW50Ogor
ICAgIGNhc2Ugb3Bfc3dpdGNoX2ltbToKKyAgICBjYXNlIG9wX3N3aXRjaF9jaGFyOgorICAgIGNh
c2Ugb3Bfc3dpdGNoX3N0cmluZzoKKyAgICBjYXNlIG9wX3B1dF9ieV9pZDoKKyAgICBjYXNlIG9w
X3B1dF9ieV9pZF93aXRoX3RoaXM6CisgICAgY2FzZSBvcF9wdXRfYnlfdmFsX3dpdGhfdGhpczoK
KyAgICBjYXNlIG9wX3B1dF9nZXR0ZXJfYnlfaWQ6CisgICAgY2FzZSBvcF9wdXRfc2V0dGVyX2J5
X2lkOgorICAgIGNhc2Ugb3BfcHV0X2dldHRlcl9zZXR0ZXJfYnlfaWQ6CisgICAgY2FzZSBvcF9w
dXRfZ2V0dGVyX2J5X3ZhbDoKKyAgICBjYXNlIG9wX3B1dF9zZXR0ZXJfYnlfdmFsOgorICAgIGNh
c2Ugb3BfcHV0X2J5X3ZhbDoKKyAgICBjYXNlIG9wX3B1dF9ieV92YWxfZGlyZWN0OgorICAgIGNh
c2Ugb3BfcHV0X2ludGVybmFsX2ZpZWxkOgorICAgIGNhc2Ugb3BfZGVmaW5lX2RhdGFfcHJvcGVy
dHk6CisgICAgY2FzZSBvcF9kZWZpbmVfYWNjZXNzb3JfcHJvcGVydHk6CisgICAgY2FzZSBvcF9w
cm9maWxlX3R5cGU6CisgICAgY2FzZSBvcF9wcm9maWxlX2NvbnRyb2xfZmxvdzoKKyAgICBjYXNl
IG9wX3B1dF90b19hcmd1bWVudHM6CisgICAgY2FzZSBvcF9zZXRfZnVuY3Rpb25fbmFtZToKKyAg
ICBjYXNlIG9wX2NoZWNrX3RyYXBzOgorICAgIGNhc2Ugb3BfbG9nX3NoYWRvd19jaGlja2VuX3By
b2xvZ3VlOgorICAgIGNhc2Ugb3BfbG9nX3NoYWRvd19jaGlja2VuX3RhaWw6CisgICAgY2FzZSBv
cF95aWVsZDoKKyAgICBjYXNlIG9wX25vcDoKKyAgICBjYXNlIG9wX3VucmVhY2hhYmxlOgorICAg
IGNhc2Ugb3Bfc3VwZXJfc2FtcGxlcl9iZWdpbjoKKyAgICBjYXNlIG9wX3N1cGVyX3NhbXBsZXJf
ZW5kOgorI2RlZmluZSBMTElOVF9IRUxQRVJfT1BDT0RFUyhvcGNvZGUsIGxlbmd0aCkgY2FzZSBv
cGNvZGU6CisgICAgICAgIEZPUl9FQUNIX0xMSU5UX09QQ09ERV9FWFRFTlNJT04oTExJTlRfSEVM
UEVSX09QQ09ERVMpOworI3VuZGVmIExMSU5UX0hFTFBFUl9PUENPREVTCisgICAgICAgIHJldHVy
bjsKKyAgICAvLyBUaGVzZSBhbGwgaGF2ZSBhIHNpbmdsZSBkZXN0aW5hdGlvbiBmb3IgdGhlIGZp
cnN0IGFyZ3VtZW50LgorICAgIERFRlMoT3BBcmd1bWVudENvdW50LCBkc3QpCisgICAgREVGUyhP
cFRvSW5kZXhTdHJpbmcsIGRzdCkKKyAgICBERUZTKE9wR2V0RW51bWVyYWJsZUxlbmd0aCwgZHN0
KQorICAgIERFRlMoT3BIYXNJbmRleGVkUHJvcGVydHksIGRzdCkKKyAgICBERUZTKE9wSGFzU3Ry
dWN0dXJlUHJvcGVydHksIGRzdCkKKyAgICBERUZTKE9wSGFzR2VuZXJpY1Byb3BlcnR5LCBkc3Qp
CisgICAgREVGUyhPcEdldERpcmVjdFBuYW1lLCBkc3QpCisgICAgREVGUyhPcEdldFByb3BlcnR5
RW51bWVyYXRvciwgZHN0KQorICAgIERFRlMoT3BFbnVtZXJhdG9yU3RydWN0dXJlUG5hbWUsIGRz
dCkKKyAgICBERUZTKE9wRW51bWVyYXRvckdlbmVyaWNQbmFtZSwgZHN0KQorICAgIERFRlMoT3BH
ZXRQYXJlbnRTY29wZSwgZHN0KQorICAgIERFRlMoT3BQdXNoV2l0aFNjb3BlLCBkc3QpCisgICAg
REVGUyhPcENyZWF0ZUxleGljYWxFbnZpcm9ubWVudCwgZHN0KQorICAgIERFRlMoT3BDcmVhdGVH
ZW5lcmF0b3JGcmFtZUVudmlyb25tZW50LCBkc3QpCisgICAgREVGUyhPcFJlc29sdmVTY29wZSwg
ZHN0KQorICAgIERFRlMoT3BSZXNvbHZlU2NvcGVGb3JIb2lzdGluZ0Z1bmNEZWNsSW5FdmFsLCBk
c3QpCisgICAgREVGUyhPcFN0cmNhdCwgZHN0KQorICAgIERFRlMoT3BUb1ByaW1pdGl2ZSwgZHN0
KQorICAgIERFRlMoT3BDcmVhdGVUaGlzLCBkc3QpCisgICAgREVGUyhPcENyZWF0ZVByb21pc2Us
IGRzdCkKKyAgICBERUZTKE9wQ3JlYXRlR2VuZXJhdG9yLCBkc3QpCisgICAgREVGUyhPcENyZWF0
ZUFzeW5jR2VuZXJhdG9yLCBkc3QpCisgICAgREVGUyhPcE5ld0FycmF5LCBkc3QpCisgICAgREVG
UyhPcE5ld0FycmF5V2l0aFNwcmVhZCwgZHN0KQorICAgIERFRlMoT3BTcHJlYWQsIGRzdCkKKyAg
ICBERUZTKE9wTmV3QXJyYXlCdWZmZXIsIGRzdCkKKyAgICBERUZTKE9wTmV3QXJyYXlXaXRoU2l6
ZSwgZHN0KQorICAgIERFRlMoT3BOZXdSZWdleHAsIGRzdCkKKyAgICBERUZTKE9wTmV3RnVuYywg
ZHN0KQorICAgIERFRlMoT3BOZXdGdW5jRXhwLCBkc3QpCisgICAgREVGUyhPcE5ld0dlbmVyYXRv
ckZ1bmMsIGRzdCkKKyAgICBERUZTKE9wTmV3R2VuZXJhdG9yRnVuY0V4cCwgZHN0KQorICAgIERF
RlMoT3BOZXdBc3luY0dlbmVyYXRvckZ1bmMsIGRzdCkKKyAgICBERUZTKE9wTmV3QXN5bmNHZW5l
cmF0b3JGdW5jRXhwLCBkc3QpCisgICAgREVGUyhPcE5ld0FzeW5jRnVuYywgZHN0KQorICAgIERF
RlMoT3BOZXdBc3luY0Z1bmNFeHAsIGRzdCkKKyAgICBERUZTKE9wQ2FsbFZhcmFyZ3MsIGRzdCkK
KyAgICBERUZTKE9wVGFpbENhbGxWYXJhcmdzLCBkc3QpCisgICAgREVGUyhPcFRhaWxDYWxsRm9y
d2FyZEFyZ3VtZW50cywgZHN0KQorICAgIERFRlMoT3BDb25zdHJ1Y3RWYXJhcmdzLCBkc3QpCisg
ICAgREVGUyhPcEdldEZyb21TY29wZSwgZHN0KQorICAgIERFRlMoT3BDYWxsLCBkc3QpCisgICAg
REVGUyhPcFRhaWxDYWxsLCBkc3QpCisgICAgREVGUyhPcENhbGxFdmFsLCBkc3QpCisgICAgREVG
UyhPcENvbnN0cnVjdCwgZHN0KQorICAgIERFRlMoT3BUcnlHZXRCeUlkLCBkc3QpCisgICAgREVG
UyhPcEdldEJ5SWQsIGRzdCkKKyAgICBERUZTKE9wR2V0QnlJZERpcmVjdCwgZHN0KQorICAgIERF
RlMoT3BHZXRCeUlkV2l0aFRoaXMsIGRzdCkKKyAgICBERUZTKE9wR2V0QnlWYWxXaXRoVGhpcywg
ZHN0KQorICAgIERFRlMoT3BPdmVycmlkZXNIYXNJbnN0YW5jZSwgZHN0KQorICAgIERFRlMoT3BJ
bnN0YW5jZW9mLCBkc3QpCisgICAgREVGUyhPcEluc3RhbmNlb2ZDdXN0b20sIGRzdCkKKyAgICBE
RUZTKE9wR2V0QnlWYWwsIGRzdCkKKyAgICBERUZTKE9wVHlwZW9mLCBkc3QpCisgICAgREVGUyhP
cElkZW50aXR5V2l0aFByb2ZpbGUsIHNyY0RzdCkKKyAgICBERUZTKE9wSXNFbXB0eSwgZHN0KQor
ICAgIERFRlMoT3BJc1VuZGVmaW5lZCwgZHN0KQorICAgIFVTRVMoT3BJc1VuZGVmaW5lZE9yTnVs
bCwgZHN0KQorICAgIERFRlMoT3BJc0Jvb2xlYW4sIGRzdCkKKyAgICBERUZTKE9wSXNOdW1iZXIs
IGRzdCkKKyAgICBERUZTKE9wSXNPYmplY3QsIGRzdCkKKyAgICBERUZTKE9wSXNPYmplY3RPck51
bGwsIGRzdCkKKyAgICBERUZTKE9wSXNDZWxsV2l0aFR5cGUsIGRzdCkKKyAgICBERUZTKE9wSXNG
dW5jdGlvbiwgZHN0KQorICAgIERFRlMoT3BJbkJ5SWQsIGRzdCkKKyAgICBERUZTKE9wSW5CeVZh
bCwgZHN0KQorICAgIERFRlMoT3BUb051bWJlciwgZHN0KQorICAgIERFRlMoT3BUb051bWVyaWMs
IGRzdCkKKyAgICBERUZTKE9wVG9TdHJpbmcsIGRzdCkKKyAgICBERUZTKE9wVG9PYmplY3QsIGRz
dCkKKyAgICBERUZTKE9wTmVnYXRlLCBkc3QpCisgICAgREVGUyhPcEFkZCwgZHN0KQorICAgIERF
RlMoT3BNdWwsIGRzdCkKKyAgICBERUZTKE9wRGl2LCBkc3QpCisgICAgREVGUyhPcE1vZCwgZHN0
KQorICAgIERFRlMoT3BTdWIsIGRzdCkKKyAgICBERUZTKE9wUG93LCBkc3QpCisgICAgREVGUyhP
cExzaGlmdCwgZHN0KQorICAgIERFRlMoT3BSc2hpZnQsIGRzdCkKKyAgICBERUZTKE9wVXJzaGlm
dCwgZHN0KQorICAgIERFRlMoT3BCaXRhbmQsIGRzdCkKKyAgICBERUZTKE9wQml0eG9yLCBkc3Qp
CisgICAgREVGUyhPcEJpdG9yLCBkc3QpCisgICAgREVGUyhPcEJpdG5vdCwgZHN0KQorICAgIERF
RlMoT3BJbmMsIHNyY0RzdCkKKyAgICBERUZTKE9wRGVjLCBzcmNEc3QpCisgICAgREVGUyhPcEVx
LCBkc3QpCisgICAgREVGUyhPcE5lcSwgZHN0KQorICAgIERFRlMoT3BTdHJpY3RlcSwgZHN0KQor
ICAgIERFRlMoT3BOc3RyaWN0ZXEsIGRzdCkKKyAgICBERUZTKE9wTGVzcywgZHN0KQorICAgIERF
RlMoT3BMZXNzZXEsIGRzdCkKKyAgICBERUZTKE9wR3JlYXRlciwgZHN0KQorICAgIERFRlMoT3BH
cmVhdGVyZXEsIGRzdCkKKyAgICBERUZTKE9wQmVsb3csIGRzdCkKKyAgICBERUZTKE9wQmVsb3dl
cSwgZHN0KQorICAgIERFRlMoT3BOZXFOdWxsLCBkc3QpCisgICAgREVGUyhPcEVxTnVsbCwgZHN0
KQorICAgIERFRlMoT3BOb3QsIGRzdCkKKyAgICBERUZTKE9wTW92LCBkc3QpCisgICAgREVGUyhP
cE5ld09iamVjdCwgZHN0KQorICAgIERFRlMoT3BOZXdQcm9taXNlLCBkc3QpCisgICAgREVGUyhP
cE5ld0dlbmVyYXRvciwgZHN0KQorICAgIERFRlMoT3BUb1RoaXMsIHNyY0RzdCkKKyAgICBERUZT
KE9wR2V0U2NvcGUsIGRzdCkKKyAgICBERUZTKE9wQ3JlYXRlRGlyZWN0QXJndW1lbnRzLCBkc3Qp
CisgICAgREVGUyhPcENyZWF0ZVNjb3BlZEFyZ3VtZW50cywgZHN0KQorICAgIERFRlMoT3BDcmVh
dGVDbG9uZWRBcmd1bWVudHMsIGRzdCkKKyAgICBERUZTKE9wRGVsQnlJZCwgZHN0KQorICAgIERF
RlMoT3BEZWxCeVZhbCwgZHN0KQorICAgIERFRlMoT3BVbnNpZ25lZCwgZHN0KQorICAgIERFRlMo
T3BHZXRGcm9tQXJndW1lbnRzLCBkc3QpCisgICAgREVGUyhPcEdldEFyZ3VtZW50LCBkc3QpCisg
ICAgREVGUyhPcENyZWF0ZVJlc3QsIGRzdCkKKyAgICBERUZTKE9wR2V0UmVzdExlbmd0aCwgZHN0
KQorICAgIERFRlMoT3BHZXRJbnRlcm5hbEZpZWxkLCBkc3QpCisKKyAgICBERUZTKE9wQ2F0Y2gs
IGV4Y2VwdGlvbiwgdGhyb3duVmFsdWUpCisKKyAgICBjYXNlIG9wX2VudGVyOiB7CisgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IG51bVZhcnM7IGktLTspCisgICAgICAgICAgICBmdW5jdG9yKHZp
cnR1YWxSZWdpc3RlckZvckxvY2FsKGkpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICB9
Cit9CisKKyN1bmRlZiBDQUxMX0ZVTkNUT1IKKyN1bmRlZiBVU0VTX09SX0RFRlMKKyN1bmRlZiBV
U0VTCisjdW5kZWYgREVGUworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCmluZGV4IDI4ZmRiMzhhODY4ZWQ0MDll
YjE4NzEzMjg5NzQ1YjFkNTg0MGUxZDEuLmIzYjAwYTk5MjM3MzNkMzFhYzg0ZTVkODgyZGE5MDNl
OWJlZGM3ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRl
Y29kZVVzZURlZi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29k
ZVVzZURlZi5oCkBAIC0zMiw0NzAgKzMyLDIzIEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi0jZGVm
aW5lIENBTExfRlVOQ1RPUihfX2FyZykgXAotICAgIGZ1bmN0b3IoX19ieXRlY29kZS5tXyMjX19h
cmcpOwordm9pZCBjb21wdXRlVXNlc0ZvckJ5dGVjb2RlSW5kZXhJbXBsKFZpcnR1YWxSZWdpc3Rl
ciwgY29uc3QgSW5zdHJ1Y3Rpb24qLCBjb25zdCBGdW5jdGlvbjx2b2lkKFZpcnR1YWxSZWdpc3Rl
cik+Jik7Cit2b2lkIGNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVJbmRleEltcGwodW5zaWduZWQsIGNv
bnN0IEluc3RydWN0aW9uKiwgY29uc3QgRnVuY3Rpb248dm9pZChWaXJ0dWFsUmVnaXN0ZXIpPiYp
OwogCi0jZGVmaW5lIFVTRVNfT1JfREVGUyhfX29wY29kZSwgLi4uKSBcCi0gICAgY2FzZSBfX29w
Y29kZTo6b3Bjb2RlSUQ6IHsgXAotICAgICAgICBhdXRvIF9fYnl0ZWNvZGUgPSBpbnN0cnVjdGlv
bi0+YXM8X19vcGNvZGU+KCk7IFwKLSAgICAgICAgV1RGX0xBWllfRk9SX0VBQ0hfVEVSTShDQUxM
X0ZVTkNUT1IsIF9fVkFfQVJHU19fKSBcCi0gICAgICAgIHJldHVybjsgXAotICAgIH0KLQotI2Rl
ZmluZSBVU0VTIFVTRVNfT1JfREVGUwotI2RlZmluZSBERUZTIFVTRVNfT1JfREVGUwotCi10ZW1w
bGF0ZTx0eXBlbmFtZSBCbG9jaywgdHlwZW5hbWUgRnVuY3Rvcj4KLXZvaWQgY29tcHV0ZVVzZXNG
b3JCeXRlY29kZUluZGV4KEJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0IEluc3RydWN0aW9uKiBpbnN0
cnVjdGlvbiwgY29uc3QgRnVuY3RvciYgZnVuY3RvcikKK3RlbXBsYXRlPHR5cGVuYW1lIEJsb2Nr
Pgordm9pZCBjb21wdXRlVXNlc0ZvckJ5dGVjb2RlSW5kZXgoQmxvY2sqIGNvZGVCbG9jaywgY29u
c3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCBjb25zdCBGdW5jdGlvbjx2b2lkKFZpcnR1YWxS
ZWdpc3Rlcik+JiBmdW5jdG9yKQogewogICAgIE9wY29kZUlEIG9wY29kZUlEID0gaW5zdHJ1Y3Rp
b24tPm9wY29kZUlEKCk7CiAgICAgaWYgKG9wY29kZUlEICE9IG9wX2VudGVyICYmIChjb2RlQmxv
Y2stPndhc0NvbXBpbGVkV2l0aERlYnVnZ2luZ09wY29kZXMoKSB8fCBjb2RlQmxvY2stPnVzZXNF
dmFsKCkpICYmIGNvZGVCbG9jay0+c2NvcGVSZWdpc3RlcigpLmlzVmFsaWQoKSkKICAgICAgICAg
ZnVuY3Rvcihjb2RlQmxvY2stPnNjb3BlUmVnaXN0ZXIoKSk7CiAKLSAgICBhdXRvIGhhbmRsZU5l
d0FycmF5TGlrZSA9IFsmXShhdXRvIG9wKSB7Ci0gICAgICAgIGludCBiYXNlID0gb3AubV9hcmd2
Lm9mZnNldCgpOwotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0YXRpY19jYXN0PGludD4o
b3AubV9hcmdjKTsgaSsrKQotICAgICAgICAgICAgZnVuY3RvcihWaXJ0dWFsUmVnaXN0ZXIgeyBi
YXNlIC0gaSB9KTsKLSAgICB9OwotCi0gICAgYXV0byBoYW5kbGVPcENhbGxMaWtlID0gWyZdKGF1
dG8gb3ApIHsKLSAgICAgICAgZnVuY3RvcihvcC5tX2NhbGxlZSk7Ci0gICAgICAgIGludCBsYXN0
QXJnID0gLXN0YXRpY19jYXN0PGludD4ob3AubV9hcmd2KSArIENhbGxGcmFtZTo6dGhpc0FyZ3Vt
ZW50T2Zmc2V0KCk7Ci0gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3RhdGljX2Nhc3Q8aW50
PihvcC5tX2FyZ2MpOyBpKyspCi0gICAgICAgICAgICBmdW5jdG9yKFZpcnR1YWxSZWdpc3RlciB7
IGxhc3RBcmcgKyBpIH0pOwotICAgICAgICBpZiAob3Bjb2RlSUQgPT0gb3BfY2FsbF9ldmFsKQot
ICAgICAgICAgICAgZnVuY3Rvcihjb2RlQmxvY2stPnNjb3BlUmVnaXN0ZXIoKSk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9OwotCi0gICAgc3dpdGNoIChvcGNvZGVJRCkgewotICAgIGNhc2Ugb3Bf
d2lkZTE2OgotICAgIGNhc2Ugb3Bfd2lkZTMyOgotICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotCi0gICAgLy8gTm8gdXNlcy4KLSAgICBjYXNlIG9wX25ld19yZWdleHA6Ci0g
ICAgY2FzZSBvcF9kZWJ1ZzoKLSAgICBjYXNlIG9wX2puZXFfcHRyOgotICAgIGNhc2Ugb3BfbG9v
cF9oaW50OgotICAgIGNhc2Ugb3Bfam1wOgotICAgIGNhc2Ugb3BfbmV3X29iamVjdDoKLSAgICBj
YXNlIG9wX25ld19wcm9taXNlOgotICAgIGNhc2Ugb3BfbmV3X2dlbmVyYXRvcjoKLSAgICBjYXNl
IG9wX2VudGVyOgotICAgIGNhc2Ugb3BfYXJndW1lbnRfY291bnQ6Ci0gICAgY2FzZSBvcF9jYXRj
aDoKLSAgICBjYXNlIG9wX3Byb2ZpbGVfY29udHJvbF9mbG93OgotICAgIGNhc2Ugb3BfY3JlYXRl
X2RpcmVjdF9hcmd1bWVudHM6Ci0gICAgY2FzZSBvcF9jcmVhdGVfY2xvbmVkX2FyZ3VtZW50czoK
LSAgICBjYXNlIG9wX2dldF9yZXN0X2xlbmd0aDoKLSAgICBjYXNlIG9wX2NoZWNrX3RyYXBzOgot
ICAgIGNhc2Ugb3BfZ2V0X2FyZ3VtZW50OgotICAgIGNhc2Ugb3Bfbm9wOgotICAgIGNhc2Ugb3Bf
dW5yZWFjaGFibGU6Ci0gICAgY2FzZSBvcF9zdXBlcl9zYW1wbGVyX2JlZ2luOgotICAgIGNhc2Ug
b3Bfc3VwZXJfc2FtcGxlcl9lbmQ6Ci0gICAgICAgIHJldHVybjsKLQotICAgIFVTRVMoT3BHZXRT
Y29wZSwgZHN0KQotICAgIFVTRVMoT3BUb1RoaXMsIHNyY0RzdCkKLSAgICBVU0VTKE9wQ2hlY2tU
ZHosIHRhcmdldFZpcnR1YWxSZWdpc3RlcikKLSAgICBVU0VTKE9wSWRlbnRpdHlXaXRoUHJvZmls
ZSwgc3JjRHN0KQotICAgIFVTRVMoT3BQcm9maWxlVHlwZSwgdGFyZ2V0VmlydHVhbFJlZ2lzdGVy
KTsKLSAgICBVU0VTKE9wVGhyb3csIHZhbHVlKQotICAgIFVTRVMoT3BUaHJvd1N0YXRpY0Vycm9y
LCBtZXNzYWdlKQotICAgIFVTRVMoT3BFbmQsIHZhbHVlKQotICAgIFVTRVMoT3BSZXQsIHZhbHVl
KQotICAgIFVTRVMoT3BKdHJ1ZSwgY29uZGl0aW9uKQotICAgIFVTRVMoT3BKZmFsc2UsIGNvbmRp
dGlvbikKLSAgICBVU0VTKE9wSmVxTnVsbCwgdmFsdWUpCi0gICAgVVNFUyhPcEpuZXFOdWxsLCB2
YWx1ZSkKLSAgICBVU0VTKE9wSnVuZGVmaW5lZE9yTnVsbCwgdmFsdWUpCi0gICAgVVNFUyhPcEpu
dW5kZWZpbmVkT3JOdWxsLCB2YWx1ZSkKLSAgICBVU0VTKE9wRGVjLCBzcmNEc3QpCi0gICAgVVNF
UyhPcEluYywgc3JjRHN0KQotICAgIFVTRVMoT3BMb2dTaGFkb3dDaGlja2VuUHJvbG9ndWUsIHNj
b3BlKQotCi0gICAgVVNFUyhPcEpsZXNzLCBsaHMsIHJocykKLSAgICBVU0VTKE9wSmxlc3NlcSwg
bGhzLCByaHMpCi0gICAgVVNFUyhPcEpncmVhdGVyLCBsaHMsIHJocykKLSAgICBVU0VTKE9wSmdy
ZWF0ZXJlcSwgbGhzLCByaHMpCi0gICAgVVNFUyhPcEpubGVzcywgbGhzLCByaHMpCi0gICAgVVNF
UyhPcEpubGVzc2VxLCBsaHMsIHJocykKLSAgICBVU0VTKE9wSm5ncmVhdGVyLCBsaHMsIHJocykK
LSAgICBVU0VTKE9wSm5ncmVhdGVyZXEsIGxocywgcmhzKQotICAgIFVTRVMoT3BKZXEsIGxocywg
cmhzKQotICAgIFVTRVMoT3BKbmVxLCBsaHMsIHJocykKLSAgICBVU0VTKE9wSnN0cmljdGVxLCBs
aHMsIHJocykKLSAgICBVU0VTKE9wSm5zdHJpY3RlcSwgbGhzLCByaHMpCi0gICAgVVNFUyhPcEpi
ZWxvdywgbGhzLCByaHMpCi0gICAgVVNFUyhPcEpiZWxvd2VxLCBsaHMsIHJocykKLSAgICBVU0VT
KE9wU2V0RnVuY3Rpb25OYW1lLCBmdW5jdGlvbiwgbmFtZSkKLSAgICBVU0VTKE9wTG9nU2hhZG93
Q2hpY2tlblRhaWwsIHRoaXNWYWx1ZSwgc2NvcGUpCi0KLSAgICBVU0VTKE9wUHV0QnlWYWwsIGJh
c2UsIHByb3BlcnR5LCB2YWx1ZSkKLSAgICBVU0VTKE9wUHV0QnlWYWxEaXJlY3QsIGJhc2UsIHBy
b3BlcnR5LCB2YWx1ZSkKLQotICAgIFVTRVMoT3BQdXRCeUlkLCBiYXNlLCB2YWx1ZSkKLSAgICBV
U0VTKE9wUHV0VG9TY29wZSwgc2NvcGUsIHZhbHVlKQotICAgIFVTRVMoT3BQdXRUb0FyZ3VtZW50
cywgYXJndW1lbnRzLCB2YWx1ZSkKLQotICAgIFVTRVMoT3BQdXRCeUlkV2l0aFRoaXMsIGJhc2Us
IHRoaXNWYWx1ZSwgdmFsdWUpCi0KLSAgICBVU0VTKE9wUHV0QnlWYWxXaXRoVGhpcywgYmFzZSwg
dGhpc1ZhbHVlLCBwcm9wZXJ0eSwgdmFsdWUpCi0KLSAgICBVU0VTKE9wUHV0R2V0dGVyQnlJZCwg
YmFzZSwgYWNjZXNzb3IpCi0gICAgVVNFUyhPcFB1dFNldHRlckJ5SWQsIGJhc2UsIGFjY2Vzc29y
KQotCi0gICAgVVNFUyhPcFB1dEdldHRlclNldHRlckJ5SWQsIGJhc2UsIGdldHRlciwgc2V0dGVy
KQotCi0gICAgVVNFUyhPcFB1dEdldHRlckJ5VmFsLCBiYXNlLCBwcm9wZXJ0eSwgYWNjZXNzb3Ip
Ci0gICAgVVNFUyhPcFB1dFNldHRlckJ5VmFsLCBiYXNlLCBwcm9wZXJ0eSwgYWNjZXNzb3IpCi0K
LSAgICBVU0VTKE9wRGVmaW5lRGF0YVByb3BlcnR5LCBiYXNlLCBwcm9wZXJ0eSwgdmFsdWUsIGF0
dHJpYnV0ZXMpCi0KLSAgICBVU0VTKE9wRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eSwgYmFzZSwgcHJv
cGVydHksIGdldHRlciwgc2V0dGVyLCBhdHRyaWJ1dGVzKQotCi0gICAgVVNFUyhPcFNwcmVhZCwg
YXJndW1lbnQpCi0gICAgVVNFUyhPcEdldFByb3BlcnR5RW51bWVyYXRvciwgYmFzZSkKLSAgICBV
U0VTKE9wR2V0RW51bWVyYWJsZUxlbmd0aCwgYmFzZSkKLSAgICBVU0VTKE9wTmV3RnVuY0V4cCwg
c2NvcGUpCi0gICAgVVNFUyhPcE5ld0dlbmVyYXRvckZ1bmNFeHAsIHNjb3BlKQotICAgIFVTRVMo
T3BOZXdBc3luY0Z1bmNFeHAsIHNjb3BlKQotICAgIFVTRVMoT3BUb0luZGV4U3RyaW5nLCBpbmRl
eCkKLSAgICBVU0VTKE9wQ3JlYXRlTGV4aWNhbEVudmlyb25tZW50LCBzY29wZSwgc3ltYm9sVGFi
bGUsIGluaXRpYWxWYWx1ZSkKLSAgICBVU0VTKE9wQ3JlYXRlR2VuZXJhdG9yRnJhbWVFbnZpcm9u
bWVudCwgc2NvcGUsIHN5bWJvbFRhYmxlLCBpbml0aWFsVmFsdWUpCi0gICAgVVNFUyhPcFJlc29s
dmVTY29wZSwgc2NvcGUpCi0gICAgVVNFUyhPcFJlc29sdmVTY29wZUZvckhvaXN0aW5nRnVuY0Rl
Y2xJbkV2YWwsIHNjb3BlKQotICAgIFVTRVMoT3BHZXRGcm9tU2NvcGUsIHNjb3BlKQotICAgIFVT
RVMoT3BUb1ByaW1pdGl2ZSwgc3JjKQotICAgIFVTRVMoT3BUcnlHZXRCeUlkLCBiYXNlKQotICAg
IFVTRVMoT3BHZXRCeUlkLCBiYXNlKQotICAgIFVTRVMoT3BHZXRCeUlkRGlyZWN0LCBiYXNlKQot
ICAgIFVTRVMoT3BJbkJ5SWQsIGJhc2UpCi0gICAgVVNFUyhPcFR5cGVvZiwgdmFsdWUpCi0gICAg
VVNFUyhPcElzRW1wdHksIG9wZXJhbmQpCi0gICAgVVNFUyhPcElzVW5kZWZpbmVkLCBvcGVyYW5k
KQotICAgIFVTRVMoT3BJc1VuZGVmaW5lZE9yTnVsbCwgb3BlcmFuZCkKLSAgICBVU0VTKE9wSXNC
b29sZWFuLCBvcGVyYW5kKQotICAgIFVTRVMoT3BJc051bWJlciwgb3BlcmFuZCkKLSAgICBVU0VT
KE9wSXNPYmplY3QsIG9wZXJhbmQpCi0gICAgVVNFUyhPcElzT2JqZWN0T3JOdWxsLCBvcGVyYW5k
KQotICAgIFVTRVMoT3BJc0NlbGxXaXRoVHlwZSwgb3BlcmFuZCkKLSAgICBVU0VTKE9wSXNGdW5j
dGlvbiwgb3BlcmFuZCkKLSAgICBVU0VTKE9wVG9OdW1iZXIsIG9wZXJhbmQpCi0gICAgVVNFUyhP
cFRvTnVtZXJpYywgb3BlcmFuZCkKLSAgICBVU0VTKE9wVG9TdHJpbmcsIG9wZXJhbmQpCi0gICAg
VVNFUyhPcFRvT2JqZWN0LCBvcGVyYW5kKQotICAgIFVTRVMoT3BOZWdhdGUsIG9wZXJhbmQpCi0g
ICAgVVNFUyhPcEJpdG5vdCwgb3BlcmFuZCkKLSAgICBVU0VTKE9wRXFOdWxsLCBvcGVyYW5kKQot
ICAgIFVTRVMoT3BOZXFOdWxsLCBvcGVyYW5kKQotICAgIFVTRVMoT3BOb3QsIG9wZXJhbmQpCi0g
ICAgVVNFUyhPcFVuc2lnbmVkLCBvcGVyYW5kKQotICAgIFVTRVMoT3BNb3YsIHNyYykKLSAgICBV
U0VTKE9wTmV3QXJyYXlXaXRoU2l6ZSwgbGVuZ3RoKQotICAgIFVTRVMoT3BDcmVhdGVUaGlzLCBj
YWxsZWUpCi0gICAgVVNFUyhPcENyZWF0ZVByb21pc2UsIGNhbGxlZSkKLSAgICBVU0VTKE9wQ3Jl
YXRlR2VuZXJhdG9yLCBjYWxsZWUpCi0gICAgVVNFUyhPcENyZWF0ZUFzeW5jR2VuZXJhdG9yLCBj
YWxsZWUpCi0gICAgVVNFUyhPcERlbEJ5SWQsIGJhc2UpCi0gICAgVVNFUyhPcE5ld0Z1bmMsIHNj
b3BlKQotICAgIFVTRVMoT3BOZXdBc3luY0dlbmVyYXRvckZ1bmMsIHNjb3BlKQotICAgIFVTRVMo
T3BOZXdBc3luY0dlbmVyYXRvckZ1bmNFeHAsIHNjb3BlKQotICAgIFVTRVMoT3BOZXdHZW5lcmF0
b3JGdW5jLCBzY29wZSkKLSAgICBVU0VTKE9wTmV3QXN5bmNGdW5jLCBzY29wZSkKLSAgICBVU0VT
KE9wR2V0UGFyZW50U2NvcGUsIHNjb3BlKQotICAgIFVTRVMoT3BDcmVhdGVTY29wZWRBcmd1bWVu
dHMsIHNjb3BlKQotICAgIFVTRVMoT3BDcmVhdGVSZXN0LCBhcnJheVNpemUpCi0gICAgVVNFUyhP
cEdldEZyb21Bcmd1bWVudHMsIGFyZ3VtZW50cykKLSAgICBVU0VTKE9wTmV3QXJyYXlCdWZmZXIs
IGltbXV0YWJsZUJ1dHRlcmZseSkKLQotICAgIFVTRVMoT3BIYXNHZW5lcmljUHJvcGVydHksIGJh
c2UsIHByb3BlcnR5KQotICAgIFVTRVMoT3BIYXNJbmRleGVkUHJvcGVydHksIGJhc2UsIHByb3Bl
cnR5KQotICAgIFVTRVMoT3BFbnVtZXJhdG9yU3RydWN0dXJlUG5hbWUsIGVudW1lcmF0b3IsIGlu
ZGV4KQotICAgIFVTRVMoT3BFbnVtZXJhdG9yR2VuZXJpY1BuYW1lLCBlbnVtZXJhdG9yLCBpbmRl
eCkKLSAgICBVU0VTKE9wR2V0QnlWYWwsIGJhc2UsIHByb3BlcnR5KQotICAgIFVTRVMoT3BJbkJ5
VmFsLCBiYXNlLCBwcm9wZXJ0eSkKLSAgICBVU0VTKE9wT3ZlcnJpZGVzSGFzSW5zdGFuY2UsIGNv
bnN0cnVjdG9yLCBoYXNJbnN0YW5jZVZhbHVlKQotICAgIFVTRVMoT3BJbnN0YW5jZW9mLCB2YWx1
ZSwgcHJvdG90eXBlKQotICAgIFVTRVMoT3BBZGQsIGxocywgcmhzKQotICAgIFVTRVMoT3BNdWws
IGxocywgcmhzKQotICAgIFVTRVMoT3BEaXYsIGxocywgcmhzKQotICAgIFVTRVMoT3BNb2QsIGxo
cywgcmhzKQotICAgIFVTRVMoT3BTdWIsIGxocywgcmhzKQotICAgIFVTRVMoT3BQb3csIGxocywg
cmhzKQotICAgIFVTRVMoT3BMc2hpZnQsIGxocywgcmhzKQotICAgIFVTRVMoT3BSc2hpZnQsIGxo
cywgcmhzKQotICAgIFVTRVMoT3BVcnNoaWZ0LCBsaHMsIHJocykKLSAgICBVU0VTKE9wQml0YW5k
LCBsaHMsIHJocykKLSAgICBVU0VTKE9wQml0eG9yLCBsaHMsIHJocykKLSAgICBVU0VTKE9wQml0
b3IsIGxocywgcmhzKQotICAgIFVTRVMoT3BMZXNzLCBsaHMsIHJocykKLSAgICBVU0VTKE9wTGVz
c2VxLCBsaHMsIHJocykKLSAgICBVU0VTKE9wR3JlYXRlciwgbGhzLCByaHMpCi0gICAgVVNFUyhP
cEdyZWF0ZXJlcSwgbGhzLCByaHMpCi0gICAgVVNFUyhPcEJlbG93LCBsaHMsIHJocykKLSAgICBV
U0VTKE9wQmVsb3dlcSwgbGhzLCByaHMpCi0gICAgVVNFUyhPcE5zdHJpY3RlcSwgbGhzLCByaHMp
Ci0gICAgVVNFUyhPcFN0cmljdGVxLCBsaHMsIHJocykKLSAgICBVU0VTKE9wTmVxLCBsaHMsIHJo
cykKLSAgICBVU0VTKE9wRXEsIGxocywgcmhzKQotICAgIFVTRVMoT3BQdXNoV2l0aFNjb3BlLCBj
dXJyZW50U2NvcGUsIG5ld1Njb3BlKQotICAgIFVTRVMoT3BHZXRCeUlkV2l0aFRoaXMsIGJhc2Us
IHRoaXNWYWx1ZSkKLSAgICBVU0VTKE9wRGVsQnlWYWwsIGJhc2UsIHByb3BlcnR5KQotICAgIFVT
RVMoT3BUYWlsQ2FsbEZvcndhcmRBcmd1bWVudHMsIGNhbGxlZSwgdGhpc1ZhbHVlKQotCi0gICAg
VVNFUyhPcEdldEJ5VmFsV2l0aFRoaXMsIGJhc2UsIHRoaXNWYWx1ZSwgcHJvcGVydHkpCi0gICAg
VVNFUyhPcEluc3RhbmNlb2ZDdXN0b20sIHZhbHVlLCBjb25zdHJ1Y3RvciwgaGFzSW5zdGFuY2VW
YWx1ZSkKLSAgICBVU0VTKE9wSGFzU3RydWN0dXJlUHJvcGVydHksIGJhc2UsIHByb3BlcnR5LCBl
bnVtZXJhdG9yKQotICAgIFVTRVMoT3BDb25zdHJ1Y3RWYXJhcmdzLCBjYWxsZWUsIHRoaXNWYWx1
ZSwgYXJndW1lbnRzKQotICAgIFVTRVMoT3BDYWxsVmFyYXJncywgY2FsbGVlLCB0aGlzVmFsdWUs
IGFyZ3VtZW50cykKLSAgICBVU0VTKE9wVGFpbENhbGxWYXJhcmdzLCBjYWxsZWUsIHRoaXNWYWx1
ZSwgYXJndW1lbnRzKQotCi0gICAgVVNFUyhPcEdldERpcmVjdFBuYW1lLCBiYXNlLCBwcm9wZXJ0
eSwgaW5kZXgsIGVudW1lcmF0b3IpCi0KLSAgICBVU0VTKE9wU3dpdGNoU3RyaW5nLCBzY3J1dGlu
ZWUpCi0gICAgVVNFUyhPcFN3aXRjaENoYXIsIHNjcnV0aW5lZSkKLSAgICBVU0VTKE9wU3dpdGNo
SW1tLCBzY3J1dGluZWUpCi0KLSAgICBVU0VTKE9wR2V0SW50ZXJuYWxGaWVsZCwgYmFzZSkKLSAg
ICBVU0VTKE9wUHV0SW50ZXJuYWxGaWVsZCwgYmFzZSwgdmFsdWUpCi0KLSAgICBVU0VTKE9wWWll
bGQsIGdlbmVyYXRvciwgYXJndW1lbnQpCi0KLSAgICBjYXNlIG9wX25ld19hcnJheV93aXRoX3Nw
cmVhZDoKLSAgICAgICAgaGFuZGxlTmV3QXJyYXlMaWtlKGluc3RydWN0aW9uLT5hczxPcE5ld0Fy
cmF5V2l0aFNwcmVhZD4oKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIG9wX25ld19hcnJh
eToKLSAgICAgICAgaGFuZGxlTmV3QXJyYXlMaWtlKGluc3RydWN0aW9uLT5hczxPcE5ld0FycmF5
PigpKTsKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY2FzZSBvcF9zdHJjYXQ6IHsKLSAgICAgICAg
YXV0byBieXRlY29kZSA9IGluc3RydWN0aW9uLT5hczxPcFN0cmNhdD4oKTsKLSAgICAgICAgaW50
IGJhc2UgPSBieXRlY29kZS5tX3NyYy5vZmZzZXQoKTsKLSAgICAgICAgZm9yIChpbnQgaSA9IDA7
IGkgPCBieXRlY29kZS5tX2NvdW50OyBpKyspCi0gICAgICAgICAgICBmdW5jdG9yKFZpcnR1YWxS
ZWdpc3RlciB7IGJhc2UgLSBpIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgY2Fz
ZSBvcF9jb25zdHJ1Y3Q6Ci0gICAgICAgIGhhbmRsZU9wQ2FsbExpa2UoaW5zdHJ1Y3Rpb24tPmFz
PE9wQ29uc3RydWN0PigpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2Ugb3BfY2FsbF9ldmFs
OgotICAgICAgICBoYW5kbGVPcENhbGxMaWtlKGluc3RydWN0aW9uLT5hczxPcENhbGxFdmFsPigp
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2Ugb3BfY2FsbDoKLSAgICAgICAgaGFuZGxlT3BD
YWxsTGlrZShpbnN0cnVjdGlvbi0+YXM8T3BDYWxsPigpKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IGNhc2Ugb3BfdGFpbF9jYWxsOgotICAgICAgICBoYW5kbGVPcENhbGxMaWtlKGluc3RydWN0aW9u
LT5hczxPcFRhaWxDYWxsPigpKTsKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZGVmYXVsdDoKLSAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
fQorICAgIGNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVJbmRleEltcGwoY29kZUJsb2NrLT5zY29wZVJl
Z2lzdGVyKCksIGluc3RydWN0aW9uLCBmdW5jdG9yKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUg
QmxvY2ssIHR5cGVuYW1lIEZ1bmN0b3I+Ci12b2lkIGNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVJbmRl
eChCbG9jayogY29kZUJsb2NrLCBjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIGNvbnN0
IEZ1bmN0b3ImIGZ1bmN0b3IpCit0ZW1wbGF0ZTx0eXBlbmFtZSBCbG9jaz4KK3ZvaWQgY29tcHV0
ZURlZnNGb3JCeXRlY29kZUluZGV4KEJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0IEluc3RydWN0aW9u
KiBpbnN0cnVjdGlvbiwgY29uc3QgRnVuY3Rpb248dm9pZChWaXJ0dWFsUmVnaXN0ZXIpPiYgZnVu
Y3RvcikKIHsKLSAgICBzd2l0Y2ggKGluc3RydWN0aW9uLT5vcGNvZGVJRCgpKSB7Ci0gICAgY2Fz
ZSBvcF93aWRlMTY6Ci0gICAgY2FzZSBvcF93aWRlMzI6Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0KLSAgICAvLyBUaGVzZSBkb24ndCBkZWZpbmUgYW55dGhpbmcuCi0g
ICAgY2FzZSBvcF9wdXRfdG9fc2NvcGU6Ci0gICAgY2FzZSBvcF9lbmQ6Ci0gICAgY2FzZSBvcF90
aHJvdzoKLSAgICBjYXNlIG9wX3Rocm93X3N0YXRpY19lcnJvcjoKLSAgICBjYXNlIG9wX2NoZWNr
X3RkejoKLSAgICBjYXNlIG9wX2RlYnVnOgotICAgIGNhc2Ugb3BfcmV0OgotICAgIGNhc2Ugb3Bf
am1wOgotICAgIGNhc2Ugb3BfanRydWU6Ci0gICAgY2FzZSBvcF9qZmFsc2U6Ci0gICAgY2FzZSBv
cF9qZXFfbnVsbDoKLSAgICBjYXNlIG9wX2puZXFfbnVsbDoKLSAgICBjYXNlIG9wX2p1bmRlZmlu
ZWRfb3JfbnVsbDoKLSAgICBjYXNlIG9wX2pudW5kZWZpbmVkX29yX251bGw6Ci0gICAgY2FzZSBv
cF9qbmVxX3B0cjoKLSAgICBjYXNlIG9wX2psZXNzOgotICAgIGNhc2Ugb3Bfamxlc3NlcToKLSAg
ICBjYXNlIG9wX2pncmVhdGVyOgotICAgIGNhc2Ugb3BfamdyZWF0ZXJlcToKLSAgICBjYXNlIG9w
X2pubGVzczoKLSAgICBjYXNlIG9wX2pubGVzc2VxOgotICAgIGNhc2Ugb3Bfam5ncmVhdGVyOgot
ICAgIGNhc2Ugb3Bfam5ncmVhdGVyZXE6Ci0gICAgY2FzZSBvcF9qZXE6Ci0gICAgY2FzZSBvcF9q
bmVxOgotICAgIGNhc2Ugb3BfanN0cmljdGVxOgotICAgIGNhc2Ugb3Bfam5zdHJpY3RlcToKLSAg
ICBjYXNlIG9wX2piZWxvdzoKLSAgICBjYXNlIG9wX2piZWxvd2VxOgotICAgIGNhc2Ugb3BfbG9v
cF9oaW50OgotICAgIGNhc2Ugb3Bfc3dpdGNoX2ltbToKLSAgICBjYXNlIG9wX3N3aXRjaF9jaGFy
OgotICAgIGNhc2Ugb3Bfc3dpdGNoX3N0cmluZzoKLSAgICBjYXNlIG9wX3B1dF9ieV9pZDoKLSAg
ICBjYXNlIG9wX3B1dF9ieV9pZF93aXRoX3RoaXM6Ci0gICAgY2FzZSBvcF9wdXRfYnlfdmFsX3dp
dGhfdGhpczoKLSAgICBjYXNlIG9wX3B1dF9nZXR0ZXJfYnlfaWQ6Ci0gICAgY2FzZSBvcF9wdXRf
c2V0dGVyX2J5X2lkOgotICAgIGNhc2Ugb3BfcHV0X2dldHRlcl9zZXR0ZXJfYnlfaWQ6Ci0gICAg
Y2FzZSBvcF9wdXRfZ2V0dGVyX2J5X3ZhbDoKLSAgICBjYXNlIG9wX3B1dF9zZXR0ZXJfYnlfdmFs
OgotICAgIGNhc2Ugb3BfcHV0X2J5X3ZhbDoKLSAgICBjYXNlIG9wX3B1dF9ieV92YWxfZGlyZWN0
OgotICAgIGNhc2Ugb3BfcHV0X2ludGVybmFsX2ZpZWxkOgotICAgIGNhc2Ugb3BfZGVmaW5lX2Rh
dGFfcHJvcGVydHk6Ci0gICAgY2FzZSBvcF9kZWZpbmVfYWNjZXNzb3JfcHJvcGVydHk6Ci0gICAg
Y2FzZSBvcF9wcm9maWxlX3R5cGU6Ci0gICAgY2FzZSBvcF9wcm9maWxlX2NvbnRyb2xfZmxvdzoK
LSAgICBjYXNlIG9wX3B1dF90b19hcmd1bWVudHM6Ci0gICAgY2FzZSBvcF9zZXRfZnVuY3Rpb25f
bmFtZToKLSAgICBjYXNlIG9wX2NoZWNrX3RyYXBzOgotICAgIGNhc2Ugb3BfbG9nX3NoYWRvd19j
aGlja2VuX3Byb2xvZ3VlOgotICAgIGNhc2Ugb3BfbG9nX3NoYWRvd19jaGlja2VuX3RhaWw6Ci0g
ICAgY2FzZSBvcF95aWVsZDoKLSAgICBjYXNlIG9wX25vcDoKLSAgICBjYXNlIG9wX3VucmVhY2hh
YmxlOgotICAgIGNhc2Ugb3Bfc3VwZXJfc2FtcGxlcl9iZWdpbjoKLSAgICBjYXNlIG9wX3N1cGVy
X3NhbXBsZXJfZW5kOgotI2RlZmluZSBMTElOVF9IRUxQRVJfT1BDT0RFUyhvcGNvZGUsIGxlbmd0
aCkgY2FzZSBvcGNvZGU6Ci0gICAgICAgIEZPUl9FQUNIX0xMSU5UX09QQ09ERV9FWFRFTlNJT04o
TExJTlRfSEVMUEVSX09QQ09ERVMpOwotI3VuZGVmIExMSU5UX0hFTFBFUl9PUENPREVTCi0gICAg
ICAgIHJldHVybjsKLSAgICAvLyBUaGVzZSBhbGwgaGF2ZSBhIHNpbmdsZSBkZXN0aW5hdGlvbiBm
b3IgdGhlIGZpcnN0IGFyZ3VtZW50LgotICAgIERFRlMoT3BBcmd1bWVudENvdW50LCBkc3QpCi0g
ICAgREVGUyhPcFRvSW5kZXhTdHJpbmcsIGRzdCkKLSAgICBERUZTKE9wR2V0RW51bWVyYWJsZUxl
bmd0aCwgZHN0KQotICAgIERFRlMoT3BIYXNJbmRleGVkUHJvcGVydHksIGRzdCkKLSAgICBERUZT
KE9wSGFzU3RydWN0dXJlUHJvcGVydHksIGRzdCkKLSAgICBERUZTKE9wSGFzR2VuZXJpY1Byb3Bl
cnR5LCBkc3QpCi0gICAgREVGUyhPcEdldERpcmVjdFBuYW1lLCBkc3QpCi0gICAgREVGUyhPcEdl
dFByb3BlcnR5RW51bWVyYXRvciwgZHN0KQotICAgIERFRlMoT3BFbnVtZXJhdG9yU3RydWN0dXJl
UG5hbWUsIGRzdCkKLSAgICBERUZTKE9wRW51bWVyYXRvckdlbmVyaWNQbmFtZSwgZHN0KQotICAg
IERFRlMoT3BHZXRQYXJlbnRTY29wZSwgZHN0KQotICAgIERFRlMoT3BQdXNoV2l0aFNjb3BlLCBk
c3QpCi0gICAgREVGUyhPcENyZWF0ZUxleGljYWxFbnZpcm9ubWVudCwgZHN0KQotICAgIERFRlMo
T3BDcmVhdGVHZW5lcmF0b3JGcmFtZUVudmlyb25tZW50LCBkc3QpCi0gICAgREVGUyhPcFJlc29s
dmVTY29wZSwgZHN0KQotICAgIERFRlMoT3BSZXNvbHZlU2NvcGVGb3JIb2lzdGluZ0Z1bmNEZWNs
SW5FdmFsLCBkc3QpCi0gICAgREVGUyhPcFN0cmNhdCwgZHN0KQotICAgIERFRlMoT3BUb1ByaW1p
dGl2ZSwgZHN0KQotICAgIERFRlMoT3BDcmVhdGVUaGlzLCBkc3QpCi0gICAgREVGUyhPcENyZWF0
ZVByb21pc2UsIGRzdCkKLSAgICBERUZTKE9wQ3JlYXRlR2VuZXJhdG9yLCBkc3QpCi0gICAgREVG
UyhPcENyZWF0ZUFzeW5jR2VuZXJhdG9yLCBkc3QpCi0gICAgREVGUyhPcE5ld0FycmF5LCBkc3Qp
Ci0gICAgREVGUyhPcE5ld0FycmF5V2l0aFNwcmVhZCwgZHN0KQotICAgIERFRlMoT3BTcHJlYWQs
IGRzdCkKLSAgICBERUZTKE9wTmV3QXJyYXlCdWZmZXIsIGRzdCkKLSAgICBERUZTKE9wTmV3QXJy
YXlXaXRoU2l6ZSwgZHN0KQotICAgIERFRlMoT3BOZXdSZWdleHAsIGRzdCkKLSAgICBERUZTKE9w
TmV3RnVuYywgZHN0KQotICAgIERFRlMoT3BOZXdGdW5jRXhwLCBkc3QpCi0gICAgREVGUyhPcE5l
d0dlbmVyYXRvckZ1bmMsIGRzdCkKLSAgICBERUZTKE9wTmV3R2VuZXJhdG9yRnVuY0V4cCwgZHN0
KQotICAgIERFRlMoT3BOZXdBc3luY0dlbmVyYXRvckZ1bmMsIGRzdCkKLSAgICBERUZTKE9wTmV3
QXN5bmNHZW5lcmF0b3JGdW5jRXhwLCBkc3QpCi0gICAgREVGUyhPcE5ld0FzeW5jRnVuYywgZHN0
KQotICAgIERFRlMoT3BOZXdBc3luY0Z1bmNFeHAsIGRzdCkKLSAgICBERUZTKE9wQ2FsbFZhcmFy
Z3MsIGRzdCkKLSAgICBERUZTKE9wVGFpbENhbGxWYXJhcmdzLCBkc3QpCi0gICAgREVGUyhPcFRh
aWxDYWxsRm9yd2FyZEFyZ3VtZW50cywgZHN0KQotICAgIERFRlMoT3BDb25zdHJ1Y3RWYXJhcmdz
LCBkc3QpCi0gICAgREVGUyhPcEdldEZyb21TY29wZSwgZHN0KQotICAgIERFRlMoT3BDYWxsLCBk
c3QpCi0gICAgREVGUyhPcFRhaWxDYWxsLCBkc3QpCi0gICAgREVGUyhPcENhbGxFdmFsLCBkc3Qp
Ci0gICAgREVGUyhPcENvbnN0cnVjdCwgZHN0KQotICAgIERFRlMoT3BUcnlHZXRCeUlkLCBkc3Qp
Ci0gICAgREVGUyhPcEdldEJ5SWQsIGRzdCkKLSAgICBERUZTKE9wR2V0QnlJZERpcmVjdCwgZHN0
KQotICAgIERFRlMoT3BHZXRCeUlkV2l0aFRoaXMsIGRzdCkKLSAgICBERUZTKE9wR2V0QnlWYWxX
aXRoVGhpcywgZHN0KQotICAgIERFRlMoT3BPdmVycmlkZXNIYXNJbnN0YW5jZSwgZHN0KQotICAg
IERFRlMoT3BJbnN0YW5jZW9mLCBkc3QpCi0gICAgREVGUyhPcEluc3RhbmNlb2ZDdXN0b20sIGRz
dCkKLSAgICBERUZTKE9wR2V0QnlWYWwsIGRzdCkKLSAgICBERUZTKE9wVHlwZW9mLCBkc3QpCi0g
ICAgREVGUyhPcElkZW50aXR5V2l0aFByb2ZpbGUsIHNyY0RzdCkKLSAgICBERUZTKE9wSXNFbXB0
eSwgZHN0KQotICAgIERFRlMoT3BJc1VuZGVmaW5lZCwgZHN0KQotICAgIFVTRVMoT3BJc1VuZGVm
aW5lZE9yTnVsbCwgZHN0KQotICAgIERFRlMoT3BJc0Jvb2xlYW4sIGRzdCkKLSAgICBERUZTKE9w
SXNOdW1iZXIsIGRzdCkKLSAgICBERUZTKE9wSXNPYmplY3QsIGRzdCkKLSAgICBERUZTKE9wSXNP
YmplY3RPck51bGwsIGRzdCkKLSAgICBERUZTKE9wSXNDZWxsV2l0aFR5cGUsIGRzdCkKLSAgICBE
RUZTKE9wSXNGdW5jdGlvbiwgZHN0KQotICAgIERFRlMoT3BJbkJ5SWQsIGRzdCkKLSAgICBERUZT
KE9wSW5CeVZhbCwgZHN0KQotICAgIERFRlMoT3BUb051bWJlciwgZHN0KQotICAgIERFRlMoT3BU
b051bWVyaWMsIGRzdCkKLSAgICBERUZTKE9wVG9TdHJpbmcsIGRzdCkKLSAgICBERUZTKE9wVG9P
YmplY3QsIGRzdCkKLSAgICBERUZTKE9wTmVnYXRlLCBkc3QpCi0gICAgREVGUyhPcEFkZCwgZHN0
KQotICAgIERFRlMoT3BNdWwsIGRzdCkKLSAgICBERUZTKE9wRGl2LCBkc3QpCi0gICAgREVGUyhP
cE1vZCwgZHN0KQotICAgIERFRlMoT3BTdWIsIGRzdCkKLSAgICBERUZTKE9wUG93LCBkc3QpCi0g
ICAgREVGUyhPcExzaGlmdCwgZHN0KQotICAgIERFRlMoT3BSc2hpZnQsIGRzdCkKLSAgICBERUZT
KE9wVXJzaGlmdCwgZHN0KQotICAgIERFRlMoT3BCaXRhbmQsIGRzdCkKLSAgICBERUZTKE9wQml0
eG9yLCBkc3QpCi0gICAgREVGUyhPcEJpdG9yLCBkc3QpCi0gICAgREVGUyhPcEJpdG5vdCwgZHN0
KQotICAgIERFRlMoT3BJbmMsIHNyY0RzdCkKLSAgICBERUZTKE9wRGVjLCBzcmNEc3QpCi0gICAg
REVGUyhPcEVxLCBkc3QpCi0gICAgREVGUyhPcE5lcSwgZHN0KQotICAgIERFRlMoT3BTdHJpY3Rl
cSwgZHN0KQotICAgIERFRlMoT3BOc3RyaWN0ZXEsIGRzdCkKLSAgICBERUZTKE9wTGVzcywgZHN0
KQotICAgIERFRlMoT3BMZXNzZXEsIGRzdCkKLSAgICBERUZTKE9wR3JlYXRlciwgZHN0KQotICAg
IERFRlMoT3BHcmVhdGVyZXEsIGRzdCkKLSAgICBERUZTKE9wQmVsb3csIGRzdCkKLSAgICBERUZT
KE9wQmVsb3dlcSwgZHN0KQotICAgIERFRlMoT3BOZXFOdWxsLCBkc3QpCi0gICAgREVGUyhPcEVx
TnVsbCwgZHN0KQotICAgIERFRlMoT3BOb3QsIGRzdCkKLSAgICBERUZTKE9wTW92LCBkc3QpCi0g
ICAgREVGUyhPcE5ld09iamVjdCwgZHN0KQotICAgIERFRlMoT3BOZXdQcm9taXNlLCBkc3QpCi0g
ICAgREVGUyhPcE5ld0dlbmVyYXRvciwgZHN0KQotICAgIERFRlMoT3BUb1RoaXMsIHNyY0RzdCkK
LSAgICBERUZTKE9wR2V0U2NvcGUsIGRzdCkKLSAgICBERUZTKE9wQ3JlYXRlRGlyZWN0QXJndW1l
bnRzLCBkc3QpCi0gICAgREVGUyhPcENyZWF0ZVNjb3BlZEFyZ3VtZW50cywgZHN0KQotICAgIERF
RlMoT3BDcmVhdGVDbG9uZWRBcmd1bWVudHMsIGRzdCkKLSAgICBERUZTKE9wRGVsQnlJZCwgZHN0
KQotICAgIERFRlMoT3BEZWxCeVZhbCwgZHN0KQotICAgIERFRlMoT3BVbnNpZ25lZCwgZHN0KQot
ICAgIERFRlMoT3BHZXRGcm9tQXJndW1lbnRzLCBkc3QpCi0gICAgREVGUyhPcEdldEFyZ3VtZW50
LCBkc3QpCi0gICAgREVGUyhPcENyZWF0ZVJlc3QsIGRzdCkKLSAgICBERUZTKE9wR2V0UmVzdExl
bmd0aCwgZHN0KQotICAgIERFRlMoT3BHZXRJbnRlcm5hbEZpZWxkLCBkc3QpCi0KLSAgICBERUZT
KE9wQ2F0Y2gsIGV4Y2VwdGlvbiwgdGhyb3duVmFsdWUpCi0KLSAgICBjYXNlIG9wX2VudGVyOiB7
Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IGNvZGVCbG9jay0+bnVtVmFycygpOyBpLS07KQot
ICAgICAgICAgICAgZnVuY3Rvcih2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChpKSk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0gICAgfQorICAgIGNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVJbmRleElt
cGwoY29kZUJsb2NrLT5udW1WYXJzKCksIGluc3RydWN0aW9uLCBmdW5jdG9yKTsKIH0KIAogI3Vu
ZGVmIENBTExfRlVOQ1RPUgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2dlbmVy
YXRvci9EU0wucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdG9yL0RTTC5yYgppbmRl
eCBhNzhiMTlkMzcyYzA1YTUxZDZlZjU4MzIxM2Q5MmNkYjE3ODQ4OTcyLi40YThiMWU1ODE0NDFm
ZGE2ODc2ZTY1MmM5ODQ2MDFhMmIzYjc5ZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZ2VuZXJhdG9yL0RTTC5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJh
dG9yL0RTTC5yYgpAQCAtMTA4LDYgKzEwOCw3IEBAIG1vZHVsZSBEU0wKIAogICAgICAgICB3cml0
ZV9ieXRlY29kZXMoYnl0ZWNvZGVfbGlzdCwgb3B0aW9uc1s6Ynl0ZWNvZGVzX2ZpbGVuYW1lXSkK
ICAgICAgICAgd3JpdGVfYnl0ZWNvZGVfc3RydWN0cyhieXRlY29kZV9saXN0LCBvcHRpb25zWzpi
eXRlY29kZV9zdHJ1Y3RzX2ZpbGVuYW1lXSkKKyAgICAgICAgd3JpdGVfYnl0ZWNvZGVfZHVtcGVy
KGJ5dGVjb2RlX2xpc3QsIG9wdGlvbnNbOmJ5dGVjb2RlX2R1bXBlcl9maWxlbmFtZV0pCiAgICAg
ICAgIHdyaXRlX2J5dGVjb2Rlc19pbml0KG9wdGlvbnNbOmluaXRfYXNtX2ZpbGVuYW1lXSwgYnl0
ZWNvZGVfbGlzdCkKICAgICAgICAgd3JpdGVfaW5kaWNlcyhieXRlY29kZV9saXN0LCBvcHRpb25z
WzpieXRlY29kZV9pbmRpY2VzX2ZpbGVuYW1lXSkKICAgICAgICAgd3JpdGVfbGxpbnRfZ2VuZXJh
dG9yKG9wdGlvbnNbOndhc21fbGxpbnRfZ2VuZXJhdG9yX2ZpbGVuYW1lXSwgYnl0ZWNvZGVfbGlz
dCwgQHdhc21fanNvbikKQEAgLTEyNyw4ICsxMjgsNiBAQCBtb2R1bGUgRFNMCiAKICAgICBkZWYg
c2VsZi53cml0ZV9ieXRlY29kZV9zdHJ1Y3RzKGJ5dGVjb2RlX2xpc3QsIGJ5dGVjb2RlX3N0cnVj
dHNfZmlsZW5hbWUpCiAgICAgICAgIEdlbmVyYXRlZEZpbGU6OmNyZWF0ZShieXRlY29kZV9zdHJ1
Y3RzX2ZpbGVuYW1lLCBieXRlY29kZV9saXN0KSBkbyB8dGVtcGxhdGV8Ci0gICAgICAgICAgICBv
cGNvZGVzID0gb3Bjb2Rlc19mb3IoOmVtaXRfaW5fc3RydWN0c19maWxlKQotCiAgICAgICAgICAg
ICB0ZW1wbGF0ZS5wcmVmaXggPSA8PC1FT0YKICNwcmFnbWEgb25jZQogCkBAIC0xNDMsMTMgKzE0
Miw0NCBAQCBtb2R1bGUgRFNMCiAjaW5jbHVkZSAiUHV0QnlJZEZsYWdzLmgiCiAjaW5jbHVkZSAi
VG9UaGlzU3RhdHVzLmgiCiAKK25hbWVzcGFjZSBKU0MgeworCit2b2lkIGR1bXBCeXRlY29kZShC
eXRlY29kZUR1bXBlckJhc2UqIGR1bXBlciwgSW5zdHJ1Y3Rpb25TdHJlYW06Ok9mZnNldCwgY29u
c3QgSW5zdHJ1Y3Rpb24qKTsKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKK3ZvaWQgZHVtcFdh
c20oQnl0ZWNvZGVEdW1wZXJCYXNlKiBkdW1wZXIsIEluc3RydWN0aW9uU3RyZWFtOjpPZmZzZXQs
IGNvbnN0IEluc3RydWN0aW9uKik7CisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQorCitF
T0YKKworICAgICAgICAgICAgdGVtcGxhdGUuYm9keSA9IDw8LUVPRgorI3tvcGNvZGVzX2ZpbHRl
ciB7IHxzfCBzLmNvbmZpZ1s6ZW1pdF9pbl9zdHJ1Y3RzX2ZpbGVdICYmICFzLmlzX3dhc20/IH0u
bWFwKCY6c3RydWN0KS5qb2luKCJcbiIpfQorCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorI3tv
cGNvZGVzX2ZpbHRlciB7IHxzfCBzLmNvbmZpZ1s6ZW1pdF9pbl9zdHJ1Y3RzX2ZpbGVdICYmIHMu
aXNfd2FzbT8gfS5tYXAoJjpzdHJ1Y3QpLmpvaW4oIlxuIil9CisjZW5kaWYgLy8gRU5BQkxFKFdF
QkFTU0VNQkxZKQorRU9GCisgICAgICAgICAgICB0ZW1wbGF0ZS5zdWZmaXggPSAifSAvLyBuYW1l
c3BhY2UgSlNDIgorICAgICAgICBlbmQKKyAgICBlbmQKKworICAgIGRlZiBzZWxmLndyaXRlX2J5
dGVjb2RlX2R1bXBlcihieXRlY29kZV9saXN0LCBieXRlY29kZV9kdW1wZXJfZmlsZW5hbWUpCisg
ICAgICAgIEdlbmVyYXRlZEZpbGU6OmNyZWF0ZShieXRlY29kZV9kdW1wZXJfZmlsZW5hbWUsIGJ5
dGVjb2RlX2xpc3QpIGRvIHx0ZW1wbGF0ZXwKKyAgICAgICAgICAgIHRlbXBsYXRlLnByZWZpeCA9
IDw8LUVPRgorI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkJ5dGVjb2RlRHVtcGVyLmgi
CisKKyNpbmNsdWRlICJCeXRlY29kZVN0cnVjdHMuaCIKKwogbmFtZXNwYWNlIEpTQyB7CiBFT0YK
IAogICAgICAgICAgICAgdGVtcGxhdGUuYm9keSA9IDw8LUVPRgotI3tvcGNvZGVzLm1hcCgmOnN0
cnVjdCkuam9pbigiXG4iKX0KICN7T3Bjb2RlLmR1bXBfYnl0ZWNvZGUoOkJ5dGVjb2RlLCA6SlNP
cGNvZGVUcmFpdHMsIG9wY29kZXNfZmlsdGVyIHsgfHN8IHMuY29uZmlnWzplbWl0X2luX3N0cnVj
dHNfZmlsZV0gJiYgIXMuaXNfd2FzbT8gfSl9CisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAj
e09wY29kZS5kdW1wX2J5dGVjb2RlKDpXYXNtLCA6V2FzbU9wY29kZVRyYWl0cywgb3Bjb2Rlc19m
aWx0ZXIgeyB8c3wgcy5pc193YXNtPyB9KX0KKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkp
CiBFT0YKICAgICAgICAgICAgIHRlbXBsYXRlLnN1ZmZpeCA9ICJ9IC8vIG5hbWVzcGFjZSBKU0Mi
CiAgICAgICAgIGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2dlbmVyYXRv
ci9PcGNvZGUucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdG9yL09wY29kZS5yYgpp
bmRleCA0MzRjNGZhN2NlYmE0MGY2Njk4NzM1MGM1ZTdlNWMzMGNjNWIyODE3Li5kYWI4Njg2Y2Ez
M2ExMDJjOWJmYTFkZjE4MDNlYmI0ZjBhYjI0NDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZ2VuZXJhdG9yL09wY29kZS5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Z2VuZXJhdG9yL09wY29kZS5yYgpAQCAtMjIzLDggKzIyMyw3IEBAIEVPRgogCiAgICAgZGVmIGR1
bXBlcgogICAgICAgICA8PC1FT0YKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBCbG9jaz4KLSAgICB2
b2lkIGR1bXAoQnl0ZWNvZGVEdW1wZXI8QmxvY2s+KiBkdW1wZXIsIEluc3RydWN0aW9uU3RyZWFt
OjpPZmZzZXQgX19sb2NhdGlvbiwgaW50IF9fc2l6ZVNoaWZ0QW1vdW50KQorICAgIHZvaWQgZHVt
cChCeXRlY29kZUR1bXBlckJhc2UqIGR1bXBlciwgSW5zdHJ1Y3Rpb25TdHJlYW06Ok9mZnNldCBf
X2xvY2F0aW9uLCBpbnQgX19zaXplU2hpZnRBbW91bnQpCiAgICAgewogICAgICAgICBkdW1wZXIt
PnByaW50TG9jYXRpb25BbmRPcChfX2xvY2F0aW9uLCAmIioqI3tAbmFtZX0iWzIgLSBfX3NpemVT
aGlmdEFtb3VudF0pOwogI3twcmludF9hcmdzIHsgfGFyZ3wKQEAgLTMyNiw4ICszMjUsNyBAQCBF
T0YKIAogICAgIGRlZiBzZWxmLmR1bXBfYnl0ZWNvZGUobmFtZSwgb3Bjb2RlX3RyYWl0cywgb3Bj
b2RlcykKICAgICAgICAgPDwtRU9GLmNob21wCi10ZW1wbGF0ZTx0eXBlbmFtZSBCeXRlY29kZUR1
bXBlcj4KLXN0YXRpYyB2b2lkIGR1bXAje25hbWV9KEJ5dGVjb2RlRHVtcGVyKiBkdW1wZXIsIElu
c3RydWN0aW9uU3RyZWFtOjpPZmZzZXQgX19sb2NhdGlvbiwgY29uc3QgSW5zdHJ1Y3Rpb24qIF9f
aW5zdHJ1Y3Rpb24pCit2b2lkIGR1bXAje25hbWV9KEJ5dGVjb2RlRHVtcGVyQmFzZSogZHVtcGVy
LCBJbnN0cnVjdGlvblN0cmVhbTo6T2Zmc2V0IF9fbG9jYXRpb24sIGNvbnN0IEluc3RydWN0aW9u
KiBfX2luc3RydWN0aW9uKQogewogICAgIHN3aXRjaCAoX19pbnN0cnVjdGlvbi0+b3Bjb2RlSUQ8
I3tvcGNvZGVfdHJhaXRzfT4oKSkgewogI3tvcGNvZGVzLm1hcCB7IHxvcHwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9nZW5lcmF0b3IvT3B0aW9ucy5yYiBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9nZW5lcmF0b3IvT3B0aW9ucy5yYgppbmRleCBhODI5MjIwZjQ2ZjI4ZDcwMDdj
NWMwODcwMDY1YmVmYWJjOTFjOGFmLi5mZjgyMjE3MmEyMmE4MDEzOTM0ZjljYWQ0ZTc1YjY1ZTAx
ODc5OTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdG9yL09wdGlv
bnMucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2dlbmVyYXRvci9PcHRpb25zLnJiCkBA
IC01Niw2ICs1NiwxMCBAQCAkY29uZmlnID0gewogICAgICAgICBsb25nOiAiLS1pbml0X3dhc21f
bGxpbnQgRklMRSIsCiAgICAgICAgIGRlc2M6ICJnZW5lcmF0ZSBXYXNtIGJ5dGVjb2RlcyBpbml0
IEZJTEUiLAogICAgIH0sCisgICAgYnl0ZWNvZGVfZHVtcGVyX2ZpbGVuYW1lOiB7CisgICAgICAg
IGxvbmc6ICItLWJ5dGVjb2RlX2R1bXBlciBGSUxFIiwKKyAgICAgICAgZGVzYzogImdlbmVyYXRl
IGJ5dGVjb2RlIGR1bXBlciBGSUxFIiwKKyAgICB9LAogfTsKIAogbW9kdWxlIE9wdGlvbnMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDAxN2JjNTk4MTYwNTdjZjYyNDZmMjZlMzAyOTA5OWQx
M2IxNjU0NjguLjI4MDMyYTIxYWFjYjlhMmQ5MzIyODVmZTFmOTY1YWRlM2UyN2E4MGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtNDY5LDEyICs0NjksMTYgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3A+CiAgICAgICAgIHZvaWQgZW1pdF9jb21w
YXJlQW5kSnVtcChjb25zdCBJbnN0cnVjdGlvbiosIFJlbGF0aW9uYWxDb25kaXRpb24pOworICAg
ICAgICB2b2lkIGVtaXRfY29tcGFyZUFuZEp1bXBJbXBsKGludCBvcDEsIGludCBvcDIsIHVuc2ln
bmVkIHRhcmdldCwgUmVsYXRpb25hbENvbmRpdGlvbik7CiAgICAgICAgIHRlbXBsYXRlPHR5cGVu
YW1lIE9wPgogICAgICAgICB2b2lkIGVtaXRfY29tcGFyZVVuc2lnbmVkKGNvbnN0IEluc3RydWN0
aW9uKiwgUmVsYXRpb25hbENvbmRpdGlvbik7CisgICAgICAgIHZvaWQgZW1pdF9jb21wYXJlVW5z
aWduZWRJbXBsKGludCBkc3QsIGludCBvcDEsIGludCBvcDIsIFJlbGF0aW9uYWxDb25kaXRpb24p
OwogICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcD4KICAgICAgICAgdm9pZCBlbWl0X2NvbXBh
cmVVbnNpZ25lZEFuZEp1bXAoY29uc3QgSW5zdHJ1Y3Rpb24qLCBSZWxhdGlvbmFsQ29uZGl0aW9u
KTsKKyAgICAgICAgdm9pZCBlbWl0X2NvbXBhcmVVbnNpZ25lZEFuZEp1bXBJbXBsKGludCBvcDEs
IGludCBvcDIsIHVuc2lnbmVkIHRhcmdldCwgUmVsYXRpb25hbENvbmRpdGlvbik7CiAgICAgICAg
IHRlbXBsYXRlPHR5cGVuYW1lIE9wPgogICAgICAgICB2b2lkIGVtaXRfY29tcGFyZUFuZEp1bXBT
bG93KGNvbnN0IEluc3RydWN0aW9uKiwgRG91YmxlQ29uZGl0aW9uLCBzaXplX3QgKEpJVF9PUEVS
QVRJT04gKm9wZXJhdGlvbikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUpLCBib29sIGludmVydCwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYp
OworICAgICAgICB2b2lkIGVtaXRfY29tcGFyZUFuZEp1bXBTbG93SW1wbChpbnQgb3AxLCBpbnQg
b3AyLCB1bnNpZ25lZCB0YXJnZXQsIHNpemVfdCBpbnN0cnVjdGlvblNpemUsIERvdWJsZUNvbmRp
dGlvbiwgc2l6ZV90IChKSVRfT1BFUkFUSU9OICpvcGVyYXRpb24pKEpTR2xvYmFsT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSwgYm9vbCBpbnZlcnQsIFZlY3RvcjxTbG93
Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgCiAgICAgICAgIHZvaWQgYXNzZXJ0U3Rh
Y2tQb2ludGVyT2Zmc2V0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUQXJpdGhtZXRpYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRo
bWV0aWMuY3BwCmluZGV4IGJiNjM1ZjhlNzZlM2M4Y2Q1ZTAzNDYwZGQxZmM3YjBlNjdkMzRiMWMu
LjM0NTg3NDRmYmNkZDUzYWNmOWE0MzMyOGJjNDk0YjBmZWRjYjg5M2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcApAQCAtMTcwLDE2ICsxNzAsMjEgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfdW5zaWduZWQoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbikKIAogdGVtcGxhdGU8dHlwZW5hbWUgT3A+CiB2b2lkIEpJVDo6ZW1pdF9jb21wYXJl
QW5kSnVtcChjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIFJlbGF0aW9uYWxDb25kaXRp
b24gY29uZGl0aW9uKQoreworICAgIGF1dG8gYnl0ZWNvZGUgPSBpbnN0cnVjdGlvbi0+YXM8T3A+
KCk7CisgICAgaW50IG9wMSA9IGJ5dGVjb2RlLm1fbGhzLm9mZnNldCgpOworICAgIGludCBvcDIg
PSBieXRlY29kZS5tX3Jocy5vZmZzZXQoKTsKKyAgICB1bnNpZ25lZCB0YXJnZXQgPSBqdW1wVGFy
Z2V0KGluc3RydWN0aW9uLCBieXRlY29kZS5tX3RhcmdldExhYmVsKTsKKyAgICBlbWl0X2NvbXBh
cmVBbmRKdW1wSW1wbChvcDEsIG9wMiwgdGFyZ2V0LCBjb25kaXRpb24pOworfQorCit2b2lkIEpJ
VDo6ZW1pdF9jb21wYXJlQW5kSnVtcEltcGwoaW50IG9wMSwgaW50IG9wMiwgdW5zaWduZWQgdGFy
Z2V0LCBSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmRpdGlvbikKIHsKICAgICAvLyBXZSBnZW5lcmF0
ZSBpbmxpbmUgY29kZSBmb3IgdGhlIGZvbGxvd2luZyBjYXNlcyBpbiB0aGUgZmFzdCBwYXRoOgog
ICAgIC8vIC0gaW50IGltbWVkaWF0ZSB0byBjb25zdGFudCBpbnQgaW1tZWRpYXRlCiAgICAgLy8g
LSBjb25zdGFudCBpbnQgaW1tZWRpYXRlIHRvIGludCBpbW1lZGlhdGUKICAgICAvLyAtIGludCBp
bW1lZGlhdGUgdG8gaW50IGltbWVkaWF0ZQogCi0gICAgYXV0byBieXRlY29kZSA9IGluc3RydWN0
aW9uLT5hczxPcD4oKTsKLSAgICBpbnQgb3AxID0gYnl0ZWNvZGUubV9saHMub2Zmc2V0KCk7Ci0g
ICAgaW50IG9wMiA9IGJ5dGVjb2RlLm1fcmhzLm9mZnNldCgpOwotICAgIHVuc2lnbmVkIHRhcmdl
dCA9IGp1bXBUYXJnZXQoaW5zdHJ1Y3Rpb24sIGJ5dGVjb2RlLm1fdGFyZ2V0TGFiZWwpOwogICAg
IGJvb2wgZGlzYWxsb3dBbGxvY2F0aW9uID0gZmFsc2U7CiAgICAgaWYgKGlzT3BlcmFuZENvbnN0
YW50Q2hhcihvcDEpKSB7CiAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIob3AyLCByZWdU
MCk7CkBAIC0yMjgsNiArMjMzLDExIEBAIHZvaWQgSklUOjplbWl0X2NvbXBhcmVVbnNpZ25lZEFu
ZEp1bXAoY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCBSZWxhdGlvbmFsCiAgICAgaW50
IG9wMSA9IGJ5dGVjb2RlLm1fbGhzLm9mZnNldCgpOwogICAgIGludCBvcDIgPSBieXRlY29kZS5t
X3Jocy5vZmZzZXQoKTsKICAgICB1bnNpZ25lZCB0YXJnZXQgPSBqdW1wVGFyZ2V0KGluc3RydWN0
aW9uLCBieXRlY29kZS5tX3RhcmdldExhYmVsKTsKKyAgICBlbWl0X2NvbXBhcmVVbnNpZ25lZEFu
ZEp1bXBJbXBsKG9wMSwgb3AyLCB0YXJnZXQsIGNvbmRpdGlvbik7Cit9CisKK3ZvaWQgSklUOjpl
bWl0X2NvbXBhcmVVbnNpZ25lZEFuZEp1bXBJbXBsKGludCBvcDEsIGludCBvcDIsIHVuc2lnbmVk
IHRhcmdldCwgUmVsYXRpb25hbENvbmRpdGlvbiBjb25kaXRpb24pCit7CiAgICAgaWYgKGlzT3Bl
cmFuZENvbnN0YW50SW50KG9wMikpIHsKICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihv
cDEsIHJlZ1QwKTsKICAgICAgICAgaW50MzJfdCBvcDJpbW0gPSBnZXRPcGVyYW5kQ29uc3RhbnRJ
bnQob3AyKTsKQEAgLTI0OSw2ICsyNTksMTEgQEAgdm9pZCBKSVQ6OmVtaXRfY29tcGFyZVVuc2ln
bmVkKGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgUmVsYXRpb25hbENvbmRpdGkKICAg
ICBpbnQgZHN0ID0gYnl0ZWNvZGUubV9kc3Qub2Zmc2V0KCk7CiAgICAgaW50IG9wMSA9IGJ5dGVj
b2RlLm1fbGhzLm9mZnNldCgpOwogICAgIGludCBvcDIgPSBieXRlY29kZS5tX3Jocy5vZmZzZXQo
KTsKKyAgICBlbWl0X2NvbXBhcmVVbnNpZ25lZEltcGwoZHN0LCBvcDEsIG9wMiwgY29uZGl0aW9u
KTsKK30KKwordm9pZCBKSVQ6OmVtaXRfY29tcGFyZVVuc2lnbmVkSW1wbChpbnQgZHN0LCBpbnQg
b3AxLCBpbnQgb3AyLCBSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmRpdGlvbikKK3sKICAgICBpZiAo
aXNPcGVyYW5kQ29uc3RhbnRJbnQob3AyKSkgewogICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lz
dGVyKG9wMSwgcmVnVDApOwogICAgICAgICBpbnQzMl90IG9wMmltbSA9IGdldE9wZXJhbmRDb25z
dGFudEludChvcDIpOwpAQCAtMjcyLDYgKzI4NywxMSBAQCB2b2lkIEpJVDo6ZW1pdF9jb21wYXJl
QW5kSnVtcFNsb3coY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCBEb3VibGVDb25kaXRp
bwogICAgIGludCBvcDEgPSBieXRlY29kZS5tX2xocy5vZmZzZXQoKTsKICAgICBpbnQgb3AyID0g
Ynl0ZWNvZGUubV9yaHMub2Zmc2V0KCk7CiAgICAgdW5zaWduZWQgdGFyZ2V0ID0ganVtcFRhcmdl
dChpbnN0cnVjdGlvbiwgYnl0ZWNvZGUubV90YXJnZXRMYWJlbCk7CisgICAgZW1pdF9jb21wYXJl
QW5kSnVtcFNsb3dJbXBsKG9wMSwgb3AyLCB0YXJnZXQsIGluc3RydWN0aW9uLT5zaXplKCksIGNv
bmRpdGlvbiwgb3BlcmF0aW9uLCBpbnZlcnQsIGl0ZXIpOworfQorCit2b2lkIEpJVDo6ZW1pdF9j
b21wYXJlQW5kSnVtcFNsb3dJbXBsKGludCBvcDEsIGludCBvcDIsIHVuc2lnbmVkIHRhcmdldCwg
c2l6ZV90IGluc3RydWN0aW9uU2l6ZSwgRG91YmxlQ29uZGl0aW9uIGNvbmRpdGlvbiwgc2l6ZV90
IChKSVRfT1BFUkFUSU9OICpvcGVyYXRpb24pKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlKSwgYm9vbCBpbnZlcnQsIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6
aXRlcmF0b3ImIGl0ZXIpCit7CiAKICAgICAvLyBXZSBnZW5lcmF0ZSBpbmxpbmUgY29kZSBmb3Ig
dGhlIGZvbGxvd2luZyBjYXNlcyBpbiB0aGUgc2xvdyBwYXRoOgogICAgIC8vIC0gZmxvYXRpbmct
cG9pbnQgbnVtYmVyIHRvIGNvbnN0YW50IGludCBpbW1lZGlhdGUKQEAgLTMwMiw3ICszMjIsNyBA
QCB2b2lkIEpJVDo6ZW1pdF9jb21wYXJlQW5kSnVtcFNsb3coY29uc3QgSW5zdHJ1Y3Rpb24qIGlu
c3RydWN0aW9uLCBEb3VibGVDb25kaXRpbwogCiAgICAgICAgICAgICBlbWl0SnVtcFNsb3dUb0hv
dChicmFuY2hEb3VibGUoY29uZGl0aW9uLCBmcFJlZ1QwLCBmcFJlZ1QxKSwgdGFyZ2V0KTsKIAot
ICAgICAgICAgICAgZW1pdEp1bXBTbG93VG9Ib3QoanVtcCgpLCBpbnN0cnVjdGlvbi0+c2l6ZSgp
KTsKKyAgICAgICAgICAgIGVtaXRKdW1wU2xvd1RvSG90KGp1bXAoKSwgaW5zdHJ1Y3Rpb25TaXpl
KTsKIAogICAgICAgICAgICAgZmFpbDEubGluayh0aGlzKTsKICAgICAgICAgfQpAQCAtMzI4LDcg
KzM0OCw3IEBAIHZvaWQgSklUOjplbWl0X2NvbXBhcmVBbmRKdW1wU2xvdyhjb25zdCBJbnN0cnVj
dGlvbiogaW5zdHJ1Y3Rpb24sIERvdWJsZUNvbmRpdGlvCiAKICAgICAgICAgICAgIGVtaXRKdW1w
U2xvd1RvSG90KGJyYW5jaERvdWJsZShjb25kaXRpb24sIGZwUmVnVDAsIGZwUmVnVDEpLCB0YXJn
ZXQpOwogCi0gICAgICAgICAgICBlbWl0SnVtcFNsb3dUb0hvdChqdW1wKCksIGluc3RydWN0aW9u
LT5zaXplKCkpOworICAgICAgICAgICAgZW1pdEp1bXBTbG93VG9Ib3QoanVtcCgpLCBpbnN0cnVj
dGlvblNpemUpOwogCiAgICAgICAgICAgICBmYWlsMS5saW5rKHRoaXMpOwogICAgICAgICB9CkBA
IC0zNTIsNyArMzcyLDcgQEAgdm9pZCBKSVQ6OmVtaXRfY29tcGFyZUFuZEp1bXBTbG93KGNvbnN0
IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgRG91YmxlQ29uZGl0aW8KIAogICAgICAgICBlbWl0
SnVtcFNsb3dUb0hvdChicmFuY2hEb3VibGUoY29uZGl0aW9uLCBmcFJlZ1QwLCBmcFJlZ1QxKSwg
dGFyZ2V0KTsKIAotICAgICAgICBlbWl0SnVtcFNsb3dUb0hvdChqdW1wKCksIGluc3RydWN0aW9u
LT5zaXplKCkpOworICAgICAgICBlbWl0SnVtcFNsb3dUb0hvdChqdW1wKCksIGluc3RydWN0aW9u
U2l6ZSk7CiAKICAgICAgICAgZmFpbDEubGluayh0aGlzKTsKICAgICAgICAgZmFpbDIubGluayh0
aGlzKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>