<?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>143270</bug_id>
          
          <creation_ts>2015-03-31 11:57:39 -0700</creation_ts>
          <short_desc>REGRESSION(r182186): it crashes all the WebGL tests on the Debug bots (Requested by dino on #webkit).</short_desc>
          <delta_ts>2015-03-31 12:02:51 -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>528+ (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>137278</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1081710</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-31 11:57:39 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/182186 broke the build:
it crashes all the WebGL tests on the Debug bots (Requested by dino 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>1081713</commentid>
    <comment_count>1</comment_count>
      <attachid>249837</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-31 11:58:16 -0700</bug_when>
    <thetext>Created attachment 249837
ROLLOUT of r182186

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>1081716</commentid>
    <comment_count>2</comment_count>
      <attachid>249837</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-31 12:02:47 -0700</bug_when>
    <thetext>Comment on attachment 249837
ROLLOUT of r182186

Clearing flags on attachment: 249837

Committed r182193: &lt;http://trac.webkit.org/changeset/182193&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081718</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-31 12:02:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249837</attachid>
            <date>2015-03-31 11:58:16 -0700</date>
            <delta_ts>2015-03-31 12:02:47 -0700</delta_ts>
            <desc>ROLLOUT of r182186</desc>
            <filename>bug-143270-20150331115733.patch</filename>
            <type>text/plain</type>
            <size>114043</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MGQzZmE4M2JjZmQwOTM5OTJiODI2MDI4MmU2ZDFlYzI0MDU0NTJlLi5hZmY0MDM1MmQ0MGE3OTlk
NWZjOWM0MjE1ZWJhY2ZlMWE3YjlhMTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxNS0wMy0zMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE4MjE4Ni4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MzI3MAorCisgICAg
ICAgIGl0IGNyYXNoZXMgYWxsIHRoZSBXZWJHTCB0ZXN0cyBvbiB0aGUgRGVidWcgYm90cyAoUmVx
dWVzdGVkIGJ5CisgICAgICAgIGRpbm8gb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQg
Y2hhbmdlc2V0OgorCisgICAgICAgICJXZWIgSW5zcGVjdG9yOiBhZGQgMkQvV2ViR0wgY2FudmFz
IGluc3RydW1lbnRhdGlvbgorICAgICAgICBpbmZyYXN0cnVjdHVyZSIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzI3OAorICAgICAgICBodHRwOi8v
dHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xODIxODYKKwogMjAxNS0wMy0zMSAgWXVzdWtlIFN1
enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBbRVM2XSBPYmplY3QgdHlw
ZSByZXN0cmljdGlvbnMgb24gYSBmaXJzdCBwYXJhbWV0ZXIgb2Ygc2V2ZXJhbCBPYmplY3QuKiBm
dW5jdGlvbnMgYXJlIHJlbGF4ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1ZGEzMmEzODZiOGY4NThjODZkMDkx
OGFiOWJhMmM1ODFlMzAyMjZmLi5hODliMmE4ODM0MzI1MTJmYmU5Mzg4YTE3Y2IxMWI0YmJmOTIz
NTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTUtMDMtMzEgIENvbW1pdCBRdWV1
ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIxODIxODYuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDMyNzAKKworICAgICAgICBpdCBjcmFzaGVzIGFsbCB0aGUgV2ViR0wgdGVzdHMg
b24gdGhlIERlYnVnIGJvdHMgKFJlcXVlc3RlZCBieQorICAgICAgICBkaW5vIG9uICN3ZWJraXQp
LgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAiV2ViIEluc3BlY3Rv
cjogYWRkIDJEL1dlYkdMIGNhbnZhcyBpbnN0cnVtZW50YXRpb24KKyAgICAgICAgaW5mcmFzdHJ1
Y3R1cmUiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzcyNzgKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTgyMTg2CisK
IDIwMTUtMDMtMzEgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAog
ICAgICAgICBDcmFzaCBpbiBDR0NvbnRleHRTaG93R2x5cGhzV2l0aEFkdmFuY2VzIHdoZW4gcGFz
c2luZyBrQ0dGb250SW5kZXhJbnZhbGlkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBiM2I5
ZmUwNmU0N2RhYmMwY2MzOGJlNGRmODY0MjRiNDExMjFlZGMzLi5iYWU0ODI2YjlhNjY3MjNiZjU1
ZjBmNDI3OGU1Y2VkMWM3MWFiODdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOCBAQAorMjAxNS0wMy0zMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE4MjE4Ni4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MzI3MAorCisgICAgICAg
IGl0IGNyYXNoZXMgYWxsIHRoZSBXZWJHTCB0ZXN0cyBvbiB0aGUgRGVidWcgYm90cyAoUmVxdWVz
dGVkIGJ5CisgICAgICAgIGRpbm8gb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hh
bmdlc2V0OgorCisgICAgICAgICJXZWIgSW5zcGVjdG9yOiBhZGQgMkQvV2ViR0wgY2FudmFzIGlu
c3RydW1lbnRhdGlvbgorICAgICAgICBpbmZyYXN0cnVjdHVyZSIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzI3OAorICAgICAgICBodHRwOi8vdHJh
Yy53ZWJraXQub3JnL2NoYW5nZXNldC8xODIxODYKKwogMjAxNS0wMy0zMSAgTWF0dCBCYWtlciAg
PG1hdHRiYWtlckBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIDJEL1dl
YkdMIGNhbnZhcyBpbnN0cnVtZW50YXRpb24gaW5mcmFzdHJ1Y3R1cmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCBlNDQ0MTM1Nzc5ODFlYWZlNTc0N2FmMTQxYzE0ZGJlMDFi
Yjg4OTQyLi43MjExMjc2NTJkODg4ZjUwMWFiNmMyMTdiODMzNDQxOTA0M2Y1ODY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMDQxLDcgKzEwNDEsNiBAQCBzZXQoSmF2
YVNjcmlwdENvcmVfSU5TUEVDVE9SX1BST1RPQ09MX1NDUklQVFMKIHNldChKYXZhU2NyaXB0Q29y
ZV9JTlNQRUNUT1JfRE9NQUlOUwogICAgICR7SkFWQVNDUklQVENPUkVfRElSfS9pbnNwZWN0b3Iv
cHJvdG9jb2wvQXBwbGljYXRpb25DYWNoZS5qc29uCiAgICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9
L2luc3BlY3Rvci9wcm90b2NvbC9DU1MuanNvbgotICAgICR7SkFWQVNDUklQVENPUkVfRElSfS9p
bnNwZWN0b3IvcHJvdG9jb2wvQ2FudmFzLmpzb24KICAgICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0v
aW5zcGVjdG9yL3Byb3RvY29sL0NvbnNvbGUuanNvbgogICAgICR7SkFWQVNDUklQVENPUkVfRElS
fS9pbnNwZWN0b3IvcHJvdG9jb2wvRE9NLmpzb24KICAgICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0v
aW5zcGVjdG9yL3Byb3RvY29sL0RPTURlYnVnZ2VyLmpzb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZDJkN2Y2MGZlNTlhNjhjZDBkMjIxZjg3ZjQwYjc0
YTE4MTE0MTQwMS4uNjk5YWM3ZWMwZWQ2MDkzZTBhODBmYzZmOTdjNjUyNTQ4MTY5ZjhmOSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTExNyw3ICsxMTcs
NiBAQCBJbml0Qnl0ZWNvZGVzLmFzbTogJChKYXZhU2NyaXB0Q29yZSkvZ2VuZXJhdGUtYnl0ZWNv
ZGUtZmlsZXMgJChKYXZhU2NyaXB0Q29yZSkvYgogSU5TUEVDVE9SX0RPTUFJTlMgPSBcCiAgICAg
JChKYXZhU2NyaXB0Q29yZSkvaW5zcGVjdG9yL3Byb3RvY29sL0FwcGxpY2F0aW9uQ2FjaGUuanNv
biBcCiAgICAgJChKYXZhU2NyaXB0Q29yZSkvaW5zcGVjdG9yL3Byb3RvY29sL0NTUy5qc29uIFwK
LSAgICAkKEphdmFTY3JpcHRDb3JlKS9pbnNwZWN0b3IvcHJvdG9jb2wvQ2FudmFzLmpzb24gXAog
ICAgICQoSmF2YVNjcmlwdENvcmUpL2luc3BlY3Rvci9wcm90b2NvbC9Db25zb2xlLmpzb24gXAog
ICAgICQoSmF2YVNjcmlwdENvcmUpL2luc3BlY3Rvci9wcm90b2NvbC9ET00uanNvbiBcCiAgICAg
JChKYXZhU2NyaXB0Q29yZSkvaW5zcGVjdG9yL3Byb3RvY29sL0RPTURlYnVnZ2VyLmpzb24gXApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9DYW52
YXMuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ2FudmFz
Lmpzb24KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxMTVmNmZhMzcyYmQ3YmQ1MGUx
MTY2YTMwMDYyYjU0ZWQ2MzQ4ODMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9DYW52
YXMuanNvbgorKysgL2Rldi9udWxsCkBAIC0xLDk0ICswLDAgQEAKLXsKLSAgICAiZG9tYWluIjog
IkNhbnZhcyIsCi0gICAgImF2YWlsYWJpbGl0eSI6ICJ3ZWIiLAotICAgICJkZXNjcmlwdGlvbiI6
ICJDYW52YXMgZG9tYWluIGFsbG93cyB0cmFja2luZyBvZiAyRCBhbmQgV2ViR0wgY2FudmFzZXMg
dGhhdCBoYXZlIGFuIGFzc29jaWF0ZWQgZ3JhcGhpY3MgY29udGV4dC4gVHJhY2tzIGNhbnZhc2Vz
IGJlbG9uZ2luZyB0byBhIGZyYW1lIGFzIHdlbGwgYXMgQ1NTIGNhbnZhc2VzIGNyZWF0ZWQgd2l0
aCAtd2Via2l0LWNhbnZhcy4iLAotICAgICJ0eXBlcyI6IFsKLSAgICAgICAgewotICAgICAgICAg
ICAgImlkIjogIkNhbnZhc0lkIiwKLSAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiCi0gICAg
ICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJpZCI6ICJQcm9ncmFtSWQiLAotICAgICAg
ICAgICAgInR5cGUiOiAib2JqZWN0IiwKLSAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwotICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2FudmFzSWQiLCAiJHJlZiI6ICJDYW52YXNJZCIsICJk
ZXNjcmlwdGlvbiI6ICJQYXJlbnQgY2FudmFzIGlkZW50aWZpZXIuIiB9LAotICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAib2JqZWN0SWQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9u
IjogIlVuaXF1ZWx5IGlkZW50aWZpZXMgc2hhZGVyIHByb2dyYW0gd2l0aGluIHBhcmVudCBjYW52
YXMuIiB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAg
ICJpZCI6ICJDb250ZXh0VHlwZSIsCi0gICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAotICAg
ICAgICAgICAgImVudW0iOiBbImNhbnZhcy0yZCIsICJ3ZWJnbCJdLAotICAgICAgICAgICAgImRl
c2NyaXB0aW9uIjogIlRoZSB0eXBlIG9mIHJlbmRlcmluZyBjb250ZXh0IGJhY2tpbmcgdGhlIGNh
bnZhcyBlbGVtZW50LiIKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgImlkIjog
IlNoYWRlclR5cGUiLAotICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKLSAgICAgICAgICAg
ICJlbnVtIjogWyJmcmFnbWVudCIsICJ2ZXJ0ZXgiXSwKLSAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6ICJTaGFkZXIgdHlwZS4gV2ViR0wgMS4wIHN1cHBvcnRzIFZFUlRFWF9TSEFERVIgYW5kIEZS
QUdNRU5UX1NIQURFUiB0eXBlcy4iCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAg
ICJpZCI6ICJDb250ZXh0QXR0cmlidXRlcyIsCi0gICAgICAgICAgICAidHlwZSI6ICJvYmplY3Qi
LAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIldlYkdMIGRyYXdpbmcgc3VyZmFjZSBhdHRy
aWJ1dGVzLiIsCi0gICAgICAgICAgICAicHJvcGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImFscGhhIiwgInR5cGUiOiAiYm9vbGVhbiIgfSwKLSAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImRlcHRoIiwgInR5cGUiOiAiYm9vbGVhbiIgfSwKLSAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInN0ZW5jaWwiLCAidHlwZSI6ICJib29sZWFuIiB9LAotICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiYW50aWFsaWFzIiwgInR5cGUiOiAiYm9vbGVhbiIgfSwKLSAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInByZW11bHRpcGxpZWRBbHBoYSIsICJ0eXBlIjogImJvb2xlYW4iIH0s
Ci0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcmVzZXJ2ZURyYXdpbmdCdWZmZXIiLCAidHlw
ZSI6ICJib29sZWFuIiB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAg
ICAgICAgICAgICJpZCI6ICJDYW52YXMiLAotICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwK
LSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJJbmZvcm1hdGlvbiBhYm91dCBhIDJEL1dlYkdM
IGNhbnZhcyBmb3Igd2hpY2ggYSByZW5kZXJpbmcgY29udGV4dCBoYXMgYmVlbiBjcmVhdGVkLiIs
Ci0gICAgICAgICAgICAicHJvcGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImNhbnZhc0lkIiwgIiRyZWYiOiAiQ2FudmFzSWQiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGlkIGZv
ciB0aGUgY2FudmFzLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAi
JHJlZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAiZGVzY3JpcHRpb24iOiAiUGFyZW50IGZyYW1lIGlk
ZW50aWZpZXIuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibmFtZSIsICJ0eXBlIjog
InN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgQ1NTIGNhbnZhcyBpZGVudGlmaWVyLCBvciB0
aGUgY2FudmFzIGVsZW1lbnQgaWQgYXR0cmlidXRlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImNzc0NhbnZhcyIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiVHJ1
ZSBmb3IgY2FudmFzZXMgY3JlYXRlZCB3aXRoIC13ZWJraXQtY2FudmFzLiIgfSwKLSAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImNvbnRleHRUeXBlIiwgIiRyZWYiOiAiQ29udGV4dFR5cGUiLCAi
ZGVzY3JpcHRpb24iOiAiVGhlIHR5cGUgb2YgcmVuZGVyaW5nIGNvbnRleHQgYmFja2luZyB0aGUg
Y2FudmFzLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbnRleHRBdHRyaWJ1dGVz
IiwgIiRyZWYiOiAiQ29udGV4dEF0dHJpYnV0ZXMiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3Jp
cHRpb24iOiAiQ29udGV4dCBhdHRyaWJ1dGVzIGZvciBXZWJHTCByZW5kZXJpbmcgY29udGV4dHMu
IiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJvZ3JhbUlkcyIsICJ0eXBlIjogImFy
cmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJQcm9ncmFtSWQiIH0sICJkZXNjcmlwdGlvbiI6ICJB
cnJheSBvZiBwcm9ncmFtIElEcyBmb3IgbGlua2VkIHByb2dyYW1zIGJlbG9uZ2luZyB0byB0aGUg
Y2FudmFzIHJlbmRlcmluZyBjb250ZXh0LiIgfQotICAgICAgICAgICAgXQotICAgICAgICB9Ci0g
ICAgXSwKLSAgICAiY29tbWFuZHMiOiBbCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjog
ImdldENhbnZhc2VzIiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIGF2YWls
YWJsZSBjYW52YXNlcyBmb3IgYWxsIGZyYW1lcy4iLAotICAgICAgICAgICAgInJldHVybnMiOiBb
Ci0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXN1bHQiLCAidHlwZSI6ICJhcnJheSIsICJp
dGVtcyI6IHsgIiRyZWYiOiAiQ2FudmFzIiB9LCAiZGVzY3JpcHRpb24iOiAiQXJyYXkgb2YgY2Fu
dmFzIG9iamVjdHMuIiB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0KLSAgICBdLAotICAgICJl
dmVudHMiOiBbCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogImNhbnZhc0FkZGVkIiwK
LSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
Y2FudmFzIiwgIiRyZWYiOiAiQ2FudmFzIiwgImRlc2NyaXB0aW9uIjogIkNhbnZhcyBvYmplY3Qu
IiB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJu
YW1lIjogImNhbnZhc1JlbW92ZWQiLAotICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJjYW52YXNJZCIsICIkcmVmIjogIkNhbnZhc0lkIiwgImRl
c2NyaXB0aW9uIjogIklkIG9mIHRoZSBjYW52YXMgdGhhdCB3YXMgcmVtb3ZlZC4iIH0KLSAgICAg
ICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAicHJv
Z3JhbUNyZWF0ZWQiLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gYSBw
cm9ncmFtIGlzIGNyZWF0ZWQuIERvZXMgbm90IGltcGx5IHRoYXQgbGluayB3YXMgc3VjY2Vzc2Z1
bC4iLAotICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJwcm9ncmFtSWQiLCAiJHJlZiI6ICJQcm9ncmFtSWQiLCAiZGVzY3JpcHRpb24iOiAiSWQg
b2YgdGhlIHByb2dyYW0uIiB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsK
LSAgICAgICAgICAgICJuYW1lIjogInByb2dyYW1EZWxldGVkIiwKLSAgICAgICAgICAgICJwYXJh
bWV0ZXJzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJvZ3JhbUlkIiwgIiRyZWYi
OiAiUHJvZ3JhbUlkIiwgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBwcm9ncmFtLiIgfQotICAg
ICAgICAgICAgXQotICAgICAgICB9Ci0gICAgXQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdG9yLnB5IGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdG9yLnB5Cmlu
ZGV4IDlmMDgzZmVlYWU2NWE1NmYzMDljZDhmZjY3Mzk1MGZiMzUwZTAyN2YuLmExOTIzZmU1NGRl
MDc0NzQ5YzQ1MTFiNzRhMDlmZGRkNzRkZWZhNmYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRvci5weQorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0b3IucHkK
QEAgLTM4LDExICszOCw3IEBAIGxvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCdnbG9iYWwnKQogZGVm
IHVjZmlyc3Qoc3RyKToKICAgICByZXR1cm4gc3RyWzoxXS51cHBlcigpICsgc3RyWzE6XQogCi1f
QUxXQVlTX1VQUEVSQ0FTRURfRU5VTV9WQUxVRV9TVUJTVFJJTkdTID0gc2V0KFsnMkQnLCAnQVBJ
JywgJ0NTUycsICdET00nLCAnSFRNTCcsICdYSFInLCAnWE1MJ10pCi0KLV9FTlVNX0lERU5USUZJ
RVJfUkVOQU1FX01BUCA9IHsKLSAgICAnd2ViZ2wnOiAnV2ViR0wnLCAgIyBDYW52YXMuQ29udGV4
dFR5cGUud2ViZ2wKLX0KK19BTFdBWVNfVVBQRVJDQVNFRF9FTlVNX1ZBTFVFX1NVQlNUUklOR1Mg
PSBzZXQoWydBUEknLCAnQ1NTJywgJ0RPTScsICdIVE1MJywgJ1hIUicsICdYTUwnXSkKIAogIyBU
aGVzZSBvYmplY3RzIGFyZSBidWlsdCBtYW51YWxseSBieSBjcmVhdGluZyBhbmQgc2V0dGluZyBJ
bnNwZWN0b3JWYWx1ZXMuCiAjIEJlZm9yZSBzZW5kaW5nIHRoZXNlIG92ZXIgdGhlIHByb3RvY29s
LCB0aGVpciBzaGFwZXMgYXJlIGNoZWNrZWQgYWdhaW5zdCB0aGUgc3BlY2lmaWNhdGlvbi4KQEAg
LTIyMyw3ICsyMTksNyBAQCBjbGFzcyBHZW5lcmF0b3I6CiAgICAgICAgICAgICByZXR1cm4gbWF0
Y2guZ3JvdXAoMSkudXBwZXIoKQogCiAgICAgICAgICMgU3BsaXQgb24gaHlwaGVuLCBpbnRyb2R1
Y2UgY2FtZWxjYXNlLCBhbmQgZm9yY2UgdXBwZXJjYXNpbmcgb2YgYWNyb255bXMuCi0gICAgICAg
IHN1YndvcmRzID0gbWFwKHVjZmlyc3QsIF9FTlVNX0lERU5USUZJRVJfUkVOQU1FX01BUC5nZXQo
ZW51bV92YWx1ZSwgZW51bV92YWx1ZSkuc3BsaXQoJy0nKSkKKyAgICAgICAgc3Vid29yZHMgPSBt
YXAodWNmaXJzdCwgZW51bV92YWx1ZS5zcGxpdCgnLScpKQogICAgICAgICByZXR1cm4gcmUuc3Vi
KHJlLmNvbXBpbGUocmVnZXgsIHJlLklHTk9SRUNBU0UpLCByZXBsYWNlQ2FsbGJhY2ssICIiLmpv
aW4oc3Vid29yZHMpKQogCiAgICAgQHN0YXRpY21ldGhvZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCAzNTM4NjFkNmE2YjEwOTc4ZjZkYWIxMjZmZjVjZWE5ODdlMmZlMzNkLi5kNzQ3ZTZhNWExOTdk
ODZlYjk4OTUzM2YxZTZkMTRiM2FjYTg4ZjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTc4
Niw3ICsxNzg2LDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGluc3BlY3Rvci9ET01QYXRj
aFN1cHBvcnQuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2Vu
dC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCi0gICAgaW5zcGVjdG9y
L0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQu
Y3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCiAgICAgaW5zcGVjdG9y
L0luc3BlY3RvckRPTUFnZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDE5ZDIzNTlmYjg4OWI4MDQxODYxNmE1ODVkMjhl
MDJmMGIxNzM4ZTUuLjBlYzYyOWUyOWMxNjkzZjUzMzA5NGIxNzQ1Yzg5MWQ1YjJkZjMxZTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTIyODcsOCArMjI4Nyw2IEBACiAJCTY1RkQ0NjY1MTlCNTk2RjAwMDFFMkI0RCAvKiBXZWJW
aWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU4NkZFM0MxOUI1NDhCRDAwNUMzQzgyIC8qIFdlYlZp
ZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNjVGRDQ2NjYxOUI1OTZGNjAwMUUyQjREIC8qIFdl
YlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU4NkZFM0QxOUI1NDhCRDAwNUMzQzgyIC8qIFdl
YlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tICovOyB9OwogCQk2NUZFQTg2OTA5
ODMzQURFMDBCRUQ0QUIgLyogUGFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2NUZFQTg2ODA5ODMzQURFMDBCRUQ0QUIgLyogUGFnZS5jcHAgKi87
IH07Ci0JCTZBMzJEN0NFMUExNkQ4QzAwMDQxMkYwQiAvKiBJbnNwZWN0b3JDYW52YXNBZ2VudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QTRCNkQ2
NjE5RDIyNUQ4MDA2RjExRDMgLyogSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwICovOyB9OwotCQk2
QTRCNkQ2NTE5RDIyNTE5MDA2RjExRDMgLyogSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZBNEI2RDY0MTlEMjI1MTkw
MDZGMTFEMyAvKiBJbnNwZWN0b3JDYW52YXNBZ2VudC5oICovOyB9OwogCQk2QjM0ODA5NDBFRUY1
MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1hZ2VQdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCMzQ4MDkyMEVFRjUwRDQwMEFDMUI0MSAvKiBOYXRpdmVJ
bWFnZVB0ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTZDNTY4Q0IwMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRpb24uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM1NjhDQUUxOURB
RkVBMDAwNDMwQ0EyIC8qIE1hc2tJbWFnZU9wZXJhdGlvbi5jcHAgKi87IH07CiAJCTZDNTY4Q0Ix
MTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNTY4Q0FGMTlEQUZFQTAwMDQzMENBMiAv
KiBNYXNrSW1hZ2VPcGVyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtOTUwOCw4ICs5NTA2LDYgQEAKIAkJNjVFMEU5NDMxMTMzQzg5RjAw
QjRDQjEwIC8qIEpTRE9NV3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0RPTVdyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjVGODA2OTcw
NTREOUY4NjAwOEJGNzc2IC8qIEJsb2NrRXhjZXB0aW9ucy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEJsb2NrRXhjZXB0aW9ucy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CiAJCTY1RkVBODY4MDk4MzNBREUwMEJFRDRBQiAvKiBQYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNkE0QjZENjQxOUQyMjUxOTAwNkYxMUQzIC8qIEluc3BlY3RvckNhbnZhc0FnZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckNhbnZhc0FnZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZBNEI2RDY2MTlEMjI1RDgwMDZGMTFEMyAv
KiBJbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJbnNwZWN0b3JDYW52YXNBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTZCMzQ4MDkyMEVFRjUwRDQwMEFDMUI0MSAvKiBOYXRpdmVJbWFnZVB0ci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0aXZlSW1hZ2VQdHIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkM1NjhDQUUxOURBRkVBMDAwNDMwQ0EyIC8qIE1hc2tJbWFn
ZU9wZXJhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXNr
SW1hZ2VPcGVyYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QzU2OENB
RjE5REFGRUEwMDA0MzBDQTIgLyogTWFza0ltYWdlT3BlcmF0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1hc2tJbWFnZU9wZXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTUzODIsOCArMTUzNzgsNiBAQAogCQkJCTdBNTQ4ODE1MTRFNDMyQTEw
MDZBRTA1QSAvKiBET01QYXRjaFN1cHBvcnQuaCAqLywKIAkJCQlCODg1RThEMjExRTA2REQyMDA5
RkZCRjQgLyogSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCAqLywKIAkJCQlCODg1
RThEMzExRTA2REQyMDA5RkZCRjQgLyogSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50Lmgg
Ki8sCi0JCQkJNkE0QjZENjYxOUQyMjVEODAwNkYxMUQzIC8qIEluc3BlY3RvckNhbnZhc0FnZW50
LmNwcCAqLywKLQkJCQk2QTRCNkQ2NDE5RDIyNTE5MDA2RjExRDMgLyogSW5zcGVjdG9yQ2FudmFz
QWdlbnQuaCAqLywKIAkJCQk3QTFGMkI1MTEyNkM2MUIyMDAwNkE3RTYgLyogSW5zcGVjdG9yQ2xp
ZW50LmNwcCAqLywKIAkJCQkxQzgxQjk1ODBFOTczMzA4MDAyNjZFMDcgLyogSW5zcGVjdG9yQ2xp
ZW50LmggKi8sCiAJCQkJRjNGNUNGMTAxMkVEODFBODAwODRDNTY5IC8qIEluc3BlY3RvckNvbnNv
bGVJbnN0cnVtZW50YXRpb24uaCAqLywKQEAgLTI0Nzg0LDcgKzI0Nzc4LDYgQEAKIAkJCQlBODcx
REUyQjBBMTUyQUM4MDBCMTJBNjggLyogSFRNTEZyYW1lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMTRGRkUzMUQwQUUxOTYzMzAwMTM2QkY1IC8qIEhUTUxGcmFtZUVsZW1lbnRCYXNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5M0UyNDFGRjBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZyYW1l
T3duZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk2QTRCNkQ2NTE5RDIyNTE5MDA2RjEx
RDMgLyogSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFERTI4
MEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MRnJhbWVTZXRFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBODcxREUyRDBBMTUyQUM4MDBCMTJBNjggLyogSFRNTEhlYWRFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBOEVBN0NCODBBMTkyQjlDMDBBOEVGNUYgLyogSFRNTEhlYWRpbmdFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI3NDAzLDcgKzI3Mzk2LDYgQEAKIAkJCWlzYSA9IFBC
WFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJ
CWZpbGVzID0gKAotCQkJCTZBMzJEN0NFMUExNkQ4QzAwMDQxMkYwQiAvKiBJbnNwZWN0b3JDYW52
YXNBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MUUxQjFEMDBGRjU5ODY5MDA1NzZCM0Ig
LyogQWJzdHJhY3RXb3JrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzdGNTdBQjkxQTUwNzI2
OTAwODc2Rjk4IC8qIEFjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkzN0Y1N0FCQTFBNTA3MjZGMDA4NzZGOTggLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDY0Y2ExYzQxNjUy
OTczYzI4NWVhM2RmZjllODZkNTFjYjg0OWQ4NTQuLjMwY2QyZGM3ZTY4MTM5OTBiNGRiOTEwNWJi
NmE1YjFlYzI3ZTM3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNTA1MywxMCArNTA1
Myw4IEBAIENhbnZhc1JlbmRlcmluZ0NvbnRleHQqIERvY3VtZW50OjpnZXRDU1NDYW52YXNDb250
ZXh0KGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QKIEhUTUxDYW52YXNFbGVtZW50KiBEb2N1bWVu
dDo6Z2V0Q1NTQ2FudmFzRWxlbWVudChjb25zdCBTdHJpbmcmIG5hbWUpCiB7CiAgICAgUmVmUHRy
PEhUTUxDYW52YXNFbGVtZW50PiYgZWxlbWVudCA9IG1fY3NzQ2FudmFzRWxlbWVudHMuYWRkKG5h
bWUsIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKLSAgICBpZiAoIWVsZW1lbnQpIHsKKyAgICBp
ZiAoIWVsZW1lbnQpCiAgICAgICAgIGVsZW1lbnQgPSBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRl
KCp0aGlzKTsKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVDU1ND
YW52YXMoKmVsZW1lbnQsIG5hbWUpOwotICAgIH0KICAgICByZXR1cm4gZWxlbWVudC5nZXQoKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAppbmRleCAzYzY0
YjdkYWI1ZTdkYjdkZjMzYjQ2NWYwM2E4ZGY2NDc4MzZmMzYyLi5lZWQ3MGFhZGMwYmM0NTJlNzJj
YmU0YzNhMmUwMWZjNDg3NjBhYTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNF
bGVtZW50LmNwcApAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5o
IgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkltYWdlRGF0YS5oIgotI2luY2x1
ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0
cnkuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVySFRNTENhbnZhcy5oIgpA
QCAtMTk0LDcgKzE5Myw2IEBAIENhbnZhc1JlbmRlcmluZ0NvbnRleHQqIEhUTUxDYW52YXNFbGVt
ZW50OjpnZXRDb250ZXh0KGNvbnN0IFN0cmluZyYgdHlwZSwgQ2FudmFzCiAgICAgICAgICAgICAg
ICAgdXNlc0Rhc2hiYXJkQ29tcGF0aWJpbGl0eU1vZGUgPSBzZXR0aW5ncy0+dXNlc0Rhc2hib2Fy
ZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUoKTsKICNlbmRpZgogICAgICAgICAgICAgbV9jb250
ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KHRoaXMsIGRv
Y3VtZW50KCkuaW5RdWlya3NNb2RlKCksIHVzZXNEYXNoYmFyZENvbXBhdGliaWxpdHlNb2RlKTsK
LSAgICAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dCgqdGhpcyk7CiAjaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19T
VE9SRSkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICAgICAgICAgICAgIC8vIE5l
ZWQgdG8gbWFrZSBzdXJlIGEgUmVuZGVyTGF5ZXIgYW5kIGNvbXBvc2l0aW5nIGxheWVyIGdldCBj
cmVhdGVkIGZvciB0aGUgQ2FudmFzCiAgICAgICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKFN5
bnRoZXRpY1N0eWxlQ2hhbmdlKTsKQEAgLTIxMSw3ICsyMDksNiBAQCBDYW52YXNSZW5kZXJpbmdD
b250ZXh0KiBIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dChjb25zdCBTdHJpbmcmIHR5cGUs
IENhbnZhcwogICAgICAgICAgICAgaWYgKCFtX2NvbnRleHQpIHsKICAgICAgICAgICAgICAgICBt
X2NvbnRleHQgPSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUodGhpcywgc3RhdGlj
X2Nhc3Q8V2ViR0xDb250ZXh0QXR0cmlidXRlcyo+KGF0dHJzKSwgdHlwZSk7CiAgICAgICAgICAg
ICAgICAgaWYgKG1fY29udGV4dCkgewotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZENyZWF0ZUNhbnZhc1JlbmRlcmluZ0NvbnRleHQoKnRoaXMpOwogICAg
ICAgICAgICAgICAgICAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSBhIFJlbmRlckxheWVyIGFuZCBj
b21wb3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBmb3IgdGhlIENhbnZhcwogICAgICAgICAgICAg
ICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKFN5bnRoZXRpY1N0eWxlQ2hhbmdlKTsKICAgICAg
ICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IDcwZjI3M2Y1ZTlmZjI5ZGRhZDI2NDhi
NTMzNjhmNTYyNzc0NTJhNmQuLjFlNTRlNTNkNzI0ZjAxODFkNjQ4Mzg1MzVjM2ZjODQ4ZmVkOGM3
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC00OSw3ICs0OSw2IEBACiAjaW5jbHVkZSAiSFRNTFZp
ZGVvRWxlbWVudC5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW1hZ2VE
YXRhLmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAi
SW50U2l6ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNYWluRnJhbWUuaCIK
QEAgLTgzNCw4ICs4MzMsNiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmF0dGFj
aFNoYWRlcihXZWJHTFByb2dyYW0qIHByb2dyYW0sIFdlYkdMU2hhZGVyKgogICAgIH0KICAgICBt
X2NvbnRleHQtPmF0dGFjaFNoYWRlcihvYmplY3RPclplcm8ocHJvZ3JhbSksIG9iamVjdE9yWmVy
byhzaGFkZXIpKTsKICAgICBzaGFkZXItPm9uQXR0YWNoZWQoKTsKLQotICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkQXR0YWNoU2hhZGVyKCp0aGlzLCAqcHJvZ3JhbSwgKnNoYWRlcik7
CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YmluZEF0dHJpYkxvY2F0aW9u
KFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgR0MzRHVpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0xNDExLDkgKzE0MDgsNiBAQCBQYXNzUmVmUHRyPFdl
YkdMUHJvZ3JhbT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlUHJvZ3JhbSgpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIFJlZlB0cjxXZWJHTFByb2dyYW0+IG8gPSBXZWJH
TFByb2dyYW06OmNyZWF0ZSh0aGlzKTsKICAgICBhZGRTaGFyZWRPYmplY3Qoby5nZXQoKSk7Ci0K
LSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVByb2dyYW0oKnRoaXMsICpv
KTsKLQogICAgIHJldHVybiBvOwogfQogCkBAIC0xNDg4LDggKzE0ODIsNiBAQCB2b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmRlbGV0ZVByb2dyYW0oV2ViR0xQcm9ncmFtKiBwcm9ncmFt
KQogICAgIGRlbGV0ZU9iamVjdChwcm9ncmFtKTsKICAgICAvLyBXZSBkb24ndCByZXNldCBtX2N1
cnJlbnRQcm9ncmFtIHRvIDAgaGVyZSBiZWNhdXNlIHRoZSBkZWxldGlvbiBvZiB0aGUKICAgICAv
LyBjdXJyZW50IHByb2dyYW0gaXMgZGVsYXllZC4KLQotICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkRGVsZXRlUHJvZ3JhbSgqdGhpcywgKnByb2dyYW0pOwogfQogCiB2b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmRlbGV0ZVJlbmRlcmJ1ZmZlcihXZWJHTFJlbmRlcmJ1ZmZl
ciogcmVuZGVyYnVmZmVyKQpAQCAtMTU1OCw4ICsxNTUwLDYgQEAgdm9pZCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpkZXRhY2hTaGFkZXIoV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBXZWJHTFNo
YWRlcioKICAgICB9CiAgICAgbV9jb250ZXh0LT5kZXRhY2hTaGFkZXIob2JqZWN0T3JaZXJvKHBy
b2dyYW0pLCBvYmplY3RPclplcm8oc2hhZGVyKSk7CiAgICAgc2hhZGVyLT5vbkRldGFjaGVkKGdy
YXBoaWNzQ29udGV4dDNEKCkpOwotCi0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRE
ZXRhY2hTaGFkZXIoKnRoaXMsICpwcm9ncmFtLCAqc2hhZGVyKTsKIH0KIAogdm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpkaXNhYmxlKEdDM0RlbnVtIGNhcCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwCmluZGV4IGY4MDJiYjZjNzUzMTIx
NzM4MmVhMjg5ZTBhZjIzNDNjMzY1Mzg5MjguLmEyYTI2NmMzNTJkYTg0ZGRlZTdmYzBiNjk1ZjU0
NTU1YmE1MmU5NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFs
bEluT25lLmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkRPTVBhdGNoU3VwcG9ydC5j
cHAiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCIKICNpbmNs
dWRlICJJbnNwZWN0b3JDU1NBZ2VudC5jcHAiCi0jaW5jbHVkZSAiSW5zcGVjdG9yQ2FudmFzQWdl
bnQuY3BwIgogI2luY2x1ZGUgIkluc3BlY3RvckNsaWVudC5jcHAiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yQ29udHJvbGxlci5jcHAiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRE9NQWdlbnQuY3BwIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3NzYzZWI3MWRmOWJkMWUzYjM2Mzc3MDgyNGUz
MTMwOWY3YjhkNzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDM0NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIkluc3BlY3RvckNhbnZhc0FnZW50LmgiCi0KLSNpbmNsdWRlICJDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUg
IkRvY3VtZW50TG9hZGVyLmgiCi0jaW5jbHVkZSAiRXZlbnQuaCIKLSNpbmNsdWRlICJFdmVudExp
c3RlbmVyLmgiCi0jaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKLSNpbmNsdWRlICJFeGNlcHRpb25D
b2RlLmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5o
IgotI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMzRC5oIgotI2luY2x1ZGUgIkluc3BlY3RvclBhZ2VB
Z2VudC5oIgotI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKLSNpbmNsdWRlICJKU01h
aW5UaHJlYWRFeGVjU3RhdGUuaCIKLSNpbmNsdWRlICJNYWluRnJhbWUuaCIKLSNpbmNsdWRlICJX
ZWJHTENvbnRleHRBdHRyaWJ1dGVzLmgiCi0jaW5jbHVkZSAiV2ViR0xQcm9ncmFtLmgiCi0jaW5j
bHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgotI2luY2x1ZGUgIldlYkdMU2hhZGVy
LmgiCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvclZhbHVlcy5oPgotI2luY2x1ZGUgPGlu
c3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KLSNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2Fs
bFN0YWNrRmFjdG9yeS5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotdXNpbmcgbmFtZXNw
YWNlIEluc3BlY3RvcjsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1JbnNwZWN0b3JDYW52YXNB
Z2VudDo6SW5zcGVjdG9yQ2FudmFzQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVu
dGluZ0FnZW50cywgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQpCi0gICAgOiBJbnNwZWN0
b3JBZ2VudEJhc2UoQVNDSUlMaXRlcmFsKCJDYW52YXMiKSwgaW5zdHJ1bWVudGluZ0FnZW50cykK
LSAgICAsIG1fcGFnZUFnZW50KHBhZ2VBZ2VudCkKLSAgICAsIG1fdGltZXIoKnRoaXMsICZJbnNw
ZWN0b3JDYW52YXNBZ2VudDo6Y2FudmFzRGVzdHJveWVkVGltZXJGaXJlZCkKLXsKLSAgICByZXNl
dCgpOwotfQotCi12b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqIGZyb250ZW5kQ2hhbm5lbCwgSW5z
cGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciogYmFja2VuZERpc3BhdGNoZXIpCi17Ci0gICAgbV9m
cm9udGVuZERpc3BhdGNoZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3Rvcjo6Q2FudmFzRnJv
bnRlbmREaXNwYXRjaGVyPihmcm9udGVuZENoYW5uZWwpOwotICAgIG1fYmFja2VuZERpc3BhdGNo
ZXIgPSBJbnNwZWN0b3I6OkNhbnZhc0JhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoYmFja2VuZERp
c3BhdGNoZXIsIHRoaXMpOwotfQotCi12b2lkIEluc3BlY3RvckNhbnZhc0FnZW50Ojp3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pCi17Ci0g
ICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNo
ZXIuY2xlYXIoKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZnJhbWVOYXZpZ2F0
ZWQoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKLXsKLSAgICBpZiAobG9hZGVyLT5mcmFtZSgpLT5p
c01haW5GcmFtZSgpKSB7Ci0gICAgICAgIHJlc2V0KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBWZWN0b3I8SFRNTENhbnZhc0VsZW1lbnQqPiBjYW52YXNlc0ZvckZyYW1lOwotICAg
IGZvciAoY29uc3QgYXV0byYgY2FudmFzRWxlbWVudCA6IG1fY2FudmFzRW50cmllcy5rZXlzKCkp
IHsKLSAgICAgICAgaWYgKGNhbnZhc0VsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKSA9PSBsb2Fk
ZXItPmZyYW1lKCkpCi0gICAgICAgICAgICBjYW52YXNlc0ZvckZyYW1lLmFwcGVuZChjYW52YXNF
bGVtZW50KTsKLSAgICB9Ci0KLSAgICBmb3IgKGF1dG8qIGNhbnZhc0VsZW1lbnQgOiBjYW52YXNl
c0ZvckZyYW1lKSB7Ci0gICAgICAgIGNvbnN0IGF1dG8mIGNhbnZhc0VudHJ5ID0gbV9jYW52YXNF
bnRyaWVzLmdldChjYW52YXNFbGVtZW50KTsKLSAgICAgICAgZm9yIChjb25zdCBhdXRvJiBwcm9n
cmFtRW50cnkgOiBjYW52YXNFbnRyeS5wcm9ncmFtRW50cmllcy52YWx1ZXMoKSkgewotICAgICAg
ICAgICAgcmVtb3ZlU2hhZGVyRnJvbVNoYWRlck1hcChwcm9ncmFtRW50cnksIHByb2dyYW1FbnRy
eS52ZXJ0ZXhTaGFkZXIpOwotICAgICAgICAgICAgcmVtb3ZlU2hhZGVyRnJvbVNoYWRlck1hcChw
cm9ncmFtRW50cnksIHByb2dyYW1FbnRyeS5mcmFnbWVudFNoYWRlcik7Ci0gICAgICAgIH0KLQot
ICAgICAgICBpZiAobV9mcm9udGVuZERpc3BhdGNoZXIpCi0gICAgICAgICAgICBtX2Zyb250ZW5k
RGlzcGF0Y2hlci0+Y2FudmFzUmVtb3ZlZChjYW52YXNFbnRyeS5jYW52YXNJZCk7Ci0gICAgfQot
fQotCi12b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpkaWRDcmVhdGVDU1NDYW52YXMoSFRNTENh
bnZhc0VsZW1lbnQmIGNhbnZhc0VsZW1lbnQsIGNvbnN0IFN0cmluZyYgbmFtZSkKLXsKLSAgICBB
U1NFUlQoIW1fY2FudmFzVG9DU1NDYW52YXNJZC5jb250YWlucygmY2FudmFzRWxlbWVudCkpOwot
ICAgIEFTU0VSVCghbV9jYW52YXNFbnRyaWVzLmNvbnRhaW5zKCZjYW52YXNFbGVtZW50KSk7Ci0g
ICAgaWYgKG1fY2FudmFzRW50cmllcy5jb250YWlucygmY2FudmFzRWxlbWVudCkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIG1fY2FudmFzVG9DU1NDYW52YXNJZC5zZXQoJmNhbnZhc0VsZW1lbnQs
IG5hbWUpOwotfQotCi12b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpkaWRDcmVhdGVDYW52YXNS
ZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiBjYW52YXNFbGVtZW50KQotewotICAg
IEFTU0VSVCghbV9jYW52YXNFbnRyaWVzLmNvbnRhaW5zKCZjYW52YXNFbGVtZW50KSk7Ci0gICAg
aWYgKG1fY2FudmFzRW50cmllcy5jb250YWlucygmY2FudmFzRWxlbWVudCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIENhbnZhc0VudHJ5IG5ld0NhbnZhc0VudHJ5KG1fbmV4dENhbnZhc0lkKyss
ICZjYW52YXNFbGVtZW50KTsKLSAgICBpZiAobV9jYW52YXNUb0NTU0NhbnZhc0lkLmNvbnRhaW5z
KCZjYW52YXNFbGVtZW50KSkgewotICAgICAgICBBU1NFUlQoIWNhbnZhc0VsZW1lbnQucGFyZW50
RWxlbWVudCgpKTsKLSAgICAgICAgbmV3Q2FudmFzRW50cnkubmFtZSA9IG1fY2FudmFzVG9DU1ND
YW52YXNJZC5nZXQoJmNhbnZhc0VsZW1lbnQpOwotICAgICAgICBuZXdDYW52YXNFbnRyeS5jc3ND
YW52YXMgPSB0cnVlOwotICAgICAgICBtX2NhbnZhc1RvQ1NTQ2FudmFzSWQucmVtb3ZlKCZjYW52
YXNFbGVtZW50KTsKLSAgICB9IGVsc2UKLSAgICAgICAgbmV3Q2FudmFzRW50cnkubmFtZSA9IGNh
bnZhc0VsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpOwotCi0gICAgbV9jYW52YXNFbnRyaWVzLnNl
dCgmY2FudmFzRWxlbWVudCwgbmV3Q2FudmFzRW50cnkpOwotICAgIGNhbnZhc0VsZW1lbnQuYWRk
T2JzZXJ2ZXIoKnRoaXMpOwotICAgIGlmIChtX2Zyb250ZW5kRGlzcGF0Y2hlcikKLSAgICAgICAg
bV9mcm9udGVuZERpc3BhdGNoZXItPmNhbnZhc0FkZGVkKGJ1aWxkT2JqZWN0Rm9yQ2FudmFzKG5l
d0NhbnZhc0VudHJ5LCBjYW52YXNFbGVtZW50KSk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQ2FudmFz
QWdlbnQ6OmRpZEF0dGFjaFNoYWRlcihXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0
LCBXZWJHTFByb2dyYW0mIHByb2dyYW0sIFdlYkdMU2hhZGVyJiBzaGFkZXIpCi17Ci0gICAgUHJv
Z3JhbUVudHJ5KiBwcm9ncmFtRW50cnkgPSBnZXRQcm9ncmFtRW50cnkoY29udGV4dCwgcHJvZ3Jh
bSk7Ci0gICAgQVNTRVJUKHByb2dyYW1FbnRyeSk7Ci0gICAgaWYgKCFwcm9ncmFtRW50cnkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIEFTU0VSVCghKHByb2dyYW1FbnRyeS0+dmVydGV4U2hhZGVy
ID09ICZzaGFkZXIgfHwgcHJvZ3JhbUVudHJ5LT5mcmFnbWVudFNoYWRlciA9PSAmc2hhZGVyKSk7
Ci0gICAgaWYgKHNoYWRlci5nZXRUeXBlKCkgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9T
SEFERVIpCi0gICAgICAgIHByb2dyYW1FbnRyeS0+dmVydGV4U2hhZGVyID0gJnNoYWRlcjsKLSAg
ICBlbHNlCi0gICAgICAgIHByb2dyYW1FbnRyeS0+ZnJhZ21lbnRTaGFkZXIgPSAmc2hhZGVyOwot
Ci0gICAgYXV0byBhZGRSZXN1bHQgPSBtX3NoYWRlclRvUHJvZ3JhbUVudHJpZXMuYWRkKCZzaGFk
ZXIsIEhhc2hTZXQ8Y29uc3QgUHJvZ3JhbUVudHJ5Kj4oe3Byb2dyYW1FbnRyeX0pKTsKLSAgICBp
ZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5KQotICAgICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZh
bHVlLmFkZChwcm9ncmFtRW50cnkpOwotICAgIEFTU0VSVChtX3NoYWRlclRvUHJvZ3JhbUVudHJp
ZXMuY29udGFpbnMoJnNoYWRlcikpOwotfQotCi12b2lkIEluc3BlY3RvckNhbnZhc0FnZW50Ojpk
aWREZXRhY2hTaGFkZXIoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCwgV2ViR0xQ
cm9ncmFtJiBwcm9ncmFtLCBXZWJHTFNoYWRlciYgc2hhZGVyKQotewotICAgIFByb2dyYW1FbnRy
eSogcHJvZ3JhbUVudHJ5ID0gZ2V0UHJvZ3JhbUVudHJ5KGNvbnRleHQsIHByb2dyYW0pOwotICAg
IEFTU0VSVChwcm9ncmFtRW50cnkpOwotICAgIGlmICghcHJvZ3JhbUVudHJ5KQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBBU1NFUlQocHJvZ3JhbUVudHJ5LT52ZXJ0ZXhTaGFkZXIgPT0gJnNoYWRl
ciB8fCBwcm9ncmFtRW50cnktPmZyYWdtZW50U2hhZGVyID09ICZzaGFkZXIpOwotICAgIGlmIChz
aGFkZXIuZ2V0VHlwZSgpID09IEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfU0hBREVSKSB7Ci0g
ICAgICAgIHJlbW92ZVNoYWRlckZyb21TaGFkZXJNYXAoKnByb2dyYW1FbnRyeSwgcHJvZ3JhbUVu
dHJ5LT52ZXJ0ZXhTaGFkZXIpOwotICAgICAgICBwcm9ncmFtRW50cnktPnZlcnRleFNoYWRlciA9
IG51bGxwdHI7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcmVtb3ZlU2hhZGVyRnJvbVNoYWRlck1h
cCgqcHJvZ3JhbUVudHJ5LCBwcm9ncmFtRW50cnktPmZyYWdtZW50U2hhZGVyKTsKLSAgICAgICAg
cHJvZ3JhbUVudHJ5LT5mcmFnbWVudFNoYWRlciA9IG51bGxwdHI7Ci0gICAgfQotfQotCi12b2lk
IEluc3BlY3RvckNhbnZhc0FnZW50OjpkaWRDcmVhdGVQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UmIGNvbnRleHQsIFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKLXsKLSAgICBDYW52YXNF
bnRyeSogY2FudmFzRW50cnkgPSBnZXRDYW52YXNFbnRyeShjb250ZXh0LmNhbnZhcygpKTsKLSAg
ICBBU1NFUlQoY2FudmFzRW50cnkpOwotICAgIGlmICghY2FudmFzRW50cnkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGF1dG8gZmluZFJlc3VsdCA9IGNhbnZhc0VudHJ5LT5wcm9ncmFtRW50cmll
cy5maW5kKCZwcm9ncmFtKTsKLSAgICBBU1NFUlQoZmluZFJlc3VsdCA9PSBjYW52YXNFbnRyeS0+
cHJvZ3JhbUVudHJpZXMuZW5kKCkpOwotICAgIGlmIChmaW5kUmVzdWx0ICE9IGNhbnZhc0VudHJ5
LT5wcm9ncmFtRW50cmllcy5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdW5zaWduZWQg
cHJvZ3JhbUlkID0gY2FudmFzRW50cnktPm5leHRQcm9ncmFtSWQrKzsKLSAgICBjYW52YXNFbnRy
eS0+cHJvZ3JhbUVudHJpZXMuc2V0KCZwcm9ncmFtLCBQcm9ncmFtRW50cnkocHJvZ3JhbUlkLCBj
YW52YXNFbnRyeSwgJnByb2dyYW0pKTsKLSAgICBpZiAobV9mcm9udGVuZERpc3BhdGNoZXIpIHsK
LSAgICAgICAgYXV0byBjb21wb3VuZElkID0gQ2FudmFzT2JqZWN0SWQoY2FudmFzRW50cnktPmNh
bnZhc0lkLCBwcm9ncmFtSWQpOwotICAgICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cHJvZ3Jh
bUNyZWF0ZWQoY29tcG91bmRJZC5hc1Byb3RvY29sVmFsdWU8SW5zcGVjdG9yOjpQcm90b2NvbDo6
Q2FudmFzOjpQcm9ncmFtSWQ+KCkpOwotICAgIH0KLX0KLQotdm9pZCBJbnNwZWN0b3JDYW52YXNB
Z2VudDo6ZGlkRGVsZXRlUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0
LCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCi17Ci0gICAgUHJvZ3JhbUVudHJ5KiBwcm9ncmFtRW50
cnkgPSBnZXRQcm9ncmFtRW50cnkoY29udGV4dCwgcHJvZ3JhbSk7Ci0gICAgaWYgKCFwcm9ncmFt
RW50cnkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChwcm9ncmFtRW50cnktPnZlcnRleFNo
YWRlcikKLSAgICAgICAgcmVtb3ZlU2hhZGVyRnJvbVNoYWRlck1hcCgqcHJvZ3JhbUVudHJ5LCBw
cm9ncmFtRW50cnktPnZlcnRleFNoYWRlcik7Ci0gICAgaWYgKHByb2dyYW1FbnRyeS0+ZnJhZ21l
bnRTaGFkZXIpCi0gICAgICAgIHJlbW92ZVNoYWRlckZyb21TaGFkZXJNYXAoKnByb2dyYW1FbnRy
eSwgcHJvZ3JhbUVudHJ5LT5mcmFnbWVudFNoYWRlcik7Ci0gICAgcHJvZ3JhbUVudHJ5LT5jYW52
YXNFbnRyeS0+cHJvZ3JhbUVudHJpZXMucmVtb3ZlKCZwcm9ncmFtKTsKLSAgICBpZiAobV9mcm9u
dGVuZERpc3BhdGNoZXIpIHsKLSAgICAgICAgYXV0byBjb21wb3VuZElkID0gQ2FudmFzT2JqZWN0
SWQocHJvZ3JhbUVudHJ5LT5jYW52YXNFbnRyeS0+Y2FudmFzSWQsIHByb2dyYW1FbnRyeS0+cHJv
Z3JhbUlkKTsKLSAgICAgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnByb2dyYW1EZWxldGVkKGNv
bXBvdW5kSWQuYXNQcm90b2NvbFZhbHVlPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6UHJv
Z3JhbUlkPigpKTsKLSAgICB9Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmdldENh
bnZhc2VzKEVycm9yU3RyaW5nJiwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6Q2FudmFzPj4mIHJlc3VsdCkKLXsKLSAgICByZXN1
bHQgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52
YXM6OkNhbnZhcz46OmNyZWF0ZSgpOwotICAgIGZvciAoY29uc3QgYXV0byYgcGFpciA6IG1fY2Fu
dmFzRW50cmllcykgewotICAgICAgICBIVE1MQ2FudmFzRWxlbWVudCYgY2FudmFzRWxlbWVudCA9
ICpwYWlyLmtleTsKLSAgICAgICAgcmVzdWx0LT5hZGRJdGVtKGJ1aWxkT2JqZWN0Rm9yQ2FudmFz
KHBhaXIudmFsdWUsIGNhbnZhc0VsZW1lbnQpKTsKLSAgICB9Ci19Ci0KLXZvaWQgSW5zcGVjdG9y
Q2FudmFzQWdlbnQ6OmNhbnZhc0Rlc3Ryb3llZChIVE1MQ2FudmFzRWxlbWVudCYgY2FudmFzRWxl
bWVudCkKLXsKLSAgICBBU1NFUlQoIW1fY2FudmFzVG9DU1NDYW52YXNJZC5jb250YWlucygmY2Fu
dmFzRWxlbWVudCkpOwotCi0gICAgY29uc3QgQ2FudmFzRW50cnkqIGNhbnZhc0VudHJ5ID0gZ2V0
Q2FudmFzRW50cnkoJmNhbnZhc0VsZW1lbnQpOwotICAgIEFTU0VSVChjYW52YXNFbnRyeSk7Ci0g
ICAgaWYgKCFjYW52YXNFbnRyeSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jYW52YXNFbnRy
aWVzLnJlbW92ZSgmY2FudmFzRWxlbWVudCk7Ci0KLSAgICAvLyBXZWJDb3JlOjpDYW52YXNPYnNl
cnZlcjo6Y2FudmFzRGVzdHJveWVkIGlzIGNhbGxlZCBpbiByZXNwb25zZSB0byB0aGUgR0MgZGVz
dHJveWluZyB0aGUgSFRNTENhbnZhc0VsZW1lbnQuCi0gICAgLy8gRHVlIHRvIHRoZSBzaW5nbGUt
cHJvY2VzcyBtb2RlbCB1c2VkIGluIFdlYktpdDEsIHRoZSBldmVudCBtdXN0IGJlIGRpc3BhdGNo
ZWQgZnJvbSBhIHRpbWVyIHRvIHByZXZlbnQKLSAgICAvLyB0aGUgZnJvbnRlbmQgZnJvbSBtYWtp
bmcgSlMgYWxsb2NhdGlvbnMgd2hpbGUgdGhlIEdDIGlzIHN0aWxsIGFjdGl2ZS4KLSAgICBtX2xh
c3RSZW1vdmVkQ2FudmFzSWQgPSBjYW52YXNFbnRyeS0+Y2FudmFzSWQ7Ci0gICAgbV90aW1lci5z
dGFydE9uZVNob3QoMCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmNhbnZhc0Rl
c3Ryb3llZFRpbWVyRmlyZWQoKQotewotICAgIGlmIChtX2Zyb250ZW5kRGlzcGF0Y2hlcikKLSAg
ICAgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPmNhbnZhc1JlbW92ZWQobV9sYXN0UmVtb3ZlZENh
bnZhc0lkKTsKLQotICAgIG1fbGFzdFJlbW92ZWRDYW52YXNJZCA9IDA7Ci19Ci0KLXZvaWQgSW5z
cGVjdG9yQ2FudmFzQWdlbnQ6OnJlc2V0KCkKLXsKLSAgICBtX25leHRDYW52YXNJZCA9IDE7Ci0g
ICAgZm9yIChhdXRvKiBjYW52YXNFbGVtZW50IDogbV9jYW52YXNFbnRyaWVzLmtleXMoKSkKLSAg
ICAgICAgY2FudmFzRWxlbWVudC0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwotCi0gICAgbV9jYW52
YXNUb0NTU0NhbnZhc0lkLmNsZWFyKCk7Ci0gICAgbV9jYW52YXNFbnRyaWVzLmNsZWFyKCk7Ci0g
ICAgbV9zaGFkZXJUb1Byb2dyYW1FbnRyaWVzLmNsZWFyKCk7Ci19Ci0KLUluc3BlY3RvckNhbnZh
c0FnZW50OjpDYW52YXNFbnRyeSogSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmdldENhbnZhc0VudHJ5
KEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXNFbGVtZW50KQotewotICAgIEFTU0VSVChjYW52YXNF
bGVtZW50KTsKLSAgICBpZiAoIWNhbnZhc0VsZW1lbnQpCi0gICAgICAgIHJldHVybiBudWxscHRy
OwotCi0gICAgYXV0byBmaW5kUmVzdWx0ID0gbV9jYW52YXNFbnRyaWVzLmZpbmQoY2FudmFzRWxl
bWVudCk7Ci0gICAgaWYgKGZpbmRSZXN1bHQgIT0gbV9jYW52YXNFbnRyaWVzLmVuZCgpKQotICAg
ICAgICByZXR1cm4gJmZpbmRSZXN1bHQtPnZhbHVlOwotICAgIHJldHVybiBudWxscHRyOwotfQot
Ci1JbnNwZWN0b3JDYW52YXNBZ2VudDo6Q2FudmFzRW50cnkqIEluc3BlY3RvckNhbnZhc0FnZW50
OjpnZXRDYW52YXNFbnRyeSh1bnNpZ25lZCBjYW52YXNJZCkKLXsKLSAgICBmb3IgKGF1dG8mIGNh
bnZhc0VudHJ5IDogbV9jYW52YXNFbnRyaWVzLnZhbHVlcygpKSB7Ci0gICAgICAgIGlmIChjYW52
YXNFbnRyeS5jYW52YXNJZCA9PSBjYW52YXNJZCkKLSAgICAgICAgICAgIHJldHVybiAmY2FudmFz
RW50cnk7Ci0gICAgfQotICAgIHJldHVybiBudWxscHRyOwotfQotCi1JbnNwZWN0b3JDYW52YXNB
Z2VudDo6UHJvZ3JhbUVudHJ5KiBJbnNwZWN0b3JDYW52YXNBZ2VudDo6Z2V0UHJvZ3JhbUVudHJ5
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQsIFdlYkdMUHJvZ3JhbSYgcHJvZ3Jh
bSkKLXsKLSAgICBDYW52YXNFbnRyeSogY2FudmFzRW50cnkgPSBnZXRDYW52YXNFbnRyeShjb250
ZXh0LmNhbnZhcygpKTsKLSAgICBpZiAoIWNhbnZhc0VudHJ5KQotICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLQotICAgIGF1dG8gZmluZFJlc3VsdCA9IGNhbnZhc0VudHJ5LT5wcm9ncmFtRW50cmll
cy5maW5kKCZwcm9ncmFtKTsKLSAgICBpZiAoZmluZFJlc3VsdCA9PSBjYW52YXNFbnRyeS0+cHJv
Z3JhbUVudHJpZXMuZW5kKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgcmV0dXJu
ICZmaW5kUmVzdWx0LT52YWx1ZTsKLX0KLQotdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6cmVt
b3ZlU2hhZGVyRnJvbVNoYWRlck1hcChjb25zdCBQcm9ncmFtRW50cnkmIHByb2dyYW1FbnRyeSwg
V2ViR0xTaGFkZXIqIHNoYWRlcikKLXsKLSAgICBBU1NFUlQoc2hhZGVyKTsKLSAgICBpZiAoIXNo
YWRlcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byBmaW5kUmVzdWx0ID0gbV9zaGFkZXJU
b1Byb2dyYW1FbnRyaWVzLmZpbmQoc2hhZGVyKTsKLSAgICBBU1NFUlQoZmluZFJlc3VsdCAhPSBt
X3NoYWRlclRvUHJvZ3JhbUVudHJpZXMuZW5kKCkpOwotICAgIGlmIChmaW5kUmVzdWx0ID09IG1f
c2hhZGVyVG9Qcm9ncmFtRW50cmllcy5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0
byYgcHJvZ3JhbUVudHJpZXMgPSBmaW5kUmVzdWx0LT52YWx1ZTsKLSAgICBwcm9ncmFtRW50cmll
cy5yZW1vdmUoJnByb2dyYW1FbnRyeSk7Ci0gICAgaWYgKHByb2dyYW1FbnRyaWVzLmlzRW1wdHko
KSkKLSAgICAgICAgbV9zaGFkZXJUb1Byb2dyYW1FbnRyaWVzLnJlbW92ZShzaGFkZXIpOwotfQot
Ci1JbnNwZWN0b3I6OlByb3RvY29sOjpDYW52YXM6OkNvbnRleHRUeXBlIEluc3BlY3RvckNhbnZh
c0FnZW50Ojpjb250ZXh0VHlwZUpzb24oY29uc3QgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogY29u
dGV4dCkKLXsKLSAgICBpZiAoY29udGV4dC0+aXMyZCgpKQotICAgICAgICByZXR1cm4gSW5zcGVj
dG9yOjpQcm90b2NvbDo6Q2FudmFzOjpDb250ZXh0VHlwZTo6Q2FudmFzMkQ7Ci0KLSAgICBBU1NF
UlQoY29udGV4dC0+aXMzZCgpKTsKLSAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q2Fu
dmFzOjpDb250ZXh0VHlwZTo6V2ViR0w7Ci19Ci0KLVJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpD
YW52YXM6OkNhbnZhcz4gSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yQ2FudmFz
KGNvbnN0IENhbnZhc0VudHJ5JiBjYW52YXNFbnRyeSwgSFRNTENhbnZhc0VsZW1lbnQmIGNhbnZh
c0VsZW1lbnQpCi17Ci0gICAgRnJhbWUqIGZyYW1lID0gY2FudmFzRWxlbWVudC5kb2N1bWVudCgp
LmZyYW1lKCk7Ci0gICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCA9IGNhbnZhc0Vs
ZW1lbnQucmVuZGVyaW5nQ29udGV4dCgpOwotCi0gICAgYXV0byBwcm9ncmFtSWRzID0gSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q2FudmFzOjpQcm9ncmFt
SWQ+OjpjcmVhdGUoKTsKLSAgICBmb3IgKGF1dG8mIHBhaXIgOiBjYW52YXNFbnRyeS5wcm9ncmFt
RW50cmllcykgewotICAgICAgICBhdXRvIGNvbXBvdW5kSWQgPSBDYW52YXNPYmplY3RJZChjYW52
YXNFbnRyeS5jYW52YXNJZCwgcGFpci52YWx1ZS5wcm9ncmFtSWQpOwotICAgICAgICBwcm9ncmFt
SWRzLT5hZGRJdGVtKGNvbXBvdW5kSWQuYXNQcm90b2NvbFZhbHVlPEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkNhbnZhczo6UHJvZ3JhbUlkPigpKTsKLSAgICB9Ci0KLSAgICBhdXRvIGNhbnZhcyA9IElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6Q2FudmFzOjpjcmVhdGUoKQotICAgICAgICAuc2V0
Q2FudmFzSWQoY2FudmFzRW50cnkuY2FudmFzSWQpCi0gICAgICAgIC5zZXRGcmFtZUlkKG1fcGFn
ZUFnZW50LT5mcmFtZUlkKGZyYW1lKSkKLSAgICAgICAgLnNldE5hbWUoY2FudmFzRW50cnkubmFt
ZSkKLSAgICAgICAgLnNldENzc0NhbnZhcyhjYW52YXNFbnRyeS5jc3NDYW52YXMpCi0gICAgICAg
IC5zZXRDb250ZXh0VHlwZShjb250ZXh0VHlwZUpzb24oY29udGV4dCkpCi0gICAgICAgIC5zZXRQ
cm9ncmFtSWRzKFdURjo6bW92ZShwcm9ncmFtSWRzKSkKLSAgICAgICAgLnJlbGVhc2UoKTsKLQot
ICAgIGlmIChjb250ZXh0LT5pczNkKCkpIHsKLSAgICAgICAgYXV0byBhdHRyaWJ1dGVzID0gc3Rh
dGljX2Nhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSo+KGNvbnRleHQpLT5nZXRDb250ZXh0
QXR0cmlidXRlcygpOwotICAgICAgICBjYW52YXMtPnNldENvbnRleHRBdHRyaWJ1dGVzKEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6Q29udGV4dEF0dHJpYnV0ZXM6OmNyZWF0ZSgpCi0gICAg
ICAgICAgICAuc2V0QWxwaGEoYXR0cmlidXRlcy0+YWxwaGEoKSkKLSAgICAgICAgICAgIC5zZXRE
ZXB0aChhdHRyaWJ1dGVzLT5kZXB0aCgpKQotICAgICAgICAgICAgLnNldFN0ZW5jaWwoYXR0cmli
dXRlcy0+c3RlbmNpbCgpKQotICAgICAgICAgICAgLnNldEFudGlhbGlhcyhhdHRyaWJ1dGVzLT5h
bnRpYWxpYXMoKSkKLSAgICAgICAgICAgIC5zZXRQcmVtdWx0aXBsaWVkQWxwaGEoYXR0cmlidXRl
cy0+cHJlbXVsdGlwbGllZEFscGhhKCkpCi0gICAgICAgICAgICAuc2V0UHJlc2VydmVEcmF3aW5n
QnVmZmVyKGF0dHJpYnV0ZXMtPnByZXNlcnZlRHJhd2luZ0J1ZmZlcigpKQotICAgICAgICAgICAg
LnJlbGVhc2UoKSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIGNhbnZhczsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNhbnZhc0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2Fu
dmFzQWdlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDcxNjI0YTg5NmJmOTEz
NDU2YTg1ZWE3ZmE1ZmRhODUzNjkwNDgyNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFz
QWdlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDE3NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lm
bmRlZiBJbnNwZWN0b3JDYW52YXNBZ2VudF9oCi0jZGVmaW5lIEluc3BlY3RvckNhbnZhc0FnZW50
X2gKLQotI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9y
V2ViQWdlbnRCYXNlLmgiCi0jaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlIDxpbnNwZWN0b3Iv
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmg+Ci0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xh
c3MgRG9jdW1lbnRMb2FkZXI7Ci1jbGFzcyBJbnNwZWN0b3JQYWdlQWdlbnQ7Ci1jbGFzcyBXZWJH
TFByb2dyYW07Ci1jbGFzcyBXZWJHTFNoYWRlcjsKLWNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U7Ci0KLXR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwotCi1jbGFzcyBJbnNwZWN0b3JD
YW52YXNBZ2VudCBmaW5hbAotICAgIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZQotICAgICwg
cHVibGljIENhbnZhc09ic2VydmVyCi0gICAgLCBwdWJsaWMgSW5zcGVjdG9yOjpDYW52YXNCYWNr
ZW5kRGlzcGF0Y2hlckhhbmRsZXIgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3Rv
ckNhbnZhc0FnZW50KTsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAg
ICBJbnNwZWN0b3JDYW52YXNBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yUGFn
ZUFnZW50Kik7Ci0gICAgdmlydHVhbCB+SW5zcGVjdG9yQ2FudmFzQWdlbnQoKSB7IH0KLQotICAg
IHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9u
dGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0g
ICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
RGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7Ci0KLSAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24gQVBJCi0gICAgdm9pZCBmcmFtZU5hdmlnYXRlZChEb2N1bWVudExvYWRlciopOwotICAg
IHZvaWQgZGlkQ3JlYXRlQ1NTQ2FudmFzKEhUTUxDYW52YXNFbGVtZW50JiwgY29uc3QgU3RyaW5n
Jik7Ci0gICAgdm9pZCBkaWRDcmVhdGVDYW52YXNSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNF
bGVtZW50Jik7Ci0gICAgdm9pZCBkaWRBdHRhY2hTaGFkZXIoV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZSYsIFdlYkdMUHJvZ3JhbSYsIFdlYkdMU2hhZGVyJik7Ci0gICAgdm9pZCBkaWREZXRhY2hT
aGFkZXIoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdMUHJvZ3JhbSYsIFdlYkdMU2hh
ZGVyJik7Ci0gICAgdm9pZCBkaWRDcmVhdGVQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UmLCBXZWJHTFByb2dyYW0mKTsKLSAgICB2b2lkIGRpZERlbGV0ZVByb2dyYW0oV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdMUHJvZ3JhbSYpOwotCi0gICAgLy8gQ2FudmFzIEFQSSBm
b3IgSW5zcGVjdG9yRnJvbnRlbmQKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0Q2FudmFzZXMoRXJyb3JT
dHJpbmcmLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90
b2NvbDo6Q2FudmFzOjpDYW52YXM+PiYpIG92ZXJyaWRlOwotCi0gICAgLy8gQ2FudmFzT2JzZXJ2
ZXIgaW1wbGVtZW50YXRpb24KLSAgICB2aXJ0dWFsIHZvaWQgY2FudmFzQ2hhbmdlZChIVE1MQ2Fu
dmFzRWxlbWVudCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlIHsgfQotICAgIHZpcnR1YWwg
dm9pZCBjYW52YXNSZXNpemVkKEhUTUxDYW52YXNFbGVtZW50Jikgb3ZlcnJpZGUgeyB9Ci0gICAg
dmlydHVhbCB2b2lkIGNhbnZhc0Rlc3Ryb3llZChIVE1MQ2FudmFzRWxlbWVudCYpIG92ZXJyaWRl
OwotCi1wcml2YXRlOgotICAgIGNsYXNzIENhbnZhc09iamVjdElkIHsKLSAgICBwdWJsaWM6Ci0g
ICAgICAgIENhbnZhc09iamVjdElkKCkgeyB9Ci0KLSAgICAgICAgZXhwbGljaXQgQ2FudmFzT2Jq
ZWN0SWQoY29uc3QgUmVmUHRyPEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiB2YWx1ZSkKLSAg
ICAgICAgewotICAgICAgICAgICAgaWYgKCF2YWx1ZS0+Z2V0SW50ZWdlcihBU0NJSUxpdGVyYWwo
ImNhbnZhc0lkIiksIG1fY2FudmFzSWQpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgIGlmICghdmFsdWUtPmdldEludGVnZXIoQVNDSUlMaXRlcmFsKCJvYmplY3RJZCIpLCBt
X29iamVjdElkKSkKLSAgICAgICAgICAgICAgICBtX2NhbnZhc0lkID0gMDsKLSAgICAgICAgfQot
Ci0gICAgICAgIENhbnZhc09iamVjdElkKHVuc2lnbmVkIGNhbnZhc0lkLCB1bnNpZ25lZCBwcm9n
cmFtSWQpCi0gICAgICAgICAgICA6IG1fY2FudmFzSWQoY2FudmFzSWQpCi0gICAgICAgICAgICAs
IG1fb2JqZWN0SWQocHJvZ3JhbUlkKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBi
b29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhKG1fY2FudmFzSWQgJiYgbV9vYmplY3RJZCk7
IH0KLSAgICAgICAgdW5zaWduZWQgY2FudmFzSWQoKSBjb25zdCB7IHJldHVybiBtX2NhbnZhc0lk
OyB9Ci0gICAgICAgIHVuc2lnbmVkIG9iamVjdElkKCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3RJ
ZDsgfQotCi0gICAgICAgIC8vIElEIHR5cGUgaXMgZWl0aGVyIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkNhbnZhczo6UHJvZ3JhbUlkIG9yIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNhbnZhczo6VGV4dHVy
ZUlkLgotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBJRD4KLSAgICAgICAgUmVmUHRyPElEPiBh
c1Byb3RvY29sVmFsdWUoKSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoaXNFbXB0
eSgpKQotICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgICAgICAgICByZXR1
cm4gSUQ6OmNyZWF0ZSgpCi0gICAgICAgICAgICAgICAgLnNldENhbnZhc0lkKG1fY2FudmFzSWQp
Ci0gICAgICAgICAgICAgICAgLnNldE9iamVjdElkKG1fb2JqZWN0SWQpLnJlbGVhc2UoKTsKLSAg
ICAgICAgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgdW5zaWduZWQgbV9jYW52YXNJZCA9IHsw
fTsKLSAgICAgICAgdW5zaWduZWQgbV9vYmplY3RJZCA9IHswfTsKLSAgICB9OwotCi0gICAgc3Ry
dWN0IENhbnZhc0VudHJ5OwotCi0gICAgc3RydWN0IFByb2dyYW1FbnRyeSB7Ci0gICAgICAgIHVu
c2lnbmVkIHByb2dyYW1JZCA9IHswfTsKLSAgICAgICAgQ2FudmFzRW50cnkqIGNhbnZhc0VudHJ5
ID0ge251bGxwdHJ9OwotICAgICAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSB7bnVsbHB0cn07
Ci0gICAgICAgIFdlYkdMU2hhZGVyKiB2ZXJ0ZXhTaGFkZXIgPSB7bnVsbHB0cn07Ci0gICAgICAg
IFdlYkdMU2hhZGVyKiBmcmFnbWVudFNoYWRlciA9IHtudWxscHRyfTsKLQotICAgICAgICBQcm9n
cmFtRW50cnkoKSB7IH0KLQotICAgICAgICBQcm9ncmFtRW50cnkodW5zaWduZWQgaWQsIENhbnZh
c0VudHJ5KiBjYW52YXNFbnRyeSwgV2ViR0xQcm9ncmFtKiBwcm9ncmFtKQotICAgICAgICAgICAg
OiBwcm9ncmFtSWQoaWQpCi0gICAgICAgICAgICAsIGNhbnZhc0VudHJ5KGNhbnZhc0VudHJ5KQot
ICAgICAgICAgICAgLCBwcm9ncmFtKHByb2dyYW0pCi0gICAgICAgIHsKLSAgICAgICAgfQotICAg
IH07Ci0KLSAgICBzdHJ1Y3QgQ2FudmFzRW50cnkgewotICAgICAgICB1bnNpZ25lZCBjYW52YXNJ
ZCA9IHswfTsKLSAgICAgICAgdW5zaWduZWQgbmV4dFByb2dyYW1JZCA9IHsxfTsKLSAgICAgICAg
Ym9vbCBjc3NDYW52YXMgPSB7ZmFsc2V9OwotICAgICAgICBTdHJpbmcgbmFtZTsKLSAgICAgICAg
SFRNTENhbnZhc0VsZW1lbnQqIGVsZW1lbnQgPSB7bnVsbHB0cn07Ci0gICAgICAgIEhhc2hNYXA8
V2ViR0xQcm9ncmFtKiwgUHJvZ3JhbUVudHJ5PiBwcm9ncmFtRW50cmllczsKLQotICAgICAgICBD
YW52YXNFbnRyeSgpIHsgfQotCi0gICAgICAgIENhbnZhc0VudHJ5KHVuc2lnbmVkIGlkLCBIVE1M
Q2FudmFzRWxlbWVudCogY2FudmFzRWxlbWVudCkKLSAgICAgICAgICAgIDogY2FudmFzSWQoaWQp
Ci0gICAgICAgICAgICAsIGVsZW1lbnQoY2FudmFzRWxlbWVudCkKLSAgICAgICAgewotICAgICAg
ICB9Ci0gICAgfTsKLQotICAgIHZvaWQgY2FudmFzRGVzdHJveWVkVGltZXJGaXJlZCgpOwotICAg
IHZvaWQgcmVzZXQoKTsKLSAgICBDYW52YXNFbnRyeSogZ2V0Q2FudmFzRW50cnkoSFRNTENhbnZh
c0VsZW1lbnQqKTsKLSAgICBDYW52YXNFbnRyeSogZ2V0Q2FudmFzRW50cnkodW5zaWduZWQpOwot
ICAgIFByb2dyYW1FbnRyeSogZ2V0UHJvZ3JhbUVudHJ5KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UmLCBXZWJHTFByb2dyYW0mKTsKLSAgICB2b2lkIHJlbW92ZVNoYWRlckZyb21TaGFkZXJNYXAo
Y29uc3QgUHJvZ3JhbUVudHJ5JiwgV2ViR0xTaGFkZXIqKTsKLSAgICBzdGF0aWMgSW5zcGVjdG9y
OjpQcm90b2NvbDo6Q2FudmFzOjpDb250ZXh0VHlwZSBjb250ZXh0VHlwZUpzb24oY29uc3QgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dCopOwotICAgIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDYW52
YXM6OkNhbnZhcz4gYnVpbGRPYmplY3RGb3JDYW52YXMoY29uc3QgQ2FudmFzRW50cnkmLCBIVE1M
Q2FudmFzRWxlbWVudCYpOwotCi0gICAgSW5zcGVjdG9yUGFnZUFnZW50KiBtX3BhZ2VBZ2VudDsK
LSAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yOjpDYW52YXNGcm9udGVuZERpc3BhdGNoZXI+
IG1fZnJvbnRlbmREaXNwYXRjaGVyOwotICAgIFJlZlB0cjxJbnNwZWN0b3I6OkNhbnZhc0JhY2tl
bmREaXNwYXRjaGVyPiBtX2JhY2tlbmREaXNwYXRjaGVyOwotCi0gICAgSGFzaE1hcDxIVE1MQ2Fu
dmFzRWxlbWVudCosIFN0cmluZz4gbV9jYW52YXNUb0NTU0NhbnZhc0lkOwotICAgIEhhc2hNYXA8
SFRNTENhbnZhc0VsZW1lbnQqLCBDYW52YXNFbnRyeT4gbV9jYW52YXNFbnRyaWVzOwotICAgIEhh
c2hNYXA8Y29uc3QgV2ViR0xTaGFkZXIqLCBIYXNoU2V0PGNvbnN0IFByb2dyYW1FbnRyeSo+PiBt
X3NoYWRlclRvUHJvZ3JhbUVudHJpZXM7Ci0gICAgVGltZXIgbV90aW1lcjsKLSAgICB1bnNpZ25l
ZCBtX25leHRDYW52YXNJZCA9IHswfTsKLSAgICB1bnNpZ25lZCBtX2xhc3RSZW1vdmVkQ2FudmFz
SWQgPSB7MH07Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyAhZGVm
aW5lZChJbnNwZWN0b3JDYW52YXNBZ2VudF9oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDg3NTJjODljZDQ1Y2UxZmI4YjEyZWQy
MDBmZDU5N2IwNGY4NjFiMTQuLmExOWJhNGE5OWEzOWI4MTVjOWQzYmYxZWFiYmIxNDk1ZDRjMDRm
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAKQEAgLTM3LDcgKzM3LDYgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNp
bmNsdWRlICJJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaCIKICNpbmNsdWRlICJJbnNw
ZWN0b3JDU1NBZ2VudC5oIgotI2luY2x1ZGUgIkluc3BlY3RvckNhbnZhc0FnZW50LmgiCiAjaW5j
bHVkZSAiSW5zcGVjdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRE9NQWdlbnQuaCIK
ICNpbmNsdWRlICJJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmgiCkBAIC0xNTgsMTAgKzE1Nyw2
IEBAIEluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIoUGFnZSYgcGFnZSwg
SW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDCiAgICAgbV9kb21EZWJ1Z2dlckFnZW50ID0gZG9t
RGVidWdnZXJBZ2VudFB0ci5nZXQoKTsKICAgICBtX2FnZW50cy5hcHBlbmQoV1RGOjptb3ZlKGRv
bURlYnVnZ2VyQWdlbnRQdHIpKTsKIAotICAgIGF1dG8gY2FudmFzQWdlbnRQdHIgPSBzdGQ6Om1h
a2VfdW5pcXVlPEluc3BlY3RvckNhbnZhc0FnZW50PihtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0
KCksIG1fcGFnZUFnZW50KTsKLSAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3Rv
ckNhbnZhc0FnZW50KGNhbnZhc0FnZW50UHRyLmdldCgpKTsKLSAgICBtX2FnZW50cy5hcHBlbmQo
V1RGOjptb3ZlKGNhbnZhc0FnZW50UHRyKSk7Ci0KICAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjpt
YWtlX3VuaXF1ZTxJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ+KG1faW5zdHJ1bWVudGlu
Z0FnZW50cy5nZXQoKSwgcGFnZUFnZW50KSk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bWFr
ZV91bmlxdWU8SW5zcGVjdG9yV29ya2VyQWdlbnQ+KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQo
KSkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvckxheWVy
VHJlZUFnZW50PihtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCkpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXgg
MzY2MmE5NDBiMzRhMWQ0YjlmY2ZiNmQyYTMyNGUxNmE3NTFiZDlkNi4uZTYwZjBkNjQ3NjRmNzk2
OTQyMTRkOWRkNGE5YzJjN2Y5YWE3MjgyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTQzLDcgKzQzLDYgQEAK
ICNpbmNsdWRlICJJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaCIKICNpbmNsdWRlICJJ
bnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ1NTQWdlbnQuaCIKLSNp
bmNsdWRlICJJbnNwZWN0b3JDYW52YXNBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckRPTUFn
ZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oIgogI2luY2x1ZGUg
Ikluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIgpAQCAtNjMsNyArNjIsNiBAQAogI2luY2x1ZGUg
IlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJTdHlsZVJ1bGUuaCIKICNpbmNsdWRlICJXZWJD
b25zb2xlQWdlbnQuaCIKLSNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAj
aW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJXb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyUnVudGltZUFnZW50LmgiCkBAIC03NjQsOSAr
NzYyLDYgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENvbW1pdExvYWRJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnQKICAgICAgICAgICAgIGxheWVyVHJlZUFn
ZW50LT5yZXNldCgpOwogICAgIH0KIAotICAgIGlmIChJbnNwZWN0b3JDYW52YXNBZ2VudCogY2Fu
dmFzQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckNhbnZhc0FnZW50KCkpCi0g
ICAgICAgIGNhbnZhc0FnZW50LT5mcmFtZU5hdmlnYXRlZChsb2FkZXIpOwotCiAgICAgaWYgKElu
c3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9y
RE9NQWdlbnQoKSkKICAgICAgICAgZG9tQWdlbnQtPmRpZENvbW1pdExvYWQobG9hZGVyLT5mcmFt
ZSgpLT5kb2N1bWVudCgpKTsKIApAQCAtMTAzMyw0NCArMTAyOCw2IEBAIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRTZW5kV2ViU29ja2V0RnJhbWVJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmIGluCiB9CiAjZW5kaWYKIAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZENyZWF0ZUNTU0NhbnZhc0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cywgSFRNTENhbnZhc0VsZW1lbnQmIGNhbnZhc0VsZW1lbnQsIGNvbnN0IFN0cmluZyYgbmFt
ZSkKLXsKLSAgICBpZiAoSW5zcGVjdG9yQ2FudmFzQWdlbnQqIGNhbnZhc0FnZW50ID0gaW5zdHJ1
bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yQ2FudmFzQWdlbnQoKSkKLSAgICAgICAgY2FudmFzQWdl
bnQtPmRpZENyZWF0ZUNTU0NhbnZhcyhjYW52YXNFbGVtZW50LCBuYW1lKTsKLX0KLQotdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZUNhbnZhc1JlbmRlcmluZ0NvbnRleHRJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEhUTUxDYW52YXNF
bGVtZW50JiBjYW52YXNFbGVtZW50KQotewotICAgIGlmIChJbnNwZWN0b3JDYW52YXNBZ2VudCog
Y2FudmFzQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JDYW52YXNBZ2VudCgp
KQotICAgICAgICBjYW52YXNBZ2VudC0+ZGlkQ3JlYXRlQ2FudmFzUmVuZGVyaW5nQ29udGV4dChj
YW52YXNFbGVtZW50KTsKLX0KLQotI2lmIEVOQUJMRShXRUJHTCkKLXZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRBdHRhY2hTaGFkZXJJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnRpbmdBZ2VudHMsIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQsIFdl
YkdMUHJvZ3JhbSYgcHJvZ3JhbSwgV2ViR0xTaGFkZXImIHNoYWRlcikKLXsKLSAgICBpZiAoSW5z
cGVjdG9yQ2FudmFzQWdlbnQqIGNhbnZhc0FnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5z
cGVjdG9yQ2FudmFzQWdlbnQoKSkKLSAgICAgICAgY2FudmFzQWdlbnQtPmRpZEF0dGFjaFNoYWRl
cihjb250ZXh0LCBwcm9ncmFtLCBzaGFkZXIpOwotfQotCi12b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkRGV0YWNoU2hhZGVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzLCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBXZWJHTFBy
b2dyYW0mIHByb2dyYW0sIFdlYkdMU2hhZGVyJiBzaGFkZXIpCi17Ci0gICAgaWYgKEluc3BlY3Rv
ckNhbnZhc0FnZW50KiBjYW52YXNBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3Rv
ckNhbnZhc0FnZW50KCkpCi0gICAgICAgIGNhbnZhc0FnZW50LT5kaWREZXRhY2hTaGFkZXIoY29u
dGV4dCwgcHJvZ3JhbSwgc2hhZGVyKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZENyZWF0ZVByb2dyYW1JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMsIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQsIFdlYkdMUHJvZ3Jh
bSYgcHJvZ3JhbSkKLXsKLSAgICBpZiAoSW5zcGVjdG9yQ2FudmFzQWdlbnQqIGNhbnZhc0FnZW50
ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yQ2FudmFzQWdlbnQoKSkKLSAgICAgICAg
Y2FudmFzQWdlbnQtPmRpZENyZWF0ZVByb2dyYW0oY29udGV4dCwgcHJvZ3JhbSk7Ci19Ci0KLXZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREZWxldGVQcm9ncmFtSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlJiBjb250ZXh0LCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCi17Ci0gICAgaWYgKEluc3BlY3Rv
ckNhbnZhc0FnZW50KiBjYW52YXNBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3Rv
ckNhbnZhc0FnZW50KCkpCi0gICAgICAgIGNhbnZhc0FnZW50LT5kaWREZWxldGVQcm9ncmFtKGNv
bnRleHQsIHByb2dyYW0pOwotfQotI2VuZGlmCi0KICNpZiBFTkFCTEUoV0VCX1JFUExBWSkKIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzZXNzaW9uQ3JlYXRlZEltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgUmVmUHRyPFJlcGxheVNlc3Npb24+JiYg
c2Vzc2lvbikKIHsKQEAgLTEyNjQsMTYgKzEyMjEsNiBAQCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
KiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnJldHJpZXZlVGltZWxpbmVBZ2VudChjb25zdCBJ
bgogICAgIHJldHVybiBudWxscHRyOwogfQogCi1JbnN0cnVtZW50aW5nQWdlbnRzKiBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246Omluc3RydW1lbnRpbmdBZ2VudHNGb3JSZW5kZXJpbmdDb250ZXh0
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGNvbnRleHQpCi17Ci0gICAgaWYgKCFjb250ZXh0
KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFz
RWxlbWVudCA9IGNvbnRleHQtPmNhbnZhcygpOwotICAgIGlmIChjYW52YXNFbGVtZW50KQotICAg
ICAgICByZXR1cm4gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckRvY3VtZW50KCZjYW52YXNFbGVtZW50
LT5kb2N1bWVudCgpKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQogSW5zdHJ1bWVudGluZ0Fn
ZW50cyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFn
ZShQYWdlKiBwYWdlKQogewogICAgIHJldHVybiBwYWdlID8gaW5zdHJ1bWVudGluZ0FnZW50c0Zv
clBhZ2UoKnBhZ2UpIDogbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCBmOTc1MzQzNTc4ZGRjMjI0YTdkNjJh
OWRlMjgzNmNiOGI2MjBiODczLi5hZDhkZTZiZjQ2NDRhMmRlMDZmMzhmZGU1YzEzMGJlYTdlM2Fj
Y2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5oCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJIVE1MQ2Fu
dmFzRWxlbWVudC5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC03Niw2
ICs3NSw3IEBAIGNsYXNzIERPTVdpbmRvdzsKIGNsYXNzIERPTVdyYXBwZXJXb3JsZDsKIGNsYXNz
IERhdGFiYXNlOwogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBFbGVtZW50OwogY2xhc3MgRG9jdW1l
bnRMb2FkZXI7CiBjbGFzcyBEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOwogY2xhc3MgR3Jh
cGhpY3NDb250ZXh0OwpAQCAtOTMsMTUgKzkzLDEzIEBAIGNsYXNzIFJlbmRlckxheWVyQmFja2lu
ZzsKIGNsYXNzIFJlbmRlck9iamVjdDsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIFJl
c291cmNlUmVzcG9uc2U7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgU2Vj
dXJpdHlPcmlnaW47CiBjbGFzcyBTaGFkb3dSb290OwogY2xhc3MgU3RvcmFnZUFyZWE7CiBjbGFz
cyBTdHlsZVJlc29sdmVyOwogY2xhc3MgU3R5bGVSdWxlOwogY2xhc3MgVGhyZWFkYWJsZUxvYWRl
ckNsaWVudDsKLWNsYXNzIFdlYkdMU2hhZGVyOwotY2xhc3MgV2ViR0xQcm9ncmFtOwotY2xhc3Mg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTsKIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlOwogY2xh
c3MgV29ya2VyR2xvYmFsU2NvcGVQcm94eTsKIGNsYXNzIFhNTEh0dHBSZXF1ZXN0OwpAQCAtMjY1
LDEzICsyNjMsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVdlYlNvY2tl
dEZyYW1lRXJyb3IoRG9jdW1lbnQqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgZXJyb3JNZXNzYWdlKTsKICNlbmRpZgogCi0gICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRl
Q1NTQ2FudmFzKEhUTUxDYW52YXNFbGVtZW50JiwgY29uc3QgU3RyaW5nJik7Ci0gICAgc3RhdGlj
IHZvaWQgZGlkQ3JlYXRlQ2FudmFzUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYp
OworICAgIHN0YXRpYyBEZXByZWNhdGVkOjpTY3JpcHRPYmplY3Qgd3JhcENhbnZhczJEUmVuZGVy
aW5nQ29udGV4dEZvckluc3RydW1lbnRhdGlvbihEb2N1bWVudCosIGNvbnN0IERlcHJlY2F0ZWQ6
OlNjcmlwdE9iamVjdCYpOwogI2lmIEVOQUJMRShXRUJHTCkKLSAgICBzdGF0aWMgdm9pZCBkaWRB
dHRhY2hTaGFkZXIoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdMUHJvZ3JhbSYsIFdl
YkdMU2hhZGVyJik7Ci0gICAgc3RhdGljIHZvaWQgZGlkRGV0YWNoU2hhZGVyKFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UmLCBXZWJHTFByb2dyYW0mLCBXZWJHTFNoYWRlciYpOwotICAgIHN0YXRp
YyB2b2lkIGRpZENyZWF0ZVByb2dyYW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFdlYkdM
UHJvZ3JhbSYpOwotICAgIHN0YXRpYyB2b2lkIGRpZERlbGV0ZVByb2dyYW0oV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSYsIFdlYkdMUHJvZ3JhbSYpOworICAgIHN0YXRpYyBEZXByZWNhdGVkOjpT
Y3JpcHRPYmplY3Qgd3JhcFdlYkdMUmVuZGVyaW5nQ29udGV4dEZvckluc3RydW1lbnRhdGlvbihE
b2N1bWVudCosIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdE9iamVjdCYpOwogI2VuZGlmCiAKICAg
ICBzdGF0aWMgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKFBhZ2UqKTsKQEAgLTQ0OCwxNSArNDQy
LDYgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZWRJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMmKTsKICAgICBzdGF0aWMgdm9pZCB1cGRhdGVBcHBsaWNhdGlv
bkNhY2hlU3RhdHVzSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgRnJhbWUqKTsKLSAgICBzdGF0
aWMgdm9pZCBkaWRDcmVhdGVDU1NDYW52YXNJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBIVE1M
Q2FudmFzRWxlbWVudCYsIGNvbnN0IFN0cmluZyYpOwotICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0
ZUNhbnZhc1JlbmRlcmluZ0NvbnRleHRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBIVE1MQ2Fu
dmFzRWxlbWVudCYpOwotCi0jaWYgRU5BQkxFKFdFQkdMKQotICAgIHN0YXRpYyB2b2lkIGRpZEF0
dGFjaFNoYWRlckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UmLCBXZWJHTFByb2dyYW0mLCBXZWJHTFNoYWRlciYpOwotICAgIHN0YXRpYyB2b2lkIGRp
ZERldGFjaFNoYWRlckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UmLCBXZWJHTFByb2dyYW0mLCBXZWJHTFNoYWRlciYpOwotICAgIHN0YXRpYyB2b2lk
IGRpZENyZWF0ZVByb2dyYW1JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJiwgV2ViR0xQcm9ncmFtJik7Ci0gICAgc3RhdGljIHZvaWQgZGlkRGVsZXRl
UHJvZ3JhbUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UmLCBXZWJHTFByb2dyYW0mKTsKLSNlbmRpZgogCiAgICAgc3RhdGljIHZvaWQgbGF5ZXJUcmVl
RGlkQ2hhbmdlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJik7CiAgICAgc3RhdGljIHZvaWQgcmVu
ZGVyTGF5ZXJEZXN0cm95ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBjb25zdCBSZW5kZXJM
YXllciYpOwpAQCAtNDY1LDcgKzQ1MCw2IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIEluc3RydW1l
bnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHNGb3JQYWdlKFBhZ2UmKTsKICAgICBzdGF0
aWMgSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKEZyYW1l
Jik7CiAgICAgc3RhdGljIEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHNG
b3JGcmFtZShGcmFtZSopOwotICAgIHN0YXRpYyBJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzRm9yUmVuZGVyaW5nQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
Kik7CiAgICAgc3RhdGljIEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHNG
b3JDb250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKICAgICBzdGF0aWMgSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50c0ZvckRvY3VtZW50KERvY3VtZW50Jik7CiAg
ICAgc3RhdGljIEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHNGb3JEb2N1
bWVudChEb2N1bWVudCopOwpAQCAtMTE3MSw3NSArMTE1NSw2IEBAIGlubGluZSB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2VuZFdlYlNvY2tldEZyYW1lKERvY3VtZW50KiBkb2N1
bWVudCwKIH0KICNlbmRpZiAvLyBFTkFCTEUoV0VCX1NPQ0tFVFMpCiAKLWlubGluZSB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlQ1NTQ2FudmFzKEhUTUxDYW52YXNFbGVt
ZW50JiBjYW52YXNFbGVtZW50LCBjb25zdCBTdHJpbmcmIG5hbWUpCi17Ci0jaWYgRU5BQkxFKElO
U1BFQ1RPUikKLSAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JEb2N1bWVudCgmY2FudmFzRWxlbWVudC5kb2N1bWVu
dCgpKSkKLSAgICAgICAgZGlkQ3JlYXRlQ1NTQ2FudmFzSW1wbChpbnN0cnVtZW50aW5nQWdlbnRz
LCBjYW52YXNFbGVtZW50LCBuYW1lKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGNhbnZhc0Vs
ZW1lbnQpOwotICAgIFVOVVNFRF9QQVJBTShuYW1lKTsKLSNlbmRpZgotfQotCi1pbmxpbmUgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZUNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQoSFRNTENhbnZhc0VsZW1lbnQmIGNhbnZhc0VsZW1lbnQpCi17Ci0jaWYgRU5BQkxFKElOU1BF
Q1RPUikKLSAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9
IGluc3RydW1lbnRpbmdBZ2VudHNGb3JEb2N1bWVudCgmY2FudmFzRWxlbWVudC5kb2N1bWVudCgp
KSkKLSAgICAgICAgZGlkQ3JlYXRlQ2FudmFzUmVuZGVyaW5nQ29udGV4dEltcGwoaW5zdHJ1bWVu
dGluZ0FnZW50cywgY2FudmFzRWxlbWVudCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShjYW52
YXNFbGVtZW50KTsKLSNlbmRpZgotfQotCi0jaWYgRU5BQkxFKFdFQkdMKQotaW5saW5lIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRBdHRhY2hTaGFkZXIoV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZSYgY29udGV4dCwgV2ViR0xQcm9ncmFtJiBwcm9ncmFtLCBXZWJHTFNoYWRlciYg
c2hhZGVyKQotewotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yUmVuZGVy
aW5nQ29udGV4dCgmY29udGV4dCkpCi0gICAgICAgIGRpZEF0dGFjaFNoYWRlckltcGwoaW5zdHJ1
bWVudGluZ0FnZW50cywgY29udGV4dCwgcHJvZ3JhbSwgc2hhZGVyKTsKLSNlbHNlCi0gICAgVU5V
U0VEX1BBUkFNKGNvbnRleHQpOwotICAgIFVOVVNFRF9QQVJBTShwcm9ncmFtKTsKLSAgICBVTlVT
RURfUEFSQU0oc2hhZGVyKTsKLSNlbmRpZgotfQotCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZERldGFjaFNoYWRlcihXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBj
b250ZXh0LCBXZWJHTFByb2dyYW0mIHByb2dyYW0sIFdlYkdMU2hhZGVyJiBzaGFkZXIpCi17Ci0j
aWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1
bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JSZW5kZXJpbmdDb250ZXh0KCZj
b250ZXh0KSkKLSAgICAgICAgZGlkRGV0YWNoU2hhZGVySW1wbChpbnN0cnVtZW50aW5nQWdlbnRz
LCBjb250ZXh0LCBwcm9ncmFtLCBzaGFkZXIpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oY29u
dGV4dCk7Ci0gICAgVU5VU0VEX1BBUkFNKHByb2dyYW0pOwotICAgIFVOVVNFRF9QQVJBTShzaGFk
ZXIpOwotI2VuZGlmCi19Ci0KLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZGlkQ3JlYXRlUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBXZWJH
TFByb2dyYW0mIHByb2dyYW0pCi17Ci0jaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2Vu
dHNGb3JSZW5kZXJpbmdDb250ZXh0KCZjb250ZXh0KSkKLSAgICAgICAgZGlkQ3JlYXRlUHJvZ3Jh
bUltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgY29udGV4dCwgcHJvZ3JhbSk7Ci0jZWxzZQotICAg
IFVOVVNFRF9QQVJBTShjb250ZXh0KTsKLSAgICBVTlVTRURfUEFSQU0ocHJvZ3JhbSk7Ci0jZW5k
aWYKLX0KLQotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREZWxldGVQ
cm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQsIFdlYkdMUHJvZ3JhbSYg
cHJvZ3JhbSkKLXsKLSNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnN0cnVtZW50aW5n
QWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvclJlbmRl
cmluZ0NvbnRleHQoJmNvbnRleHQpKQotICAgICAgICBkaWREZWxldGVQcm9ncmFtSW1wbChpbnN0
cnVtZW50aW5nQWdlbnRzLCBjb250ZXh0LCBwcm9ncmFtKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BB
UkFNKGNvbnRleHQpOwotICAgIFVOVVNFRF9QQVJBTShwcm9ncmFtKTsKLSNlbmRpZgotfQotI2Vu
ZGlmCi0KICNpZiBFTkFCTEUoV0VCX1JFUExBWSkKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6c2Vzc2lvbkNyZWF0ZWQoUGFnZSYgcGFnZSwgUmVmUHRyPFJlcGxheVNlc3Np
b24+JiYgc2Vzc2lvbikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnN0cnVtZW50aW5nQWdlbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVt
ZW50aW5nQWdlbnRzLmNwcAppbmRleCA2OTU4MTFhY2NkM2YzM2QxOGU5NTFkYTJiNzc3ZjA1NGY0
ZDk3ODI5Li5lYzA0NjQyMWJmMjZkZDc4ZjQ0ZmM2ZDRjZTY2ZDA5ZmI2MjU1ZGRjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuY3BwCkBAIC00
Niw3ICs0Niw2IEBAIEluc3RydW1lbnRpbmdBZ2VudHM6Okluc3RydW1lbnRpbmdBZ2VudHMoSW5z
cGVjdG9yRW52aXJvbm1lbnQmIGVudmlyb25tZW50KQogICAgIDogbV9lbnZpcm9ubWVudChlbnZp
cm9ubWVudCkKICAgICAsIG1faW5zcGVjdG9yQWdlbnQobnVsbHB0cikKICAgICAsIG1faW5zcGVj
dG9yUGFnZUFnZW50KG51bGxwdHIpCi0gICAgLCBtX2luc3BlY3RvckNhbnZhc0FnZW50KG51bGxw
dHIpCiAgICAgLCBtX2luc3BlY3RvckNTU0FnZW50KG51bGxwdHIpCiAgICAgLCBtX2luc3BlY3Rv
ckxheWVyVHJlZUFnZW50KG51bGxwdHIpCiAgICAgLCBtX3dlYkNvbnNvbGVBZ2VudChudWxscHRy
KQpAQCAtNzMsNyArNzIsNiBAQCB2b2lkIEluc3RydW1lbnRpbmdBZ2VudHM6OnJlc2V0KCkKIHsK
ICAgICBtX2luc3BlY3RvckFnZW50ID0gbnVsbHB0cjsKICAgICBtX2luc3BlY3RvclBhZ2VBZ2Vu
dCA9IG51bGxwdHI7Ci0gICAgbV9pbnNwZWN0b3JDYW52YXNBZ2VudCA9IG51bGxwdHI7CiAgICAg
bV9pbnNwZWN0b3JDU1NBZ2VudCA9IG51bGxwdHI7CiAgICAgbV9pbnNwZWN0b3JMYXllclRyZWVB
Z2VudCA9IG51bGxwdHI7CiAgICAgbV93ZWJDb25zb2xlQWdlbnQgPSBudWxscHRyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgKaW5kZXggYWEyYTRl
MWVmMTA0ZGYzYzdhMzRjZGI1MWRjMzM3ZDdhNmYzZDgzZi4uZjkxYTY4NTllNDc3NWRjMDQ3ODRm
YTMxNzQ4MmIzOGU4ZDk5ZGE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3RydW1lbnRpbmdBZ2VudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
dHJ1bWVudGluZ0FnZW50cy5oCkBAIC00Niw3ICs0Niw2IEBAIGNsYXNzIEluc3BlY3RvckRlYnVn
Z2VyQWdlbnQ7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEluc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudDsKLWNsYXNzIEluc3BlY3RvckNhbnZhc0FnZW50OwogY2xhc3MgSW5zcGVj
dG9yQ1NTQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JET01BZ2VudDsKIGNsYXNzIEluc3BlY3RvckRP
TURlYnVnZ2VyQWdlbnQ7CkBAIC04NCw5ICs4Myw2IEBAIHB1YmxpYzoKICAgICBJbnNwZWN0b3JQ
YWdlQWdlbnQqIGluc3BlY3RvclBhZ2VBZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1faW5zcGVjdG9y
UGFnZUFnZW50OyB9CiAgICAgdm9pZCBzZXRJbnNwZWN0b3JQYWdlQWdlbnQoSW5zcGVjdG9yUGFn
ZUFnZW50KiBhZ2VudCkgeyBtX2luc3BlY3RvclBhZ2VBZ2VudCA9IGFnZW50OyB9CiAKLSAgICBJ
bnNwZWN0b3JDYW52YXNBZ2VudCogaW5zcGVjdG9yQ2FudmFzQWdlbnQoKSBjb25zdCB7IHJldHVy
biBtX2luc3BlY3RvckNhbnZhc0FnZW50OyB9Ci0gICAgdm9pZCBzZXRJbnNwZWN0b3JDYW52YXNB
Z2VudChJbnNwZWN0b3JDYW52YXNBZ2VudCogYWdlbnQpIHsgbV9pbnNwZWN0b3JDYW52YXNBZ2Vu
dCA9IGFnZW50OyB9Ci0KICAgICBJbnNwZWN0b3JDU1NBZ2VudCogaW5zcGVjdG9yQ1NTQWdlbnQo
KSBjb25zdCB7IHJldHVybiBtX2luc3BlY3RvckNTU0FnZW50OyB9CiAgICAgdm9pZCBzZXRJbnNw
ZWN0b3JDU1NBZ2VudChJbnNwZWN0b3JDU1NBZ2VudCogYWdlbnQpIHsgbV9pbnNwZWN0b3JDU1NB
Z2VudCA9IGFnZW50OyB9CiAKQEAgLTE0Nyw3ICsxNDMsNiBAQCBwcml2YXRlOgogCiAgICAgSW5z
cGVjdG9yOjpJbnNwZWN0b3JBZ2VudCogbV9pbnNwZWN0b3JBZ2VudDsKICAgICBJbnNwZWN0b3JQ
YWdlQWdlbnQqIG1faW5zcGVjdG9yUGFnZUFnZW50OwotICAgIEluc3BlY3RvckNhbnZhc0FnZW50
KiBtX2luc3BlY3RvckNhbnZhc0FnZW50OwogICAgIEluc3BlY3RvckNTU0FnZW50KiBtX2luc3Bl
Y3RvckNTU0FnZW50OwogICAgIEluc3BlY3RvckxheWVyVHJlZUFnZW50KiBtX2luc3BlY3Rvckxh
eWVyVHJlZUFnZW50OwogICAgIFdlYkNvbnNvbGVBZ2VudCogbV93ZWJDb25zb2xlQWdlbnQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9s
b2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMv
ZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCAxMGJkZGI3MTI4ODY1MDI0MzJlM2I3
YmEyMmYwZWI5M2QwNGYzOTQ4Li45ZjJlMjBiZmZjODM1OGRlYjBjNTU4YTkwZTQ3MmE5ZTc1YTc0
ZDFhIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDM0CnNjbVYrLTBOd3dOKSZ0VmUxRisp
X3ZtcCtJNnRmcDJrXiFAfkNFfGohT3t2VTF2dCNHMDB9PUBqX1clRkAKCmRlbHRhIDM2MAp6Y21j
YX5md31KKl5NPVF+IWJTYCgzYHp7SzM8P2FrSyYtPzc8V0Z7QipXVWI/dz8jeFNtPzBQX245UHZL
a2pHRjQKekIjUzU4YEdeWlUxNFlyclZ8K3xFcnolWmgpUF5icVlFeCFWV2hoMjUrWmthSE5QaEJ6
NDFHO2hGOyN7WFRza0pOCnpZZDJJelItS0M3XnZNQyUjKyR6P0tXa0Q/WEQ5KyVtPHpORC1QaSEy
T2c7bHQ5JVMoM3tIMUopRiFpWDhNcDhSQApuMGkhLWg8PnVTViZlJSQpRzkpcCRHeChzbUg9RkAx
SXs4N04/JmhVVyktblNDbn1TZCUKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9CYXNlL01haW4uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9CYXNlL01haW4uanMKaW5kZXggZWUxNjYyYmUzODc5ODVhOTU0OTlhZDc3MDE1YzQ0
NmY3ZjJhZTgwZC4uMTlhMmYyOTgwN2Y2MWJiYjFiMDQyOGVjYWRlY2UyNzMwZWUxY2M1MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpA
QCAtNzgsOCArNzgsNiBAQCBXZWJJbnNwZWN0b3IubG9hZGVkID0gZnVuY3Rpb24oKQogICAgICAg
ICBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyUnVudGltZURpc3BhdGNoZXIobmV3IFdlYkluc3Bl
Y3Rvci5SdW50aW1lT2JzZXJ2ZXIpOwogICAgIGlmIChJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVy
UmVwbGF5RGlzcGF0Y2hlcikKICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlclJlcGxh
eURpc3BhdGNoZXIobmV3IFdlYkluc3BlY3Rvci5SZXBsYXlPYnNlcnZlcik7Ci0gICAgaWYgKElu
c3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDYW52YXNEaXNwYXRjaGVyKQotICAgICAgICBJbnNwZWN0
b3JCYWNrZW5kLnJlZ2lzdGVyQ2FudmFzRGlzcGF0Y2hlcihuZXcgV2ViSW5zcGVjdG9yLkNhbnZh
c09ic2VydmVyKTsKIAogICAgIC8vIEVuYWJsZSBhZ2VudHMuCiAgICAgaWYgKHdpbmRvdy5JbnNw
ZWN0b3JBZ2VudCkKQEAgLTExMiw3ICsxMTAsNiBAQCBXZWJJbnNwZWN0b3IubG9hZGVkID0gZnVu
Y3Rpb24oKQogICAgIHRoaXMuZGFzaGJvYXJkTWFuYWdlciA9IG5ldyBXZWJJbnNwZWN0b3IuRGFz
aGJvYXJkTWFuYWdlcjsKICAgICB0aGlzLnByb2JlTWFuYWdlciA9IG5ldyBXZWJJbnNwZWN0b3Iu
UHJvYmVNYW5hZ2VyOwogICAgIHRoaXMucmVwbGF5TWFuYWdlciA9IG5ldyBXZWJJbnNwZWN0b3Iu
UmVwbGF5TWFuYWdlcjsKLSAgICB0aGlzLmNhbnZhc01hbmFnZXIgPSBuZXcgV2ViSW5zcGVjdG9y
LkNhbnZhc01hbmFnZXI7CiAKICAgICAvLyBFbmFibGUgdGhlIENvbnNvbGUgQWdlbnQgYWZ0ZXIg
Y3JlYXRpbmcgdGhlIHNpbmdsZXRvbiBtYW5hZ2Vycy4KICAgICBpZiAod2luZG93LkNvbnNvbGVB
Z2VudCkKQEAgLTM4Niw4ICszODMsNyBAQCBXZWJJbnNwZWN0b3Iuc2lkZWJhclBhbmVsRm9yQ3Vy
cmVudENvbnRlbnRWaWV3ID0gZnVuY3Rpb24oKQogV2ViSW5zcGVjdG9yLnNpZGViYXJQYW5lbEZv
clJlcHJlc2VudGVkT2JqZWN0ID0gZnVuY3Rpb24ocmVwcmVzZW50ZWRPYmplY3QpCiB7CiAgICAg
aWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkZyYW1lIHx8IHJl
cHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlJlc291cmNlIHx8Ci0gICAg
ICAgIHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlNjcmlwdCB8fCBy
ZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Db250ZW50RmxvdyB8fAot
ICAgICAgICByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5DYW52YXMg
fHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuU2hhZGVyUHJvZ3Jh
bSkKKyAgICAgICAgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuU2Ny
aXB0IHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkNvbnRlbnRG
bG93KQogICAgICAgICByZXR1cm4gdGhpcy5yZXNvdXJjZVNpZGViYXJQYW5lbDsKIAogICAgIGlm
IChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlT2Jq
ZWN0IHx8IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkNvb2tpZVN0
b3JhZ2VPYmplY3QgfHwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0Jhc2UvVGVzdC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0Jhc2UvVGVzdC5qcwppbmRleCBkNzg1ZTY0YjU1NTNkZWI3NDlhNDE0ZDE2YjRhNjNlZTUxY2Y4
NDE1Li4yNzMyMDdlZjllODRiMTU3NmI3NWYwYTEyNDFkMTRmODUxNTU1YzRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1Rlc3QuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9UZXN0LmpzCkBAIC00NSw3
ICs0NSw2IEBAIFdlYkluc3BlY3Rvci5sb2FkZWQgPSBmdW5jdGlvbigpCiAgICAgSW5zcGVjdG9y
QmFja2VuZC5yZWdpc3RlclJ1bnRpbWVEaXNwYXRjaGVyKG5ldyBXZWJJbnNwZWN0b3IuUnVudGlt
ZU9ic2VydmVyKTsKICAgICBpZiAoSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlclJlcGxheURpc3Bh
dGNoZXIpCiAgICAgICAgIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJSZXBsYXlEaXNwYXRjaGVy
KG5ldyBXZWJJbnNwZWN0b3IuUmVwbGF5T2JzZXJ2ZXIpOwotICAgIEluc3BlY3RvckJhY2tlbmQu
cmVnaXN0ZXJDYW52YXNEaXNwYXRjaGVyKG5ldyBXZWJJbnNwZWN0b3IuQ2FudmFzT2JzZXJ2ZXIp
OwogCiAgICAgLy8gSW5zdGFudGlhdGUgY29udHJvbGxlcnMgdXNlZCBieSB0ZXN0cy4KICAgICB0
aGlzLmZyYW1lUmVzb3VyY2VNYW5hZ2VyID0gbmV3IFdlYkluc3BlY3Rvci5GcmFtZVJlc291cmNl
TWFuYWdlcjsKQEAgLTU2LDcgKzU1LDYgQEAgV2ViSW5zcGVjdG9yLmxvYWRlZCA9IGZ1bmN0aW9u
KCkKICAgICB0aGlzLmRlYnVnZ2VyTWFuYWdlciA9IG5ldyBXZWJJbnNwZWN0b3IuRGVidWdnZXJN
YW5hZ2VyOwogICAgIHRoaXMucHJvYmVNYW5hZ2VyID0gbmV3IFdlYkluc3BlY3Rvci5Qcm9iZU1h
bmFnZXI7CiAgICAgdGhpcy5yZXBsYXlNYW5hZ2VyID0gbmV3IFdlYkluc3BlY3Rvci5SZXBsYXlN
YW5hZ2VyOwotICAgIHRoaXMuY2FudmFzTWFuYWdlciA9IG5ldyBXZWJJbnNwZWN0b3IuQ2FudmFz
TWFuYWdlcjsKIAogICAgIC8vIEdsb2JhbCBjb250cm9sbGVycy4KICAgICB0aGlzLnF1aWNrQ29u
c29sZSA9IHtleGVjdXRpb25Db250ZXh0SWRlbnRpZmllcjogdW5kZWZpbmVkfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZh
c01hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9s
bGVycy9DYW52YXNNYW5hZ2VyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OTk2
NTFjMmRiNDA2YjU3MjMzZjU1ZDQyZWNjMzFkZWU5NjJjNTRiLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwx
NjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVdlYkluc3BlY3Rvci5DYW52YXNNYW5hZ2VyID0gY2xh
c3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKLXsKLSAgICBjb25z
dHJ1Y3RvcigpCi0gICAgewotICAgICAgICBzdXBlcigpOwotCi0gICAgICAgIFdlYkluc3BlY3Rv
ci5GcmFtZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5GcmFtZS5FdmVudC5NYWluUmVz
b3VyY2VEaWRDaGFuZ2UsIHRoaXMuX21haW5SZXNvdXJjZURpZENoYW5nZSwgdGhpcyk7Ci0KLSAg
ICAgICAgdGhpcy5fd2FpdGluZ0ZvckNhbnZhc2VzUGF5bG9hZCA9IGZhbHNlOwotICAgICAgICB0
aGlzLl9jYW52YXNJZE1hcCA9IG5ldyBNYXA7Ci0KLSAgICAgICAgdGhpcy5faW5pdGlhbGl6ZSgp
OwotICAgIH0KLQotICAgIGNhbnZhc2VzRm9yRnJhbWUoZnJhbWUpCi0gICAgewotICAgICAgICBp
ZiAodGhpcy5fd2FpdGluZ0ZvckNhbnZhc2VzUGF5bG9hZCkKLSAgICAgICAgICAgIHJldHVybiBb
XTsKLQotICAgICAgICB2YXIgY2FudmFzZXMgPSBbXTsKLSAgICAgICAgZm9yICh2YXIgY2FudmFz
IG9mIHRoaXMuX2NhbnZhc0lkTWFwLnZhbHVlcygpKSB7Ci0gICAgICAgICAgICBpZiAoY2FudmFz
LnBhcmVudEZyYW1lLmlkID09PSBmcmFtZS5pZCkKLSAgICAgICAgICAgICAgICBjYW52YXNlcy5w
dXNoKGNhbnZhcyk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGNhbnZhc2VzOwotICAgIH0K
LQotICAgIGNhbnZhc0FkZGVkKGNhbnZhc1BheWxvYWQpCi0gICAgewotICAgICAgICAvLyBDYWxs
ZWQgZnJvbSBXZWJJbnNwZWN0b3IuQ2FudmFzT2JzZXJ2ZXIuCi0gICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KCF0aGlzLl9jYW52YXNJZE1hcC5oYXMoY2FudmFzUGF5bG9hZC5jYW52YXNJZCkpOwotICAg
ICAgICB2YXIgY2FudmFzID0gV2ViSW5zcGVjdG9yLkNhbnZhcy5mcm9tUGF5bG9hZChjYW52YXNQ
YXlsb2FkKTsKLQotICAgICAgICB0aGlzLl9jYW52YXNJZE1hcC5zZXQoY2FudmFzLmlkLCBjYW52
YXMpOwotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3Iu
Q2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNXYXNBZGRlZCwge2NhbnZhczogY2FudmFzfSk7Ci0g
ICAgfQotCi0gICAgY2FudmFzUmVtb3ZlZChjYW52YXNJZGVudGlmaWVyKQotICAgIHsKLSAgICAg
ICAgLy8gQ2FsbGVkIGZyb20gV2ViSW5zcGVjdG9yLkNhbnZhc09ic2VydmVyLgotCi0gICAgICAg
IGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2NhbnZhc0lkTWFwLmhhcyhjYW52YXNJZGVudGlmaWVyKSk7
Ci0gICAgICAgIGlmICghdGhpcy5fY2FudmFzSWRNYXAuaGFzKGNhbnZhc0lkZW50aWZpZXIpKQot
ICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHZhciBjYW52YXMgPSB0aGlzLl9jYW52YXNJ
ZE1hcC50YWtlKGNhbnZhc0lkZW50aWZpZXIpOwotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRU
b0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNXYXNSZW1v
dmVkLCB7Y2FudmFzOiBjYW52YXN9KTsKLSAgICB9Ci0KLSAgICBwcm9ncmFtQ3JlYXRlZChwcm9n
cmFtSWRlbnRpZmllcikKLSAgICB7Ci0gICAgICAgIC8vIENhbGxlZCBmcm9tIFdlYkluc3BlY3Rv
ci5DYW52YXNPYnNlcnZlci4KLQotICAgICAgICB2YXIgY2FudmFzID0gdGhpcy5fY2FudmFzSWRN
YXAuZ2V0KHByb2dyYW1JZGVudGlmaWVyLmNhbnZhc0lkKTsKLSAgICAgICAgY29uc29sZS5hc3Nl
cnQoY2FudmFzKTsKLSAgICAgICAgaWYgKCFjYW52YXMpCi0gICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgY2FudmFzLnByb2dyYW1XYXNDcmVhdGVkKG5ldyBXZWJJbnNwZWN0b3IuU2hhZGVy
UHJvZ3JhbShwcm9ncmFtSWRlbnRpZmllciwgY2FudmFzKSk7Ci0gICAgfQotCi0gICAgcHJvZ3Jh
bURlbGV0ZWQocHJvZ3JhbUlkZW50aWZpZXIpCi0gICAgewotICAgICAgICAvLyBDYWxsZWQgZnJv
bSBXZWJJbnNwZWN0b3IuQ2FudmFzT2JzZXJ2ZXIuCi0KLSAgICAgICAgdmFyIGNhbnZhcyA9IHRo
aXMuX2NhbnZhc0lkTWFwLmdldChwcm9ncmFtSWRlbnRpZmllci5jYW52YXNJZCk7Ci0gICAgICAg
IGNvbnNvbGUuYXNzZXJ0KGNhbnZhcyk7Ci0gICAgICAgIGlmICghY2FudmFzKQotICAgICAgICAg
ICAgcmV0dXJuOwotCi0gICAgICAgIGNhbnZhcy5wcm9ncmFtV2FzRGVsZXRlZChwcm9ncmFtSWRl
bnRpZmllcik7Ci0gICAgfQotCi0gICAgLy8gUHJpdmF0ZQotCi0gICAgX2dldENhbnZhc2VzRm9y
RnJhbWVJZChmcmFtZUlkZW50aWZpZXIpCi0gICAgewotICAgICAgICB2YXIgY2FudmFzZXMgPSBb
XTsKLSAgICAgICAgZm9yICh2YXIgY2FudmFzIG9mIHRoaXMuX2NhbnZhc0lkTWFwLnZhbHVlcygp
KSB7Ci0gICAgICAgICAgICBpZiAoY2FudmFzLnBhcmVudEZyYW1lLmlkID09PSBmcmFtZUlkZW50
aWZpZXIpCi0gICAgICAgICAgICAgICAgY2FudmFzZXMucHVzaChjYW52YXMpOwotICAgICAgICB9
Ci0gICAgICAgIHJldHVybiBjYW52YXNlczsKLSAgICB9Ci0KLSAgICBfaW5pdGlhbGl6ZSgpCi0g
ICAgewotICAgICAgICBpZiAoIXdpbmRvdy5DYW52YXNBZ2VudCkKLSAgICAgICAgICAgIHJldHVy
bjsKLQotICAgICAgICBmb3IgKHZhciBjYW52YXMgb2YgdGhpcy5fY2FudmFzSWRNYXAudmFsdWVz
KCkpCi0gICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0
b3IuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNXYXNSZW1vdmVkLCB7Y2FudmFzOiBjYW52YXN9
KTsKLQotICAgICAgICBXZWJJbnNwZWN0b3IuQ2FudmFzLnJlc2V0VW5pcXVlRGlzcGxheU5hbWVO
dW1iZXJzKCk7Ci0KLSAgICAgICAgdGhpcy5fY2FudmFzSWRNYXAuY2xlYXIoKTsKLSAgICAgICAg
dGhpcy5fd2FpdGluZ0ZvckNhbnZhc2VzUGF5bG9hZCA9IHRydWU7Ci0KLSAgICAgICAgQ2FudmFz
QWdlbnQuZ2V0Q2FudmFzZXModGhpcy5fcHJvY2Vzc0NhbnZhc2VzUGF5bG9hZC5iaW5kKHRoaXMp
KTsKLSAgICB9Ci0KLSAgICBfbWFpblJlc291cmNlRGlkQ2hhbmdlKGV2ZW50KQotICAgIHsKLSAg
ICAgICAgY29uc29sZS5hc3NlcnQoZXZlbnQudGFyZ2V0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9y
LkZyYW1lKTsKLQotICAgICAgICBpZiAoIWV2ZW50LnRhcmdldC5pc01haW5GcmFtZSgpKQotICAg
ICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX2luaXRpYWxpemUoKTsKLSAgICB9Ci0K
LSAgICBfcHJvY2Vzc0NhbnZhc2VzUGF5bG9hZChlcnJvciwgY2FudmFzQXJyYXlQYXlsb2FkKQot
ICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fd2FpdGluZ0ZvckNhbnZhc2VzUGF5
bG9hZCk7Ci0gICAgICAgIHRoaXMuX3dhaXRpbmdGb3JDYW52YXNlc1BheWxvYWQgPSBmYWxzZTsK
LQotICAgICAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoSlNPTi5z
dHJpbmdpZnkoZXJyb3IpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAg
ICAgIGZvciAodmFyIGNhbnZhc1BheWxvYWQgb2YgY2FudmFzQXJyYXlQYXlsb2FkKSB7Ci0gICAg
ICAgICAgICBpZiAoIXRoaXMuX2NhbnZhc0lkTWFwLmhhcyhjYW52YXNQYXlsb2FkLmNhbnZhc0lk
KSkgewotICAgICAgICAgICAgICAgIHZhciBjYW52YXMgPSBXZWJJbnNwZWN0b3IuQ2FudmFzLmZy
b21QYXlsb2FkKGNhbnZhc1BheWxvYWQpOwotICAgICAgICAgICAgICAgIHRoaXMuX2NhbnZhc0lk
TWFwLnNldChjYW52YXMuaWQsIGNhbnZhcyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQot
ICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuQ2FudmFz
TWFuYWdlci5FdmVudC5DYW52YXNlc0F2YWlsYWJsZSk7Ci0gICAgfQotfTsKLQotV2ViSW5zcGVj
dG9yLkNhbnZhc01hbmFnZXIuRXZlbnQgPSB7Ci0gICAgQ2FudmFzZXNBdmFpbGFibGU6ICJjYW52
YXMtbWFuYWdlci1jYW52YXNlcy1hdmFpbGFibGUiLAotICAgIENhbnZhc1dhc0FkZGVkOiAiY2Fu
dmFzLW1hbmFnZXItY2FudmFzLXdhcy1hZGRlZCIsCi0gICAgQ2FudmFzV2FzUmVtb3ZlZDogImNh
bnZhcy1tYW5hZ2VyLWNhbnZhcy13YXMtcmVtb3ZlZCIKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQ2FudmFzLnN2ZyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DYW52YXMuc3ZnCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBjM2FmOGZhMTFjMDg4YmQ2N2ViNWY4ZWU1M2Y5Njc1ZWI2NzFh
ZmEyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DYW52YXMuc3ZnCisrKyAvZGV2
L251bGwKQEAgLTEsNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYt
OCI/PgotPCEtLSBDb3B5cmlnaHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuIC0tPgotPHN2ZyB2aWV3Qm94PSIwIDAgMTQgMTYiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KLSAgICA8cGF0aCBkPSJNIDAuNSA0LjI5ODU3MDQ3
IEwgNy4wOTcxNDA5NSA3LjU5NzE0MDk1IEwgNy4wOTcxNDA5NSAxNS4wMTg5MjQ1IEwgMC41IDEx
LjcyMDM1NCBMIDAuNSA0LjI5ODU3MDQ3IFoiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0i
MC41IiBzdHJva2UtbGluZWNhcD0ic3F1YXJlIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBmaWxs
PSJyZ2IoOTIsIDE0MCwgMjI5KSIvPgotICAgIDxwYXRoIGQ9Ik0gMTMuNjk3IDQuMjk5IEwgNy4w
OTcgNy41OTcgTCA3LjA5NyAxNS4wMTkgTCAxMy42OTcgMTEuNzIgTCAxMy42OTcgNC4yOTkgWiIg
c3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIwLjUiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUi
IHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9InJnYigyNDIsIDk3LCA5NykiLz4KLSAgICA8
cGF0aCBkPSJNIDAuNSA0LjI5ODU3MDQ3IEwgNy4wOTcxNDA5NSAxIEwgMTMuNjkwODkwMSA0LjI5
ODU3MDQ3IEwgNy4wOTcxNDA5NSA3LjU5NzE0MDk1IEwgMC41IDQuMjk4NTcwNDcgWiIgc3Ryb2tl
PSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIwLjUiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9
InJnYig5NywgMjQyLCA5NykiLz4KLTwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0RvY3VtZW50R0wucG5nIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0RvY3VtZW50R0wucG5nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0MDhhZDVhZDczOGExODBkZDg4MjgxNWVmNGQ2Y2MzYWE0Mzkw
N2UxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDIwMDQzCnpjbWVIUDMwTT0/NzlO
R1ZwaCZJUWljNXs1Nn1PUGRCJCtIaWtkUG8kQlp2WHYpb3F3ZUFldi1DR0N+QWIxZWZSOQp6KSh2
LVVlVGVIKj4kNTVxKE49eFd0LWppLWAxeHVkUnFLTFVaRU5mTD9qJlIoMWElKG08TG1uLUFNM3M2
e082d2sKem9IX1UwbmVVc34kd0xNUDJYempEQVNnSTdMNnJpMnplPDAlWTV7KEJ6eUF5YXpnay1v
R0hlamtyVVUpbTN8aFhqCno2OWZnY0dzTUx1Q3VmcnNZMEQtcG9XIV58aj5Tc3E0TXFaaj57YXRW
SThKcys0THZkaVVyQFVFd0g9aW9mND1GOQp6aiZvM0RxRy19YU87UHJecXVVbXZveUlLPmpaa2p0
U3Z7YGMqaHpiUyk9SV9NUzhtTWMjK3chVz87ZEg3bnt+V1YKeklDNk5lI2hWSGpfVzRAZE4/VyRF
aX11OCExdG0pYyRUcig1P3l0SHRAeGgzWiQwcHNGdkY7ek8mYlE2MShHRlVfCnpWXyhuUUMjbzY0
T1YlRE54fmF4P2oyaGtDYXlhPmkxQD9PWkVlP0tLdmcrb3V1bndCQTMxZT14Km12XlMjbFVKcgp6
Y2UtSFJ7TDFuK0NyMUFIYTN8fmpZMzFmRStoV1p6MyZ7e2BtdCkmUT9qWn0kOVk1OWx5VXFzKGpY
RypsWlZNUV4Keno0VUh3cFlDPnVHa1dvfnZqLXdwaiFpcn1lJFNQQEJ8OUcjLWdgRHpeSHJDVjEh
MnFEUj0qJDY2PyZSfHttWkB3CnpMcHYzM1VVZW1KVEopR2prTEBgVlc9UlR2c19Hd2I7RF5maTJV
fj5TT313PHxOKVF9O3EkZDAzMjsjSDdSVCYkRAp6V2ZrUmpSK2swNTB6VkNeZXdaQXdpPVZ1RSE/
ZWopaXt8I1o3SD5adV5RclcrY2hfeT0ybWRKU2V0cT8+PUg9fjUKeiRkTXo8K1dpYCRgenZ6bXE8
Kj5pKk00eEQzJXplN2g8Rm8ybzZxZD9jM3xwVCV8ZyFuVnlEVkp5Z29tfV55ZDd7CnpaKFEldVVi
P2NCK1YjYlhjZUxBWHdtR244UXVQXyhyQXVjUXEzPVZvKWhVYCk7cG1ZUVZUVi1UcDR4ciEoUUVT
Xwp6VUVUV053JnFgWjxKJVhucFFyMEVKODl9JEBBVXBDPmZeIXsjajQ3UzJZeUpIb0wtUHB7ZzVp
R2ltOXImQFN4XiYKeiZHdVdQcEFpRlZ1SHxZNnBJalEpZjhXd3hYKyFhdXtkWXxhUnJDJH5XclRB
NVl8R0hWNXdSY1QzMnZhSGcmYCQjCnp1Q0EwVmZSbVAmcDZIO3p1dX1NcVhsWj1nJjYkaDBhdTRN
blVjUlNZTSVJPjBZbG9YX1F+ITIjPi00bE1DMiFuSwp6JDx0Sjw5bFMjfkhlOSRSZUQ/VlApd195
Uz9SKWZDdkp7X01ZX19XKCllUHlePyY4bG1MKSpyXntkd2wpbFNBNEoKekA0ZkN4WnA4ZWVDR1ZZ
bWNjKkwrSzM+IUlLc0RZbjBSR3Qra15VR2h8RWEoM1BTNWp5M09PKSklJCtsVkVCWU1sCnp5UVhx
MEp9UVh9ZXpwZ2o3JjckY3YyUUM0SXxLS3dkR3pGSCVRNUY3PyozUmtgUHBneSF6WlBxbHxNSXxT
bypYQAp6UyROUmJaQDJtSTh3ZzVfRj0qNE5iakBIblBNUlZ5OWhwZikrRCNVNDlZSWkzak5POWE7
fFBrQU5ue3ohKGNDLXgKekU0VW5rRX1BPUJ0YnNMX0kzbkFTa1omYzE8cXklfmBRdmJ6anZKIzBp
bjdaQWZRZ19takBASzUrdk42V3ReLSNOCnp7LSVmZFQjaUc4OFcrdXRyNDRlQEhPWlZmKG5AZnxr
dGgjYDF0TnxfN0FYKjs1fUJrUTJMYj17VkpSUGhkOVh8Xwp6N1JxNlNRflRqNmcxfSE8Ui1JbStx
S2RDSTJtWHVaVz5iXyEmZ2JYbDx3ZlFSQlN+dShVbSVtb18lT21wNUZVYD0KeiooUjdOJSs1MzAh
a3IqNDkySF4xdHAqRWFBazc+YTd0MThhUV8pOzVaT0h3cF5+Kz4mOCMzRSF4ZFNabj9VO294Cnpo
PWxxNmx5dGFUJDE+aChiU3pEV145ZHRpQkZ2Tng9bjRHbFN6Tld0dHpPNVpkJThpeEFTTjEoZWBW
S3RPKHdzbAp6WkluNn1QKjYqMDlrVlY/bnw2WVE7SE1CYWE9YUJNKVZhV3dhRFUkMHMxKDh6b3RK
PEQ7KG1jQmdUNFZBZFpzfVYKejIpbSZISEcwT1c9RXh+JHNHfFVCQDtFRGpRS1ZIJWwxN0N5VHxO
NTwqaGM4fDxuKz5EeFdQPHNGMUA0cHpEbDBkCnpAISUwRWozTnwzU0hKXmIyJTs1ODx3QWlSa0A4
QHY5RVFDPm9SVTVtOGQ3Sl9QakYjfmNgKDhnaF93TzwwRldhPgp6Wnd4TzxVa3E/NT5NI20+REhM
eTZGQn1+JSpPT0tnTWt4Iz9FUXtiPCV2bik8JiFDczJKMy19ZnE+OzNPV2YyTnQKejZ5TSpsVW9F
Zz5DcCRONiNYIVBMU1BlS1FXdVRIJUpMVjFLQ0Z2SlFPVzNLdyphWDZBXk5LV3h4MSk/R3Y4PWtJ
Cnp0X2g+VFE0VERhKWtlX0M5P2YtU3lTc2s0JUxBP0JhbS08QjJ4Y01fSiZqY1ZvPl4zWEA2fiF7
SiZTYiVgSiZLRQp6WnkzY2Y+eCZZX3I+bUlKQGNWZyUraVo8PCRSOXV4YDcqWVZ1SzNZIURvLXJu
Tzd4ZTZ6NnMoZFNzaENyPmokOFQKemR+c0JqI2B4azdwczlTKD1eR2FwaXl3ZHtAK0hnQU5NSE5g
RiEwNCQrdj04VloqcG08ZFg/VSpybTlHTUpsJUUwCnpuc0xHZ3dzP2pjZiZ5JnhrdmZBOD9BS0RU
a3hOOWQxYzZiaEtwKyN4dENiUUlSaWsyb0ZmTGE0cThqVzVMUy07Mgp6bGYpdmhFTE4lKDI/Uj1r
TlVUIUpQXkRNXiVhQ30xZjFucjlASHt1Xmp6cHU4Q3pAPigyM1NaYElvNHRUUE41UTkKekQzUEhz
NC10WntNNUtwaEpTbkNaQH16X2dNV2tYQjVsY2J6PiMyTG5PRChqXkkpSFliMCgyd307NjBiS1Nj
cHE+CnoyIWBfWEQ2aiF8bDwrVyZLektOVU5EIzRKaTBNNnN5dWopaU8wcFdqQXE2dmYkLUkxa29Q
UEwkc0FuZEBLJlEldAp6eThFZjRjTmorRylFJVd1dDhAMmQpO2w7RlphSWUyaFkkciR4MVdTQWll
RzJjdm4pQHU7MW4+XzU5TiNWdnp9X2gKel88N2xjKn1ISz9VXiMteWd7WjZQYlY1MCM4VjBlRWRN
WGRJNjB1cH1Afmh1ZjQtO3xSNFlrWWh4Kz1jVns7IVBSCnpDSUY7NG0je0prMGNhOUl5R1BMLXJy
dGBMSVBUdDxMeTtXSlZsZihVakUqZm8qUX4yT0hvN2tkbSVDbVZ8M2hERwp6U1oqVXpPKFlWQ1dH
Yk9SKUtEcT4hPjFhWlI4QS1HWXxOWlI9b0VaYyZ8Q3c1cT08PmRzN0A/SV5nSjtsMChCbkUKeiU7
YVVGZEojX35rJTxWWTFRVmskO199YXt3KW5jfVZafkotOGFrRSE3NnJvSnZEPUNKezQoS0xyN0tp
VDg5VGh1CnptRXtHK2dzd080O15QV3AoXk04NklJPVVURW5jZzEpNUxMOSg/NT5TampwQ0kqTXQy
Ujc0YHI2K0kwMjtiLU9XRgp6ciZfO3piRzUwP3tFVm1mWXIxQ3hgUypld0p6eF82Y1BIZ3VISVom
Tj5ES3ZXT1JBNTBvc3dGTTR3X31oNXY4XjwKemY0UzMhYjc1WXB7KmNNV3c5OEhsZWpxJVNUI1R6
YyNDbW5kUVNAekVJcTBgUnxMNXExNnlSYEVaX0VxTEZfJXU/CnpiMkU7Ml51XiQ7MTxQUSowMHk2
MFJxdHRFKXJ7dz5kUWJiUmROZm5iMjEpXlRMJnN1I2hQfH10ZCYkbipvV3NFTAp6NkdETkMjWEBs
dS0qP3pvQmlVZGxqT2kpXklGajF2JlI+QW0+aUFDaFJtXkJlKFFCZXMoUnFQKko/VUArI3lKWH0K
enFrdTteZUReYVB1YjY/Jl5ZezlBSm8+I1gwOUA3eEJYVWB+U2heVDd6KHw8UUV8eEF2M0B7UkF2
eH12UjVkKH5iCnorM2FISlYjRUw9VkslIzF4KT9GUU5TTXRvbU0lc05GY04wN2k9flNaMUJgXig+
fCpJKyF+aTI8SG9JODU3JXsqfAp6bjlWTWhFPUNNNjVAeGZEckhjXipqRCo/alYoRFZVMDMlXkd5
SThzeUZ+Q1RlJWBUUU1NaHF8I1gwd1o+aXhDNWkKemd4VHozPjAtbkhCVmpoWFNoXlQ3eih8PFFF
fHhBdjNAe1JBdnh9dlI1ZCh+YnBQT0FscDBeP3FYN0RQY0puK3Q9CnotMVdiZGdaQ3dJQFByZiUx
ZXVtV2tabkUkLTdBMmdxQUNiN0ZNXjtlb2dxalYwWVBESmxxN2JZMHp1NztpSzx3dwp6eT12fFUo
U3Jecmh0NjFJeUluST05ZykrMVgxbEw5JS1PdDhkTiQrSXM7KlNkXnxjazFXeipMXz9JN3ZhWnt6
ZTIKeklJWXF3dWVNak5EXiNtYTxpTHdSK1NAVXRzT1k7JVlvYTlHR3hnQXtnbEB+bWU3NVhEPmk2
WUktSUEjTm15UmNJCnp5a3JqTncme2AzblpzM1hLWCpKKFJXIUxHRE9BMGJ5RTl1fnZmX0tvZEQr
cW4rSyNDa1FwI1JjcERDV3pAM0c8WAp6cj5BKzl2Vm1wVj1BOHlDSWRPfklHV28wYnJseEl2V3gl
PipYeUwrWEBAc2B0QDMrTFdDVXB+akkzbl4oQlAjeCsKelhsUlJiZDhZPyEjODl1LT1ZJDhWUWdj
cjJENmt5VFRyMGolbEd5RysrTFhmOXopWjkzVzAoSk98SXFhX3VkZ2ItCnpPYGEpT0BaaW5WQ2xA
KFNFLU4ybDFGOG43MTU9NX49SCp2dnM9cmIwUFA9eCRaK3ZSfF9sJjFjQnNgck4tfVVIewp6KWYt
TCpiWGhIKEFEckRiZXtWP1pHNUU4Jk08MmJyWD9PblpkMmZaYTQlPjEqQ2dTZmArbTJHfWY7JEJx
bmZCVnsKcF9zNU1zKnojX1JAX19CcnxNPnY9PGtiRjZwRmpMezNIPyY1TUQtQldIc3pTWXt7VWkk
dkVLankKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9J
bWFnZXMvRG9jdW1lbnRHTEAyeC5wbmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9JbWFnZXMvRG9jdW1lbnRHTEAyeC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDdjMDA2ZTM4MWY0N2JkMTFiODU3YzdkMmJiZmFiODE2ZWI3NWE2OTAuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAK
SGNtVj9kMDAwMDEKCmxpdGVyYWwgMjA1MzUKemNtZUk0MzBNPT83UlFIMHcxfWRXeCtAX25DPnBZ
ZEJ0ayQ0Mnh0JXk2eEBmJjFPajkrMkBudVU8IU9iZ1NvZm0xCnoqTjMhPDN0RSpiaT8oWDN4VXt3
XlJCYzd6REkhV3l0RD9TfWdpSGQ0Y0tZYWhldHFCTTZTPj91PVlRdz8/d3hiYgp6T3VsYiYhYV50
WnZMOT5AS35TJllBWW5OOFAxNjFKdW1rX0EpNiFiTnVYbUl8KFB7fGwqLSFVbDEjUWU5MnRoV3oK
enJUK2U1VlF+dExMTEh9Mmw3anZITmxLTU1CMjdkZ05MI2dIJXtqJThOVDxgOCRqWDlzPztmWile
en48Iy1kbzE7CnozdWF+UDdBPWxUSTgoSGFHY2FNSmxiaGRYdH5DaEAmc0oqRlYpRiU4eTUwTTU3
JHd7THcjKVFadE1+M0AmNnpRSgp6LURnPUp5WjshYEJjZ0Vra2NqZ3FTTFV0djwkYk8kYCptfHVg
cVNCUyZTdT5FYVFuQUN0fnRhc01vaWpxcHV7ISMKenJTUVdVZEUzZXRIdzNeMz1GWVFMbyhnLWtR
cm0xfVNBSFVJYkhuUkZ7WH5PTz1paiQwc1hTWTRUZi0xdlQofntBCno7JnsqVmIzUXNYUTEjYGE8
TUtVNDZYWlQwRDshbHImaEIkO1dfKjEwK3koMTlnVWN0KUp0T2xndllFV0U7OTtgNgp6dmxiJUZU
ZXMqK3NhdC0wQFJnKF53UFcpUnpRfTVSeTxHSWVrampPRks1P2o3WjhIPmw2P2dhaHZFQHohbXdk
anQKekhmNTNie0kjdngxKnpHZFMmeXM2K210QDQyejxKU2NfO25HK0ZFO0J1aFdmajRZU2QmaiNX
a1A/IV94Ui1uNkNBCnpyV0BeKmVhLVZRd188QTg7YSFXfnVVb3ZfeSpeTlQmZ1RVOHQ2QUdXcXhO
Y0hJXlckPVk8O3xVbz9fME4hcnNwdQp6I3JxbGVEPHZEeyYmSlZ1VUxTS1doKCQ/dnZSPip3JH5K
UE9tRSt+I3czQD01Y1hPajwhKmYzJGFNel9USEBgcXIKemR9JmlpTHtVU30oanlyKW16ZyhpVHZe
TG00ZV8+d2kjQ3Rvb0lYRzNyMHx5dWhwUyhfeVcmT04tbHE+bEg7KURPCnpVOXd8XnhMP2tjNEBR
UUpgUEEhQil9fCVHaXQ1cndMR01RYDQ2a3t2JCpTX0hEIWN4KUBuWWs/YH0xQy02QzNOMwp6QlBM
Z0Z1cE04clZmNkg9JGtPcX09fXY7TnchaDh4K21XTjNZQ0ModnJ6IU0lb093Kmd5ayZMeXlwXjtt
OHc8fCYKemxVJmJkLWVQU0Nib2V9Ry1DcHZedntNXzhecDF8KjZRazxhdXIyYjd5MW9DSFVZakBJ
VlIod0RZfUAxbTtga0JGCnpKdEswaWBQTExLNSV6VSlTLSUxS1YyTkJDQFMtdHZUPF97OTMjS353
a05QXzE9Z1FFWUdzYkx4bmUzTGtjPlNzPwp6dmt2a21BeFI+SyhpKV9ANGVkI3lUVTBDT19+WV43
Q2Y5Mi05WlBmT0goaj5mPFglMkBZc0ZxPD9pNTlAKkdKJVYKeiRFZ2l4ZjJvaWp2Xn09PCNtaDZA
PVU7VnUqaSFUVT54PE9xRkFMYFJKK1ZxSmN4NntPIXY0b21KJEslTXByOUFoCnpoJHV+elhmaHZC
JFVJPU5BX24hKSU5UCtiZio+eSt0ckE4T1B6QDt0amdgdjEkeFVDRGt4NWRxSCtjcUlMPSEzZgp6
KEt1O1BuaEtxazc4LSUxQl9LUjgqKypkU3JSNCh3OExFTHZUM01vOCZEVk85Xn0ya30pXiRfS0Ip
eTN5IUo5bG0Kekh5fGxXNmhgdF9zOEFCeWdGYGBSYlFafno9UnMkNEpiOWt1TkRTfmRtQnl0cVhj
UVdjJnR+I3oze3U7TkVVKlZICnpGT151cjQ7S2N1NEZ+QDZDZFgrc048TmpFbDlKKykhdF93NlZ5
U2M8azRMMzNzMDs9TFNXd2lkYXQqQWQka2loWgp6QjFSbntzenl7JnJBRGZkbFhTWHBqM1A8bk8o
eUZHIWFpK3IkJn1iWWEmO1IhSyN7NzJsfmxTMWpjVW5CajlAOz4KekJ2cXBSKVdpckNPKzttPVQl
IWhsYmM9cFVXQTRKLStZTn53P3NRLTxDbkF3JFhYRStHV0VPezNZWFh1MWY7T2I+CnpoQmJQc0JU
fChwSDVecWRsMml5OWtQSmNAVkpVakdDTEFAKjRofF9gWmMjYGhtMnskYEpKS2x4UjRlVm9PP1Ns
TAp6cmU5TnJzckNaVWAySCNzKStrZ0YzUHF5OHV2fF8xMi1ycSslYWIlKDFTMytwWmdVeXFNZVhR
aFN+P35AUjB3Tk8KejBxfl8keiZ7MmZnM2plTD4zbGt1TGdWc2pHJjIhe1dke3dCTE0pWX04YTNE
eThpUFYtTjY8YV8zPzgyanRgbjFuCnpuUG89fWE0Q3ZtNFU5fDArfTJELWpQTkIybD8+SmhxJXRA
YnI3R3BJVVF8PTNuSSpQQmBUbU1UZyRrUyZEcXduMQp6RXA9UDsweX1uP1ZaIzxvTUNHVlRpamN4
NWBqT2lEJSFTTT5FaDxIelRGcW9RNjstTHRXKldANUs4XlVudkYmP30KejJOST9GYmZBUClZRS13
X3l+KVBhal56KDVKP01OKWYkN0h6Zz1NSX5IQm1GKEhDOGo7e0FeN31PKCU7OWJ5VSV2CnpkZ20o
b3FhOVZlc0pia2NERTtxNmd7YWtDMyZAaGRUWiQjVmk9a05YZUBsX1hDVSRMN0VjbX5yTmFCP3Ny
JnprMgp6SXhjayFtITFCVUVlWDcoU29IYV5FM3NHLWN3NGNFQzAmfnJyM0hidjZpY2tNaT9MVnxf
IUZAaHZVS34rI35pTHMKej5Xd3sxUzUxZ1N7OXc2UzFJck9LU1NTRDs5I1d+OEZPaUB1TW9mJCsj
Z29IalFka0lBT3lTYUtPaSh8PTkzR3VQCnpWQHFmKGVUbVdELUU9ezxOZWRON2xDQ1RUKHVOOU50
VSFSZ1gjdkFAbCpWUj9RSHEyXjxBRi1YKH58PGpEMShBOQp6N0BpRWFnYjdReTBJY0NXJkJXZHFY
b15ZLVpaUDBQR2FGcWpWbFlAPmZNKn5PWDM7enVHIUI8ZT1kbDk9ezUoMEYKejAxbGhaXnE9NW9s
KCEpOSN4T3hySEteb0wrd1g8P2VTYUZkcG5iMHtuSFlBP0tlekFlaSlCOEg9eCFoY2hefS0qCnoj
YWA1UXl7Nk1MWlMpMk0+Nj1zZSRLayk+K1BRdjg5NGE/Mkl2RiVqYXE9MFVlbCEkfTF9VksmPU9T
dV9NM1Z4bQp6JjxVfCVXeFFEdFBoKmo9ViVRalhkelgmVmV7RzQ8NG1GflhDIT94QUdYPGMpMUVy
Y3FSfjxASjNLPEVqWWVeYWYKejMwNWktcjNrRT5UV1lkZys7Kz17VEBKPUAlezJhcHY4dihaRS10
bWVLZjJRWF9EZkI3UlUzanA7JFYzIURpJTxVCnpsVjxHckpJeHJJN1E7anQydHEte1khLSF1QX5Y
c1FtTXwkWDM9VzZLOyZFOXFKaTBNSHYpc30jTD16UWJnNlFteQp6QH49bmBtVHM5MXkxJDwkT2xO
N0ZzPCUwSlVDJTZra1c2Jj4yMWBFMU5xanEqTUdTN1l8NGVRJUo0Kn1gTnVOI3MKekp+NE1Xbzhx
ZyV7KTNHQWV8PkVsWUp2OUVuNmJpcHZ3QWFAc2ZQNiNzTjFofkg1KnVlZkFFazdZeSNsUEJIdGAw
Cno4Y1MhcURZYilweU9pM2Q0dkotQ15eQ3VtSEpxNTR0MGlTY1NJVDk+Mm9Ad3ZCTj5TY088Pktj
Vj12dCFSejllPQp6TEgoeiVnIz0pZWQ4NXh2T0BBeShfcTs0SU5uYU8oUWw3QDZRUnlgQlg+JkN7
K3xmMXFfZyYyb2NYVHkqTSNgbGMKejBpJGlTNCY3IzZ5NjM9I04waWdSY09SJkwhKTd6dFVldTE9
OVgtT05Tfk18QUM8UyoqWUYqe2UxUzlFdkl2JWotCno3flBxcCo/fjRrIXYkallFcm90ITQ4N254
NWIqVTI3NW8waFl8Z01kamxhSE9pcy1NYCN1U01gRmNmJGkxVEgrMwp6RmRHNkZoNX1FNno9ZWty
VzwlaEBQfmQ0MHhiUlRJWXpTTiEzT28lMDdhbUhPNFNAP29mdX0qPiFiMXRPQSNoPFIKekBIN1px
Y3FtfnUxVEc4KG8oNiNuNDwqY296PWZmfSg7I3IrcEBpOEd4RylyVzhVIXZwbHJTM3Q3bHJ+KWdU
Ukd7Cno1QHRpLSFjZ0Y4NVYtSkEhZlhnITd6I1dNMHY4QGltPEBwb0x4SEQzO0tELSp2bXRPe0RE
WDUwVHpEdjlIVXVzVgp6MSljX2gzbEFtQ2hRTmlQenwkYWI7aH1gdDVWJFpEY3AzeVFKZGBqUzB2
Q24/UGxMZFBoWjFIKDtLRVNnWCVNKloKelB7TTJvVG8/Kkdqby15KForZkU8RGhJRElOJilYSCR7
PTVeMW4pV2BBd2w2SDIkRnBRLVhvUl5MQ3AmeFhtSiQ7CnokPTU8cT9PK0lFeDxTeU8wZVFoZ0dy
YE5tQGBIc0ZCRDdWOSl7RWsxTT4/SSF0U2BPI0VJbHZ4eUhDLSQofHpmTQp6QTAzciQrVXprfmI5
dT4tRzRIbFU5VT5vbnIlMVMjPGchKkFQcU9tNzlvVk5lRHE+V089Wj5SJj91SmszQHFAaXwKej07
cjEwWl5VKXo+ZnBLPzRYKUlAJHV+elRAPnxOcy1LXmM1bDNBYm15OGlyb2gobzBkZDVTZlV6dFd6
alNicHFrCnpAYWtkdipOPEhuUWFvfGdWQzIld0A4ZWo/SVVDeytLZmw9MChzREZBVUE4PjAkPEVn
KiFoUEtjdEwxZDxtWmMzUAp6PDB6RUp3WkE/YUdIY2M+SHtxUlNgfTw2USs9UkEkZDkxMHpPRVp6
Xns7UHIoUzV9SkwqTSg+IzU9blQxQ0BSfngKeitlcnUtejNiQTxlbVRQSUdjYHszLVIkaF8/aVVz
bzI0RFBERDNsTkgyMEtyT0tNNHpndDJ3emZWZE1IdzRPI1YjCnpfPHAqOz1mSk88e2F4LVNaKDNe
QXIqRXJBJGpFb1czMW58dXlROGVeKV5LTyV0dl5MNF50Xm83eTQzemFsKjJBMwp6YSthKW1BYWJA
PV8yYWNgcEVUdzhXKjBmZE8/TWYqVnMmVzJwa2MjeWdea3tKYDFGRkkyZTBwOGR3STEhYz1GYFEK
el5zcj9pPClvNT4yTTt6TVliWTVlYXchYCZWOERQZThfciNjWE1iREVYbFE1e2gkeDJedW8jVHlF
UENEMkYjRk5GCnpffHs8fHQzcX1LeHZzZz1rYVhgY3pvX0EwTnkpY1dSZkFfWGVEQ3xiUjE1dzVs
QTN3QD5CK0w9dVlUJXQ/MGN6RAp6b0QjXipfMX0zSitWNXV0K143SGlWQldkYj04M0NUUCNta2pO
WGZYZkRMbW9DYyhpR21ePE1TJUxGRy1vZWY/NEAKelZFZHkobEpkMnpLRyhXR2pCSHRYQHs3Zz8t
S1E9JWM1OygqYGw7S2hCP1ZqNDdTQjNUZT5Da0djP1EqeTlxVDswCnplQ2ZSJithZWRtQDRZYmdz
P1Z0I3lWWjNTIXtzLSZSS0c2elpCdHxJJT1Kc3FYemlBKHtlNmVvVTIxKnQ/Nz1Newp6S2lzP2Ut
MkpjRUg7Kj0tRkhKJDBgaWU4UlAmMlBpZHwxNzg2NjdGUip0ZjQ7YW1JXzB4NmJYVlAySmI4Z20z
K04KelhXcTJDOE0zT3wmMGtQe3heUUx0ZGs+dm8rR2htSjk0bjghbFdCOXZIR2twMTlIMyZLUzBW
MCQ+UTc4NV5aOU51CnpUbyk0OCZCSlRgKkV0aSVjKzVFWj0kbi04P2wrbjZlKE9kRSMyRDtXUVEy
Xm5vOVZHXk8/TENgVHxGMVljZE8rcgp6e1BmKF5hcF40PUNQOTxhVFBhWVgqa1JSKSREdW9TMkxJ
TXQ/ZmwpRT84fEdpN3NQSjJFaWJPYD9tekVWaVFVPGoKemU7IWxzdikhfGJtJGRyRyt8c1lFbXY7
Qk5tMHUjcitVR2lWPWdleGN7UVh0U1JAUVRLX202KSRIZ3JedGdaQ3JsCnpuSVhnMHl0QzNMMyts
ZiVlNHE2cjxZdDBSNmdNb2NkQHQ5azE8RkN9YzNWWHZsbFBgUkR6ayM1e2V2PzZLSFFNNApRZHgy
U1NLJllfRForX09sMFRhdTxoNSFIbgoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbCBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01haW4uaHRtbAppbmRleCBlYmJiMjdkOTExMTRlYTI1NjgwNDEyNTgzNTBmZGQxZmM2
YTlhY2IwLi4wMjg0NjdmMTU2NmFhMTc0N2VjYzk2MDkzY2NhYzhkYmRhMDllNWM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCkBAIC0xODgsNyAr
MTg4LDYgQEAKIAogICAgIDxzY3JpcHQgc3JjPSJQcm90b2NvbC9BcHBsaWNhdGlvbkNhY2hlT2Jz
ZXJ2ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJQcm90b2NvbC9DU1NPYnNlcnZl
ci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlByb3RvY29sL0NhbnZhc09ic2VydmVy
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUHJvdG9jb2wvQ29uc29sZU9ic2VydmVy
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUHJvdG9jb2wvRE9NT2JzZXJ2ZXIuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJQcm90b2NvbC9ET01TdG9yYWdlT2JzZXJ2ZXIu
anMiPjwvc2NyaXB0PgpAQCAtMjI4LDcgKzIyNyw2IEBACiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVs
cy9DU1NTdHlsZURlY2xhcmF0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9k
ZWxzL0NTU1N0eWxlU2hlZXQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMv
Q2FsbEZyYW1lLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NhbnZhcy5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uRW50cnkuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvbkVudHJ5UHJldmll
dy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xvci5qcyI+PC9zY3Jp
cHQ+CkBAIC0yODMsNyArMjgxLDYgQEAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1NjcmlwdFN5
bnRheFRyZWUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvU2NyaXB0VGlt
ZWxpbmVSZWNvcmQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvU2V0dGlu
Zy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9TaGFkZXJQcm9ncmFtLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1NvdXJjZUNvZGVQb3NpdGlvbi5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Tb3VyY2VDb2RlUmV2aXNpb24u
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvU291cmNlQ29kZVNlYXJjaE1h
dGNoT2JqZWN0LmpzIj48L3NjcmlwdD4KQEAgLTI5Nyw3ICsyOTQsNiBAQAogICAgIDxzY3JpcHQg
c3JjPSJNb2RlbHMvVGltZWxpbmVSZWNvcmRpbmcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJNb2RlbHMvVHlwZVNldC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVs
cy9Vbml0QmV6aWVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1dlYkdM
Q29udGV4dEF0dHJpYnV0ZXMuanMiPjwvc2NyaXB0PgogCiAgICAgPHNjcmlwdCBzcmM9IlZpZXdz
L0xlZ2FjeUNvbnNvbGVNZXNzYWdlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmll
d3MvQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgpAQCAtMzI4LDcgKzMyNCw2IEBACiAgICAgPHNj
cmlwdCBzcmM9IlZpZXdzL09iamVjdFRyZWVCYXNlVHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9Gb2xkZXJUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IlZpZXdzL0ZvbGRlcml6ZWRUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+
Ci0gICAgPHNjcmlwdCBzcmM9IlZpZXdzL1NoYWRlclByb2dyYW1UcmVlRWxlbWVudC5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1NvdXJjZUNvZGVUcmVlRWxlbWVudC5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1N0b3JhZ2VUcmVlRWxlbWVudC5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1RpbWVsaW5lUmVjb3JkVHJlZUVsZW1l
bnQuanMiPjwvc2NyaXB0PgpAQCAtMzQ5LDcgKzM0NCw2IEBACiAgICAgPHNjcmlwdCBzcmM9IlZp
ZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iVmlld3MvQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQ2FsbEZyYW1lVHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0
PgotICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9DYW52YXNUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0NsdXN0ZXJDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0NvZGVNaXJyb3JBZGRpdGlvbnMuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9Db2RlTWlycm9yRm9ybWF0dGVycy5qcyI+PC9zY3Jp
cHQ+CkBAIC01MDIsNyArNDk2LDYgQEAKICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQmFz
aWNCbG9ja0Fubm90YXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xs
ZXJzL0JyYW5jaE1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9s
bGVycy9DU1NTdHlsZU1hbmFnZXIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJDb250
cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29u
dHJvbGxlcnMvQ29kZU1pcnJvckNvbG9yRWRpdGluZ0NvbnRyb2xsZXIuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9Db2RlTWlycm9yQ29tcGxldGlvbkNvbnRyb2xs
ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9Db2RlTWlycm9y
RHJhZ1RvQWRqdXN0TnVtYmVyQ29udHJvbGxlci5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbnZhcy5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTZjODBjZWIyYzk1OWE5MjRkYWU1MjQ2ZTMyYjZkYzA4
MGYwNWU0Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FudmFzLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTk2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1XZWJJbnNwZWN0b3IuQ2Fu
dmFzID0gY2xhc3MgQ2FudmFzIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAotewotICAgIGNv
bnN0cnVjdG9yKGlkLCBwYXJlbnRGcmFtZSwgbmFtZSwgY3NzQ2FudmFzLCBjb250ZXh0VHlwZSwg
Y29udGV4dEF0dHJpYnV0ZXMsIHByb2dyYW1zKQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLQot
ICAgICAgICBjb25zb2xlLmFzc2VydChpZCk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHBhcmVu
dEZyYW1lKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoY29udGV4dFR5cGUpOwotICAgICAgICBj
b25zb2xlLmFzc2VydCh0aGlzLl9jb250ZXh0VHlwZSAhPT0gV2ViSW5zcGVjdG9yLkNhbnZhcy5D
b250ZXh0VHlwZS5XZWJHTCB8fCBjb250ZXh0QXR0cmlidXRlcyk7Ci0KLSAgICAgICAgdGhpcy5f
aWQgPSBpZDsKLSAgICAgICAgdGhpcy5fcGFyZW50RnJhbWUgPSBwYXJlbnRGcmFtZTsKLSAgICAg
ICAgdGhpcy5fbmFtZSA9IG5hbWU7Ci0gICAgICAgIHRoaXMuX2Nzc0NhbnZhcyA9IGNzc0NhbnZh
czsKLSAgICAgICAgdGhpcy5fY29udGV4dFR5cGUgPSBjb250ZXh0VHlwZTsKLSAgICAgICAgdGhp
cy5fY29udGV4dEF0dHJpYnV0ZXMgPSBjb250ZXh0QXR0cmlidXRlczsKLSAgICAgICAgdGhpcy5f
cHJvZ3JhbXMgPSBuZXcgTWFwOwotCi0gICAgICAgIGlmIChwcm9ncmFtcykgewotICAgICAgICAg
ICAgZm9yICh2YXIgcHJvZ3JhbSBvZiBwcm9ncmFtcykgewotICAgICAgICAgICAgICAgIHByb2dy
YW0udXBkYXRlQ2FudmFzKHRoaXMpOwotICAgICAgICAgICAgICAgIHRoaXMuX3Byb2dyYW1zLnNl
dChwcm9ncmFtLmlkLm9iamVjdElkLCBwcm9ncmFtKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgIH0KLQotICAgIC8vIFN0YXRpYwotCi0gICAgc3RhdGljIGZyb21QYXlsb2FkKHBheWxv
YWQpCi0gICAgewotICAgICAgICB2YXIgcGFyZW50RnJhbWUgPSBXZWJJbnNwZWN0b3IuZnJhbWVS
ZXNvdXJjZU1hbmFnZXIuZnJhbWVGb3JJZGVudGlmaWVyKHBheWxvYWQuZnJhbWVJZCk7Ci0gICAg
ICAgIHZhciBjb250ZXh0VHlwZSA9IG51bGw7Ci0gICAgICAgIHN3aXRjaCAocGF5bG9hZC5jb250
ZXh0VHlwZSkgewotICAgICAgICAgICAgY2FzZSBDYW52YXNBZ2VudC5Db250ZXh0VHlwZS5DYW52
YXMyRDoKLSAgICAgICAgICAgICAgICBjb250ZXh0VHlwZSA9IFdlYkluc3BlY3Rvci5DYW52YXMu
Q29udGV4dFR5cGUuQ2FudmFzMkQ7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICBjYXNlIENhbnZhc0FnZW50LkNvbnRleHRUeXBlLldlYkdMOgotICAgICAgICAgICAgICAgIGNv
bnRleHRUeXBlID0gV2ViSW5zcGVjdG9yLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTDsKLSAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAg
Y29uc29sZS5lcnJvcigiSW52YWxpZCBjYW52YXMgY29udGV4dCB0eXBlIiwgcGF5bG9hZC5jb250
ZXh0VHlwZSk7Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgcHJvZ3JhbXMgPSBbXTsKLSAgICAg
ICAgZm9yICh2YXIgcHJvZ3JhbUlkIG9mIHBheWxvYWQucHJvZ3JhbUlkcykKLSAgICAgICAgICAg
IHByb2dyYW1zLnB1c2gobmV3IFdlYkluc3BlY3Rvci5TaGFkZXJQcm9ncmFtKHByb2dyYW1JZCkp
OwotCi0gICAgICAgIHZhciBjb250ZXh0QXR0cmlidXRlcyA9IG51bGw7Ci0gICAgICAgIGlmIChw
YXlsb2FkLmNvbnRleHRBdHRyaWJ1dGVzKSB7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydChj
b250ZXh0VHlwZSA9PT0gV2ViSW5zcGVjdG9yLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHTCk7Ci0g
ICAgICAgICAgICBjb250ZXh0QXR0cmlidXRlcyA9IFdlYkluc3BlY3Rvci5XZWJHTENvbnRleHRB
dHRyaWJ1dGVzLmZyb21QYXlsb2FkKHBheWxvYWQuY29udGV4dEF0dHJpYnV0ZXMpOwotICAgICAg
ICB9Ci0KLSAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuQ2FudmFzKHBheWxvYWQuY2Fu
dmFzSWQsIHBhcmVudEZyYW1lLCBwYXlsb2FkLm5hbWUsIHBheWxvYWQuY3NzQ2FudmFzLCBjb250
ZXh0VHlwZSwgY29udGV4dEF0dHJpYnV0ZXMsIHByb2dyYW1zKTsKLSAgICB9Ci0KLSAgICBzdGF0
aWMgZGlzcGxheU5hbWVGb3JDb250ZXh0VHlwZShjb250ZXh0VHlwZSkKLSAgICB7Ci0gICAgICAg
IHN3aXRjaCAoY29udGV4dFR5cGUpIHsKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNh
bnZhcy5Db250ZXh0VHlwZS5DYW52YXMyRDoKLSAgICAgICAgICAgICAgICByZXR1cm4gV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCIyRCIpOwotICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ2Fu
dmFzLkNvbnRleHRUeXBlLldlYkdMOgotICAgICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIldlYkdMIik7Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAg
ICAgIGNvbnNvbGUuZXJyb3IoIkludmFsaWQgY2FudmFzIGNvbnRleHQgdHlwZSIsIGNvbnRleHRU
eXBlKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHN0YXRpYyByZXNldFVuaXF1ZURpc3BsYXlO
YW1lTnVtYmVycygpCi0gICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuQ2FudmFzLl9uZXh0VW5p
cXVlRGlzcGxheU5hbWVOdW1iZXIgPSAxOwotICAgIH0KLQotICAgIC8vIFB1YmxpYwotCi0gICAg
Z2V0IGlkKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9pZDsKLSAgICB9Ci0KLSAgICBn
ZXQgcGFyZW50RnJhbWUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudEZyYW1l
OwotICAgIH0KLQotICAgIGdldCBuYW1lKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9u
YW1lOwotICAgIH0KLQotICAgIGdldCBjc3NDYW52YXMoKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IHRoaXMuX2Nzc0NhbnZhczsKLSAgICB9Ci0KLSAgICBnZXQgY29udGV4dFR5cGUoKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRleHRUeXBlOwotICAgIH0KLQotICAgIGdldCBjb250
ZXh0QXR0cmlidXRlcygpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fY29udGV4dEF0dHJp
YnV0ZXM7Ci0gICAgfQotCi0gICAgZ2V0IHByb2dyYW1zKCkKLSAgICB7Ci0gICAgICAgIHZhciBw
cm9ncmFtcyA9IFtdOwotICAgICAgICBmb3IgKHZhciBwcm9ncmFtIG9mIHRoaXMuX3Byb2dyYW1z
LnZhbHVlcygpKQotICAgICAgICAgICAgcHJvZ3JhbXMucHVzaChwcm9ncmFtKTsKLSAgICAgICAg
cmV0dXJuIHByb2dyYW1zOwotICAgIH0KLQotICAgIGdldCBkaXNwbGF5TmFtZSgpCi0gICAgewot
ICAgICAgICBpZiAodGhpcy5fY3NzQ2FudmFzKQotICAgICAgICAgICAgcmV0dXJuIFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiQ1NTIGNhbnZhcyDigJwlc+KAnSIpLmZvcm1hdCh0aGlzLl9uYW1lKTsK
LQotICAgICAgICBpZiAodGhpcy5fbmFtZSkKLSAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIkNhbnZhcyAjJXMiKS5mb3JtYXQodGhpcy5fbmFtZSk7Ci0KLSAgICAgICAg
aWYgKCF0aGlzLl91bmlxdWVEaXNwbGF5TmFtZU51bWJlcikKLSAgICAgICAgICAgIHRoaXMuX3Vu
aXF1ZURpc3BsYXlOYW1lTnVtYmVyID0gdGhpcy5jb25zdHJ1Y3Rvci5fbmV4dFVuaXF1ZURpc3Bs
YXlOYW1lTnVtYmVyKys7Ci0gICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNh
bnZhcyAlZCIpLmZvcm1hdCh0aGlzLl91bmlxdWVEaXNwbGF5TmFtZU51bWJlcik7Ci0gICAgfQot
Ci0gICAgcHJvZ3JhbUZvcklkKHByb2dyYW1JZGVudGlmaWVyKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIHRoaXMuX3Byb2dyYW1zLmdldChwcm9ncmFtSWRlbnRpZmllci5vYmplY3RJZCk7Ci0gICAg
fQotCi0gICAgcHJvZ3JhbVdhc0NyZWF0ZWQocHJvZ3JhbSkKLSAgICB7Ci0gICAgICAgIGNvbnNv
bGUuYXNzZXJ0KCF0aGlzLl9wcm9ncmFtcy5oYXMocHJvZ3JhbS5pZC5vYmplY3RJZCkpOwotICAg
ICAgICB0aGlzLl9wcm9ncmFtcy5zZXQocHJvZ3JhbS5pZC5vYmplY3RJZCwgcHJvZ3JhbSk7Ci0K
LSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkNhbnZh
cy5FdmVudC5Qcm9ncmFtV2FzQ3JlYXRlZCwge3Byb2dyYW06IHByb2dyYW19KTsKLSAgICB9Ci0K
LSAgICBwcm9ncmFtV2FzRGVsZXRlZChwcm9ncmFtSWRlbnRpZmllcikKLSAgICB7Ci0gICAgICAg
IHZhciBwcm9ncmFtID0gdGhpcy5fcHJvZ3JhbXMudGFrZShwcm9ncmFtSWRlbnRpZmllci5vYmpl
Y3RJZCk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHByb2dyYW0pOwotCi0gICAgICAgIHRoaXMu
ZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5DYW52YXMuRXZlbnQuUHJvZ3Jh
bVdhc0RlbGV0ZWQsIHtwcm9ncmFtOiBwcm9ncmFtfSk7Ci0gICAgfQotCi0gICAgc2F2ZUlkZW50
aXR5VG9Db29raWUoY29va2llKQotICAgIHsKLSAgICAgICAgY29va2llW1dlYkluc3BlY3Rvci5D
YW52YXMuRnJhbWVVUkxDb29raWVLZXldID0gdGhpcy5wYXJlbnRGcmFtZS51cmwuaGFzaDsKLSAg
ICAgICAgY29va2llW1dlYkluc3BlY3Rvci5DYW52YXMuQ1NTQ2FudmFzQ29va2llS2V5XSA9IHRo
aXMuX2Nzc0NhbnZhczsKLSAgICAgICAgY29va2llW1dlYkluc3BlY3Rvci5DYW52YXMuTmFtZUNv
b2tpZUtleV0gPSB0aGlzLl9uYW1lOwotICAgIH0KLX07Ci0KLVdlYkluc3BlY3Rvci5DYW52YXMu
RXZlbnQgPSB7Ci0gICAgUHJvZ3JhbVdhc0NyZWF0ZWQ6ICJjYW52YXMtcHJvZ3JhbS13YXMtY3Jl
YXRlZCIsCi0gICAgUHJvZ3JhbVdhc0RlbGV0ZWQ6ICJjYW52YXMtcHJvZ3JhbS13YXMtZGVsZXRl
ZCIsCi19OwotCi1XZWJJbnNwZWN0b3IuQ2FudmFzLkNvbnRleHRUeXBlID0gewotICAgIENhbnZh
czJEOiBTeW1ib2woImNhbnZhcy1jb250ZXh0LXR5cGUtY2FudmFzLTJkIiksCi0gICAgV2ViR0w6
IFN5bWJvbCgiY2FudmFzLWNvbnRleHQtdHlwZS13ZWJnbCIpLAotfTsKLQotV2ViSW5zcGVjdG9y
LkNhbnZhcy5fbmV4dFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVyID0gMTsKLQotV2ViSW5zcGVjdG9y
LkNhbnZhcy5GcmFtZVVSTENvb2tpZUtleSA9ICJjYW52YXMtZnJhbWUtdXJsIjsKLVdlYkluc3Bl
Y3Rvci5DYW52YXMuQ1NTQ2FudmFzQ29va2llS2V5ID0gImNhbnZhcy1jc3MtY2FudmFzIjsKLVdl
Ykluc3BlY3Rvci5DYW52YXMuTmFtZUNvb2tpZUtleSA9ICJjYW52YXMtbmFtZSI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2hhZGVyUHJv
Z3JhbS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9TaGFk
ZXJQcm9ncmFtLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMmNjM2VlM2IxNTYw
OTcwNWVhMjM5ZmQyNmJmNzQxMzBhMGU2MjMyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9TaGFkZXJQcm9ncmFtLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLVdlYkluc3BlY3Rvci5TaGFkZXJQcm9ncmFtID0gY2xhc3MgU2hhZGVyUHJvZ3Jh
bSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKLXsKLSAgICBjb25zdHJ1Y3RvcihpZCwgY2Fu
dmFzKQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLQotICAgICAgICB0aGlzLl9pZCA9IGlkOwot
ICAgICAgICB0aGlzLl9jYW52YXMgPSBjYW52YXMgfHwgbnVsbDsKLSAgICB9Ci0KLSAgICAvLyBQ
dWJsaWMKLQotICAgIGdldCBpZCgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5faWQ7Ci0g
ICAgfQotCi0gICAgZ2V0IGNhbnZhcygpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fY2Fu
dmFzOwotICAgIH0KLQotICAgIGdldCBkaXNwbGF5TmFtZSgpCi0gICAgewotICAgICAgICByZXR1
cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJQcm9ncmFtICVkIikuZm9ybWF0KHRoaXMuX2lkLm9i
amVjdElkKTsKLSAgICB9Ci0KLSAgICBzYXZlSWRlbnRpdHlUb0Nvb2tpZShjb29raWUpCi0gICAg
ewotICAgICAgICBjb29raWVbV2ViSW5zcGVjdG9yLlNoYWRlclByb2dyYW0uRnJhbWVVUkxDb29r
aWVLZXldID0gdGhpcy5jYW52YXMucGFyZW50RnJhbWUudXJsLmhhc2g7Ci0gICAgICAgIGNvb2tp
ZVtXZWJJbnNwZWN0b3IuU2hhZGVyUHJvZ3JhbS5DYW52YXNOYW1lS2V5XSA9IHRoaXMuY2FudmFz
Lm5hbWUuaGFzaDsKLSAgICAgICAgY29va2llW1dlYkluc3BlY3Rvci5TaGFkZXJQcm9ncmFtLklE
Q29va2llS2V5XSA9IHRoaXMuX2lkOwotICAgIH0KLQotICAgIHVwZGF0ZUNhbnZhcyhjYW52YXMp
Ci0gICAgewotICAgICAgICAvLyBDYWxsZWQgYnkgY2FudmFzLgotCi0gICAgICAgIGNvbnNvbGUu
YXNzZXJ0KCF0aGlzLl9jYW52YXMpOwotICAgICAgICB0aGlzLl9jYW52YXMgPSBjYW52YXM7Ci0g
ICAgfQotfTsKLQotV2ViSW5zcGVjdG9yLlNoYWRlclByb2dyYW0uRnJhbWVVUkxDb29raWVLZXkg
PSAic2hhZGVyLXByb2dyYW0tdXJsIjsKLVdlYkluc3BlY3Rvci5TaGFkZXJQcm9ncmFtLkNhbnZh
c05hbWVLZXkgPSAic2hhZGVyLXByb2dyYW0tY2FudmFzLW5hbWUiOwotV2ViSW5zcGVjdG9yLlNo
YWRlclByb2dyYW0uSURDb29raWVLZXkgPSAic2hhZGVyLXByb2dyYW0taWQiOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1dlYkdMQ29udGV4
dEF0dHJpYnV0ZXMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvV2ViR0xDb250ZXh0QXR0cmlidXRlcy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMTBiNWZkMzdiMTI3MTg0YWVlODc1ZjkxZTYyMzRhNGEwZTQwNTRiOS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvV2ViR0xDb250ZXh0QXR0cmlidXRlcy5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDc5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1XZWJJbnNwZWN0b3IuV2ViR0xDb250
ZXh0QXR0cmlidXRlcyA9IGNsYXNzIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgZXh0ZW5kcyBXZWJJ
bnNwZWN0b3IuT2JqZWN0Ci17Ci0gICAgY29uc3RydWN0b3IoYWxwaGEsIGRlcHRoLCBzdGVuY2ls
LCBhbnRpYWxpYXMsIHByZW11bHRpcGxpZWRBbHBoYSwgcHJlc2VydmVEcmF3aW5nQnVmZmVyKQot
ICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLQotICAgICAgICB0aGlzLl9hbHBoYSA9IGFscGhhOwot
ICAgICAgICB0aGlzLl9kZXB0aCA9IGRlcHRoOwotICAgICAgICB0aGlzLl9zdGVuY2lsID0gc3Rl
bmNpbDsKLSAgICAgICAgdGhpcy5fYW50aWFsaWFzID0gYW50aWFsaWFzOwotICAgICAgICB0aGlz
Ll9wcmVtdWx0aXBsaWVkQWxwaGEgPSBwcmVtdWx0aXBsaWVkQWxwaGE7Ci0gICAgICAgIHRoaXMu
X3ByZXNlcnZlRHJhd2luZ0J1ZmZlciA9IHByZXNlcnZlRHJhd2luZ0J1ZmZlcjsKLSAgICB9Ci0K
LSAgICAvLyBTdGF0aWMKLQotICAgIHN0YXRpYyBmcm9tUGF5bG9hZChwYXlsb2FkKQotICAgIHsK
LSAgICAgICAgY29uc29sZS5hc3NlcnQocGF5bG9hZCk7Ci0gICAgICAgIHJldHVybiBuZXcgV2Vi
SW5zcGVjdG9yLldlYkdMQ29udGV4dEF0dHJpYnV0ZXMocGF5bG9hZC5hbHBoYSwgcGF5bG9hZC5k
ZXB0aCwgcGF5bG9hZC5zdGVuY2lsLCBwYXlsb2FkLmFudGlhbGlhcywgcGF5bG9hZC5wcmVtdWx0
aXBsaWVkQWxwaGEsIHBheWxvYWQucHJlc2VydmVEcmF3aW5nQnVmZmVyKTsKLSAgICB9Ci0KLSAg
ICAvLyBQdWJsaWMKLQotICAgIGdldCBhbHBoYSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhp
cy5fYWxwaGE7Ci0gICAgfQotCi0gICAgZ2V0IGRlcHRoKCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biB0aGlzLl9kZXB0aDsKLSAgICB9Ci0KLSAgICBnZXQgc3RlbmNpbCgpCi0gICAgewotICAgICAg
ICByZXR1cm4gdGhpcy5fc3RlbmNpbDsKLSAgICB9Ci0KLSAgICBnZXQgYW50aWFsaWFzKCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9hbnRpYWxpYXM7Ci0gICAgfQotCi0gICAgZ2V0IHBy
ZW11bHRpcGxpZWRBbHBoYSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fcHJlbXVsdGlw
bGllZEFscGhhOwotICAgIH0KLQotICAgIGdldCBwcmVzZXJ2ZURyYXdpbmdCdWZmZXIoKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3ByZXNlcnZlRHJhd2luZ0J1ZmZlcjsKLSAgICB9Ci19
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9j
b2wvQ2FudmFzT2JzZXJ2ZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Qcm90b2NvbC9DYW52YXNPYnNlcnZlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNWY5ZGU3YzczOGMyYzk2YWU4OWRhODAxMjczMDc5Y2VlMTVhZTU5ZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Qcm90b2NvbC9DYW52YXNPYnNlcnZlci5qcworKysgL2Rldi9udWxsCkBA
IC0xLDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1XZWJJbnNwZWN0b3IuQ2FudmFzT2JzZXJ2ZXIg
PSBjbGFzcyBDYW52YXNPYnNlcnZlcgotewotICAgIC8vIEV2ZW50cyBkZWZpbmVkIGJ5IHRoZSAi
Q2FudmFzIiBkb21haW4uCi0KLSAgICBjYW52YXNBZGRlZChjYW52YXMpCi0gICAgewotICAgICAg
ICBXZWJJbnNwZWN0b3IuY2FudmFzTWFuYWdlci5jYW52YXNBZGRlZChjYW52YXMpOwotICAgIH0K
LQotICAgIGNhbnZhc1JlbW92ZWQoY2FudmFzSWQpCi0gICAgewotICAgICAgICBXZWJJbnNwZWN0
b3IuY2FudmFzTWFuYWdlci5jYW52YXNSZW1vdmVkKGNhbnZhc0lkKTsKLSAgICB9Ci0KLSAgICBw
cm9ncmFtQ3JlYXRlZChwcm9ncmFtSWQpCi0gICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuY2Fu
dmFzTWFuYWdlci5wcm9ncmFtQ3JlYXRlZChwcm9ncmFtSWQpOwotICAgIH0KLQotICAgIHByb2dy
YW1EZWxldGVkKHByb2dyYW1JZCkKLSAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5jYW52YXNN
YW5hZ2VyLnByb2dyYW1EZWxldGVkKHByb2dyYW1JZCk7Ci0gICAgfQotfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbCBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbAppbmRleCAyNDMwZjkyYjI3OWVi
ZTIzODEwYjJmMmQ0ZGZlMjJkNGE2NDhlM2VkLi44MjI2Mzk5MThlNWUwMmY5YjlhOTAzOTJhMTE3
MWYwMmY3OGRhNzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9UZXN0Lmh0bWwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
VGVzdC5odG1sCkBAIC01MCw3ICs1MCw2IEBACiAKICAgICA8c2NyaXB0IHNyYz0iUHJvdG9jb2wv
SW5zcGVjdG9yT2JzZXJ2ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJQcm90b2Nv
bC9DU1NPYnNlcnZlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlByb3RvY29sL0Nh
bnZhc09ic2VydmVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUHJvdG9jb2wvRE9N
T2JzZXJ2ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJQcm90b2NvbC9ET01TdG9y
YWdlT2JzZXJ2ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJQcm90b2NvbC9EZWJ1
Z2dlck9ic2VydmVyLmpzIj48L3NjcmlwdD4KQEAgLTc2LDcgKzc1LDYgQEAKICAgICA8c2NyaXB0
IHNyYz0iTW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJNb2RlbHMvQ1NTU3R5bGVTaGVldC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9Ik1vZGVscy9DYWxsRnJhbWUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJNb2Rl
bHMvQ2FudmFzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rp
b25FbnRyeS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xvci5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db250ZW50Rmxvdy5qcyI+PC9zY3Jp
cHQ+CkBAIC0xMTcsNyArMTE1LDYgQEAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1NjcmlwdFN5
bnRheFRyZWUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvU2NyaXB0VGlt
ZWxpbmVSZWNvcmQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvU2V0dGlu
Zy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9TaGFkZXJQcm9ncmFtLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1NvdXJjZUNvZGVMb2NhdGlvbi5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Tb3VyY2VDb2RlUmV2aXNpb24u
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvU291cmNlQ29kZVRpbWVsaW5l
LmpzIj48L3NjcmlwdD4KQEAgLTEyNSwxMCArMTIyLDggQEAKICAgICA8c2NyaXB0IHNyYz0iTW9k
ZWxzL1RleHRSYW5nZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9UaW1l
bGluZU1hcmtlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9UaW1lbGlu
ZVJlY29yZGluZy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9XZWJHTENv
bnRleHRBdHRyaWJ1dGVzLmpzIj48L3NjcmlwdD4KIAogICAgIDxzY3JpcHQgc3JjPSJDb250cm9s
bGVycy9DU1NTdHlsZU1hbmFnZXIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJDb250
cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29u
dHJvbGxlcnMvRE9NVHJlZU1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJD
b250cm9sbGVycy9EZWJ1Z2dlck1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJDb250cm9sbGVycy9GcmFtZVJlc291cmNlTWFuYWdlci5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUcmVl
RWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nh
bnZhc1RyZWVFbGVtZW50LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YmU3MmNm
ZjI3NjZlMmRkN2NmNmRjZWNmNjVlNGJiZjIwMWUwMDNmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NhbnZhc1RyZWVFbGVtZW50LmpzCisrKyAvZGV2L251bGwKQEAgLTEsOTcgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLVdlYkluc3BlY3Rvci5DYW52YXNUcmVlRWxlbWVudCA9IGNsYXNz
IENhbnZhc1RyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkZvbGRlcml6ZWRUcmVlRWxl
bWVudAotewotICAgIGNvbnN0cnVjdG9yKGNhbnZhcykKLSAgICB7Ci0gICAgICAgIHN1cGVyKCJj
YW52YXMtaWNvbiIsIGNhbnZhcy5kaXNwbGF5TmFtZSwgbnVsbCwgY2FudmFzLCBmYWxzZSk7Ci0K
LSAgICAgICAgY29uc29sZS5hc3NlcnQoY2FudmFzIGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkNh
bnZhcyk7Ci0KLSAgICAgICAgdGhpcy5zbWFsbCA9IHRydWU7Ci0gICAgICAgIHRoaXMuZm9sZGVy
U2V0dGluZ3NLZXkgPSBjYW52YXMucGFyZW50RnJhbWUudXJsLmhhc2ggKyBjYW52YXMuZGlzcGxh
eU5hbWUuaGFzaDsKLQotICAgICAgICB0aGlzLl9leHBhbmRlZFNldHRpbmcgPSBuZXcgV2ViSW5z
cGVjdG9yLlNldHRpbmcoImNhbnZhcy1leHBhbmRlZC0iICsgdGhpcy5mb2xkZXJTZXR0aW5nc0tl
eSwgZmFsc2UpOwotICAgICAgICBpZiAodGhpcy5fZXhwYW5kZWRTZXR0aW5nLnZhbHVlKQotICAg
ICAgICAgICAgdGhpcy5leHBhbmQoKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgdGhpcy5j
b2xsYXBzZSgpOwotCi0gICAgICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5DYW52YXMuRXZlbnQuUHJvZ3JhbVdhc0NyZWF0ZWQsIHRoaXMuX3Byb2dyYW1XYXNDcmVhdGVk
LCB0aGlzKTsKLSAgICAgICAgY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNh
bnZhcy5FdmVudC5Qcm9ncmFtV2FzRGVsZXRlZCwgdGhpcy5fcHJvZ3JhbVdhc0RlbGV0ZWQsIHRo
aXMpOwotCi0gICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlUmVwcmVzZW50ZWRPYmplY3QocmVwcmVz
ZW50ZWRPYmplY3QpIHsKLSAgICAgICAgICAgIHJldHVybiByZXByZXNlbnRlZE9iamVjdCBpbnN0
YW5jZW9mIFdlYkluc3BlY3Rvci5TaGFkZXJQcm9ncmFtOwotICAgICAgICB9Ci0KLSAgICAgICAg
ZnVuY3Rpb24gY291bnRDaGlsZHJlbigpIHsKLSAgICAgICAgICAgIHJldHVybiBjYW52YXMucHJv
Z3JhbXMubGVuZ3RoOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5yZWdpc3RlckZvbGRlcml6
ZVNldHRpbmdzKCJwcm9ncmFtcyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiUHJvZ3JhbXMiKSwg
dmFsaWRhdGVSZXByZXNlbnRlZE9iamVjdCwgY291bnRDaGlsZHJlbi5iaW5kKHRoaXMpLCBXZWJJ
bnNwZWN0b3IuU2hhZGVyUHJvZ3JhbVRyZWVFbGVtZW50KTsKLSAgICAgICAgdGhpcy51cGRhdGVQ
YXJlbnRTdGF0dXMoKTsKLSAgICB9Ci0KLSAgICAvLyBPdmVycmlkZXMgZnJvbSBUcmVlRWxlbWVu
dCAoUHJvdGVjdGVkKS4KLQotICAgIG9uZXhwYW5kKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2V4
cGFuZGVkU2V0dGluZy52YWx1ZSA9IHRydWU7Ci0gICAgfQotCi0gICAgb25jb2xsYXBzZSgpCi0g
ICAgewotICAgICAgICAvLyBPbmx5IHN0b3JlIHRoZSBzZXR0aW5nIGlmIHdlIGhhdmUgY2hpbGRy
ZW4sIHNpbmNlIHNldHRpbmcgaGFzQ2hpbGRyZW4gdG8gZmFsc2Ugd2lsbCBjYXVzZSBhIGNvbGxh
cHNlLAotICAgICAgICAvLyBhbmQgd2Ugb25seSBjYXJlIGFib3V0IHVzZXIgdHJpZ2dlcmVkIGNv
bGxhcHNlcy4KLSAgICAgICAgaWYgKHRoaXMuaGFzQ2hpbGRyZW4pCi0gICAgICAgICAgICB0aGlz
Ll9leHBhbmRlZFNldHRpbmcudmFsdWUgPSBmYWxzZTsKLSAgICB9Ci0KLSAgICBvbnBvcHVsYXRl
KCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLmNoaWxkcmVuLmxlbmd0aCAmJiAhdGhpcy5zaG91
bGRSZWZyZXNoQ2hpbGRyZW4pCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5z
aG91bGRSZWZyZXNoQ2hpbGRyZW4gPSBmYWxzZTsKLQotICAgICAgICB0aGlzLnJlbW92ZUNoaWxk
cmVuKCk7Ci0KLSAgICAgICAgZm9yICh2YXIgcHJvZ3JhbSBvZiB0aGlzLnJlcHJlc2VudGVkT2Jq
ZWN0LnByb2dyYW1zKQotICAgICAgICAgICAgdGhpcy5hZGRDaGlsZEZvclJlcHJlc2VudGVkT2Jq
ZWN0KHByb2dyYW0pOwotICAgIH0KLQotICAgIC8vIFByaXZhdGUKLQotICAgIF9wcm9ncmFtV2Fz
Q3JlYXRlZChldmVudCkKLSAgICB7Ci0gICAgICAgIHRoaXMuYWRkUmVwcmVzZW50ZWRPYmplY3RU
b05ld0NoaWxkUXVldWUoZXZlbnQuZGF0YS5wcm9ncmFtKTsKLSAgICB9Ci0KLSAgICBfcHJvZ3Jh
bVdhc0RlbGV0ZWQoZXZlbnQpCi0gICAgewotICAgICAgICB0aGlzLnJlbW92ZUNoaWxkRm9yUmVw
cmVzZW50ZWRPYmplY3QoZXZlbnQuZGF0YS5wcm9ncmFtKTsKLSAgICB9Ci19OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRnJhbWVUcmVlRWxl
bWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZyYW1l
VHJlZUVsZW1lbnQuanMKaW5kZXggMzVhZjk5NjI5NTNhMWEwODkzNmE1MWM4NDMxZDQ1ZWU5OGJi
OGI5Ni4uYWUyYmE3OTc2OGQzYWI4YTNlN2NiYWFiZjg5ZWExZTBmMzI3NzU2MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRnJhbWVUcmVlRWxl
bWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9G
cmFtZVRyZWVFbGVtZW50LmpzCkBAIC02MywxMiArNjMsNiBAQCBXZWJJbnNwZWN0b3IuRnJhbWVU
cmVlRWxlbWVudCA9IGNsYXNzIEZyYW1lVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
UmVzbwogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNvbnRlbnRGbG93VHJlZUVsZW1lbnQKICAg
ICAgICAgKTsKIAotICAgICAgICB0aGlzLnJlZ2lzdGVyRm9sZGVyaXplU2V0dGluZ3MoImNhbnZh
c2VzIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDYW52YXNlcyIpLAotICAgICAgICAgICAgZnVu
Y3Rpb24ocmVwcmVzZW50ZWRPYmplY3QpIHsgcmV0dXJuIHJlcHJlc2VudGVkT2JqZWN0IGluc3Rh
bmNlb2YgV2ViSW5zcGVjdG9yLkNhbnZhczsgfSwKLSAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gV2ViSW5zcGVjdG9yLmNhbnZhc01hbmFnZXIuY2FudmFzZXNGb3JGcmFtZSh0aGlzLl9m
cmFtZSkubGVuZ3RoOyB9LmJpbmQodGhpcyksCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ2Fu
dmFzVHJlZUVsZW1lbnQKLSAgICAgICAgKTsKLQogICAgICAgICBmdW5jdGlvbiBtYWtlVmFsaWRh
dGVDYWxsYmFjayhyZXNvdXJjZVR5cGUpIHsKICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbihy
ZXByZXNlbnRlZE9iamVjdCkgewogICAgICAgICAgICAgICAgIHJldHVybiByZXByZXNlbnRlZE9i
amVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5SZXNvdXJjZSAmJiByZXByZXNlbnRlZE9iamVj
dC50eXBlID09PSByZXNvdXJjZVR5cGU7CkBAIC0xNDIsMTAgKzEzNiw2IEBAIFdlYkluc3BlY3Rv
ci5GcmFtZVRyZWVFbGVtZW50ID0gY2xhc3MgRnJhbWVUcmVlRWxlbWVudCBleHRlbmRzIFdlYklu
c3BlY3Rvci5SZXNvCiAgICAgICAgIC8vIEltbWVkaWF0ZSBzdXBlcmNsYXNzZXMgYXJlIHNraXBw
ZWQsIHNpbmNlIEZyYW1lcyBoYW5kbGUgdGhlaXIgb3duIFNvdXJjZU1hcFJlc291cmNlcy4KICAg
ICAgICAgV2ViSW5zcGVjdG9yLkdlbmVyYWxUcmVlRWxlbWVudC5wcm90b3R5cGUub25hdHRhY2gu
Y2FsbCh0aGlzKTsKIAotICAgICAgICBXZWJJbnNwZWN0b3IuY2FudmFzTWFuYWdlci5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc2VzQXZhaWxh
YmxlLCB0aGlzLl9jYW52YXNlc0F2YWlsYWJsZSwgdGhpcyk7Ci0gICAgICAgIFdlYkluc3BlY3Rv
ci5jYW52YXNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNhbnZhc01hbmFn
ZXIuRXZlbnQuQ2FudmFzV2FzQWRkZWQsIHRoaXMuX2NhbnZhc1dhc0FkZGVkLCB0aGlzKTsKLSAg
ICAgICAgV2ViSW5zcGVjdG9yLmNhbnZhc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuQ2FudmFzTWFuYWdlci5FdmVudC5DYW52YXNXYXNSZW1vdmVkLCB0aGlzLl9jYW52YXNX
YXNSZW1vdmVkLCB0aGlzKTsKLQogICAgICAgICBpZiAodGhpcy5fZnJhbWUuaXNNYWluRnJhbWUo
KSkgewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLm5vdGlmaWNhdGlvbnMuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuTm90aWZpY2F0aW9uLlBhZ2VBcmNoaXZlU3RhcnRlZCwgdGhpcy5f
cGFnZUFyY2hpdmVTdGFydGVkLCB0aGlzKTsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5ub3Rp
ZmljYXRpb25zLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLk5vdGlmaWNhdGlvbi5QYWdl
QXJjaGl2ZUVuZGVkLCB0aGlzLl9wYWdlQXJjaGl2ZUVuZGVkLCB0aGlzKTsKQEAgLTE1NiwxMCAr
MTQ2LDYgQEAgV2ViSW5zcGVjdG9yLkZyYW1lVHJlZUVsZW1lbnQgPSBjbGFzcyBGcmFtZVRyZWVF
bGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlJlc28KICAgICB7CiAgICAgICAgIFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVRyZWVFbGVtZW50LnByb3RvdHlwZS5vbmRldGFjaC5jYWxsKHRoaXMpOwog
Ci0gICAgICAgIFdlYkluc3BlY3Rvci5jYW52YXNNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLkNhbnZhc01hbmFnZXIuRXZlbnQuQ2FudmFzZXNBdmFpbGFibGUsIHRoaXMu
X2NhbnZhc2VzQXZhaWxhYmxlLCB0aGlzKTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmNhbnZhc01h
bmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ2FudmFzTWFuYWdlci5FdmVu
dC5DYW52YXNXYXNBZGRlZCwgdGhpcy5fY2FudmFzV2FzQWRkZWQsIHRoaXMpOwotICAgICAgICBX
ZWJJbnNwZWN0b3IuY2FudmFzTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5DYW52YXNNYW5hZ2VyLkV2ZW50LkNhbnZhc1dhc1JlbW92ZWQsIHRoaXMuX2NhbnZhc1dhc1Jl
bW92ZWQsIHRoaXMpOwotCiAgICAgICAgIGlmICh0aGlzLl9mcmFtZS5pc01haW5GcmFtZSgpKSB7
CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iubm90aWZpY2F0aW9ucy5yZW1vdmVFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5Ob3RpZmljYXRpb24uUGFnZUFyY2hpdmVTdGFydGVkLCB0aGlzLl9w
YWdlQXJjaGl2ZVN0YXJ0ZWQsIHRoaXMpOwogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLm5vdGlm
aWNhdGlvbnMucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTm90aWZpY2F0aW9uLlBh
Z2VBcmNoaXZlRW5kZWQsIHRoaXMuX3BhZ2VBcmNoaXZlRW5kZWQsIHRoaXMpOwpAQCAtMjY0LDEx
ICsyNTAsOCBAQCBXZWJJbnNwZWN0b3IuRnJhbWVUcmVlRWxlbWVudCA9IGNsYXNzIEZyYW1lVHJl
ZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuUmVzbwogICAgICAgICBmb3IgKHZhciBmbG93
S2V5IGluIGZsb3dNYXApCiAgICAgICAgICAgICB0aGlzLmFkZENoaWxkRm9yUmVwcmVzZW50ZWRP
YmplY3QoZmxvd01hcFtmbG93S2V5XSk7CiAKLSAgICAgICAgdmFyIGNhbnZhc2VzID0gV2ViSW5z
cGVjdG9yLmNhbnZhc01hbmFnZXIuY2FudmFzZXNGb3JGcmFtZSh0aGlzLl9mcmFtZSk7Ci0gICAg
ICAgIGZvciAodmFyIGNhbnZhcyBvZiBjYW52YXNlcykKLSAgICAgICAgICAgIHRoaXMuYWRkQ2hp
bGRGb3JSZXByZXNlbnRlZE9iamVjdChjYW52YXMpOwogICAgIH0KLSAgICAgICAgCisKICAgICBv
bmV4cGFuZCgpCiAgICAgewogICAgICAgICB0aGlzLl9leHBhbmRlZFNldHRpbmcudmFsdWUgPSB0
cnVlOwpAQCAtMzQxLDI4ICszMjQsNiBAQCBXZWJJbnNwZWN0b3IuRnJhbWVUcmVlRWxlbWVudCA9
IGNsYXNzIEZyYW1lVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuUmVzbwogICAgICAg
ICB0aGlzLnJlbW92ZUNoaWxkRm9yUmVwcmVzZW50ZWRPYmplY3QoZXZlbnQuZGF0YS5mbG93KTsK
ICAgICB9CiAKLSAgICBfY2FudmFzZXNBdmFpbGFibGUoZXZlbnQpCi0gICAgewotICAgICAgICB0
aGlzLnVwZGF0ZVBhcmVudFN0YXR1cygpOwotICAgICAgICB0aGlzLnJlbW92ZUNoaWxkcmVuKCk7
Ci0KLSAgICAgICAgdGhpcy5zaG91bGRSZWZyZXNoQ2hpbGRyZW4gPSB0cnVlOwotICAgIH0KLQot
ICAgIF9jYW52YXNXYXNBZGRlZChldmVudCkKLSAgICB7Ci0gICAgICAgIHZhciBjYW52YXMgPSBl
dmVudC5kYXRhLmNhbnZhczsKLSAgICAgICAgaWYgKGNhbnZhcy5wYXJlbnRGcmFtZSA9PSB0aGlz
Ll9mcmFtZSkKLSAgICAgICAgICAgIHRoaXMuYWRkUmVwcmVzZW50ZWRPYmplY3RUb05ld0NoaWxk
UXVldWUoY2FudmFzKTsKLSAgICB9Ci0KLSAgICBfY2FudmFzV2FzUmVtb3ZlZChldmVudCkKLSAg
ICB7Ci0gICAgICAgIHZhciBjYW52YXMgPSBldmVudC5kYXRhLmNhbnZhczsKLSAgICAgICAgaWYg
KGNhbnZhcy5wYXJlbnRGcmFtZSA9PSB0aGlzLl9mcmFtZSkKLSAgICAgICAgICAgIHRoaXMucmVt
b3ZlQ2hpbGRGb3JSZXByZXNlbnRlZE9iamVjdChjYW52YXMpOwotICAgIH0KLQogICAgIF9yb290
RE9NTm9kZUludmFsaWRhdGVkKCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLmV4cGFuZGVkKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVz
b3VyY2VJY29ucy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9SZXNvdXJjZUljb25zLmNzcwppbmRleCBkZDlhZTUzYzk4YmI3ODFkOGI1ZTA0MWU4NDRhMmUw
NjA0N2ZkNjVmLi5mM2UyMmVkMGRkMWIwNDc0YThmZDU5ODk4ZDJmYmNmNjcyMjJhNjQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJj
ZUljb25zLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9SZXNvdXJjZUljb25zLmNzcwpAQCAtNTEsMTQgKzUxLDYgQEAKICAgICBjb250ZW50OiAtd2Vi
a2l0LWltYWdlLXNldCh1cmwoLi4vSW1hZ2VzL0NsaXBwaW5nSlMucG5nKSAxeCwgdXJsKC4uL0lt
YWdlcy9DbGlwcGluZ0pTQDJ4LnBuZykgMngpOwogfQogCi0uY2FudmFzLWljb24gLmljb24gewot
ICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvQ2FudmFzLnN2Zyk7Ci19Ci0KLS5zaGFkZXItcHJv
Z3JhbS1pY29uIC5pY29uIHsKLSAgICBjb250ZW50OiAtd2Via2l0LWltYWdlLXNldCh1cmwoLi4v
SW1hZ2VzL0RvY3VtZW50R0wucG5nKSAxeCwgdXJsKC4uL0ltYWdlcy9Eb2N1bWVudEdMQDJ4LnBu
ZykgMngpOwotfQotCiAuc291cmNlLW1hcC1yZXNvdXJjZS5yZXNvdXJjZS1pY29uIC5pY29uIHsK
ICAgICBjb250ZW50OiAtd2Via2l0LWltYWdlLXNldCh1cmwoLi4vSW1hZ2VzL0NsaXBwaW5nR2Vu
ZXJpYy5wbmcpIDF4LCB1cmwoLi4vSW1hZ2VzL0NsaXBwaW5nR2VuZXJpY0AyeC5wbmcpIDJ4KTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1Jlc291cmNlU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvUmVzb3VyY2VTaWRlYmFyUGFuZWwuanMKaW5kZXggYjY3YzJlYzFiNjFhOWYw
YTIyODQ0MTg4OTk5ZjUwYTczYzNmNTI5Ni4uOGEwYjkyYWY5OTYyNjQ4MDY1NDEwZjkxZGQ0MTlh
ZDI2Y2UzMDY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvUmVzb3VyY2VTaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VTaWRlYmFyUGFuZWwuanMKQEAgLTc3NCw3
ICs3NzQsNiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VTaWRlYmFyUGFuZWwgPSBjbGFzcyBSZXNv
dXJjZVNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3BlYwogICAgICAgICBpZiAodHJlZUVsZW1l
bnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRWxlbWVudCB8fCB0cmVlRWxl
bWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5TY3JpcHRUcmVlRWxlbWVudCB8fAogICAgICAg
ICAgICAgdHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuU3RvcmFnZVRyZWVFbGVt
ZW50IHx8IHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkRhdGFiYXNlVGFibGVU
cmVlRWxlbWVudCB8fAogICAgICAgICAgICAgdHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNw
ZWN0b3IuRGF0YWJhc2VUcmVlRWxlbWVudCB8fCB0cmVlRWxlbWVudCBpbnN0YW5jZW9mIFdlYklu
c3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlRnJhbWVUcmVlRWxlbWVudCB8fAotICAgICAgICAgICAg
dHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQ2FudmFzVHJlZUVsZW1lbnQgfHwg
dHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuU2hhZGVyUHJvZ3JhbVRyZWVFbGVt
ZW50IHx8CiAgICAgICAgICAgICB0cmVlRWxlbWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5D
b250ZW50Rmxvd1RyZWVFbGVtZW50IHx8IHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVj
dG9yLkluZGV4ZWREYXRhYmFzZU9iamVjdFN0b3JlVHJlZUVsZW1lbnQgfHwKICAgICAgICAgICAg
IHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkluZGV4ZWREYXRhYmFzZU9iamVj
dFN0b3JlSW5kZXhUcmVlRWxlbWVudCkgewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnRl
bnRCcm93c2VyLnNob3dDb250ZW50Vmlld0ZvclJlcHJlc2VudGVkT2JqZWN0KHRyZWVFbGVtZW50
LnJlcHJlc2VudGVkT2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1UcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NoYWRlclByb2dyYW1UcmVlRWxlbWVu
dC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGM1N2IwYzhhODg2NGY4MTlmN2U4
ZTdiZDA4YmY1NzgxYjI3YWVkMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TaGFk
ZXJQcm9ncmFtVHJlZUVsZW1lbnQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotV2ViSW5zcGVjdG9yLlNoYWRlclByb2dyYW1UcmVlRWxlbWVudCA9IGNsYXNz
IFNoYWRlclByb2dyYW1UcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5HZW5lcmFsVHJl
ZUVsZW1lbnQKLXsKLSAgICBjb25zdHJ1Y3Rvcihwcm9ncmFtKQotICAgIHsKLSAgICAgICAgc3Vw
ZXIoInNoYWRlci1wcm9ncmFtLWljb24iLCBwcm9ncmFtLmRpc3BsYXlOYW1lLCBudWxsLCBwcm9n
cmFtLCBmYWxzZSk7Ci0KLSAgICAgICAgY29uc29sZS5hc3NlcnQocHJvZ3JhbSBpbnN0YW5jZW9m
IFdlYkluc3BlY3Rvci5TaGFkZXJQcm9ncmFtKTsKLQotICAgICAgICB0aGlzLnNtYWxsID0gdHJ1
ZTsKLSAgICB9Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1dlYkluc3Bl
Y3RvclVJLnZjeHByb2ovV2ViSW5zcGVjdG9yVUkudmN4cHJvaiBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9XZWJJbnNwZWN0b3JVSS52Y3hwcm9qL1dlYkluc3BlY3RvclVJLnZjeHByb2oKaW5kZXgg
YzQ5ZjU1ZTY5YzQyMmE3NDg4NTRiMTU1YmM2YzcxNzkxOWM4NDJlMC4uZjUyOTU0M2ZmZDUwMTYw
Y2E4ZTM5NmIyMTRhNDg3NTliMjk5YzkzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1dlYkluc3BlY3RvclVJLnZjeHByb2ovV2ViSW5zcGVjdG9yVUkudmN4cHJvagorKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvV2ViSW5zcGVjdG9yVUkudmN4cHJvai9XZWJJbnNwZWN0b3JV
SS52Y3hwcm9qCkBAIC0yOTIsMTQgKzI5MiwxMSBAQAogICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVz
ZXJJbnRlcmZhY2VcQ2FsbEZyYW1lLmpzIiAvPgogICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJ
bnRlcmZhY2VcQ2FsbEZyYW1lSWNvbnMuY3NzIiAvPgogICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVz
ZXJJbnRlcmZhY2VcQ2FsbEZyYW1lVHJlZUVsZW1lbnQuanMiIC8+Ci0gICAgPE5vbmUgSW5jbHVk
ZT0iLi5cVXNlckludGVyZmFjZVxDYW52YXMuanMiIC8+CiAgICAgPE5vbmUgSW5jbHVkZT0iLi5c
VXNlckludGVyZmFjZVxDYW52YXNEYXRhR3JpZE5vZGUuanMiIC8+Ci0gICAgPE5vbmUgSW5jbHVk
ZT0iLi5cVXNlckludGVyZmFjZVxDYW52YXNNYW5hZ2VyLmpzIiAvPgogICAgIDxOb25lIEluY2x1
ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcQ2FudmFzT2JzZXJ2ZXIuanMiIC8+CiAgICAgPE5vbmUgSW5j
bHVkZT0iLi5cVXNlckludGVyZmFjZVxDYW52YXNQcm9maWxlT2JqZWN0LmpzIiAvPgogICAgIDxO
b25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcQ2FudmFzUHJvZmlsZVR5cGUuanMiIC8+CiAg
ICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxDYW52YXNQcm9maWxlVmlldy5qcyIg
Lz4KLSAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXENhbnZhc1RyZWVFbGVtZW50
LmpzIiAvPgogICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcQ2x1c3RlckNvbnRl
bnRWaWV3LmNzcyIgLz4KICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXENsdXN0
ZXJDb250ZW50Vmlldy5qcyIgLz4KICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNl
XENvZGVNaXJyb3JBZGRpdGlvbnMuanMiIC8+CkBAIC00NzYsNyArNDczLDYgQEAKICAgICA8Tm9u
ZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXEltYWdlc1xCcmVha3BvaW50SW5hY3RpdmUucG5n
IiAvPgogICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcSW1hZ2VzXEJyZWFrcG9p
bnRJbmFjdGl2ZUJ1dHRvbi5zdmciIC8+CiAgICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVy
ZmFjZVxJbWFnZXNcQnJlYWtwb2ludHMuc3ZnIiAvPgotICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVz
ZXJJbnRlcmZhY2VcSW1hZ2VzXENhbnZhcy5zdmciIC8+CiAgICAgPE5vbmUgSW5jbHVkZT0iLi5c
VXNlckludGVyZmFjZVxJbWFnZXNcQ2xpcHBpbmdDU1MlNDAyeC5wbmciIC8+CiAgICAgPE5vbmUg
SW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxJbWFnZXNcQ2xpcHBpbmdDU1MucG5nIiAvPgogICAg
IDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcSW1hZ2VzXENsaXBwaW5nR2VuZXJpYyU0
MDJ4LnBuZyIgLz4KQEAgLTYzNSw4ICs2MzEsNiBAQAogICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVz
ZXJJbnRlcmZhY2VcSW1hZ2VzXFNjcmlwdC5wbmciIC8+CiAgICAgPE5vbmUgSW5jbHVkZT0iLi5c
VXNlckludGVyZmFjZVxJbWFnZXNcU2Vzc2lvblN0b3JhZ2UlNDAyeC5wbmciIC8+CiAgICAgPE5v
bmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxJbWFnZXNcU2Vzc2lvblN0b3JhZ2UucG5nIiAv
PgotICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcSW1hZ2VzXFNoYWRlclByb2dy
YW0lNDAyeC5wbmciIC8+Ci0gICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxJbWFn
ZXNcU2hhZGVyUHJvZ3JhbS5wbmciIC8+CiAgICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVy
ZmFjZVxJbWFnZXNcU2hhZG93RE9NLnN2ZyIgLz4KICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2Vy
SW50ZXJmYWNlXEltYWdlc1xTb3J0SW5kaWNhdG9yRG93bkFycm93LnN2ZyIgLz4KICAgICA8Tm9u
ZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXEltYWdlc1xTb3J0SW5kaWNhdG9yVXBBcnJvdy5z
dmciIC8+CkBAIC03NzksOCArNzczLDYgQEAKICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50
ZXJmYWNlXFNlY3Rpb24uY3NzIiAvPgogICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZh
Y2VcU2VjdGlvbi5qcyIgLz4KICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXFNl
dHRpbmcuanMiIC8+Ci0gICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxTaGFkZXJQ
cm9ncmFtLmpzIiAvPgotICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcU2hhZGVy
UHJvZ3JhbVRyZWVFbGVtZW50LmpzIiAvPgogICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRl
cmZhY2VcU2lkZWJhci5jc3MiIC8+CiAgICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFj
ZVxTaWRlYmFyLmpzIiAvPgogICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcU2lk
ZWJhclBhbmVsLmNzcyIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9XZWJJ
bnNwZWN0b3JVSS52Y3hwcm9qL1dlYkluc3BlY3RvclVJLnZjeHByb2ouZmlsdGVycyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9XZWJJbnNwZWN0b3JVSS52Y3hwcm9qL1dlYkluc3BlY3RvclVJLnZj
eHByb2ouZmlsdGVycwppbmRleCA4M2I5OTU4YjI0ZTU4Nzg1YjFlYjU2Y2QxZTA4OTk4NjZkZmIz
NDlhLi42ZDE3YWE4NzVjYzYzODBlNTE1ZmFmN2UwOWZlMThmYTk5YWQ0NThhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvV2ViSW5zcGVjdG9yVUkudmN4cHJvai9XZWJJbnNwZWN0
b3JVSS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1dlYkluc3Bl
Y3RvclVJLnZjeHByb2ovV2ViSW5zcGVjdG9yVUkudmN4cHJvai5maWx0ZXJzCkBAIC0xMjYsMTUg
KzEyNiw5IEBACiAgICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxDYWxsRnJhbWVU
cmVlRWxlbWVudC5qcyI+CiAgICAgICA8RmlsdGVyPlVzZXJJbnRlcmZhY2U8L0ZpbHRlcj4KICAg
ICA8L05vbmU+Ci0gICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxDYW52YXMuanMi
PgotICAgICAgPEZpbHRlcj5Vc2VySW50ZXJmYWNlPC9GaWx0ZXI+Ci0gICAgPC9Ob25lPgogICAg
IDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcQ2FudmFzRGF0YUdyaWROb2RlLmpzIj4K
ICAgICAgIDxGaWx0ZXI+VXNlckludGVyZmFjZTwvRmlsdGVyPgogICAgIDwvTm9uZT4KLSAgICA8
Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXENhbnZhc01hbmFnZXIuanMiPgotICAgICAg
PEZpbHRlcj5Vc2VySW50ZXJmYWNlPC9GaWx0ZXI+Ci0gICAgPC9Ob25lPgogICAgIDxOb25lIElu
Y2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcQ2FudmFzT2JzZXJ2ZXIuanMiPgogICAgICAgPEZpbHRl
cj5Vc2VySW50ZXJmYWNlPC9GaWx0ZXI+CiAgICAgPC9Ob25lPgpAQCAtMTQ3LDkgKzE0MSw2IEBA
CiAgICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxDYW52YXNQcm9maWxlVmlldy5q
cyI+CiAgICAgICA8RmlsdGVyPlVzZXJJbnRlcmZhY2U8L0ZpbHRlcj4KICAgICA8L05vbmU+Ci0g
ICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxDYW52YXNUcmVlRWxlbWVudC5qcyI+
Ci0gICAgICA8RmlsdGVyPlVzZXJJbnRlcmZhY2U8L0ZpbHRlcj4KLSAgICA8L05vbmU+CiAgICAg
PE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxDbHVzdGVyQ29udGVudFZpZXcuY3NzIj4K
ICAgICAgIDxGaWx0ZXI+VXNlckludGVyZmFjZTwvRmlsdGVyPgogICAgIDwvTm9uZT4KQEAgLTkw
MCwxMiArODkxLDYgQEAKICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXFNldHRp
bmcuanMiPgogICAgICAgPEZpbHRlcj5Vc2VySW50ZXJmYWNlPC9GaWx0ZXI+CiAgICAgPC9Ob25l
PgotICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcU2hhZGVyUHJvZ3JhbS5qcyI+
Ci0gICAgICA8RmlsdGVyPlVzZXJJbnRlcmZhY2U8L0ZpbHRlcj4KLSAgICA8L05vbmU+Ci0gICAg
PE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxTaGFkZXJQcm9ncmFtVHJlZUVsZW1lbnQu
anMiPgotICAgICAgPEZpbHRlcj5Vc2VySW50ZXJmYWNlPC9GaWx0ZXI+Ci0gICAgPC9Ob25lPgog
ICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcU2lkZWJhci5jc3MiPgogICAgICAg
PEZpbHRlcj5Vc2VySW50ZXJmYWNlPC9GaWx0ZXI+CiAgICAgPC9Ob25lPgpAQCAtMTE3OSw5ICsx
MTY0LDYgQEAKICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXEltYWdlc1xCcmVh
a3BvaW50cy5zdmciPgogICAgICAgPEZpbHRlcj5JbWFnZXM8L0ZpbHRlcj4KICAgICA8L05vbmU+
Ci0gICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxJbWFnZXNcQ2FudmFzLnN2ZyI+
Ci0gICAgICA8RmlsdGVyPkltYWdlczwvRmlsdGVyPgotICAgIDwvTm9uZT4KICAgICA8Tm9uZSBJ
bmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXEltYWdlc1xDbGlwcGluZ0NTUy5wbmciPgogICAgICAg
PEZpbHRlcj5JbWFnZXM8L0ZpbHRlcj4KICAgICA8L05vbmU+CkBAIC0xNjQ0LDEyICsxNjI2LDYg
QEAKICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXEltYWdlc1xTZXNzaW9uU3Rv
cmFnZSU0MDJ4LnBuZyI+CiAgICAgICA8RmlsdGVyPkltYWdlczwvRmlsdGVyPgogICAgIDwvTm9u
ZT4KLSAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXEltYWdlc1xTaGFkZXJQcm9n
cmFtJTQwMngucG5nIj4KLSAgICAgIDxGaWx0ZXI+SW1hZ2VzPC9GaWx0ZXI+Ci0gICAgPC9Ob25l
PgotICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcSW1hZ2VzXFNoYWRlclByb2dy
YW0ucG5nIj4KLSAgICAgIDxGaWx0ZXI+SW1hZ2VzPC9GaWx0ZXI+Ci0gICAgPC9Ob25lPgogICAg
IDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcSW1hZ2VzXFNoYWRvd0RPTS5zdmciPgog
ICAgICAgPEZpbHRlcj5JbWFnZXM8L0ZpbHRlcj4KICAgICA8L05vbmU+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>