<?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>159305</bug_id>
          
          <creation_ts>2016-06-30 10:29:30 -0700</creation_ts>
          <short_desc>REGRESSION(r202659): The test for this change times out on mac-wk2 debug and caused an existing test to crash. (Requested by ryanhaddad on #webkit).</short_desc>
          <delta_ts>2016-06-30 10:31:50 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>158210</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>bburg</cc>
    
    <cc>joepeck</cc>
    
    <cc>ryanhaddad</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1206767</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-30 10:29:30 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/202659 broke the build:
The test for this change times out on mac-wk2 debug and caused an existing test to crash. (Requested by ryanhaddad on #webkit).

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>1206769</commentid>
    <comment_count>1</comment_count>
      <attachid>282449</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-30 10:30:06 -0700</bug_when>
    <thetext>Created attachment 282449
ROLLOUT of r202659

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 rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout 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>1206770</commentid>
    <comment_count>2</comment_count>
      <attachid>282449</attachid>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-06-30 10:31:47 -0700</bug_when>
    <thetext>Comment on attachment 282449
ROLLOUT of r202659

Clearing flags on attachment: 282449

Committed r202684: &lt;http://trac.webkit.org/changeset/202684&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206771</commentid>
    <comment_count>3</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-06-30 10:31:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282449</attachid>
            <date>2016-06-30 10:30:06 -0700</date>
            <delta_ts>2016-06-30 10:31:47 -0700</delta_ts>
            <desc>ROLLOUT of r202659</desc>
            <filename>bug-159305-20160630102945.patch</filename>
            <type>text/plain</type>
            <size>71938</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyNjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MGUzNWFhMTM3ZGJhYzhmMjhmNDkxZTJkZjMxNGQ1ZWFlOGVkOTVkLi4wZGIzMGZhNGU0OTRlNDcw
ZTA2MDFlYmI4ZGMzMDgyMjliNDQyNzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxNi0wNi0zMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIwMjY1OS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTMwNQorCisgICAg
ICAgIFRoZSB0ZXN0IGZvciB0aGlzIGNoYW5nZSB0aW1lcyBvdXQgb24gbWFjLXdrMiBkZWJ1ZyBh
bmQgY2F1c2VkCisgICAgICAgIGFuIGV4aXN0aW5nIHRlc3QgdG8gY3Jhc2guIChSZXF1ZXN0ZWQg
YnkgcnlhbmhhZGRhZCBvbgorICAgICAgICAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBj
aGFuZ2VzZXQ6CisKKyAgICAgICAgIldlYiBJbnNwZWN0b3I6IFdyb25nIGZ1bmN0aW9uIG5hbWUg
bmV4dCB0byBzY29wZSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1ODIxMAorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8y
MDI2NTkKKwogMjAxNi0wNi0zMCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNv
bT4KIAogICAgICAgICBbSlNDXSBEYXRlLnNldFllYXIoKSBtaXNzZXMgdGltZUNsaXAoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggNDY0MWE2NTgxOTlkODNjZDc1MzNhZmI4MjA4ZjQ2YzM0
Y2RjZmRmYS4uNTFjYzgyYjUzYTgzNjI2ZTEyOGQ4ZDI1NWIwNGNhNGQyYzMwOGE4MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYtMDYtMzAgIENvbW1pdCBR
dWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyMDI2NTkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTkzMDUKKworICAgICAgICBUaGUgdGVzdCBmb3IgdGhpcyBjaGFuZ2UgdGlt
ZXMgb3V0IG9uIG1hYy13azIgZGVidWcgYW5kIGNhdXNlZAorICAgICAgICBhbiBleGlzdGluZyB0
ZXN0IHRvIGNyYXNoLiAoUmVxdWVzdGVkIGJ5IHJ5YW5oYWRkYWQgb24KKyAgICAgICAgI3dlYmtp
dCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJXZWIgSW5zcGVj
dG9yOiBXcm9uZyBmdW5jdGlvbiBuYW1lIG5leHQgdG8gc2NvcGUiCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgyMTAKKyAgICAgICAgaHR0cDovL3Ry
YWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjAyNjU5CisKIDIwMTYtMDYtMjkgIEpvc2VwaCBQZWNv
cmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBXcm9u
ZyBmdW5jdGlvbiBuYW1lIG5leHQgdG8gc2NvcGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCBiN2M2Y2YwNjQ2YWY1ZWY4ZTEzN2UyZDMyMGY1MDJjYWNiZDgzNzEwLi4wYWFj
MmYwOTJkY2UzNmYyNzUxZGVjYTNkZjE4ZWQ3Yjk2ODQyMTA1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0yMzksNyArMjM5LDYgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NP
VVJDRVMKIAogICAgIGRlYnVnZ2VyL0RlYnVnZ2VyLmNwcAogICAgIGRlYnVnZ2VyL0RlYnVnZ2Vy
Q2FsbEZyYW1lLmNwcAotICAgIGRlYnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24uY3BwCiAgICAgZGVi
dWdnZXIvRGVidWdnZXJTY29wZS5jcHAKIAogICAgIGRmZy9ERkdBYnN0cmFjdEhlYXAuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDcxYTQ5M2YzNzNmOTAyY2Q2ZmNlZmMyYzVm
ZTMxNGM0MTkwYjM1ZGQuLmI5MGU4ZTVjNmNlYjg5ZTRiNWUxZmY5MGY0MTk2N2VhZGQwZGQyNTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjQ1LDggKzE2NDUsNiBAQAogCQlB
NUVGOUIxNzFBMUQ0NDAzMDA3MDJFOTAgLyogZ2VuZXJhdGVfY3BwX2Zyb250ZW5kX2Rpc3BhdGNo
ZXJfaW1wbGVtZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDNEY0QjZENDFBMDVDNzZGMDA1Q0FCNzYgLyogZ2VuZXJhdGVfY3BwX2Zyb250
ZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkgKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTVFRjlCMTgxQTFENDQwNjAwNzAyRTkwIC8qIGdl
bmVyYXRlX2NwcF9wcm90b2NvbF90eXBlc19oZWFkZXIucHkgaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNEY0QjZENTFBMDVDNzZGMDA1Q0FCNzYgLyogZ2Vu
ZXJhdGVfY3BwX3Byb3RvY29sX3R5cGVzX2hlYWRlci5weSAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNUVGOUIxOTFBMUQ0NDA3MDA3MDJFOTAgLyog
Z2VuZXJhdGVfY3BwX3Byb3RvY29sX3R5cGVzX2ltcGxlbWVudGF0aW9uLnB5IGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzRGNEI2RDYxQTA1Qzc2RjAwNUNB
Qjc2IC8qIGdlbmVyYXRlX2NwcF9wcm90b2NvbF90eXBlc19pbXBsZW1lbnRhdGlvbi5weSAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlBNUZDODRCMjFE
MUREQUQ2MDA2QjVDNDYgLyogRGVidWdnZXJMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTVGQzg0QjExRDFEREFDODAwNkI1QzQ2IC8qIERl
YnVnZ2VyTG9jYXRpb24uaCAqLzsgfTsKLQkJQTVGQzg0QjMxRDFEREFEOTAwNkI1QzQ2IC8qIERl
YnVnZ2VyTG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTVGQzg0QjAxRDFEREFDODAwNkI1QzQ2IC8qIERlYnVnZ2VyTG9jYXRpb24uY3Bw
ICovOyB9OwogCQlBNUZEMDA2NzE4OUFGRTlDMDA2MzMyMzEgLyogU2NyaXB0QXJndW1lbnRzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1RkQwMDY1
MTg5QUZFOUMwMDYzMzIzMSAvKiBTY3JpcHRBcmd1bWVudHMuY3BwICovOyB9OwogCQlBNUZEMDA2
ODE4OUFGRTlDMDA2MzMyMzEgLyogU2NyaXB0QXJndW1lbnRzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNUZEMDA2NjE4OUFGRTlDMDA2MzMyMzEgLyog
U2NyaXB0QXJndW1lbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQTVGRDAwNkQxODlCMDBBQTAwNjMzMjMxIC8qIFNjcmlwdENhbGxGcmFtZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNUZEMDA2
OTE4OUIwMEE5MDA2MzMyMzEgLyogU2NyaXB0Q2FsbEZyYW1lLmNwcCAqLzsgfTsKQEAgLTM4Njks
OCArMzg2Nyw2IEBACiAJCUE1RUE3MEY2MTlGNkRFNUEwMDk4RjVFQyAvKiBnZW5lcmF0ZV9vYmpj
X2ludGVybmFsX2hlYWRlci5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9
IGdlbmVyYXRlX29iamNfaW50ZXJuYWxfaGVhZGVyLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBNUVBNzBGODE5RjZERTVBMDA5OEY1RUMgLyogb2JqY19nZW5lcmF0b3IucHkgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSBvYmpjX2dlbmVyYXRvci5weTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTVFQTcxMEQxOUY2REY4MTAwOThGNUVDIC8qIElu
c3BlY3RvckFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTVGQzg0QjAxRDFEREFDODAwNkI1QzQ2IC8qIERl
YnVnZ2VyTG9jYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RGVidWdnZXJMb2NhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE1RkM4
NEIxMUQxRERBQzgwMDZCNUM0NiAvKiBEZWJ1Z2dlckxvY2F0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERlYnVnZ2VyTG9jYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTVGRDAwNjUxODlBRkU5QzAwNjMzMjMxIC8qIFNjcmlwdEFyZ3VtZW50cy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRBcmd1bWVudHMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNUZEMDA2NjE4OUFGRTlDMDA2MzMy
MzEgLyogU2NyaXB0QXJndW1lbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNjcmlwdEFyZ3VtZW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNUZEMDA2
OTE4OUIwMEE5MDA2MzMyMzEgLyogU2NyaXB0Q2FsbEZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdENhbGxGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC01MzQ4LDggKzUzNDQsNiBAQAogCQkJCTE0OTU1OUVEMEREQ0RERjcw
MDY0ODA4NyAvKiBEZWJ1Z2dlckNhbGxGcmFtZS5jcHAgKi8sCiAJCQkJMTQ4MERCOUIwRERDMjI3
RjAwM0NGREYyIC8qIERlYnVnZ2VyQ2FsbEZyYW1lLmggKi8sCiAJCQkJNkFEMkNCNEMxOUI5MTQw
MTAwMDY1NzE5IC8qIERlYnVnZ2VyRXZhbEVuYWJsZXIuaCAqLywKLQkJCQlBNUZDODRCMDFEMURE
QUM4MDA2QjVDNDYgLyogRGVidWdnZXJMb2NhdGlvbi5jcHAgKi8sCi0JCQkJQTVGQzg0QjExRDFE
REFDODAwNkI1QzQ2IC8qIERlYnVnZ2VyTG9jYXRpb24uaCAqLywKIAkJCQlGRUEwODYxRjE4MkI3
QTA0MDBGNkQ4NTEgLyogRGVidWdnZXJQcmltaXRpdmVzLmggKi8sCiAJCQkJMEYyRDREREIxOTgz
MkQzNDAwN0Q0QjE5IC8qIERlYnVnZ2VyU2NvcGUuY3BwICovLAogCQkJCTBGMkQ0RERDMTk4MzJE
MzQwMDdENEIxOSAvKiBEZWJ1Z2dlclNjb3BlLmggKi8sCkBAIC03NzAxLDcgKzc2OTUsNiBAQAog
CQkJCTk5NkI3MzFDMUJEQTA4REQwMDMzMUI4NCAvKiBKU0RhdGFWaWV3UHJvdG90eXBlLmx1dC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTc4ODAxNDExNDcxQUQ5MjAwNDFCMDE2IC8qIEpTRGF0ZU1h
dGguaCBpbiBIZWFkZXJzICovLAogCQkJCUMyQTdGNjg4MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rl
c3RydWN0aWJsZU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTVGQzg0QjIxRDFEREFENjAw
NkI1QzQ2IC8qIERlYnVnZ2VyTG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUZFMzg0RUU2
MUFEREI3QUQwMDU1REUyQyAvKiBKU0RvbGxhclZNLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTM4
NEVFODFBRERCN0FEMDA1NURFMkMgLyogSlNEb2xsYXJWTVByb3RvdHlwZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkMxOEM0MkQwRTE2RjVDRDAwQjM0NDYwIC8qIEpTRW52aXJvbm1lbnRSZWNvcmQu
aCBpbiBIZWFkZXJzICovLApAQCAtODc4MSw3ICs4Nzc0LDYgQEAKIAkJCQlBNTdEMjNGMTE4OTFC
NUI0MDAzMUM3RkEgLyogQ29udGVudFNlYXJjaFV0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1MkI3MTdCNTFBMDU5N0UxMDA3QUY0RjMgLyogQ29udHJvbEZsb3dQcm9maWxlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRkJBREY1NDFCRDFGNEI4MDBFMDczQzEgLyogQ29waWVkQmxv
Y2suY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTVGQzg0QjMxRDFEREFEOTAwNkI1QzQ2IC8qIERl
YnVnZ2VyTG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzI0MDMwNTUxNEI0MDRFNjAw
NzlFQjY0IC8qIENvcGllZFNwYWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNjE4MzMwMUM0
NUJGMDcwMDcyNDUwQiAvKiBBaXJMb3dlck1hY3Jvcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlD
MjIzOUQxNzE2MjYyQkREMDA1QUM1RkQgLyogQ29weVZpc2l0b3IuY3BwIGluIFNvdXJjZXMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IGZl
MWZhMjZkNWQyMWY2NWE5NmU5YTI4NzM5YzU5NmRhNjI1N2E1MmQuLmJiNzI4N2RmNmUyZTQxOTdl
N2JlZDA5NDM3NDYxMjI0MzFjNjhmOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suY3BwCkBAIC0yNDc5LDEyICsyNDc5LDcgQEAgdm9pZCBDb2RlQmxvY2s6
OnNldENvbnN0YW50UmVnaXN0ZXJzKGNvbnN0IFZlY3RvcjxXcml0ZUJhcnJpZXI8VW5rbm93bj4+
JiBjb25zdGEKICAgICAgICAgICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIo
c3ltYm9sVGFibGUtPm1fbG9jayk7CiAgICAgICAgICAgICAgICAgICAgIHN5bWJvbFRhYmxlLT5w
cmVwYXJlRm9yVHlwZVByb2ZpbGluZyhsb2NrZXIpOwogICAgICAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgICAgIFN5bWJvbFRhYmxlKiBjbG9uZSA9IHN5bWJvbFRhYmxlLT5jbG9uZVNjb3Bl
UGFydCgqbV92bSk7Ci0gICAgICAgICAgICAgICAgaWYgKHdhc0NvbXBpbGVkV2l0aERlYnVnZ2lu
Z09wY29kZXMoKSkKLSAgICAgICAgICAgICAgICAgICAgY2xvbmUtPnNldFJhcmVEYXRhQ29kZUJs
b2NrKHRoaXMpOwotCi0gICAgICAgICAgICAgICAgY29uc3RhbnQgPSBjbG9uZTsKKyAgICAgICAg
ICAgICAgICBjb25zdGFudCA9IHN5bWJvbFRhYmxlLT5jbG9uZVNjb3BlUGFydCgqbV92bSk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMjgxMDRlNWVhOWZkM2Q3NDMxYzJmMzUzZTJjNGY0ZDU5NzY4ODNlLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRlYnVnZ2VyTG9jYXRpb24uaCIKLQotI2luY2x1
ZGUgIkV4ZWN1dGFibGUuaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLURlYnVnZ2VyTG9jYXRpb246
OkRlYnVnZ2VyTG9jYXRpb24oU2NyaXB0RXhlY3V0YWJsZSogZXhlY3V0YWJsZSkKLXsKLSAgICBp
ZiAoZXhlY3V0YWJsZS0+aXNIb3N0RnVuY3Rpb24oKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
c291cmNlSUQgPSBleGVjdXRhYmxlLT5zb3VyY2VJRCgpOwotICAgIGxpbmUgPSBleGVjdXRhYmxl
LT5maXJzdExpbmUoKTsKLSAgICBjb2x1bW4gPSBleGVjdXRhYmxlLT5zdGFydENvbHVtbigpOwot
ICAgIHVybCA9IGV4ZWN1dGFibGUtPnNvdXJjZVVSTCgpOwotICAgIGlmICh1cmwuaXNFbXB0eSgp
KQotICAgICAgICB1cmwgPSBleGVjdXRhYmxlLT5zb3VyY2UoKS5wcm92aWRlcigpLT5zb3VyY2VV
UkwoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJMb2NhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggM2UxYzQxNjZiMGE3ZTkwNDEwNjc3ZDZiODI2ZjFkNjIxZjI5NGU1NS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJMb2NhdGlvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jcHJh
Z21hIG9uY2UKLQotI2luY2x1ZGUgIkRlYnVnZ2VyUHJpbWl0aXZlcy5oIgotI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgSlNDIHsKLQotY2xhc3MgU2NyaXB0RXhl
Y3V0YWJsZTsKLQotc3RydWN0IERlYnVnZ2VyTG9jYXRpb24gewotCi0gICAgRGVidWdnZXJMb2Nh
dGlvbigpIHsgfQotICAgIERlYnVnZ2VyTG9jYXRpb24oY29uc3QgU3RyaW5nJiB1cmwsIGludHB0
cl90IHNvdXJjZUlELCB1bnNpZ25lZCBsaW5lLCB1bnNpZ25lZCBjb2x1bW4pCi0gICAgICAgIDog
dXJsKHVybCkKLSAgICAgICAgLCBzb3VyY2VJRChzb3VyY2VJRCkKLSAgICAgICAgLCBsaW5lKGxp
bmUpCi0gICAgICAgICwgY29sdW1uKGNvbHVtbikKLSAgICB7IH0KLQotICAgIERlYnVnZ2VyTG9j
YXRpb24oU2NyaXB0RXhlY3V0YWJsZSopOwotCi0gICAgU3RyaW5nIHVybDsKLSAgICBpbnRwdHJf
dCBzb3VyY2VJRCB7IG5vU291cmNlSUQgfTsKLSAgICB1bnNpZ25lZCBsaW5lIHsgMCB9OwotICAg
IHVuc2lnbmVkIGNvbHVtbiB7IDAgfTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyU2NvcGUuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyU2NvcGUuY3BwCmluZGV4IDMx
MDZmYmI3NDczNGFhOTZhZDNmYTgyOTMxZjc2NDEyZjM5MDg1ZGEuLjAxZDQzMjIxNDVhZmZkOWU1
NDQ2ZDkyZWUwMmVjYjU2ZDgxY2Y0MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlclNjb3BlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXJTY29wZS5jcHAKQEAgLTIxMCwzMyArMjEwLDYgQEAgYm9vbCBEZWJ1
Z2dlclNjb3BlOjppc05lc3RlZExleGljYWxTY29wZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fc2Nv
cGUtPmlzTmVzdGVkTGV4aWNhbFNjb3BlKCk7CiB9CiAKLVN0cmluZyBEZWJ1Z2dlclNjb3BlOjpu
YW1lKCkgY29uc3QKLXsKLSAgICBTeW1ib2xUYWJsZSogc3ltYm9sVGFibGUgPSBtX3Njb3BlLT5z
eW1ib2xUYWJsZSgpOwotICAgIGlmICghc3ltYm9sVGFibGUpCi0gICAgICAgIHJldHVybiBTdHJp
bmcoKTsKLQotICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gc3ltYm9sVGFibGUtPnJhcmVEYXRh
Q29kZUJsb2NrKCk7Ci0gICAgaWYgKCFjb2RlQmxvY2spCi0gICAgICAgIHJldHVybiBTdHJpbmco
KTsKLQotICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KGNvZGVCbG9jay0+aW5mZXJyZWROYW1l
KCkpOwotfQotCi1EZWJ1Z2dlckxvY2F0aW9uIERlYnVnZ2VyU2NvcGU6OmxvY2F0aW9uKCkgY29u
c3QKLXsKLSAgICBTeW1ib2xUYWJsZSogc3ltYm9sVGFibGUgPSBtX3Njb3BlLT5zeW1ib2xUYWJs
ZSgpOwotICAgIGlmICghc3ltYm9sVGFibGUpCi0gICAgICAgIHJldHVybiBEZWJ1Z2dlckxvY2F0
aW9uKCk7Ci0KLSAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IHN5bWJvbFRhYmxlLT5yYXJlRGF0
YUNvZGVCbG9jaygpOwotICAgIGlmICghY29kZUJsb2NrKQotICAgICAgICByZXR1cm4gRGVidWdn
ZXJMb2NhdGlvbigpOwotCi0gICAgU2NyaXB0RXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IGNvZGVC
bG9jay0+b3duZXJTY3JpcHRFeGVjdXRhYmxlKCk7Ci0gICAgcmV0dXJuIERlYnVnZ2VyTG9jYXRp
b24oZXhlY3V0YWJsZSk7Ci19Ci0KIEpTVmFsdWUgRGVidWdnZXJTY29wZTo6Y2F1Z2h0VmFsdWUo
RXhlY1N0YXRlKiBleGVjKSBjb25zdAogewogICAgIEFTU0VSVChpc0NhdGNoU2NvcGUoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJTY29wZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyU2NvcGUuaAppbmRleCBl
Mjg3MzllYTNhNDM5YWNmZjJhOWU3MWVhMGNjZjkxODk4M2JlODg1Li5lMWU4ZDAyM2M2NzhjMjMy
YWJhNDAyZTA5M2UxNzE5YTE2Njc1ZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJTY29wZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZWJ1Z2dlci9EZWJ1Z2dlclNjb3BlLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNpZm5kZWYgRGVidWdn
ZXJTY29wZV9oCiAjZGVmaW5lIERlYnVnZ2VyU2NvcGVfaAogCi0jaW5jbHVkZSAiRGVidWdnZXJM
b2NhdGlvbi5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAKIG5hbWVzcGFjZSBKU0MgewpAQCAt
ODksOSArODgsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0dsb2JhbExleGljYWxFbnZpcm9ubWVu
dCgpIGNvbnN0OwogICAgIGJvb2wgaXNOZXN0ZWRMZXhpY2FsU2NvcGUoKSBjb25zdDsKIAotICAg
IFN0cmluZyBuYW1lKCkgY29uc3Q7Ci0gICAgRGVidWdnZXJMb2NhdGlvbiBsb2NhdGlvbigpIGNv
bnN0OwotCiAgICAgSlNWYWx1ZSBjYXVnaHRWYWx1ZShFeGVjU3RhdGUqKSBjb25zdDsKIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHRTb3VyY2UuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVj
dGVkU2NyaXB0U291cmNlLmpzCmluZGV4IDA4MTQ4ZDM3NGVjMGIwMjUyM2NhNTM4MTlhOTAyY2Qz
NTY5ZjliYmIuLjIyYzkwOGVmYjkxZWVlMDBlNDAyZjkwOTNhYzljYTA1ZDgzMjM2MmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3Vy
Y2UuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlw
dFNvdXJjZS5qcwpAQCAtMTMwNCwxMSArMTMwNCw5IEBAIEluamVjdGVkU2NyaXB0LkNhbGxGcmFt
ZVByb3h5LnByb3RvdHlwZSA9IHsKICAgICBfd3JhcFNjb3BlQ2hhaW46IGZ1bmN0aW9uKGNhbGxG
cmFtZSkKICAgICB7CiAgICAgICAgIHZhciBzY29wZUNoYWluID0gY2FsbEZyYW1lLnNjb3BlQ2hh
aW47Ci0gICAgICAgIHZhciBzY29wZURlc2NyaXB0aW9ucyA9IGNhbGxGcmFtZS5zY29wZURlc2Ny
aXB0aW9ucygpOwotCiAgICAgICAgIHZhciBzY29wZUNoYWluUHJveHkgPSBbXTsKICAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBzY29wZUNoYWluLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAg
c2NvcGVDaGFpblByb3h5W2ldID0gSW5qZWN0ZWRTY3JpcHQuQ2FsbEZyYW1lUHJveHkuX2NyZWF0
ZVNjb3BlSnNvbihzY29wZUNoYWluW2ldLCBzY29wZURlc2NyaXB0aW9uc1tpXSwgImJhY2t0cmFj
ZSIpOworICAgICAgICAgICAgc2NvcGVDaGFpblByb3h5W2ldID0gSW5qZWN0ZWRTY3JpcHQuQ2Fs
bEZyYW1lUHJveHkuX2NyZWF0ZVNjb3BlSnNvbihjYWxsRnJhbWUuc2NvcGVUeXBlKGkpLCBzY29w
ZUNoYWluW2ldLCAiYmFja3RyYWNlIik7CiAgICAgICAgIHJldHVybiBzY29wZUNoYWluUHJveHk7
CiAgICAgfQogfQpAQCAtMTMyMSwyMSArMTMxOSwxNCBAQCBJbmplY3RlZFNjcmlwdC5DYWxsRnJh
bWVQcm94eS5fc2NvcGVUeXBlTmFtZXMgPSB7CiAgICAgNDogImZ1bmN0aW9uTmFtZSIsIC8vIEZV
TkNUSU9OX05BTUVfU0NPUEUKICAgICA1OiAiZ2xvYmFsTGV4aWNhbEVudmlyb25tZW50IiwgLy8g
R0xPQkFMX0xFWElDQUxfRU5WSVJPTk1FTlRfU0NPUEUKICAgICA2OiAibmVzdGVkTGV4aWNhbCIs
IC8vIE5FU1RFRF9MRVhJQ0FMX1NDT1BFCi19OworfQogCi1JbmplY3RlZFNjcmlwdC5DYWxsRnJh
bWVQcm94eS5fY3JlYXRlU2NvcGVKc29uID0gZnVuY3Rpb24ob2JqZWN0LCB7bmFtZSwgdHlwZSwg
bG9jYXRpb259LCBncm91cElkKQorSW5qZWN0ZWRTY3JpcHQuQ2FsbEZyYW1lUHJveHkuX2NyZWF0
ZVNjb3BlSnNvbiA9IGZ1bmN0aW9uKHNjb3BlVHlwZUNvZGUsIHNjb3BlT2JqZWN0LCBncm91cElk
KQogewotICAgIHZhciBzY29wZSA9IHsKLSAgICAgICAgb2JqZWN0OiBpbmplY3RlZFNjcmlwdC5f
d3JhcE9iamVjdChvYmplY3QsIGdyb3VwSWQpLAotICAgICAgICB0eXBlOiBJbmplY3RlZFNjcmlw
dC5DYWxsRnJhbWVQcm94eS5fc2NvcGVUeXBlTmFtZXNbdHlwZV0sCisgICAgcmV0dXJuIHsKKyAg
ICAgICAgb2JqZWN0OiBpbmplY3RlZFNjcmlwdC5fd3JhcE9iamVjdChzY29wZU9iamVjdCwgZ3Jv
dXBJZCksCisgICAgICAgIHR5cGU6IEluamVjdGVkU2NyaXB0LkNhbGxGcmFtZVByb3h5Ll9zY29w
ZVR5cGVOYW1lc1tzY29wZVR5cGVDb2RlXQogICAgIH07Ci0KLSAgICBpZiAobmFtZSkKLSAgICAg
ICAgc2NvcGUubmFtZSA9IG5hbWU7Ci0gICAgaWYgKGxvY2F0aW9uKQotICAgICAgICBzY29wZS5s
b2NhdGlvbiA9IGxvY2F0aW9uOwotCi0gICAgcmV0dXJuIHNjb3BlOwogfQogCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1l
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZy
YW1lLmNwcAppbmRleCBhMWRhYjUxMGMxZDA1NDUyZDVkY2NlOTczOWEzODVkMmE2MDI4YzFmLi4x
MGIyY2QwMjYzYzMzMWM4ZWUzNWFhNzNiNTM4MjRiNzE1YWZhZmU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxsRnJhbWUu
Y3BwCkBAIC0yOCwxMSArMjgsOSBAQAogCiAjaW5jbHVkZSAiRGVidWdnZXJTY29wZS5oIgogI2lu
Y2x1ZGUgIkVycm9yLmgiCi0jaW5jbHVkZSAiSWRlbnRpZmllcklubGluZXMuaCIKICNpbmNsdWRl
ICJKU0NKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5oIgogI2luY2x1ZGUgIkpT
SmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5oIgotI2luY2x1ZGUgIk9iamVjdENvbnN0cnVj
dG9yLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlSW5saW5lcy5oIgogCiB1c2luZyBuYW1lc3BhY2Ug
SlNDOwpAQCAtOTQsNTggKzkyLDQ1IEBAIEpTVmFsdWUgSlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjpl
dmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAotc3RhdGljIEpTVmFsdWUgdmFsdWVGb3JTY29wZVR5cGUoRGVidWdnZXJTY29w
ZSogc2NvcGUpCitKU1ZhbHVlIEpTSmF2YVNjcmlwdENhbGxGcmFtZTo6c2NvcGVUeXBlKEV4ZWNT
dGF0ZSogZXhlYykKIHsKLSAgICBpZiAoc2NvcGUtPmlzQ2F0Y2hTY29wZSgpKQotICAgICAgICBy
ZXR1cm4ganNOdW1iZXIoSlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjpDQVRDSF9TQ09QRSk7Ci0gICAg
aWYgKHNjb3BlLT5pc0Z1bmN0aW9uTmFtZVNjb3BlKCkpCi0gICAgICAgIHJldHVybiBqc051bWJl
cihKU0phdmFTY3JpcHRDYWxsRnJhbWU6OkZVTkNUSU9OX05BTUVfU0NPUEUpOwotICAgIGlmIChz
Y29wZS0+aXNXaXRoU2NvcGUoKSkKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKEpTSmF2YVNjcmlw
dENhbGxGcmFtZTo6V0lUSF9TQ09QRSk7Ci0gICAgaWYgKHNjb3BlLT5pc05lc3RlZExleGljYWxT
Y29wZSgpKQotICAgICAgICByZXR1cm4ganNOdW1iZXIoSlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjpO
RVNURURfTEVYSUNBTF9TQ09QRSk7Ci0gICAgaWYgKHNjb3BlLT5pc0dsb2JhbExleGljYWxFbnZp
cm9ubWVudCgpKQotICAgICAgICByZXR1cm4ganNOdW1iZXIoSlNKYXZhU2NyaXB0Q2FsbEZyYW1l
OjpHTE9CQUxfTEVYSUNBTF9FTlZJUk9OTUVOVF9TQ09QRSk7Ci0gICAgaWYgKHNjb3BlLT5pc0ds
b2JhbFNjb3BlKCkpCi0gICAgICAgIHJldHVybiBqc051bWJlcihKU0phdmFTY3JpcHRDYWxsRnJh
bWU6OkdMT0JBTF9TQ09QRSk7Ci0KLSAgICBBU1NFUlQoc2NvcGUtPmlzQ2xvc3VyZVNjb3BlKCkp
OwotICAgIHJldHVybiBqc051bWJlcihKU0phdmFTY3JpcHRDYWxsRnJhbWU6OkNMT1NVUkVfU0NP
UEUpOwotfQotCi1zdGF0aWMgSlNWYWx1ZSB2YWx1ZUZvclNjb3BlTG9jYXRpb24oRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBEZWJ1Z2dlckxvY2F0aW9uJiBsb2NhdGlvbikKLXsKLSAgICBpZiAobG9j
YXRpb24uc291cmNlSUQgPT0gbm9Tb3VyY2VJRCkKLSAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwot
Ci0gICAgLy8gRGVidWdnZXIuTG9jYXRpb24gcHJvdG9jb2wgb2JqZWN0LgotICAgIEpTT2JqZWN0
KiByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChleGVjKTsKLSAgICByZXN1bHQtPnB1dERp
cmVjdChleGVjLT52bSgpLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsICJzY3JpcHRJZCIp
LCBqc1N0cmluZyhleGVjLCBTdHJpbmc6Om51bWJlcihsb2NhdGlvbi5zb3VyY2VJRCkpKTsKLSAg
ICByZXN1bHQtPnB1dERpcmVjdChleGVjLT52bSgpLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4
ZWMsICJsaW5lTnVtYmVyIiksIGpzTnVtYmVyKGxvY2F0aW9uLmxpbmUpKTsKLSAgICByZXN1bHQt
PnB1dERpcmVjdChleGVjLT52bSgpLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsICJjb2x1
bW5OdW1iZXIiKSwganNOdW1iZXIobG9jYXRpb24uY29sdW1uKSk7Ci0gICAgcmV0dXJuIHJlc3Vs
dDsKLX0KLQotSlNWYWx1ZSBKU0phdmFTY3JpcHRDYWxsRnJhbWU6OnNjb3BlRGVzY3JpcHRpb25z
KEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBEZWJ1Z2dlclNjb3BlKiBzY29wZUNoYWluID0gaW1w
bCgpLnNjb3BlQ2hhaW4oKTsKLSAgICBpZiAoIXNjb3BlQ2hhaW4pCisgICAgaWYgKCFpbXBsKCku
c2NvcGVDaGFpbigpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAotICAgIGludCBp
bmRleCA9IDA7Ci0gICAgSlNBcnJheSogYXJyYXkgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGV4ZWMs
IG51bGxwdHIpOworICAgIGlmICghZXhlYy0+YXJndW1lbnQoMCkuaXNJbnQzMigpKQorICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICBpbnQgaW5kZXggPSBleGVjLT5hcmd1bWVudCgw
KS5hc0ludDMyKCk7CiAKKyAgICBEZWJ1Z2dlclNjb3BlKiBzY29wZUNoYWluID0gaW1wbCgpLnNj
b3BlQ2hhaW4oKTsKICAgICBEZWJ1Z2dlclNjb3BlOjppdGVyYXRvciBlbmQgPSBzY29wZUNoYWlu
LT5lbmQoKTsKKwogICAgIGZvciAoRGVidWdnZXJTY29wZTo6aXRlcmF0b3IgaXRlciA9IHNjb3Bl
Q2hhaW4tPmJlZ2luKCk7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpIHsKICAgICAgICAgRGVidWdnZXJT
Y29wZSogc2NvcGUgPSBpdGVyLmdldCgpOwotICAgICAgICBKU09iamVjdCogZGVzY3JpcHRpb24g
PSBjb25zdHJ1Y3RFbXB0eU9iamVjdChleGVjKTsKLSAgICAgICAgZGVzY3JpcHRpb24tPnB1dERp
cmVjdChleGVjLT52bSgpLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsICJ0eXBlIiksIHZh
bHVlRm9yU2NvcGVUeXBlKHNjb3BlKSk7Ci0gICAgICAgIGRlc2NyaXB0aW9uLT5wdXREaXJlY3Qo
ZXhlYy0+dm0oKSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCAibmFtZSIpLCBqc1N0cmlu
ZyhleGVjLCBzY29wZS0+bmFtZSgpKSk7Ci0gICAgICAgIGRlc2NyaXB0aW9uLT5wdXREaXJlY3Qo
ZXhlYy0+dm0oKSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCAibG9jYXRpb24iKSwgdmFs
dWVGb3JTY29wZUxvY2F0aW9uKGV4ZWMsIHNjb3BlLT5sb2NhdGlvbigpKSk7Ci0gICAgICAgIGFy
cmF5LT5wdXREaXJlY3RJbmRleChleGVjLCBpbmRleCsrLCBkZXNjcmlwdGlvbik7CisKKyAgICAg
ICAgaWYgKCFpbmRleCkgeworICAgICAgICAgICAgaWYgKHNjb3BlLT5pc0NhdGNoU2NvcGUoKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4ganNOdW1iZXIoSlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjpD
QVRDSF9TQ09QRSk7CisgICAgICAgICAgICBpZiAoc2NvcGUtPmlzRnVuY3Rpb25OYW1lU2NvcGUo
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4ganNOdW1iZXIoSlNKYXZhU2NyaXB0Q2FsbEZyYW1l
OjpGVU5DVElPTl9OQU1FX1NDT1BFKTsKKyAgICAgICAgICAgIGlmIChzY29wZS0+aXNXaXRoU2Nv
cGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4ganNOdW1iZXIoSlNKYXZhU2NyaXB0Q2FsbEZy
YW1lOjpXSVRIX1NDT1BFKTsKKyAgICAgICAgICAgIGlmIChzY29wZS0+aXNOZXN0ZWRMZXhpY2Fs
U2NvcGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4ganNOdW1iZXIoSlNKYXZhU2NyaXB0Q2Fs
bEZyYW1lOjpORVNURURfTEVYSUNBTF9TQ09QRSk7CisgICAgICAgICAgICBpZiAoc2NvcGUtPmlz
R2xvYmFsTGV4aWNhbEVudmlyb25tZW50KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGpzTnVt
YmVyKEpTSmF2YVNjcmlwdENhbGxGcmFtZTo6R0xPQkFMX0xFWElDQUxfRU5WSVJPTk1FTlRfU0NP
UEUpOworICAgICAgICAgICAgaWYgKHNjb3BlLT5pc0dsb2JhbFNjb3BlKCkpIHsKKyAgICAgICAg
ICAgICAgICBBU1NFUlQoKytpdGVyID09IGVuZCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGpz
TnVtYmVyKEpTSmF2YVNjcmlwdENhbGxGcmFtZTo6R0xPQkFMX1NDT1BFKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIEFTU0VSVChzY29wZS0+aXNDbG9zdXJlU2NvcGUoKSk7CisgICAgICAg
ICAgICByZXR1cm4ganNOdW1iZXIoSlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjpDTE9TVVJFX1NDT1BF
KTsKKyAgICAgICAgfQorCisgICAgICAgIC0taW5kZXg7CiAgICAgfQogCi0gICAgcmV0dXJuIGFy
cmF5OworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwogfQogCiBKU1ZhbHVlIEpTSmF2YVNjcmlwdENhbGxGcmFtZTo6Y2FsbGVyKEV4ZWNTdGF0ZSog
ZXhlYykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
SlNKYXZhU2NyaXB0Q2FsbEZyYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0pTSmF2YVNjcmlwdENhbGxGcmFtZS5oCmluZGV4IDBmNzMzNWM3Zjk5NzRlMjg1NmI1YjQ3ZjQy
ZGM5YjZiMjg4YjRmYzYuLmM0YjBiMzZlMGUxMWJmNjRkZTVhYTkxN2FlYjg4YTllMjQ3MzI2ZWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNKYXZhU2NyaXB0
Q2FsbEZyYW1lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFT
Y3JpcHRDYWxsRnJhbWUuaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBGdW5j
dGlvbnMuCiAgICAgSlNDOjpKU1ZhbHVlIGV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uKEpTQzo6
RXhlY1N0YXRlKik7Ci0gICAgSlNDOjpKU1ZhbHVlIHNjb3BlRGVzY3JpcHRpb25zKEpTQzo6RXhl
Y1N0YXRlKik7CisgICAgSlNDOjpKU1ZhbHVlIHNjb3BlVHlwZShKU0M6OkV4ZWNTdGF0ZSopOwog
CiAgICAgLy8gQXR0cmlidXRlcy4KICAgICBKU0M6OkpTVmFsdWUgY2FsbGVyKEpTQzo6RXhlY1N0
YXRlKikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0pTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5jcHAKaW5kZXggYzZm
YzJjNmI1MDY4NWMxMjRiMmVhYzBhYzRiZjQzZTkxYjA5OTUwZS4uM2FmMzllNTdkOGEzZGMzMjI2
MGYxNGIzNThhZTdkNjBiNmYwYzI5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBl
LmNwcApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogLy8gRnVuY3Rp
b25zLgogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2Fs
bEZyYW1lUHJvdG90eXBlRnVuY3Rpb25FdmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbihFeGVjU3Rh
dGUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENh
bGxGcmFtZVByb3RvdHlwZUZ1bmN0aW9uU2NvcGVEZXNjcmlwdGlvbnMoRXhlY1N0YXRlKik7Citz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVQ
cm90b3R5cGVGdW5jdGlvblNjb3BlVHlwZShFeGVjU3RhdGUqKTsKIAogLy8gQXR0cmlidXRlcy4K
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFt
ZUF0dHJpYnV0ZUNhbGxlcihFeGVjU3RhdGUqKTsKQEAgLTYxLDcgKzYxLDcgQEAgdm9pZCBKU0ph
dmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QqIGdsb2IKICAgICB2bS5wcm90b3R5cGVNYXAuYWRkUHJvdG90eXBlKHRoaXMpOwog
CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImV2YWx1YXRlV2l0
aFNjb3BlRXh0ZW5zaW9uIiwganNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlRnVuY3Rpb25F
dmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbiwgRG9udEVudW0sIDEpOwotICAgIEpTQ19OQVRJVkVf
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJzY29wZURlc2NyaXB0aW9ucyIsIGpzSmF2YVNj
cmlwdENhbGxGcmFtZVByb3RvdHlwZUZ1bmN0aW9uU2NvcGVEZXNjcmlwdGlvbnMsIERvbnRFbnVt
LCAwKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigic2NvcGVU
eXBlIiwganNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlRnVuY3Rpb25TY29wZVR5cGUsIERv
bnRFbnVtLCAxKTsKIAogICAgIEpTQ19OQVRJVkVfR0VUVEVSKCJjYWxsZXIiLCBqc0phdmFTY3Jp
cHRDYWxsRnJhbWVBdHRyaWJ1dGVDYWxsZXIsIERvbnRFbnVtIHwgQWNjZXNzb3IpOwogICAgIEpT
Q19OQVRJVkVfR0VUVEVSKCJzb3VyY2VJRCIsIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0
ZVNvdXJjZUlELCBEb250RW51bSB8IEFjY2Vzc29yKTsKQEAgLTg0LDE0ICs4NCwxNCBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZUZ1
bmN0aW9uRXZhbHVhdGVXaXRoUwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhp
cy0+ZXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24oZXhlYykpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZUZ1bmN0aW9uU2Nv
cGVEZXNjcmlwdGlvbnMoRXhlY1N0YXRlKiBleGVjKQorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGVGdW5jdGlvblNjb3BlVHlwZShFeGVj
U3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUo
KTsKICAgICBKU0phdmFTY3JpcHRDYWxsRnJhbWUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0
PEpTSmF2YVNjcmlwdENhbGxGcmFtZSo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKCFjYXN0ZWRUaGlz
KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIAotICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+c2NvcGVEZXNjcmlwdGlvbnMoZXhlYykpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+c2NvcGVUeXBlKGV4ZWMpKTsKIH0K
IAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRy
aWJ1dGVDYWxsZXIoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9EZWJ1Z2dlci5qc29uIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9EZWJ1Z2dlci5qc29uCmluZGV4IGMyNWM5ZGZiZDI3
Mzc2N2NlYWNjNmE3YmVjMDYyMGE3YjBmNDliYzMuLjk0OTQxOGZkYjJhMzc4NmE3YmE0NTgwZTIy
Yzc2ZTliNTRlYWZiZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvcHJvdG9jb2wvRGVidWdnZXIuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3Byb3RvY29sL0RlYnVnZ2VyLmpzb24KQEAgLTgxLDEwICs4MSw4IEBACiAgICAgICAg
ICAgICAiaWQiOiAiU2NvcGUiLAogICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAg
ICAgICAgICJwcm9wZXJ0aWVzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2JqZWN0
IiwgIiRyZWYiOiAiUnVudGltZS5SZW1vdGVPYmplY3QiLCAiZGVzY3JpcHRpb24iOiAiT2JqZWN0
IHJlcHJlc2VudGluZyB0aGUgc2NvcGUuIEZvciA8Y29kZT5nbG9iYWw8L2NvZGU+IGFuZCA8Y29k
ZT53aXRoPC9jb2RlPiBzY29wZXMgaXQgcmVwcmVzZW50cyB0aGUgYWN0dWFsIG9iamVjdDsgZm9y
IHRoZSByZXN0IG9mIHRoZSBzY29wZXMsIGl0IGlzIGFydGlmaWNpYWwgdHJhbnNpZW50IG9iamVj
dCBlbnVtZXJhdGluZyBzY29wZSB2YXJpYWJsZXMgYXMgaXRzIHByb3BlcnRpZXMuIiB9LAogICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAidHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJlbnVtIjog
WyJnbG9iYWwiLCAid2l0aCIsICJjbG9zdXJlIiwgImNhdGNoIiwgImZ1bmN0aW9uTmFtZSIsICJn
bG9iYWxMZXhpY2FsRW52aXJvbm1lbnQiLCAibmVzdGVkTGV4aWNhbCJdLCAiZGVzY3JpcHRpb24i
OiAiU2NvcGUgdHlwZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJuYW1lIiwgInR5
cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIk5hbWUgYXNz
b2NpYXRlZCB3aXRoIHRoZSBzY29wZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJs
b2NhdGlvbiIsICIkcmVmIjogIkxvY2F0aW9uIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0
aW9uIjogIkxvY2F0aW9uIGlmIGF2YWlsYWJsZSBvZiB0aGUgc2NvcGUgZGVmaW5pdGlvbi4iIH0K
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9iamVjdCIsICIkcmVmIjogIlJ1bnRpbWUuUmVt
b3RlT2JqZWN0IiwgImRlc2NyaXB0aW9uIjogIk9iamVjdCByZXByZXNlbnRpbmcgdGhlIHNjb3Bl
LiBGb3IgPGNvZGU+Z2xvYmFsPC9jb2RlPiBhbmQgPGNvZGU+d2l0aDwvY29kZT4gc2NvcGVzIGl0
IHJlcHJlc2VudHMgdGhlIGFjdHVhbCBvYmplY3Q7IGZvciB0aGUgcmVzdCBvZiB0aGUgc2NvcGVz
LCBpdCBpcyBhcnRpZmljaWFsIHRyYW5zaWVudCBvYmplY3QgZW51bWVyYXRpbmcgc2NvcGUgdmFy
aWFibGVzIGFzIGl0cyBwcm9wZXJ0aWVzLiIgfQogICAgICAgICAgICAgXSwKICAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6ICJTY29wZSBkZXNjcmlwdGlvbi4iCiAgICAgICAgIH0sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Njb3BlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2NvcGUuY3BwCmluZGV4IDcxOGJmY2JjOTk2ZmIyODZm
ZjUxOTFmMjQ2N2FlNjEyZDY3YjBhY2IuLjFiN2FlMGZmNDc1NjY1NWMxM2Q4YjZmMzYyNTk3MDQ2
MTkwMmM1MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2Nv
cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2NvcGUuY3BwCkBA
IC0zNDAsMTIgKzM0MCw0IEBAIEpTU2NvcGUqIEpTU2NvcGU6OmNvbnN0YW50U2NvcGVGb3JDb2Rl
QmxvY2soUmVzb2x2ZVR5cGUgdHlwZSwgQ29kZUJsb2NrKiBjb2RlQmxvCiAgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKLVN5bWJvbFRhYmxlKiBKU1Njb3BlOjpzeW1ib2xUYWJsZSgpCi17Ci0gICAg
aWYgKEpTU3ltYm9sVGFibGVPYmplY3QqIHN5bWJvbFRhYmxlT2JqZWN0ID0ganNEeW5hbWljQ2Fz
dDxKU1N5bWJvbFRhYmxlT2JqZWN0Kj4odGhpcykpCi0gICAgICAgIHJldHVybiBzeW1ib2xUYWJs
ZU9iamVjdC0+c3ltYm9sVGFibGUoKTsKLQotICAgIHJldHVybiBudWxscHRyOwotfQotCiB9IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTU2NvcGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2NvcGUuaAppbmRl
eCA1MmFkMWFjMjc1NDFiYjA2ZjIyZjcwMDhkMTcyZDBjMzY5NmQ1MWQ3Li5lMzRkOTY2YWIxNWVm
MjQ1ZWE3YjQxNjBjZDk3NDVmZjcxYjU2MDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1Njb3BlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNTY29wZS5oCkBAIC0zMiw5ICszMiw4IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3Mg
U2NvcGVDaGFpbkl0ZXJhdG9yOwotY2xhc3MgU3ltYm9sVGFibGU7Ci1jbGFzcyBWYXJpYWJsZUVu
dmlyb25tZW50OwogY2xhc3MgV2F0Y2hwb2ludFNldDsKK2NsYXNzIFZhcmlhYmxlRW52aXJvbm1l
bnQ7CiAKIGNsYXNzIEpTU2NvcGUgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6
CkBAIC03Miw4ICs3MSw2IEBAIHB1YmxpYzoKICAgICBWTSogdm0oKTsKICAgICBKU09iamVjdCog
Z2xvYmFsVGhpcygpOwogCi0gICAgU3ltYm9sVGFibGUqIHN5bWJvbFRhYmxlKCk7Ci0KIHByb3Rl
Y3RlZDoKICAgICBKU1Njb3BlKFZNJiwgU3RydWN0dXJlKiwgSlNTY29wZSogbmV4dCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFRhYmxlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFRhYmxlLmNwcAppbmRleCBhMTI3
MzAxZmYzMjBjMTM4ZDdhZDFlY2JjYjE2YmI5NzMzYjYwNmQxLi5mNDBlMTRlOWVhNjkxYjJmMDM2
YzIxOTcxYThmNWVhNjY5MGIxM2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TeW1ib2xUYWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3ltYm9sVGFibGUuY3BwCkBAIC0xMDQsOSArMTA0LDYgQEAgdm9pZCBTeW1ib2xUYWJsZTo6
dmlzaXRDaGlsZHJlbihKU0NlbGwqIHRoaXNDZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAg
ICB2aXNpdG9yLmFwcGVuZCgmdGhpc1N5bWJvbFRhYmxlLT5tX2FyZ3VtZW50cyk7CiAgICAgdmlz
aXRvci5hcHBlbmQoJnRoaXNTeW1ib2xUYWJsZS0+bV9zaW5nbGV0b25TY29wZSk7CiAgICAgCi0g
ICAgaWYgKHRoaXNTeW1ib2xUYWJsZS0+bV9yYXJlRGF0YSkKLSAgICAgICAgdmlzaXRvci5hcHBl
bmQoJnRoaXNTeW1ib2xUYWJsZS0+bV9yYXJlRGF0YS0+bV9jb2RlQmxvY2spOwotICAgIAogICAg
IC8vIFNhdmUgc29tZSBtZW1vcnkuIFRoaXMgaXMgTyhuKSB0byByZWJ1aWxkIGFuZCB3ZSBkbyBz
byBvbiB0aGUgZmx5LgogICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKHRoaXNTeW1ib2xU
YWJsZS0+bV9sb2NrKTsKICAgICB0aGlzU3ltYm9sVGFibGUtPm1fbG9jYWxUb0VudHJ5ID0gbnVs
bHB0cjsKQEAgLTE2MiwyOCArMTU5LDI4IEBAIFN5bWJvbFRhYmxlKiBTeW1ib2xUYWJsZTo6Y2xv
bmVTY29wZVBhcnQoVk0mIHZtKQogICAgIGlmIChTY29wZWRBcmd1bWVudHNUYWJsZSogYXJndW1l
bnRzID0gdGhpcy0+YXJndW1lbnRzKCkpCiAgICAgICAgIHJlc3VsdC0+bV9hcmd1bWVudHMuc2V0
KHZtLCByZXN1bHQsIGFyZ3VtZW50cyk7CiAgICAgCi0gICAgaWYgKG1fcmFyZURhdGEpIHsKLSAg
ICAgICAgcmVzdWx0LT5tX3JhcmVEYXRhID0gc3RkOjptYWtlX3VuaXF1ZTxTeW1ib2xUYWJsZVJh
cmVEYXRhPigpOworICAgIGlmIChtX3R5cGVQcm9maWxpbmdSYXJlRGF0YSkgeworICAgICAgICBy
ZXN1bHQtPm1fdHlwZVByb2ZpbGluZ1JhcmVEYXRhID0gc3RkOjptYWtlX3VuaXF1ZTxUeXBlUHJv
ZmlsaW5nUmFyZURhdGE+KCk7CiAKICAgICAgICAgewotICAgICAgICAgICAgYXV0byBpdGVyID0g
bV9yYXJlRGF0YS0+bV91bmlxdWVJRE1hcC5iZWdpbigpOwotICAgICAgICAgICAgYXV0byBlbmQg
PSBtX3JhcmVEYXRhLT5tX3VuaXF1ZUlETWFwLmVuZCgpOworICAgICAgICAgICAgYXV0byBpdGVy
ID0gbV90eXBlUHJvZmlsaW5nUmFyZURhdGEtPm1fdW5pcXVlSURNYXAuYmVnaW4oKTsKKyAgICAg
ICAgICAgIGF1dG8gZW5kID0gbV90eXBlUHJvZmlsaW5nUmFyZURhdGEtPm1fdW5pcXVlSURNYXAu
ZW5kKCk7CiAgICAgICAgICAgICBmb3IgKDsgaXRlciAhPSBlbmQ7ICsraXRlcikKLSAgICAgICAg
ICAgICAgICByZXN1bHQtPm1fcmFyZURhdGEtPm1fdW5pcXVlSURNYXAuc2V0KGl0ZXItPmtleSwg
aXRlci0+dmFsdWUpOworICAgICAgICAgICAgICAgIHJlc3VsdC0+bV90eXBlUHJvZmlsaW5nUmFy
ZURhdGEtPm1fdW5pcXVlSURNYXAuc2V0KGl0ZXItPmtleSwgaXRlci0+dmFsdWUpOwogICAgICAg
ICB9CiAKICAgICAgICAgewotICAgICAgICAgICAgYXV0byBpdGVyID0gbV9yYXJlRGF0YS0+bV9v
ZmZzZXRUb1ZhcmlhYmxlTWFwLmJlZ2luKCk7Ci0gICAgICAgICAgICBhdXRvIGVuZCA9IG1fcmFy
ZURhdGEtPm1fb2Zmc2V0VG9WYXJpYWJsZU1hcC5lbmQoKTsKKyAgICAgICAgICAgIGF1dG8gaXRl
ciA9IG1fdHlwZVByb2ZpbGluZ1JhcmVEYXRhLT5tX29mZnNldFRvVmFyaWFibGVNYXAuYmVnaW4o
KTsKKyAgICAgICAgICAgIGF1dG8gZW5kID0gbV90eXBlUHJvZmlsaW5nUmFyZURhdGEtPm1fb2Zm
c2V0VG9WYXJpYWJsZU1hcC5lbmQoKTsKICAgICAgICAgICAgIGZvciAoOyBpdGVyICE9IGVuZDsg
KytpdGVyKQotICAgICAgICAgICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0YS0+bV9vZmZzZXRUb1Zh
cmlhYmxlTWFwLnNldChpdGVyLT5rZXksIGl0ZXItPnZhbHVlKTsKKyAgICAgICAgICAgICAgICBy
ZXN1bHQtPm1fdHlwZVByb2ZpbGluZ1JhcmVEYXRhLT5tX29mZnNldFRvVmFyaWFibGVNYXAuc2V0
KGl0ZXItPmtleSwgaXRlci0+dmFsdWUpOwogICAgICAgICB9CiAKICAgICAgICAgewotICAgICAg
ICAgICAgYXV0byBpdGVyID0gbV9yYXJlRGF0YS0+bV91bmlxdWVUeXBlU2V0TWFwLmJlZ2luKCk7
Ci0gICAgICAgICAgICBhdXRvIGVuZCA9IG1fcmFyZURhdGEtPm1fdW5pcXVlVHlwZVNldE1hcC5l
bmQoKTsKKyAgICAgICAgICAgIGF1dG8gaXRlciA9IG1fdHlwZVByb2ZpbGluZ1JhcmVEYXRhLT5t
X3VuaXF1ZVR5cGVTZXRNYXAuYmVnaW4oKTsKKyAgICAgICAgICAgIGF1dG8gZW5kID0gbV90eXBl
UHJvZmlsaW5nUmFyZURhdGEtPm1fdW5pcXVlVHlwZVNldE1hcC5lbmQoKTsKICAgICAgICAgICAg
IGZvciAoOyBpdGVyICE9IGVuZDsgKytpdGVyKQotICAgICAgICAgICAgICAgIHJlc3VsdC0+bV9y
YXJlRGF0YS0+bV91bmlxdWVUeXBlU2V0TWFwLnNldChpdGVyLT5rZXksIGl0ZXItPnZhbHVlKTsK
KyAgICAgICAgICAgICAgICByZXN1bHQtPm1fdHlwZVByb2ZpbGluZ1JhcmVEYXRhLT5tX3VuaXF1
ZVR5cGVTZXRNYXAuc2V0KGl0ZXItPmtleSwgaXRlci0+dmFsdWUpOwogICAgICAgICB9CiAgICAg
fQogICAgIApAQCAtMTkyLDQ4ICsxODksMzEgQEAgU3ltYm9sVGFibGUqIFN5bWJvbFRhYmxlOjpj
bG9uZVNjb3BlUGFydChWTSYgdm0pCiAKIHZvaWQgU3ltYm9sVGFibGU6OnByZXBhcmVGb3JUeXBl
UHJvZmlsaW5nKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImKQogewotICAgIGlmIChtX3JhcmVE
YXRhKQorICAgIGlmIChtX3R5cGVQcm9maWxpbmdSYXJlRGF0YSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgbV9yYXJlRGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8U3ltYm9sVGFibGVSYXJlRGF0YT4o
KTsKKyAgICBtX3R5cGVQcm9maWxpbmdSYXJlRGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8VHlwZVBy
b2ZpbGluZ1JhcmVEYXRhPigpOwogCiAgICAgZm9yIChhdXRvIGl0ZXIgPSBtX21hcC5iZWdpbigp
LCBlbmQgPSBtX21hcC5lbmQoKTsgaXRlciAhPSBlbmQ7ICsraXRlcikgewotICAgICAgICBtX3Jh
cmVEYXRhLT5tX3VuaXF1ZUlETWFwLnNldChpdGVyLT5rZXksIFR5cGVQcm9maWxlck5lZWRzVW5p
cXVlSURHZW5lcmF0aW9uKTsKLSAgICAgICAgbV9yYXJlRGF0YS0+bV9vZmZzZXRUb1ZhcmlhYmxl
TWFwLnNldChpdGVyLT52YWx1ZS52YXJPZmZzZXQoKSwgaXRlci0+a2V5KTsKKyAgICAgICAgbV90
eXBlUHJvZmlsaW5nUmFyZURhdGEtPm1fdW5pcXVlSURNYXAuc2V0KGl0ZXItPmtleSwgVHlwZVBy
b2ZpbGVyTmVlZHNVbmlxdWVJREdlbmVyYXRpb24pOworICAgICAgICBtX3R5cGVQcm9maWxpbmdS
YXJlRGF0YS0+bV9vZmZzZXRUb1ZhcmlhYmxlTWFwLnNldChpdGVyLT52YWx1ZS52YXJPZmZzZXQo
KSwgaXRlci0+a2V5KTsKICAgICB9CiB9CiAKLUNvZGVCbG9jayogU3ltYm9sVGFibGU6OnJhcmVE
YXRhQ29kZUJsb2NrKCkKLXsKLSAgICBpZiAoIW1fcmFyZURhdGEpCi0gICAgICAgIHJldHVybiBu
dWxscHRyOwotCi0gICAgcmV0dXJuIG1fcmFyZURhdGEtPm1fY29kZUJsb2NrLmdldCgpOwotfQot
Ci12b2lkIFN5bWJvbFRhYmxlOjpzZXRSYXJlRGF0YUNvZGVCbG9jayhDb2RlQmxvY2sqIGNvZGVC
bG9jaykKLXsKLSAgICBpZiAoIW1fcmFyZURhdGEpCi0gICAgICAgIG1fcmFyZURhdGEgPSBzdGQ6
Om1ha2VfdW5pcXVlPFN5bWJvbFRhYmxlUmFyZURhdGE+KCk7Ci0KLSAgICBBU1NFUlQoIW1fcmFy
ZURhdGEtPm1fY29kZUJsb2NrKTsKLSAgICBtX3JhcmVEYXRhLT5tX2NvZGVCbG9jay5zZXQoKmNv
ZGVCbG9jay0+dm0oKSwgdGhpcywgY29kZUJsb2NrKTsKLX0KLQogR2xvYmFsVmFyaWFibGVJRCBT
eW1ib2xUYWJsZTo6dW5pcXVlSURGb3JWYXJpYWJsZShjb25zdCBDb25jdXJyZW50SklUTG9ja2Vy
JiwgVW5pcXVlZFN0cmluZ0ltcGwqIGtleSwgVk0mIHZtKQogewotICAgIFJFTEVBU0VfQVNTRVJU
KG1fcmFyZURhdGEpOworICAgIFJFTEVBU0VfQVNTRVJUKG1fdHlwZVByb2ZpbGluZ1JhcmVEYXRh
KTsKIAotICAgIGF1dG8gaXRlciA9IG1fcmFyZURhdGEtPm1fdW5pcXVlSURNYXAuZmluZChrZXkp
OwotICAgIGF1dG8gZW5kID0gbV9yYXJlRGF0YS0+bV91bmlxdWVJRE1hcC5lbmQoKTsKKyAgICBh
dXRvIGl0ZXIgPSBtX3R5cGVQcm9maWxpbmdSYXJlRGF0YS0+bV91bmlxdWVJRE1hcC5maW5kKGtl
eSk7CisgICAgYXV0byBlbmQgPSBtX3R5cGVQcm9maWxpbmdSYXJlRGF0YS0+bV91bmlxdWVJRE1h
cC5lbmQoKTsKICAgICBpZiAoaXRlciA9PSBlbmQpCiAgICAgICAgIHJldHVybiBUeXBlUHJvZmls
ZXJOb0dsb2JhbElERXhpc3RzOwogCiAgICAgR2xvYmFsVmFyaWFibGVJRCBpZCA9IGl0ZXItPnZh
bHVlOwogICAgIGlmIChpZCA9PSBUeXBlUHJvZmlsZXJOZWVkc1VuaXF1ZUlER2VuZXJhdGlvbikg
ewogICAgICAgICBpZCA9IHZtLnR5cGVQcm9maWxlcigpLT5nZXROZXh0VW5pcXVlVmFyaWFibGVJ
RCgpOwotICAgICAgICBtX3JhcmVEYXRhLT5tX3VuaXF1ZUlETWFwLnNldChrZXksIGlkKTsKLSAg
ICAgICAgbV9yYXJlRGF0YS0+bV91bmlxdWVUeXBlU2V0TWFwLnNldChrZXksIFR5cGVTZXQ6OmNy
ZWF0ZSgpKTsgLy8gTWFrZSBhIG5ldyBnbG9iYWwgdHlwZXNldCBmb3IgdGhpcyBjb3JyZXNwb25k
aW5nIElELgorICAgICAgICBtX3R5cGVQcm9maWxpbmdSYXJlRGF0YS0+bV91bmlxdWVJRE1hcC5z
ZXQoa2V5LCBpZCk7CisgICAgICAgIG1fdHlwZVByb2ZpbGluZ1JhcmVEYXRhLT5tX3VuaXF1ZVR5
cGVTZXRNYXAuc2V0KGtleSwgVHlwZVNldDo6Y3JlYXRlKCkpOyAvLyBNYWtlIGEgbmV3IGdsb2Jh
bCB0eXBlc2V0IGZvciB0aGlzIGNvcnJlc3BvbmRpbmcgSUQuCiAgICAgfQogCiAgICAgcmV0dXJu
IGlkOwpAQCAtMjQxLDEwICsyMjEsMTAgQEAgR2xvYmFsVmFyaWFibGVJRCBTeW1ib2xUYWJsZTo6
dW5pcXVlSURGb3JWYXJpYWJsZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgVW4KIAogR2xv
YmFsVmFyaWFibGVJRCBTeW1ib2xUYWJsZTo6dW5pcXVlSURGb3JPZmZzZXQoY29uc3QgQ29uY3Vy
cmVudEpJVExvY2tlciYgbG9ja2VyLCBWYXJPZmZzZXQgb2Zmc2V0LCBWTSYgdm0pCiB7Ci0gICAg
UkVMRUFTRV9BU1NFUlQobV9yYXJlRGF0YSk7CisgICAgUkVMRUFTRV9BU1NFUlQobV90eXBlUHJv
ZmlsaW5nUmFyZURhdGEpOwogCi0gICAgYXV0byBpdGVyID0gbV9yYXJlRGF0YS0+bV9vZmZzZXRU
b1ZhcmlhYmxlTWFwLmZpbmQob2Zmc2V0KTsKLSAgICBhdXRvIGVuZCA9IG1fcmFyZURhdGEtPm1f
b2Zmc2V0VG9WYXJpYWJsZU1hcC5lbmQoKTsKKyAgICBhdXRvIGl0ZXIgPSBtX3R5cGVQcm9maWxp
bmdSYXJlRGF0YS0+bV9vZmZzZXRUb1ZhcmlhYmxlTWFwLmZpbmQob2Zmc2V0KTsKKyAgICBhdXRv
IGVuZCA9IG1fdHlwZVByb2ZpbGluZ1JhcmVEYXRhLT5tX29mZnNldFRvVmFyaWFibGVNYXAuZW5k
KCk7CiAgICAgaWYgKGl0ZXIgPT0gZW5kKQogICAgICAgICByZXR1cm4gVHlwZVByb2ZpbGVyTm9H
bG9iYWxJREV4aXN0czsKIApAQCAtMjUzLDEyICsyMzMsMTIgQEAgR2xvYmFsVmFyaWFibGVJRCBT
eW1ib2xUYWJsZTo6dW5pcXVlSURGb3JPZmZzZXQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYg
bG9ja2UKIAogUmVmUHRyPFR5cGVTZXQ+IFN5bWJvbFRhYmxlOjpnbG9iYWxUeXBlU2V0Rm9yT2Zm
c2V0KGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgVmFyT2Zmc2V0IG9mZnNldCwg
Vk0mIHZtKQogewotICAgIFJFTEVBU0VfQVNTRVJUKG1fcmFyZURhdGEpOworICAgIFJFTEVBU0Vf
QVNTRVJUKG1fdHlwZVByb2ZpbGluZ1JhcmVEYXRhKTsKIAogICAgIHVuaXF1ZUlERm9yT2Zmc2V0
KGxvY2tlciwgb2Zmc2V0LCB2bSk7IC8vIExhemlseSBjcmVhdGUgdGhlIFR5cGVTZXQgaWYgbmVj
ZXNzYXJ5LgogCi0gICAgYXV0byBpdGVyID0gbV9yYXJlRGF0YS0+bV9vZmZzZXRUb1ZhcmlhYmxl
TWFwLmZpbmQob2Zmc2V0KTsKLSAgICBhdXRvIGVuZCA9IG1fcmFyZURhdGEtPm1fb2Zmc2V0VG9W
YXJpYWJsZU1hcC5lbmQoKTsKKyAgICBhdXRvIGl0ZXIgPSBtX3R5cGVQcm9maWxpbmdSYXJlRGF0
YS0+bV9vZmZzZXRUb1ZhcmlhYmxlTWFwLmZpbmQob2Zmc2V0KTsKKyAgICBhdXRvIGVuZCA9IG1f
dHlwZVByb2ZpbGluZ1JhcmVEYXRhLT5tX29mZnNldFRvVmFyaWFibGVNYXAuZW5kKCk7CiAgICAg
aWYgKGl0ZXIgPT0gZW5kKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtMjY3LDEyICsy
NDcsMTIgQEAgUmVmUHRyPFR5cGVTZXQ+IFN5bWJvbFRhYmxlOjpnbG9iYWxUeXBlU2V0Rm9yT2Zm
c2V0KGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGwKIAogUmVmUHRyPFR5cGVTZXQ+IFN5bWJv
bFRhYmxlOjpnbG9iYWxUeXBlU2V0Rm9yVmFyaWFibGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tl
ciYgbG9ja2VyLCBVbmlxdWVkU3RyaW5nSW1wbCoga2V5LCBWTSYgdm0pCiB7Ci0gICAgUkVMRUFT
RV9BU1NFUlQobV9yYXJlRGF0YSk7CisgICAgUkVMRUFTRV9BU1NFUlQobV90eXBlUHJvZmlsaW5n
UmFyZURhdGEpOwogCiAgICAgdW5pcXVlSURGb3JWYXJpYWJsZShsb2NrZXIsIGtleSwgdm0pOyAv
LyBMYXppbHkgY3JlYXRlIHRoZSBUeXBlU2V0IGlmIG5lY2Vzc2FyeS4KIAotICAgIGF1dG8gaXRl
ciA9IG1fcmFyZURhdGEtPm1fdW5pcXVlVHlwZVNldE1hcC5maW5kKGtleSk7Ci0gICAgYXV0byBl
bmQgPSBtX3JhcmVEYXRhLT5tX3VuaXF1ZVR5cGVTZXRNYXAuZW5kKCk7CisgICAgYXV0byBpdGVy
ID0gbV90eXBlUHJvZmlsaW5nUmFyZURhdGEtPm1fdW5pcXVlVHlwZVNldE1hcC5maW5kKGtleSk7
CisgICAgYXV0byBlbmQgPSBtX3R5cGVQcm9maWxpbmdSYXJlRGF0YS0+bV91bmlxdWVUeXBlU2V0
TWFwLmVuZCgpOwogICAgIGlmIChpdGVyID09IGVuZCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFRhYmxl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xUYWJsZS5oCmluZGV4IGQx
MWRhYmE3MWYyNGQ0YmQ4NDcyNDNiMjYyY2Y5ZjIxZmMwYTY0MDIuLmU0NTJmOGQ5ZmE5MTE5MGM2
YzY2OTJmOTRjMGEwMWY4ZjU4YTkzZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N5bWJvbFRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3ltYm9sVGFibGUuaApAQCAtNjc5LDkgKzY3OSw2IEBAIHB1YmxpYzoKICAgICBTeW1ib2xU
YWJsZSogY2xvbmVTY29wZVBhcnQoVk0mKTsKIAogICAgIHZvaWQgcHJlcGFyZUZvclR5cGVQcm9m
aWxpbmcoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYpOwotCi0gICAgQ29kZUJsb2NrKiByYXJl
RGF0YUNvZGVCbG9jaygpOwotICAgIHZvaWQgc2V0UmFyZURhdGFDb2RlQmxvY2soQ29kZUJsb2Nr
Kik7CiAgICAgCiAgICAgSW5mZXJyZWRWYWx1ZSogc2luZ2xldG9uU2NvcGUoKSB7IHJldHVybiBt
X3NpbmdsZXRvblNjb3BlLmdldCgpOyB9CiAKQEAgLTY5OCwxMyArNjk1LDEyIEBAIHByaXZhdGU6
CiAgICAgTWFwIG1fbWFwOwogICAgIFNjb3BlT2Zmc2V0IG1fbWF4U2NvcGVPZmZzZXQ7CiAgICAg
Ci0gICAgc3RydWN0IFN5bWJvbFRhYmxlUmFyZURhdGEgeworICAgIHN0cnVjdCBUeXBlUHJvZmls
aW5nUmFyZURhdGEgewogICAgICAgICBVbmlxdWVJRE1hcCBtX3VuaXF1ZUlETWFwOwogICAgICAg
ICBPZmZzZXRUb1ZhcmlhYmxlTWFwIG1fb2Zmc2V0VG9WYXJpYWJsZU1hcDsKICAgICAgICAgVW5p
cXVlVHlwZVNldE1hcCBtX3VuaXF1ZVR5cGVTZXRNYXA7Ci0gICAgICAgIFdyaXRlQmFycmllcjxD
b2RlQmxvY2s+IG1fY29kZUJsb2NrOwogICAgIH07Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFN5bWJv
bFRhYmxlUmFyZURhdGE+IG1fcmFyZURhdGE7CisgICAgc3RkOjp1bmlxdWVfcHRyPFR5cGVQcm9m
aWxpbmdSYXJlRGF0YT4gbV90eXBlUHJvZmlsaW5nUmFyZURhdGE7CiAKICAgICBib29sIG1fdXNl
c05vblN0cmljdEV2YWwgOiAxOwogICAgIGJvb2wgbV9uZXN0ZWRMZXhpY2FsU2NvcGUgOiAxOyAv
LyBOb24tZnVuY3Rpb24gTGV4aWNhbFNjb3BlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRGVidWdnZXJNYW5hZ2VyLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRGVidWdnZXJNYW5h
Z2VyLmpzCmluZGV4IGM2MTRiNzRmODllZTE5YTU3ZjFhZDgxMDYwYzU1Nzg2N2ZlM2M3NWIuLmUz
OGZlYzUzOGY3YjA5N2I1MTkwNzcxZjZmOGNmZTY5ODA0ZDhiODIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RlYnVnZ2VyTWFuYWdl
ci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVy
cy9EZWJ1Z2dlck1hbmFnZXIuanMKQEAgLTY2Miw3ICs2NjIsNyBAQCBXZWJJbnNwZWN0b3IuRGVi
dWdnZXJNYW5hZ2VyID0gY2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9y
Lk9iamVjdAogICAgICAgICB9CiAKICAgICAgICAgdmFyIG9iamVjdCA9IFdlYkluc3BlY3Rvci5S
ZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocGF5bG9hZC5vYmplY3QpOwotICAgICAgICByZXR1cm4g
bmV3IFdlYkluc3BlY3Rvci5TY29wZUNoYWluTm9kZSh0eXBlLCBbb2JqZWN0XSwgcGF5bG9hZC5u
YW1lLCBwYXlsb2FkLmxvY2F0aW9uKTsKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3Iu
U2NvcGVDaGFpbk5vZGUodHlwZSwgW29iamVjdF0pOwogICAgIH0KIAogICAgIF9wYXVzZVJlYXNv
bkZyb21QYXlsb2FkKHBheWxvYWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvQ2FsbEZyYW1lLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbGxGcmFtZS5qcwppbmRleCBhOGZkNGIwNjIwZDE2NWRh
MWZhZTg1YjYxY2E1MjgwZTIyNTFlYzViLi5mZWY3ODk1Njg1MTc4ODU1NzY0MmE2YWNiMjJmMzZl
ZjBhNDI0Yjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvQ2FsbEZyYW1lLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9DYWxsRnJhbWUuanMKQEAgLTQ1LDE0ICs0NSw0NSBAQCBXZWJJbnNwZWN0
b3IuQ2FsbEZyYW1lID0gY2xhc3MgQ2FsbEZyYW1lIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVj
dAogCiAgICAgLy8gUHVibGljCiAKLSAgICBnZXQgaWQoKSB7IHJldHVybiB0aGlzLl9pZDsgfQot
ICAgIGdldCBzb3VyY2VDb2RlTG9jYXRpb24oKSB7IHJldHVybiB0aGlzLl9zb3VyY2VDb2RlTG9j
YXRpb247IH0KLSAgICBnZXQgZnVuY3Rpb25OYW1lKCkgeyByZXR1cm4gdGhpcy5fZnVuY3Rpb25O
YW1lOyB9Ci0gICAgZ2V0IG5hdGl2ZUNvZGUoKSB7IHJldHVybiB0aGlzLl9uYXRpdmVDb2RlOyB9
Ci0gICAgZ2V0IHByb2dyYW1Db2RlKCkgeyByZXR1cm4gdGhpcy5fcHJvZ3JhbUNvZGU7IH0KLSAg
ICBnZXQgdGhpc09iamVjdCgpIHsgcmV0dXJuIHRoaXMuX3RoaXNPYmplY3Q7IH0KLSAgICBnZXQg
c2NvcGVDaGFpbigpIHsgcmV0dXJuIHRoaXMuX3Njb3BlQ2hhaW47IH0KLSAgICBnZXQgaXNUYWls
RGVsZXRlZCgpIHsgcmV0dXJuIHRoaXMuX2lzVGFpbERlbGV0ZWQ7IH0KKyAgICBnZXQgaWQoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2lkOworICAgIH0KKworICAgIGdldCBzb3VyY2VD
b2RlTG9jYXRpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZUNvZGVMb2Nh
dGlvbjsKKyAgICB9CisKKyAgICBnZXQgZnVuY3Rpb25OYW1lKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB0aGlzLl9mdW5jdGlvbk5hbWU7CisgICAgfQorCisgICAgZ2V0IG5hdGl2ZUNvZGUoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX25hdGl2ZUNvZGU7CisgICAgfQorCisgICAgZ2V0
IHByb2dyYW1Db2RlKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9wcm9ncmFtQ29kZTsK
KyAgICB9CisKKyAgICBnZXQgdGhpc09iamVjdCgpCisgICAgeworICAgICAgICByZXR1cm4gdGhp
cy5fdGhpc09iamVjdDsKKyAgICB9CisKKyAgICBnZXQgc2NvcGVDaGFpbigpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpcy5fc2NvcGVDaGFpbjsKKyAgICB9CisKKyAgICBnZXQgaXNUYWlsRGVs
ZXRlZCgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5faXNUYWlsRGVsZXRlZDsKKyAgICB9
CiAKICAgICBzYXZlSWRlbnRpdHlUb0Nvb2tpZSgpCiAgICAgewpAQCAtODEsOTkgKzExMiw2IEBA
IFdlYkluc3BlY3Rvci5DYWxsRnJhbWUgPSBjbGFzcyBDYWxsRnJhbWUgZXh0ZW5kcyBXZWJJbnNw
ZWN0b3IuT2JqZWN0CiAgICAgICAgICAgICB0aGlzLl9zY29wZUNoYWluW2ldLm9iamVjdHNbMF0u
ZGVwcmVjYXRlZEdldEFsbFByb3BlcnRpZXMocHJvcGVydGllc0NvbGxlY3RlZCk7CiAgICAgfQog
Ci0gICAgbWVyZ2VkU2NvcGVDaGFpbigpCi0gICAgewotICAgICAgICBsZXQgbWVyZ2VkU2NvcGVz
ID0gW107Ci0KLSAgICAgICAgLy8gU2NvcGVzIGxpc3QgZ29lcyBmcm9tIHRvcC9sb2NhbCAoMSkg
dG8gYm90dG9tL2dsb2JhbCAoNSkKLSAgICAgICAgLy8gICBbc2NvcGUxLCBzY29wZTIsIHNjb3Bl
Mywgc2NvcGU0LCBzY29wZTVdCi0gICAgICAgIGxldCBzY29wZXMgPSB0aGlzLl9zY29wZUNoYWlu
LnNsaWNlKCk7Ci0KLSAgICAgICAgLy8gTWVyZ2Ugc2ltaWxpYXIgc2NvcGVzLiBTb21lIGZ1bmN0
aW9uIGNhbGwgZnJhbWVzIG1heSBoYXZlIG11bHRpcGxlCi0gICAgICAgIC8vIHRvcCBsZXZlbCBj
bG9zdXJlIHNjb3BlcyAob25lIGZvciBgdmFyYHMgb25lIGZvciBgbGV0YHMpIHRoYXQgY2FuIGJl
Ci0gICAgICAgIC8vIGNvbWJpbmVkIHRvIGEgc2luZ2xlIHNjb3BlIG9mIHZhcmlhYmxlcy4gR28g
aW4gcmV2ZXJzZSBvcmRlciBzbyB3ZQotICAgICAgICAvLyBtZXJnZSB0aGUgZmlyc3QgdHdvIGNs
b3N1cmUgc2NvcGVzIHdpdGggdGhlIHNhbWUgbmFtZS4gQWxzbyBtYXJrCi0gICAgICAgIC8vIHRo
ZSBmaXJzdCB0aW1lIHdlIHNlZSBhIG5ldyBuYW1lLCBzbyB3ZSBrbm93IHRoZSBiYXNlIGZvciB0
aGUgbmFtZS4KLSAgICAgICAgLy8gICBbc2NvcGUxJjIsIHNjb3BlMywgc2NvcGU0LCBzY29wZTVd
Ci0gICAgICAgIC8vICAgICAgZm9vICAgICAgYmFyICAgICBHTEUgICAgZ2xvYmFsCi0gICAgICAg
IGxldCBsYXN0TWFya2VkSGFzaCA9IG51bGw7Ci0gICAgICAgIGZ1bmN0aW9uIG1hcmtBc0Jhc2VJ
Zk5lZWRlZChzY29wZSkgewotICAgICAgICAgICAgaWYgKCFzY29wZS5oYXNoKQotICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGlmIChzY29wZS50eXBlICE9PSBXZWJJ
bnNwZWN0b3IuU2NvcGVDaGFpbk5vZGUuVHlwZS5DbG9zdXJlKQotICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgICAgIGlmIChzY29wZS5oYXNoID09PSBsYXN0TWFya2VkSGFz
aCkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBsYXN0TWFya2Vk
SGFzaCA9IHNjb3BlLmhhc2g7Ci0gICAgICAgICAgICBzY29wZS5fX2Jhc2VDbG9zdXJlU2NvcGUg
PSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICBm
dW5jdGlvbiBzaG91bGRNZXJnZUNsb3N1cmVTY29wZXMoeW91bmdTY29wZSwgb2xkU2NvcGUsIGxh
c3RNZXJnZSkgewotICAgICAgICAgICAgaWYgKCF5b3VuZ1Njb3BlIHx8ICFvbGRTY29wZSkKLSAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgICAgIC8vIERvbid0IG1lcmdl
IHVua25vd24gbG9jYXRpb25zLgotICAgICAgICAgICAgaWYgKCF5b3VuZ1Njb3BlLmhhc2ggfHwg
IW9sZFNjb3BlLmhhc2gpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAg
ICAgICAvLyBPbmx5IG1lcmdlIGNsb3N1cmUgc2NvcGVzLgotICAgICAgICAgICAgaWYgKHlvdW5n
U2NvcGUudHlwZSAhPT0gV2ViSW5zcGVjdG9yLlNjb3BlQ2hhaW5Ob2RlLlR5cGUuQ2xvc3VyZSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBpZiAob2xkU2NvcGUu
dHlwZSAhPT0gV2ViSW5zcGVjdG9yLlNjb3BlQ2hhaW5Ob2RlLlR5cGUuQ2xvc3VyZSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgICAgIC8vIERvbid0IG1lcmdlIGlm
IHRoZXkgYXJlIG5vdCB0aGUgc2FtZS4KLSAgICAgICAgICAgIGlmICh5b3VuZ1Njb3BlLmhhc2gg
IT09IG9sZFNjb3BlLmhhc2gpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
ICAgICAgICAvLyBEb24ndCBtZXJnZSBpZiB0aGVyZSB3YXMgYWxyZWFkeSBhIG1lcmdlLgotICAg
ICAgICAgICAgaWYgKGxhc3RNZXJnZSAmJiB5b3VuZ1Njb3BlLmhhc2ggPT09IGxhc3RNZXJnZS5o
YXNoKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICBsZXQgbGFzdFNjb3BlID0gbnVsbDsKLSAgICAg
ICAgbGV0IGxhc3RNZXJnZSA9IG51bGw7Ci0gICAgICAgIGZvciAobGV0IGkgPSBzY29wZXMubGVu
Z3RoIC0gMTsgaSA+PSAwOyAtLWkpIHsKLSAgICAgICAgICAgIGxldCBzY29wZSA9IHNjb3Blc1tp
XTsKLSAgICAgICAgICAgIG1hcmtBc0Jhc2VJZk5lZWRlZChzY29wZSk7Ci0gICAgICAgICAgICBp
ZiAoc2hvdWxkTWVyZ2VDbG9zdXJlU2NvcGVzKHNjb3BlLCBsYXN0U2NvcGUsIGxhc3RNZXJnZSkp
IHsKLSAgICAgICAgICAgICAgICBjb25zb2xlLmFzc2VydChsYXN0U2NvcGUuX19iYXNlQ2xvc3Vy
ZVNjb3BlKTsKLSAgICAgICAgICAgICAgICBsZXQgdHlwZSA9IFdlYkluc3BlY3Rvci5TY29wZUNo
YWluTm9kZS5UeXBlLkNsb3N1cmU7Ci0gICAgICAgICAgICAgICAgbGV0IG9iamVjdHMgPSBsYXN0
U2NvcGUub2JqZWN0cy5jb25jYXQoc2NvcGUub2JqZWN0cyk7Ci0gICAgICAgICAgICAgICAgbGV0
IG1lcmdlZCA9IG5ldyBXZWJJbnNwZWN0b3IuU2NvcGVDaGFpbk5vZGUodHlwZSwgb2JqZWN0cywg
c2NvcGUubmFtZSwgc2NvcGUubG9jYXRpb24pOwotICAgICAgICAgICAgICAgIG1lcmdlZC5fX2Jh
c2VDbG9zdXJlU2NvcGUgPSB0cnVlOwotICAgICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KG9i
amVjdHMubGVuZ3RoID09PSAyKTsKLQotICAgICAgICAgICAgICAgIG1lcmdlZFNjb3Blcy5wb3Ao
KTsgLy8gUmVtb3ZlIHRoZSBsYXN0LgotICAgICAgICAgICAgICAgIG1lcmdlZFNjb3Blcy5wdXNo
KG1lcmdlZCk7IC8vIEFkZCB0aGUgbWVyZ2VkIHNjb3BlLgotCi0gICAgICAgICAgICAgICAgbGFz
dE1lcmdlID0gbWVyZ2VkOwotICAgICAgICAgICAgICAgIGxhc3RTY29wZSA9IG51bGw7Ci0gICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIG1lcmdlZFNjb3Blcy5wdXNoKHNjb3Bl
KTsKLQotICAgICAgICAgICAgICAgIGxhc3RNZXJnZSA9IG51bGw7Ci0gICAgICAgICAgICAgICAg
bGFzdFNjb3BlID0gc2NvcGU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBt
ZXJnZWRTY29wZXMgPSBtZXJnZWRTY29wZXMucmV2ZXJzZSgpOwotCi0gICAgICAgIC8vIE1hcmsg
dGhlIGZpcnN0IENsb3N1cmUgYXMgTG9jYWwgaWYgdGhlIG5hbWUgbWF0Y2hlcyB0aGlzIGNhbGwg
ZnJhbWUuCi0gICAgICAgIGZvciAobGV0IHNjb3BlIG9mIG1lcmdlZFNjb3BlcykgewotICAgICAg
ICAgICAgaWYgKHNjb3BlLnR5cGUgPT09IFdlYkluc3BlY3Rvci5TY29wZUNoYWluTm9kZS5UeXBl
LkNsb3N1cmUpIHsKLSAgICAgICAgICAgICAgICBpZiAoc2NvcGUubmFtZSA9PT0gdGhpcy5fZnVu
Y3Rpb25OYW1lKQotICAgICAgICAgICAgICAgICAgICBzY29wZS5jb252ZXJ0VG9Mb2NhbFNjb3Bl
KCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQot
ICAgICAgICByZXR1cm4gbWVyZ2VkU2NvcGVzOwotICAgIH0KLQogICAgIC8vIFN0YXRpYwogCiAg
ICAgc3RhdGljIGZ1bmN0aW9uTmFtZUZyb21QYXlsb2FkKHBheWxvYWQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2NvcGVDaGFpbk5vZGUu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2NvcGVDaGFp
bk5vZGUuanMKaW5kZXggMTM5OGMxZTdjY2Y4ZThlOGNiYmU2ZDJhZTVmN2Q2Y2IzNGVhY2ZjYS4u
ZTdjNmVkZGMxMGQwZmFlNWE4YTM0NGIyZDU5NjE3NTlkMTQzYzA3MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Njb3BlQ2hhaW5Ob2RlLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9TY29wZUNo
YWluTm9kZS5qcwpAQCAtMjUsNyArMjUsNyBAQAogCiBXZWJJbnNwZWN0b3IuU2NvcGVDaGFpbk5v
ZGUgPSBjbGFzcyBTY29wZUNoYWluTm9kZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKIHsK
LSAgICBjb25zdHJ1Y3Rvcih0eXBlLCBvYmplY3RzLCBuYW1lLCBsb2NhdGlvbikKKyAgICBjb25z
dHJ1Y3Rvcih0eXBlLCBvYmplY3RzKQogICAgIHsKICAgICAgICAgc3VwZXIoKTsKIApAQCAtMzcs
MzEgKzM3LDE4IEBAIFdlYkluc3BlY3Rvci5TY29wZUNoYWluTm9kZSA9IGNsYXNzIFNjb3BlQ2hh
aW5Ob2RlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogCiAgICAgICAgIHRoaXMuX3R5cGUg
PSB0eXBlIHx8IG51bGw7CiAgICAgICAgIHRoaXMuX29iamVjdHMgPSBvYmplY3RzIHx8IFtdOwot
ICAgICAgICB0aGlzLl9uYW1lID0gbmFtZSB8fCAiIjsKLSAgICAgICAgdGhpcy5fbG9jYXRpb24g
PSBsb2NhdGlvbiB8fCBudWxsOwogICAgIH0KIAogICAgIC8vIFB1YmxpYwogCi0gICAgZ2V0IHR5
cGUoKSB7IHJldHVybiB0aGlzLl90eXBlOyB9Ci0gICAgZ2V0IG9iamVjdHMoKSB7IHJldHVybiB0
aGlzLl9vYmplY3RzOyB9Ci0gICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9Ci0g
ICAgZ2V0IGxvY2F0aW9uKCkgeyByZXR1cm4gdGhpcy5fbG9jYXRpb247IH0KLQotICAgIGdldCBo
YXNoKCkKKyAgICBnZXQgdHlwZSgpCiAgICAgewotICAgICAgICBpZiAodGhpcy5faGFzaCkKLSAg
ICAgICAgICAgIHJldHVybiB0aGlzLl9oYXNoOwotCi0gICAgICAgIHRoaXMuX2hhc2ggPSB0aGlz
Ll9uYW1lOwotICAgICAgICBpZiAodGhpcy5fbG9jYXRpb24pCi0gICAgICAgICAgICB0aGlzLl9o
YXNoICs9IGA6JHt0aGlzLl9sb2NhdGlvbi5zY3JpcHRJZH06JHt0aGlzLl9sb2NhdGlvbi5saW5l
TnVtYmVyfToke3RoaXMuX2xvY2F0aW9uLmNvbHVtbk51bWJlcn1gOwotICAgICAgICByZXR1cm4g
dGhpcy5faGFzaDsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3R5cGU7CiAgICAgfQogCi0gICAgY29u
dmVydFRvTG9jYWxTY29wZSgpCisgICAgZ2V0IG9iamVjdHMoKQogICAgIHsKLSAgICAgICAgdGhp
cy5fdHlwZSA9IFdlYkluc3BlY3Rvci5TY29wZUNoYWluTm9kZS5UeXBlLkxvY2FsOworICAgICAg
ICByZXR1cm4gdGhpcy5fb2JqZWN0czsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY29wZUNoYWluRGV0YWlsc1NpZGVi
YXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Nj
b3BlQ2hhaW5EZXRhaWxzU2lkZWJhclBhbmVsLmpzCmluZGV4IDUxY2E1YzcyMzE2MmMxYTIxZTFi
MzdhZTc5MGExYThjNDZkZDQzZWUuLjk5MTA0YjUyZDc3NTY4NWVlY2FjOWUzN2E0MWRhNjk0ZmQz
ZDA4NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Njb3BlQ2hhaW5EZXRhaWxzU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Njb3BlQ2hhaW5EZXRhaWxzU2lkZWJhclBhbmVs
LmpzCkBAIC0xNjQsOTIgKzE2NCwxNTkgQEAgV2ViSW5zcGVjdG9yLlNjb3BlQ2hhaW5EZXRhaWxz
U2lkZWJhclBhbmVsID0gY2xhc3MgU2NvcGVDaGFpbkRldGFpbHNTaWRlYmFyUGFuZWwKICAgICAg
ICAgZm9yIChsZXQgdHlwZSBpbiBXZWJJbnNwZWN0b3IuU2NvcGVDaGFpbk5vZGUuVHlwZSkKICAg
ICAgICAgICAgIHNlY3Rpb25Db3VudEJ5VHlwZS5zZXQoV2ViSW5zcGVjdG9yLlNjb3BlQ2hhaW5O
b2RlLlR5cGVbdHlwZV0sIDApOwogCi0gICAgICAgIGxldCBzY29wZUNoYWluID0gY2FsbEZyYW1l
Lm1lcmdlZFNjb3BlQ2hhaW4oKTsKLSAgICAgICAgZm9yIChsZXQgc2NvcGUgb2Ygc2NvcGVDaGFp
bikgewotICAgICAgICAgICAgbGV0IHRpdGxlID0gbnVsbDsKLSAgICAgICAgICAgIGxldCBleHRy
YVByb3BlcnR5RGVzY3JpcHRvciA9IG51bGw7Ci0gICAgICAgICAgICBsZXQgY29sbGFwc2VkQnlE
ZWZhdWx0ID0gZmFsc2U7Ci0KLSAgICAgICAgICAgIGxldCBjb3VudCA9IHNlY3Rpb25Db3VudEJ5
VHlwZS5nZXQoc2NvcGUudHlwZSk7Ci0gICAgICAgICAgICBzZWN0aW9uQ291bnRCeVR5cGUuc2V0
KHNjb3BlLnR5cGUsICsrY291bnQpOwotCi0gICAgICAgICAgICBzd2l0Y2ggKHNjb3BlLnR5cGUp
IHsKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlNjb3BlQ2hhaW5Ob2RlLlR5cGUuTG9j
YWw6Ci0gICAgICAgICAgICAgICAgZm91bmRMb2NhbFNjb3BlID0gdHJ1ZTsKLSAgICAgICAgICAg
ICAgICBjb2xsYXBzZWRCeURlZmF1bHQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICB0aXRsZSA9
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTG9jYWwgVmFyaWFibGVzIik7Ci0gICAgICAgICAgICAg
ICAgaWYgKGNhbGxGcmFtZS50aGlzT2JqZWN0KQotICAgICAgICAgICAgICAgICAgICBleHRyYVBy
b3BlcnR5RGVzY3JpcHRvciA9IG5ldyBXZWJJbnNwZWN0b3IuUHJvcGVydHlEZXNjcmlwdG9yKHtu
YW1lOiAidGhpcyIsIHZhbHVlOiBjYWxsRnJhbWUudGhpc09iamVjdH0pOwotICAgICAgICAgICAg
ICAgIGJyZWFrOwotCi0gICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5TY29wZUNoYWluTm9k
ZS5UeXBlLkNsb3N1cmU6Ci0gICAgICAgICAgICAgICAgaWYgKHNjb3BlLl9fYmFzZUNsb3N1cmVT
Y29wZSAmJiBzY29wZS5uYW1lKQotICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiQ2xvc3VyZSBWYXJpYWJsZXMgKCVzKSIpLmZvcm1hdChzY29wZS5uYW1l
KTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHRpdGxlID0gV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJDbG9zdXJlIFZhcmlhYmxlcyIpOwotICAgICAgICAgICAgICAg
IGNvbGxhcHNlZEJ5RGVmYXVsdCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotCi0g
ICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5TY29wZUNoYWluTm9kZS5UeXBlLkJsb2NrOgot
ICAgICAgICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJCbG9jayBWYXJp
YWJsZXMiKTsKLSAgICAgICAgICAgICAgICBjb2xsYXBzZWRCeURlZmF1bHQgPSBmYWxzZTsKKyAg
ICAgICAgLy8gU2NvcGVzIGxpc3QgZ29lcyBmcm9tIHRvcC9sb2NhbCAoMSkgdG8gYm90dG9tL2ds
b2JhbCAoNSkKKyAgICAgICAgLy8gQ2FsbCBmcmFtZXMgbGlzdCBnb2VzIGZyb20gdG9wL2xvY2Fs
ICgxKSB0byBib3R0b20vZ2xvYmFsICgyKQorICAgICAgICAvLyAgIFtzY29wZTEsIHNjb3BlMiwg
c2NvcGUzLCBzY29wZTQsIHNjb3BlNV0KKyAgICAgICAgLy8gICBbQ2FsbEZyYW1lMSwgQ2FsbEZy
YW1lMl0KKyAgICAgICAgbGV0IHNjb3BlQ2hhaW4gPSBjYWxsRnJhbWUuc2NvcGVDaGFpbjsKKyAg
ICAgICAgbGV0IGNhbGxGcmFtZXMgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmNhbGxG
cmFtZXM7CisKKyAgICAgICAgLy8gR3JvdXAgc2NvcGVzIHdpdGggdGhlIGNhbGwgZnJhbWUgY29u
dGFpbmluZyB0aGVtLgorICAgICAgICAvLyBDcmVhdGluZyBhIG1hcCB0aGF0IGxvb2tzIGxpa2U6
CisgICAgICAgIC8vICAgQ2FsbEZyYW1lMiA9PiBbc2NvcGU1LCBzY29wZTRdCisgICAgICAgIC8v
ICAgQ2FsbEZyYW1lMSA9PiBbc2NvcGUzLCBzY29wZTIsIHNjb3BlMV0KKyAgICAgICAgbGV0IHJl
dmVyc2VkU2NvcGVDaGFpbiA9IHNjb3BlQ2hhaW4uc2xpY2UoKS5yZXZlcnNlKCk7CisgICAgICAg
IGxldCBjYWxsRnJhbWVTY29wZXMgPSBuZXcgTWFwOworICAgICAgICBsZXQgbGFzdExlbmd0aCA9
IDA7CisgICAgICAgIGZvciAobGV0IGkgPSBjYWxsRnJhbWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsg
LS1pKSB7CisgICAgICAgICAgICBsZXQgbmV4dENhbGxGcmFtZSA9IGNhbGxGcmFtZXNbaV07Cisg
ICAgICAgICAgICBjb25zb2xlLmFzc2VydChuZXh0Q2FsbEZyYW1lLnNjb3BlQ2hhaW4ubGVuZ3Ro
ID4gbGFzdExlbmd0aCk7CisgICAgICAgICAgICBjYWxsRnJhbWVTY29wZXMuc2V0KG5leHRDYWxs
RnJhbWUsIHJldmVyc2VkU2NvcGVDaGFpbi5zbGljZShsYXN0TGVuZ3RoLCBuZXh0Q2FsbEZyYW1l
LnNjb3BlQ2hhaW4ubGVuZ3RoKSk7CisgICAgICAgICAgICBsYXN0TGVuZ3RoID0gbmV4dENhbGxG
cmFtZS5zY29wZUNoYWluLmxlbmd0aDsKKyAgICAgICAgICAgIGlmIChuZXh0Q2FsbEZyYW1lID09
PSBjYWxsRnJhbWUpIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlLmFzc2VydChsYXN0TGVuZ3Ro
ID09PSBzY29wZUNoYWluLmxlbmd0aCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KIAotICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuU2NvcGVD
aGFpbk5vZGUuVHlwZS5DYXRjaDoKLSAgICAgICAgICAgICAgICB0aXRsZSA9IFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiQ2F0Y2ggVmFyaWFibGVzIik7Ci0gICAgICAgICAgICAgICAgY29sbGFwc2Vk
QnlEZWZhdWx0ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIC8vIE5v
dyB0aGF0IHdlIGhhdmUgdGhpcyBtYXAgd2UgY2FuIG1lcmdlIHNvbWUgb2YgdGhlIHNjb3BlcyB3
aXRoaW4gYW4gaW5kaXZpZHVhbAorICAgICAgICAvLyBjYWxsIGZyYW1lLiBJbiBwYXJ0aWN1bGFy
LCBmdW5jdGlvbiBjYWxsIGZyYW1lcyBtYXkgaGF2ZSBtdWx0aXBsZSB0b3AgbGV2ZWwKKyAgICAg
ICAgLy8gY2xvc3VyZSBzY29wZXMgKG9uZSBmb3IgYHZhcmBzIG9uZSBmb3IgYGxldGBzKSB0aGF0
IGNhbiBiZSBjb21iaW5lZCB0byBhCisgICAgICAgIC8vIHNpbmdsZSBzY29wZSBvZiB2YXJpYWJs
ZXMuCisgICAgICAgIC8vIFRoaXMgbW9kaWZpZXMgdGhlIE1hcCwgcmVzdWx0aW5nIGluOgorICAg
ICAgICAvLyAgIENhbGxGcmFtZTIgPT4gW3Njb3BlNCwgc2NvcGU1XQorICAgICAgICAvLyAgIENh
bGxGcmFtZTEgPT4gW3Njb3BlMSwgc2NvcGUyJjNdCisgICAgICAgIGZvciAobGV0IFtjdXJyZW50
Q2FsbEZyYW1lLCBzY29wZXNdIG9mIGNhbGxGcmFtZVNjb3BlcykgeworICAgICAgICAgICAgbGV0
IGZpcnN0Q2xvc3VyZVNjb3BlID0gbnVsbDsKKyAgICAgICAgICAgIGZvciAobGV0IHNjb3BlIG9m
IHNjb3BlcykgeworICAgICAgICAgICAgICAgIC8vIFJlYWNoZWQgYSBub24tY2xvc3VyZSBzY29w
ZS4gQmFpbC4KKyAgICAgICAgICAgICAgICBsZXQgaXNDbG9zdXJlU2NvcGUgPSBzY29wZS50eXBl
ID09PSBXZWJJbnNwZWN0b3IuU2NvcGVDaGFpbk5vZGUuVHlwZS5DbG9zdXJlOworICAgICAgICAg
ICAgICAgIGlmICghaXNDbG9zdXJlU2NvcGUgJiYgZmlyc3RDbG9zdXJlU2NvcGUpCisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgLy8gRm91bmQgZmlyc3QgY2xv
c3VyZSBzY29wZS4gTWFyayBpdCBzbyB3ZSBjYW4gcHJvdmlkZSB0aGUgZnVuY3Rpb24gbmFtZSBs
YXRlciBpbiB0aGUgVUkuCisgICAgICAgICAgICAgICAgaWYgKGlzQ2xvc3VyZVNjb3BlICYmICFm
aXJzdENsb3N1cmVTY29wZSkgeworICAgICAgICAgICAgICAgICAgICBmaXJzdENsb3N1cmVTY29w
ZSA9IHNjb3BlOworICAgICAgICAgICAgICAgICAgICBmaXJzdENsb3N1cmVTY29wZVtXZWJJbnNw
ZWN0b3IuU2NvcGVDaGFpbkRldGFpbHNTaWRlYmFyUGFuZWwuQ2FsbEZyYW1lQmFzZUNsb3N1cmVT
Y29wZVN5bWJvbF0gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlNjb3BlQ2hhaW5O
b2RlLlR5cGUuRnVuY3Rpb25OYW1lOgotICAgICAgICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJGdW5jdGlvbiBOYW1lIFZhcmlhYmxlIik7Ci0gICAgICAgICAgICAgICAg
Y29sbGFwc2VkQnlEZWZhdWx0ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICAvLyBGb3VuZCAyIHNlcXVlbnRpYWwgdG9wIGxldmVsIGNsb3N1cmUgc2NvcGVz
LiBNZXJnZSBhbmQgbWFyayBpdCBzbyB3ZSBjYW4gcHJvdmlkZSB0aGUgZnVuY3Rpb24gbmFtZSBs
YXRlciBpbiB0aGUgVUkuCisgICAgICAgICAgICAgICAgaWYgKGlzQ2xvc3VyZVNjb3BlICYmIGZp
cnN0Q2xvc3VyZVNjb3BlKSB7CisgICAgICAgICAgICAgICAgICAgIGxldCB0eXBlID0gY3VycmVu
dENhbGxGcmFtZSA9PT0gY2FsbEZyYW1lID8gV2ViSW5zcGVjdG9yLlNjb3BlQ2hhaW5Ob2RlLlR5
cGUuTG9jYWwgOiBXZWJJbnNwZWN0b3IuU2NvcGVDaGFpbk5vZGUuVHlwZS5DbG9zdXJlOworICAg
ICAgICAgICAgICAgICAgICBsZXQgb2JqZWN0cyA9IGZpcnN0Q2xvc3VyZVNjb3BlLm9iamVjdHMu
Y29uY2F0KHNjb3BlLm9iamVjdHMpOworICAgICAgICAgICAgICAgICAgICBsZXQgbWVyZ2VkID0g
bmV3IFdlYkluc3BlY3Rvci5TY29wZUNoYWluTm9kZSh0eXBlLCBvYmplY3RzKTsKKyAgICAgICAg
ICAgICAgICAgICAgbWVyZ2VkW1dlYkluc3BlY3Rvci5TY29wZUNoYWluRGV0YWlsc1NpZGViYXJQ
YW5lbC5DYWxsRnJhbWVCYXNlQ2xvc3VyZVNjb3BlU3ltYm9sXSA9IHRydWU7CisgICAgICAgICAg
ICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KG9iamVjdHMubGVuZ3RoID09PSAyKTsKKworICAgICAg
ICAgICAgICAgICAgICBsZXQgaW5kZXggPSBzY29wZXMuaW5kZXhPZihmaXJzdENsb3N1cmVTY29w
ZSk7CisgICAgICAgICAgICAgICAgICAgIHNjb3Blcy5zcGxpY2UoaW5kZXgsIDEpOyAvLyBSZW1v
dmUgb25lIG9mIHRoZW0uCisgICAgICAgICAgICAgICAgICAgIHNjb3Blc1tpbmRleF0gPSBtZXJn
ZWQ7IC8vIFJlcGxhY2UgdGhlIHJlbWFpbmluZyB3aXRoIHRoZSBtZXJnZWQuCisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIHNjb3Blcy5yZXZlcnNlKCk7CisgICAgICAgIH0KIAotICAgICAgICAgICAgY2FzZSBX
ZWJJbnNwZWN0b3IuU2NvcGVDaGFpbk5vZGUuVHlwZS5XaXRoOgotICAgICAgICAgICAgICAgIHRp
dGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJXaXRoIE9iamVjdCBQcm9wZXJ0aWVzIik7Ci0g
ICAgICAgICAgICAgICAgY29sbGFwc2VkQnlEZWZhdWx0ID0gZm91bmRMb2NhbFNjb3BlOwotICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAvLyBOb3cgd2UgY2FuIHdhbGsgdGhlIGxpc3Qg
b2YgY2FsbCBmcmFtZXMgYW5kIHRoZWlyIHNjb3Blcy4KKyAgICAgICAgLy8gV2Ugd2FsayBpbiB0
b3AgLT4gZG93biBvcmRlcjoKKyAgICAgICAgLy8gICBDYWxsRnJhbWUxID0+IFtzY29wZTEsIHNj
b3BlMiYzXQorICAgICAgICAvLyAgIENhbGxGcmFtZTIgPT4gW3Njb3BlNSwgc2NvcGU0XQorICAg
ICAgICBmb3IgKGxldCBbY2FsbCwgc2NvcGVzXSBvZiBbLi4uY2FsbEZyYW1lU2NvcGVzLmVudHJp
ZXMoKV0ucmV2ZXJzZSgpKSB7CisgICAgICAgICAgICBmb3IgKGxldCBzY29wZSBvZiBzY29wZXMp
IHsKKyAgICAgICAgICAgICAgICBsZXQgdGl0bGUgPSBudWxsOworICAgICAgICAgICAgICAgIGxl
dCBleHRyYVByb3BlcnR5RGVzY3JpcHRvciA9IG51bGw7CisgICAgICAgICAgICAgICAgbGV0IGNv
bGxhcHNlZEJ5RGVmYXVsdCA9IGZhbHNlOworCisgICAgICAgICAgICAgICAgbGV0IGNvdW50ID0g
c2VjdGlvbkNvdW50QnlUeXBlLmdldChzY29wZS50eXBlKTsKKyAgICAgICAgICAgICAgICBzZWN0
aW9uQ291bnRCeVR5cGUuc2V0KHNjb3BlLnR5cGUsICsrY291bnQpOworCisgICAgICAgICAgICAg
ICAgc3dpdGNoIChzY29wZS50eXBlKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgV2ViSW5z
cGVjdG9yLlNjb3BlQ2hhaW5Ob2RlLlR5cGUuTG9jYWw6CisgICAgICAgICAgICAgICAgICAgICAg
ICBmb3VuZExvY2FsU2NvcGUgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgY29sbGFw
c2VkQnlEZWZhdWx0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiTG9jYWwgVmFyaWFibGVzIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoY2FsbC50aGlzT2JqZWN0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGV4dHJhUHJvcGVydHlEZXNjcmlwdG9yID0gbmV3IFdlYkluc3BlY3Rvci5Qcm9wZXJ0eURlc2Ny
aXB0b3Ioe25hbWU6ICJ0aGlzIiwgdmFsdWU6IGNhbGwudGhpc09iamVjdH0pOworICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBXZWJJbnNw
ZWN0b3IuU2NvcGVDaGFpbk5vZGUuVHlwZS5DbG9zdXJlOgorICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKHNjb3BlW1dlYkluc3BlY3Rvci5TY29wZUNoYWluRGV0YWlsc1NpZGViYXJQYW5lbC5D
YWxsRnJhbWVCYXNlQ2xvc3VyZVNjb3BlU3ltYm9sXSAmJiBjYWxsLmZ1bmN0aW9uTmFtZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygi
Q2xvc3VyZSBWYXJpYWJsZXMgKCVzKSIpLmZvcm1hdChjYWxsLmZ1bmN0aW9uTmFtZSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0
bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNsb3N1cmUgVmFyaWFibGVzIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICBjb2xsYXBzZWRCeURlZmF1bHQgPSBmYWxzZTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVj
dG9yLlNjb3BlQ2hhaW5Ob2RlLlR5cGUuQmxvY2s6CisgICAgICAgICAgICAgICAgICAgICAgICB0
aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQmxvY2sgVmFyaWFibGVzIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICBjb2xsYXBzZWRCeURlZmF1bHQgPSBmYWxzZTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVj
dG9yLlNjb3BlQ2hhaW5Ob2RlLlR5cGUuQ2F0Y2g6CisgICAgICAgICAgICAgICAgICAgICAgICB0
aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2F0Y2ggVmFyaWFibGVzIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICBjb2xsYXBzZWRCeURlZmF1bHQgPSBmYWxzZTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVj
dG9yLlNjb3BlQ2hhaW5Ob2RlLlR5cGUuRnVuY3Rpb25OYW1lOgorICAgICAgICAgICAgICAgICAg
ICAgICAgdGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkZ1bmN0aW9uIE5hbWUgVmFyaWFi
bGUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxhcHNlZEJ5RGVmYXVsdCA9IHRydWU7
CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBj
YXNlIFdlYkluc3BlY3Rvci5TY29wZUNoYWluTm9kZS5UeXBlLldpdGg6CisgICAgICAgICAgICAg
ICAgICAgICAgICB0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiV2l0aCBPYmplY3QgUHJv
cGVydGllcyIpOworICAgICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VkQnlEZWZhdWx0ID0g
Zm91bmRMb2NhbFNjb3BlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAg
ICAgICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuU2NvcGVDaGFpbk5vZGUuVHlwZS5HbG9i
YWw6CisgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiR2xvYmFsIFZhcmlhYmxlcyIpOworICAgICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2Vk
QnlEZWZhdWx0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlNjb3BlQ2hhaW5Ob2RlLlR5cGUuR2xv
YmFsTGV4aWNhbEVudmlyb25tZW50OgorICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkdsb2JhbCBMZXhpY2FsIEVudmlyb25tZW50Iik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBjb2xsYXBzZWRCeURlZmF1bHQgPSB0cnVlOworICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBj
YXNlIFdlYkluc3BlY3Rvci5TY29wZUNoYWluTm9kZS5UeXBlLkdsb2JhbDoKLSAgICAgICAgICAg
ICAgICB0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiR2xvYmFsIFZhcmlhYmxlcyIpOwot
ICAgICAgICAgICAgICAgIGNvbGxhcHNlZEJ5RGVmYXVsdCA9IHRydWU7Ci0gICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgbGV0IGRldGFpbHNTZWN0aW9uSWRlbnRpZmllciA9
IHNjb3BlLnR5cGUgKyAiLSIgKyBzZWN0aW9uQ291bnRCeVR5cGUuZ2V0KHNjb3BlLnR5cGUpOwog
Ci0gICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5TY29wZUNoYWluTm9kZS5UeXBlLkdsb2Jh
bExleGljYWxFbnZpcm9ubWVudDoKLSAgICAgICAgICAgICAgICB0aXRsZSA9IFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiR2xvYmFsIExleGljYWwgRW52aXJvbm1lbnQiKTsKLSAgICAgICAgICAgICAg
ICBjb2xsYXBzZWRCeURlZmF1bHQgPSB0cnVlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGp1c3QgcHV0cyB0d28g
T2JqZWN0VHJlZVZpZXdzIG5leHQgdG8gZWFjaG90aGVyLCBidXQgdGhhdCBtZWFucworICAgICAg
ICAgICAgICAgIC8vIHRoYXQgcHJvcGVydGllcyBhcmUgbm90IG5pY2VseSBzb3J0ZWQgYmV0d2Vl
biB0aGUgdHdvIHNlcGFyYXRlIGxpc3RzLgogCi0gICAgICAgICAgICBsZXQgZGV0YWlsc1NlY3Rp
b25JZGVudGlmaWVyID0gc2NvcGUudHlwZSArICItIiArIHNlY3Rpb25Db3VudEJ5VHlwZS5nZXQo
c2NvcGUudHlwZSk7CisgICAgICAgICAgICAgICAgbGV0IHJvd3MgPSBbXTsKKyAgICAgICAgICAg
ICAgICBmb3IgKGxldCBvYmplY3Qgb2Ygc2NvcGUub2JqZWN0cykgeworICAgICAgICAgICAgICAg
ICAgICBsZXQgc2NvcGVQcm9wZXJ0eVBhdGggPSBXZWJJbnNwZWN0b3IuUHJvcGVydHlQYXRoLmVt
cHR5UHJvcGVydHlQYXRoRm9yU2NvcGUob2JqZWN0KTsKKyAgICAgICAgICAgICAgICAgICAgbGV0
IG9iamVjdFRyZWUgPSBuZXcgV2ViSW5zcGVjdG9yLk9iamVjdFRyZWVWaWV3KG9iamVjdCwgV2Vi
SW5zcGVjdG9yLk9iamVjdFRyZWVWaWV3Lk1vZGUuUHJvcGVydGllcywgc2NvcGVQcm9wZXJ0eVBh
dGgpOwogCi0gICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBqdXN0IHB1dHMgdHdvIE9iamVjdFRy
ZWVWaWV3cyBuZXh0IHRvIGVhY2ggb3RoZXIsIGJ1dCB0aGF0IG1lYW5zCi0gICAgICAgICAgICAv
LyB0aGF0IHByb3BlcnRpZXMgYXJlIG5vdCBuaWNlbHkgc29ydGVkIGJldHdlZW4gdGhlIHR3byBz
ZXBhcmF0ZSBsaXN0cy4KKyAgICAgICAgICAgICAgICAgICAgb2JqZWN0VHJlZS5zaG93T25seVBy
b3BlcnRpZXMoKTsKIAotICAgICAgICAgICAgbGV0IHJvd3MgPSBbXTsKLSAgICAgICAgICAgIGZv
ciAobGV0IG9iamVjdCBvZiBzY29wZS5vYmplY3RzKSB7Ci0gICAgICAgICAgICAgICAgbGV0IHNj
b3BlUHJvcGVydHlQYXRoID0gV2ViSW5zcGVjdG9yLlByb3BlcnR5UGF0aC5lbXB0eVByb3BlcnR5
UGF0aEZvclNjb3BlKG9iamVjdCk7Ci0gICAgICAgICAgICAgICAgbGV0IG9iamVjdFRyZWUgPSBu
ZXcgV2ViSW5zcGVjdG9yLk9iamVjdFRyZWVWaWV3KG9iamVjdCwgV2ViSW5zcGVjdG9yLk9iamVj
dFRyZWVWaWV3Lk1vZGUuUHJvcGVydGllcywgc2NvcGVQcm9wZXJ0eVBhdGgpOworICAgICAgICAg
ICAgICAgICAgICBpZiAoZXh0cmFQcm9wZXJ0eURlc2NyaXB0b3IpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG9iamVjdFRyZWUuYXBwZW5kRXh0cmFQcm9wZXJ0eURlc2NyaXB0b3IoZXh0cmFQ
cm9wZXJ0eURlc2NyaXB0b3IpOworICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFQcm9wZXJ0
eURlc2NyaXB0b3IgPSBudWxsOworICAgICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg
ICAgICBvYmplY3RUcmVlLnNob3dPbmx5UHJvcGVydGllcygpOworICAgICAgICAgICAgICAgICAg
ICBsZXQgdHJlZU91dGxpbmUgPSBvYmplY3RUcmVlLnRyZWVPdXRsaW5lOworICAgICAgICAgICAg
ICAgICAgICB0cmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UcmVlT3V0
bGluZS5FdmVudC5FbGVtZW50QWRkZWQsIHRoaXMuX3RyZWVFbGVtZW50QWRkZWQuYmluZCh0aGlz
LCBkZXRhaWxzU2VjdGlvbklkZW50aWZpZXIpLCB0aGlzKTsKKyAgICAgICAgICAgICAgICAgICAg
dHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmUuRXZl
bnQuRWxlbWVudERpc2Nsb3N1cmVEaWRDaGFuZ2VkLCB0aGlzLl90cmVlRWxlbWVudERpc2Nsb3N1
cmVEaWRDaGFuZ2UuYmluZCh0aGlzLCBkZXRhaWxzU2VjdGlvbklkZW50aWZpZXIpLCB0aGlzKTsK
IAotICAgICAgICAgICAgICAgIGlmIChleHRyYVByb3BlcnR5RGVzY3JpcHRvcikgewotICAgICAg
ICAgICAgICAgICAgICBvYmplY3RUcmVlLmFwcGVuZEV4dHJhUHJvcGVydHlEZXNjcmlwdG9yKGV4
dHJhUHJvcGVydHlEZXNjcmlwdG9yKTsKLSAgICAgICAgICAgICAgICAgICAgZXh0cmFQcm9wZXJ0
eURlc2NyaXB0b3IgPSBudWxsOworICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2gobmV3IFdl
Ykluc3BlY3Rvci5EZXRhaWxzU2VjdGlvblByb3BlcnRpZXNSb3cob2JqZWN0VHJlZSkpOwogICAg
ICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGxldCB0cmVlT3V0bGluZSA9IG9iamVj
dFRyZWUudHJlZU91dGxpbmU7Ci0gICAgICAgICAgICAgICAgdHJlZU91dGxpbmUuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmUuRXZlbnQuRWxlbWVudEFkZGVkLCB0aGlz
Ll90cmVlRWxlbWVudEFkZGVkLmJpbmQodGhpcywgZGV0YWlsc1NlY3Rpb25JZGVudGlmaWVyKSwg
dGhpcyk7Ci0gICAgICAgICAgICAgICAgdHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuVHJlZU91dGxpbmUuRXZlbnQuRWxlbWVudERpc2Nsb3N1cmVEaWRDaGFuZ2VkLCB0
aGlzLl90cmVlRWxlbWVudERpc2Nsb3N1cmVEaWRDaGFuZ2UuYmluZCh0aGlzLCBkZXRhaWxzU2Vj
dGlvbklkZW50aWZpZXIpLCB0aGlzKTsKLQotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiA8aHR0
cHM6Ly93ZWJraXQub3JnL2IvMTQwNTY3PiBXZWIgSW5zcGVjdG9yOiBEbyBub3QgcmVxdWVzdCBT
Y29wZSBDaGFpbiBsaXN0cyBpZiBzZWN0aW9uIGlzIGNvbGxhcHNlZCAobWFpbmx5IEdsb2JhbCBW
YXJpYWJsZXMpCi0gICAgICAgICAgICAgICAgLy8gVGhpcyBhdXRvZXhwYW5kcyB0aGUgT2JqZWN0
VHJlZVZpZXcgYW5kIGZldGNoZXMgYWxsIHByb3BlcnRpZXMuIFNob3VsZCB3YWl0IHRvIHNlZSBp
ZiB3ZSBhcmUgY29sbGFwc2VkIG9yIG5vdC4KLSAgICAgICAgICAgICAgICByb3dzLnB1c2gobmV3
IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlvblByb3BlcnRpZXNSb3cob2JqZWN0VHJlZSkpOwor
ICAgICAgICAgICAgICAgIGxldCBkZXRhaWxzU2VjdGlvbiA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0
YWlsc1NlY3Rpb24oZGV0YWlsc1NlY3Rpb25JZGVudGlmaWVyLCB0aXRsZSwgbnVsbCwgbnVsbCwg
Y29sbGFwc2VkQnlEZWZhdWx0KTsKKyAgICAgICAgICAgICAgICBkZXRhaWxzU2VjdGlvbi5ncm91
cHNbMF0ucm93cyA9IHJvd3M7CisgICAgICAgICAgICAgICAgZGV0YWlsc1NlY3Rpb25zLnB1c2go
ZGV0YWlsc1NlY3Rpb24pOwogICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBsZXQgZGV0YWls
c1NlY3Rpb24gPSBuZXcgV2ViSW5zcGVjdG9yLkRldGFpbHNTZWN0aW9uKGRldGFpbHNTZWN0aW9u
SWRlbnRpZmllciwgdGl0bGUsIG51bGwsIG51bGwsIGNvbGxhcHNlZEJ5RGVmYXVsdCk7Ci0gICAg
ICAgICAgICBkZXRhaWxzU2VjdGlvbi5ncm91cHNbMF0ucm93cyA9IHJvd3M7Ci0gICAgICAgICAg
ICBkZXRhaWxzU2VjdGlvbnMucHVzaChkZXRhaWxzU2VjdGlvbik7CiAgICAgICAgIH0KIAogICAg
ICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGRldGFpbHNTZWN0aW9ucyk7CkBAIC00NzgsMyAr
NTQ1LDQgQEAgV2ViSW5zcGVjdG9yLlNjb3BlQ2hhaW5EZXRhaWxzU2lkZWJhclBhbmVsID0gY2xh
c3MgU2NvcGVDaGFpbkRldGFpbHNTaWRlYmFyUGFuZWwKIAogV2ViSW5zcGVjdG9yLlNjb3BlQ2hh
aW5EZXRhaWxzU2lkZWJhclBhbmVsLl9hdXRvRXhwYW5kUHJvcGVydGllcyA9IG5ldyBTZXQ7CiBX
ZWJJbnNwZWN0b3IuU2NvcGVDaGFpbkRldGFpbHNTaWRlYmFyUGFuZWwuV2F0Y2hFeHByZXNzaW9u
c09iamVjdEdyb3VwTmFtZSA9ICJ3YXRjaC1leHByZXNzaW9ucyI7CitXZWJJbnNwZWN0b3IuU2Nv
cGVDaGFpbkRldGFpbHNTaWRlYmFyUGFuZWwuQ2FsbEZyYW1lQmFzZUNsb3N1cmVTY29wZVN5bWJv
bCA9IFN5bWJvbCgic2NvcGUtY2hhaW4tY2FsbC1mcmFtZS1iYXNlLWNsb3N1cmUtc2NvcGUiKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMDQ0NjA2ZWU3NDU4MDI2ZGZlY2ViODZiZWE1OTc1YjlmMDVhODc0Li4wMzczMTM3
NTRiZTAyNjhlZmM4ZmY3OWRmNGU4NjFiYzliMjc1N2FiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTYtMDYtMzAgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMDI2NTkuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTkzMDUKKworICAgICAgICBUaGUgdGVz
dCBmb3IgdGhpcyBjaGFuZ2UgdGltZXMgb3V0IG9uIG1hYy13azIgZGVidWcgYW5kIGNhdXNlZAor
ICAgICAgICBhbiBleGlzdGluZyB0ZXN0IHRvIGNyYXNoLiAoUmVxdWVzdGVkIGJ5IHJ5YW5oYWRk
YWQgb24KKyAgICAgICAgI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0Ogor
CisgICAgICAgICJXZWIgSW5zcGVjdG9yOiBXcm9uZyBmdW5jdGlvbiBuYW1lIG5leHQgdG8gc2Nv
cGUiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgy
MTAKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjAyNjU5CisKIDIw
MTYtMDYtMzAgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0pTQ10gRGF0ZS5zZXRZZWFyKCkgbWlzc2VzIHRpbWVDbGlwKCkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZWQtc2NvcGVzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZWQtc2NvcGVzLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODIyMWEzZjhjYjQ1YTM4M2IyMzQ4MDhj
OTNjNDE1N2VkNDE5YjhkZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcGF1c2VkLXNjb3Blcy1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMDUgKzAsMCBAQAotQ2hlY2sgc2NvcGUgY2hh
aW5zIGZvciBkaWZmZXJlbnQgY2FsbCBmcmFtZXMgYXQgZGlmZmVyZW50IHBhdXNlcy4KLQotCi09
PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFBhdXNlZENhbGxGcmFtZVNjb3BlCi0tLSBSdW5uaW5nIHRl
c3QgY2FzZTogVHJpZ2dlckZpcnN0UGF1c2UKLUNBTExGUkFNRTogZmlyc3RQYXVzZQotCi0tLS0t
IFNjb3BlIENoYWluIC0tLS0KLSAgU0NPUEU6IE5hbWUgKGZpcnN0UGF1c2UpIC0gVHlwZSAoQmxv
Y2spIC0gSGFzaCAoZmlyc3RQYXVzZTo8c291cmNlSUQ+OjIxOjI5KQotICAgIC0gYmFyTGV4aWNh
bFZhcmlhYmxlMgotICBTQ09QRTogTmFtZSAoZmlyc3RQYXVzZSkgLSBUeXBlIChDbG9zdXJlKSAt
IEhhc2ggKGZpcnN0UGF1c2U6PHNvdXJjZUlEPjoyMToyOSkKLSAgICAtIGJhckxleGljYWxWYXJp
YWJsZTIKLSAgU0NPUEU6IE5hbWUgKGZpcnN0UGF1c2UpIC0gVHlwZSAoQ2xvc3VyZSkgLSBIYXNo
IChmaXJzdFBhdXNlOjxzb3VyY2VJRD46MjE6MjkpCi0gICAgLSBiYXJWYXJWYXJpYWJsZTEKLSAg
U0NPUEU6IE5hbWUgKGZpcnN0UGF1c2UpIC0gVHlwZSAoRnVuY3Rpb25OYW1lKSAtIEhhc2ggKGZp
cnN0UGF1c2U6PHNvdXJjZUlEPjoyMToyOSkKLSAgICAtIGZpcnN0UGF1c2UKLSAgU0NPUEU6IE5h
bWUgKGZpcnN0UGF1c2UpIC0gVHlwZSAoQ2xvc3VyZSkgLSBIYXNoIChmaXJzdFBhdXNlOjxzb3Vy
Y2VJRD46MTk6MjQpCi0gICAgLSBmYWtlRmlyc3RQYXVzZUxleGljYWxWYXJpYWJsZQotICBTQ09Q
RTogTmFtZSAoZmlyc3RQYXVzZSkgLSBUeXBlIChDbG9zdXJlKSAtIEhhc2ggKGZpcnN0UGF1c2U6
PHNvdXJjZUlEPjoxOToyNCkKLSAgU0NPUEU6IE5hbWUgKGVudHJ5KSAtIFR5cGUgKENsb3N1cmUp
IC0gSGFzaCAoZW50cnk6PHNvdXJjZUlEPjoxNDoxNSkKLSAgICAtIGZvb0xleGljYWxWYXJpYWJs
ZTIKLSAgU0NPUEU6IE5hbWUgKGVudHJ5KSAtIFR5cGUgKENsb3N1cmUpIC0gSGFzaCAoZW50cnk6
PHNvdXJjZUlEPjoxNDoxNSkKLSAgICAtIGZpcnN0UGF1c2UKLSAgICAtIGZvb1ZhclZhcmlhYmxl
MQotICBTQ09QRTogTmFtZSAoKSAtIFR5cGUgKEdsb2JhbExleGljYWxFbnZpcm9ubWVudCkgLSBI
YXNoICgpCi0gICAgLSBnbG9iYWxMZXQyCi0gIFNDT1BFOiBOYW1lICgpIC0gVHlwZSAoR2xvYmFs
KSAtIEhhc2ggKCkKLQotLS0tLSBNZXJnZWQgU2NvcGUgQ2hhaW4gLS0tLQotICBTQ09QRTogTmFt
ZSAoZmlyc3RQYXVzZSkgLSBUeXBlIChCbG9jaykgLSBIYXNoIChmaXJzdFBhdXNlOjxzb3VyY2VJ
RD46MjE6MjkpCi0gICAgLSBiYXJMZXhpY2FsVmFyaWFibGUyCi0gIFNDT1BFOiBOYW1lIChmaXJz
dFBhdXNlKSAtIFR5cGUgKExvY2FsKSAtIEhhc2ggKGZpcnN0UGF1c2U6PHNvdXJjZUlEPjoyMToy
OSkKLSAgICAtIGJhclZhclZhcmlhYmxlMQotICAgIC0gYmFyTGV4aWNhbFZhcmlhYmxlMgotICBT
Q09QRTogTmFtZSAoZmlyc3RQYXVzZSkgLSBUeXBlIChGdW5jdGlvbk5hbWUpIC0gSGFzaCAoZmly
c3RQYXVzZTo8c291cmNlSUQ+OjIxOjI5KQotICAgIC0gZmlyc3RQYXVzZQotICBTQ09QRTogTmFt
ZSAoZmlyc3RQYXVzZSkgLSBUeXBlIChDbG9zdXJlKSAtIEhhc2ggKGZpcnN0UGF1c2U6PHNvdXJj
ZUlEPjoxOToyNCkKLSAgICAtIGZha2VGaXJzdFBhdXNlTGV4aWNhbFZhcmlhYmxlCi0gIFNDT1BF
OiBOYW1lIChlbnRyeSkgLSBUeXBlIChDbG9zdXJlKSAtIEhhc2ggKGVudHJ5Ojxzb3VyY2VJRD46
MTQ6MTUpCi0gICAgLSBmaXJzdFBhdXNlCi0gICAgLSBmb29WYXJWYXJpYWJsZTEKLSAgICAtIGZv
b0xleGljYWxWYXJpYWJsZTIKLSAgU0NPUEU6IE5hbWUgKCkgLSBUeXBlIChHbG9iYWxMZXhpY2Fs
RW52aXJvbm1lbnQpIC0gSGFzaCAoKQotICAgIC0gZ2xvYmFsTGV0MgotICBTQ09QRTogTmFtZSAo
KSAtIFR5cGUgKEdsb2JhbCkgLSBIYXNoICgpCi0KLUNBTExGUkFNRTogZmlyc3RQYXVzZQotCi0t
LS0tIFNjb3BlIENoYWluIC0tLS0KLSAgU0NPUEU6IE5hbWUgKGZpcnN0UGF1c2UpIC0gVHlwZSAo
Q2xvc3VyZSkgLSBIYXNoIChmaXJzdFBhdXNlOjxzb3VyY2VJRD46MTk6MjQpCi0gICAgLSBmYWtl
Rmlyc3RQYXVzZUxleGljYWxWYXJpYWJsZQotICBTQ09QRTogTmFtZSAoZmlyc3RQYXVzZSkgLSBU
eXBlIChDbG9zdXJlKSAtIEhhc2ggKGZpcnN0UGF1c2U6PHNvdXJjZUlEPjoxOToyNCkKLSAgU0NP
UEU6IE5hbWUgKGVudHJ5KSAtIFR5cGUgKENsb3N1cmUpIC0gSGFzaCAoZW50cnk6PHNvdXJjZUlE
PjoxNDoxNSkKLSAgICAtIGZvb0xleGljYWxWYXJpYWJsZTIKLSAgU0NPUEU6IE5hbWUgKGVudHJ5
KSAtIFR5cGUgKENsb3N1cmUpIC0gSGFzaCAoZW50cnk6PHNvdXJjZUlEPjoxNDoxNSkKLSAgICAt
IGZpcnN0UGF1c2UKLSAgICAtIGZvb1ZhclZhcmlhYmxlMQotICBTQ09QRTogTmFtZSAoKSAtIFR5
cGUgKEdsb2JhbExleGljYWxFbnZpcm9ubWVudCkgLSBIYXNoICgpCi0gICAgLSBnbG9iYWxMZXQy
Ci0gIFNDT1BFOiBOYW1lICgpIC0gVHlwZSAoR2xvYmFsKSAtIEhhc2ggKCkKLQotLS0tLSBNZXJn
ZWQgU2NvcGUgQ2hhaW4gLS0tLQotICBTQ09QRTogTmFtZSAoZmlyc3RQYXVzZSkgLSBUeXBlIChM
b2NhbCkgLSBIYXNoIChmaXJzdFBhdXNlOjxzb3VyY2VJRD46MTk6MjQpCi0gICAgLSBmYWtlRmly
c3RQYXVzZUxleGljYWxWYXJpYWJsZQotICBTQ09QRTogTmFtZSAoZW50cnkpIC0gVHlwZSAoQ2xv
c3VyZSkgLSBIYXNoIChlbnRyeTo8c291cmNlSUQ+OjE0OjE1KQotICAgIC0gZmlyc3RQYXVzZQot
ICAgIC0gZm9vVmFyVmFyaWFibGUxCi0gICAgLSBmb29MZXhpY2FsVmFyaWFibGUyCi0gIFNDT1BF
OiBOYW1lICgpIC0gVHlwZSAoR2xvYmFsTGV4aWNhbEVudmlyb25tZW50KSAtIEhhc2ggKCkKLSAg
ICAtIGdsb2JhbExldDIKLSAgU0NPUEU6IE5hbWUgKCkgLSBUeXBlIChHbG9iYWwpIC0gSGFzaCAo
KQotCi1DQUxMRlJBTUU6IGVudHJ5Ci0KLS0tLS0gU2NvcGUgQ2hhaW4gLS0tLQotICBTQ09QRTog
TmFtZSAoZW50cnkpIC0gVHlwZSAoQ2xvc3VyZSkgLSBIYXNoIChlbnRyeTo8c291cmNlSUQ+OjE0
OjE1KQotICAgIC0gZm9vTGV4aWNhbFZhcmlhYmxlMgotICBTQ09QRTogTmFtZSAoZW50cnkpIC0g
VHlwZSAoQ2xvc3VyZSkgLSBIYXNoIChlbnRyeTo8c291cmNlSUQ+OjE0OjE1KQotICAgIC0gZmly
c3RQYXVzZQotICAgIC0gZm9vVmFyVmFyaWFibGUxCi0gIFNDT1BFOiBOYW1lICgpIC0gVHlwZSAo
R2xvYmFsTGV4aWNhbEVudmlyb25tZW50KSAtIEhhc2ggKCkKLSAgICAtIGdsb2JhbExldDIKLSAg
U0NPUEU6IE5hbWUgKCkgLSBUeXBlIChHbG9iYWwpIC0gSGFzaCAoKQotCi0tLS0tIE1lcmdlZCBT
Y29wZSBDaGFpbiAtLS0tCi0gIFNDT1BFOiBOYW1lIChlbnRyeSkgLSBUeXBlIChMb2NhbCkgLSBI
YXNoIChlbnRyeTo8c291cmNlSUQ+OjE0OjE1KQotICAgIC0gZmlyc3RQYXVzZQotICAgIC0gZm9v
VmFyVmFyaWFibGUxCi0gICAgLSBmb29MZXhpY2FsVmFyaWFibGUyCi0gIFNDT1BFOiBOYW1lICgp
IC0gVHlwZSAoR2xvYmFsTGV4aWNhbEVudmlyb25tZW50KSAtIEhhc2ggKCkKLSAgICAtIGdsb2Jh
bExldDIKLSAgU0NPUEU6IE5hbWUgKCkgLSBUeXBlIChHbG9iYWwpIC0gSGFzaCAoKQotCi0KLS0t
IFJ1bm5pbmcgdGVzdCBjYXNlOiBUcmlnZ2VyU2Vjb25kUGF1c2UKLUNBTExGUkFNRTogc2Vjb25k
UGF1c2UKLQotLS0tLSBTY29wZSBDaGFpbiAtLS0tCi0gIFNDT1BFOiBOYW1lIChzZWNvbmRQYXVz
ZSkgLSBUeXBlIChCbG9jaykgLSBIYXNoIChzZWNvbmRQYXVzZTo8c291cmNlSUQ+OjY6MjEpCi0g
ICAgLSBibG9ja0xleGljYWxWYXJpYWJsZQotICBTQ09QRTogTmFtZSAoc2Vjb25kUGF1c2UpIC0g
VHlwZSAoQ2xvc3VyZSkgLSBIYXNoIChzZWNvbmRQYXVzZTo8c291cmNlSUQ+OjY6MjEpCi0gICAg
LSBzaG9lTGV4aWNhbFZhcmlhYmxlMQotICBTQ09QRTogTmFtZSAoc2Vjb25kUGF1c2UpIC0gVHlw
ZSAoQ2xvc3VyZSkgLSBIYXNoIChzZWNvbmRQYXVzZTo8c291cmNlSUQ+OjY6MjEpCi0gIFNDT1BF
OiBOYW1lICgpIC0gVHlwZSAoR2xvYmFsTGV4aWNhbEVudmlyb25tZW50KSAtIEhhc2ggKCkKLSAg
ICAtIGdsb2JhbExldDIKLSAgU0NPUEU6IE5hbWUgKCkgLSBUeXBlIChHbG9iYWwpIC0gSGFzaCAo
KQotCi0tLS0tIE1lcmdlZCBTY29wZSBDaGFpbiAtLS0tCi0gIFNDT1BFOiBOYW1lIChzZWNvbmRQ
YXVzZSkgLSBUeXBlIChCbG9jaykgLSBIYXNoIChzZWNvbmRQYXVzZTo8c291cmNlSUQ+OjY6MjEp
Ci0gICAgLSBibG9ja0xleGljYWxWYXJpYWJsZQotICBTQ09QRTogTmFtZSAoc2Vjb25kUGF1c2Up
IC0gVHlwZSAoTG9jYWwpIC0gSGFzaCAoc2Vjb25kUGF1c2U6PHNvdXJjZUlEPjo2OjIxKQotICAg
IC0gc2hvZUxleGljYWxWYXJpYWJsZTEKLSAgU0NPUEU6IE5hbWUgKCkgLSBUeXBlIChHbG9iYWxM
ZXhpY2FsRW52aXJvbm1lbnQpIC0gSGFzaCAoKQotICAgIC0gZ2xvYmFsTGV0MgotICBTQ09QRTog
TmFtZSAoKSAtIFR5cGUgKEdsb2JhbCkgLSBIYXNoICgpCi0KLUNBTExGUkFNRTogZmlyc3RQYXVz
ZQotCi0tLS0tIFNjb3BlIENoYWluIC0tLS0KLSAgU0NPUEU6IE5hbWUgKGZpcnN0UGF1c2UpIC0g
VHlwZSAoQmxvY2spIC0gSGFzaCAoZmlyc3RQYXVzZTo8c291cmNlSUQ+OjIxOjI5KQotICAgIC0g
YmFyTGV4aWNhbFZhcmlhYmxlMgotICBTQ09QRTogTmFtZSAoZmlyc3RQYXVzZSkgLSBUeXBlIChD
bG9zdXJlKSAtIEhhc2ggKGZpcnN0UGF1c2U6PHNvdXJjZUlEPjoyMToyOSkKLSAgICAtIGJhckxl
eGljYWxWYXJpYWJsZTIKLSAgU0NPUEU6IE5hbWUgKGZpcnN0UGF1c2UpIC0gVHlwZSAoQ2xvc3Vy
ZSkgLSBIYXNoIChmaXJzdFBhdXNlOjxzb3VyY2VJRD46MjE6MjkpCi0gICAgLSBiYXJWYXJWYXJp
YWJsZTEKLSAgU0NPUEU6IE5hbWUgKGZpcnN0UGF1c2UpIC0gVHlwZSAoRnVuY3Rpb25OYW1lKSAt
IEhhc2ggKGZpcnN0UGF1c2U6PHNvdXJjZUlEPjoyMToyOSkKLSAgICAtIGZpcnN0UGF1c2UKLSAg
U0NPUEU6IE5hbWUgKGZpcnN0UGF1c2UpIC0gVHlwZSAoQ2xvc3VyZSkgLSBIYXNoIChmaXJzdFBh
dXNlOjxzb3VyY2VJRD46MTk6MjQpCi0gICAgLSBmYWtlRmlyc3RQYXVzZUxleGljYWxWYXJpYWJs
ZQotICBTQ09QRTogTmFtZSAoZmlyc3RQYXVzZSkgLSBUeXBlIChDbG9zdXJlKSAtIEhhc2ggKGZp
cnN0UGF1c2U6PHNvdXJjZUlEPjoxOToyNCkKLSAgU0NPUEU6IE5hbWUgKGVudHJ5KSAtIFR5cGUg
KENsb3N1cmUpIC0gSGFzaCAoZW50cnk6PHNvdXJjZUlEPjoxNDoxNSkKLSAgICAtIGZvb0xleGlj
YWxWYXJpYWJsZTIKLSAgU0NPUEU6IE5hbWUgKGVudHJ5KSAtIFR5cGUgKENsb3N1cmUpIC0gSGFz
aCAoZW50cnk6PHNvdXJjZUlEPjoxNDoxNSkKLSAgICAtIGZpcnN0UGF1c2UKLSAgICAtIGZvb1Zh
clZhcmlhYmxlMQotICBTQ09QRTogTmFtZSAoKSAtIFR5cGUgKEdsb2JhbExleGljYWxFbnZpcm9u
bWVudCkgLSBIYXNoICgpCi0gICAgLSBnbG9iYWxMZXQyCi0gIFNDT1BFOiBOYW1lICgpIC0gVHlw
ZSAoR2xvYmFsKSAtIEhhc2ggKCkKLQotLS0tLSBNZXJnZWQgU2NvcGUgQ2hhaW4gLS0tLQotICBT
Q09QRTogTmFtZSAoZmlyc3RQYXVzZSkgLSBUeXBlIChCbG9jaykgLSBIYXNoIChmaXJzdFBhdXNl
Ojxzb3VyY2VJRD46MjE6MjkpCi0gICAgLSBiYXJMZXhpY2FsVmFyaWFibGUyCi0gIFNDT1BFOiBO
YW1lIChmaXJzdFBhdXNlKSAtIFR5cGUgKExvY2FsKSAtIEhhc2ggKGZpcnN0UGF1c2U6PHNvdXJj
ZUlEPjoyMToyOSkKLSAgICAtIGJhclZhclZhcmlhYmxlMQotICAgIC0gYmFyTGV4aWNhbFZhcmlh
YmxlMgotICBTQ09QRTogTmFtZSAoZmlyc3RQYXVzZSkgLSBUeXBlIChGdW5jdGlvbk5hbWUpIC0g
SGFzaCAoZmlyc3RQYXVzZTo8c291cmNlSUQ+OjIxOjI5KQotICAgIC0gZmlyc3RQYXVzZQotICBT
Q09QRTogTmFtZSAoZmlyc3RQYXVzZSkgLSBUeXBlIChDbG9zdXJlKSAtIEhhc2ggKGZpcnN0UGF1
c2U6PHNvdXJjZUlEPjoxOToyNCkKLSAgICAtIGZha2VGaXJzdFBhdXNlTGV4aWNhbFZhcmlhYmxl
Ci0gIFNDT1BFOiBOYW1lIChlbnRyeSkgLSBUeXBlIChDbG9zdXJlKSAtIEhhc2ggKGVudHJ5Ojxz
b3VyY2VJRD46MTQ6MTUpCi0gICAgLSBmaXJzdFBhdXNlCi0gICAgLSBmb29WYXJWYXJpYWJsZTEK
LSAgICAtIGZvb0xleGljYWxWYXJpYWJsZTIKLSAgU0NPUEU6IE5hbWUgKCkgLSBUeXBlIChHbG9i
YWxMZXhpY2FsRW52aXJvbm1lbnQpIC0gSGFzaCAoKQotICAgIC0gZ2xvYmFsTGV0MgotICBTQ09Q
RTogTmFtZSAoKSAtIFR5cGUgKEdsb2JhbCkgLSBIYXNoICgpCi0KLUNBTExGUkFNRTogZmlyc3RQ
YXVzZQotCi0tLS0tIFNjb3BlIENoYWluIC0tLS0KLSAgU0NPUEU6IE5hbWUgKGZpcnN0UGF1c2Up
IC0gVHlwZSAoQ2xvc3VyZSkgLSBIYXNoIChmaXJzdFBhdXNlOjxzb3VyY2VJRD46MTk6MjQpCi0g
ICAgLSBmYWtlRmlyc3RQYXVzZUxleGljYWxWYXJpYWJsZQotICBTQ09QRTogTmFtZSAoZmlyc3RQ
YXVzZSkgLSBUeXBlIChDbG9zdXJlKSAtIEhhc2ggKGZpcnN0UGF1c2U6PHNvdXJjZUlEPjoxOToy
NCkKLSAgU0NPUEU6IE5hbWUgKGVudHJ5KSAtIFR5cGUgKENsb3N1cmUpIC0gSGFzaCAoZW50cnk6
PHNvdXJjZUlEPjoxNDoxNSkKLSAgICAtIGZvb0xleGljYWxWYXJpYWJsZTIKLSAgU0NPUEU6IE5h
bWUgKGVudHJ5KSAtIFR5cGUgKENsb3N1cmUpIC0gSGFzaCAoZW50cnk6PHNvdXJjZUlEPjoxNDox
NSkKLSAgICAtIGZpcnN0UGF1c2UKLSAgICAtIGZvb1ZhclZhcmlhYmxlMQotICBTQ09QRTogTmFt
ZSAoKSAtIFR5cGUgKEdsb2JhbExleGljYWxFbnZpcm9ubWVudCkgLSBIYXNoICgpCi0gICAgLSBn
bG9iYWxMZXQyCi0gIFNDT1BFOiBOYW1lICgpIC0gVHlwZSAoR2xvYmFsKSAtIEhhc2ggKCkKLQot
LS0tLSBNZXJnZWQgU2NvcGUgQ2hhaW4gLS0tLQotICBTQ09QRTogTmFtZSAoZmlyc3RQYXVzZSkg
LSBUeXBlIChMb2NhbCkgLSBIYXNoIChmaXJzdFBhdXNlOjxzb3VyY2VJRD46MTk6MjQpCi0gICAg
LSBmYWtlRmlyc3RQYXVzZUxleGljYWxWYXJpYWJsZQotICBTQ09QRTogTmFtZSAoZW50cnkpIC0g
VHlwZSAoQ2xvc3VyZSkgLSBIYXNoIChlbnRyeTo8c291cmNlSUQ+OjE0OjE1KQotICAgIC0gZmly
c3RQYXVzZQotICAgIC0gZm9vVmFyVmFyaWFibGUxCi0gICAgLSBmb29MZXhpY2FsVmFyaWFibGUy
Ci0gIFNDT1BFOiBOYW1lICgpIC0gVHlwZSAoR2xvYmFsTGV4aWNhbEVudmlyb25tZW50KSAtIEhh
c2ggKCkKLSAgICAtIGdsb2JhbExldDIKLSAgU0NPUEU6IE5hbWUgKCkgLSBUeXBlIChHbG9iYWwp
IC0gSGFzaCAoKQotCi1DQUxMRlJBTUU6IGVudHJ5Ci0KLS0tLS0gU2NvcGUgQ2hhaW4gLS0tLQot
ICBTQ09QRTogTmFtZSAoZW50cnkpIC0gVHlwZSAoQ2xvc3VyZSkgLSBIYXNoIChlbnRyeTo8c291
cmNlSUQ+OjE0OjE1KQotICAgIC0gZm9vTGV4aWNhbFZhcmlhYmxlMgotICBTQ09QRTogTmFtZSAo
ZW50cnkpIC0gVHlwZSAoQ2xvc3VyZSkgLSBIYXNoIChlbnRyeTo8c291cmNlSUQ+OjE0OjE1KQot
ICAgIC0gZmlyc3RQYXVzZQotICAgIC0gZm9vVmFyVmFyaWFibGUxCi0gIFNDT1BFOiBOYW1lICgp
IC0gVHlwZSAoR2xvYmFsTGV4aWNhbEVudmlyb25tZW50KSAtIEhhc2ggKCkKLSAgICAtIGdsb2Jh
bExldDIKLSAgU0NPUEU6IE5hbWUgKCkgLSBUeXBlIChHbG9iYWwpIC0gSGFzaCAoKQotCi0tLS0t
IE1lcmdlZCBTY29wZSBDaGFpbiAtLS0tCi0gIFNDT1BFOiBOYW1lIChlbnRyeSkgLSBUeXBlIChM
b2NhbCkgLSBIYXNoIChlbnRyeTo8c291cmNlSUQ+OjE0OjE1KQotICAgIC0gZmlyc3RQYXVzZQot
ICAgIC0gZm9vVmFyVmFyaWFibGUxCi0gICAgLSBmb29MZXhpY2FsVmFyaWFibGUyCi0gIFNDT1BF
OiBOYW1lICgpIC0gVHlwZSAoR2xvYmFsTGV4aWNhbEVudmlyb25tZW50KSAtIEhhc2ggKCkKLSAg
ICAtIGdsb2JhbExldDIKLSAgU0NPUEU6IE5hbWUgKCkgLSBUeXBlIChHbG9iYWwpIC0gSGFzaCAo
KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZWQt
c2NvcGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcGF1c2VkLXNjb3Bl
cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNWNlZjc2N2VhZjgxM2EzNDA1
NTA3YzYxNWFiNjhhOWU0Y2MwNjhlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZWQtc2NvcGVz
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMTggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3BhdXNlZC1zY29wZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVz
dCgpCi17Ci0gICAgZnVuY3Rpb24gc2NvcGVUeXBlTmFtZSh0eXBlKSB7Ci0gICAgICAgIHN3aXRj
aCAodHlwZSkgewotICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuU2NvcGVDaGFpbk5vZGUu
VHlwZS5Mb2NhbDogcmV0dXJuICJMb2NhbCI7Ci0gICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rv
ci5TY29wZUNoYWluTm9kZS5UeXBlLkdsb2JhbDogcmV0dXJuICJHbG9iYWwiOwotICAgICAgICAg
ICAgY2FzZSBXZWJJbnNwZWN0b3IuU2NvcGVDaGFpbk5vZGUuVHlwZS5HbG9iYWxMZXhpY2FsRW52
aXJvbm1lbnQ6IHJldHVybiAiR2xvYmFsTGV4aWNhbEVudmlyb25tZW50IjsKLSAgICAgICAgICAg
IGNhc2UgV2ViSW5zcGVjdG9yLlNjb3BlQ2hhaW5Ob2RlLlR5cGUuV2l0aDogcmV0dXJuICJXaXRo
IjsKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlNjb3BlQ2hhaW5Ob2RlLlR5cGUuQ2xv
c3VyZTogcmV0dXJuICJDbG9zdXJlIjsKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlNj
b3BlQ2hhaW5Ob2RlLlR5cGUuQ2F0Y2g6IHJldHVybiAiQ2F0Y2giOwotICAgICAgICAgICAgY2Fz
ZSBXZWJJbnNwZWN0b3IuU2NvcGVDaGFpbk5vZGUuVHlwZS5GdW5jdGlvbk5hbWU6IHJldHVybiAi
RnVuY3Rpb25OYW1lIjsKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlNjb3BlQ2hhaW5O
b2RlLlR5cGUuQmxvY2s6IHJldHVybiAiQmxvY2siOwotICAgICAgICAgICAgZGVmYXVsdDogcmV0
dXJuICJVbmtub3duISI7Ci0gICAgICAgIH07ICAgICAgICAKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biBzYW5pdGl6ZUhhc2goaGFzaCkgewotICAgICAgICByZXR1cm4gaGFzaC5yZXBsYWNlKC86KC4q
Pyk6LywgIjo8c291cmNlSUQ+OiIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNvbGxlY3RTY29w
ZUNoYWluUHJvcGVydGllcyhzY29wZUNoYWluKSB7Ci0gICAgICAgIGxldCBzY29wZUNoYWluRGF0
YSA9IFtdOwotCi0gICAgICAgIGxldCBwcm9taXNlcyA9IFtdOwotICAgICAgICBmb3IgKGxldCBz
Y29wZSBvZiBzY29wZUNoYWluKSB7Ci0gICAgICAgICAgICBsZXQgZGF0YSA9IHtzY29wZSwgcHJv
cGVydGllczogW119OwotICAgICAgICAgICAgc2NvcGVDaGFpbkRhdGEucHVzaChkYXRhKTsKLSAg
ICAgICAgICAgIGlmIChzY29wZS50eXBlID09PSBXZWJJbnNwZWN0b3IuU2NvcGVDaGFpbk5vZGUu
VHlwZS5HbG9iYWwpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIGZv
ciAobGV0IHNjb3BlT2JqZWN0IG9mIHNjb3BlLm9iamVjdHMpIHsKLSAgICAgICAgICAgICAgICBw
cm9taXNlcy5wdXNoKG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKLSAgICAgICAg
ICAgICAgICAgICAgc2NvcGVPYmplY3QuZ2V0QWxsUHJvcGVydHlEZXNjcmlwdG9ycygocHJvcGVy
dHlEZXNjcmlwdG9ycykgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5wcm9wZXJ0
aWVzID0gZGF0YS5wcm9wZXJ0aWVzLmNvbmNhdChwcm9wZXJ0eURlc2NyaXB0b3JzKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICAgICAgfSkpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAg
cmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VzKQotICAgICAgICAgICAgLnRoZW4oKCkgPT4gc2Nv
cGVDaGFpbkRhdGEpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGR1bXBTY29wZUNoYWluRGF0YShz
Y29wZUNoYWluRGF0YSkgewotICAgICAgICBmb3IgKGxldCB7c2NvcGUsIHByb3BlcnRpZXN9IG9m
IHNjb3BlQ2hhaW5EYXRhKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhgICBTQ09Q
RTogTmFtZSAoJHtzY29wZS5uYW1lfSkgLSBUeXBlICgke3Njb3BlVHlwZU5hbWUoc2NvcGUudHlw
ZSl9KSAtIEhhc2ggKCR7c2FuaXRpemVIYXNoKHNjb3BlLmhhc2gpfSlgKTsKLSAgICAgICAgICAg
IGZvciAobGV0IHByb3BlcnR5RGVzY3JpcHRvciBvZiBwcm9wZXJ0aWVzKQotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKGAgICAgLSAke3Byb3BlcnR5RGVzY3JpcHRvci5uYW1lfWAp
OyAgICAgICAgICAgIAotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZHVtcENhbGxG
cmFtZShjYWxsRnJhbWUpIHsKLSAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsKLSAgICAgICAg
ICAgIGNvbGxlY3RTY29wZUNoYWluUHJvcGVydGllcyhjYWxsRnJhbWUuc2NvcGVDaGFpbiksCi0g
ICAgICAgICAgICBjb2xsZWN0U2NvcGVDaGFpblByb3BlcnRpZXMoY2FsbEZyYW1lLm1lcmdlZFNj
b3BlQ2hhaW4oKSksCi0gICAgICAgIF0pLnRoZW4oKHJlc3VsdHMpID0+IHsKLSAgICAgICAgICAg
IGxldCBbc2NvcGVDaGFpbkRhdGEsIG1lcmdlZFNjb3BlQ2hhaW5EYXRhXSA9IHJlc3VsdHM7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhgQ0FMTEZSQU1FOiAke2NhbGxGcmFtZS5mdW5j
dGlvbk5hbWV9YCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiXG4tLS0tIFNjb3Bl
IENoYWluIC0tLS0iKTsKLSAgICAgICAgICAgIGR1bXBTY29wZUNoYWluRGF0YShzY29wZUNoYWlu
RGF0YSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiXG4tLS0tIE1lcmdlZCBTY29w
ZSBDaGFpbiAtLS0tIik7Ci0gICAgICAgICAgICBkdW1wU2NvcGVDaGFpbkRhdGEobWVyZ2VkU2Nv
cGVDaGFpbkRhdGEpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiIpOwotICAgICAg
ICB9KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkdW1wQ2FsbEZyYW1lcygpIHsKLSAgICAgICAg
bGV0IGNhbGxGcmFtZXMgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmNhbGxGcmFtZXM7
Ci0gICAgICAgIGxldCBjaGFpbiA9IFByb21pc2UucmVzb2x2ZSgpOwotICAgICAgICBmb3IgKGxl
dCBjYWxsRnJhbWUgb2YgY2FsbEZyYW1lcykKLSAgICAgICAgICAgIGNoYWluID0gY2hhaW4udGhl
bigoKSA9PiBkdW1wQ2FsbEZyYW1lKGNhbGxGcmFtZSkpOwotICAgICAgICByZXR1cm4gY2hhaW47
Ci0gICAgfQotCi0KLSAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3Vp
dGUoIlBhdXNlZENhbGxGcmFtZVNjb3BlIik7Ci0KLSAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0g
ICAgICAgIG5hbWU6ICJUcmlnZ2VyRmlyc3RQYXVzZSIsCi0gICAgICAgIGRlc2NyaXB0aW9uOiAi
VmVyaWZ5IENhbGxGcmFtZXMgYW5kIFNjb3BlcyB3aXRoIHRoZSBmaXJzdCBwYXVzZS4iLAotICAg
ICAgICB0ZXN0OiAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KGVudHJ5KSIpOwotICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LkNhbGxGcmFtZXNEaWRDaGFuZ2UsIChldmVudCkg
PT4gewotICAgICAgICAgICAgICAgIGR1bXBDYWxsRnJhbWVzKCkudGhlbihyZXNvbHZlLCByZWpl
Y3QpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICB9KTsKLQotICAgIHN1aXRlLmFk
ZFRlc3RDYXNlKHsKLSAgICAgICAgbmFtZTogIlRyaWdnZXJTZWNvbmRQYXVzZSIsCi0gICAgICAg
IGRlc2NyaXB0aW9uOiAiVmVyaWZ5IENhbGxGcmFtZXMgYW5kIFNjb3BlcyB3aXRoIHRoZSBmaXJz
dCBwYXVzZS4iLAotICAgICAgICB0ZXN0OiAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOwotICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LkNhbGxGcmFtZXNEaWRDaGFuZ2UsIChldmVu
dCkgPT4gewotICAgICAgICAgICAgICAgIGR1bXBDYWxsRnJhbWVzKCkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7
Ci0gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKLSAgICAgICAgICAgICAgICB9LCByZWpl
Y3QpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICB9KTsKLQotICAgIHN1aXRlLnJ1
blRlc3RDYXNlc0FuZEZpbmlzaCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Ci08cD5DaGVjayBzY29wZSBjaGFpbnMgZm9yIGRpZmZlcmVudCBjYWxs
IGZyYW1lcyBhdCBkaWZmZXJlbnQgcGF1c2VzLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvcGF1c2VkLXNj
b3Blcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvcGF1c2Vk
LXNjb3Blcy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTYzNGZkYTRmMDQ5ODI1
M2JjNjk0YTJkMjI4ZTJlMDA3OTFlZTAwNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Vz
L3BhdXNlZC1zY29wZXMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi0idXNlIHN0
cmljdCI7Ci0KLXZhciBnbG9iYWxWYXIxOyAvLyBHbG9iYWwgKGdsb2JhbFZhcjEpCi1sZXQgZ2xv
YmFsTGV0MjsgLy8gR2xvYmFsTGV4aWNhbEVudmlyb25tZW50IChnbG9iYWxMZXQyKQotCi1mdW5j
dGlvbiBzZWNvbmRQYXVzZSgpIHsgLy8gR2xvYmFsIChzZWNvbmRQYXVzZSkKLSAgICBsZXQgc2hv
ZUxleGljYWxWYXJpYWJsZTEgPSBkb2N1bWVudDsgLy8gQ2xvc3VyZVNjb3BlIChzaG9lTGV4aWNh
bFZhcmlhYmxlMSkKLSAgICBpZiAodHJ1ZSkgewotICAgICAgICBsZXQgYmxvY2tMZXhpY2FsVmFy
aWFibGUgPSAiYmxvY2siOyAvLyBOZXN0ZWRCbG9ja1Njb3BlIChibG9ja0xleGljYWxWYXJpYWJs
ZSkKLSAgICAgICAgZGVidWdnZXI7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBlbnRyeSgpIHsgLy8g
R2xvYmFsIChlbnRyeSkKLSAgICB2YXIgZm9vVmFyVmFyaWFibGUxOyAvLyBmb28gQ2xvc3VyZVNj
b3BlIChmb29WYXJWYXJpYWJsZTEpCi0gICAgbGV0IGZvb0xleGljYWxWYXJpYWJsZTI7IC8vIGZv
byBDbG9zdXJlU2NvcGUgKGZvb0xleGljYWxWYXJpYWJsZTIpCi0gICAgZmlyc3RQYXVzZSgpOwot
Ci0gICAgZnVuY3Rpb24gZmlyc3RQYXVzZSgpIHsgLy8gZm9vIENsb3N1cmVTY29wZSAoZmlyc3RQ
YXVzZSkKLSAgICAgICAgbGV0IGZha2VGaXJzdFBhdXNlTGV4aWNhbFZhcmlhYmxlOyAvLyBmaXJz
dFBhdXNlIENsb3N1cmVTY29wZSAoZmFrZUZpcnN0UGF1c2VMZXhpY2FsVmFyaWFibGUpCi0gICAg
ICAgIChmdW5jdGlvbiBmaXJzdFBhdXNlKCkgewotICAgICAgICAgICAgdmFyIGJhclZhclZhcmlh
YmxlMSA9IHdpbmRvdy5uYXZpZ2F0b3I7IC8vIGZpcnN0UGF1c2UgQ2xvc3VyZVNjb3BlIChiYXJW
YXJWYXJpYWJsZTEpCi0gICAgICAgICAgICBsZXQgYmFyTGV4aWNhbFZhcmlhYmxlMiA9IHdpbmRv
dy5uYXZpZ2F0b3I7IC8vIGZpcnN0UGF1c2UgQ2xvc3VyZVNjb3BlIChiYXJMZXhpY2FsVmFyaWFi
bGUyKQotICAgICAgICAgICAgaWYgKHRydWUpIHsKLSAgICAgICAgICAgICAgICBsZXQgYmFyTGV4
aWNhbFZhcmlhYmxlMiA9IHdpbmRvdy5uYXZpZ2F0b3I7IC8vIE5lc3RlZEJsb2NrU2NvcGUgKGJh
ckxleGljYWxWYXJpYWJsZTIpCi0gICAgICAgICAgICAgICAgZGVidWdnZXI7Ci0gICAgICAgICAg
ICAgICAgc2Vjb25kUGF1c2UoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSkoKTsKLSAgICB9
Ci19Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>