<?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>217728</bug_id>
          
          <creation_ts>2020-10-14 13:41:04 -0700</creation_ts>
          <short_desc>REGRESSION(r268431): Broke debug builds of GTK, WinCairo and Playstation ports</short_desc>
          <delta_ts>2020-10-14 15:46:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>217565</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>annulen</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fujii</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rniwa</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1697856</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-10-14 13:41:04 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/268431 broke the build:
Broke debug builds of GTK, WinCairo and Playstation ports

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697858</commentid>
    <comment_count>1</comment_count>
      <attachid>411368</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-10-14 13:41:11 -0700</bug_when>
    <thetext>Created attachment 411368
REVERT of r268431

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697866</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-14 13:52:41 -0700</bug_when>
    <thetext>Committed r268486: &lt;https://trac.webkit.org/changeset/268486&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411368.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697867</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-14 13:53:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/70306905&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411368</attachid>
            <date>2020-10-14 13:41:11 -0700</date>
            <delta_ts>2020-10-14 15:46:17 -0700</delta_ts>
            <desc>REVERT of r268431</desc>
            <filename>bug-217728-20201014204110.patch</filename>
            <type>text/plain</type>
            <size>67532</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU3YjExZTVkODFiZGY0YjM4
YTZkOGY5ZTcyYzM1OTQ1NzA4YjBiMTUuLjUyODA0ZDRiYTY5OGE0NTk2NzYwZjIwNjU2ZThlNDYz
YjA2NjcwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMTAtMTQgIENvbW1pdCBR
dWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJl
dmVydGluZyByMjY4NDMxIGFuZCByMjY4NDQzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzI4CisKKyAgICAgICAgQnJva2UgZGVidWcgYnVpbGRz
IG9mIEdUSywgV2luQ2Fpcm8gYW5kIFBsYXlzdGF0aW9uIHBvcnRzCisKKyAgICAgICAgUmV2ZXJ0
ZWQgY2hhbmdlc2V0czoKKworICAgICAgICAiSVBDIHRlc3RpbmcgSlMgQVBJIHNob3VsZCBleHBv
c2UgYSByZXBseSBhbmQgZGVzY3JpYmUgdGhlCisgICAgICAgIGxpc3Qgb2YgYXJndW1lbnRzIGZv
ciBlYWNoIG1lc3NhZ2UiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTc1NjUKKyAgICAgICAgaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0
LzI2ODQzMQorCisgICAgICAgICJJUEMgdGVzdGluZyBKUyBBUEkgc2hvdWxkIGV4cG9zZSBhIHJl
cGx5IGFuZCBkZXNjcmliZSB0aGUKKyAgICAgICAgbGlzdCBvZiBhcmd1bWVudHMgZm9yIGVhY2gg
bWVzc2FnZSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzU2NQorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjY4NDQz
CisKIDIwMjAtMTAtMTQgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJFR1JFU1NJT04gKHIyNjgzODQpOiBBU1NFUlRJT04gRkFJTEVEOiBfc3RhcnRDb3VudCA+
IDEgaW4gLVtXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgc3RvcF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4
IGM5ZjZiNDNiOGU4NzFhMzNmZGJkNjQxOTI3ZjRjODdkOGFkYjQzZjYuLjE4ZGQzMWNhZTgwZWVm
NmUyNzVkYjUxNzI4OWFmOGM4MzI0ZmI4MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtNDI4LDcg
KzQyOCw2IEBAIG1hY3JvKEdFTkVSQVRFX01FU1NBR0VfU09VUkNFUyBfb3V0cHV0X3NvdXJjZSBf
aW5wdXRzKQogCiAgICAgYWRkX2N1c3RvbV9jb21tYW5kKAogICAgICAgICBPVVRQVVQKLSAgICAg
ICAgICAgICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L01lc3NhZ2VBcmd1bWVudERlc2Ny
aXB0aW9ucy5jcHAKICAgICAgICAgICAgICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9L01l
c3NhZ2VOYW1lcy5jcHAKICAgICAgICAgICAgICR7V2ViS2l0X0RFUklWRURfU09VUkNFU19ESVJ9
L01lc3NhZ2VOYW1lcy5oCiAgICAgICAgICAgICAke19vdXRwdXRzfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMDRkNDc5ODZhMDU2NTkw
YzhkMTljOTYxOWU5MjMzMjhkMjg0MWMxYi4uNDdjZGZlMGU2N2Q3ZDhlZTJkZGI4YTVjZWU4YjY2
NzA4N2JmOTY3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0CkBAIC02OCw3ICs2OCw2IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL0xpYldlYlJUQ1JlbW90ZUNvZGVjc01lc3NhZ2VzUmVwbGllCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMuaAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmNwcAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTWVzc2FnZU5hbWVzLmNwcAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTWVzc2FnZU5hbWVzLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL05QT2JqZWN0TWVz
c2FnZVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IGVkZDU4NzgzODkxOTBmM2VlYzY2Y2U5ZTNiMTc3Nzk2ZTFjZjdiNzYuLjUxMGM3OTg1
YzU4N2Q0ODRmZDMyMjkwOTk1MTUzMjA4YjE5MzFmYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKQEAgLTI1Nyw3ICsyNTcsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSX0ZJTEVTIDo9ICQoYWRk
c3VmZml4IE1lc3NhZ2VSZWNlaXZlci5jcHAsJChub3RkaXIgJChNRVNTQUdFX1JFQwogTUVTU0FH
RVNfRklMRVMgOj0gJChhZGRzdWZmaXggTWVzc2FnZXMuaCwkKG5vdGRpciAkKE1FU1NBR0VfUkVD
RUlWRVJTKSkpCiBNRVNTQUdFX1JFUExJRVNfRklMRVMgOj0gJChhZGRzdWZmaXggTWVzc2FnZXNS
ZXBsaWVzLmgsJChub3RkaXIgJChNRVNTQUdFX1JFQ0VJVkVSUykpKQogCi1HRU5FUkFURURfTUVT
U0FHRVNfRklMRVMgOj0gJChNRVNTQUdFX1JFQ0VJVkVSX0ZJTEVTKSAkKE1FU1NBR0VTX0ZJTEVT
KSAkKE1FU1NBR0VfUkVQTElFU19GSUxFUykgTWVzc2FnZU5hbWVzLmggTWVzc2FnZU5hbWVzLmNw
cCBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwCitHRU5FUkFURURfTUVTU0FHRVNfRklM
RVMgOj0gJChNRVNTQUdFX1JFQ0VJVkVSX0ZJTEVTKSAkKE1FU1NBR0VTX0ZJTEVTKSAkKE1FU1NB
R0VfUkVQTElFU19GSUxFUykgTWVzc2FnZU5hbWVzLmggTWVzc2FnZU5hbWVzLmNwcAogR0VORVJB
VEVEX01FU1NBR0VTX0ZJTEVTX0FTX1BBVFRFUk5TIDo9ICQoc3Vic3QgLiwlLCQoR0VORVJBVEVE
X01FU1NBR0VTX0ZJTEVTKSkKIAogTUVTU0FHRVNfSU5fRklMRVMgOj0gJChhZGRzdWZmaXggLm1l
c3NhZ2VzLmluLCQoTUVTU0FHRV9SRUNFSVZFUlMpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvRGVjb2Rlci5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGVj
b2Rlci5oCmluZGV4IGYzNzg3NjBmYzViODNmY2JjMzMzODhiNjQyYjdiNTI2YWFhM2ExNTUuLjMw
MWY4ODIxZTY1ZjkzM2YyNTI3OGNjOTA1YjQyMWJmZWRmNTg3NTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RlY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9EZWNvZGVyLmgKQEAgLTcyLDcgKzcyLDYgQEAgcHVibGljOgogCiAgICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiB1bndyYXBGb3JUZXN0aW5nKERlY29kZXImKTsKIAot
ICAgIGNvbnN0IHVpbnQ4X3QqIGJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyOyB9CiAg
ICAgc2l6ZV90IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyRW5kIC0gbV9idWZmZXI7
IH0KIAogICAgIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVy
biBtX2J1ZmZlclBvcyAhPSBudWxscHRyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9KU0lQQ0JpbmRpbmcuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0pT
SVBDQmluZGluZy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjM2U3MjFiODA0MDFh
ZTU0MmFiMGMxMmY0YTVmYzQ4OTc5OWNkYzNmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0pTSVBDQmluZGlu
Zy5oCisrKyAvZGV2L251bGwKQEAgLTEsMjU1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21h
IG9uY2UKLQotI2luY2x1ZGUgIkRlY29kZXIuaCIKLSNpbmNsdWRlICJIYW5kbGVNZXNzYWdlLmgi
Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNBcnJheS5oPgotI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTR2xvYmFsT2JqZWN0Lmg+Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNPYmpl
Y3QuaD4KLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9PYmplY3RDb25zdHJ1Y3Rvci5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgotI2luY2x1ZGUgPHd0Zi9P
YmplY3RJZGVudGlmaWVyLmg+Ci0jaW5jbHVkZSA8d3RmL1VSTC5oPgotI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgotCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCBzdGQ6OmVuYWJsZV9pZl90
PCFzdGQ6OmlzX2FyaXRobWV0aWM8VD46OnZhbHVlICYmICFzdGQ6OmlzX2VudW08VD46OnZhbHVl
PiogPSBudWxscHRyPgotSlNDOjpKU1ZhbHVlIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRWYWx1
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgY29uc3QgVCYpCi17Ci0gICAgcmV0dXJuIEpTQzo6anNV
bmRlZmluZWQoKTsKLX0KLQotdGVtcGxhdGU8PgotSlNDOjpKU1ZhbHVlIGpzVmFsdWVGb3JEZWNv
ZGVkQXJndW1lbnRWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0
IFN0cmluZyYgdmFsdWUpCi17Ci0gICAgYXV0byYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0g
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIG9iamVj
dCA9IEpTQzo6Y29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3Qt
Pm9iamVjdFByb3RvdHlwZSgpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU0M6
OkpTVmFsdWUoKSk7Ci0gICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgInR5cGUiX3MpLCBKU0M6OmpzTm9udHJpdmlhbFN0cmluZyh2bSwgIlN0
cmluZyJfcykpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTQzo6SlNWYWx1ZSgp
KTsKLSAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCAidmFsdWUiX3MpLCBKU0M6OmpzTm9udHJpdmlhbFN0cmluZyh2bSwgdmFsdWUpKTsKLSAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU0M6OkpTVmFsdWUoKSk7Ci0gICAgcmV0dXJu
IG9iamVjdDsKLX0KLQotdGVtcGxhdGU8PgotSlNDOjpKU1ZhbHVlIGpzVmFsdWVGb3JEZWNvZGVk
QXJndW1lbnRWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFVS
TCYgdmFsdWUpCi17Ci0gICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRWYWx1ZShn
bG9iYWxPYmplY3QsIHZhbHVlLnN0cmluZygpKTsKLX0KLQotdGVtcGxhdGU8PgotSlNDOjpKU1Zh
bHVlIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiB2YWx1ZSkKLXsK
LSAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudFZhbHVlKGdsb2JhbE9iamVjdCwg
dmFsdWUuc3RyaW5nKCkpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCBzdGQ6OmVuYWJsZV9p
Zl90PHN0ZDo6aXNfYXJpdGhtZXRpYzxUPjo6dmFsdWU+KiA9IG51bGxwdHI+Ci1KU0M6OkpTVmFs
dWUganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudFZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBU
KQotewotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBFLCBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNf
ZW51bTxFPjo6dmFsdWU+KiA9IG51bGxwdHI+Ci1KU0M6OkpTVmFsdWUganNWYWx1ZUZvckRlY29k
ZWRBcmd1bWVudFZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRSB2YWx1
ZSkKLXsKLSAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudFZhbHVlKGdsb2JhbE9i
amVjdCwgc3RhdGljX2Nhc3Q8c3RkOjp1bmRlcmx5aW5nX3R5cGVfdDxFPj4odmFsdWUpKTsKLX0K
LQotdGVtcGxhdGU8dHlwZW5hbWUgTnVtZXJpY1R5cGU+Ci1KU0M6OkpTVmFsdWUganNWYWx1ZUZv
ckRlY29kZWROdW1lcmljQXJndW1lbnRWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIE51bWVyaWNUeXBlIHZhbHVlLCBjb25zdCBTdHJpbmcmIHR5cGUpCi17Ci0gICAgYXV0
byYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwotICAgIGF1dG8qIG9iamVjdCA9IEpTQzo6Y29uc3RydWN0RW1wdHlPYmpl
Y3QoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKTsKLSAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU0M6OkpTVmFsdWUoKSk7Ci0gICAgb2JqZWN0LT5w
dXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInR5cGUiX3MpLCBK
U0M6OmpzTm9udHJpdmlhbFN0cmluZyh2bSwgdHlwZSkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIEpTQzo6SlNWYWx1ZSgpKTsKLSAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSlND
OjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAidmFsdWUiX3MpLCBKU0M6OkpTVmFsdWUodmFs
dWUpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU0M6OkpTVmFsdWUoKSk7Ci0g
ICAgcmV0dXJuIG9iamVjdDsKLX0KLQotdGVtcGxhdGU8PgotSlNDOjpKU1ZhbHVlIGpzVmFsdWVG
b3JEZWNvZGVkQXJndW1lbnRWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IGJvb2wgdmFsdWUpCi17Ci0gICAgYXV0byYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIG9iamVjdCA9
IEpTQzo6Y29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPm9i
amVjdFByb3RvdHlwZSgpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU0M6OkpT
VmFsdWUoKSk7Ci0gICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgInR5cGUiX3MpLCBKU0M6OmpzTm9udHJpdmlhbFN0cmluZyh2bSwgImJvb2wi
KSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNDOjpKU1ZhbHVlKCkpOwotICAg
IG9iamVjdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJ2
YWx1ZSJfcyksIEpTQzo6anNCb29sZWFuKHZhbHVlKSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgSlNDOjpKU1ZhbHVlKCkpOwotICAgIHJldHVybiBvYmplY3Q7Ci19Ci0KLXRlbXBs
YXRlPD4KLUpTQzo6SlNWYWx1ZSBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50VmFsdWUoSlNDOjpK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBkb3VibGUgdmFsdWUpCi17Ci0gICAgcmV0dXJu
IGpzVmFsdWVGb3JEZWNvZGVkTnVtZXJpY0FyZ3VtZW50VmFsdWUoZ2xvYmFsT2JqZWN0LCB2YWx1
ZSwgImRvdWJsZSIpOwotfQotCi10ZW1wbGF0ZTw+Ci1KU0M6OkpTVmFsdWUganNWYWx1ZUZvckRl
Y29kZWRBcmd1bWVudFZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgZmxv
YXQgdmFsdWUpCi17Ci0gICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTnVtZXJpY0FyZ3VtZW50
VmFsdWUoZ2xvYmFsT2JqZWN0LCB2YWx1ZSwgImZsb2F0Iik7Ci19Ci0KLXRlbXBsYXRlPD4KLUpT
Qzo6SlNWYWx1ZSBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50VmFsdWUoSlNDOjpKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBpbnQ4X3QgdmFsdWUpCi17Ci0gICAgcmV0dXJuIGpzVmFsdWVG
b3JEZWNvZGVkTnVtZXJpY0FyZ3VtZW50VmFsdWUoZ2xvYmFsT2JqZWN0LCB2YWx1ZSwgImludDhf
dCIpOwotfQotCi10ZW1wbGF0ZTw+Ci1KU0M6OkpTVmFsdWUganNWYWx1ZUZvckRlY29kZWRBcmd1
bWVudFZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50MTZfdCB2YWx1
ZSkKLXsKLSAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWROdW1lcmljQXJndW1lbnRWYWx1ZShn
bG9iYWxPYmplY3QsIHZhbHVlLCAiaW50MTZfdCIpOwotfQotCi10ZW1wbGF0ZTw+Ci1KU0M6OkpT
VmFsdWUganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudFZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgaW50MzJfdCB2YWx1ZSkKLXsKLSAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWROdW1lcmljQXJndW1lbnRWYWx1ZShnbG9iYWxPYmplY3QsIHZhbHVlLCAiaW50MzJfdCIp
OwotfQotCi10ZW1wbGF0ZTw+Ci1KU0M6OkpTVmFsdWUganNWYWx1ZUZvckRlY29kZWRBcmd1bWVu
dFZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50NjRfdCB2YWx1ZSkK
LXsKLSAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWROdW1lcmljQXJndW1lbnRWYWx1ZShnbG9i
YWxPYmplY3QsIHZhbHVlLCAiaW50NjRfdCIpOwotfQotCi10ZW1wbGF0ZTw+Ci1KU0M6OkpTVmFs
dWUganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudFZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgdWludDhfdCB2YWx1ZSkKLXsKLSAgICByZXR1cm4ganNWYWx1ZUZvckRlY29k
ZWROdW1lcmljQXJndW1lbnRWYWx1ZShnbG9iYWxPYmplY3QsIHZhbHVlLCAidWludDhfdCIpOwot
fQotCi10ZW1wbGF0ZTw+Ci1KU0M6OkpTVmFsdWUganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudFZh
bHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdWludDE2X3QgdmFsdWUpCi17
Ci0gICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTnVtZXJpY0FyZ3VtZW50VmFsdWUoZ2xvYmFs
T2JqZWN0LCB2YWx1ZSwgInVpbnQxNl90Iik7Ci19Ci0KLXRlbXBsYXRlPD4KLUpTQzo6SlNWYWx1
ZSBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50VmFsdWUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCB1aW50MzJfdCB2YWx1ZSkKLXsKLSAgICByZXR1cm4ganNWYWx1ZUZvckRlY29k
ZWROdW1lcmljQXJndW1lbnRWYWx1ZShnbG9iYWxPYmplY3QsIHZhbHVlLCAidWludDMyX3QiKTsK
LX0KLQotdGVtcGxhdGU8PgotSlNDOjpKU1ZhbHVlIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRW
YWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHVpbnQ2NF90IHZhbHVlKQot
ewotICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE51bWVyaWNBcmd1bWVudFZhbHVlKGdsb2Jh
bE9iamVjdCwgdmFsdWUsICJ1aW50NjRfdCIpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBVPgot
SlNDOjpKU1ZhbHVlIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRWYWx1ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IE9iamVjdElkZW50aWZpZXI8VT4mIHZhbHVlKQot
ewotICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50VmFsdWUoZ2xvYmFsT2JqZWN0
LCB2YWx1ZS50b1VJbnQ2NCgpKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgUmVjdFR5cGU+Ci1K
U0M6OkpTVmFsdWUganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudFJlY3QoSlNDOjpKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBSZWN0VHlwZSYgdmFsdWUsIGNvbnN0IFN0cmluZyYg
dHlwZSkKLXsKLSAgICBhdXRvJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogb2JqZWN0ID0gSlNDOjpj
b25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJv
dG90eXBlKCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTQzo6SlNWYWx1ZSgp
KTsKLSAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCAidHlwZSJfcyksIEpTQzo6anNOb250cml2aWFsU3RyaW5nKHZtLCB0eXBlKSk7Ci0gICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNDOjpKU1ZhbHVlKCkpOwotICAgIG9iamVjdC0+
cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJ4Il9zKSwgSlND
OjpKU1ZhbHVlKHZhbHVlLngoKSkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpT
Qzo6SlNWYWx1ZSgpKTsKLSAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCAieSJfcyksIEpTQzo6SlNWYWx1ZSh2YWx1ZS55KCkpKTsKLSAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU0M6OkpTVmFsdWUoKSk7Ci0gICAgb2JqZWN0LT5w
dXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIndpZHRoIl9zKSwg
SlNDOjpKU1ZhbHVlKHZhbHVlLndpZHRoKCkpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBKU0M6OkpTVmFsdWUoKSk7Ci0gICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImhlaWdodCJfcyksIEpTQzo6SlNWYWx1ZSh2YWx1ZS5o
ZWlnaHQoKSkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTQzo6SlNWYWx1ZSgp
KTsKLSAgICByZXR1cm4gb2JqZWN0OwotfQotCi10ZW1wbGF0ZTw+Ci1KU0M6OkpTVmFsdWUganNW
YWx1ZUZvckRlY29kZWRBcmd1bWVudFZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmFsdWUpCi17Ci0gICAgcmV0dXJuIGpzVmFs
dWVGb3JEZWNvZGVkQXJndW1lbnRSZWN0KGdsb2JhbE9iamVjdCwgdmFsdWUsICJJbnRSZWN0Iik7
Ci19Ci0KLXRlbXBsYXRlPD4KLUpTQzo6SlNWYWx1ZSBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50
VmFsdWUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIHZhbHVlKQotewotICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50
UmVjdChnbG9iYWxPYmplY3QsIHZhbHVlLCAiRmxvYXRSZWN0Iik7Ci19Ci0KLXRlbXBsYXRlPHNp
emVfdCByZW1haW5pbmdTaXplLCB0eXBlbmFtZS4uLiBFbGVtZW50cz4KLXN0cnVjdCBEZWNvZGVk
QXJndW1lbnRKU1ZhbHVlQ29udmVydGVyIHsKLSAgICBzdGF0aWMgYm9vbCBjb252ZXJ0KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU0FycmF5KiBhcnJheSwgY29uc3Qg
c3RkOjp0dXBsZTxFbGVtZW50cy4uLj4mIHR1cGxlKQotICAgIHsKLSAgICAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoZ2xvYmFsT2JqZWN0LT52bSgpKTsKLQotICAgICAgICBh
dXRvIGpzVmFsdWUgPSBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50VmFsdWUoZ2xvYmFsT2JqZWN0
LCBzdGQ6OmdldDxzaXplb2YuLi4oRWxlbWVudHMpIC0gcmVtYWluaW5nU2l6ZT4odHVwbGUpKTsK
LSAgICAgICAgaWYgKGpzVmFsdWUuaXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgICAgIHVuc2lnbmVkIGluZGV4ID0gc2l6ZW9mLi4uKEVsZW1lbnRzKSAtIHJlbWFp
bmluZ1NpemU7Ci0gICAgICAgIGFycmF5LT5wdXREaXJlY3RJbmRleChnbG9iYWxPYmplY3QsIGlu
ZGV4LCBqc1ZhbHVlKTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2Up
OwotCi0gICAgICAgIHJldHVybiBEZWNvZGVkQXJndW1lbnRKU1ZhbHVlQ29udmVydGVyPHJlbWFp
bmluZ1NpemUgLSAxLCBFbGVtZW50cy4uLj46OmNvbnZlcnQoZ2xvYmFsT2JqZWN0LCBhcnJheSwg
dHVwbGUpOwotICAgIH0KLX07Ci0KLXRlbXBsYXRlPHR5cGVuYW1lLi4uIEVsZW1lbnRzPgotc3Ry
dWN0IERlY29kZWRBcmd1bWVudEpTVmFsdWVDb252ZXJ0ZXI8MCwgRWxlbWVudHMuLi4+IHsKLSAg
ICBzdGF0aWMgYm9vbCBjb252ZXJ0KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTQXJyYXkq
LCBjb25zdCBzdGQ6OnR1cGxlPEVsZW1lbnRzLi4uPiYpCi0gICAgewotICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICB9Ci19OwotCi10ZW1wbGF0ZTx0eXBlbmFtZS4uLiBFbGVtZW50cz4KLXN0YXRp
YyBKU0M6OkpTVmFsdWUganNWYWx1ZUZvckFyZ3VtZW50VHVwbGUoSlNDOjpKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBjb25zdCBzdGQ6OnR1cGxlPEVsZW1lbnRzLi4uPiYgdHVwbGUpCi17
Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoZ2xvYmFsT2JqZWN0LT52bSgp
KTsKLSAgICBhdXRvKiBhcnJheSA9IEpTQzo6Y29uc3RydWN0RW1wdHlBcnJheShnbG9iYWxPYmpl
Y3QsIG51bGxwdHIpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTQzo6SlNWYWx1
ZSgpKTsKLSAgICBpZiAoIURlY29kZWRBcmd1bWVudEpTVmFsdWVDb252ZXJ0ZXI8c2l6ZW9mLi4u
KEVsZW1lbnRzKSwgRWxlbWVudHMuLi4+Ojpjb252ZXJ0KGdsb2JhbE9iamVjdCwgYXJyYXksIHR1
cGxlKSkKLSAgICAgICAgcmV0dXJuIEpTQzo6SlNWYWx1ZSgpOwotICAgIHJldHVybiBKU0M6OkpT
VmFsdWUoYXJyYXkpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotc3RhdGljIE9wdGlvbmFs
PEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHMoSlNDOjpKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBJUEM6OkRlY29kZXImIGRlY29kZXIpCi17Ci0gICAgT3B0aW9u
YWw8dHlwZW5hbWUgSVBDOjpDb2RpbmdUeXBlPFQ+OjpUeXBlPiBhcmd1bWVudHM7Ci0gICAgZGVj
b2RlciA+PiBhcmd1bWVudHM7Ci0gICAgaWYgKCFhcmd1bWVudHMpCi0gICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIGpzVmFsdWVGb3JBcmd1bWVudFR1cGxlKGdsb2JhbE9i
amVjdCwgKmFyZ3VtZW50cyk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L0lQQy9NZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL01lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA1YWJiODczMjY2ODY2NzU5ZWQ5ZjE4NDZlNGQxOGFhNmNjMDg0OWRlLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL01lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5oCisrKyAvZGV2L251bGwK
QEAgLTEsNTYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAi
TWVzc2FnZU5hbWVzLmgiCi0jaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+Ci0jaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgSlNDIHsKLQotY2xhc3MgSlNHbG9iYWxPYmplY3Q7Ci1j
bGFzcyBKU1ZhbHVlOwotCi19Ci0KLW5hbWVzcGFjZSBJUEMgewotCi1jbGFzcyBEZWNvZGVyOwot
Ci1PcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JBcmd1bWVudHMoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIE1lc3NhZ2VOYW1lLCBEZWNvZGVyJik7Ci1PcHRpb25hbDxKU0M6OkpTVmFsdWU+
IGpzVmFsdWVGb3JSZXBseUFyZ3VtZW50cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgTWVzc2FnZU5h
bWUsIERlY29kZXImKTsKLQotc3RydWN0IEFyZ3VtZW50RGVzY3JpcHRpb24gewotICAgIGNvbnN0
IGNoYXIqIG5hbWU7Ci0gICAgY29uc3QgY2hhciogdHlwZTsKLSAgICBjb25zdCBjaGFyKiBlbnVt
TmFtZTsKLSAgICBib29sIGlzT3B0aW9uYWw7Ci19OwotCi1PcHRpb25hbDxWZWN0b3I8QXJndW1l
bnREZXNjcmlwdGlvbj4+IG1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucyhNZXNzYWdlTmFtZSk7
Ci1PcHRpb25hbDxWZWN0b3I8QXJndW1lbnREZXNjcmlwdGlvbj4+IG1lc3NhZ2VSZXBseUFyZ3Vt
ZW50RGVzY3JpcHRpb25zKE1lc3NhZ2VOYW1lKTsKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkgYi9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weQppbmRleCBmODEyMjEwOGNjYjhm
ZGNjYjQ4Yzc4YzhlM2Q0OWYxZGUwYTk4YTM4Li41ZWE1NjIzYTU0OTIzOTE4MjdlYTUyMzA5MjM3
N2IzZmQ2ZDljY2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUt
bWVzc2FnZS1yZWNlaXZlci5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUt
bWVzc2FnZS1yZWNlaXZlci5weQpAQCAtMzQsNyArMzQsNiBAQCBkZWYgbWFpbihhcmd2KToKIAog
ICAgIGZpcnN0X2FyZyA9IFRydWUKICAgICBzZWNvbmRfYXJnID0gRmFsc2UKLSAgICByZWNlaXZl
cl9oZWFkZXJfZmlsZXMgPSBbXQogICAgIGZvciBwYXJhbWV0ZXIgaW4gYXJndjoKICAgICAgICAg
aWYgZmlyc3RfYXJnOgogICAgICAgICAgICAgZmlyc3RfYXJnID0gRmFsc2UKQEAgLTU0LDkgKzUz
LDcgQEAgZGVmIG1haW4oYXJndik6CiAgICAgICAgIHdpdGggb3BlbignJXNNZXNzYWdlUmVjZWl2
ZXIuY3BwJyAlIHJlY2VpdmVyX25hbWUsICJ3KyIpIGFzIGltcGxlbWVudGF0aW9uX291dHB1dDoK
ICAgICAgICAgICAgIGltcGxlbWVudGF0aW9uX291dHB1dC53cml0ZSh3ZWJraXQubWVzc2FnZXMu
Z2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKHJlY2VpdmVyKSkKIAotICAgICAgICByZWNlaXZlcl9t
ZXNzYWdlX2hlYWRlciA9ICclc01lc3NhZ2VzLmgnICUgcmVjZWl2ZXJfbmFtZQotICAgICAgICBy
ZWNlaXZlcl9oZWFkZXJfZmlsZXMuYXBwZW5kKHJlY2VpdmVyX21lc3NhZ2VfaGVhZGVyKQotICAg
ICAgICB3aXRoIG9wZW4ocmVjZWl2ZXJfbWVzc2FnZV9oZWFkZXIsICJ3KyIpIGFzIGhlYWRlcl9v
dXRwdXQ6CisgICAgICAgIHdpdGggb3BlbignJXNNZXNzYWdlcy5oJyAlIHJlY2VpdmVyX25hbWUs
ICJ3KyIpIGFzIGhlYWRlcl9vdXRwdXQ6CiAgICAgICAgICAgICBoZWFkZXJfb3V0cHV0LndyaXRl
KHdlYmtpdC5tZXNzYWdlcy5nZW5lcmF0ZV9tZXNzYWdlc19oZWFkZXIocmVjZWl2ZXIpKQogCiAg
ICAgICAgIHdpdGggb3BlbignJXNNZXNzYWdlc1JlcGxpZXMuaCcgJSByZWNlaXZlcl9uYW1lLCAi
dysiKSBhcyByZXBseV9oZWFkZXJfb3V0cHV0OgpAQCAtNjgsOSArNjUsNiBAQCBkZWYgbWFpbihh
cmd2KToKICAgICB3aXRoIG9wZW4oJ01lc3NhZ2VOYW1lcy5jcHAnLCAidysiKSBhcyBtZXNzYWdl
X25hbWVzX2ltcGxlbWVudGF0aW9uX291dHB1dDoKICAgICAgICAgbWVzc2FnZV9uYW1lc19pbXBs
ZW1lbnRhdGlvbl9vdXRwdXQud3JpdGUod2Via2l0Lm1lc3NhZ2VzLmdlbmVyYXRlX21lc3NhZ2Vf
bmFtZXNfaW1wbGVtZW50YXRpb24ocmVjZWl2ZXJzKSkKIAotICAgIHdpdGggb3BlbignTWVzc2Fn
ZUFyZ3VtZW50RGVzY3JpcHRpb25zLmNwcCcsICJ3KyIpIGFzIG1lc3NhZ2VfZGVzY3JpcHRpb25z
X2ltcGxlbWVudGF0aW9uX291dHB1dDoKLSAgICAgICAgbWVzc2FnZV9kZXNjcmlwdGlvbnNfaW1w
bGVtZW50YXRpb25fb3V0cHV0LndyaXRlKHdlYmtpdC5tZXNzYWdlcy5nZW5lcmF0ZV9tZXNzYWdl
X2FyZ3VtZW50X2Rlc2NyaXB0aW9uX2ltcGxlbWVudGF0aW9uKHJlY2VpdmVycywgcmVjZWl2ZXJf
aGVhZGVyX2ZpbGVzKSkKLQogICAgIHJldHVybiAwCiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5f
Xyc6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBhMWRiMjZj
MDg4N2RkODkwNGFiZDE2NjE0MmQxMTQwMjEwNDE3MTk0Li44NTljYzc1NjllOTJkMTY0NTU1ZDY5
ODA5NzIyMDBiYWI5YmQ1OTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkKQEAgLTYyMyw2ICs2MjMsNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAg
ICAgICAgJ1dlYkNvcmU6OlBhc3RlYm9hcmRVUkwnOiBbJzxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4n
XSwKICAgICAgICAgJ1dlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50JzogWyc8V2ViQ29yZS9Q
YXN0ZWJvYXJkLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJl
c3VsdCc6IFsnPFdlYkNvcmUvQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaD4nXSwKKyAg
ICAgICAgJ1dlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGUnOiBbJzxXZWJDb3JlL0FwcGxlUGF5
U2Vzc2lvblBheW1lbnRSZXF1ZXN0Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQbGF0Zm9ybVRl
eHRUcmFja0RhdGEnOiBbJzxXZWJDb3JlL1BsYXRmb3JtVGV4dFRyYWNrLmg+J10sCiAgICAgICAg
ICdXZWJDb3JlOjpQbHVnaW5JbmZvJzogWyc8V2ViQ29yZS9QbHVnaW5EYXRhLmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpQbHVnaW5Mb2FkQ2xpZW50UG9saWN5JzogWyc8V2ViQ29yZS9QbHVnaW5E
YXRhLmg+J10sCkBAIC02ODYsNyArNjg3LDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6
CiAgICAgICAgICdzdHJ1Y3QgV2ViS2l0OjpXZWJVc2VyU2NyaXB0RGF0YSc6IFsnIldlYlVzZXJD
b250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oIiddLAogICAgICAgICAnc3RydWN0IFdlYktpdDo6
V2ViVXNlclN0eWxlU2hlZXREYXRhJzogWyciV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5
cGVzLmgiJ10sCiAgICAgICAgICdzdHJ1Y3QgV2ViS2l0OjpXZWJTY3JpcHRNZXNzYWdlSGFuZGxl
ckRhdGEnOiBbJyJXZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuaCInXSwKLSAgICAg
ICAgJ3dlYnJ0Yzo6V2ViS2l0RW5jb2RlZEZyYW1lSW5mbyc6IFsnPHdlYnJ0Yy9zZGsvV2ViS2l0
L1dlYktpdEVuY29kZXIuaD4nLCAnPFdlYkNvcmUvTGliV2ViUlRDRW51bVRyYWl0cy5oPiddLAor
ICAgICAgICAnd2VicnRjOjpXZWJLaXRFbmNvZGVkRnJhbWVJbmZvJzogWyc8d2VicnRjL3Nkay9X
ZWJLaXQvV2ViS2l0RW5jb2Rlci5oPiddLAogICAgICAgICAnd2VicnRjOjpXZWJLaXRSVFBGcmFn
bWVudGF0aW9uSGVhZGVyJzogWyc8d2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0RW5jb2Rlci5oPidd
LAogICAgIH0KIApAQCAtNzEzLDcgKzcxNCwxMyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBl
KToKICAgICByZXR1cm4gaGVhZGVycwogCiAKLWRlZiBjb2xsZWN0X2hlYWRlcl9jb25kaXRpb25z
X2Zvcl9yZWNlaXZlcihyZWNlaXZlciwgaGVhZGVyX2NvbmRpdGlvbnMpOgorZGVmIGdlbmVyYXRl
X21lc3NhZ2VfaGFuZGxlcihyZWNlaXZlcik6CisgICAgaGVhZGVyX2NvbmRpdGlvbnMgPSB7Cisg
ICAgICAgICciJXMiJyAlIG1lc3NhZ2VzX2hlYWRlcl9maWxlbmFtZShyZWNlaXZlcik6IFtOb25l
XSwKKyAgICAgICAgJyJIYW5kbGVNZXNzYWdlLmgiJzogW05vbmVdLAorICAgICAgICAnIkRlY29k
ZXIuaCInOiBbTm9uZV0sCisgICAgfQorCiAgICAgdHlwZV9jb25kaXRpb25zID0ge30KICAgICBm
b3IgcGFyYW1ldGVyIGluIHJlY2VpdmVyLml0ZXJwYXJhbWV0ZXJzKCk6CiAgICAgICAgIGlmIG5v
dCBwYXJhbWV0ZXIudHlwZSBpbiB0eXBlX2NvbmRpdGlvbnM6CkBAIC03NTYsMzAgKzc2Myw2IEBA
IGRlZiBjb2xsZWN0X2hlYWRlcl9jb25kaXRpb25zX2Zvcl9yZWNlaXZlcihyZWNlaXZlciwgaGVh
ZGVyX2NvbmRpdGlvbnMpOgogICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyX2NvbmRpdGlv
bnNbaGVhZGVyXSA9IFtdCiAgICAgICAgICAgICAgICAgICAgIGhlYWRlcl9jb25kaXRpb25zW2hl
YWRlcl0uYXBwZW5kKG1lc3NhZ2UuY29uZGl0aW9uKQogCi0gICAgcmV0dXJuIGhlYWRlcl9jb25k
aXRpb25zCi0KLQotZGVmIGdlbmVyYXRlX2hlYWRlcl9pbmNsdWRlc19mcm9tX2NvbmRpdGlvbnMo
aGVhZGVyX2NvbmRpdGlvbnMpOgotICAgIHJlc3VsdCA9IFtdCi0gICAgZm9yIGhlYWRlciBpbiBz
b3J0ZWQoaGVhZGVyX2NvbmRpdGlvbnMpOgotICAgICAgICBpZiBoZWFkZXJfY29uZGl0aW9uc1to
ZWFkZXJdIGFuZCBub3QgTm9uZSBpbiBoZWFkZXJfY29uZGl0aW9uc1toZWFkZXJdOgotICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnI2lmICVzXG4nICUgJyB8fCAnLmpvaW4oc29ydGVkKHNldCho
ZWFkZXJfY29uZGl0aW9uc1toZWFkZXJdKSkpKQotICAgICAgICAgICAgcmVzdWx0ICs9IFsnI2lu
Y2x1ZGUgJXNcbicgJSBoZWFkZXJdCi0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcjZW5kaWZc
bicpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXN1bHQgKz0gWycjaW5jbHVkZSAlc1xu
JyAlIGhlYWRlcl0KLSAgICByZXR1cm4gcmVzdWx0Ci0KLQotZGVmIGdlbmVyYXRlX21lc3NhZ2Vf
aGFuZGxlcihyZWNlaXZlcik6Ci0gICAgaGVhZGVyX2NvbmRpdGlvbnMgPSB7Ci0gICAgICAgICci
JXMiJyAlIG1lc3NhZ2VzX2hlYWRlcl9maWxlbmFtZShyZWNlaXZlcik6IFtOb25lXSwKLSAgICAg
ICAgJyJIYW5kbGVNZXNzYWdlLmgiJzogW05vbmVdLAotICAgICAgICAnIkRlY29kZXIuaCInOiBb
Tm9uZV0sCi0gICAgfQotCi0gICAgY29sbGVjdF9oZWFkZXJfY29uZGl0aW9uc19mb3JfcmVjZWl2
ZXIocmVjZWl2ZXIsIGhlYWRlcl9jb25kaXRpb25zKQotCiAgICAgcmVzdWx0ID0gW10KIAogICAg
IHJlc3VsdC5hcHBlbmQoX2xpY2Vuc2VfaGVhZGVyKQpAQCAtNzkwLDcgKzc3MywxMyBAQCBkZWYg
Z2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKHJlY2VpdmVyKToKICAgICAgICAgcmVzdWx0LmFwcGVu
ZCgnI2lmICVzXG5cbicgJSByZWNlaXZlci5jb25kaXRpb24pCiAKICAgICByZXN1bHQuYXBwZW5k
KCcjaW5jbHVkZSAiJXMuaCJcblxuJyAlIHJlY2VpdmVyLm5hbWUpCi0gICAgcmVzdWx0ICs9IGdl
bmVyYXRlX2hlYWRlcl9pbmNsdWRlc19mcm9tX2NvbmRpdGlvbnMoaGVhZGVyX2NvbmRpdGlvbnMp
CisgICAgZm9yIGhlYWRlciBpbiBzb3J0ZWQoaGVhZGVyX2NvbmRpdGlvbnMpOgorICAgICAgICBp
ZiBoZWFkZXJfY29uZGl0aW9uc1toZWFkZXJdIGFuZCBub3QgTm9uZSBpbiBoZWFkZXJfY29uZGl0
aW9uc1toZWFkZXJdOgorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnI2lmICVzXG4nICUgJyB8
fCAnLmpvaW4oc29ydGVkKHNldChoZWFkZXJfY29uZGl0aW9uc1toZWFkZXJdKSkpKQorICAgICAg
ICAgICAgcmVzdWx0ICs9IFsnI2luY2x1ZGUgJXNcbicgJSBoZWFkZXJdCisgICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKCcjZW5kaWZcbicpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXN1
bHQgKz0gWycjaW5jbHVkZSAlc1xuJyAlIGhlYWRlcl0KICAgICByZXN1bHQuYXBwZW5kKCdcbicp
CiAKICAgICBkZWxheWVkX29yX2FzeW5jX21lc3NhZ2VzID0gW10KQEAgLTEwNTUsMTMwICsxMDQ0
LDMgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfbmFtZXNfaW1wbGVtZW50YXRpb24ocmVjZWl2ZXJz
KToKICAgICByZXN1bHQuYXBwZW5kKCdcbicpCiAgICAgcmVzdWx0LmFwcGVuZCgnfSAvLyBuYW1l
c3BhY2UgSVBDXG4nKQogICAgIHJldHVybiAnJy5qb2luKHJlc3VsdCkKLQotCi1kZWYgZ2VuZXJh
dGVfanNfdmFsdWVfY29udmVyc2lvbl9mdW5jdGlvbihyZXN1bHQsIHJlY2VpdmVycywgZnVuY3Rp
b25fbmFtZSwgYXJndW1lbnRfdHlwZSwgcHJlZGljYXRlPWxhbWJkYSBtZXNzYWdlOiBUcnVlKToK
LSAgICByZXN1bHQuYXBwZW5kKCdPcHRpb25hbDxKU0M6OkpTVmFsdWU+ICVzKEpTQzo6SlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTWVzc2FnZU5hbWUgbmFtZSwgRGVjb2RlciYgZGVjb2Rl
cilcbicgJSBmdW5jdGlvbl9uYW1lKQotICAgIHJlc3VsdC5hcHBlbmQoJ3tcbicpCi0gICAgcmVz
dWx0LmFwcGVuZCgnICAgIHN3aXRjaCAobmFtZSkge1xuJykKLSAgICBmb3IgcmVjZWl2ZXIgaW4g
cmVjZWl2ZXJzOgotICAgICAgICBpZiByZWNlaXZlci5jb25kaXRpb246Ci0gICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKCcjaWYgJXNcbicgJSByZWNlaXZlci5jb25kaXRpb24pCi0gICAgICAgIHBy
ZXZpc2lvbl9tZXNzYWdlX2NvbmRpdGlvbiA9IE5vbmUKLSAgICAgICAgZm9yIG1lc3NhZ2UgaW4g
cmVjZWl2ZXIubWVzc2FnZXM6Ci0gICAgICAgICAgICBpZiBub3QgcHJlZGljYXRlKG1lc3NhZ2Up
OgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBpZiBwcmV2aXNpb25fbWVz
c2FnZV9jb25kaXRpb24gIT0gbWVzc2FnZS5jb25kaXRpb246Ci0gICAgICAgICAgICAgICAgaWYg
cHJldmlzaW9uX21lc3NhZ2VfY29uZGl0aW9uOgotICAgICAgICAgICAgICAgICAgICByZXN1bHQu
YXBwZW5kKCcjZW5kaWZcbicpCi0gICAgICAgICAgICAgICAgaWYgbWVzc2FnZS5jb25kaXRpb246
Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyNpZiAlc1xuJyAlIG1lc3NhZ2Uu
Y29uZGl0aW9uKQotICAgICAgICAgICAgcHJldmlzaW9uX21lc3NhZ2VfY29uZGl0aW9uID0gbWVz
c2FnZS5jb25kaXRpb24KLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBjYXNlIE1lc3Nh
Z2VOYW1lOjolc18lczpcbicgJSAocmVjZWl2ZXIubmFtZSwgbWVzc2FnZS5uYW1lKSkKLSAgICAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJn
dW1lbnRzPE1lc3NhZ2VzOjolczo6JXM6OiVzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpO1xuJyAl
IChyZWNlaXZlci5uYW1lLCBtZXNzYWdlLm5hbWUsIGFyZ3VtZW50X3R5cGUpKQotICAgICAgICBp
ZiBwcmV2aXNpb25fbWVzc2FnZV9jb25kaXRpb246Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5k
KCcjZW5kaWZcbicpCi0gICAgICAgIGlmIHJlY2VpdmVyLmNvbmRpdGlvbjoKLSAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyNlbmRpZlxuJykKLSAgICByZXN1bHQuYXBwZW5kKCcgICAgZGVmYXVs
dDpcbicpCi0gICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICBicmVhaztcbicpCi0gICAgcmVzdWx0
LmFwcGVuZCgnICAgIH1cbicpCi0gICAgcmVzdWx0LmFwcGVuZCgnICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7XG4nKQotICAgIHJlc3VsdC5hcHBlbmQoJ31cbicpCi0KLQotZGVmIGdlbmVyYXRlX2pz
X2FyZ3VtZW50X2Rlc2NyaXB0aW9ucyhyZWNlaXZlcnMsIGZ1bmN0aW9uX25hbWUsIGFyZ3VtZW50
c19mcm9tX21lc3NhZ2UpOgotICAgIHJlc3VsdCA9IFtdCi0gICAgcmVzdWx0LmFwcGVuZCgnT3B0
aW9uYWw8VmVjdG9yPEFyZ3VtZW50RGVzY3JpcHRpb24+PiAlcyhNZXNzYWdlTmFtZSBuYW1lKVxu
JyAlIGZ1bmN0aW9uX25hbWUpCi0gICAgcmVzdWx0LmFwcGVuZCgne1xuJykKLSAgICByZXN1bHQu
YXBwZW5kKCcgICAgc3dpdGNoIChuYW1lKSB7XG4nKQotICAgIGZvciByZWNlaXZlciBpbiByZWNl
aXZlcnM6Ci0gICAgICAgIGlmIHJlY2VpdmVyLmNvbmRpdGlvbjoKLSAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJyNpZiAlc1xuJyAlIHJlY2VpdmVyLmNvbmRpdGlvbikKLSAgICAgICAgcHJldmlz
aW9uX21lc3NhZ2VfY29uZGl0aW9uID0gTm9uZQotICAgICAgICBmb3IgbWVzc2FnZSBpbiByZWNl
aXZlci5tZXNzYWdlczoKLSAgICAgICAgICAgIGFyZ3VtZW50X2xpc3QgPSBhcmd1bWVudHNfZnJv
bV9tZXNzYWdlKG1lc3NhZ2UpCi0gICAgICAgICAgICBpZiBhcmd1bWVudF9saXN0IGlzIE5vbmU6
Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGlmIHByZXZpc2lvbl9tZXNz
YWdlX2NvbmRpdGlvbiAhPSBtZXNzYWdlLmNvbmRpdGlvbjoKLSAgICAgICAgICAgICAgICBpZiBw
cmV2aXNpb25fbWVzc2FnZV9jb25kaXRpb246Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5h
cHBlbmQoJyNlbmRpZlxuJykKLSAgICAgICAgICAgICAgICBpZiBtZXNzYWdlLmNvbmRpdGlvbjoK
LSAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnI2lmICVzXG4nICUgbWVzc2FnZS5j
b25kaXRpb24pCi0gICAgICAgICAgICBwcmV2aXNpb25fbWVzc2FnZV9jb25kaXRpb24gPSBtZXNz
YWdlLmNvbmRpdGlvbgotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGNhc2UgTWVzc2Fn
ZU5hbWU6OiVzXyVzOlxuJyAlIChyZWNlaXZlci5uYW1lLCBtZXNzYWdlLm5hbWUpKQotCi0gICAg
ICAgICAgICBpZiBub3QgbGVuKGFyZ3VtZW50X2xpc3QpOgotICAgICAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJyAgICAgICAgcmV0dXJuIFZlY3RvcjxBcmd1bWVudERlc2NyaXB0aW9uPiB7IH07
XG4nKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQoJyAgICAgICAgcmV0dXJuIFZlY3RvcjxBcmd1bWVudERlc2NyaXB0aW9uPiB7XG4nKQotICAg
ICAgICAgICAgZm9yIGFyZ3VtZW50IGluIGFyZ3VtZW50X2xpc3Q6Ci0gICAgICAgICAgICAgICAg
YXJndW1lbnRfdHlwZSA9IGFyZ3VtZW50LnR5cGUKLSAgICAgICAgICAgICAgICBlbnVtX3R5cGUg
PSBOb25lCi0gICAgICAgICAgICAgICAgaXNfb3B0aW9uYWwgPSBGYWxzZQotICAgICAgICAgICAg
ICAgIGlmIGFyZ3VtZW50LmtpbmQuc3RhcnRzd2l0aCgnZW51bTonKToKLSAgICAgICAgICAgICAg
ICAgICAgZW51bV90eXBlID0gJyIlcyInICUgYXJndW1lbnRfdHlwZQotICAgICAgICAgICAgICAg
ICAgICBhcmd1bWVudF90eXBlID0gYXJndW1lbnQua2luZFs1Ol0KLSAgICAgICAgICAgICAgICBp
ZiBhcmd1bWVudF90eXBlLnN0YXJ0c3dpdGgoJ09wdGlvbmFsPCcpIGFuZCBhcmd1bWVudF90eXBl
LmVuZHN3aXRoKCc+Jyk6Ci0gICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50X3R5cGUgPSBhcmd1
bWVudF90eXBlWzk6LTFdCi0gICAgICAgICAgICAgICAgICAgIGlzX29wdGlvbmFsID0gVHJ1ZQot
ICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgICAgIHsiJXMiLCAiJXMiLCAl
cywgJXN9LFxuJyAlIChhcmd1bWVudC5uYW1lLCBhcmd1bWVudF90eXBlLCBlbnVtX3R5cGUgb3Ig
J251bGxwdHInLCAndHJ1ZScgaWYgaXNfb3B0aW9uYWwgZWxzZSAnZmFsc2UnKSkKLSAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgfTtcbicpCi0gICAgICAgIGlmIHByZXZpc2lvbl9t
ZXNzYWdlX2NvbmRpdGlvbjoKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyNlbmRpZlxuJykK
LSAgICAgICAgaWYgcmVjZWl2ZXIuY29uZGl0aW9uOgotICAgICAgICAgICAgcmVzdWx0LmFwcGVu
ZCgnI2VuZGlmXG4nKQotICAgIHJlc3VsdC5hcHBlbmQoJyAgICBkZWZhdWx0OlxuJykKLSAgICBy
ZXN1bHQuYXBwZW5kKCcgICAgICAgIGJyZWFrO1xuJykKLSAgICByZXN1bHQuYXBwZW5kKCcgICAg
fVxuJykKLSAgICByZXN1bHQuYXBwZW5kKCcgICAgcmV0dXJuIFdURjo6bnVsbG9wdDtcbicpCi0g
ICAgcmVzdWx0LmFwcGVuZCgnfVxuJykKLSAgICByZXR1cm4gcmVzdWx0Ci0KLQotZGVmIGdlbmVy
YXRlX21lc3NhZ2VfYXJndW1lbnRfZGVzY3JpcHRpb25faW1wbGVtZW50YXRpb24ocmVjZWl2ZXJz
LCByZWNlaXZlcl9oZWFkZXJzKToKLSAgICBoZWFkZXJfY29uZGl0aW9ucyA9IHsKLSAgICAgICAg
JyJKU0lQQ0JpbmRpbmcuaCInOiBbTm9uZV0KLSAgICB9Ci0gICAgZm9yIHJlY2VpdmVyIGluIHJl
Y2VpdmVyczoKLSAgICAgICAgaGVhZGVyX2NvbmRpdGlvbnNbJyIlcyInICUgbWVzc2FnZXNfaGVh
ZGVyX2ZpbGVuYW1lKHJlY2VpdmVyKV0gPSBbTm9uZV0KLSAgICAgICAgY29sbGVjdF9oZWFkZXJf
Y29uZGl0aW9uc19mb3JfcmVjZWl2ZXIocmVjZWl2ZXIsIGhlYWRlcl9jb25kaXRpb25zKQotCi0g
ICAgcmVzdWx0ID0gW10KLSAgICByZXN1bHQuYXBwZW5kKF9saWNlbnNlX2hlYWRlcikKLSAgICBy
ZXN1bHQuYXBwZW5kKCcjaW5jbHVkZSAiY29uZmlnLmgiXG4nKQotICAgIHJlc3VsdC5hcHBlbmQo
JyNpbmNsdWRlICJNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuaCJcbicpCi0gICAgcmVzdWx0
LmFwcGVuZCgnXG4nKQotICAgIHJlc3VsdC5hcHBlbmQoJyNpZiBFTkFCTEUoSVBDX1RFU1RJTkdf
QVBJKVxuJykKLSAgICByZXN1bHQuYXBwZW5kKCdcbicpCi0gICAgcmVzdWx0ICs9IGdlbmVyYXRl
X2hlYWRlcl9pbmNsdWRlc19mcm9tX2NvbmRpdGlvbnMoaGVhZGVyX2NvbmRpdGlvbnMpCi0gICAg
cmVzdWx0LmFwcGVuZCgnXG4nKQotCi0gICAgZm9yIGhlYWRlciBpbiByZWNlaXZlcl9oZWFkZXJz
OgotICAgICAgICByZXN1bHQuYXBwZW5kKCcjaW5jbHVkZSAiJXMiXG4nICUgKGhlYWRlcikpCi0K
LSAgICByZXN1bHQuYXBwZW5kKCdcbicpCi0gICAgcmVzdWx0LmFwcGVuZCgnbmFtZXNwYWNlIElQ
QyB7XG4nKQotICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKLQotICAgIGdlbmVyYXRlX2pzX3ZhbHVl
X2NvbnZlcnNpb25fZnVuY3Rpb24ocmVzdWx0LCByZWNlaXZlcnMsICdqc1ZhbHVlRm9yQXJndW1l
bnRzJywgJ0FyZ3VtZW50cycpCi0KLSAgICByZXN1bHQuYXBwZW5kKCdcbicpCi0KLSAgICBnZW5l
cmF0ZV9qc192YWx1ZV9jb252ZXJzaW9uX2Z1bmN0aW9uKHJlc3VsdCwgcmVjZWl2ZXJzLCAnanNW
YWx1ZUZvclJlcGx5QXJndW1lbnRzJywgJ1JlcGx5QXJndW1lbnRzJywgbGFtYmRhIG1lc3NhZ2U6
IG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyBpcyBub3QgTm9uZSBhbmQgKG1lc3NhZ2UuaGFzX2F0
dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJVVEUpIG9yIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShB
U1lOQ19BVFRSSUJVVEUpKSkKLQotICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKLQotICAgIHJlc3Vs
dCArPSBnZW5lcmF0ZV9qc19hcmd1bWVudF9kZXNjcmlwdGlvbnMocmVjZWl2ZXJzLCAnbWVzc2Fn
ZUFyZ3VtZW50RGVzY3JpcHRpb25zJywgbGFtYmRhIG1lc3NhZ2U6IG1lc3NhZ2UucGFyYW1ldGVy
cykKLQotICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKLQotICAgIHJlc3VsdCArPSBnZW5lcmF0ZV9q
c19hcmd1bWVudF9kZXNjcmlwdGlvbnMocmVjZWl2ZXJzLCAnbWVzc2FnZVJlcGx5QXJndW1lbnRE
ZXNjcmlwdGlvbnMnLCBsYW1iZGEgbWVzc2FnZTogbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzIGlm
IG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJVVEUpIG9yIG1lc3NhZ2Uu
aGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpIGVsc2UgTm9uZSkKLQotICAgIHJlc3VsdC5h
cHBlbmQoJ1xuJykKLQotICAgIHJlc3VsdC5hcHBlbmQoJ30gLy8gbmFtZXNwYWNlIFdlYktpdFxu
JykKLSAgICByZXN1bHQuYXBwZW5kKCdcbicpCi0gICAgcmVzdWx0LmFwcGVuZCgnI2VuZGlmXG4n
KQotICAgIHJldHVybiAnJy5qb2luKHJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FwcGxlUGF5L0FwcGxlUGF5UGF5bWVudFNldHVwRmVhdHVyZXNXZWJLaXQuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L0FwcGxlUGF5UGF5bWVudFNldHVwRmVhdHVyZXNX
ZWJLaXQuaAppbmRleCAyOWM1YjkyZWU0ODFhMDgzMDM3NDM5OTBkYzQ5MmRkYzI1OTM5ZmE5Li5i
OGE5NzQwMmZlNmMxMzRiNzBiZDAwYzAwYWU5YjE1MGY2NWM1N2YyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9BcHBsZVBheVBheW1lbnRTZXR1cEZlYXR1cmVzV2Vi
S2l0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvQXBwbGVQYXlQYXltZW50
U2V0dXBGZWF0dXJlc1dlYktpdC5oCkBAIC0yNyw3ICsyNyw2IEBACiAKICNpZiBFTkFCTEUoQVBQ
TEVfUEFZKQogCi1PQkpDX0NMQVNTIE5TQXJyYXk7CiBPQkpDX0NMQVNTIFBLUGF5bWVudFNldHVw
RmVhdHVyZTsKIAogI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGVQYXlTZXR1cEZlYXR1cmVXZWJDb3Jl
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMmM4YWEyM2JhYmY5NjRmNDkwMTMxMDcxMmE1
M2Q2NmI5ZGU1MGZkOC4uOTU0NWJiOWY3ZWEyNTIzN2FhNTVlOTY5MWQ2MjdlMWFlZjJiNjczYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNjU4LDcgKzY1OCw2IEBAIEdQVVByb2Nlc3NQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAKIEdQVVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwCiBMaWJX
ZWJSVENDb2RlY3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIExpYldlYlJUQ0NvZGVjc01lc3Nh
Z2VSZWNlaXZlci5jcHAKLU1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHAgQG5vLXVuaWZ5
CiBNZXNzYWdlTmFtZXMuY3BwCiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDcw
NTVjNjEzYTAxYjE0NjFiNDFmYTViOTJiMzA5M2MyOWY4YzI5NDUuLjhjYWNjNTE2MTJjMTZiN2Jl
M2Y4MmE4MTFhYTQ0MTgwMWFhNzFkZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcApAQCAtODgwLDExICs4ODAsNiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94
eTo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
SVBDOgogCiAgICAgV2ViUHJvY2Vzc1Bvb2w6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShtZXNz
YWdlTmFtZSk7CiAKLSNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQotICAgIGlmIChwcm9jZXNz
UG9vbCgpLmRlZmF1bHRQYWdlR3JvdXAoKS5wcmVmZXJlbmNlcygpLnN0b3JlKCkuZ2V0Qm9vbFZh
bHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjppcGNUZXN0aW5nQVBJRW5hYmxlZEtleSgpKSkK
LSAgICAgICAgcmV0dXJuOwotI2VuZGlmCi0KICAgICAvLyBUZXJtaW5hdGUgdGhlIFdlYkNvbnRl
bnQgcHJvY2Vzcy4KICAgICB0ZXJtaW5hdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTU1ZGU5MWRjY2EwMjUzODI4YzEwZWE1
ZDgzYTY0ZGU5NjUyMjAwMi4uZDU2NzUyOTI3MDg2N2YzYzUwN2YwMzlkY2ZlZjhhZjFlN2FjMGY1
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xNDIzLDkgKzE0MjMsNiBAQAogCQk5QjEyMjlDRDIzRkYyNUYyMDA4Q0E3NTEgLyogUmVt
b3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDlCMTIyOUNCMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlci5oICovOyB9OwogCQk5QjEyMjlDRTIzRkYyNUYyMDA4Q0E3NTEg
LyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIxMjI5Q0MyM0ZGMjVGMjAwOENBNzUxIC8qIFJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCAqLzsgfTsKIAkJOUIxMjI5RDIyM0ZGMkJD
QzAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjEyMjlEMDIzRkYyQTVFMDA4
Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCAqLzsgfTsKLQkJOUI0
NzkwOEQyNTMxNEQ4MzAwRUMxMUFCIC8qIE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI0NzkwOEMyNTMx
NEQ4MzAwRUMxMUFCIC8qIE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5oICovOyB9OwotCQk5
QjQ3OTA4RjI1MzE1MUNDMDBFQzExQUIgLyogSlNJUENCaW5kaW5nLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjQ3OTA4RTI1MzE1MUNDMDBFQzExQUIg
LyogSlNJUENCaW5kaW5nLmggKi87IH07Ci0JCTlCNDc5MDkxMjUzMTU2MzIwMEVDMTFBQiAvKiBN
ZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOUI0NzkwOTAyNTMxNTYzMjAwRUMxMUFCIC8qIE1lc3NhZ2VB
cmd1bWVudERlc2NyaXB0aW9ucy5jcHAgKi87IH07CiAJCTlCNTQ5OUFEMjM2MkE2RjkwMERGOEJB
NSAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI1NDk5QUMyMzYyQTZGNjAwREY4QkE1IC8q
IF9XS1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUI1NDk5QjIyMzYyQTdFQzAwREY4QkE1IC8q
IF9XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjU0OTlCMDIzNjJBN0VDMDBERjhCQTUgLyogX1dL
VGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjVCRUMyNjI0MDBGNEE5MDA3MEM2RUYgLyogV2Vi
TWVkaWFTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOUI1QkVDMjQyNDAwRjRBOTAwNzBDNkVGIC8qIFdlYk1lZGlhU3RyYXRlZ3kuaCAqLzsg
fTsKQEAgLTQ1MjgsOSArNDUyNSw2IEBACiAJCTlCMTIyOUNDMjNGRjI1RjIwMDhDQTc1MSAvKiBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTlCMTIyOUNGMjNGRjI4MTQwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIxMjI5RDAyM0ZGMkE1RTAw
OENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTlCNDc5MDhDMjUzMTREODMwMEVDMTFBQiAvKiBNZXNzYWdlQXJndW1lbnRE
ZXNjcmlwdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25z
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTlCNDc5MDhFMjUzMTUxQ0MwMEVDMTFB
QiAvKiBKU0lQQ0JpbmRpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJUENCaW5kaW5nLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTlCNDc5MDkwMjUzMTU2MzIwMEVDMTFBQiAvKiBNZXNz
YWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmNwcDsgcGF0aCA9IE1lc3NhZ2VB
cmd1bWVudERlc2NyaXB0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlC
NTQ5OUFDMjM2MkE2RjYwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjU0OTlBRTIzNjJBN0E3MDBERjhCQTUgLyog
X1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOUI1NDk5QjAyMzYyQTdFQzAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVsYXRp
b25FeGNsdXNpb25SdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25FeGNs
dXNpb25SdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NDY0LDggKzY0NTgs
NiBAQAogCQkJCTQxNTFFNUMzMUZCQjkwQTkwMEU0N0UyRCAvKiBGb3JtRGF0YVJlZmVyZW5jZS5o
ICovLAogCQkJCUMwQ0U3MkFDMTI0N0U3OEQwMEJDMEVDNCAvKiBIYW5kbGVNZXNzYWdlLmggKi8s
CiAJCQkJMUM5QUYzNjEyNDEzNEQyMzAwRDNFQzAyIC8qIEltYWdlRGF0YVJlZmVyZW5jZS5oICov
LAotCQkJCTlCNDc5MDhFMjUzMTUxQ0MwMEVDMTFBQiAvKiBKU0lQQ0JpbmRpbmcuaCAqLywKLQkJ
CQk5QjQ3OTA4QzI1MzE0RDgzMDBFQzExQUIgLyogTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25z
LmggKi8sCiAJCQkJMUFDNEM4MjgxNkI4NzZBOTAwNjlEQ0NEIC8qIE1lc3NhZ2VGbGFncy5oICov
LAogCQkJCTFBM0VFRDExMTYxQTUzRDYwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXIuaCAqLywK
IAkJCQkxQTNFRUQwQzE2MUE1MzUzMDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmNwcCAq
LywKQEAgLTEwMDg5LDcgKzEwMDgxLDYgQEAKIAkJCQkwN0UxOUVGODIzRDQwMUYwMDA5NEZGQjQg
LyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkw
N0UxOUVGOTIzRDQwMUYwMDA5NEZGQjQgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2Fn
ZXMuaCAqLywKIAkJCQkwN0UxOUVGQTIzRDQwMUYwMDA5NEZGQjQgLyogTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmggKi8sCi0JCQkJOUI0NzkwOTAyNTMxNTYzMjAwRUMx
MUFCIC8qIE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHAgKi8sCiAJCQkJNTFERDlGMjYx
NjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLywKIAkJCQk1MUREOUYyNzE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oICovLAogCQkJCTUyRjA2MEREMTY1NDMxNzUw
MEYzMjgxQiAvKiBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8sCkBAIC0xMDk0Myw3ICsxMDkzNCw2IEBACiAJCQkJQTVFMzkxRkQyMTgzQzFGODAwQzhG
QjMxIC8qIEluc3BlY3RvclRhcmdldFByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUJDRTVE
RjFDNTA3NjZBMDBDREUzRkEgLyogSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTJENEQyQzgxMURGNjBCRjMwMDJFQjEwQyAvKiBJbnRlcmFjdGlv
bkluZm9ybWF0aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOUI0NzkwOEYyNTMxNTFD
QzAwRUMxMUFCIC8qIEpTSVBDQmluZGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFNDlBNDkx
MUZGQThDRTAwNDhCNDY0IC8qIEpTTlBNZXRob2QuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTQ5
ODc4MTFGRjdGQUEwMDQ4QjQ2NCAvKiBKU05QT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlD
MTY2M0U1QjI0QUVBQTJGMDBDNkEzQjIgLyogTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0
YW50cy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDk4MCw3ICsxMDk3MCw2IEBACiAJCQkJMDdFMTlF
RkMyM0Q0MDFGMTAwOTRGRkI0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwN0UxOUVGRDIzRDQwMUYxMDA5NEZGQjQgLyogTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTkz
M0RFRjE5NjVFQjMxMDA4QUMzRUEgLyogTWVudVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJOUI0NzkwOEQyNTMxNEQ4MzAwRUMxMUFCIC8qIE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9u
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDNEM4MjkxNkI4NzZBOTAwNjlEQ0NEIC8qIE1lc3Nh
Z2VGbGFncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEzRUVEMTIxNjFBNTNENjAwQUVCNEY1IC8q
IE1lc3NhZ2VSZWNlaXZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEzRUVEMEYxNjFBNTM1NDAw
QUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlck1hcC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjg1MSw3
ICsxMjg0MCw2IEBACiAJCQkJNDQ5RDkwREEyMUZEQzMwQjAwRjY3N0MwIC8qIExvY2FsQXV0aGVu
dGljYXRpb25Tb2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzc5MjEyQjZBNjEw
MEY0OTNGRCAvKiBMb2dnaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3RTE5RUZCMjNENDAx
RjEwMDk0RkZCNCAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJOUI0NzkwOTEyNTMxNTYzMjAwRUMxMUFCIC8qIE1lc3NhZ2VB
cmd1bWVudERlc2NyaXB0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc4MTIxMkI2
QTcxMDBGNDkzRkQgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTJEOTJBNzgyMjEyQjZBNzEwMEY0OTNGRCAvKiBNZXNzYWdlU2VuZGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTJEOTJBNzdBMjEyQjZBNjEwMEY0OTNGRCAvKiBNb2R1bGUuY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENU
ZXN0aW5nQVBJLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rlc3Rp
bmdBUEkuY3BwCmluZGV4IGM1YWNmNGVkZDVhNDQ5MzdmYWYwYWE0ODBmOWQ4N2MyYTk4MzY5ZjUu
Ljk2NDQ4ZDE0NjRhYjQxMjg1NzhmZmVhOThiMWFiMGZjOGI3NDVjOTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwCkBAIC0zMSw3
ICszMSw3IEBACiAjaW5jbHVkZSAiRW5jb2Rlci5oIgogI2luY2x1ZGUgIkZyYW1lSW5mb0RhdGEu
aCIKICNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIk1lc3NhZ2VB
cmd1bWVudERlc2NyaXB0aW9ucy5oIgorI2luY2x1ZGUgIk1lc3NhZ2VOYW1lcy5oIgogI2luY2x1
ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCkBAIC04Myw5ICs4Myw3IEBAIHByaXZh
dGU6CiAKICAgICBzdGF0aWMgSlNWYWx1ZVJlZiB2aXNpdGVkTGlua1N0b3JlSUQoSlNDb250ZXh0
UmVmLCBKU09iamVjdFJlZiwgSlNTdHJpbmdSZWYsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CiAg
ICAgc3RhdGljIEpTVmFsdWVSZWYgd2ViUGFnZVByb3h5SUQoSlNDb250ZXh0UmVmLCBKU09iamVj
dFJlZiwgSlNTdHJpbmdSZWYsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7Ci0gICAgc3RhdGljIEpT
VmFsdWVSZWYgc2Vzc2lvbklEKEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYsIEpTU3RyaW5nUmVm
LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOwotICAgIHN0YXRpYyBKU1ZhbHVlUmVmIHBhZ2VJRChK
U0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmLCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZiogZXhjZXB0
aW9uKTsKLSAgICBzdGF0aWMgSlNWYWx1ZVJlZiBmcmFtZUlEKEpTQ29udGV4dFJlZiwgSlNPYmpl
Y3RSZWYsIEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOworICAgIHN0YXRpYyBK
U1ZhbHVlUmVmIGZyYW1lSWRlbnRpZmllcihKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmLCBKU1N0
cmluZ1JlZiwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKICAgICBzdGF0aWMgSlNWYWx1ZVJlZiBy
ZXRyaWV2ZUlEKEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uLCBjb25zdCBXVEY6OkZ1bmN0aW9uPHVpbnQ2NF90KEpTSVBDJik+Jik7CiAK
ICAgICBzdGF0aWMgSlNWYWx1ZVJlZiBtZXNzYWdlcyhKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVm
LCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKQEAgLTE0NiwxMCArMTQ0LDgg
QEAgY29uc3QgSlNTdGF0aWNWYWx1ZSogSlNJUEM6OnN0YXRpY1ZhbHVlcygpCiB7CiAgICAgc3Rh
dGljIGNvbnN0IEpTU3RhdGljVmFsdWUgdmFsdWVzW10gPSB7CiAgICAgICAgIHsgInZpc2l0ZWRM
aW5rU3RvcmVJRCIsIHZpc2l0ZWRMaW5rU3RvcmVJRCwgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIHwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB9LAotICAgICAgICB7ICJm
cmFtZUlEIiwgZnJhbWVJRCwgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB9LAotICAgICAgICB7ICJwYWdlSUQiLCBwYWdlSUQs
IDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfSwKLSAgICAgICAgeyAic2Vzc2lvbklEIiwgc2Vzc2lvbklELCAwLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IH0s
CiAgICAgICAgIHsgIndlYlBhZ2VQcm94eUlEIiwgd2ViUGFnZVByb3h5SUQsIDAsIGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfSwK
KyAgICAgICAgeyAiZnJhbWVJZGVudGlmaWVyIiwgZnJhbWVJZGVudGlmaWVyLCAwLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IH0s
CiAgICAgICAgIHsgIm1lc3NhZ2VzIiwgbWVzc2FnZXMsIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfSwKICAgICAgICAgeyAw
LCAwLCAwLCAwIH0KICAgICB9OwpAQCAtMjQxLDM5ICsyMzcsMjYgQEAgc3RhdGljIEpTVmFsdWVS
ZWYgY3JlYXRlVHlwZUVycm9yKEpTQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpCiAgICAgcmV0dXJuIHRvUmVmKEpTQzo6Y3JlYXRlVHlwZUVycm9yKHRvSlMoY29udGV4
dCksIG1lc3NhZ2UpKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgUG9pbnRUeXBlPiBib29sIGVu
Y29kZVBvaW50VHlwZShJUEM6OkVuY29kZXImIGVuY29kZXIsIEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDOjpKU09iamVjdCoganNPYmplY3QsIEpTQzo6Q2F0Y2hTY29wZSYg
c2NvcGUpCit0ZW1wbGF0ZTx0eXBlbmFtZSBSZWN0VHlwZT4gYm9vbCBlbmNvZGVSZWN0VHlwZShJ
UEM6OkVuY29kZXImIGVuY29kZXIsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNDOjpKU09iamVjdCoganNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBqc1ggPSBqc09iamVjdC0+Z2V0KGdsb2JhbE9iamVjdCwgSlNDOjpJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAieCJfcykpOwotICAgIGlmIChzY29wZS5leGNlcHRp
b24oKSB8fCAhanNYLmlzTnVtYmVyKCkpCisgICAgaWYgKCFqc1guaXNOdW1iZXIoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIGF1dG8ganNZID0ganNPYmplY3QtPmdldChnbG9iYWxPYmpl
Y3QsIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInkiX3MpKTsKLSAgICBpZiAoc2Nv
cGUuZXhjZXB0aW9uKCkgfHwgIWpzWS5pc051bWJlcigpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgZW5jb2RlciA8PCBQb2ludFR5cGUoanNYLmFzTnVtYmVyKCksIGpzWS5hc051bWJlcigp
KTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgUmVjdFR5cGU+IGJv
b2wgZW5jb2RlUmVjdFR5cGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNPYmplY3QqIGpzT2JqZWN0LCBKU0M6OkNhdGNoU2Nv
cGUmIHNjb3BlKQotewotICAgIGF1dG8mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGF1
dG8ganNYID0ganNPYmplY3QtPmdldChnbG9iYWxPYmplY3QsIEpTQzo6SWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgIngiX3MpKTsKLSAgICBpZiAoc2NvcGUuZXhjZXB0aW9uKCkgfHwgIWpzWC5p
c051bWJlcigpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgYXV0byBqc1kgPSBqc09iamVj
dC0+Z2V0KGdsb2JhbE9iamVjdCwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAieSJf
cykpOwotICAgIGlmIChzY29wZS5leGNlcHRpb24oKSB8fCAhanNZLmlzTnVtYmVyKCkpCisgICAg
aWYgKCFqc1kuaXNOdW1iZXIoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGF1dG8ganNX
aWR0aCA9IGpzT2JqZWN0LT5nZXQoZ2xvYmFsT2JqZWN0LCBKU0M6OklkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sICJ3aWR0aCJfcykpOwotICAgIGlmIChzY29wZS5leGNlcHRpb24oKSB8fCAhanNX
aWR0aC5pc051bWJlcigpKQorICAgIGlmICghanNXaWR0aC5pc051bWJlcigpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgYXV0byBqc0hlaWdodCA9IGpzT2JqZWN0LT5nZXQoZ2xvYmFsT2Jq
ZWN0LCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJoZWlnaHQiX3MpKTsKLSAgICBp
ZiAoc2NvcGUuZXhjZXB0aW9uKCkgfHwgIWpzSGVpZ2h0LmlzTnVtYmVyKCkpCisgICAgaWYgKCFq
c0hlaWdodC5pc051bWJlcigpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgZW5jb2RlciA8
PCBSZWN0VHlwZShqc1guYXNOdW1iZXIoKSwganNZLmFzTnVtYmVyKCksIGpzV2lkdGguYXNOdW1i
ZXIoKSwganNIZWlnaHQuYXNOdW1iZXIoKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXRlbXBs
YXRlPHR5cGVuYW1lIEludGVncmFsVHlwZT4gYm9vbCBlbmNvZGVOdW1lcmljVHlwZShJUEM6OkVu
Y29kZXImIGVuY29kZXIsIEpTQzo6SlNWYWx1ZSBqc1ZhbHVlKQordGVtcGxhdGU8dHlwZW5hbWUg
SW50ZWdyYWxUeXBlPiBib29sIGVuY29kZUludGVncmFsVHlwZShJUEM6OkVuY29kZXImIGVuY29k
ZXIsIEpTQzo6SlNWYWx1ZSBqc1ZhbHVlKQogewogICAgIGlmIChqc1ZhbHVlLmlzQmlnSW50KCkp
IHsKICAgICAgICAgLy8gRklYTUU6IFN1cHBvcnQgbmVnYXRpdmUgQmlnSW50LgpAQCAtMzU3LDI0
ICszNDAsOCBAQCBzdGF0aWMgYm9vbCBlbmNvZGVBcmd1bWVudChJUEM6OkVuY29kZXImIGVuY29k
ZXIsIEpTSVBDJiBqc0lQQywgSlNDb250ZXh0UmVmIGNvbgogICAgIGlmIChzY29wZS5leGNlcHRp
b24oKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKHR5cGUgPT0gIkludFBvaW50
IikgewotICAgICAgICBpZiAoIWVuY29kZVBvaW50VHlwZTxXZWJDb3JlOjpJbnRQb2ludD4oZW5j
b2RlciwgZ2xvYmFsT2JqZWN0LCBqc09iamVjdCwgc2NvcGUpKSB7Ci0gICAgICAgICAgICAqZXhj
ZXB0aW9uID0gY3JlYXRlVHlwZUVycm9yKGNvbnRleHQsICJGYWlsZWQgdG8gY29udmVydCBJbnRQ
b2ludCJfcyk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgaWYgKHR5cGUgPT0gIkZsb2F0UG9pbnQiKSB7Ci0g
ICAgICAgIGlmICghZW5jb2RlUG9pbnRUeXBlPFdlYkNvcmU6OkludFBvaW50PihlbmNvZGVyLCBn
bG9iYWxPYmplY3QsIGpzT2JqZWN0LCBzY29wZSkpIHsKLSAgICAgICAgICAgICpleGNlcHRpb24g
PSBjcmVhdGVUeXBlRXJyb3IoY29udGV4dCwgIkZhaWxlZCB0byBjb252ZXJ0IEZsb2F0UG9pbnQi
X3MpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIHJldHVy
biB0cnVlOwotICAgIH0KLQogICAgIGlmICh0eXBlID09ICJJbnRSZWN0IikgewotICAgICAgICBp
ZiAoIWVuY29kZVJlY3RUeXBlPFdlYkNvcmU6OkludFJlY3Q+KGVuY29kZXIsIGdsb2JhbE9iamVj
dCwganNPYmplY3QsIHNjb3BlKSkgeworICAgICAgICBpZiAoIWVuY29kZVJlY3RUeXBlPFdlYkNv
cmU6OkludFJlY3Q+KGVuY29kZXIsIGdsb2JhbE9iamVjdCwganNPYmplY3QpKSB7CiAgICAgICAg
ICAgICAqZXhjZXB0aW9uID0gY3JlYXRlVHlwZUVycm9yKGNvbnRleHQsICJGYWlsZWQgdG8gY29u
dmVydCBJbnRSZWN0Il9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpA
QCAtMzgyLDcgKzM0OSw3IEBAIHN0YXRpYyBib29sIGVuY29kZUFyZ3VtZW50KElQQzo6RW5jb2Rl
ciYgZW5jb2RlciwgSlNJUEMmIGpzSVBDLCBKU0NvbnRleHRSZWYgY29uCiAgICAgfQogCiAgICAg
aWYgKHR5cGUgPT0gIkZsb2F0UmVjdCIpIHsKLSAgICAgICAgaWYgKCFlbmNvZGVSZWN0VHlwZTxX
ZWJDb3JlOjpGbG9hdFJlY3Q+KGVuY29kZXIsIGdsb2JhbE9iamVjdCwganNPYmplY3QsIHNjb3Bl
KSkgeworICAgICAgICBpZiAoIWVuY29kZVJlY3RUeXBlPFdlYkNvcmU6OkZsb2F0UmVjdD4oZW5j
b2RlciwgZ2xvYmFsT2JqZWN0LCBqc09iamVjdCkpIHsKICAgICAgICAgICAgICpleGNlcHRpb24g
PSBjcmVhdGVUeXBlRXJyb3IoY29udGV4dCwgIkZhaWxlZCB0byBjb252ZXJ0IEZsb2F0UmVjdCJf
cyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KQEAgLTQxNSwzMCArMzgy
LDYgQEAgc3RhdGljIGJvb2wgZW5jb2RlQXJndW1lbnQoSVBDOjpFbmNvZGVyJiBlbmNvZGVyLCBK
U0lQQyYganNJUEMsIEpTQ29udGV4dFJlZiBjb24KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCi0gICAgaWYgKHR5cGUgPT0gIlVSTCIpIHsKLSAgICAgICAgaWYgKGpzVmFsdWUuaXNVbmRl
ZmluZWRPck51bGwoKSkgewotICAgICAgICAgICAgZW5jb2RlciA8PCBVUkwgeyB9OwotICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgYXV0byBzdHJpbmcgPSBqc1Zh
bHVlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIGlmIChzY29wZS5leGNlcHRp
b24oKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgZW5jb2RlciA8PCBVUkwg
eyBVUkwgeyB9LCBzdHJpbmcgfTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAg
aWYgKHR5cGUgPT0gIlJlZ2lzdHJhYmxlRG9tYWluIikgewotICAgICAgICBpZiAoanNWYWx1ZS5p
c1VuZGVmaW5lZE9yTnVsbCgpKSB7Ci0gICAgICAgICAgICBlbmNvZGVyIDw8IFJlZ2lzdHJhYmxl
RG9tYWluIHsgfTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAg
IGF1dG8gc3RyaW5nID0ganNWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOwotICAgICAg
ICBpZiAoc2NvcGUuZXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgIGVuY29kZXIgPDwgUmVnaXN0cmFibGVEb21haW4geyBVUkwgeyBVUkwgeyB9LCBzdHJpbmcg
fSB9OwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KICAgICBpZiAodHlwZSA9PSAiUkdC
QSIpIHsKICAgICAgICAgaWYgKCFqc1ZhbHVlLmlzTnVtYmVyKCkpIHsKICAgICAgICAgICAgICpl
eGNlcHRpb24gPSBjcmVhdGVUeXBlRXJyb3IoY29udGV4dCwgIlJHQkEgdmFsdWUgc2hvdWxkIGJl
IGEgbnVtYmVyIl9zKTsKQEAgLTQ0OSw5MSArMzkyLDQ4IEBAIHN0YXRpYyBib29sIGVuY29kZUFy
Z3VtZW50KElQQzo6RW5jb2RlciYgZW5jb2RlciwgSlNJUEMmIGpzSVBDLCBKU0NvbnRleHRSZWYg
Y29uCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIGJvb2wgbnVtZXJpY1Jlc3Vs
dDsKKyAgICBib29sIGludGVncmFsUmVzdWx0OwogICAgIGlmICh0eXBlID09ICJib29sIikKLSAg
ICAgICAgbnVtZXJpY1Jlc3VsdCA9IGVuY29kZU51bWVyaWNUeXBlPGJvb2w+KGVuY29kZXIsIGpz
VmFsdWUpOwotICAgIGVsc2UgaWYgKHR5cGUgPT0gImRvdWJsZSIpCi0gICAgICAgIG51bWVyaWNS
ZXN1bHQgPSBlbmNvZGVOdW1lcmljVHlwZTxkb3VibGU+KGVuY29kZXIsIGpzVmFsdWUpOwotICAg
IGVsc2UgaWYgKHR5cGUgPT0gImZsb2F0IikKLSAgICAgICAgbnVtZXJpY1Jlc3VsdCA9IGVuY29k
ZU51bWVyaWNUeXBlPGZsb2F0PihlbmNvZGVyLCBqc1ZhbHVlKTsKKyAgICAgICAgaW50ZWdyYWxS
ZXN1bHQgPSBlbmNvZGVJbnRlZ3JhbFR5cGU8Ym9vbD4oZW5jb2RlciwganNWYWx1ZSk7CiAgICAg
ZWxzZSBpZiAodHlwZSA9PSAiaW50OF90IikKLSAgICAgICAgbnVtZXJpY1Jlc3VsdCA9IGVuY29k
ZU51bWVyaWNUeXBlPGludDhfdD4oZW5jb2RlciwganNWYWx1ZSk7CisgICAgICAgIGludGVncmFs
UmVzdWx0ID0gZW5jb2RlSW50ZWdyYWxUeXBlPGludDhfdD4oZW5jb2RlciwganNWYWx1ZSk7CiAg
ICAgZWxzZSBpZiAodHlwZSA9PSAiaW50MTZfdCIpCi0gICAgICAgIG51bWVyaWNSZXN1bHQgPSBl
bmNvZGVOdW1lcmljVHlwZTxpbnQxNl90PihlbmNvZGVyLCBqc1ZhbHVlKTsKKyAgICAgICAgaW50
ZWdyYWxSZXN1bHQgPSBlbmNvZGVJbnRlZ3JhbFR5cGU8aW50MTZfdD4oZW5jb2RlciwganNWYWx1
ZSk7CiAgICAgZWxzZSBpZiAodHlwZSA9PSAiaW50MzJfdCIpCi0gICAgICAgIG51bWVyaWNSZXN1
bHQgPSBlbmNvZGVOdW1lcmljVHlwZTxpbnQzMl90PihlbmNvZGVyLCBqc1ZhbHVlKTsKKyAgICAg
ICAgaW50ZWdyYWxSZXN1bHQgPSBlbmNvZGVJbnRlZ3JhbFR5cGU8aW50MzJfdD4oZW5jb2Rlciwg
anNWYWx1ZSk7CiAgICAgZWxzZSBpZiAodHlwZSA9PSAiaW50NjRfdCIpCi0gICAgICAgIG51bWVy
aWNSZXN1bHQgPSBlbmNvZGVOdW1lcmljVHlwZTxpbnQ2NF90PihlbmNvZGVyLCBqc1ZhbHVlKTsK
KyAgICAgICAgaW50ZWdyYWxSZXN1bHQgPSBlbmNvZGVJbnRlZ3JhbFR5cGU8aW50NjRfdD4oZW5j
b2RlciwganNWYWx1ZSk7CiAgICAgZWxzZSBpZiAodHlwZSA9PSAidWludDhfdCIpCi0gICAgICAg
IG51bWVyaWNSZXN1bHQgPSBlbmNvZGVOdW1lcmljVHlwZTx1aW50OF90PihlbmNvZGVyLCBqc1Zh
bHVlKTsKKyAgICAgICAgaW50ZWdyYWxSZXN1bHQgPSBlbmNvZGVJbnRlZ3JhbFR5cGU8dWludDhf
dD4oZW5jb2RlciwganNWYWx1ZSk7CiAgICAgZWxzZSBpZiAodHlwZSA9PSAidWludDE2X3QiKQot
ICAgICAgICBudW1lcmljUmVzdWx0ID0gZW5jb2RlTnVtZXJpY1R5cGU8dWludDE2X3Q+KGVuY29k
ZXIsIGpzVmFsdWUpOworICAgICAgICBpbnRlZ3JhbFJlc3VsdCA9IGVuY29kZUludGVncmFsVHlw
ZTx1aW50MTZfdD4oZW5jb2RlciwganNWYWx1ZSk7CiAgICAgZWxzZSBpZiAodHlwZSA9PSAidWlu
dDMyX3QiKQotICAgICAgICBudW1lcmljUmVzdWx0ID0gZW5jb2RlTnVtZXJpY1R5cGU8dWludDMy
X3Q+KGVuY29kZXIsIGpzVmFsdWUpOworICAgICAgICBpbnRlZ3JhbFJlc3VsdCA9IGVuY29kZUlu
dGVncmFsVHlwZTx1aW50MzJfdD4oZW5jb2RlciwganNWYWx1ZSk7CiAgICAgZWxzZSBpZiAodHlw
ZSA9PSAidWludDY0X3QiKQotICAgICAgICBudW1lcmljUmVzdWx0ID0gZW5jb2RlTnVtZXJpY1R5
cGU8dWludDY0X3Q+KGVuY29kZXIsIGpzVmFsdWUpOworICAgICAgICBpbnRlZ3JhbFJlc3VsdCA9
IGVuY29kZUludGVncmFsVHlwZTx1aW50NjRfdD4oZW5jb2RlciwganNWYWx1ZSk7CiAgICAgZWxz
ZSB7CiAgICAgICAgICpleGNlcHRpb24gPSBjcmVhdGVUeXBlRXJyb3IoY29udGV4dCwgIkJhZCB0
eXBlIG5hbWUiX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIGlmICghbnVt
ZXJpY1Jlc3VsdCkgewotICAgICAgICAqZXhjZXB0aW9uID0gY3JlYXRlVHlwZUVycm9yKGNvbnRl
eHQsICJGYWlsZWQgdG8gZW5jb2RlIGEgbnVtYmVyIl9zKTsKKyAgICBpZiAoIWludGVncmFsUmVz
dWx0KSB7CisgICAgICAgICpleGNlcHRpb24gPSBjcmVhdGVUeXBlRXJyb3IoY29udGV4dCwgIkZh
aWxlZCB0byBlbmNvZGUgYW4gaW50ZWdlciJfcyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLQotc3RhdGljIEpTQzo6SlNPYmplY3QqIGpzUmVz
dWx0RnJvbVJlcGx5RGVjb2RlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIElQ
Qzo6TWVzc2FnZU5hbWUgbWVzc2FnZU5hbWUsIElQQzo6RGVjb2RlciYgZGVjb2RlcikKLXsKLSAg
ICBhdXRvJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBhdXRvIGFycmF5QnVmZmVyID0gSlNDOjpBcnJheUJ1
ZmZlcjo6Y3JlYXRlKGRlY29kZXIuYnVmZmVyKCksIGRlY29kZXIubGVuZ3RoKCkpOwotICAgIEpT
Qzo6SlNBcnJheUJ1ZmZlcioganNBcnJheUJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgaWYgKGF1dG8q
IHN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+YXJyYXlCdWZmZXJTdHJ1Y3R1cmUoYXJyYXlCdWZm
ZXItPnNoYXJpbmdNb2RlKCkpKQotICAgICAgICBqc0FycmF5QnVmZmVyID0gSlNDOjpKU0FycmF5
QnVmZmVyOjpjcmVhdGUodm0sIHN0cnVjdHVyZSwgV1RGTW92ZShhcnJheUJ1ZmZlcikpOwotICAg
IGlmICghanNBcnJheUJ1ZmZlcikgewotICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmpl
Y3QsIHNjb3BlLCBKU0M6OmNyZWF0ZVR5cGVFcnJvcihnbG9iYWxPYmplY3QsICJGYWlsZWQgdG8g
Y3JlYXRlIHRoZSBhcnJheSBidWZmZXIgZm9yIHRoZSByZXBseSJfcykpOwotICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICBhdXRvIGpzUmVwbHlBcmd1bWVudHMgPSBqc1ZhbHVl
Rm9yUmVwbHlBcmd1bWVudHMoZ2xvYmFsT2JqZWN0LCBtZXNzYWdlTmFtZSwgZGVjb2Rlcik7Ci0g
ICAgaWYgKCFqc1JlcGx5QXJndW1lbnRzKSB7Ci0gICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2Jh
bE9iamVjdCwgc2NvcGUsIEpTQzo6Y3JlYXRlVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgIkZhaWxl
ZCB0byBkZWNvZGUgdGhlIHJlcGx5Il9zKSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAg
IH0KLQotICAgIGlmIChqc1JlcGx5QXJndW1lbnRzLT5pc0VtcHR5KCkpIHsKLSAgICAgICAgdGhy
b3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgSlNDOjpjcmVhdGVUeXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCAiRmFpbGVkIHRvIGNvbnZlcnQgdGhlIHJlcGx5IHRvIGFuIEpTIGFycmF5Il9z
KSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQotICAgIGF1dG8gY2F0Y2hTY29w
ZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOwotICAgIEpTQzo6SlNPYmplY3QqIGpzUmVzdWx0
ID0gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPm9iamVj
dFByb3RvdHlwZSgpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKGNhdGNoU2NvcGUsIG51bGxw
dHIpOwotCi0gICAganNSZXN1bHQtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YXJn
dW1lbnRzLCAqanNSZXBseUFyZ3VtZW50cyk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihjYXRj
aFNjb3BlLCBudWxscHRyKTsKLQotICAgIGpzUmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImJ1ZmZlciIpLCBqc0FycmF5QnVmZmVyKTsKLSAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKGNhdGNoU2NvcGUsIG51bGxwdHIpOwotCi0gICAgcmV0dXJuIGpz
UmVzdWx0OwotfQotCiBKU1ZhbHVlUmVmIEpTSVBDOjpzZW5kTWVzc2FnZShKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNPYmplY3RSZWYsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1
bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNl
cHRpb24pCiB7CiAgICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gdG9KUyhjb250ZXh0KTsKICAgICBK
U0M6OkpTTG9ja0hvbGRlciBsb2NrKGdsb2JhbE9iamVjdC0+dm0oKSk7CiAgICAgYXV0byBqc0lQ
QyA9IG1ha2VSZWZQdHIodG9XcmFwcGVkKGNvbnRleHQsIHRoaXNPYmplY3QpKTsKICAgICBpZiAo
IWpzSVBDKSB7Ci0gICAgICAgICpleGNlcHRpb24gPSBjcmVhdGVUeXBlRXJyb3IoY29udGV4dCwg
Ildyb25nIHR5cGUiX3MpOworICAgICAgICAqZXhjZXB0aW9uID0gdG9SZWYoSlNDOjpjcmVhdGVU
eXBlRXJyb3IodG9KUyhjb250ZXh0KSwgIldyb25nIHR5cGUiX3MpKTsKICAgICAgICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogICAgIH0KIAogICAgIGlmIChhcmd1bWVu
dENvdW50IDwgMykgewotICAgICAgICAqZXhjZXB0aW9uID0gY3JlYXRlVHlwZUVycm9yKGNvbnRl
eHQsICJNdXN0IHNwZWNpZnkgdGhlIHRhcmdldCBwcm9jZXNzLCBkZXNpbmF0aW9uIElELCBhbmQg
bWVzc2FnZSBJRCBhcyB0aGUgZmlyc3QgdGhyZWUgYXJndW1lbnRzIl9zKTsKKyAgICAgICAgKmV4
Y2VwdGlvbiA9IHRvUmVmKEpTQzo6Y3JlYXRlVHlwZUVycm9yKHRvSlMoY29udGV4dCksICJNdXN0
IHNwZWNpZnkgdGhlIHRhcmdldCBwcm9jZXNzLCBkZXNpbmF0aW9uIElELCBhbmQgbWVzc2FnZSBJ
RCBhcyB0aGUgZmlyc3QgdGhyZWUgYXJndW1lbnRzIl9zKSk7CiAgICAgICAgIHJldHVybiBKU1Zh
bHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKICAgICB9CiAKQEAgLTU0OSw0OCArNDQ5LDcgQEAg
SlNWYWx1ZVJlZiBKU0lQQzo6c2VuZE1lc3NhZ2UoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2Jq
ZWN0UmVmLCBKU09iamVjdFJlZiB0aGkKICAgICBpZiAoIW1lc3NhZ2VJRCkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogCi0gICAgYXV0byBtZXNzYWdlTmFt
ZSA9IHN0YXRpY19jYXN0PElQQzo6TWVzc2FnZU5hbWU+KCptZXNzYWdlSUQpOwotICAgIGF1dG8g
ZW5jb2RlciA9IG1ha2VVbmlxdWU8SVBDOjpFbmNvZGVyPihtZXNzYWdlTmFtZSwgKmRlc3RpbmF0
aW9uSUQpOwotCi0gICAgSlNWYWx1ZVJlZiByZXR1cm5WYWx1ZSA9IEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGNvbnRleHQpOwotCi0gICAgYm9vbCBoYXNSZXBseSA9ICEhbWVzc2FnZVJlcGx5QXJndW1l
bnREZXNjcmlwdGlvbnMobWVzc2FnZU5hbWUpOwotICAgIGlmIChoYXNSZXBseSkgewotICAgICAg
ICB1aW50NjRfdCBsaXN0ZW5lcklEID0gSVBDOjpuZXh0QXN5bmNSZXBseUhhbmRsZXJJRCgpOwot
ICAgICAgICBlbmNvZGVyLT5lbmNvZGUobGlzdGVuZXJJRCk7Ci0KLSAgICAgICAgSlNPYmplY3RS
ZWYgcmVzb2x2ZTsKLSAgICAgICAgSlNPYmplY3RSZWYgcmVqZWN0OwotQUxMT1dfTkVXX0FQSV9X
SVRIT1VUX0dVQVJEU19CRUdJTgotICAgICAgICByZXR1cm5WYWx1ZSA9IEpTT2JqZWN0TWFrZURl
ZmVycmVkUHJvbWlzZShjb250ZXh0LCAmcmVzb2x2ZSwgJnJlamVjdCwgZXhjZXB0aW9uKTsKLUFM
TE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5ECi0gICAgICAgIGlmICghcmV0dXJuVmFsdWUp
Ci0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci0KLSAg
ICAgICAgSlNHbG9iYWxDb250ZXh0UmV0YWluKEpTQ29udGV4dEdldEdsb2JhbENvbnRleHQoY29u
dGV4dCkpOwotICAgICAgICBKU1ZhbHVlUHJvdGVjdChjb250ZXh0LCByZXNvbHZlKTsKLSAgICAg
ICAgSlNWYWx1ZVByb3RlY3QoY29udGV4dCwgcmVqZWN0KTsKLSAgICAgICAgSVBDOjphZGRBc3lu
Y1JlcGx5SGFuZGxlcigqY29ubmVjdGlvbiwgbGlzdGVuZXJJRCwgW21lc3NhZ2VOYW1lLCBjb250
ZXh0LCByZXNvbHZlLCByZWplY3RdKElQQzo6RGVjb2RlciogcmVwbHlEZWNvZGVyKSB7Ci0gICAg
ICAgICAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSB0b0pTKGNvbnRleHQpOwotICAgICAgICAgICAg
YXV0byYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgICAgICAgICBKU0M6OkpTTG9ja0hv
bGRlciBsb2NrKHZtKTsKLQotICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hf
U0NPUEUodm0pOwotICAgICAgICAgICAgYXV0byoganNSZXN1bHQgPSBqc1Jlc3VsdEZyb21SZXBs
eURlY29kZXIoZ2xvYmFsT2JqZWN0LCBtZXNzYWdlTmFtZSwgKnJlcGx5RGVjb2Rlcik7Ci0gICAg
ICAgICAgICBpZiAoYXV0byogZXhjZXB0aW9uID0gc2NvcGUuZXhjZXB0aW9uKCkpIHsKLSAgICAg
ICAgICAgICAgICBzY29wZS5jbGVhckV4Y2VwdGlvbigpOwotICAgICAgICAgICAgICAgIEpTVmFs
dWVSZWYgYXJndW1lbnRzW10gPSB7IHRvUmVmKGdsb2JhbE9iamVjdCwgZXhjZXB0aW9uKSB9Owot
ICAgICAgICAgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgcmVqZWN0LCBy
ZWplY3QsIDEsIGFyZ3VtZW50cywgbnVsbHB0cik7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzW10gPSB7IHRvUmVmKGdsb2JhbE9iamVj
dCwganNSZXN1bHQpIH07Ci0gICAgICAgICAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihj
b250ZXh0LCByZXNvbHZlLCByZXNvbHZlLCAxLCBhcmd1bWVudHMsIG51bGxwdHIpOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICBKU1ZhbHVlVW5wcm90ZWN0KGNvbnRleHQsIHJlamVjdCk7
Ci0gICAgICAgICAgICBKU1ZhbHVlVW5wcm90ZWN0KGNvbnRleHQsIHJlc29sdmUpOwotICAgICAg
ICAgICAgSlNHbG9iYWxDb250ZXh0UmVsZWFzZShKU0NvbnRleHRHZXRHbG9iYWxDb250ZXh0KGNv
bnRleHQpKTsKLSAgICAgICAgfSk7Ci0gICAgfQorICAgIGF1dG8gZW5jb2RlciA9IG1ha2VVbmlx
dWU8SVBDOjpFbmNvZGVyPihzdGF0aWNfY2FzdDxJUEM6Ok1lc3NhZ2VOYW1lPihzdGF0aWNfY2Fz
dDx1aW50NjRfdD4oKm1lc3NhZ2VJRCkpLCAqZGVzdGluYXRpb25JRCk7CiAKICAgICBpZiAoYXJn
dW1lbnRDb3VudCA+IDMpIHsKICAgICAgICAgaWYgKCFlbmNvZGVBcmd1bWVudCgqZW5jb2Rlciwg
KmpzSVBDLCBjb250ZXh0LCBhcmd1bWVudHNbM10sIGV4Y2VwdGlvbikpCkBAIC02MDEsNyArNDYw
LDcgQEAgQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKIAogICAgIGNvbm5lY3Rpb24t
PnNlbmRNZXNzYWdlKFdURk1vdmUoZW5jb2RlciksIHsgfSk7CiAKLSAgICByZXR1cm4gcmV0dXJu
VmFsdWU7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCiBK
U1ZhbHVlUmVmIEpTSVBDOjpzZW5kU3luY01lc3NhZ2UoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpT
T2JqZWN0UmVmLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwg
Y29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQpAQCAt
NjEwLDEyICs0NjksMTIgQEAgSlNWYWx1ZVJlZiBKU0lQQzo6c2VuZFN5bmNNZXNzYWdlKEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiwgSlNPYmplY3RSZWYKICAgICBKU0M6OkpTTG9j
a0hvbGRlciBsb2NrKGdsb2JhbE9iamVjdC0+dm0oKSk7CiAgICAgYXV0byBqc0lQQyA9IG1ha2VS
ZWZQdHIodG9XcmFwcGVkKGNvbnRleHQsIHRoaXNPYmplY3QpKTsKICAgICBpZiAoIWpzSVBDKSB7
Ci0gICAgICAgICpleGNlcHRpb24gPSBjcmVhdGVUeXBlRXJyb3IoY29udGV4dCwgIldyb25nIHR5
cGUiX3MpOworICAgICAgICAqZXhjZXB0aW9uID0gdG9SZWYoSlNDOjpjcmVhdGVUeXBlRXJyb3Io
dG9KUyhjb250ZXh0KSwgIldyb25nIHR5cGUiX3MpKTsKICAgICAgICAgcmV0dXJuIEpTVmFsdWVN
YWtlVW5kZWZpbmVkKGNvbnRleHQpOwogICAgIH0KIAogICAgIGlmIChhcmd1bWVudENvdW50IDwg
NCkgewotICAgICAgICAqZXhjZXB0aW9uID0gY3JlYXRlVHlwZUVycm9yKGNvbnRleHQsICJNdXN0
IHNwZWNpZnkgdGhlIHRhcmdldCBwcm9jZXNzLCBkZXNpbmF0aW9uIElELCBhbmQgbWVzc2FnZSBJ
RCBhcyB0aGUgZmlyc3QgdGhyZWUgYXJndW1lbnRzIl9zKTsKKyAgICAgICAgKmV4Y2VwdGlvbiA9
IHRvUmVmKEpTQzo6Y3JlYXRlVHlwZUVycm9yKHRvSlMoY29udGV4dCksICJNdXN0IHNwZWNpZnkg
dGhlIHRhcmdldCBwcm9jZXNzLCBkZXNpbmF0aW9uIElELCBtZXNzYWdlIElELCBhbmQgdGltZW91
dCBhcyB0aGUgZmlyc3QgZm91ciBhcmd1bWVudHMiX3MpKTsKICAgICAgICAgcmV0dXJuIEpTVmFs
dWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogICAgIH0KIApAQCAtNjM1LDMzICs0OTQsMjQgQEAg
SlNWYWx1ZVJlZiBKU0lQQzo6c2VuZFN5bmNNZXNzYWdlKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiwgSlNPYmplY3RSZWYKICAgICB7CiAgICAgICAgIGF1dG8ganNWYWx1ZSA9IHRv
SlMoZ2xvYmFsT2JqZWN0LCBhcmd1bWVudHNbM10pOwogICAgICAgICBpZiAoIWpzVmFsdWUuaXNO
dW1iZXIoKSkgewotICAgICAgICAgICAgKmV4Y2VwdGlvbiA9IGNyZWF0ZVR5cGVFcnJvcihjb250
ZXh0LCAiVGltZW91dCBtdXN0IGJlIGEgbnVtYmVyIl9zKTsKKyAgICAgICAgICAgICpleGNlcHRp
b24gPSB0b1JlZihKU0M6OmNyZWF0ZVR5cGVFcnJvcihnbG9iYWxPYmplY3QsICJ0aW1lb3V0IG11
c3QgYmUgYSBudW1iZXIiX3MpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVm
aW5lZChjb250ZXh0KTsKICAgICAgICAgfQogICAgICAgICB0aW1lb3V0ID0gU2Vjb25kcyB7IGpz
VmFsdWUuYXNOdW1iZXIoKSB9OwogICAgIH0KLQorICAgIAogICAgIC8vIEZJWE1FOiBTdXBwb3J0
IHRoZSBvcHRpb25zLgogCiAgICAgdWludDY0X3Qgc3luY1JlcXVlc3RJRCA9IDA7Ci0gICAgYXV0
byBtZXNzYWdlTmFtZSA9IHN0YXRpY19jYXN0PElQQzo6TWVzc2FnZU5hbWU+KCptZXNzYWdlSUQp
OwotICAgIGF1dG8gZW5jb2RlciA9IGNvbm5lY3Rpb24tPmNyZWF0ZVN5bmNNZXNzYWdlRW5jb2Rl
cihtZXNzYWdlTmFtZSwgKmRlc3RpbmF0aW9uSUQsIHN5bmNSZXF1ZXN0SUQpOworICAgIGF1dG8g
ZW5jb2RlciA9IGNvbm5lY3Rpb24tPmNyZWF0ZVN5bmNNZXNzYWdlRW5jb2RlcihzdGF0aWNfY2Fz
dDxJUEM6Ok1lc3NhZ2VOYW1lPihzdGF0aWNfY2FzdDx1aW50NjRfdD4oKm1lc3NhZ2VJRCkpLCAq
ZGVzdGluYXRpb25JRCwgc3luY1JlcXVlc3RJRCk7CiAKICAgICBpZiAoYXJndW1lbnRDb3VudCA+
IDQpIHsKICAgICAgICAgaWYgKCFlbmNvZGVBcmd1bWVudCgqZW5jb2RlciwgKmpzSVBDLCBjb250
ZXh0LCBhcmd1bWVudHNbNF0sIGV4Y2VwdGlvbikpCiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1
ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiAgICAgfQogCi0gICAgaWYgKGF1dG8gcmVwbHlEZWNv
ZGVyID0gY29ubmVjdGlvbi0+c2VuZFN5bmNNZXNzYWdlKHN5bmNSZXF1ZXN0SUQsIFdURk1vdmUo
ZW5jb2RlciksIHRpbWVvdXQsIHsgfSkpIHsKLSAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
Q0FUQ0hfU0NPUEUoZ2xvYmFsT2JqZWN0LT52bSgpKTsKLSAgICAgICAgYXV0byoganNSZXN1bHQg
PSBqc1Jlc3VsdEZyb21SZXBseURlY29kZXIoZ2xvYmFsT2JqZWN0LCBtZXNzYWdlTmFtZSwgKnJl
cGx5RGVjb2Rlcik7Ci0gICAgICAgIGlmIChzY29wZS5leGNlcHRpb24oKSkgewotICAgICAgICAg
ICAgKmV4Y2VwdGlvbiA9IHRvUmVmKGdsb2JhbE9iamVjdCwgc2NvcGUuZXhjZXB0aW9uKCkpOwot
ICAgICAgICAgICAgc2NvcGUuY2xlYXJFeGNlcHRpb24oKTsKLSAgICAgICAgICAgIHJldHVybiBK
U1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4g
dG9SZWYoZ2xvYmFsT2JqZWN0LCBqc1Jlc3VsdCk7Ci0gICAgfQorICAgIGF1dG8gcmVwbHlEZWNv
ZGVyID0gY29ubmVjdGlvbi0+c2VuZFN5bmNNZXNzYWdlKHN5bmNSZXF1ZXN0SUQsIFdURk1vdmUo
ZW5jb2RlciksIHRpbWVvdXQsIHsgfSk7CisgICAgLy8gRklYTUU6IERlY29kZSB0aGUgcmVwbHku
CiAKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CkBAIC02NzQs
MzEgKzUyNCwxNyBAQCBKU1ZhbHVlUmVmIEpTSVBDOjp2aXNpdGVkTGlua1N0b3JlSUQoSlNDb250
ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplYwogICAgIH0pOwogfQogCi1KU1Zh
bHVlUmVmIEpTSVBDOjpmcmFtZUlEKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB0
aGlzT2JqZWN0LCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIHJl
dHVybiByZXRyaWV2ZUlEKGNvbnRleHQsIHRoaXNPYmplY3QsIGV4Y2VwdGlvbiwgW10oSlNJUEMm
IHdyYXBwZWQpIHsKLSAgICAgICAgcmV0dXJuIHdyYXBwZWQubV93ZWJGcmFtZS0+ZnJhbWVJRCgp
LnRvVUludDY0KCk7Ci0gICAgfSk7Ci19Ci0KLUpTVmFsdWVSZWYgSlNJUEM6OnBhZ2VJRChKU0Nv
bnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgSlNTdHJpbmdSZWYsIEpT
VmFsdWVSZWYqIGV4Y2VwdGlvbikKLXsKLSAgICByZXR1cm4gcmV0cmlldmVJRChjb250ZXh0LCB0
aGlzT2JqZWN0LCBleGNlcHRpb24sIFtdKEpTSVBDJiB3cmFwcGVkKSB7Ci0gICAgICAgIHJldHVy
biB3cmFwcGVkLm1fd2ViUGFnZS0+aWRlbnRpZmllcigpLnRvVUludDY0KCk7Ci0gICAgfSk7Ci19
Ci0KLUpTVmFsdWVSZWYgSlNJUEM6OnNlc3Npb25JRChKU0NvbnRleHRSZWYgY29udGV4dCwgSlNP
YmplY3RSZWYgdGhpc09iamVjdCwgSlNTdHJpbmdSZWYsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikK
K0pTVmFsdWVSZWYgSlNJUEM6OndlYlBhZ2VQcm94eUlEKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiB0aGlzT2JqZWN0LCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZiogZXhjZXB0aW9u
KQogewogICAgIHJldHVybiByZXRyaWV2ZUlEKGNvbnRleHQsIHRoaXNPYmplY3QsIGV4Y2VwdGlv
biwgW10oSlNJUEMmIHdyYXBwZWQpIHsKLSAgICAgICAgcmV0dXJuIHdyYXBwZWQubV93ZWJQYWdl
LT5zZXNzaW9uSUQoKS50b1VJbnQ2NCgpOworICAgICAgICByZXR1cm4gd3JhcHBlZC5tX3dlYlBh
Z2UtPndlYlBhZ2VQcm94eUlEKCk7CiAgICAgfSk7CiB9CiAKLUpTVmFsdWVSZWYgSlNJUEM6Ondl
YlBhZ2VQcm94eUlEKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0
LCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorSlNWYWx1ZVJlZiBKU0lQQzo6
ZnJhbWVJZGVudGlmaWVyKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB0aGlzT2Jq
ZWN0LCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIHJldHVybiBy
ZXRyaWV2ZUlEKGNvbnRleHQsIHRoaXNPYmplY3QsIGV4Y2VwdGlvbiwgW10oSlNJUEMmIHdyYXBw
ZWQpIHsKLSAgICAgICAgcmV0dXJuIHdyYXBwZWQubV93ZWJQYWdlLT53ZWJQYWdlUHJveHlJRCgp
OworICAgICAgICByZXR1cm4gd3JhcHBlZC5tX3dlYkZyYW1lLT5mcmFtZUlEKCkudG9VSW50NjQo
KTsKICAgICB9KTsKIH0KIApAQCAtNzE5LDQxICs1NTUsNiBAQCBKU1ZhbHVlUmVmIEpTSVBDOjpy
ZXRyaWV2ZUlEKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBK
U1ZhbAogICAgIHJldHVybiB0b1JlZih2bSwganNWYWx1ZSk7CiB9CiAKLXN0YXRpYyBKU0M6OkpT
VmFsdWUgY3JlYXRlSlNBcnJheUZvckFyZ3VtZW50RGVzY3JpcHRpb25zKEpTQzo6SlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgT3B0aW9uYWw8VmVjdG9yPElQQzo6QXJndW1lbnREZXNjcmlw
dGlvbj4+JiYgYXJndW1lbnREZXNjcmlwdGlvbnMpCi17Ci0gICAgaWYgKCFhcmd1bWVudERlc2Ny
aXB0aW9ucykKLSAgICAgICAgcmV0dXJuIEpTQzo6anNOdWxsKCk7Ci0KLSAgICBhdXRvJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09Q
RSh2bSk7Ci0gICAgSlNDOjpKU09iamVjdCogYXJndW1lbnRzQXJyYXkgPSBKU0M6OmNvbnN0cnVj
dEVtcHR5QXJyYXkoZ2xvYmFsT2JqZWN0LCBudWxscHRyKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBKU0M6OmpzVERaVmFsdWUoKSk7Ci0KLSAgICBmb3IgKHVuc2lnbmVkIGFyZ3Vt
ZW50SW5kZXggPSAwOyBhcmd1bWVudEluZGV4IDwgYXJndW1lbnREZXNjcmlwdGlvbnMtPnNpemUo
KTsgKythcmd1bWVudEluZGV4KSB7Ci0gICAgICAgIGF1dG8mIGRlc2NyaXB0aW9uID0gYXJndW1l
bnREZXNjcmlwdGlvbnMtPmF0KGFyZ3VtZW50SW5kZXgpOwotICAgICAgICBKU0M6OkpTT2JqZWN0
KiBqc0Rlc2NyaXB0aW9ucyA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdCwgZ2xv
YmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIEpTQzo6anNURFpWYWx1ZSgpKTsKLQotICAgICAgICBhcmd1bWVudHNBcnJheS0+
cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0LCBhcmd1bWVudEluZGV4LCBqc0Rlc2NyaXB0aW9u
cyk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTQzo6anNURFpWYWx1ZSgp
KTsKLQotICAgICAgICBqc0Rlc2NyaXB0aW9ucy0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZp
ZXI6OmZyb21TdHJpbmcodm0sICJuYW1lIiksIEpTQzo6anNTdHJpbmcodm0sIFN0cmluZyhkZXNj
cmlwdGlvbi5uYW1lKSkpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU0M6
OmpzVERaVmFsdWUoKSk7Ci0KLSAgICAgICAganNEZXNjcmlwdGlvbnMtPnB1dERpcmVjdCh2bSwg
SlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAidHlwZSIpLCBKU0M6OmpzU3RyaW5nKHZt
LCBTdHJpbmcoZGVzY3JpcHRpb24udHlwZSkpKTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgSlNDOjpqc1REWlZhbHVlKCkpOwotCi0gICAgICAgIGpzRGVzY3JpcHRpb25zLT5w
dXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm9wdGlvbmFsIiks
IEpTQzo6anNCb29sZWFuKGRlc2NyaXB0aW9uLmlzT3B0aW9uYWwpKTsKLSAgICAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgSlNDOjpqc1REWlZhbHVlKCkpOwotCi0gICAgICAgIGlmIChk
ZXNjcmlwdGlvbi5lbnVtTmFtZSkgewotICAgICAgICAgICAganNEZXNjcmlwdGlvbnMtPnB1dERp
cmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiZW51bSIpLCBKU0M6Ompz
U3RyaW5nKHZtLCBTdHJpbmcoZGVzY3JpcHRpb24uZW51bU5hbWUpKSk7Ci0gICAgICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU0M6OmpzVERaVmFsdWUoKSk7Ci0gICAgICAgIH0K
LSAgICB9Ci0gICAgcmV0dXJuIGFyZ3VtZW50c0FycmF5OwotfQotCiBKU1ZhbHVlUmVmIEpTSVBD
OjptZXNzYWdlcyhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwg
SlNTdHJpbmdSZWYsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBhdXRvKiBnbG9iYWxP
YmplY3QgPSB0b0pTKGNvbnRleHQpOwpAQCAtNzY2LDM1ICs1NjcsMTcgQEAgSlNWYWx1ZVJlZiBK
U0lQQzo6bWVzc2FnZXMoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmpl
Y3QsIEpTU3RyaW4KICAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQp
OwogICAgIH0KIAotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKICAg
ICBKU0M6OkpTT2JqZWN0KiBtZXNzYWdlc09iamVjdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGds
b2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSk7Ci0gICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCkpOwotCiAg
ICAgYXV0byBuYW1lSWRlbnQgPSBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJuYW1l
Iik7Ci0gICAgYXV0byByZXBseUFyZ3VtZW50c0lkZW50ID0gSlNDOjpJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCAicmVwbHlBcmd1bWVudHMiKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KElQQzo6TWVzc2FnZU5hbWU6Okxhc3QpOyArK2kpIHsK
LSAgICAgICAgYXV0byBuYW1lID0gc3RhdGljX2Nhc3Q8SVBDOjpNZXNzYWdlTmFtZT4oaSk7Cisg
ICAgICAgIGF1dG8qIG1lc3NhZ2VOYW1lID0gZGVzY3JpcHRpb24oc3RhdGljX2Nhc3Q8SVBDOjpN
ZXNzYWdlTmFtZT4oaSkpOwogCiAgICAgICAgIEpTQzo6SlNPYmplY3QqIGRpY3Rpb25hcnkgPSBj
b25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJv
dG90eXBlKCkpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlTWFr
ZVVuZGVmaW5lZChjb250ZXh0KSk7Ci0KICAgICAgICAgZGljdGlvbmFyeS0+cHV0RGlyZWN0KHZt
LCBuYW1lSWRlbnQsIEpTQzo6SlNWYWx1ZShpKSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpKTsKIAotICAgICAgICBhdXRv
IGFyZ3VtZW50RGVzY3JpcHRpb25zID0gY3JlYXRlSlNBcnJheUZvckFyZ3VtZW50RGVzY3JpcHRp
b25zKGdsb2JhbE9iamVjdCwgSVBDOjptZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMobmFtZSkp
OwotICAgICAgICBpZiAoYXJndW1lbnREZXNjcmlwdGlvbnMuaXNFbXB0eSgpKQotICAgICAgICAg
ICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotICAgICAgICBkaWN0aW9u
YXJ5LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmFyZ3VtZW50cywgYXJndW1lbnRE
ZXNjcmlwdGlvbnMpOyAgICAgICAgICAgIAotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KSk7Ci0KLSAgICAgICAgYXV0byByZXBs
eUFyZ3VtZW50RGVzY3JpcHRpb25zID0gY3JlYXRlSlNBcnJheUZvckFyZ3VtZW50RGVzY3JpcHRp
b25zKGdsb2JhbE9iamVjdCwgSVBDOjptZXNzYWdlUmVwbHlBcmd1bWVudERlc2NyaXB0aW9ucyhu
YW1lKSk7Ci0gICAgICAgIGlmIChyZXBseUFyZ3VtZW50RGVzY3JpcHRpb25zLmlzRW1wdHkoKSkK
LSAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLSAgICAg
ICAgZGljdGlvbmFyeS0+cHV0RGlyZWN0KHZtLCByZXBseUFyZ3VtZW50c0lkZW50LCByZXBseUFy
Z3VtZW50RGVzY3JpcHRpb25zKTsgICAgICAgICAgICAKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCkpOworICAgICAgICAvLyBG
SVhNRTogQWRkIGFyZ3VtZW50IG5hbWVzLgogCi0gICAgICAgIG1lc3NhZ2VzT2JqZWN0LT5wdXRE
aXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgZGVzY3JpcHRpb24obmFt
ZSkpLCBkaWN0aW9uYXJ5KTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNW
YWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCkpOworICAgICAgICBtZXNzYWdlc09iamVjdC0+cHV0
RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIG1lc3NhZ2VOYW1lKSwg
ZGljdGlvbmFyeSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHRvUmVmKHZtLCBtZXNzYWdlc09iamVj
dCk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
NWI4ZDk0OWMxMjU0YjllMWYxZjdiNDZmYmYzYTgwODc0NDA2YTM2ZC4uNmU5ZGM0ZGEzZWU2ZTZh
Zjk0YmEyMmNlYjIwYjI0YWNkMDg2M2FmYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTEwLTE0ICBDb21taXQg
UXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCBy
ZXZlcnRpbmcgcjI2ODQzMSBhbmQgcjI2ODQ0My4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzcyOAorCisgICAgICAgIEJyb2tlIGRlYnVnIGJ1aWxk
cyBvZiBHVEssIFdpbkNhaXJvIGFuZCBQbGF5c3RhdGlvbiBwb3J0cworCisgICAgICAgIFJldmVy
dGVkIGNoYW5nZXNldHM6CisKKyAgICAgICAgIklQQyB0ZXN0aW5nIEpTIEFQSSBzaG91bGQgZXhw
b3NlIGEgcmVwbHkgYW5kIGRlc2NyaWJlIHRoZQorICAgICAgICBsaXN0IG9mIGFyZ3VtZW50cyBm
b3IgZWFjaCBtZXNzYWdlIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE3NTY1CisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNl
dC8yNjg0MzEKKworICAgICAgICAiSVBDIHRlc3RpbmcgSlMgQVBJIHNob3VsZCBleHBvc2UgYSBy
ZXBseSBhbmQgZGVzY3JpYmUgdGhlCisgICAgICAgIGxpc3Qgb2YgYXJndW1lbnRzIGZvciBlYWNo
IG1lc3NhZ2UiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTc1NjUKKyAgICAgICAgaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI2ODQ0
MworCiAyMDIwLTEwLTE0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgRGlzYWxsb3cgcG9ydHMgaW4gZmlsZSBVUkxzCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lQQ1Rlc3RpbmdBUEkubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lQQ1Rlc3RpbmdBUEkubW0KaW5k
ZXggOGQ2NDZhOGU0Mjc2MWRlYTExNmFiYzkzNmU0ZGNkYTA4MmQwY2VkYS4uY2ZmMjEyZGQ3NmQx
ZGUyMmVkNjI5MzFlZWQ3ZmJlODJkODBhNGNhNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JUENUZXN0aW5nQVBJLm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSVBDVGVzdGluZ0FQSS5tbQpAQCAtMzQsMTIgKzM0
LDkgQEAKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogc3RhdGljIGJvb2wgZG9uZSA9IGZh
bHNlOwotc3RhdGljIGJvb2wgZGlkQ3Jhc2ggPSBmYWxzZTsKIHN0YXRpYyBSZXRhaW5QdHI8TlNT
dHJpbmc+IGFsZXJ0TWVzc2FnZTsKLXN0YXRpYyBSZXRhaW5QdHI8TlNTdHJpbmc+IHByb21wdERl
ZmF1bHQ7Ci1zdGF0aWMgUmV0YWluUHRyPE5TU3RyaW5nPiBwcm9tcHRSZXN1bHQ7CiAKLUBpbnRl
cmZhY2UgSVBDVGVzdGluZ0FQSURlbGVnYXRlIDogTlNPYmplY3QgPFdLVUlEZWxlZ2F0ZSwgV0tO
YXZpZ2F0aW9uRGVsZWdhdGU+CitAaW50ZXJmYWNlIElQQ1Rlc3RpbmdBUElEZWxlZ2F0ZSA6IE5T
T2JqZWN0IDxXS1VJRGVsZWdhdGU+CiBAZW5kCiAgICAgCiBAaW1wbGVtZW50YXRpb24gSVBDVGVz
dGluZ0FQSURlbGVnYXRlCkBAIC01MSwxOSArNDgsNiBAQCAtICh2b2lkKXdlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgcnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTooTlNTdHJp
bgogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKLS0gKHZvaWQpd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBydW5KYXZhU2NyaXB0VGV4dElucHV0UGFuZWxXaXRoUHJvbXB0OihOU1N0
cmluZyAqKXByb21wdCBkZWZhdWx0VGV4dDooTlNTdHJpbmcgKilkZWZhdWx0VGV4dCBpbml0aWF0
ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkIChe
KShOU1N0cmluZyAqIF9OdWxsYWJsZSkpY29tcGxldGlvbkhhbmRsZXIKLXsKLSAgICBwcm9tcHRE
ZWZhdWx0ID0gZGVmYXVsdFRleHQ7Ci0gICAgZG9uZSA9IHRydWU7Ci0gICAgY29tcGxldGlvbkhh
bmRsZXIocHJvbXB0UmVzdWx0LmdldCgpKTsKLX0KLQotLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyB3ZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZVdpdGhSZWFzb246KF9X
S1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbilyZWFzb24KLXsKLSAgICBkaWRDcmFzaCA9IGZhbHNl
OwotICAgIGRvbmUgPSB0cnVlOwotfQotCiBAZW5kCiAKIFRFU1QoSVBDVGVzdGluZ0FQSSwgSXNE
aXNhYmxlZEJ5RGVmYXVsdCkKQEAgLTk3LDg1ICs4MSwxMCBAQCBURVNUKElQQ1Rlc3RpbmdBUEks
IENhblNlbmRBbGVydCkKIAogICAgIGRvbmUgPSBmYWxzZTsKICAgICBbd2ViVmlldyBzeW5jaHJv
bm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8IURPQ1RZUEUgaHRtbD48c2NyaXB0PklQQy5zZW5kU3lu
Y01lc3NhZ2UoJ1VJJywgSVBDLndlYlBhZ2VQcm94eUlELCBJUEMubWVzc2FnZXMuV2ViUGFnZVBy
b3h5X1J1bkphdmFTY3JpcHRBbGVydC5uYW1lLCAxMDAsIgotICAgICAgICAiW3t0eXBlOiAndWlu
dDY0X3QnLCB2YWx1ZTogSVBDLmZyYW1lSUR9LCB7dHlwZTogJ0ZyYW1lSW5mb0RhdGEnfSwgeyd0
eXBlJzogJ1N0cmluZycsICd2YWx1ZSc6ICdoaSd9XSk7PC9zY3JpcHQ+Il07CisgICAgICAgICJb
e3R5cGU6ICd1aW50NjRfdCcsIHZhbHVlOiBJUEMuZnJhbWVJZGVudGlmaWVyfSwge3R5cGU6ICdG
cmFtZUluZm9EYXRhJ30sIHsndHlwZSc6ICdTdHJpbmcnLCAndmFsdWUnOiAnaGknfV0pOzwvc2Ny
aXB0PiJdOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiAKICAgICBFWFBF
Q1RfU1RSRVEoW2FsZXJ0TWVzc2FnZSBVVEY4U3RyaW5nXSwgImhpIik7CiB9CiAKLVRFU1QoSVBD
VGVzdGluZ0FQSSwgRGVjb2Rlc1JlcGx5QXJndW1lbnRzRm9yUHJvbXB0KQotewotICAgIFJldGFp
blB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLSAgICBmb3IgKF9XS0ludGVybmFs
RGVidWdGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZlcmVuY2VzIF9pbnRlcm5hbERlYnVnRmVh
dHVyZXNdKSB7Ci0gICAgICAgIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiSVBD
VGVzdGluZ0FQSUVuYWJsZWQiXSkgewotICAgICAgICAgICAgW1tjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9ySW50ZXJuYWxEZWJ1Z0ZlYXR1cmU6ZmVhdHVyZV07
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLSAgICBSZXRhaW5QdHI8VGVz
dFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbi5nZXQoKV0pOwotCi0gICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tJUENUZXN0
aW5nQVBJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKLSAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRl
OmRlbGVnYXRlLmdldCgpXTsKLQotICAgIGRvbmUgPSBmYWxzZTsKLSAgICBwcm9tcHRSZXN1bHQg
PSBAImZvbyI7Ci0gICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPCFE
T0NUWVBFIGh0bWw+PHNjcmlwdD5yZXN1bHQgPSBJUEMuc2VuZFN5bmNNZXNzYWdlKCdVSScsIElQ
Qy53ZWJQYWdlUHJveHlJRCwgSVBDLm1lc3NhZ2VzLldlYlBhZ2VQcm94eV9SdW5KYXZhU2NyaXB0
UHJvbXB0Lm5hbWUsIDEwMCwiCi0gICAgICAgICJbe3R5cGU6ICd1aW50NjRfdCcsIHZhbHVlOiBJ
UEMuZnJhbWVJRH0sIHt0eXBlOiAnRnJhbWVJbmZvRGF0YSd9LCB7J3R5cGUnOiAnU3RyaW5nJywg
J3ZhbHVlJzogJ2hpJ30sIHsndHlwZSc6ICdTdHJpbmcnLCAndmFsdWUnOiAnYmFyJ31dKTs8L3Nj
cmlwdD4iXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwotCi0gICAgRVhQ
RUNUX1NUUkVRKFtwcm9tcHREZWZhdWx0IFVURjhTdHJpbmddLCAiYmFyIik7Ci0gICAgRVhQRUNU
X1NUUkVRKFtbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiSlNPTi5zdHJp
bmdpZnkocmVzdWx0LmFyZ3VtZW50cykiXSBVVEY4U3RyaW5nXSwgIlt7XCJ0eXBlXCI6XCJTdHJp
bmdcIixcInZhbHVlXCI6XCJmb29cIn1dIik7Ci19Ci0KLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKQotVEVTVChJUENUZXN0aW5nQVBJLCBEZWNvZGVzUmVwbHlBcmd1bWVudHNG
b3JBc3luY01lc3NhZ2UpCi17Ci0gICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOwotICAgIGZvciAoX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUgKmZlYXR1cmUgaW4gW1dL
UHJlZmVyZW5jZXMgX2ludGVybmFsRGVidWdGZWF0dXJlc10pIHsKLSAgICAgICAgaWYgKFtmZWF0
dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJJUENUZXN0aW5nQVBJRW5hYmxlZCJdKSB7Ci0gICAg
ICAgICAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JJ
bnRlcm5hbERlYnVnRmVhdHVyZTpmZWF0dXJlXTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICB9Ci0gICAgfQotICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAz
MDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7Ci0KLSAgICBhdXRv
IGRlbGVnYXRlID0gYWRvcHROUyhbW0lQQ1Rlc3RpbmdBUElEZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
OwotICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwotCi0gICAgZG9u
ZSA9IGZhbHNlOwotICAgIHByb21wdFJlc3VsdCA9IEAiZm9vIjsKLSAgICBbd2ViVmlldyBzeW5j
aHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8IURPQ1RZUEUgaHRtbD48c2NyaXB0PklQQy5zZW5k
TWVzc2FnZShcIk5ldHdvcmtpbmdcIiwgMCwgSVBDLm1lc3NhZ2VzLk5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzX0hhc1N0b3JhZ2VBY2Nlc3MubmFtZSwiCi0gICAgICAgICJbe3R5cGU6ICdS
ZWdpc3RyYWJsZURvbWFpbicsIHZhbHVlOiAnaHR0cHM6Ly9pcGN0ZXN0aW5nYXBpLmNvbSd9LCB7
dHlwZTogJ1JlZ2lzdHJhYmxlRG9tYWluJywgdmFsdWU6ICdodHRwczovL3dlYmtpdC5vcmcnfSwg
e3R5cGU6ICd1aW50NjRfdCcsIHZhbHVlOiBJUEMuZnJhbWVJRH0sIgotICAgICAgICAie3R5cGU6
ICd1aW50NjRfdCcsIHZhbHVlOiBJUEMucGFnZUlEfV0pLnRoZW4oKHJlc3VsdCkgPT4gYWxlcnQo
SlNPTi5zdHJpbmdpZnkocmVzdWx0LmFyZ3VtZW50cykpKTs8L3NjcmlwdD4iXTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwotCi0gICAgRVhQRUNUX1NUUkVRKFthbGVydE1l
c3NhZ2UgVVRGOFN0cmluZ10sICJbe1widHlwZVwiOlwiYm9vbFwiLFwidmFsdWVcIjpmYWxzZX1d
Iik7Ci19Ci0jZW5kaWYKLQotVEVTVChJUENUZXN0aW5nQVBJLCBEZXNjcmliZXNBcmd1bWVudHMp
Ci17Ci0gICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAgIGZv
ciAoX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUgKmZlYXR1cmUgaW4gW1dLUHJlZmVyZW5jZXMgX2lu
dGVybmFsRGVidWdGZWF0dXJlc10pIHsKLSAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFs
VG9TdHJpbmc6QCJJUENUZXN0aW5nQVBJRW5hYmxlZCJdKSB7Ci0gICAgICAgICAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JJbnRlcm5hbERlYnVnRmVh
dHVyZTpmZWF0dXJlXTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotICAg
IFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmln
dXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7Ci0KLSAgICBhdXRvIGRlbGVnYXRlID0gYWRv
cHROUyhbW0lQQ1Rlc3RpbmdBUElEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwotICAgIFt3ZWJWaWV3
IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwotCi0gICAgZG9uZSA9IGZhbHNlOwotICAg
IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjwhRE9DVFlQRSBodG1sPjxz
Y3JpcHQ+d2luZG93LmFyZ3MgPSBJUEMubWVzc2FnZXMuV2ViUGFnZVByb3h5X1J1bkphdmFTY3Jp
cHRBbGVydC5hcmd1bWVudHM7IGFsZXJ0KCdvaycpPC9zY3JpcHQ+Il07Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKLQotICAgIEVYUEVDVF9TVFJFUShbW3dlYlZpZXcgc3Ry
aW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImFyZ3MubGVuZ3RoIl0gVVRGOFN0cmluZ10sICIz
Iik7Ci0gICAgRVhQRUNUX1NUUkVRKFtbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2Ny
aXB0OkAiYXJnc1swXS50eXBlIl0gVVRGOFN0cmluZ10sICJXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIiKTsKLSAgICBFWFBFQ1RfU1RSRVEoW1t3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFT
Y3JpcHQ6QCJhcmdzWzFdLnR5cGUiXSBVVEY4U3RyaW5nXSwgIldlYktpdDo6RnJhbWVJbmZvRGF0
YSIpOwotICAgIEVYUEVDVF9TVFJFUShbW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNj
cmlwdDpAImFyZ3NbMl0ubmFtZSJdIFVURjhTdHJpbmddLCAibWVzc2FnZSIpOwotICAgIEVYUEVD
VF9TVFJFUShbW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImFyZ3NbMl0u
dHlwZSJdIFVURjhTdHJpbmddLCAiU3RyaW5nIik7Ci19Ci0KICNlbmRpZgo=
</data>
<flag name="commit-queue"
          id="427565"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>