<?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>174962</bug_id>
          
          <creation_ts>2017-07-28 17:53:41 -0700</creation_ts>
          <short_desc>REGRESSION(r219986): &quot;broke PLT on iOS (rdar://problem/33602751)&quot; (Requested by estes on #webkit).</short_desc>
          <delta_ts>2017-07-28 17:57:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>174879</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>aestes</cc>
    
    <cc>beidson</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1333150</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-28 17:53:41 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/219986 broke the build:
&quot;broke PLT on iOS (rdar://problem/33602751)&quot; (Requested by estes 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>1333152</commentid>
    <comment_count>1</comment_count>
      <attachid>316688</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-28 17:53:59 -0700</bug_when>
    <thetext>Created attachment 316688
ROLLOUT of r219986

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>1333153</commentid>
    <comment_count>2</comment_count>
      <attachid>316688</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-28 17:57:26 -0700</bug_when>
    <thetext>Comment on attachment 316688
ROLLOUT of r219986

Clearing flags on attachment: 316688

Committed r220038: &lt;http://trac.webkit.org/changeset/220038&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333154</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-28 17:57:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333155</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-07-28 17:57:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/33603048&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316688</attachid>
            <date>2017-07-28 17:53:59 -0700</date>
            <delta_ts>2017-07-28 17:57:26 -0700</delta_ts>
            <desc>ROLLOUT of r219986</desc>
            <filename>bug-174962-20170728205359.patch</filename>
            <type>text/plain</type>
            <size>339591</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUxYjI3NGE5MmFhMTFmYWQ5
NWY4ZWQwNWIwZWQyYThiNzNiMzMzZmIuLjM2NGM1YmU3MjJjN2YyYTVlZGIzZGU3ODg5YWY2NTM2
OWM5OTBjYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTctMDctMjggIENvbW1pdCBR
dWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCisgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyMTk5ODYuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzQ5NjIKKworICAgICAgICAiYnJva2UgUExUIG9uIGlPUyAocmRhcjovL3By
b2JsZW0vMzM2MDI3NTEpIiAoUmVxdWVzdGVkIGJ5CisgICAgICAgIGVzdGVzIG9uICN3ZWJraXQp
LgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAiUGFydCAxIG9mOiBS
ZW5hbWUgRGF0YWJhc2VQcm9jZXNzIHRvIFN0b3JhZ2VQcm9jZXNzLiIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDg3OQorICAgICAgICBodHRwOi8v
dHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMTk5ODYKKworMjAxNy0wNy0yOCAgQ29tbWl0IFF1
ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjIxOTk5MC4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3NDk2MQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMu
dHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCBjMmZhMjFjZmE1NDdlOTJj
ZWFmNGUyNjVlMTk0MGI5ODNhNmI5MDcyLi5mNzA2MjE4M2VjMWRjZTBkNTM2ZjQyZGE5ODM0ZTMx
NWJkZjk3MGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTQsNiArNCw4IEBAIHNldF9wcm9wZXJ0
eShESVJFQ1RPUlkgLiBQUk9QRVJUWSBGT0xERVIgIldlYktpdDIiKQogCiBzZXQoV2ViS2l0Ml9J
TkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUMl9ESVJ9IgorICAgICIke1dFQktJVDJf
RElSfS9EYXRhYmFzZVByb2Nlc3MiCisgICAgIiR7V0VCS0lUMl9ESVJ9L0RhdGFiYXNlUHJvY2Vz
cy9JbmRleGVkREIiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzIgogICAgICIk
e1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMiCiAgICAgIiR7V0VC
S0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzL0Rvd25sb2FkcyIKQEAgLTI2LDEwICsyOCw3IEBAIHNl
dChXZWJLaXQyX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVk
L1BsdWdpbnMiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlIgog
ICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS94MTEiCi0gICAgIiR7
V0VCS0lUMl9ESVJ9L1NoYXJlZC9TdG9yYWdlIgogICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQv
V2Vic2l0ZURhdGEiCi0gICAgIiR7V0VCS0lUMl9ESVJ9L1N0b3JhZ2VQcm9jZXNzIgotICAgICIk
e1dFQktJVDJfRElSfS9TdG9yYWdlUHJvY2Vzcy9JbmRleGVkREIiCiAgICAgIiR7V0VCS0lUMl9E
SVJ9L1VJUHJvY2VzcyIKICAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSSIKICAgICAi
JHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DIgpAQCAtMzcsNiArMzYsNyBAQCBzZXQoV2Vi
S2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9B
cHBsZVBheSIKICAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9uIgog
ICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQXV0b21hdGlvbiIKKyAgICAiJHtXRUJLSVQy
X0RJUn0vVUlQcm9jZXNzL0RhdGFiYXNlcyIKICAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNz
L0Rvd25sb2FkcyIKICAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0dhbWVwYWQiCiAgICAg
IiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9MYXVuY2hlciIKQEAgLTQ0LDcgKzQ0LDYgQEAgc2V0
KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nl
c3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vz
cy9Ob3RpZmljYXRpb25zIgogICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvUGx1Z2lucyIK
LSAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL1N0b3JhZ2UiCiAgICAgIiR7V0VCS0lUMl9E
SVJ9L1VJUHJvY2Vzcy9Vc2VyQ29udGVudCIKICAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNz
L1dlYlN0b3JhZ2UiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YSIK
QEAgLTc0LDcgKzczLDYgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIk
e1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZSIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9SZXNvdXJjZUNhY2hlIgotICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1N0b3JhZ2Ui
CiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQiCiAgICAgIiR7V0VC
S0lUMl9ESVJ9L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQiCiAgICAgIiR7V0VCS0lUMl9ESVJ9
L1dlYlByb2Nlc3MvV2ViUGFnZSIKQEAgLTk4LDYgKzk2LDExIEBAIGlmIChFTkFCTEVfR1JBUEhJ
Q1NfQ09OVEVYVF8zRCkKIGVuZGlmICgpCiAKIHNldChXZWJLaXQyX1NPVVJDRVMKKyAgICBEYXRh
YmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcAorICAgIERhdGFiYXNlUHJvY2Vzcy9EYXRh
YmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisKKyAgICBEYXRhYmFzZVByb2Nlc3MvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKKwogICAgIE5ldHdvcmtQcm9jZXNz
L0N1c3RvbVByb3RvY29scy9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXIuY3BwCiAKICAgICBO
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvQmxvYkRvd25sb2FkQ2xpZW50LmNwcApAQCAtMjUxLDYg
KzI1NCw4IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKIAogICAgIFNoYXJlZC9BdXRoZW50aWNhdGlv
bi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCiAKKyAgICBTaGFyZWQvRGF0YWJhc2VzL0RhdGFi
YXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKwogICAgIFNoYXJlZC9EYXRhYmFzZXMv
SW5kZXhlZERCL0lEQlV0aWxpdGllcy5jcHAKICAgICBTaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWRE
Qi9XZWJJREJSZXN1bHQuY3BwCiAKQEAgLTI2NywxNSArMjcyLDggQEAgc2V0KFdlYktpdDJfU09V
UkNFUwogICAgIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luTW9kdWxlTm9u
ZS5jcHAKICAgICBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9QbHVnaW5JbmZvcm1hdGlvbi5jcHAK
IAotICAgIFNoYXJlZC9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cAotCiAgICAgU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhLmNwcAogCi0gICAgU3RvcmFn
ZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuY3BwCi0gICAgU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCi0KLSAgICBTdG9yYWdlUHJvY2Vzcy9JbmRleGVkREIv
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAotCiAgICAgVUlQcm9jZXNzL0JhY2tncm91bmRQ
cm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKICAgICBVSVByb2Nlc3MvQ2hpbGRQcm9jZXNz
UHJveHkuY3BwCiAgICAgVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuY3BwCkBAIC00MDcsNiAr
NDA1LDggQEAgc2V0KFdlYktpdDJfU09VUkNFUwogCiAgICAgVUlQcm9jZXNzL0F1dG9tYXRpb24v
V2ViQXV0b21hdGlvblNlc3Npb24uY3BwCiAKKyAgICBVSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFi
YXNlUHJvY2Vzc1Byb3h5LmNwcAorCiAgICAgVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFBy
b3h5LmNwcAogICAgIFVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5jcHAKIApA
QCAtNDMwLDggKzQzMCw2IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5jcHAKICAgICBVSVByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzUHJveHkuY3BwCiAKLSAgICBVSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlUHJvY2Vz
c1Byb3h5LmNwcAotCiAgICAgVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlNjcmlwdE1lc3NhZ2VI
YW5kbGVyLmNwcAogICAgIFVJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRy
b2xsZXJQcm94eS5jcHAKIApAQCAtNDQ5LDYgKzQ0Nyw3IEBAIHNldChXZWJLaXQyX1NPVVJDRVMK
ICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKIAogICAgIFdlYlBy
b2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCisgICAgV2ViUHJvY2Vzcy9E
YXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcAogCiAgICAgV2ViUHJv
Y2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKIApA
QCAtNTI4LDggKzUyNyw2IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBXZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5Ob25lLmNwcAogICAgIFdlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5jcHAKIAotICAgIFdlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAKLQogICAgIFdlYlByb2Nl
c3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcAogCiAgICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcApAQCAtNTgyLDYg
KzU3OSwxMSBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiApCiAKIHNldChXZWJLaXQyX01FU1NBR0VT
X0lOX0ZJTEVTCisgICAgRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5tZXNzYWdlcy5p
bgorICAgIERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KKworICAgIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50Lm1lc3NhZ2VzLmluCisKICAgICBOZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2Nv
bHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluCiAKICAgICBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNjA0
LDExICs2MDYsNiBAQCBzZXQoV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxFUwogCiAgICAgU2hhcmVk
L1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIubWVzc2FnZXMuaW4KIAotICAgIFN0b3Jh
Z2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLm1lc3NhZ2VzLmluCi0gICAgU3RvcmFnZVByb2Nlc3Mv
U3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KLQotICAgIFN0b3JhZ2VQ
cm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQubWVzc2FnZXMuaW4KLQog
ICAgIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNz
L1JlbW90ZVdlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1Zpc2l0
ZWRMaW5rU3RvcmUubWVzc2FnZXMuaW4KQEAgLTYyNCw2ICs2MjEsOCBAQCBzZXQoV2ViS2l0Ml9N
RVNTQUdFU19JTl9GSUxFUwogCiAgICAgVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
blNlc3Npb24ubWVzc2FnZXMuaW4KIAorICAgIFVJUHJvY2Vzcy9EYXRhYmFzZXMvRGF0YWJhc2VQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKwogICAgIFVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxv
YWRQcm94eS5tZXNzYWdlcy5pbgogCiAgICAgVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtNjMyLDggKzYzMSw2IEBAIHNldChXZWJLaXQyX01FU1NB
R0VTX0lOX0ZJTEVTCiAKICAgICBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4KIAotICAgIFVJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4KLQogICAgIFVJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENv
bnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgogCiAgICAgVUlQcm9jZXNzL1dlYlN0b3JhZ2UvU3Rv
cmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTY4Niw3ICs2ODMsNyBAQCBzZXQoTmV0d29ya1By
b2Nlc3NfTElCUkFSSUVTCiAgICAgV2ViS2l0MgogKQogCi1zZXQoU3RvcmFnZVByb2Nlc3NfTElC
UkFSSUVTCitzZXQoRGF0YWJhc2VQcm9jZXNzX0xJQlJBUklFUwogICAgIFdlYktpdDIKICkKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9EYXRhYmFzZVNlcnZpY2Uu
eGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0RhdGFiYXNlU2VydmljZS54
Y2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jOGNjZjA1NWJjN2E5ZGU0YmU4YmU0YzE1MzUwZjg2MDg1MjAw
ODI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9EYXRh
YmFzZVNlcnZpY2UueGNjb25maWcKQEAgLTAsMCArMSwzMCBAQAorLy8gQ29weXJpZ2h0IChDKSAy
MDEzLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisvLyBhcmUgbWV0OgorLy8gMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8v
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisvLyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisvLyAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorLy8KKy8v
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorLy8gRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKy8vIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorLy8gUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKy8vIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorLy8gRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorLy8gUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisvLyBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisvLyBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworI2luY2x1ZGUgIkJhc2VYUENTZXJ2aWNlLnhjY29uZmln
IgorCitXS19YUENfU0VSVklDRV9JT1NfRU5USVRMRU1FTlRTX0JBU0UgPSBEYXRhYmFzZXMtaU9T
OworCitQUk9EVUNUX05BTUUgPSBjb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlczsKK1BST0RVQ1Rf
QlVORExFX0lERU5USUZJRVIgPSAkKFBST0RVQ1RfTkFNRSk7CitJTkZPUExJU1RfRklMRSA9IERh
dGFiYXNlUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL0RhdGFiYXNlU2VydmljZS9J
bmZvLnBsaXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9EYXRh
YmFzZXMtaU9TLmVudGl0bGVtZW50cyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRGF0
YWJhc2VzLWlPUy5lbnRpdGxlbWVudHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTJmY2M3NTRlNjljNDNhOGE0NDY4
ZmQyNWFiZDMzZjM4ZGJmMzkyNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29u
ZmlndXJhdGlvbnMvRGF0YWJhc2VzLWlPUy5lbnRpdGxlbWVudHMKQEAgLTAsMCArMSwxMCBAQAor
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBwbGlzdCBQ
VUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29t
L0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgorPHBsaXN0IHZlcnNpb249IjEuMCI+Cis8ZGlj
dD4KKwk8a2V5PnNlYXRiZWx0LXByb2ZpbGVzPC9rZXk+CisJPGFycmF5PgorCQk8c3RyaW5nPmNv
bS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzPC9zdHJpbmc+CisJPC9hcnJheT4KKzwvZGljdD4KKzwv
cGxpc3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1N0b3JhZ2Ut
aU9TLmVudGl0bGVtZW50cyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvU3RvcmFnZS1p
T1MuZW50aXRsZW1lbnRzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMzE3YzNhZTY1
YTQ1OGNkMTA3MGY5MjcyYzIyN2IwNjVlMDNjZWRjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvU3RvcmFn
ZS1pT1MuZW50aXRsZW1lbnRzCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotPD94bWwg
dmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTwhRE9DVFlQRSBwbGlzdCBQVUJMSUMg
Ii0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMv
UHJvcGVydHlMaXN0LTEuMC5kdGQiPgotPHBsaXN0IHZlcnNpb249IjEuMCI+Ci08ZGljdD4KLQk8
a2V5PnNlYXRiZWx0LXByb2ZpbGVzPC9rZXk+Ci0JPGFycmF5PgotCQk8c3RyaW5nPmNvbS5hcHBs
ZS5XZWJLaXQuU3RvcmFnZTwvc3RyaW5nPgotCTwvYXJyYXk+Ci08L2RpY3Q+Ci08L3BsaXN0Pgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9TdG9yYWdlU2VydmljZS54
Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvU3RvcmFnZVNlcnZpY2UueGNj
b25maWcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZiYmNjNDBmNGQ4ODM2ZTY5YmQ3
MTFjM2ZjNDc5ODI3YzM2MTQzODMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9TdG9yYWdlU2VydmljZS54
Y2NvbmZpZworKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLS8vIENvcHlyaWdodCAoQykg
MjAxMy0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotLy8gYXJlIG1ldDoKLS8vIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0v
LyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotLy8gICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLS8vCi0v
LyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLS8vIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0vLyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLS8vIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0vLyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLS8vIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLS8vIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotLy8gUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotLy8gT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSNpbmNsdWRlICJCYXNlWFBDU2VydmljZS54Y2NvbmZp
ZyIKLQotV0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElUTEVNRU5UU19CQVNFID0gU3RvcmFnZS1pT1M7
Ci0KLVBST0RVQ1RfTkFNRSA9IGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZTsKLVBST0RVQ1RfQlVO
RExFX0lERU5USUZJRVIgPSAkKFBST0RVQ1RfTkFNRSk7Ci1JTkZPUExJU1RfRklMRSA9IFN0b3Jh
Z2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvU3RvcmFnZVNlcnZpY2UvSW5mby5w
bGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0Lnhj
Y29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcKaW5k
ZXggNzZhNjM1Y2E4MjZlODhiMmYzNzA2NjQ1ZDFmNTVkOGE0Y2Q5OWY1My4uNDNmMzRlY2U0YmE1
ZjIwNGUyNTQzNDQxMjUyMDVkN2Q2ODljNjMzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
b25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1
cmF0aW9ucy9XZWJLaXQueGNjb25maWcKQEAgLTcwLDcgKzcwLDcgQEAgU0VDVE9SREVSX0ZMQUdT
ID0gJChTRUNUT1JERVJfRkxBR1NfJChDT05GSUdVUkFUSU9OKSk7CiBTRUNUT1JERVJfRkxBR1Nf
UHJvZHVjdGlvbltzZGs9aXBob25lb3MqXSA9IC1XbCwtb3JkZXJfZmlsZSwkKFNES1JPT1QpL0Fw
cGxlSW50ZXJuYWwvT3JkZXJGaWxlcy9XZWJLaXQub3JkZXI7CiBTRUNUT1JERVJfRkxBR1NfUHJv
ZHVjdGlvbltzZGs9bWFjb3N4Kl0gPSAtV2wsLW9yZGVyX2ZpbGUsbWFjL1dlYktpdDIub3JkZXI7
CiAKLUVYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTW3Nkaz1pcGhvbmUqXSA9IFBsdWdpblByb2Nl
c3NTaGltLmR5bGliIFNlY0l0ZW1TaGltLmR5bGliIFdlYlByb2Nlc3NTaGltLmR5bGliICoucGRm
IFJlc291cmNlcy9tYWMvKiBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2IgY29tLmFwcGxlLldl
YktpdC5OZXR3b3JrUHJvY2Vzcy5zYiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYiBjb20uYXBwbGUu
V2ViS2l0LnBsdWdpbi1jb21tb24uc2IgUGx1Z0luU2FuZGJveFByb2ZpbGVzLyouc2I7CitFWENM
VURFRF9TT1VSQ0VfRklMRV9OQU1FU1tzZGs9aXBob25lKl0gPSBQbHVnaW5Qcm9jZXNzU2hpbS5k
eWxpYiBTZWNJdGVtU2hpbS5keWxpYiBXZWJQcm9jZXNzU2hpbS5keWxpYiAqLnBkZiBSZXNvdXJj
ZXMvbWFjLyogY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXMuc2IgY29tLmFwcGxlLldlYktpdC5O
ZXR3b3JrUHJvY2Vzcy5zYiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYiBjb20uYXBwbGUuV2ViS2l0
LnBsdWdpbi1jb21tb24uc2IgUGx1Z0luU2FuZGJveFByb2ZpbGVzLyouc2I7CiAKIElOU1RBTExI
RFJTX1NDUklQVF9QSEFTRSA9IFlFUzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EYXRh
YmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvRGF0YWJhc2VQ
cm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmI4MDBlYmMwMmViNzg2ZDI4
OTdkYzYwYzFkYWRmMmE3NGRhODNkYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
RGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKQEAgLTAsMCArMSwzMjQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQsIDIwMTUsIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiRGF0YWJhc2VQcm9jZXNzLmgiCisKKyNpbmNsdWRlICJEYXRhYmFzZVByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJEYXRhYmFzZVByb2Nlc3NNZXNzYWdlcy5oIgorI2lu
Y2x1ZGUgIkRhdGFiYXNlUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJEYXRhYmFz
ZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5
c3RlbS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSURCS2V5RGF0YS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvVGV4dEVuY29kaW5nLmg+CisjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFk
VGFzay5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworRGF0YWJhc2VQcm9jZXNzJiBEYXRhYmFz
ZVByb2Nlc3M6OnNpbmdsZXRvbigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPERhdGFi
YXNlUHJvY2Vzcz4gZGF0YWJhc2VQcm9jZXNzOworICAgIHJldHVybiBkYXRhYmFzZVByb2Nlc3M7
Cit9CisKK0RhdGFiYXNlUHJvY2Vzczo6RGF0YWJhc2VQcm9jZXNzKCkKKyAgICA6IG1fcXVldWUo
V29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VQcm9jZXNzIikpCit7
CisgICAgLy8gTWFrZSBzdXJlIHRoZSBVVEY4RW5jb2RpbmcgZW5jb2RpbmcgYW5kIHRoZSB0ZXh0
IGVuY29kaW5nIG1hcHMgaGF2ZSBiZWVuIGJ1aWx0IG9uIHRoZSBtYWluIHRocmVhZCBiZWZvcmUg
YSBiYWNrZ3JvdW5kIHRocmVhZCBuZWVkcyBpdC4KKyAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTM2NSAtIE5lZWQgYSBtb3JlIGV4cGxpY2l0
IHdheSBvZiBkb2luZyB0aGlzIGJlc2lkZXMgYWNjZXNzaW5nIHRoZSBVVEY4RW5jb2RpbmcuCisg
ICAgVVRGOEVuY29kaW5nKCk7Cit9CisKK0RhdGFiYXNlUHJvY2Vzczo6fkRhdGFiYXNlUHJvY2Vz
cygpCit7Cit9CisKK3ZvaWQgRGF0YWJhc2VQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbihJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCit7CisgICAgQ2hpbGRQcm9jZXNzOjppbml0aWFs
aXplQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKK30KKworYm9vbCBEYXRhYmFzZVByb2Nlc3M6OnNo
b3VsZFRlcm1pbmF0ZSgpCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgRGF0YWJhc2VQ
cm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQoreworICAgIHN0b3BSdW5Mb29wKCk7
Cit9CisKK3ZvaWQgRGF0YWJhc2VQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAobWVz
c2FnZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkg
PT0gTWVzc2FnZXM6OkRhdGFiYXNlUHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7Cisg
ICAgICAgIGRpZFJlY2VpdmVEYXRhYmFzZVByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCisjaWYgRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCitJREJTZXJ2ZXI6OklEQlNlcnZlciYgRGF0YWJhc2VQcm9jZXNzOjppZGJTZXJ2ZXIo
U2Vzc2lvbklEIHNlc3Npb25JRCkKK3sKKyAgICBhdXRvIGFkZFJlc3VsdCA9IG1faWRiU2VydmVy
cy5hZGQoc2Vzc2lvbklELCBudWxscHRyKTsKKyAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5
KSB7CisgICAgICAgIEFTU0VSVChhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlKTsKKyAgICAgICAg
cmV0dXJuICphZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlOworICAgIH0KKworICAgIGF1dG8gcGF0
aCA9IG1faWRiRGF0YWJhc2VQYXRocy5nZXQoc2Vzc2lvbklEKTsKKyAgICAvLyBUaGVyZSBzaG91
bGQgYWxyZWFkeSBiZSBhIHJlZ2lzdGVyZWQgcGF0aCBmb3IgdGhpcyBTZXNzaW9uSUQuCisgICAg
Ly8gSWYgdGhlcmUncyBub3QsIHRoZW4gd2hlcmUgZGlkIHRoaXMgU2Vzc2lvbklEIGNvbWUgZnJv
bT8KKyAgICBBU1NFUlQoIXBhdGguaXNFbXB0eSgpKTsKKworICAgIGFkZFJlc3VsdC5pdGVyYXRv
ci0+dmFsdWUgPSBJREJTZXJ2ZXI6OklEQlNlcnZlcjo6Y3JlYXRlKHBhdGgsIERhdGFiYXNlUHJv
Y2Vzczo6c2luZ2xldG9uKCkpOworICAgIHJldHVybiAqYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1
ZTsKK30KKyNlbmRpZgorCit2b2lkIERhdGFiYXNlUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYnNpdGVE
YXRhU3RvcmUoY29uc3QgRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzKQoreworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgIC8vICoqKioqKioqKgor
ICAgIC8vIElNUE9SVEFOVDogRG8gbm90IGNoYW5nZSB0aGUgZGlyZWN0b3J5IHN0cnVjdHVyZSBm
b3IgaW5kZXhlZCBkYXRhYmFzZXMgb24gZGlzayB3aXRob3V0IGZpcnN0IGNvbnN1bHRpbmcgYSBy
ZXZpZXdlciBmcm9tIEFwcGxlICg8cmRhcjovL3Byb2JsZW0vMTc0NTQ3MTI+KQorICAgIC8vICoq
KioqKioqKgorCisgICAgYXV0byBhZGRSZXN1bHQgPSBtX2lkYkRhdGFiYXNlUGF0aHMuYWRkKHBh
cmFtZXRlcnMuc2Vzc2lvbklELCBTdHJpbmcoKSk7CisgICAgaWYgKCFhZGRSZXN1bHQuaXNOZXdF
bnRyeSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9
IHBhcmFtZXRlcnMuaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5OworICAgIFNhbmRib3hFeHRlbnNp
b246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmluZGV4ZWREYXRhYmFzZURpcmVjdG9y
eUV4dGVuc2lvbkhhbmRsZSk7CisKKyAgICBwb3N0RGF0YWJhc2VUYXNrKGNyZWF0ZUNyb3NzVGhy
ZWFkVGFzaygqdGhpcywgJkRhdGFiYXNlUHJvY2Vzczo6ZW5zdXJlUGF0aEV4aXN0cywgcGFyYW1l
dGVycy5pbmRleGVkRGF0YWJhc2VEaXJlY3RvcnkpKTsKKyNlbmRpZgorfQorCit2b2lkIERhdGFi
YXNlUHJvY2Vzczo6ZW5zdXJlUGF0aEV4aXN0cyhjb25zdCBTdHJpbmcmIHBhdGgpCit7CisgICAg
QVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBpZiAoIW1ha2VBbGxEaXJlY3Rvcmll
cyhwYXRoKSkKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gbWFrZSBhbGwgZGlyZWN0b3Jp
ZXMgZm9yIHBhdGggJyVzJyIsIHBhdGgudXRmOCgpLmRhdGEoKSk7Cit9CisKK3ZvaWQgRGF0YWJh
c2VQcm9jZXNzOjpwb3N0RGF0YWJhc2VUYXNrKENyb3NzVGhyZWFkVGFzayYmIHRhc2spCit7Cisg
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
ZGF0YWJhc2VUYXNrTXV0ZXgpOworCisgICAgbV9kYXRhYmFzZVRhc2tzLmFwcGVuZChXVEZNb3Zl
KHRhc2spKTsKKworICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzXSB7CisgICAgICAgIHBlcmZv
cm1OZXh0RGF0YWJhc2VUYXNrKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgRGF0YWJhc2VQcm9jZXNz
OjpwZXJmb3JtTmV4dERhdGFiYXNlVGFzaygpCit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01h
aW4oKSk7CisKKyAgICBDcm9zc1RocmVhZFRhc2sgdGFzazsKKyAgICB7CisgICAgICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNrTXV0ZXgpOworICAgICAgICBBU1NFUlQoIW1fZGF0
YWJhc2VUYXNrcy5pc0VtcHR5KCkpOworICAgICAgICB0YXNrID0gbV9kYXRhYmFzZVRhc2tzLnRh
a2VGaXJzdCgpOworICAgIH0KKworICAgIHRhc2sucGVyZm9ybVRhc2soKTsKK30KKwordm9pZCBE
YXRhYmFzZVByb2Nlc3M6OmNyZWF0ZURhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpCit7
CisjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCisgICAgSVBDOjpDb25uZWN0aW9uOjpTb2Nr
ZXRQYWlyIHNvY2tldFBhaXIgPSBJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZVBsYXRmb3JtQ29ubmVj
dGlvbigpOworICAgIG1fZGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQoRGF0
YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoc29ja2V0UGFpci5zZXJ2ZXIpKTsK
KyAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpEYXRhYmFzZVBy
b2Nlc3NQcm94eTo6RGlkQ3JlYXRlRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKElQQzo6
QXR0YWNobWVudChzb2NrZXRQYWlyLmNsaWVudCkpLCAwKTsKKyNlbGlmIE9TKERBUldJTikKKyAg
ICAvLyBDcmVhdGUgdGhlIGxpc3RlbmluZyBwb3J0LgorICAgIG1hY2hfcG9ydF90IGxpc3Rlbmlu
Z1BvcnQ7CisgICAgbWFjaF9wb3J0X2FsbG9jYXRlKG1hY2hfdGFza19zZWxmKCksIE1BQ0hfUE9S
VF9SSUdIVF9SRUNFSVZFLCAmbGlzdGVuaW5nUG9ydCk7CisKKyAgICAvLyBDcmVhdGUgYSBsaXN0
ZW5pbmcgY29ubmVjdGlvbi4KKyAgICBhdXRvIGNvbm5lY3Rpb24gPSBEYXRhYmFzZVRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIobGlzdGVu
aW5nUG9ydCkpOworICAgIG1fZGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQo
V1RGTW92ZShjb25uZWN0aW9uKSk7CisKKyAgICBJUEM6OkF0dGFjaG1lbnQgY2xpZW50UG9ydChs
aXN0ZW5pbmdQb3J0LCBNQUNIX01TR19UWVBFX01BS0VfU0VORCk7CisgICAgcGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6RGF0YWJhc2VQcm9jZXNzUHJveHk6OkRpZENy
ZWF0ZURhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjbGllbnRQb3J0KSwgMCk7CisjZWxz
ZQorICAgIG5vdEltcGxlbWVudGVkKCk7CisjZW5kaWYKK30KKwordm9pZCBEYXRhYmFzZVByb2Nl
c3M6OmZldGNoV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNp
dGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyNp
ZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0g
W3RoaXMsIGNhbGxiYWNrSURdKGNvbnN0IFdlYnNpdGVEYXRhJiB3ZWJzaXRlRGF0YSkgeworICAg
ICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpEYXRhYmFzZVBy
b2Nlc3NQcm94eTo6RGlkRmV0Y2hXZWJzaXRlRGF0YShjYWxsYmFja0lELCB3ZWJzaXRlRGF0YSks
IDApOworICAgIH07CisKKyAgICBTdHJpbmcgcGF0aCA9IG1faWRiRGF0YWJhc2VQYXRocy5nZXQo
c2Vzc2lvbklEKTsKKyAgICBpZiAocGF0aC5pc0VtcHR5KCkgfHwgIXdlYnNpdGVEYXRhVHlwZXMu
Y29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpJbmRleGVkREJEYXRhYmFzZXMpKSB7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBp
ZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkluZGV4ZWREQkRh
dGFiYXNlcykpIHsKKyAgICAgICAgLy8gRklYTUU6IFBpY2sgdGhlIHJpZ2h0IGRhdGFiYXNlIHN0
b3JlIGJhc2VkIG9uIHRoZSBzZXNzaW9uIElELgorICAgICAgICBwb3N0RGF0YWJhc2VUYXNrKENy
b3NzVGhyZWFkVGFzayhbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgcGF0aCA9IFdURk1vdmUocGF0aCldKCkgbXV0YWJsZSB7CisgICAgICAgICAg
ICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlciksIHNlY3VyaXR5T3JpZ2lucyA9IGluZGV4ZWREYXRhYmFzZU9yaWdp
bnMocGF0aCldIHsKKyAgICAgICAgICAgICAgICBXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YTsKKyAg
ICAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHNlY3VyaXR5T3JpZ2luIDogc2VjdXJpdHlP
cmlnaW5zKQorICAgICAgICAgICAgICAgICAgICB3ZWJzaXRlRGF0YS5lbnRyaWVzLmFwcGVuZCh7
IHNlY3VyaXR5T3JpZ2luLCBXZWJzaXRlRGF0YVR5cGU6OkluZGV4ZWREQkRhdGFiYXNlcywgMCB9
KTsKKworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdlYnNpdGVEYXRhKTsKKyAg
ICAgICAgICAgIH0pOworICAgICAgICB9KSk7CisgICAgfQorI2VuZGlmCit9CisKK3ZvaWQgRGF0
YWJhc2VQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNo
cm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpCit7CisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisgICAgYXV0byBjb21w
bGV0aW9uSGFuZGxlciA9IFt0aGlzLCBjYWxsYmFja0lEXSgpIHsKKyAgICAgICAgcGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6RGF0YWJhc2VQcm9jZXNzUHJveHk6OkRp
ZERlbGV0ZVdlYnNpdGVEYXRhKGNhbGxiYWNrSUQpLCAwKTsKKyAgICB9OworCisgICAgaWYgKCF3
ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6SW5kZXhlZERCRGF0YWJh
c2VzKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWRiU2VydmVyKHNlc3Npb25JRCkuY2xvc2VBbmREZWxldGVEYXRhYmFzZXNN
b2RpZmllZFNpbmNlKG1vZGlmaWVkU2luY2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
KyNlbmRpZgorfQorCit2b2lkIERhdGFiYXNlUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JP
cmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0
YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+
JiBzZWN1cml0eU9yaWdpbkRhdGFzLCB1aW50NjRfdCBjYWxsYmFja0lEKQoreworI2lmIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQorICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywg
Y2FsbGJhY2tJRF0oKSB7CisgICAgICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6OkRhdGFiYXNlUHJvY2Vzc1Byb3h5OjpEaWREZWxldGVXZWJzaXRlRGF0YUZvck9y
aWdpbnMoY2FsbGJhY2tJRCksIDApOworICAgIH07CisKKyAgICBpZiAoIXdlYnNpdGVEYXRhVHlw
ZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpJbmRleGVkREJEYXRhYmFzZXMpKSB7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBp
ZGJTZXJ2ZXIoc2Vzc2lvbklEKS5jbG9zZUFuZERlbGV0ZURhdGFiYXNlc0Zvck9yaWdpbnMoc2Vj
dXJpdHlPcmlnaW5EYXRhcywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworI2VuZGlmCit9
CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQordm9pZCBEYXRhYmFzZVByb2Nlc3M6
OmdyYW50U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9icyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0
aHMsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5JiBoYW5kbGVzKQoreworICAg
IEFTU0VSVChwYXRocy5zaXplKCkgPT0gaGFuZGxlcy5zaXplKCkpOworCisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBwYXRocy5zaXplKCk7ICsraSkgeworICAgICAgICBhdXRvIHJlc3VsdCA9
IG1fYmxvYlRlbXBvcmFyeUZpbGVTYW5kYm94RXh0ZW5zaW9ucy5hZGQocGF0aHNbaV0sIFNhbmRi
b3hFeHRlbnNpb246OmNyZWF0ZShoYW5kbGVzW2ldKSk7CisgICAgICAgIEFTU0VSVF9VTlVTRUQo
cmVzdWx0LCByZXN1bHQuaXNOZXdFbnRyeSk7CisgICAgfQorfQorI2VuZGlmCisKKyNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKK3ZvaWQgRGF0YWJhc2VQcm9jZXNzOjpwcmVwYXJlRm9yQWNj
ZXNzVG9UZW1wb3JhcnlGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBpZiAoYXV0byBl
eHRlbnNpb24gPSBtX2Jsb2JUZW1wb3JhcnlGaWxlU2FuZGJveEV4dGVuc2lvbnMuZ2V0KHBhdGgp
KQorICAgICAgICBleHRlbnNpb24tPmNvbnN1bWUoKTsKK30KKwordm9pZCBEYXRhYmFzZVByb2Nl
c3M6OmFjY2Vzc1RvVGVtcG9yYXJ5RmlsZUNvbXBsZXRlKGNvbnN0IFN0cmluZyYgcGF0aCkKK3sK
KyAgICAvLyBXZSd2ZSBlaXRoZXIgaGFyZCBsaW5rZWQgdGhlIHRlbXBvcmFyeSBibG9iIGZpbGUg
dG8gdGhlIGRhdGFiYXNlIGRpcmVjdG9yeSwgY29waWVkIGl0IHRoZXJlLAorICAgIC8vIG9yIHRo
ZSB0cmFuc2FjdGlvbiBpcyBiZWluZyBhYm9ydGVkLgorICAgIC8vIEluIGFueSBvZiB0aG9zZSBj
YXNlcywgd2UgY2FuIGRlbGV0ZSB0aGUgdGVtcG9yYXJ5IGJsb2IgZmlsZSBub3cuCisgICAgZGVs
ZXRlRmlsZShwYXRoKTsKKworICAgIGlmIChhdXRvIGV4dGVuc2lvbiA9IG1fYmxvYlRlbXBvcmFy
eUZpbGVTYW5kYm94RXh0ZW5zaW9ucy50YWtlKHBhdGgpKQorICAgICAgICBleHRlbnNpb24tPnJl
dm9rZSgpOworfQorCitWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBEYXRhYmFz
ZVByb2Nlc3M6OmluZGV4ZWREYXRhYmFzZU9yaWdpbnMoY29uc3QgU3RyaW5nJiBwYXRoKQorewor
ICAgIGlmIChwYXRoLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIFZlY3Rv
cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IHNlY3VyaXR5T3JpZ2luczsKKyAgICBmb3Ig
KGF1dG8mIG9yaWdpblBhdGggOiBsaXN0RGlyZWN0b3J5KHBhdGgsICIqIikpIHsKKyAgICAgICAg
U3RyaW5nIGRhdGFiYXNlSWRlbnRpZmllciA9IHBhdGhHZXRGaWxlTmFtZShvcmlnaW5QYXRoKTsK
KworICAgICAgICBpZiAoYXV0byBzZWN1cml0eU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luRGF0YTo6
ZnJvbURhdGFiYXNlSWRlbnRpZmllcihkYXRhYmFzZUlkZW50aWZpZXIpKQorICAgICAgICAgICAg
c2VjdXJpdHlPcmlnaW5zLmFwcGVuZChXVEZNb3ZlKCpzZWN1cml0eU9yaWdpbikpOworICAgIH0K
KworICAgIHJldHVybiBzZWN1cml0eU9yaWdpbnM7Cit9CisKKyNlbmRpZgorCisjaWYgRU5BQkxF
KFNBTkRCT1hfRVhURU5TSU9OUykKK3ZvaWQgRGF0YWJhc2VQcm9jZXNzOjpnZXRTYW5kYm94RXh0
ZW5zaW9uc0ZvckJsb2JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBXVEY6
OkZ1bmN0aW9uPHZvaWQgKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5JiYpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIHN0YXRpYyB1aW50NjRfdCBsYXN0UmVxdWVzdElEOworCisg
ICAgdWludDY0X3QgcmVxdWVzdElEID0gKytsYXN0UmVxdWVzdElEOworICAgIG1fc2FuZGJveEV4
dGVuc2lvbkZvckJsb2JzQ29tcGxldGlvbkhhbmRsZXJzLnNldChyZXF1ZXN0SUQsIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpEYXRhYmFzZVByb2Nlc3NQcm94eTo6R2V0U2FuZGJveEV4dGVuc2lvbnNGb3JC
bG9iRmlsZXMocmVxdWVzdElELCBmaWxlbmFtZXMpLCAwKTsKK30KKwordm9pZCBEYXRhYmFzZVBy
b2Nlc3M6OmRpZEdldFNhbmRib3hFeHRlbnNpb25zRm9yQmxvYkZpbGVzKHVpbnQ2NF90IHJlcXVl
c3RJRCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmJiBoYW5kbGVzKQoreworICAgIGlm
IChhdXRvIGhhbmRsZXIgPSBtX3NhbmRib3hFeHRlbnNpb25Gb3JCbG9ic0NvbXBsZXRpb25IYW5k
bGVycy50YWtlKHJlcXVlc3RJRCkpCisgICAgICAgIGhhbmRsZXIoV1RGTW92ZShoYW5kbGVzKSk7
Cit9CisjZW5kaWYKKworI2lmICFQTEFURk9STShDT0NPQSkKK3ZvaWQgRGF0YWJhc2VQcm9jZXNz
Ojppbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFt
ZXRlcnMmKQoreworfQorCit2b2lkIERhdGFiYXNlUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NO
YW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCit7Cit9CisK
K3ZvaWQgRGF0YWJhc2VQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nl
c3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0
ZXJzJikKK3sKK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdC9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGZk
YWM4YjBmZDQ0ZWIxYWUyN2JlMGFiNGI5YmYwZGQ5MWY5ODExMQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5oCkBAIC0wLDAg
KzEsMTI2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDaGlsZFBy
b2Nlc3MuaCIKKyNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9JREJCYWNraW5nU3RvcmUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0lEQlNlcnZlci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8V2ViQ29yZS9VbmlxdWVJREJE
YXRhYmFzZS5oPgorI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFRhc2suaD4KKyNpbmNsdWRlIDx3
dGYvRnVuY3Rpb24uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IFNlY3VyaXR5T3Jp
Z2luRGF0YTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIERhdGFiYXNlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbjsKK2VudW0gY2xhc3MgV2Vic2l0ZURhdGFUeXBlOworc3RydWN0IERh
dGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKKworY2xhc3MgRGF0YWJhc2VQcm9jZXNz
IDogcHVibGljIENoaWxkUHJvY2VzcworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAg
ICwgcHVibGljIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCQmFja2luZ1N0b3JlVGVtcG9yYXJ5Rmls
ZUhhbmRsZXIKKyNlbmRpZgoreworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERhdGFiYXNlUHJv
Y2Vzcyk7CisgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVzdHJveWVkPERhdGFiYXNlUHJvY2Vzcz47
CitwdWJsaWM6CisgICAgc3RhdGljIERhdGFiYXNlUHJvY2VzcyYgc2luZ2xldG9uKCk7CisgICAg
fkRhdGFiYXNlUHJvY2VzcygpOworCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisgICAg
V2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXImIGlkYlNlcnZlcihXZWJDb3JlOjpTZXNzaW9u
SUQpOworI2VuZGlmCisKKyAgICBXb3JrUXVldWUmIHF1ZXVlKCkgeyByZXR1cm4gbV9xdWV1ZS5n
ZXQoKTsgfQorCisgICAgdm9pZCBwb3N0RGF0YWJhc2VUYXNrKENyb3NzVGhyZWFkVGFzayYmKTsK
KworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgIC8vIFdlYkNvcmU6OklEQlNlcnZl
cjo6SURCQmFja2luZ1N0b3JlRmlsZUhhbmRsZXIKKyAgICB2b2lkIHByZXBhcmVGb3JBY2Nlc3NU
b1RlbXBvcmFyeUZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKSBmaW5hbDsKKyAgICB2b2lkIGFjY2Vz
c1RvVGVtcG9yYXJ5RmlsZUNvbXBsZXRlKGNvbnN0IFN0cmluZyYgcGF0aCkgZmluYWw7CisjZW5k
aWYKKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisgICAgdm9pZCBnZXRTYW5kYm94
RXh0ZW5zaW9uc0ZvckJsb2JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBX
VEY6OkZ1bmN0aW9uPHZvaWQgKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5JiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKTsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIERhdGFiYXNlUHJvY2Vz
cygpOworCisgICAgLy8gQ2hpbGRQcm9jZXNzCisgICAgdm9pZCBpbml0aWFsaXplUHJvY2Vzcyhj
b25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGluaXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXph
dGlvblBhcmFtZXRlcnMmKSBvdmVycmlkZTsKKyAgICB2b2lkIGluaXRpYWxpemVTYW5kYm94KGNv
bnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYsIFNhbmRib3hJbml0aWFs
aXphdGlvblBhcmFtZXRlcnMmKSBvdmVycmlkZTsKKyAgICB2b2lkIGluaXRpYWxpemVDb25uZWN0
aW9uKElQQzo6Q29ubmVjdGlvbiopIG92ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkVGVybWluYXRl
KCkgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVEYXRhYmFzZVByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpOworCisgICAgLy8gTWVzc2FnZSBIYW5kbGVycworICAgIHZvaWQgaW5pdGlh
bGl6ZVdlYnNpdGVEYXRhU3RvcmUoY29uc3QgRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzJik7CisgICAgdm9pZCBjcmVhdGVEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKTsK
KworICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlvblNl
dDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
OworICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25T
ZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVt
X2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwor
ICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCwg
T3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgY29uc3QgVmVjdG9y
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIHVpbnQ2NF90IGNhbGxiYWNr
SUQpOworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisgICAgdm9pZCBncmFudFNhbmRi
b3hFeHRlbnNpb25zRm9yQmxvYnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzLCBjb25zdCBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYpOworICAgIHZvaWQgZGlkR2V0U2FuZGJveEV4
dGVuc2lvbnNGb3JCbG9iRmlsZXModWludDY0X3QgcmVxdWVzdElELCBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGVBcnJheSYmKTsKKyNlbmRpZgorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CisgICAgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gaW5kZXhlZERhdGFiYXNl
T3JpZ2lucyhjb25zdCBTdHJpbmcmIHBhdGgpOworI2VuZGlmCisKKyAgICAvLyBGb3IgZXhlY3V0
aW9uIG9uIHdvcmsgcXVldWUgdGhyZWFkIG9ubHkKKyAgICB2b2lkIHBlcmZvcm1OZXh0RGF0YWJh
c2VUYXNrKCk7CisgICAgdm9pZCBlbnN1cmVQYXRoRXhpc3RzKGNvbnN0IFN0cmluZyYpOworCisg
ICAgVmVjdG9yPFJlZlB0cjxEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+PiBtX2RhdGFi
YXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbnM7CisKKyAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVl
OworCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisgICAgSGFzaE1hcDxXZWJDb3JlOjpT
ZXNzaW9uSUQsIFN0cmluZz4gbV9pZGJEYXRhYmFzZVBhdGhzOworICAgIEhhc2hNYXA8V2ViQ29y
ZTo6U2Vzc2lvbklELCBSZWZQdHI8V2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI+PiBtX2lk
YlNlcnZlcnM7CisjZW5kaWYKKyAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPFNhbmRib3hFeHRl
bnNpb24+PiBtX2Jsb2JUZW1wb3JhcnlGaWxlU2FuZGJveEV4dGVuc2lvbnM7CisgICAgSGFzaE1h
cDx1aW50NjRfdCwgV1RGOjpGdW5jdGlvbjx2b2lkIChTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVB
cnJheSYmKT4+IG1fc2FuZGJveEV4dGVuc2lvbkZvckJsb2JzQ29tcGxldGlvbkhhbmRsZXJzOwor
CisgICAgRGVxdWU8Q3Jvc3NUaHJlYWRUYXNrPiBtX2RhdGFiYXNlVGFza3M7CisgICAgTG9jayBt
X2RhdGFiYXNlVGFza011dGV4OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQyMGMyOGM3MmZmZDY2OTkzMzEyNzJkNzkwYmQyMTI1Mjgw
ZjBkNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvRGF0YWJhc2VQcm9jZXNzL0Rh
dGFiYXNlUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM3IEBACisjIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisj
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IERhdGFiYXNlUHJvY2VzcyBM
ZWdhY3lSZWNlaXZlciB7CisgICAgIyBJbml0aWFsaXplcyBhIFdlYnNpdGVEYXRhU3RvcmUvU2Vz
c2lvbiBpbiB0aGUgRGF0YWJhc2VQcm9jZXNzIHdpdGggdGhlIGNvcnJlY3QgcGFyYW1ldGVycwor
ICAgIEluaXRpYWxpemVXZWJzaXRlRGF0YVN0b3JlKHN0cnVjdCBXZWJLaXQ6OkRhdGFiYXNlUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBwcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKQorCisgICAg
IyBDcmVhdGVzIGEgY29ubmVjdGlvbiBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIGEgV2ViUHJvY2Vz
cworICAgIENyZWF0ZURhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpCisKKyAgICBGZXRj
aFdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJL
aXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgdWludDY0X3QgY2FsbGJhY2tJ
RCkKKyAgICBEZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBP
cHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6
Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3Qg
Y2FsbGJhY2tJRCkKKyAgICBEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJz
aXRlRGF0YVR5cGVzLCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5z
LCB1aW50NjRfdCBjYWxsYmFja0lEKQorI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisg
ICAgR3JhbnRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JzKFZlY3RvcjxTdHJpbmc+IHBhdGhzLCBX
ZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IGV4dGVuc2lvbnMpCisgICAgRGlk
R2V0U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9iRmlsZXModWludDY0X3QgcmVxdWVzdElELCBXZWJL
aXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IGV4dGVuc2lvbnMpCisjZW5kaWYKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L0RhdGFiYXNlUHJvY2Vzcy9EYXRh
YmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhZDZhYTJhNmViNDkx
NWE3ODYxZDkzNTUyYTI3YjRmNmEyYmZkM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBA
IC0wLDAgKzEsMTI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIgorCisjaW5jbHVkZSAiRGF0YWJh
c2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgi
CisjaW5jbHVkZSAiV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVmPERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bj4gRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmll
cikpOworfQorCitEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OkRhdGFiYXNlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklk
ZW50aWZpZXIpCisgICAgOiBtX2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVTZXJ2
ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcykpCit7CisgICAgbV9jb25u
ZWN0aW9uLT5zZXRPbmx5U2VuZE1lc3NhZ2VzQXNEaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1Jl
cGx5V2hlblByb2Nlc3NpbmdTdWNoQU1lc3NhZ2UodHJ1ZSk7CisgICAgbV9jb25uZWN0aW9uLT5v
cGVuKCk7Cit9CisKK0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6fkRhdGFiYXNlVG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbigpCit7CisKK30KKwordm9pZCBEYXRhYmFzZVRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNl
aXZlck5hbWUoKSA9PSBNZXNzYWdlczo6RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgZGlkUmVjZWl2ZURhdGFiYXNlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyAgICBpZiAoZGVj
b2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25U
b0NsaWVudDo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGF1dG8gaXRlcmF0b3Ig
PSBtX3dlYklEQkNvbm5lY3Rpb25zLmZpbmQoZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOworICAg
ICAgICBpZiAoaXRlcmF0b3IgIT0gbV93ZWJJREJDb25uZWN0aW9ucy5lbmQoKSkKKyAgICAgICAg
ICAgIGl0ZXJhdG9yLT52YWx1ZS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rl
cik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworfQorCit2b2lkIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVy
JiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQor
eworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6RGF0
YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAg
ICAgICAgZGlkUmVjZWl2ZVN5bmNEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdl
KGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBEYXRhYmFzZVRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCit7CisjaWYgRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCisgICAgYXV0byBjb25uZWN0aW9ucyA9IG1fd2ViSURCQ29u
bmVjdGlvbnM7CisgICAgZm9yIChhdXRvJiBjb25uZWN0aW9uIDogY29ubmVjdGlvbnMudmFsdWVz
KCkpCisgICAgICAgIGNvbm5lY3Rpb24tPmRpc2Nvbm5lY3RlZEZyb21XZWJQcm9jZXNzKCk7CisK
KyAgICBtX3dlYklEQkNvbm5lY3Rpb25zLmNsZWFyKCk7CisjZW5kaWYKK30KKwordm9pZCBEYXRh
YmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJ
UEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkKK3sKKworfQorCisjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCisKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUNvbm5lY3Rpb25Ub1Nl
cnZlcklkZW50aWZpZXIoKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAg
c3RhdGljIHVpbnQ2NF90IGlkZW50aWZpZXIgPSAwOworICAgIHJldHVybiArK2lkZW50aWZpZXI7
Cit9CisKK3ZvaWQgRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjplc3RhYmxpc2hJREJD
b25uZWN0aW9uVG9TZXJ2ZXIoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3Qm
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyID0gZ2VuZXJhdGVDb25uZWN0aW9uVG9TZXJ2ZXJJZGVudGlmaWVyKCk7CisgICAgTE9H
KEluZGV4ZWREQiwgIkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZXN0YWJsaXNoSURC
Q29ubmVjdGlvblRvU2VydmVyIC0gJSIgUFJJdTY0LCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
cik7CisgICAgQVNTRVJUKCFtX3dlYklEQkNvbm5lY3Rpb25zLmNvbnRhaW5zKHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyKSk7CisKKyAgICBtX3dlYklEQkNvbm5lY3Rpb25zLnNldChzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpjcmVhdGUoKnRo
aXMsIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBzZXNzaW9uSUQpKTsKK30KKwordm9pZCBE
YXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OnJlbW92ZUlEQkNvbm5lY3Rpb25Ub1NlcnZl
cih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQobV93
ZWJJREJDb25uZWN0aW9ucy5jb250YWlucyhzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpOwor
CisgICAgYXV0byBjb25uZWN0aW9uID0gbV93ZWJJREJDb25uZWN0aW9ucy50YWtlKHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICBjb25uZWN0aW9uLT5kaXNjb25uZWN0ZWRGcm9tV2Vi
UHJvY2VzcygpOworfQorI2VuZGlmCisKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5NWE4ZDNhMzk4MWYzZjg4NTQwOTA2YzM5
MDhiYTExMGY1YTdkNjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0RhdGFiYXNl
UHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtMCwwICsxLDcxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisj
aW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQu
aD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OworCitjbGFzcyBEYXRhYmFzZVRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24+LCBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQsIHB1YmxpYyBJUEM6Ok1lc3Nh
Z2VTZW5kZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RGF0YWJhc2VUb1dlYlByb2Nlc3ND
b25uZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKKyAgICB+RGF0
YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCk7CisKKyAgICBJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAg
ICBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyKTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZvaWQg
ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZl
SW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVz
c2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJy
aWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZURhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNl
aXZlU3luY0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKTsKKwor
ICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNl
bmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7IHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7IH0K
KyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIG92ZXJyaWRlIHsgcmV0
dXJuIDA7IH0KKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgIC8vIE1lc3NhZ2Vz
IGhhbmRsZXJzIChNb2Rlcm4gSURCKQorICAgIHZvaWQgZXN0YWJsaXNoSURCQ29ubmVjdGlvblRv
U2VydmVyKFdlYkNvcmU6OlNlc3Npb25JRCwgdWludDY0X3QmIHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyKTsKKyAgICB2b2lkIHJlbW92ZUlEQkNvbm5lY3Rpb25Ub1NlcnZlcih1aW50NjRfdCBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7CisKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQ
dHI8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Pj4gbV93ZWJJREJDb25uZWN0aW9uczsKKyNlbmRp
ZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+
IG1fY29ubmVjdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlNDk4M2NlMWQ3
YTFmYzY0YjYzYjRhODBkNTQ2YWM3ZDJhNmNmZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KQEAgLTAsMCArMSwyOSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IK
KyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCittZXNzYWdlcyAtPiBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24gTGVn
YWN5UmVjZWl2ZXIgeworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgICMgQ3JlYXRl
cyBhIGNvbm5lY3Rpb24gZm9yIGNvbW11bmljYXRpb24gd2l0aCBhIFdlYlByb2Nlc3MKKyAgICBF
c3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25J
RCkgLT4gKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIFJlbW92ZUlE
QkNvbm5lY3Rpb25Ub1NlcnZlcih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikK
KyNlbmRpZgorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EYXRhYmFzZVByb2Nlc3MvRW50
cnlQb2ludC9tYWMvWFBDU2VydmljZS9EYXRhYmFzZVNlcnZpY2UvSW5mby5wbGlzdCBiL1NvdXJj
ZS9XZWJLaXQvRGF0YWJhc2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvRGF0YWJh
c2VTZXJ2aWNlL0luZm8ucGxpc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWY2NmE1MTcyYjgzMmQyMDI1NmU0ZTM5
NDBmZjVlNGM4YzQwMWE0NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvRGF0YWJh
c2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvRGF0YWJhc2VTZXJ2aWNlL0luZm8u
cGxpc3QKQEAgLTAsMCArMSw0MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRG
LTgiPz4KKzwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9F
TiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgorPHBs
aXN0IHZlcnNpb249IjEuMCI+Cis8ZGljdD4KKwk8a2V5PkNGQnVuZGxlR2V0SW5mb1N0cmluZzwv
a2V5PgorCTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn0sIENvcHlyaWdodCAyMDAzLTIwMTcgQXBw
bGUgSW5jLjwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVEZXZlbG9wbWVudFJlZ2lvbjwva2V5Pgor
CTxzdHJpbmc+RW5nbGlzaDwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVFeGVjdXRhYmxlPC9rZXk+
CisJPHN0cmluZz4ke0VYRUNVVEFCTEVfTkFNRX08L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlSWRl
bnRpZmllcjwva2V5PgorCTxzdHJpbmc+JHtQUk9EVUNUX0JVTkRMRV9JREVOVElGSUVSfTwvc3Ry
aW5nPgorCTxrZXk+Q0ZCdW5kbGVJbmZvRGljdGlvbmFyeVZlcnNpb248L2tleT4KKwk8c3RyaW5n
PjYuMDwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVOYW1lPC9rZXk+CisJPHN0cmluZz4ke1BST0RV
Q1RfTkFNRX08L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlUGFja2FnZVR5cGU8L2tleT4KKwk8c3Ry
aW5nPlhQQyE8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+
CisJPHN0cmluZz4ke1NIT1JUX1ZFUlNJT05fU1RSSU5HfTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5k
bGVTaWduYXR1cmU8L2tleT4KKwk8c3RyaW5nPj8/Pz88L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxl
VmVyc2lvbjwva2V5PgorCTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn08L3N0cmluZz4KKwk8a2V5
PkxTRmlsZVF1YXJhbnRpbmVFbmFibGVkPC9rZXk+CisJPHRydWUvPgorCTxrZXk+V2ViS2l0RW50
cnlQb2ludDwva2V5PgorCTxzdHJpbmc+RGF0YWJhc2VTZXJ2aWNlSW5pdGlhbGl6ZXI8L3N0cmlu
Zz4KKwk8a2V5PkxTVUlFbGVtZW50PC9rZXk+CisJPHRydWUvPgorCTxrZXk+WFBDU2VydmljZTwv
a2V5PgorCTxkaWN0PgorCQk8a2V5PlJ1bkxvb3BUeXBlPC9rZXk+CisJCTxzdHJpbmc+TlNSdW5M
b29wPC9zdHJpbmc+CisJCTxrZXk+U2VydmljZVR5cGU8L2tleT4KKwkJPHN0cmluZz5BcHBsaWNh
dGlvbjwvc3RyaW5nPgorCQk8a2V5Pl9NdWx0aXBsZUluc3RhbmNlczwva2V5PgorCQk8dHJ1ZS8+
CisJPC9kaWN0PgorPC9kaWN0PgorPC9wbGlzdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
RGF0YWJhc2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvRGF0YWJhc2VTZXJ2aWNl
RW50cnlQb2ludC5tbSBiL1NvdXJjZS9XZWJLaXQvRGF0YWJhc2VQcm9jZXNzL0VudHJ5UG9pbnQv
bWFjL1hQQ1NlcnZpY2UvRGF0YWJhc2VTZXJ2aWNlRW50cnlQb2ludC5tbQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
MmU4OTNiODI5M2VlM2U0ODkxYTNhMjgxMTY0MTcwZDFiZDFkMTU0Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9EYXRhYmFzZVByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2Vydmlj
ZS9EYXRhYmFzZVNlcnZpY2VFbnRyeVBvaW50Lm1tCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2ltcG9ydCAiRW52aXJvbm1lbnRVdGlsaXRpZXMu
aCIKKyNpbXBvcnQgIkRhdGFiYXNlUHJvY2Vzcy5oIgorI2ltcG9ydCAiV0tCYXNlLmgiCisjaW1w
b3J0ICJYUENTZXJ2aWNlRW50cnlQb2ludC5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0Owor
CitleHRlcm4gIkMiIFdLX0VYUE9SVCB2b2lkIERhdGFiYXNlU2VydmljZUluaXRpYWxpemVyKHhw
Y19jb25uZWN0aW9uX3QgY29ubmVjdGlvbiwgeHBjX29iamVjdF90IGluaXRpYWxpemVyTWVzc2Fn
ZSwgeHBjX29iamVjdF90IHByaW9yaXR5Qm9vc3RNZXNzYWdlKTsKKwordm9pZCBEYXRhYmFzZVNl
cnZpY2VJbml0aWFsaXplcih4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24sIHhwY19vYmplY3Rf
dCBpbml0aWFsaXplck1lc3NhZ2UsIHhwY19vYmplY3RfdCBwcmlvcml0eUJvb3N0TWVzc2FnZSkK
K3sKKyAgICBYUENTZXJ2aWNlSW5pdGlhbGl6ZXI8RGF0YWJhc2VQcm9jZXNzLCBYUENTZXJ2aWNl
SW5pdGlhbGl6ZXJEZWxlZ2F0ZT4oYWRvcHRPU09iamVjdChjb25uZWN0aW9uKSwgaW5pdGlhbGl6
ZXJNZXNzYWdlLCBwcmlvcml0eUJvb3N0TWVzc2FnZSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0RhdGFiYXNlUHJvY2Vzcy9FbnRyeVBvaW50L3VuaXgvRGF0YWJhc2VQcm9jZXNzTWFp
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0L0RhdGFiYXNlUHJvY2Vzcy9FbnRyeVBvaW50L3VuaXgvRGF0
YWJhc2VQcm9jZXNzTWFpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQ4YjgxODM4OGE3ZDEyZDg0OTgwMmFk
OGU1ZGIwOTA1MGNkODNjNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvRGF0YWJh
c2VQcm9jZXNzL0VudHJ5UG9pbnQvdW5peC9EYXRhYmFzZVByb2Nlc3NNYWluLmNwcApAQCAtMCww
ICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEYXRhYmFzZVByb2Nlc3NNYWluVW5p
eC5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitpbnQgbWFpbihpbnQgYXJnYywgY2hh
cioqIGFyZ3YpCit7CisgICAgcmV0dXJuIERhdGFiYXNlUHJvY2Vzc01haW5Vbml4KGFyZ2MsIGFy
Z3YpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EYXRhYmFzZVByb2Nlc3MvSW5kZXhl
ZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0RhdGFiYXNl
UHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jMDE2MzNiODg0NTQ3YmMzYjFjODhiZWNjNGYyNTVhMGUxNTQ2ZDQxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudC5jcHAKQEAgLTAsMCArMSwzNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgiCisKKyNp
ZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIK
KyNpbmNsdWRlICJEYXRhYmFzZVByb2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRD
b2RlcnMuaCIKKyNpbmNsdWRlICJXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlcy5oIgor
I2luY2x1ZGUgIldlYklEQlJlc3VsdC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSURCRXJyb3IuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0lEQkdldEFsbFJlY29yZHNEYXRhLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9JREJHZXRSZWNvcmREYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JREJSZXN1bHREYXRh
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JREJWYWx1ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGhy
ZWFkU2FmZURhdGFCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1VuaXF1ZUlEQkRhdGFiYXNl
Q29ubmVjdGlvbi5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK1JlZjxXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+IFdlYklEQkNvbm5lY3Rpb25U
b0NsaWVudDo6Y3JlYXRlKERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbiYgY29ubmVjdGlv
biwgdWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlc3Npb25J
RCBzZXNzaW9uSUQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50KGNvbm5lY3Rpb24sIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBzZXNzaW9u
SUQpKTsKK30KKworV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpXZWJJREJDb25uZWN0aW9uVG9D
bGllbnQoRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50NjRf
dCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKKyAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQorICAgICwgbV9pZGVudGlmaWVyKHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQor
eworICAgIHJlbGF4QWRvcHRpb25SZXF1aXJlbWVudCgpOworICAgIG1fY29ubmVjdGlvblRvQ2xp
ZW50ID0gSURCU2VydmVyOjpJREJDb25uZWN0aW9uVG9DbGllbnQ6OmNyZWF0ZSgqdGhpcyk7Cisg
ICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIobV9zZXNzaW9uSUQpLnJl
Z2lzdGVyQ29ubmVjdGlvbigqbV9jb25uZWN0aW9uVG9DbGllbnQpOworfQorCitXZWJJREJDb25u
ZWN0aW9uVG9DbGllbnQ6On5XZWJJREJDb25uZWN0aW9uVG9DbGllbnQoKQoreworfQorCit2b2lk
IFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlzY29ubmVjdGVkRnJvbVdlYlByb2Nlc3MoKQor
eworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKG1fc2Vzc2lvbklE
KS51bnJlZ2lzdGVyQ29ubmVjdGlvbigqbV9jb25uZWN0aW9uVG9DbGllbnQpOworfQorCitJUEM6
OkNvbm5lY3Rpb24qIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6bWVzc2FnZVNlbmRlckNvbm5l
Y3Rpb24oKQoreworICAgIHJldHVybiAmbV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCk7Cit9CisK
K1dlYkNvcmU6OklEQlNlcnZlcjo6SURCQ29ubmVjdGlvblRvQ2xpZW50JiBXZWJJREJDb25uZWN0
aW9uVG9DbGllbnQ6OmNvbm5lY3Rpb25Ub0NsaWVudCgpCit7CisgICAgcmV0dXJuICptX2Nvbm5l
Y3Rpb25Ub0NsaWVudDsKK30KKwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZERl
bGV0ZURhdGFiYXNlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCit7
CisgICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpEaWREZWxldGVE
YXRhYmFzZShyZXN1bHREYXRhKSk7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
OjpkaWRPcGVuRGF0YWJhc2UoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0
YSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZE9w
ZW5EYXRhYmFzZShyZXN1bHREYXRhKSk7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50OjpkaWRBYm9ydFRyYW5zYWN0aW9uKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRp
ZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJFcnJvciYgZXJy
b3IpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpEaWRB
Ym9ydFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uSWRlbnRpZmllciwgZXJyb3IpKTsKK30KKwordm9p
ZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZENvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IFdl
YkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpJREJFcnJvciYgZXJyb3IpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViSURC
Q29ubmVjdGlvblRvU2VydmVyOjpEaWRDb21taXRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbklkZW50
aWZpZXIsIGVycm9yKSk7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRD
cmVhdGVPYmplY3RTdG9yZShjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJiByZXN1bHREYXRh
KQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6RGlkQ3Jl
YXRlT2JqZWN0U3RvcmUocmVzdWx0RGF0YSkpOworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25U
b0NsaWVudDo6ZGlkRGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0
YSYgcmVzdWx0RGF0YSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9T
ZXJ2ZXI6OkRpZERlbGV0ZU9iamVjdFN0b3JlKHJlc3VsdERhdGEpKTsKK30KKwordm9pZCBXZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZFJlbmFtZU9iamVjdFN0b3JlKGNvbnN0IFdlYkNvcmU6
OklEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViSURC
Q29ubmVjdGlvblRvU2VydmVyOjpEaWRSZW5hbWVPYmplY3RTdG9yZShyZXN1bHREYXRhKSk7Cit9
CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRDbGVhck9iamVjdFN0b3JlKGNv
bnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCit7CisgICAgc2VuZChNZXNz
YWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpEaWRDbGVhck9iamVjdFN0b3JlKHJlc3Vs
dERhdGEpKTsKK30KKwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZENyZWF0ZUlu
ZGV4KGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCit7CisgICAgc2Vu
ZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpEaWRDcmVhdGVJbmRleChyZXN1
bHREYXRhKSk7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWREZWxldGVJ
bmRleChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJiByZXN1bHREYXRhKQoreworICAgIHNl
bmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6RGlkRGVsZXRlSW5kZXgocmVz
dWx0RGF0YSkpOworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkUmVuYW1l
SW5kZXgoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKK3sKKyAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZFJlbmFtZUluZGV4KHJl
c3VsdERhdGEpKTsKK30KKwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZFB1dE9y
QWRkKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCit7CisgICAgc2Vu
ZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpEaWRQdXRPckFkZChyZXN1bHRE
YXRhKSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIE1lc3NhZ2VUeXBlPiB2b2lkIFdlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudDo6aGFuZGxlR2V0UmVzdWx0KGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERh
dGEmIHJlc3VsdERhdGEpCit7CisgICAgaWYgKHJlc3VsdERhdGEudHlwZSgpID09IElEQlJlc3Vs
dFR5cGU6OkVycm9yKSB7CisgICAgICAgIHNlbmQoTWVzc2FnZVR5cGUocmVzdWx0RGF0YSkpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHJlc3VsdERhdGEudHlwZSgpID09IElE
QlJlc3VsdFR5cGU6OkdldEFsbFJlY29yZHNTdWNjZXNzICYmIHJlc3VsdERhdGEuZ2V0QWxsUmVz
dWx0KCkudHlwZSgpID09IEluZGV4ZWREQjo6R2V0QWxsVHlwZTo6S2V5cykgeworICAgICAgICBz
ZW5kKE1lc3NhZ2VUeXBlKHJlc3VsdERhdGEpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGF1dG8gYmxvYkZpbGVQYXRocyA9IHJlc3VsdERhdGEudHlwZSgpID09IElEQlJlc3VsdFR5
cGU6OkdldEFsbFJlY29yZHNTdWNjZXNzID8gcmVzdWx0RGF0YS5nZXRBbGxSZXN1bHQoKS5hbGxC
bG9iRmlsZVBhdGhzKCkgOiByZXN1bHREYXRhLmdldFJlc3VsdCgpLnZhbHVlKCkuYmxvYkZpbGVQ
YXRocygpOworICAgIGlmIChibG9iRmlsZVBhdGhzLmlzRW1wdHkoKSkgeworICAgICAgICBzZW5k
KE1lc3NhZ2VUeXBlKHJlc3VsdERhdGEpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworI2lm
IEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisgICAgUmVmUHRyPFdlYklEQkNvbm5lY3Rpb25U
b0NsaWVudD4gcHJvdGVjdG9yKHRoaXMpOworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9u
KCkuZ2V0U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9iRmlsZXMoYmxvYkZpbGVQYXRocywgW3Byb3Rl
Y3RvciwgdGhpcywgcmVzdWx0RGF0YV0oU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmJiBo
YW5kbGVzKSB7CisgICAgICAgIHNlbmQoTWVzc2FnZVR5cGUoeyByZXN1bHREYXRhLCBXVEZNb3Zl
KGhhbmRsZXMpIH0pKTsKKyAgICB9KTsKKyNlbHNlCisgICAgc2VuZChNZXNzYWdlVHlwZShyZXN1
bHREYXRhKSk7CisjZW5kaWYKK30KKwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRp
ZEdldFJlY29yZChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJiByZXN1bHREYXRhKQorewor
ICAgIGhhbmRsZUdldFJlc3VsdDxNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpE
aWRHZXRSZWNvcmQ+KHJlc3VsdERhdGEpOworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudDo6ZGlkR2V0QWxsUmVjb3Jkcyhjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJiByZXN1
bHREYXRhKQoreworICAgIGhhbmRsZUdldFJlc3VsdDxNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlv
blRvU2VydmVyOjpEaWRHZXRBbGxSZWNvcmRzPihyZXN1bHREYXRhKTsKK30KKwordm9pZCBXZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEdldENvdW50KGNvbnN0IFdlYkNvcmU6OklEQlJlc3Vs
dERhdGEmIHJlc3VsdERhdGEpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlv
blRvU2VydmVyOjpEaWRHZXRDb3VudChyZXN1bHREYXRhKSk7Cit9CisKK3ZvaWQgV2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50OjpkaWREZWxldGVSZWNvcmQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0
RGF0YSYgcmVzdWx0RGF0YSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXI6OkRpZERlbGV0ZVJlY29yZChyZXN1bHREYXRhKSk7Cit9CisKK3ZvaWQgV2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50OjpkaWRPcGVuQ3Vyc29yKGNvbnN0IFdlYkNvcmU6OklEQlJlc3Vs
dERhdGEmIHJlc3VsdERhdGEpCit7CisgICAgaGFuZGxlR2V0UmVzdWx0PE1lc3NhZ2VzOjpXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZE9wZW5DdXJzb3I+KHJlc3VsdERhdGEpOworfQorCit2
b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkSXRlcmF0ZUN1cnNvcihjb25zdCBXZWJD
b3JlOjpJREJSZXN1bHREYXRhJiByZXN1bHREYXRhKQoreworICAgIGhhbmRsZUdldFJlc3VsdDxN
ZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpEaWRJdGVyYXRlQ3Vyc29yPihyZXN1
bHREYXRhKTsKK30KKwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmZpcmVWZXJzaW9u
Q2hhbmdlRXZlbnQoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgcmVx
dWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pCit7CisgICAgc2VuZChN
ZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpGaXJlVmVyc2lvbkNoYW5nZUV2ZW50
KGNvbm5lY3Rpb24uaWRlbnRpZmllcigpLCByZXF1ZXN0SWRlbnRpZmllciwgcmVxdWVzdGVkVmVy
c2lvbikpOworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkU3RhcnRUcmFu
c2FjdGlvbihjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9u
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCRXJyb3ImIGVycm9yKQoreworICAgIHNlbmQo
TWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6RGlkU3RhcnRUcmFuc2FjdGlvbih0
cmFuc2FjdGlvbklkZW50aWZpZXIsIGVycm9yKSk7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50OjpkaWRDbG9zZUZyb21TZXJ2ZXIoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJ
REJEYXRhYmFzZUNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6OklEQkVycm9y
JiBlcnJvcikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6
OkRpZENsb3NlRnJvbVNlcnZlcihjb25uZWN0aW9uLmlkZW50aWZpZXIoKSwgZXJyb3IpKTsKK30K
Kwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Om5vdGlmeU9wZW5EQlJlcXVlc3RCbG9j
a2VkKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZp
ZXIsIHVpbnQ2NF90IG9sZFZlcnNpb24sIHVpbnQ2NF90IG5ld1ZlcnNpb24pCit7CisgICAgc2Vu
ZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpOb3RpZnlPcGVuREJSZXF1ZXN0
QmxvY2tlZChyZXF1ZXN0SWRlbnRpZmllciwgb2xkVmVyc2lvbiwgbmV3VmVyc2lvbikpOworfQor
Cit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyh1
aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0YWJhc2VOYW1lcykK
K3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZEdldEFs
bERhdGFiYXNlTmFtZXMoY2FsbGJhY2tJRCwgZGF0YWJhc2VOYW1lcykpOworfQorCit2b2lkIFdl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGVsZXRlRGF0YWJhc2UoY29uc3QgSURCUmVxdWVzdERh
dGEmIHJlcXVlc3QpCit7CisgICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2
ZXIobV9zZXNzaW9uSUQpLmRlbGV0ZURhdGFiYXNlKHJlcXVlc3QpOworfQorCit2b2lkIFdlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudDo6b3BlbkRhdGFiYXNlKGNvbnN0IElEQlJlcXVlc3REYXRhJiBy
ZXF1ZXN0KQoreworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKG1f
c2Vzc2lvbklEKS5vcGVuRGF0YWJhc2UocmVxdWVzdCk7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50OjphYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKQoreworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xl
dG9uKCkuaWRiU2VydmVyKG1fc2Vzc2lvbklEKS5hYm9ydFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9u
SWRlbnRpZmllcik7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpjb21taXRU
cmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRp
ZmllcikKK3sKKyAgICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcihtX3Nl
c3Npb25JRCkuY29tbWl0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKK30KKwor
dm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNo
YW5nZVRyYW5zYWN0aW9uKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKQoreworICAg
IERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKG1fc2Vzc2lvbklEKS5kaWRG
aW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihkYXRhYmFzZUNvbm5lY3Rpb25J
ZGVudGlmaWVyLCB0cmFuc2FjdGlvbklkZW50aWZpZXIpOworfQorCit2b2lkIFdlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudDo6Y3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmIHJl
cXVlc3QsIGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYgaW5mbykKK3sKKyAgICBEYXRhYmFzZVBy
b2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcihtX3Nlc3Npb25JRCkuY3JlYXRlT2JqZWN0U3Rv
cmUocmVxdWVzdCwgaW5mbyk7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpk
ZWxldGVPYmplY3RTdG9yZShjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdCwgY29uc3QgU3Ry
aW5nJiBuYW1lKQoreworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVy
KG1fc2Vzc2lvbklEKS5kZWxldGVPYmplY3RTdG9yZShyZXF1ZXN0LCBuYW1lKTsKK30KKwordm9p
ZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OnJlbmFtZU9iamVjdFN0b3JlKGNvbnN0IElEQlJl
cXVlc3REYXRhJiByZXF1ZXN0LCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbmV3TmFtZSkKK3sKKyAgICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlk
YlNlcnZlcihtX3Nlc3Npb25JRCkucmVuYW1lT2JqZWN0U3RvcmUocmVxdWVzdCwgb2JqZWN0U3Rv
cmVJZGVudGlmaWVyLCBuZXdOYW1lKTsKK30KKwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGll
bnQ6OmNsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3QsIHVpbnQ2
NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcikKK3sKKyAgICBEYXRhYmFzZVByb2Nlc3M6OnNpbmds
ZXRvbigpLmlkYlNlcnZlcihtX3Nlc3Npb25JRCkuY2xlYXJPYmplY3RTdG9yZShyZXF1ZXN0LCBv
YmplY3RTdG9yZUlkZW50aWZpZXIpOworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVu
dDo6Y3JlYXRlSW5kZXgoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3QsIGNvbnN0IElEQklu
ZGV4SW5mbyYgaW5mbykKK3sKKyAgICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNl
cnZlcihtX3Nlc3Npb25JRCkuY3JlYXRlSW5kZXgocmVxdWVzdCwgaW5mbyk7Cit9CisKK3ZvaWQg
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkZWxldGVJbmRleChjb25zdCBJREJSZXF1ZXN0RGF0
YSYgcmVxdWVzdCwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IG5hbWUpCit7CisgICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIobV9z
ZXNzaW9uSUQpLmRlbGV0ZUluZGV4KHJlcXVlc3QsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgbmFt
ZSk7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpyZW5hbWVJbmRleChjb25z
dCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdCwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVy
LCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSkKK3sKKyAg
ICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcihtX3Nlc3Npb25JRCkucmVu
YW1lSW5kZXgocmVxdWVzdCwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBpbmRleElkZW50aWZpZXIs
IG5ld05hbWUpOworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6cHV0T3JBZGQo
Y29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3QsIGNvbnN0IElEQktleURhdGEmIGtleSwgY29u
c3QgSURCVmFsdWUmIHZhbHVlLCB1bnNpZ25lZCBvdmVyd3JpdGVNb2RlKQoreworICAgIGlmIChv
dmVyd3JpdGVNb2RlICE9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihJbmRleGVkREI6Ok9iamVjdFN0
b3JlT3ZlcndyaXRlTW9kZTo6Tm9PdmVyd3JpdGUpCisgICAgICAgICYmIG92ZXJ3cml0ZU1vZGUg
IT0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVN
b2RlOjpPdmVyd3JpdGUpCisgICAgICAgICYmIG92ZXJ3cml0ZU1vZGUgIT0gc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlOjpPdmVyd3JpdGVG
b3JDdXJzb3IpKSB7CisgICAgICAgIC8vIEZJWE1FOiBUaGlzIG1lc3NhZ2UgZnJvbSB0aGUgV2Vi
UHJvY2VzcyBpcyBjb3JydXB0LgorICAgICAgICAvLyBUaGUgRGF0YWJhc2VQcm9jZXNzIHNob3Vs
ZCByZXR1cm4gZWFybHkgYXQgdGhpcyBwb2ludCwgYnV0IGNhbiB3ZSBhbHNvIGtpbGwgdGhlIGJh
ZCBXZWJQcm9jZXNzPworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgSW5kZXhlZERCOjpP
YmplY3RTdG9yZU92ZXJ3cml0ZU1vZGUgbW9kZSA9IHN0YXRpY19jYXN0PEluZGV4ZWREQjo6T2Jq
ZWN0U3RvcmVPdmVyd3JpdGVNb2RlPihvdmVyd3JpdGVNb2RlKTsKKworICAgIERhdGFiYXNlUHJv
Y2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKG1fc2Vzc2lvbklEKS5wdXRPckFkZChyZXF1ZXN0
LCBrZXksIHZhbHVlLCBtb2RlKTsKK30KKwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6
OmdldFJlY29yZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdCwgY29uc3QgSURCR2V0UmVj
b3JkRGF0YSYgZ2V0UmVjb3JkRGF0YSkKK3sKKyAgICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRv
bigpLmlkYlNlcnZlcihtX3Nlc3Npb25JRCkuZ2V0UmVjb3JkKHJlcXVlc3QsIGdldFJlY29yZERh
dGEpOworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Z2V0QWxsUmVjb3Jkcyhj
b25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdCwgY29uc3QgSURCR2V0QWxsUmVjb3Jkc0RhdGEm
IGdldEFsbFJlY29yZHNEYXRhKQoreworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCku
aWRiU2VydmVyKG1fc2Vzc2lvbklEKS5nZXRBbGxSZWNvcmRzKHJlcXVlc3QsIGdldEFsbFJlY29y
ZHNEYXRhKTsKK30KKwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmdldENvdW50KGNv
bnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0LCBjb25zdCBJREJLZXlSYW5nZURhdGEmIHJhbmdl
KQoreworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKG1fc2Vzc2lv
bklEKS5nZXRDb3VudChyZXF1ZXN0LCByYW5nZSk7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50OjpkZWxldGVSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3QsIGNv
bnN0IElEQktleVJhbmdlRGF0YSYgcmFuZ2UpCit7CisgICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5n
bGV0b24oKS5pZGJTZXJ2ZXIobV9zZXNzaW9uSUQpLmRlbGV0ZVJlY29yZChyZXF1ZXN0LCByYW5n
ZSk7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpvcGVuQ3Vyc29yKGNvbnN0
IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0LCBjb25zdCBJREJDdXJzb3JJbmZvJiBpbmZvKQorewor
ICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKG1fc2Vzc2lvbklEKS5v
cGVuQ3Vyc29yKHJlcXVlc3QsIGluZm8pOworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudDo6aXRlcmF0ZUN1cnNvcihjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdCwgY29uc3Qg
SURCSXRlcmF0ZUN1cnNvckRhdGEmIGRhdGEpCit7CisgICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5n
bGV0b24oKS5pZGJTZXJ2ZXIobV9zZXNzaW9uSUQpLml0ZXJhdGVDdXJzb3IocmVxdWVzdCwgZGF0
YSk7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojplc3RhYmxpc2hUcmFuc2Fj
dGlvbih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJUcmFu
c2FjdGlvbkluZm8mIGluZm8pCit7CisgICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5p
ZGJTZXJ2ZXIobV9zZXNzaW9uSUQpLmVzdGFibGlzaFRyYW5zYWN0aW9uKGRhdGFiYXNlQ29ubmVj
dGlvbklkZW50aWZpZXIsIGluZm8pOworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVu
dDo6ZGF0YWJhc2VDb25uZWN0aW9uUGVuZGluZ0Nsb3NlKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVj
dGlvbklkZW50aWZpZXIpCit7CisgICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJT
ZXJ2ZXIobV9zZXNzaW9uSUQpLmRhdGFiYXNlQ29ubmVjdGlvblBlbmRpbmdDbG9zZShkYXRhYmFz
ZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsKK30KKwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGll
bnQ6OmRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25J
ZGVudGlmaWVyKQoreworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVy
KG1fc2Vzc2lvbklEKS5kYXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQoZGF0YWJhc2VDb25uZWN0aW9u
SWRlbnRpZmllcik7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjphYm9ydE9w
ZW5BbmRVcGdyYWRlTmVlZGVkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIs
IGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKQorewor
ICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKG1fc2Vzc2lvbklEKS5h
Ym9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHRy
YW5zYWN0aW9uSWRlbnRpZmllcik7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
OjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklk
ZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyKQoreworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKG1fc2Vz
c2lvbklEKS5kaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KGRhdGFiYXNlQ29ubmVjdGlvbklkZW50
aWZpZXIsIHRyYW5zYWN0aW9uSWRlbnRpZmllcik7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50OjpvcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IElEQlJlcXVlc3REYXRhJiBy
ZXF1ZXN0RGF0YSkKK3sKKyAgICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZl
cihtX3Nlc3Npb25JRCkub3BlbkRCUmVxdWVzdENhbmNlbGxlZChyZXF1ZXN0RGF0YSk7Cit9CisK
K3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpjb25maXJtRGlkQ2xvc2VGcm9tU2VydmVy
KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpCit7CisgICAgRGF0YWJhc2VQ
cm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIobV9zZXNzaW9uSUQpLmNvbmZpcm1EaWRDbG9z
ZUZyb21TZXJ2ZXIoZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcik7Cit9CisKK3ZvaWQgV2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50OjpnZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
IHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBvcGVuaW5nT3Jp
Z2luLCB1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xl
dG9uKCkuaWRiU2VydmVyKG1fc2Vzc2lvbklEKS5nZXRBbGxEYXRhYmFzZU5hbWVzKHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyLCB0b3BPcmlnaW4sIG9wZW5pbmdPcmlnaW4sIGNhbGxiYWNrSUQp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EYXRhYmFzZVByb2Nlc3MvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9EYXRhYmFz
ZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmI2ZjEzYzg1OTdmNDYxMDIwYzIzY2FkYzFlNjU1NWYxZWY0ZTEyN2MKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50LmgKQEAgLTAsMCArMSwxNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiRGF0YWJhc2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvSURCQ29ubmVjdGlvblRvQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9TZXNzaW9uSUQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgSURCQ3Vyc29ySW5m
bzsKK2NsYXNzIElEQkluZGV4SW5mbzsKK2NsYXNzIElEQktleURhdGE7CitjbGFzcyBJREJPYmpl
Y3RTdG9yZUluZm87CitjbGFzcyBJREJSZXF1ZXN0RGF0YTsKK2NsYXNzIElEQlRyYW5zYWN0aW9u
SW5mbzsKK2NsYXNzIElEQlZhbHVlOworY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOworc3Ry
dWN0IElEQkdldEFsbFJlY29yZHNEYXRhOworc3RydWN0IElEQkdldFJlY29yZERhdGE7CitzdHJ1
Y3QgSURCSXRlcmF0ZUN1cnNvckRhdGE7CitzdHJ1Y3QgSURCS2V5UmFuZ2VEYXRhOworc3RydWN0
IFNlY3VyaXR5T3JpZ2luRGF0YTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpJREJTZXJ2ZXI6
OklEQkNvbm5lY3Rpb25Ub0NsaWVudERlbGVnYXRlLCBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVy
LCBwdWJsaWMgUmVmQ291bnRlZDxXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+IHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudD4gY3JlYXRlKERhdGFiYXNl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbiYsIHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBXZWJDb3JlOjpTZXNzaW9uSUQpOworCisgICAgdmlydHVhbCB+V2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50KCk7CisKKyAgICBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0Ns
aWVudCYgY29ubmVjdGlvblRvQ2xpZW50KCk7CisgICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIHVpbnQ2NF90IG1lc3NhZ2VT
ZW5kZXJEZXN0aW5hdGlvbklEKCkgZmluYWwgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisKKyAg
ICAvLyBJREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZQorICAgIHZvaWQgZGlkRGVsZXRlRGF0
YWJhc2UoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOworICAgIHZvaWQgZGlk
T3BlbkRhdGFiYXNlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKKyAgICB2
b2lkIGRpZEFib3J0VHJhbnNhY3Rpb24oY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJikgZmlu
YWw7CisgICAgdm9pZCBkaWRDb21taXRUcmFuc2FjdGlvbihjb25zdCBXZWJDb3JlOjpJREJSZXNv
dXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURC
RXJyb3ImKSBmaW5hbDsKKyAgICB2b2lkIGRpZENyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IFdlYkNv
cmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKKyAgICB2b2lkIGRpZERlbGV0ZU9iamVjdFN0b3Jl
KGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlbmFt
ZU9iamVjdFN0b3JlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKKyAgICB2
b2lkIGRpZENsZWFyT2JqZWN0U3RvcmUoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZp
bmFsOworICAgIHZvaWQgZGlkQ3JlYXRlSW5kZXgoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0
YSYpIGZpbmFsOworICAgIHZvaWQgZGlkRGVsZXRlSW5kZXgoY29uc3QgV2ViQ29yZTo6SURCUmVz
dWx0RGF0YSYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVuYW1lSW5kZXgoY29uc3QgV2ViQ29yZTo6
SURCUmVzdWx0RGF0YSYpIGZpbmFsOworICAgIHZvaWQgZGlkUHV0T3JBZGQoY29uc3QgV2ViQ29y
ZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOworICAgIHZvaWQgZGlkR2V0UmVjb3JkKGNvbnN0IFdl
YkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKKyAgICB2b2lkIGRpZEdldEFsbFJlY29yZHMo
Y29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOworICAgIHZvaWQgZGlkR2V0Q291
bnQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOworICAgIHZvaWQgZGlkRGVs
ZXRlUmVjb3JkKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKKyAgICB2b2lk
IGRpZE9wZW5DdXJzb3IoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOworICAg
IHZvaWQgZGlkSXRlcmF0ZUN1cnNvcihjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmlu
YWw7CisKKyAgICB2b2lkIGZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoV2ViQ29yZTo6SURCU2VydmVy
OjpVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9u
KSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0VHJhbnNhY3Rpb24oY29uc3QgV2ViQ29yZTo6SURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OklEQkVycm9yJikgZmluYWw7CisgICAgdm9pZCBkaWRDbG9zZUZyb21TZXJ2ZXIoV2ViQ29yZTo6
SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpJ
REJFcnJvciYpIGZpbmFsOworICAgIHZvaWQgbm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29u
c3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWlu
dDY0X3Qgb2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbikgZmluYWw7CisKKyAgICB2b2lk
IGRpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIGRhdGFiYXNlTmFtZXMpIGZpbmFsOworCisgICAgdm9pZCByZWYoKSBvdmVycmlk
ZSB7IFJlZkNvdW50ZWQ8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Pjo6cmVmKCk7IH0KKyAgICB2
b2lkIGRlcmVmKCkgb3ZlcnJpZGUgeyBSZWZDb3VudGVkPFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVu
dD46OmRlcmVmKCk7IH0KKworICAgIC8vIE1lc3NhZ2VzIHJlY2VpdmVkIGZyb20gV2ViUHJvY2Vz
cworICAgIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEm
KTsKKyAgICB2b2lkIG9wZW5EYXRhYmFzZShjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYp
OworICAgIHZvaWQgYWJvcnRUcmFuc2FjdGlvbihjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlk
ZW50aWZpZXImKTsKKyAgICB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IFdlYkNvcmU6OklE
QlJlc291cmNlSWRlbnRpZmllciYpOworICAgIHZvaWQgZGlkRmluaXNoSGFuZGxpbmdWZXJzaW9u
Q2hhbmdlVHJhbnNhY3Rpb24odWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJik7CisgICAgdm9pZCBjcmVhdGVP
YmplY3RTdG9yZShjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IFdlYkNvcmU6
OklEQk9iamVjdFN0b3JlSW5mbyYpOworICAgIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoY29uc3Qg
V2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSk7
CisgICAgdm9pZCByZW5hbWVPYmplY3RTdG9yZShjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0
YSYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1l
KTsKKyAgICB2b2lkIGNsZWFyT2JqZWN0U3RvcmUoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERh
dGEmLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpOworICAgIHZvaWQgY3JlYXRlSW5k
ZXgoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJJbmRl
eEluZm8mKTsKKyAgICB2b2lkIGRlbGV0ZUluZGV4KGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3RE
YXRhJiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGluZGV4
TmFtZSk7CisgICAgdm9pZCByZW5hbWVJbmRleChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0
YSYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpOworICAgIHZvaWQgcHV0T3JBZGQoY29uc3QgV2Vi
Q29yZTo6SURCUmVxdWVzdERhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgY29uc3Qg
V2ViQ29yZTo6SURCVmFsdWUmLCB1bnNpZ25lZCBvdmVyd3JpdGVNb2RlKTsKKyAgICB2b2lkIGdl
dFJlY29yZChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IFdlYkNvcmU6OklE
QkdldFJlY29yZERhdGEmKTsKKyAgICB2b2lkIGdldEFsbFJlY29yZHMoY29uc3QgV2ViQ29yZTo6
SURCUmVxdWVzdERhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJHZXRBbGxSZWNvcmRzRGF0YSYpOwor
ICAgIHZvaWQgZ2V0Q291bnQoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCBjb25zdCBX
ZWJDb3JlOjpJREJLZXlSYW5nZURhdGEmKTsKKyAgICB2b2lkIGRlbGV0ZVJlY29yZChjb25zdCBX
ZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IFdlYkNvcmU6OklEQktleVJhbmdlRGF0YSYp
OworICAgIHZvaWQgb3BlbkN1cnNvcihjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYsIGNv
bnN0IFdlYkNvcmU6OklEQkN1cnNvckluZm8mKTsKKyAgICB2b2lkIGl0ZXJhdGVDdXJzb3IoY29u
c3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJJdGVyYXRlQ3Vy
c29yRGF0YSYpOworCisgICAgdm9pZCBlc3RhYmxpc2hUcmFuc2FjdGlvbih1aW50NjRfdCBkYXRh
YmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbklu
Zm8mKTsKKyAgICB2b2lkIGRhdGFiYXNlQ29ubmVjdGlvblBlbmRpbmdDbG9zZSh1aW50NjRfdCBk
YXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICB2b2lkIGRhdGFiYXNlQ29ubmVjdGlv
bkNsb3NlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICB2b2lk
IGFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIpOworICAgIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRf
dCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICB2b2lkIG9wZW5EQlJlcXVlc3RD
YW5jZWxsZWQoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmKTsKKyAgICB2b2lkIGNvbmZp
cm1EaWRDbG9zZUZyb21TZXJ2ZXIodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmll
cik7CisKKyAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3Qgc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3Jp
Z2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmlnaW4sIHVp
bnQ2NF90IGNhbGxiYWNrSUQpOworCisgICAgdm9pZCBkaXNjb25uZWN0ZWRGcm9tV2ViUHJvY2Vz
cygpOworCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQoRGF0
YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uJiwgdWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIFdlYkNvcmU6OlNlc3Npb25JRCk7CisKKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1l
c3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgZmluYWw7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBNZXNz
YWdlVHlwZT4gdm9pZCBoYW5kbGVHZXRSZXN1bHQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0
YSYpOworCisgICAgUmVmPERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbj4gbV9jb25uZWN0
aW9uOworCisgICAgdWludDY0X3QgbV9pZGVudGlmaWVyOworICAgIFdlYkNvcmU6OlNlc3Npb25J
RCBtX3Nlc3Npb25JRDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6SURCU2VydmVyOjpJREJDb25uZWN0
aW9uVG9DbGllbnQ+IG1fY29ubmVjdGlvblRvQ2xpZW50OworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9u
VG9DbGllbnQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0RhdGFiYXNlUHJvY2Vzcy9JbmRl
eGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRh
YWIwMjY3ZDdiMzU0MzI2YzU3NzQ5ZTA3MDA4MmVlYjgzNzcwZjEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsNTYgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCitt
ZXNzYWdlcyAtPiBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQgeworICAgIERlbGV0ZURhdGFiYXNl
KFdlYkNvcmU6OklEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRhKQorICAgIE9wZW5EYXRhYmFzZShX
ZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSk7CisgICAgQWJvcnRUcmFuc2FjdGlv
bihXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXIgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsK
KyAgICBDb21taXRUcmFuc2FjdGlvbihXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXIgdHJh
bnNhY3Rpb25JZGVudGlmaWVyKTsKKyAgICBEaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2VU
cmFuc2FjdGlvbih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3Jl
OjpJREJSZXNvdXJjZUlkZW50aWZpZXIgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKKyAgICBDcmVh
dGVPYmplY3RTdG9yZShXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSwgV2ViQ29y
ZTo6SURCT2JqZWN0U3RvcmVJbmZvIGluZm8pOworICAgIERlbGV0ZU9iamVjdFN0b3JlKFdlYkNv
cmU6OklEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRhLCBTdHJpbmcgb2JqZWN0U3RvcmVOYW1lKTsK
KyAgICBSZW5hbWVPYmplY3RTdG9yZShXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0
YSwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBTdHJpbmcgbmV3TmFtZSk7CisgICAg
Q2xlYXJPYmplY3RTdG9yZShXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSwgdWlu
dDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKKyAgICBDcmVhdGVJbmRleChXZWJDb3JlOjpJ
REJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSwgV2ViQ29yZTo6SURCSW5kZXhJbmZvIGluZm8pOwor
ICAgIERlbGV0ZUluZGV4KFdlYkNvcmU6OklEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRhLCB1aW50
NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIFN0cmluZyBpbmRleE5hbWUpOworICAgIFJlbmFt
ZUluZGV4KFdlYkNvcmU6OklEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRhLCB1aW50NjRfdCBvYmpl
Y3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgU3RyaW5nIG5ld05h
bWUpOworICAgIFB1dE9yQWRkKFdlYkNvcmU6OklEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRhLCBX
ZWJDb3JlOjpJREJLZXlEYXRhIGtleSwgV2ViQ29yZTo6SURCVmFsdWUgdmFsdWUsIHVuc2lnbmVk
IG92ZXJ3cml0ZU1vZGUpOworICAgIEdldFJlY29yZChXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSBy
ZXF1ZXN0RGF0YSwgc3RydWN0IFdlYkNvcmU6OklEQkdldFJlY29yZERhdGEgZ2V0UmVjb3JkRGF0
YSk7CisgICAgR2V0QWxsUmVjb3JkcyhXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0
YSwgc3RydWN0IFdlYkNvcmU6OklEQkdldEFsbFJlY29yZHNEYXRhIGdldEFsbFJlY29yZHNEYXRh
KTsKKyAgICBHZXRDb3VudChXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSwgc3Ry
dWN0IFdlYkNvcmU6OklEQktleVJhbmdlRGF0YSByYW5nZSk7CisgICAgRGVsZXRlUmVjb3JkKFdl
YkNvcmU6OklEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRhLCBzdHJ1Y3QgV2ViQ29yZTo6SURCS2V5
UmFuZ2VEYXRhIHJhbmdlKTsKKyAgICBPcGVuQ3Vyc29yKFdlYkNvcmU6OklEQlJlcXVlc3REYXRh
IHJlcXVlc3REYXRhLCBXZWJDb3JlOjpJREJDdXJzb3JJbmZvIGluZm8pOworICAgIEl0ZXJhdGVD
dXJzb3IoV2ViQ29yZTo6SURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEsIHN0cnVjdCBXZWJDb3Jl
OjpJREJJdGVyYXRlQ3Vyc29yRGF0YSBkYXRhKTsKKworICAgIEVzdGFibGlzaFRyYW5zYWN0aW9u
KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OklEQlRyYW5z
YWN0aW9uSW5mbyBpbmZvKTsKKyAgICBEYXRhYmFzZUNvbm5lY3Rpb25QZW5kaW5nQ2xvc2UodWlu
dDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcik7CisgICAgRGF0YWJhc2VDb25uZWN0
aW9uQ2xvc2VkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpOworICAgIEFi
b3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRp
ZmllciwgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyIHRyYW5zYWN0aW9uSWRlbnRpZmll
cik7CisgICAgRGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXIgcmVxdWVzdElk
ZW50aWZpZXIpOworICAgIE9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoV2ViQ29yZTo6SURCUmVxdWVz
dERhdGEgcmVxdWVzdERhdGEpOworICAgIENvbmZpcm1EaWRDbG9zZUZyb21TZXJ2ZXIodWludDY0
X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcik7CisKKyAgICBHZXRBbGxEYXRhYmFzZU5h
bWVzKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbiwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSBvcGVuaW5nT3JpZ2luLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKK30KKyNlbmRpZiAv
LyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGF0
YWJhc2VQcm9jZXNzL2d0ay9EYXRhYmFzZVByb2Nlc3NNYWluR3RrLmNwcCBiL1NvdXJjZS9XZWJL
aXQvRGF0YWJhc2VQcm9jZXNzL2d0ay9EYXRhYmFzZVByb2Nlc3NNYWluR3RrLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iMmJlNDI3Y2NhNjYwYTVhNjg2NDk5OTNlZDMzNmFlOWRiODc4MWYyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9EYXRhYmFzZVByb2Nlc3MvZ3RrL0RhdGFiYXNlUHJvY2Vz
c01haW5HdGsuY3BwCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
SWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRh
dGFiYXNlUHJvY2Vzc01haW5Vbml4LmgiCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3NNYWluLmgi
CisjaW5jbHVkZSAiRGF0YWJhc2VQcm9jZXNzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitp
bnQgRGF0YWJhc2VQcm9jZXNzTWFpblVuaXgoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAg
IHJldHVybiBDaGlsZFByb2Nlc3NNYWluPERhdGFiYXNlUHJvY2VzcywgQ2hpbGRQcm9jZXNzTWFp
bkJhc2U+KGFyZ2MsIGFyZ3YpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvRGF0YWJhc2VQcm9jZXNzL2lvcy9EYXRhYmFzZVByb2Nlc3NJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0L0RhdGFiYXNlUHJvY2Vzcy9pb3MvRGF0YWJhc2VQcm9jZXNzSU9T
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmM2NzdjYzJiMTQzMTUzOWNkODFhNGRiZjlkMzk0MmYzNDI0ZGU0ZjMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0RhdGFiYXNlUHJvY2Vzcy9pb3MvRGF0
YWJhc2VQcm9jZXNzSU9TLm1tCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
ICJjb25maWcuaCIKKworI2lmIFBMQVRGT1JNKElPUykKKworI2ltcG9ydCAiRGF0YWJhc2VQcm9j
ZXNzLmgiCisKKyNpbXBvcnQgIlNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCIKKyNp
bXBvcnQgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgorI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRT
dHJpbmdzLmg+CisjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW1wb3J0IDxX
ZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKKyNk
ZWZpbmUgRU5BQkxFX01BTlVBTF9EQVRBQkFTRV9TQU5EQk9YSU5HIDAKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK3ZvaWQgRGF0YWJhc2VQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyhjb25zdCBD
aGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQoreworfQorCit2b2lkIERhdGFi
YXNlUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRp
YWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKK3sKK30KKwordm9pZCBEYXRhYmFzZVBy
b2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9u
UGFyYW1ldGVycyYgcGFyYW1ldGVycywgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYg
c2FuZGJveFBhcmFtZXRlcnMpCit7CisjaWYgRU5BQkxFX01BTlVBTF9EQVRBQkFTRV9TQU5EQk9Y
SU5HCisgICAgLy8gTmVlZCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCwgYmVjYXVzZSBzZXJ2aWNl
IGhhcyBhIGRpZmZlcmVudCBidW5kbGUgSUQuCisgICAgTlNCdW5kbGUgKndlYmtpdDJCdW5kbGUg
PSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xhc3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZpZXci
KV07CisgICAgc2FuZGJveFBhcmFtZXRlcnMuc2V0T3ZlcnJpZGVTYW5kYm94UHJvZmlsZVBhdGgo
W3dlYmtpdDJCdW5kbGUgcGF0aEZvclJlc291cmNlOkAiY29tLmFwcGxlLldlYktpdC5EYXRhYmFz
ZXMiIG9mVHlwZTpAInNiIl0pOworICAgIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3go
cGFyYW1ldGVycywgc2FuZGJveFBhcmFtZXRlcnMpOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9EYXRhYmFzZVByb2Nlc3MvbWFjL0RhdGFiYXNlUHJvY2Vzc01hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQvRGF0YWJhc2VQcm9jZXNzL21hYy9EYXRhYmFzZVByb2Nlc3NNYWMubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDZkMTU5NzAzNDdlYTEyYTQzZjg5ZGU2NTM5Yjg1ZjY4YzljMTgwNgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvRGF0YWJhc2VQcm9jZXNzL21hYy9EYXRhYmFzZVByb2Nl
c3NNYWMubW0KQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5o
IgorCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0ICJEYXRhYmFzZVByb2Nlc3MuaCIKKwor
I2ltcG9ydCAiU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIgorI2ltcG9ydCA8V2Vi
Q29yZS9GaWxlU3lzdGVtLmg+CisjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4K
KyNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgRGF0YWJhc2VQcm9jZXNzOjppbml0
aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMm
KQoreworICAgIC8vIEhhdmluZyBhIHdpbmRvdyBzZXJ2ZXIgY29ubmVjdGlvbiBpbiB0aGlzIHBy
b2Nlc3Mgd291bGQgcmVzdWx0IGluIHNwaW4gbG9ncyAoPHJkYXI6Ly9wcm9ibGVtLzEzMjM5MTE5
PikuCisgICAgc2V0QXBwbGljYXRpb25Jc0RhZW1vbigpOworfQorCit2b2lkIERhdGFiYXNlUHJv
Y2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0
aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKK3sKKyAgICBOU1N0cmluZyAqYXBwbGljYXRpb25O
YW1lID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6V0VCX1VJX1NUUklORygiJUAgRGF0YWJh
c2UgU3RvcmFnZSIsICJ2aXNpYmxlIG5hbWUgb2YgdGhlIGRhdGFiYXNlIHByb2Nlc3MuIFRoZSBh
cmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4iKSwgKE5TU3RyaW5nICopcGFyYW1ldGVy
cy51aVByb2Nlc3NOYW1lXTsKKyAgICBXS1NldFZpc2libGVBcHBsaWNhdGlvbk5hbWUoKENGU3Ry
aW5nUmVmKWFwcGxpY2F0aW9uTmFtZSk7Cit9CisKK3ZvaWQgRGF0YWJhc2VQcm9jZXNzOjppbml0
aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHNhbmRib3hQYXJh
bWV0ZXJzKQoreworICAgIC8vIE5lZWQgdG8gb3ZlcmlkZSB0aGUgZGVmYXVsdCwgYmVjYXVzZSBz
ZXJ2aWNlIGhhcyBhIGRpZmZlcmVudCBidW5kbGUgSUQuCisgICAgTlNCdW5kbGUgKndlYmtpdDJC
dW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xhc3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1Zp
ZXciKV07CisgICAgc2FuZGJveFBhcmFtZXRlcnMuc2V0T3ZlcnJpZGVTYW5kYm94UHJvZmlsZVBh
dGgoW3dlYmtpdDJCdW5kbGUgcGF0aEZvclJlc291cmNlOkAiY29tLmFwcGxlLldlYktpdC5EYXRh
YmFzZXMiIG9mVHlwZTpAInNiIl0pOworCisgICAgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2Fu
ZGJveChwYXJhbWV0ZXJzLCBzYW5kYm94UGFyYW1ldGVycyk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9EYXRhYmFzZVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzLnNiLmlu
IGIvU291cmNlL1dlYktpdC9EYXRhYmFzZVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuRGF0
YWJhc2VzLnNiLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1YjRhZmMwYzg2MTdkZDVkNGMwY2FlN2M0YjUzMDJh
NDVlMDRiNDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0RhdGFiYXNlUHJvY2Vz
cy9tYWMvY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXMuc2IuaW4KQEAgLTAsMCArMSwxMzQgQEAK
KzsgQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorOworOyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKzsgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCis7IGFyZSBtZXQ6Cis7IDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cis7
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKzsgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKzsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorOyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorOworOyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCis7IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorOyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCis7
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworOyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCis7IENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCis7IFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworOyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorOyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorOyBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCis7IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworKHZlcnNpb24gMSkK
KyhkZW55IGRlZmF1bHQgKHdpdGggcGFydGlhbC1zeW1ib2xpY2F0aW9uKSkKKyhhbGxvdyBzeXN0
ZW0tYXVkaXQgZmlsZS1yZWFkLW1ldGFkYXRhKQorCisoaW1wb3J0ICJzeXN0ZW0uc2IiKQorCis7
OzsgcHJvY2Vzcy1pbmZvKiBkZWZhdWx0cyB0byBhbGxvdzsgZGVueSBpdCBhbmQgdGhlbiBhbGxv
dyBvcGVyYXRpb25zIHdlIGFjdHVhbGx5IG5lZWQuCisoZGVueSBwcm9jZXNzLWluZm8qKQorKGFs
bG93IHByb2Nlc3MtaW5mby1waWRpbmZvKQorKGFsbG93IHByb2Nlc3MtaW5mby1zZXRjb250cm9s
ICh0YXJnZXQgc2VsZikpCisKKyhkZW55IHN5c2N0bCopCisoYWxsb3cgc3lzY3RsLXJlYWQKKyAg
ICAoc3lzY3RsLW5hbWUKKyAgICAgICAgImh3LmF2YWlsY3B1IgorICAgICAgICAiaHcubmNwdSIK
KyAgICAgICAgImh3Lm1vZGVsIgorICAgICAgICAia2Vybi5tZW1vcnlzdGF0dXNfbGV2ZWwiCisg
ICAgICAgICJ2bS5mb290cHJpbnRfc3VzcGVuZCIpKQorCisoZGVueSBpb2tpdC1nZXQtcHJvcGVy
dGllcykKKworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwCiso
ZGVueSBtYWNoLWxvb2t1cCAoeHBjLXNlcnZpY2UtbmFtZS1wcmVmaXggIiIpKQorI2VuZGlmCisK
Kzs7IFV0aWxpdHkgZnVuY3Rpb25zIGZvciBob21lIGRpcmVjdG9yeSByZWxhdGl2ZSBwYXRoIGZp
bHRlcnMKKyhkZWZpbmUgKGhvbWUtcmVnZXggaG9tZS1yZWxhdGl2ZS1yZWdleCkKKyAgKHJlZ2V4
IChzdHJpbmctYXBwZW5kICJeIiAocmVnZXgtcXVvdGUgKHBhcmFtICJIT01FX0RJUiIpKSBob21l
LXJlbGF0aXZlLXJlZ2V4KSkpCisKKyhkZWZpbmUgKGhvbWUtc3VicGF0aCBob21lLXJlbGF0aXZl
LXN1YnBhdGgpCisgICAgKHN1YnBhdGggKHN0cmluZy1hcHBlbmQgKHBhcmFtICJIT01FX0RJUiIp
IGhvbWUtcmVsYXRpdmUtc3VicGF0aCkpKQorCisoZGVmaW5lIChob21lLWxpdGVyYWwgaG9tZS1y
ZWxhdGl2ZS1saXRlcmFsKQorICAgIChsaXRlcmFsIChzdHJpbmctYXBwZW5kIChwYXJhbSAiSE9N
RV9ESVIiKSBob21lLXJlbGF0aXZlLWxpdGVyYWwpKSkKKworKGRlZmluZSAoYWxsb3ctcmVhZC13
cml0ZS1kaXJlY3RvcnktYW5kLWlzc3VlLXJlYWQtd3JpdGUtZXh0ZW5zaW9ucyBwYXRoKQorICAg
IChpZiBwYXRoCisgICAgICAgIChiZWdpbgorICAgICAgICAgICAgKGFsbG93IGZpbGUtcmVhZCog
ZmlsZS13cml0ZSogKHN1YnBhdGggcGF0aCkpCisgICAgICAgICAgICAoYWxsb3cgZmlsZS1pc3N1
ZS1leHRlbnNpb24gKHJlcXVpcmUtYWxsIChleHRlbnNpb24tY2xhc3MgImNvbS5hcHBsZS5hcHAt
c2FuZGJveC5yZWFkIikgKHN1YnBhdGggcGF0aCkpKQorICAgICAgICAgICAgKGFsbG93IGZpbGUt
aXNzdWUtZXh0ZW5zaW9uIChyZXF1aXJlLWFsbCAoZXh0ZW5zaW9uLWNsYXNzICJjb20uYXBwbGUu
YXBwLXNhbmRib3gucmVhZC13cml0ZSIpIChzdWJwYXRoIHBhdGgpKSkpKSkKKworOzsgSU9LaXQg
dXNlciBjbGllbnRzCisoYWxsb3cgaW9raXQtb3BlbgorICAgIChpb2tpdC11c2VyLWNsaWVudC1j
bGFzcyAiUm9vdERvbWFpblVzZXJDbGllbnQiKSkKKworOzsgU2VjdXJpdHkgZnJhbWV3b3JrCiso
YWxsb3cgbWFjaC1sb29rdXAKKyAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5TZWN1cml0
eVNlcnZlciIpKQorKGFsbG93IHVzZXItcHJlZmVyZW5jZS1yZWFkCisgICAgKHByZWZlcmVuY2Ut
ZG9tYWluCisgICAgICAgICJjb20uYXBwbGUuc2VjdXJpdHkiCisgICAgICAgICJjb20uYXBwbGUu
c2VjdXJpdHkucmV2b2NhdGlvbiIpKQorKGFsbG93IGZpbGUtcmVhZCoKKyAgICAgICAoc3VicGF0
aCAiL3ByaXZhdGUvdmFyL2RiL21kcyIpCisgICAgICAgKGxpdGVyYWwgIi9wcml2YXRlL3Zhci9k
Yi9EZXRhY2hlZFNpZ25hdHVyZXMiKQorICAgICAgIDsgVGhlIGZvbGxvd2luZyBhcmUgbmVlZGVk
IHVudGlsIDxyZGFyOi8vcHJvYmxlbS8xMTEzNDY4OD4gaXMgcmVzb2x2ZWQuCisgICAgICAgKGxp
dGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5zZWN1cml0eS5wbGlzdCIpCisg
ICAgICAgKGxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5zZWN1cml0eS5y
ZXZvY2F0aW9uLnBsaXN0IikKKyAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJl
bmNlcy9jb20uYXBwbGUuc2VjdXJpdHkucGxpc3QiKQorICAgICAgIChob21lLWxpdGVyYWwgIi9M
aWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5zZWN1cml0eS5yZXZvY2F0aW9uLnBsaXN0Iikp
CisoYWxsb3cgaXBjLXBvc2l4LXNobS1yZWFkKiBpcGMtcG9zaXgtc2htLXdyaXRlLWRhdGEKKyAg
ICAgICAoaXBjLXBvc2l4LW5hbWUgImNvbS5hcHBsZS5BcHBsZURhdGFiYXNlQ2hhbmdlZCIpKQor
KGlmIChwb3NpdGl2ZT8gKHN0cmluZy1sZW5ndGggKHBhcmFtICJEQVJXSU5fVVNFUl9DQUNIRV9E
SVIiKSkpCisgICAgKGFsbG93LXJlYWQtd3JpdGUtZGlyZWN0b3J5LWFuZC1pc3N1ZS1yZWFkLXdy
aXRlLWV4dGVuc2lvbnMgKHBhcmFtICJEQVJXSU5fVVNFUl9DQUNIRV9ESVIiKSkpCisoaWYgKHBv
c2l0aXZlPyAoc3RyaW5nLWxlbmd0aCAocGFyYW0gIkRBUldJTl9VU0VSX1RFTVBfRElSIikpKQor
ICAgIChhbGxvdy1yZWFkLXdyaXRlLWRpcmVjdG9yeS1hbmQtaXNzdWUtcmVhZC13cml0ZS1leHRl
bnNpb25zIChwYXJhbSAiREFSV0lOX1VTRVJfVEVNUF9ESVIiKSkpCisKKzs7IFJlYWQtb25seSBw
cmVmZXJlbmNlcyBhbmQgZGF0YQorKGFsbG93IHVzZXItcHJlZmVyZW5jZS1yZWFkCisgICAgKHBy
ZWZlcmVuY2UtZG9tYWluCisgICAgICAgICJrQ0ZQcmVmZXJlbmNlc0FueUFwcGxpY2F0aW9uIikp
CisoYWxsb3cgZmlsZS1yZWFkKgorICAgIDs7IEJhc2ljIHN5c3RlbSBwYXRocworICAgIChzdWJw
YXRoICIvTGlicmFyeS9GcmFtZXdvcmtzIikKKyAgICAoc3VicGF0aCAiL0xpYnJhcnkvTWFuYWdl
ZCBQcmVmZXJlbmNlcyIpCisKKyAgICA7OyBPbi1kaXNrIFdlYktpdDIgZnJhbWV3b3JrIGxvY2F0
aW9uLCB0byBhY2NvdW50IGZvciBkZWJ1ZyBpbnN0YWxsYXRpb25zCisgICAgOzsgb3V0c2lkZSBv
ZiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3JrcworICAgIChzdWJwYXRoIChwYXJhbSAiV0VCS0lU
Ml9GUkFNRVdPUktfRElSIikpKQorKGFsbG93IHN5c3RlbS1mc2N0bCAoZnNjdGwtY29tbWFuZCAo
X0lPICJoIiA0NykpKQorCis7OyBWYXJpb3VzIHNlcnZpY2VzIHJlcXVpcmVkIGJ5IENGTmV0d29y
ayBhbmQgb3RoZXIgZnJhbWV3b3JrcworKGFsbG93IG1hY2gtbG9va3VwCisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDAKKyAgICAoZ2xvYmFsLW5hbWUgImNvbS5h
cHBsZS5hbmFseXRpY3NkIikKKyNlbmRpZgorICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmxz
ZC5tYXBkYiIpCispCisKKzs7IFNhbmRib3ggZXh0ZW5zaW9ucworKGRlZmluZSAoYXBwbHktcmVh
ZC1hbmQtaXNzdWUtZXh0ZW5zaW9uIG9wIHBhdGgtZmlsdGVyKQorICAgIChvcCBmaWxlLXJlYWQq
IHBhdGgtZmlsdGVyKQorICAgIChvcCBmaWxlLWlzc3VlLWV4dGVuc2lvbiAocmVxdWlyZS1hbGwg
KGV4dGVuc2lvbi1jbGFzcyAiY29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQiKSBwYXRoLWZpbHRl
cikpKQorKGRlZmluZSAoYXBwbHktd3JpdGUtYW5kLWlzc3VlLWV4dGVuc2lvbiBvcCBwYXRoLWZp
bHRlcikKKyAgICAob3AgZmlsZS13cml0ZSogcGF0aC1maWx0ZXIpCisgICAgKG9wIGZpbGUtaXNz
dWUtZXh0ZW5zaW9uIChyZXF1aXJlLWFsbCAoZXh0ZW5zaW9uLWNsYXNzICJjb20uYXBwbGUuYXBw
LXNhbmRib3gucmVhZC13cml0ZSIpIHBhdGgtZmlsdGVyKSkpCisoZGVmaW5lIChyZWFkLW9ubHkt
YW5kLWlzc3VlLWV4dGVuc2lvbnMgcGF0aC1maWx0ZXIpCisgICAgKGFwcGx5LXJlYWQtYW5kLWlz
c3VlLWV4dGVuc2lvbiBhbGxvdyBwYXRoLWZpbHRlcikpCisoZGVmaW5lIChyZWFkLXdyaXRlLWFu
ZC1pc3N1ZS1leHRlbnNpb25zIHBhdGgtZmlsdGVyKQorICAgIChhcHBseS1yZWFkLWFuZC1pc3N1
ZS1leHRlbnNpb24gYWxsb3cgcGF0aC1maWx0ZXIpCisgICAgKGFwcGx5LXdyaXRlLWFuZC1pc3N1
ZS1leHRlbnNpb24gYWxsb3cgcGF0aC1maWx0ZXIpKQorKHJlYWQtb25seS1hbmQtaXNzdWUtZXh0
ZW5zaW9ucyAoZXh0ZW5zaW9uICJjb20uYXBwbGUuYXBwLXNhbmRib3gucmVhZCIpKQorKHJlYWQt
d3JpdGUtYW5kLWlzc3VlLWV4dGVuc2lvbnMgKGV4dGVuc2lvbiAiY29tLmFwcGxlLmFwcC1zYW5k
Ym94LnJlYWQtd3JpdGUiKSkKKworKGlmIChkZWZpbmVkPyAndm5vZGUtdHlwZSkKKyAgICAoZGVu
eSBmaWxlLXdyaXRlLWNyZWF0ZSAodm5vZGUtdHlwZSBTWU1MSU5LKSkpCisKKzs7IFJlc2VydmUg
YSBuYW1lc3BhY2UgZm9yIGFkZGl0aW9uYWwgcHJvdGVjdGVkIGV4dGVuZGVkIGF0dHJpYnV0ZXMu
CisoZGVueSBmaWxlLXJlYWQteGF0dHIgZmlsZS13cml0ZS14YXR0ciAoeGF0dHItcmVnZXggIyJe
Y29tXC5hcHBsZVwuc2VjdXJpdHlcLnByaXZhdGVcLiIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9EYXRhYmFzZVByb2Nlc3MvdW5peC9EYXRhYmFzZVByb2Nlc3NNYWluVW5peC5oIGIvU291
cmNlL1dlYktpdC9EYXRhYmFzZVByb2Nlc3MvdW5peC9EYXRhYmFzZVByb2Nlc3NNYWluVW5peC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjFkM2ViYTYyNzhiYjkyNzdkYThjOTgxNTYxYzQ0OGNhOTczZTc1Y2UKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0RhdGFiYXNlUHJvY2Vzcy91bml4L0RhdGFi
YXNlUHJvY2Vzc01haW5Vbml4LmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
PFdlYktpdC9XS0Jhc2UuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2V4dGVybiAiQyIgewor
V0tfRVhQT1JUIGludCBEYXRhYmFzZVByb2Nlc3NNYWluVW5peChpbnQgYXJnYywgY2hhcioqIGFy
Z3YpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCAzMmQ3ZTg4MDBlNTJiOWFiNDI5Y2YyZGNhMTYxYjZkY2IwMDAyZTNhLi40MGNkNDJk
NGMwNDgwMGM4MGNjZWI2ZTBlMGI5OWQ1NWE5ZTdhOGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy5tYWtlCkBAIC0yMiw2ICsyMiw5IEBACiAKIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikgXAor
ICAgICQoV2ViS2l0MikvRGF0YWJhc2VQcm9jZXNzIFwKKyAgICAkKFdlYktpdDIpL0RhdGFiYXNl
UHJvY2Vzcy9JbmRleGVkREIgXAorICAgICQoV2ViS2l0MikvRGF0YWJhc2VQcm9jZXNzL21hYyBc
CiAgICAgJChXZWJLaXQyKS9OZXR3b3JrUHJvY2VzcyBcCiAgICAgJChXZWJLaXQyKS9OZXR3b3Jr
UHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMgXAogICAgICQoV2ViS2l0MikvTmV0d29ya1Byb2Nlc3Mv
bWFjIFwKQEAgLTMzLDkgKzM2LDYgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9TaGFyZWQv
QVBJL0NvY29hIFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9BdXRoZW50aWNhdGlvbiBcCiAgICAg
JChXZWJLaXQyKS9TaGFyZWQvbWFjIFwKLSAgICAkKFdlYktpdDIpL1N0b3JhZ2VQcm9jZXNzIFwK
LSAgICAkKFdlYktpdDIpL1N0b3JhZ2VQcm9jZXNzL0luZGV4ZWREQiBcCi0gICAgJChXZWJLaXQy
KS9TdG9yYWdlUHJvY2Vzcy9tYWMgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BcHBsZVBh
eSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUgXAogICAgICQo
V2ViS2l0MikvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uIFwKQEAgLTcyLDcgKzcyLDYgQEAgVlBBVEgg
PSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMgXAog
ICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMgXAogICAgICQoV2ViS2l0Mikv
VUlQcm9jZXNzL1BsdWdpbnMgXAotICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1N0b3JhZ2UgXAog
ICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1VzZXJDb250ZW50IFwKICAgICAkKFdlYktpdDIpL1VJ
UHJvY2Vzcy9XZWJTdG9yYWdlIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9tYWMgXApAQCAt
OTIsNiArOTEsOSBAQCBlbmRpZgogTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgQXV0aGVudGlj
YXRpb25NYW5hZ2VyIFwKICAgICBDaGlsZFByb2Nlc3MgXAorICAgIERhdGFiYXNlUHJvY2VzcyBc
CisgICAgRGF0YWJhc2VQcm9jZXNzUHJveHkgXAorICAgIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29u
bmVjdGlvbiBcCiAgICAgRG93bmxvYWRQcm94eSBcCiAgICAgRHJhd2luZ0FyZWEgXAogICAgIERy
YXdpbmdBcmVhUHJveHkgXApAQCAtMTIzLDkgKzEyNSw2IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0g
XAogICAgIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIgXAogICAgIFN0b3JhZ2VBcmVhTWFw
IFwKICAgICBTdG9yYWdlTWFuYWdlciBcCi0gICAgU3RvcmFnZVByb2Nlc3MgXAotICAgIFN0b3Jh
Z2VQcm9jZXNzUHJveHkgXAotICAgIFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uIFwKICAg
ICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciBcCiAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eSBcCiAgICAgVmlld0dlc3R1cmVDb250cm9sbGVyIFwKQEAgLTIxNyw3ICsyMTYsNyBAQCBl
bmRpZgogCiBTQU5EQk9YX1BST0ZJTEVTID0gXAogCWNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiIFwK
LQljb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2IgXAorCWNvbS5hcHBsZS5XZWJLaXQuRGF0YWJh
c2VzLnNiIFwKIAljb20uYXBwbGUuV2ViS2l0LnBsdWdpbi1jb21tb24uc2IgXAogCWNvbS5hcHBs
ZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2IKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9FeHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9FeHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQSS5oCmluZGV4IDA1ZTE3YWRhNDQxZWM4NDg1
Y2I5MjJkNGI3NTFmYWU0YTU5MjdlM2MuLjE3ZGJlNGFlZjIxMTYyYzFmMzgwMTkxYzA5YzU5NGU3
OTI5YjMzNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vRXh0cmFQcml2YXRl
U3ltYm9sc0ZvclRBUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0V4dHJhUHJpdmF0
ZVN5bWJvbHNGb3JUQVBJLmgKQEAgLTMwLDcgKzMwLDcgQEAgZXh0ZXJuICJDIiB7CiAjZW5kaWYK
IAogLy8gRklYTUU6IFJlbW92ZSB0aGVzZSBhZnRlciA8cmRhcjovL3Byb2JsZW0vMzA3NzIwMzM+
IGlzIGZpeGVkLgotdm9pZCBTdG9yYWdlU2VydmljZUluaXRpYWxpemVyKCk7Cit2b2lkIERhdGFi
YXNlU2VydmljZUluaXRpYWxpemVyKCk7CiB2b2lkIE5ldHdvcmtTZXJ2aWNlSW5pdGlhbGl6ZXIo
KTsKIHZvaWQgUGx1Z2luU2VydmljZUluaXRpYWxpemVyKCk7CiB2b2lkIFdlYkNvbnRlbnRTZXJ2
aWNlSW5pdGlhbGl6ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsu
Y21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDk5YmZiNGJlOTI0
Y2EzZDhmOWExZjJiZWQ4MWQ5ZGY2NzBjMTgzNjAuLmVlMjg4M2IyODM1ZTJkYzczM2I4YTJhNjQ0
ZDdkZjYzM2M0YmFhMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21h
a2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMiw3ICsyLDcgQEAg
c2V0KFdlYktpdDJfT1VUUFVUX05BTUUgd2Via2l0Mmd0ay0ke1dFQktJVEdUS19BUElfVkVSU0lP
Tn0pCiBzZXQoV2ViS2l0Ml9XZWJQcm9jZXNzX09VVFBVVF9OQU1FIFdlYktpdFdlYlByb2Nlc3Mp
CiBzZXQoV2ViS2l0Ml9OZXR3b3JrUHJvY2Vzc19PVVRQVVRfTkFNRSBXZWJLaXROZXR3b3JrUHJv
Y2VzcykKIHNldChXZWJLaXQyX1BsdWdpblByb2Nlc3NfT1VUUFVUX05BTUUgV2ViS2l0UGx1Z2lu
UHJvY2VzcykKLXNldChXZWJLaXQyX1N0b3JhZ2VQcm9jZXNzX09VVFBVVF9OQU1FIFdlYktpdFN0
b3JhZ2VQcm9jZXNzKQorc2V0KFdlYktpdDJfRGF0YWJhc2VQcm9jZXNzX09VVFBVVF9OQU1FIFdl
YktpdERhdGFiYXNlUHJvY2VzcykKIAogZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09V
UkNFU19XRUJLSVQyX0RJUn0pCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VT
X1dFQktJVDJHVEtfQVBJX0RJUn0pCkBAIC0yNiw2ICsyNiw4IEBAIGFkZF9kZWZpbml0aW9ucygt
RERBVEFESVI9IiR7Q01BS0VfSU5TVEFMTF9GVUxMX0RBVEFESVJ9IikKIHNldChXZWJLaXQyX1VT
RV9QUkVGSVhfSEVBREVSIE9OKQogCiBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKKyAgICBE
YXRhYmFzZVByb2Nlc3MvZ3RrL0RhdGFiYXNlUHJvY2Vzc01haW5HdGsuY3BwCisKICAgICBOZXR3
b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvc291cC9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFn
ZXJTb3VwLmNwcAogCiAgICAgTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlQ29kZXJz
U291cC5jcHAKQEAgLTEwMCw4ICsxMDIsNiBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMK
IAogICAgIFNoYXJlZC91bml4L0NoaWxkUHJvY2Vzc01haW4uY3BwCiAKLSAgICBTdG9yYWdlUHJv
Y2Vzcy9ndGsvU3RvcmFnZVByb2Nlc3NNYWluR3RrLmNwcAotCiAgICAgVUlQcm9jZXNzL0FjY2Vs
ZXJhdGVkRHJhd2luZ0FyZWFQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvQmFja2luZ1N0b3JlLmNw
cAogICAgIFVJUHJvY2Vzcy9EZWZhdWx0VW5kb0NvbnRyb2xsZXIuY3BwCkBAIC03NTksNiArNzU5
LDcgQEAgbGlzdChJTlNFUlQgV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTIDAKIAogbGlzdChB
UFBFTkQgV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1Bs
dWdpblByb2Nlc3MvdW5peCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vRGF0YWJhc2VQcm9jZXNzL3Vu
aXgiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29scy9z
b3VwIgogICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvc291cCIK
ICAgICAiJHtXRUJLSVQyX0RJUn0vTmV0d29ya1Byb2Nlc3MvZ3RrIgpAQCAtNzc3LDcgKzc3OCw2
IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJ
VDJfRElSfS9TaGFyZWQvbGludXgiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9zb3VwIgog
ICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvdW5peCIKLSAgICAiJHtXRUJLSVQyX0RJUn0vU3Rv
cmFnZVByb2Nlc3MvdW5peCIKICAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL2Nh
aXJvIgogICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvZ3RrIgogICAgICIke1dF
QktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWIiCkBAIC04MzcsOCArODM3LDggQEAgbGlzdChB
UFBFTkQgTmV0d29ya1Byb2Nlc3NfU09VUkNFUwogICAgIE5ldHdvcmtQcm9jZXNzL0VudHJ5UG9p
bnQvdW5peC9OZXR3b3JrUHJvY2Vzc01haW4uY3BwCiApCiAKLWxpc3QoQVBQRU5EIFN0b3JhZ2VQ
cm9jZXNzX1NPVVJDRVMKLSAgICBTdG9yYWdlUHJvY2Vzcy9FbnRyeVBvaW50L3VuaXgvU3RvcmFn
ZVByb2Nlc3NNYWluLmNwcAorbGlzdChBUFBFTkQgRGF0YWJhc2VQcm9jZXNzX1NPVVJDRVMKKyAg
ICBEYXRhYmFzZVByb2Nlc3MvRW50cnlQb2ludC91bml4L0RhdGFiYXNlUHJvY2Vzc01haW4uY3Bw
CiApCiAKIHNldChTaGFyZWRXZWJLaXQyTGlicmFyaWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybU1hYy5jbWFrZQpp
bmRleCA2MWFkZTNhMjkyYTY1Yjg4NDkxZTAzMzdmODU5Y2I0MTQ5ZmQ0MmFhLi5hNDExMWYzY2Yz
Njk5MjVlNmI5N2I1ZGZkYjUwZTBjYmRkNmQyYTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtTWFjLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1NYWMuY21ha2UK
QEAgLTE5LDYgKzE5LDggQEAgaWYgKE5PVCBBVkZBVURJT19MSUJSQVJZLU5PVEZPVU5EKQogZW5k
aWYgKCkKIAogbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCisgICAgRGF0YWJhc2VQcm9jZXNz
L21hYy9EYXRhYmFzZVByb2Nlc3NNYWMubW0KKwogICAgIE5ldHdvcmtQcm9jZXNzL0N1c3RvbVBy
b3RvY29scy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5tbQogCiAgICAg
TmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL1BlbmRpbmdEb3dubG9hZC5jcHAKQEAgLTE1OSw4ICsx
NjEsNiBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQvbWFjL1dlYkhp
dFRlc3RSZXN1bHREYXRhLm1tCiAgICAgU2hhcmVkL21hYy9XZWJNZW1vcnlTYW1wbGVyLm1hYy5t
bQogCi0gICAgU3RvcmFnZVByb2Nlc3MvbWFjL1N0b3JhZ2VQcm9jZXNzTWFjLm1tCi0KICAgICBV
SVByb2Nlc3MvSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuY3BwCiAgICAgVUlQ
cm9jZXNzL1BlckFjdGl2aXR5U3RhdGVDUFVVc2FnZVNhbXBsZXIuY3BwCiAgICAgVUlQcm9jZXNz
L1dlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eS5jcHAKQEAgLTQ1MSw4ICs0NTEsOCBAQCBsaXN0
KEFQUEVORCBOZXR3b3JrUHJvY2Vzc19TT1VSQ0VTCiAgICAgJHtYUENTZXJ2aWNlX1NPVVJDRVN9
CiApCiAKLWxpc3QoQVBQRU5EIFN0b3JhZ2VQcm9jZXNzX1NPVVJDRVMKLSAgICBTdG9yYWdlUHJv
Y2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1N0b3JhZ2VTZXJ2aWNlRW50cnlQb2ludC5t
bQorbGlzdChBUFBFTkQgRGF0YWJhc2VQcm9jZXNzX1NPVVJDRVMKKyAgICBEYXRhYmFzZVByb2Nl
c3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9EYXRhYmFzZVNlcnZpY2VFbnRyeVBvaW50Lm1t
CiAgICAgJHtYUENTZXJ2aWNlX1NPVVJDRVN9CiApCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BFLmNtYWtlCmlu
ZGV4IGNiN2FjNmVmY2RhYTVlMTVhMGE4ZmZmNzk3MTY5YmJiMDlmY2M2MTAuLmY2ZWU2NzRmZDhl
OWY0YjEwY2E3MmE1YmI5MzI1ZGJkZTAyMjEyNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFrZQpA
QCAtNDcsOCArNDcsOCBAQCBsaXN0KEFQUEVORCBOZXR3b3JrUHJvY2Vzc19TT1VSQ0VTCiAgICAg
TmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC91bml4L05ldHdvcmtQcm9jZXNzTWFpbi5jcHAKICkK
IAotbGlzdChBUFBFTkQgU3RvcmFnZVByb2Nlc3NfU09VUkNFUwotICAgIFN0b3JhZ2VQcm9jZXNz
L0VudHJ5UG9pbnQvdW5peC9TdG9yYWdlUHJvY2Vzc01haW4uY3BwCitsaXN0KEFQUEVORCBEYXRh
YmFzZVByb2Nlc3NfU09VUkNFUworICAgIERhdGFiYXNlUHJvY2Vzcy9FbnRyeVBvaW50L3VuaXgv
RGF0YWJhc2VQcm9jZXNzTWFpbi5jcHAKICkKIAogbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VT
CkBAIC0yNjEsNyArMjYxLDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgV2Vi
UHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01haW5XUEUuY3BwCiAKICAgICAjIEZJWE1FLUdXU0hBUkU6
Ci0gICAgU3RvcmFnZVByb2Nlc3MvZ3RrL1N0b3JhZ2VQcm9jZXNzTWFpbkd0ay5jcHAKKyAgICBE
YXRhYmFzZVByb2Nlc3MvZ3RrL0RhdGFiYXNlUHJvY2Vzc01haW5HdGsuY3BwCiApCiAKIGxpc3Qo
QVBQRU5EIFdlYktpdDJfTUVTU0FHRVNfSU5fRklMRVMKQEAgLTM3Niw2ICszNzYsNyBAQCBsaXN0
KEFQUEVORCBXZWJLaXQyX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0v
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZCIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vbmV0d29yay9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9EYXRhYmFzZVByb2Nlc3MvdW5p
eCIKICAgICAiJHtXRUJLSVQyX0RJUn0vTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3Nv
dXAiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwIgog
ICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2Vzcy9zb3VwIgpAQCAtMzkxLDcgKzM5Miw2
IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJ
VDJfRElSfS9TaGFyZWQvc291cCIKICAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL3VuaXgiCiAg
ICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC93cGUiCi0gICAgIiR7V0VCS0lUMl9ESVJ9L1N0b3Jh
Z2VQcm9jZXNzL3VuaXgiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9jYWly
byIKICAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL3dwZSIKICAgICAiJHtXRUJL
SVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9nbGliIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9S
ZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlcy5z
YiBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxl
LldlYktpdC5EYXRhYmFzZXMuc2IKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWJlNDk1M2VlYjJkM2E1OTczYTQxOGNj
NTM5Njg3MzU0MGE5MDFhYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUmVzb3Vy
Y2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXMuc2IKQEAg
LTAsMCArMSw0NSBAQAorOyBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorOworOyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKzsgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCis7IGFyZSBtZXQ6Cis7IDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Cis7ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKzsgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKzsgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorOyAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorOworOyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCis7IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorOyBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCis7IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworOyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCis7IENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Cis7IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworOyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorOyBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
OyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCis7IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworKHZl
cnNpb24gMSkKKyhkZW55IGRlZmF1bHQgKHdpdGggcGFydGlhbC1zeW1ib2xpY2F0aW9uKSkKKyhh
bGxvdyBzeXN0ZW0tYXVkaXQgZmlsZS1yZWFkLW1ldGFkYXRhKQorCisoZGVueSBtYWNoLWxvb2t1
cCAoeHBjLXNlcnZpY2UtbmFtZS1wcmVmaXggIiIpKQorCisoaW1wb3J0ICJjb21tb24uc2IiKQor
CisoYWxsb3cgZmlsZS1yZWFkKiBmaWxlLXdyaXRlKiAoZXh0ZW5zaW9uICJjb20uYXBwbGUuYXBw
LXNhbmRib3gucmVhZC13cml0ZSIpKQorCisoZGVueSBzeXNjdGwqKQorKGFsbG93IHN5c2N0bC1y
ZWFkCisgICAgKHN5c2N0bC1uYW1lCisgICAgICAgICJody5hdmFpbGNwdSIKKyAgICAgICAgImh3
Lm5jcHUiCisgICAgICAgICJody5tb2RlbCIKKyAgICAgICAgImtlcm4ubWVtb3J5c3RhdHVzX2xl
dmVsIgorICAgICAgICAidm0uZm9vdHByaW50X3N1c3BlbmQiKSkKKworOzsgVmFyaW91cyBzZXJ2
aWNlcyByZXF1aXJlZCBieSBzeXN0ZW0gZnJhbWV3b3JrcworKGFsbG93IG1hY2gtbG9va3VwCisg
ICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5hbmFseXRpY3NkIikpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQu
U3RvcmFnZS5zYiBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3Mv
Y29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlYmU0OTUzZWViMmQzYTU5NzNhNDE4Y2M1Mzk2ODczNTQwYTkwMWFjLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2Vz
L1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiCisrKyAvZGV2
L251bGwKQEAgLTEsNDUgKzAsMCBAQAotOyBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotOwotOyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLTsgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi07IGFyZSBt
ZXQ6Ci07IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci07ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLTsgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLTsgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotOyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotOwotOyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi07IEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
OyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi07IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotOyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi07IENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi07IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotOyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotOyBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotOyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi07IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLQotKHZlcnNpb24gMSkKLShkZW55IGRlZmF1bHQgKHdpdGggcGFydGlhbC1zeW1ib2xpY2F0
aW9uKSkKLShhbGxvdyBzeXN0ZW0tYXVkaXQgZmlsZS1yZWFkLW1ldGFkYXRhKQotCi0oZGVueSBt
YWNoLWxvb2t1cCAoeHBjLXNlcnZpY2UtbmFtZS1wcmVmaXggIiIpKQotCi0oaW1wb3J0ICJjb21t
b24uc2IiKQotCi0oYWxsb3cgZmlsZS1yZWFkKiBmaWxlLXdyaXRlKiAoZXh0ZW5zaW9uICJjb20u
YXBwbGUuYXBwLXNhbmRib3gucmVhZC13cml0ZSIpKQotCi0oZGVueSBzeXNjdGwqKQotKGFsbG93
IHN5c2N0bC1yZWFkCi0gICAgKHN5c2N0bC1uYW1lCi0gICAgICAgICJody5hdmFpbGNwdSIKLSAg
ICAgICAgImh3Lm5jcHUiCi0gICAgICAgICJody5tb2RlbCIKLSAgICAgICAgImtlcm4ubWVtb3J5
c3RhdHVzX2xldmVsIgotICAgICAgICAidm0uZm9vdHByaW50X3N1c3BlbmQiKSkKLQotOzsgVmFy
aW91cyBzZXJ2aWNlcyByZXF1aXJlZCBieSBzeXN0ZW0gZnJhbWV3b3JrcwotKGFsbG93IG1hY2gt
bG9va3VwCi0gICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5hbmFseXRpY3NkIikpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RhdGFiYXNlcy9EYXRhYmFz
ZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNmMGY3NmEyNDYwYzY2
ZDA3YzZjYTAyNTJjNWZjNmVhNzc1M2EwMWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkRhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorCisjaW5jbHVkZSAi
QXJndW1lbnRDb2RlcnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0RhdGFiYXNlUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6RGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKCkK
K3sKK30KKwordm9pZCBEYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJ
UEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisjaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCisgICAgZW5jb2RlciA8PCBzZXNzaW9uSUQ7CisgICAgZW5jb2RlciA8PCBpbmRleGVkRGF0
YWJhc2VEaXJlY3Rvcnk7CisgICAgZW5jb2RlciA8PCBpbmRleGVkRGF0YWJhc2VEaXJlY3RvcnlF
eHRlbnNpb25IYW5kbGU7CisjZW5kaWYKK30KKworYm9vbCBEYXRhYmFzZVByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIERhdGFiYXNlUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyYgcmVzdWx0KQoreworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNlc3Npb25JRCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pbmRleGVkRGF0
YWJhc2VEaXJlY3RvcnkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQuaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9E
YXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTZmOTNmOGZhMDgzMzhkYWVmOWIzMDI3MjNlZjhhNjNlMGZlZGFiOAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RhdGFiYXNlcy9EYXRhYmFzZVBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgSVBDIHsKK2Ns
YXNzIERlY29kZXI7CitjbGFzcyBFbmNvZGVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
c3RydWN0IERhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CisgICAgRGF0YWJhc2VQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKCk7CisKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29k
ZXImKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgRGF0YWJh
c2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CisKKyAgICBXZWJDb3JlOjpTZXNzaW9uSUQg
c2Vzc2lvbklEOworICAgIAorI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgIFN0cmlu
ZyBpbmRleGVkRGF0YWJhc2VEaXJlY3Rvcnk7CisgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
IGluZGV4ZWREYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyNlbmRpZgorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9T
dG9yYWdlL1N0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZmUzNDA3OGRjZjZlZWJkNDg0OTlhNGY0Zjk4
OWI1NTY5Yzk3ZjA0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oIgotCi0jaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci0KLVN0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpTdG9yYWdlUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycygpCi17Ci19Ci0KLXZvaWQgU3RvcmFnZVByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0jaWYg
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgZW5jb2RlciA8PCBzZXNzaW9uSUQ7Ci0gICAg
ZW5jb2RlciA8PCBpbmRleGVkRGF0YWJhc2VEaXJlY3Rvcnk7Ci0gICAgZW5jb2RlciA8PCBpbmRl
eGVkRGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Ci0jZW5kaWYKLX0KLQotYm9vbCBT
dG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVj
b2RlciwgU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHJlc3VsdCkKLXsKLSNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5z
ZXNzaW9uSUQpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShyZXN1bHQuaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5KSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmluZGV4ZWREYXRhYmFzZURpcmVjdG9y
eUV4dGVuc2lvbkhhbmRsZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotCi0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMGYzNTM2NDExOWRk
ZGJmYjVlNjM2MTQzOTlkNDY0NzY4MTAzOGIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1N0b3JhZ2UvU3RvcmFnZVBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICovCi0KLSNwcmFn
bWEgb25jZQotCi0jaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgotI2luY2x1ZGUgPFdlYkNv
cmUvU2Vzc2lvbklELmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVz
cGFjZSBJUEMgewotY2xhc3MgRGVjb2RlcjsKLWNsYXNzIEVuY29kZXI7Ci19Ci0KLW5hbWVzcGFj
ZSBXZWJLaXQgewotCi1zdHJ1Y3QgU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewot
ICAgIFN0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKCk7Ci0KLSAgICB2b2lkIGVuY29k
ZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNv
ZGVyJiwgU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKLQotICAgIFdlYkNvcmU6
OlNlc3Npb25JRCBzZXNzaW9uSUQ7Ci0gICAgCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
Ci0gICAgU3RyaW5nIGluZGV4ZWREYXRhYmFzZURpcmVjdG9yeTsKLSAgICBTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGUgaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwotI2Vu
ZGlmCi19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZVByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9TdG9yYWdlU2Vydmlj
ZS9JbmZvLnBsaXN0IGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9FbnRyeVBvaW50L21h
Yy9YUENTZXJ2aWNlL1N0b3JhZ2VTZXJ2aWNlL0luZm8ucGxpc3QKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDlhN2RkMzUyZjFmNWM0NjM3NWYzMmNlM2NlNDU5OWVjY2Q5Zjk3YmMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9TdG9yYWdlUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1N0b3JhZ2VTZXJ2aWNl
L0luZm8ucGxpc3QKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi08P3htbCB2ZXJzaW9u
PSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBw
bGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0
eUxpc3QtMS4wLmR0ZCI+Ci08cGxpc3QgdmVyc2lvbj0iMS4wIj4KLTxkaWN0PgotCTxrZXk+Q0ZC
dW5kbGVHZXRJbmZvU3RyaW5nPC9rZXk+Ci0JPHN0cmluZz4ke0JVTkRMRV9WRVJTSU9OfSwgQ29w
eXJpZ2h0IDIwMDMtMjAxNyBBcHBsZSBJbmMuPC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZURldmVs
b3BtZW50UmVnaW9uPC9rZXk+Ci0JPHN0cmluZz5FbmdsaXNoPC9zdHJpbmc+Ci0JPGtleT5DRkJ1
bmRsZUV4ZWN1dGFibGU8L2tleT4KLQk8c3RyaW5nPiR7RVhFQ1VUQUJMRV9OQU1FfTwvc3RyaW5n
PgotCTxrZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+Ci0JPHN0cmluZz4ke1BST0RVQ1RfQlVO
RExFX0lERU5USUZJRVJ9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZUluZm9EaWN0aW9uYXJ5VmVy
c2lvbjwva2V5PgotCTxzdHJpbmc+Ni4wPC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZU5hbWU8L2tl
eT4KLQk8c3RyaW5nPiR7UFJPRFVDVF9OQU1FfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVQYWNr
YWdlVHlwZTwva2V5PgotCTxzdHJpbmc+WFBDITwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVTaG9y
dFZlcnNpb25TdHJpbmc8L2tleT4KLQk8c3RyaW5nPiR7U0hPUlRfVkVSU0lPTl9TVFJJTkd9PC9z
dHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVNpZ25hdHVyZTwva2V5PgotCTxzdHJpbmc+Pz8/Pzwvc3Ry
aW5nPgotCTxrZXk+Q0ZCdW5kbGVWZXJzaW9uPC9rZXk+Ci0JPHN0cmluZz4ke0JVTkRMRV9WRVJT
SU9OfTwvc3RyaW5nPgotCTxrZXk+TFNGaWxlUXVhcmFudGluZUVuYWJsZWQ8L2tleT4KLQk8dHJ1
ZS8+Ci0JPGtleT5XZWJLaXRFbnRyeVBvaW50PC9rZXk+Ci0JPHN0cmluZz5TdG9yYWdlU2Vydmlj
ZUluaXRpYWxpemVyPC9zdHJpbmc+Ci0JPGtleT5MU1VJRWxlbWVudDwva2V5PgotCTx0cnVlLz4K
LQk8a2V5PlhQQ1NlcnZpY2U8L2tleT4KLQk8ZGljdD4KLQkJPGtleT5SdW5Mb29wVHlwZTwva2V5
PgotCQk8c3RyaW5nPk5TUnVuTG9vcDwvc3RyaW5nPgotCQk8a2V5PlNlcnZpY2VUeXBlPC9rZXk+
Ci0JCTxzdHJpbmc+QXBwbGljYXRpb248L3N0cmluZz4KLQkJPGtleT5fTXVsdGlwbGVJbnN0YW5j
ZXM8L2tleT4KLQkJPHRydWUvPgotCTwvZGljdD4KLTwvZGljdD4KLTwvcGxpc3Q+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZp
Y2UvU3RvcmFnZVNlcnZpY2VFbnRyeVBvaW50Lm1tIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1N0b3JhZ2VTZXJ2aWNlRW50cnlQb2ludC5t
bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzI0YWYwOTAyNDRkZmZlNzE2ODAyOTI4
ZGVlZWJmNjlkNzZhYWY4MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1Nl
cnZpY2UvU3RvcmFnZVNlcnZpY2VFbnRyeVBvaW50Lm1tCisrKyAvZGV2L251bGwKQEAgLTEsNDAg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotCi0jaW1wb3J0ICJFbnZp
cm9ubWVudFV0aWxpdGllcy5oIgotI2ltcG9ydCAiU3RvcmFnZVByb2Nlc3MuaCIKLSNpbXBvcnQg
IldLQmFzZS5oIgotI2ltcG9ydCAiWFBDU2VydmljZUVudHJ5UG9pbnQuaCIKLQotdXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKLQotZXh0ZXJuICJDIiBXS19FWFBPUlQgdm9pZCBTdG9yYWdlU2Vydmlj
ZUluaXRpYWxpemVyKHhwY19jb25uZWN0aW9uX3QgY29ubmVjdGlvbiwgeHBjX29iamVjdF90IGlu
aXRpYWxpemVyTWVzc2FnZSwgeHBjX29iamVjdF90IHByaW9yaXR5Qm9vc3RNZXNzYWdlKTsKLQot
dm9pZCBTdG9yYWdlU2VydmljZUluaXRpYWxpemVyKHhwY19jb25uZWN0aW9uX3QgY29ubmVjdGlv
biwgeHBjX29iamVjdF90IGluaXRpYWxpemVyTWVzc2FnZSwgeHBjX29iamVjdF90IHByaW9yaXR5
Qm9vc3RNZXNzYWdlKQotewotICAgIFhQQ1NlcnZpY2VJbml0aWFsaXplcjxTdG9yYWdlUHJvY2Vz
cywgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU+KGFkb3B0T1NPYmplY3QoY29ubmVjdGlv
biksIGluaXRpYWxpemVyTWVzc2FnZSwgcHJpb3JpdHlCb29zdE1lc3NhZ2UpOwotfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9FbnRyeVBvaW50L3VuaXgvU3RvcmFn
ZVByb2Nlc3NNYWluLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvRW50cnlQb2lu
dC91bml4L1N0b3JhZ2VQcm9jZXNzTWFpbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDg0YzJiMTA0ZjVhNzM4ZmFhYWNhZjAxNDdjOGE5MzgzYTYyNTFhYzkuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdl
UHJvY2Vzcy9FbnRyeVBvaW50L3VuaXgvU3RvcmFnZVByb2Nlc3NNYWluLmNwcAorKysgL2Rldi9u
dWxsCkBAIC0xLDM0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMu
TC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlN0b3JhZ2VQcm9j
ZXNzTWFpblVuaXguaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLQotaW50IG1haW4oaW50
IGFyZ2MsIGNoYXIqKiBhcmd2KQotewotICAgIHJldHVybiBTdG9yYWdlUHJvY2Vzc01haW5Vbml4
KGFyZ2MsIGFyZ3YpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQv
U3RvcmFnZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4OTA1YzEzMTliN2NkYzQ5ZmQ1YmVhMTJkYzdm
YTllYjE0MTFiZDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM3MiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYklEQkNvbm5lY3Rpb25Ub0NsaWVu
dC5oIgotCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0KLSNpbmNsdWRlICJEYXRhUmVm
ZXJlbmNlLmgiCi0jaW5jbHVkZSAiU3RvcmFnZVByb2Nlc3MuaCIKLSNpbmNsdWRlICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNz
YWdlcy5oIgotI2luY2x1ZGUgIldlYklEQlJlc3VsdC5oIgotI2luY2x1ZGUgPFdlYkNvcmUvSURC
RXJyb3IuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0lEQkdldEFsbFJlY29yZHNEYXRhLmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9JREJHZXRSZWNvcmREYXRhLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9JREJS
ZXN1bHREYXRhLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9JREJWYWx1ZS5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvVGhyZWFkU2FmZURhdGFCdWZmZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1VuaXF1ZUlE
QkRhdGFiYXNlQ29ubmVjdGlvbi5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFt
ZXNwYWNlIFdlYktpdCB7Ci0KLVJlZjxXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+IFdlYklEQkNv
bm5lY3Rpb25Ub0NsaWVudDo6Y3JlYXRlKFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6
U2Vzc2lvbklEIHNlc3Npb25JRCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJJREJD
b25uZWN0aW9uVG9DbGllbnQoY29ubmVjdGlvbiwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IHNlc3Npb25JRCkpOwotfQotCi1XZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OldlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudChTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
dWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlc3Npb25JRCBz
ZXNzaW9uSUQpCi0gICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKLSAgICAsIG1faWRlbnRp
ZmllcihzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKLSAgICAsIG1fc2Vzc2lvbklEKHNlc3Np
b25JRCkKLXsKLSAgICByZWxheEFkb3B0aW9uUmVxdWlyZW1lbnQoKTsKLSAgICBtX2Nvbm5lY3Rp
b25Ub0NsaWVudCA9IElEQlNlcnZlcjo6SURCQ29ubmVjdGlvblRvQ2xpZW50OjpjcmVhdGUoKnRo
aXMpOwotICAgIFN0b3JhZ2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIobV9zZXNzaW9u
SUQpLnJlZ2lzdGVyQ29ubmVjdGlvbigqbV9jb25uZWN0aW9uVG9DbGllbnQpOwotfQotCi1XZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQ6On5XZWJJREJDb25uZWN0aW9uVG9DbGllbnQoKQotewotfQot
Ci12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlzY29ubmVjdGVkRnJvbVdlYlByb2Nl
c3MoKQotewotICAgIFN0b3JhZ2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIobV9zZXNz
aW9uSUQpLnVucmVnaXN0ZXJDb25uZWN0aW9uKCptX2Nvbm5lY3Rpb25Ub0NsaWVudCk7Ci19Ci0K
LUlQQzo6Q29ubmVjdGlvbiogV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjptZXNzYWdlU2VuZGVy
Q29ubmVjdGlvbigpCi17Ci0gICAgcmV0dXJuICZtX2Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKTsK
LX0KLQotV2ViQ29yZTo6SURCU2VydmVyOjpJREJDb25uZWN0aW9uVG9DbGllbnQmIFdlYklEQkNv
bm5lY3Rpb25Ub0NsaWVudDo6Y29ubmVjdGlvblRvQ2xpZW50KCkKLXsKLSAgICByZXR1cm4gKm1f
Y29ubmVjdGlvblRvQ2xpZW50OwotfQotCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6
ZGlkRGVsZXRlRGF0YWJhc2UoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0
YSkKLXsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZERl
bGV0ZURhdGFiYXNlKHJlc3VsdERhdGEpKTsKLX0KLQotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9D
bGllbnQ6OmRpZE9wZW5EYXRhYmFzZShjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJiByZXN1
bHREYXRhKQotewotICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6
RGlkT3BlbkRhdGFiYXNlKHJlc3VsdERhdGEpKTsKLX0KLQotdm9pZCBXZWJJREJDb25uZWN0aW9u
VG9DbGllbnQ6OmRpZEFib3J0VHJhbnNhY3Rpb24oY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9y
JiBlcnJvcikKLXsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6
OkRpZEFib3J0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JZGVudGlmaWVyLCBlcnJvcikpOwotfQot
Ci12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkQ29tbWl0VHJhbnNhY3Rpb24oY29u
c3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJiBlcnJvcikKLXsKLSAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZENvbW1pdFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9u
SWRlbnRpZmllciwgZXJyb3IpKTsKLX0KLQotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6
OmRpZENyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmIHJlc3Vs
dERhdGEpCi17Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpE
aWRDcmVhdGVPYmplY3RTdG9yZShyZXN1bHREYXRhKSk7Ci19Ci0KLXZvaWQgV2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50OjpkaWREZWxldGVPYmplY3RTdG9yZShjb25zdCBXZWJDb3JlOjpJREJSZXN1
bHREYXRhJiByZXN1bHREYXRhKQotewotICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlcjo6RGlkRGVsZXRlT2JqZWN0U3RvcmUocmVzdWx0RGF0YSkpOwotfQotCi12b2lk
IFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkUmVuYW1lT2JqZWN0U3RvcmUoY29uc3QgV2Vi
Q29yZTo6SURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKLXsKLSAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZFJlbmFtZU9iamVjdFN0b3JlKHJlc3VsdERhdGEp
KTsKLX0KLQotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZENsZWFyT2JqZWN0U3Rv
cmUoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKLXsKLSAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZENsZWFyT2JqZWN0U3RvcmUo
cmVzdWx0RGF0YSkpOwotfQotCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkQ3Jl
YXRlSW5kZXgoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKLXsKLSAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZENyZWF0ZUluZGV4
KHJlc3VsdERhdGEpKTsKLX0KLQotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZERl
bGV0ZUluZGV4KGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCi17Ci0g
ICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpEaWREZWxldGVJbmRl
eChyZXN1bHREYXRhKSk7Ci19Ci0KLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRS
ZW5hbWVJbmRleChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJiByZXN1bHREYXRhKQotewot
ICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6RGlkUmVuYW1lSW5k
ZXgocmVzdWx0RGF0YSkpOwotfQotCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlk
UHV0T3JBZGQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKLXsKLSAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZFB1dE9yQWRkKHJl
c3VsdERhdGEpKTsKLX0KLQotdGVtcGxhdGU8Y2xhc3MgTWVzc2FnZVR5cGU+IHZvaWQgV2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50OjpoYW5kbGVHZXRSZXN1bHQoY29uc3QgV2ViQ29yZTo6SURCUmVz
dWx0RGF0YSYgcmVzdWx0RGF0YSkKLXsKLSAgICBpZiAocmVzdWx0RGF0YS50eXBlKCkgPT0gSURC
UmVzdWx0VHlwZTo6RXJyb3IpIHsKLSAgICAgICAgc2VuZChNZXNzYWdlVHlwZShyZXN1bHREYXRh
KSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAocmVzdWx0RGF0YS50eXBlKCkg
PT0gSURCUmVzdWx0VHlwZTo6R2V0QWxsUmVjb3Jkc1N1Y2Nlc3MgJiYgcmVzdWx0RGF0YS5nZXRB
bGxSZXN1bHQoKS50eXBlKCkgPT0gSW5kZXhlZERCOjpHZXRBbGxUeXBlOjpLZXlzKSB7Ci0gICAg
ICAgIHNlbmQoTWVzc2FnZVR5cGUocmVzdWx0RGF0YSkpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgYXV0byBibG9iRmlsZVBhdGhzID0gcmVzdWx0RGF0YS50eXBlKCkgPT0gSURCUmVz
dWx0VHlwZTo6R2V0QWxsUmVjb3Jkc1N1Y2Nlc3MgPyByZXN1bHREYXRhLmdldEFsbFJlc3VsdCgp
LmFsbEJsb2JGaWxlUGF0aHMoKSA6IHJlc3VsdERhdGEuZ2V0UmVzdWx0KCkudmFsdWUoKS5ibG9i
RmlsZVBhdGhzKCk7Ci0gICAgaWYgKGJsb2JGaWxlUGF0aHMuaXNFbXB0eSgpKSB7Ci0gICAgICAg
IHNlbmQoTWVzc2FnZVR5cGUocmVzdWx0RGF0YSkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0jaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKLSAgICBSZWZQdHI8V2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50PiBwcm90ZWN0b3IodGhpcyk7Ci0gICAgU3RvcmFnZVByb2Nlc3M6OnNpbmds
ZXRvbigpLmdldFNhbmRib3hFeHRlbnNpb25zRm9yQmxvYkZpbGVzKGJsb2JGaWxlUGF0aHMsIFtw
cm90ZWN0b3IsIHRoaXMsIHJlc3VsdERhdGFdKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5
JiYgaGFuZGxlcykgewotICAgICAgICBzZW5kKE1lc3NhZ2VUeXBlKHsgcmVzdWx0RGF0YSwgV1RG
TW92ZShoYW5kbGVzKSB9KSk7Ci0gICAgfSk7Ci0jZWxzZQotICAgIHNlbmQoTWVzc2FnZVR5cGUo
cmVzdWx0RGF0YSkpOwotI2VuZGlmCi19Ci0KLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
OjpkaWRHZXRSZWNvcmQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkK
LXsKLSAgICBoYW5kbGVHZXRSZXN1bHQ8TWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
cjo6RGlkR2V0UmVjb3JkPihyZXN1bHREYXRhKTsKLX0KLQotdm9pZCBXZWJJREJDb25uZWN0aW9u
VG9DbGllbnQ6OmRpZEdldEFsbFJlY29yZHMoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYg
cmVzdWx0RGF0YSkKLXsKLSAgICBoYW5kbGVHZXRSZXN1bHQ8TWVzc2FnZXM6OldlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6RGlkR2V0QWxsUmVjb3Jkcz4ocmVzdWx0RGF0YSk7Ci19Ci0KLXZvaWQg
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRHZXRDb3VudChjb25zdCBXZWJDb3JlOjpJREJS
ZXN1bHREYXRhJiByZXN1bHREYXRhKQotewotICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6RGlkR2V0Q291bnQocmVzdWx0RGF0YSkpOwotfQotCi12b2lkIFdlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkRGVsZXRlUmVjb3JkKGNvbnN0IFdlYkNvcmU6OklEQlJl
c3VsdERhdGEmIHJlc3VsdERhdGEpCi17Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29ubmVj
dGlvblRvU2VydmVyOjpEaWREZWxldGVSZWNvcmQocmVzdWx0RGF0YSkpOwotfQotCi12b2lkIFdl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkT3BlbkN1cnNvcihjb25zdCBXZWJDb3JlOjpJREJS
ZXN1bHREYXRhJiByZXN1bHREYXRhKQotewotICAgIGhhbmRsZUdldFJlc3VsdDxNZXNzYWdlczo6
V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpEaWRPcGVuQ3Vyc29yPihyZXN1bHREYXRhKTsKLX0K
LQotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEl0ZXJhdGVDdXJzb3IoY29uc3Qg
V2ViQ29yZTo6SURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKLXsKLSAgICBoYW5kbGVHZXRSZXN1
bHQ8TWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6RGlkSXRlcmF0ZUN1cnNvcj4o
cmVzdWx0RGF0YSk7Ci19Ci0KLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpmaXJlVmVy
c2lvbkNoYW5nZUV2ZW50KFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKQotewotICAgIHNl
bmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6RmlyZVZlcnNpb25DaGFuZ2VF
dmVudChjb25uZWN0aW9uLmlkZW50aWZpZXIoKSwgcmVxdWVzdElkZW50aWZpZXIsIHJlcXVlc3Rl
ZFZlcnNpb24pKTsKLX0KLQotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZFN0YXJ0
VHJhbnNhY3Rpb24oY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2Fj
dGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJiBlcnJvcikKLXsKLSAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZFN0YXJ0VHJhbnNhY3Rp
b24odHJhbnNhY3Rpb25JZGVudGlmaWVyLCBlcnJvcikpOwotfQotCi12b2lkIFdlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudDo6ZGlkQ2xvc2VGcm9tU2VydmVyKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5p
cXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpJREJF
cnJvciYgZXJyb3IpCi17Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyOjpEaWRDbG9zZUZyb21TZXJ2ZXIoY29ubmVjdGlvbi5pZGVudGlmaWVyKCksIGVycm9yKSk7
Ci19Ci0KLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpub3RpZnlPcGVuREJSZXF1ZXN0
QmxvY2tlZChjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVu
dGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRfdCBuZXdWZXJzaW9uKQotewotICAg
IHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Tm90aWZ5T3BlbkRCUmVx
dWVzdEJsb2NrZWQocmVxdWVzdElkZW50aWZpZXIsIG9sZFZlcnNpb24sIG5ld1ZlcnNpb24pKTsK
LX0KLQotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEdldEFsbERhdGFiYXNlTmFt
ZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFiYXNlTmFt
ZXMpCi17Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpEaWRH
ZXRBbGxEYXRhYmFzZU5hbWVzKGNhbGxiYWNrSUQsIGRhdGFiYXNlTmFtZXMpKTsKLX0KLQotdm9p
ZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRlbGV0ZURhdGFiYXNlKGNvbnN0IElEQlJlcXVl
c3REYXRhJiByZXF1ZXN0KQotewotICAgIFN0b3JhZ2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJT
ZXJ2ZXIobV9zZXNzaW9uSUQpLmRlbGV0ZURhdGFiYXNlKHJlcXVlc3QpOwotfQotCi12b2lkIFdl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6b3BlbkRhdGFiYXNlKGNvbnN0IElEQlJlcXVlc3REYXRh
JiByZXF1ZXN0KQotewotICAgIFN0b3JhZ2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIo
bV9zZXNzaW9uSUQpLm9wZW5EYXRhYmFzZShyZXF1ZXN0KTsKLX0KLQotdm9pZCBXZWJJREJDb25u
ZWN0aW9uVG9DbGllbnQ6OmFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpCi17Ci0gICAgU3RvcmFnZVByb2Nlc3M6OnNpbmds
ZXRvbigpLmlkYlNlcnZlcihtX3Nlc3Npb25JRCkuYWJvcnRUcmFuc2FjdGlvbih0cmFuc2FjdGlv
bklkZW50aWZpZXIpOwotfQotCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y29tbWl0
VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50
aWZpZXIpCi17Ci0gICAgU3RvcmFnZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcihtX3Nl
c3Npb25JRCkuY29tbWl0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKLX0KLQot
dm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNo
YW5nZVRyYW5zYWN0aW9uKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKQotewotICAg
IFN0b3JhZ2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIobV9zZXNzaW9uSUQpLmRpZEZp
bmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKGRhdGFiYXNlQ29ubmVjdGlvbklk
ZW50aWZpZXIsIHRyYW5zYWN0aW9uSWRlbnRpZmllcik7Ci19Ci0KLXZvaWQgV2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50OjpjcmVhdGVPYmplY3RTdG9yZShjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVx
dWVzdCwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiBpbmZvKQotewotICAgIFN0b3JhZ2VQcm9j
ZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIobV9zZXNzaW9uSUQpLmNyZWF0ZU9iamVjdFN0b3Jl
KHJlcXVlc3QsIGluZm8pOwotfQotCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGVs
ZXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3QsIGNvbnN0IFN0cmlu
ZyYgbmFtZSkKLXsKLSAgICBTdG9yYWdlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKG1f
c2Vzc2lvbklEKS5kZWxldGVPYmplY3RTdG9yZShyZXF1ZXN0LCBuYW1lKTsKLX0KLQotdm9pZCBX
ZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OnJlbmFtZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVl
c3REYXRhJiByZXF1ZXN0LCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgbmV3TmFtZSkKLXsKLSAgICBTdG9yYWdlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2Vy
dmVyKG1fc2Vzc2lvbklEKS5yZW5hbWVPYmplY3RTdG9yZShyZXF1ZXN0LCBvYmplY3RTdG9yZUlk
ZW50aWZpZXIsIG5ld05hbWUpOwotfQotCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6
Y2xlYXJPYmplY3RTdG9yZShjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdCwgdWludDY0X3Qg
b2JqZWN0U3RvcmVJZGVudGlmaWVyKQotewotICAgIFN0b3JhZ2VQcm9jZXNzOjpzaW5nbGV0b24o
KS5pZGJTZXJ2ZXIobV9zZXNzaW9uSUQpLmNsZWFyT2JqZWN0U3RvcmUocmVxdWVzdCwgb2JqZWN0
U3RvcmVJZGVudGlmaWVyKTsKLX0KLQotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmNy
ZWF0ZUluZGV4KGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0LCBjb25zdCBJREJJbmRleElu
Zm8mIGluZm8pCi17Ci0gICAgU3RvcmFnZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlciht
X3Nlc3Npb25JRCkuY3JlYXRlSW5kZXgocmVxdWVzdCwgaW5mbyk7Ci19Ci0KLXZvaWQgV2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50OjpkZWxldGVJbmRleChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVx
dWVzdCwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUp
Ci17Ci0gICAgU3RvcmFnZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcihtX3Nlc3Npb25J
RCkuZGVsZXRlSW5kZXgocmVxdWVzdCwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBuYW1lKTsKLX0K
LQotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OnJlbmFtZUluZGV4KGNvbnN0IElEQlJl
cXVlc3REYXRhJiByZXF1ZXN0LCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2
NF90IGluZGV4SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKQotewotICAgIFN0b3Jh
Z2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIobV9zZXNzaW9uSUQpLnJlbmFtZUluZGV4
KHJlcXVlc3QsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgaW5kZXhJZGVudGlmaWVyLCBuZXdOYW1l
KTsKLX0KLQotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OnB1dE9yQWRkKGNvbnN0IElE
QlJlcXVlc3REYXRhJiByZXF1ZXN0LCBjb25zdCBJREJLZXlEYXRhJiBrZXksIGNvbnN0IElEQlZh
bHVlJiB2YWx1ZSwgdW5zaWduZWQgb3ZlcndyaXRlTW9kZSkKLXsKLSAgICBpZiAob3ZlcndyaXRl
TW9kZSAhPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSW5kZXhlZERCOjpPYmplY3RTdG9yZU92ZXJ3
cml0ZU1vZGU6Ok5vT3ZlcndyaXRlKQotICAgICAgICAmJiBvdmVyd3JpdGVNb2RlICE9IHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZTo6T3Zl
cndyaXRlKQotICAgICAgICAmJiBvdmVyd3JpdGVNb2RlICE9IHN0YXRpY19jYXN0PHVuc2lnbmVk
PihJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZTo6T3ZlcndyaXRlRm9yQ3Vyc29y
KSkgewotICAgICAgICAvLyBGSVhNRTogVGhpcyBtZXNzYWdlIGZyb20gdGhlIFdlYlByb2Nlc3Mg
aXMgY29ycnVwdC4KLSAgICAgICAgLy8gVGhlIERhdGFiYXNlUHJvY2VzcyBzaG91bGQgcmV0dXJu
IGVhcmx5IGF0IHRoaXMgcG9pbnQsIGJ1dCBjYW4gd2UgYWxzbyBraWxsIHRoZSBiYWQgV2ViUHJv
Y2Vzcz8KLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIEluZGV4ZWREQjo6T2JqZWN0U3Rv
cmVPdmVyd3JpdGVNb2RlIG1vZGUgPSBzdGF0aWNfY2FzdDxJbmRleGVkREI6Ok9iamVjdFN0b3Jl
T3ZlcndyaXRlTW9kZT4ob3ZlcndyaXRlTW9kZSk7Ci0KLSAgICBTdG9yYWdlUHJvY2Vzczo6c2lu
Z2xldG9uKCkuaWRiU2VydmVyKG1fc2Vzc2lvbklEKS5wdXRPckFkZChyZXF1ZXN0LCBrZXksIHZh
bHVlLCBtb2RlKTsKLX0KLQotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmdldFJlY29y
ZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdCwgY29uc3QgSURCR2V0UmVjb3JkRGF0YSYg
Z2V0UmVjb3JkRGF0YSkKLXsKLSAgICBTdG9yYWdlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2Vy
dmVyKG1fc2Vzc2lvbklEKS5nZXRSZWNvcmQocmVxdWVzdCwgZ2V0UmVjb3JkRGF0YSk7Ci19Ci0K
LXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpnZXRBbGxSZWNvcmRzKGNvbnN0IElEQlJl
cXVlc3REYXRhJiByZXF1ZXN0LCBjb25zdCBJREJHZXRBbGxSZWNvcmRzRGF0YSYgZ2V0QWxsUmVj
b3Jkc0RhdGEpCi17Ci0gICAgU3RvcmFnZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlciht
X3Nlc3Npb25JRCkuZ2V0QWxsUmVjb3JkcyhyZXF1ZXN0LCBnZXRBbGxSZWNvcmRzRGF0YSk7Ci19
Ci0KLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpnZXRDb3VudChjb25zdCBJREJSZXF1
ZXN0RGF0YSYgcmVxdWVzdCwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiByYW5nZSkKLXsKLSAgICBT
dG9yYWdlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKG1fc2Vzc2lvbklEKS5nZXRDb3Vu
dChyZXF1ZXN0LCByYW5nZSk7Ci19Ci0KLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpk
ZWxldGVSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3QsIGNvbnN0IElEQktleVJh
bmdlRGF0YSYgcmFuZ2UpCi17Ci0gICAgU3RvcmFnZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNl
cnZlcihtX3Nlc3Npb25JRCkuZGVsZXRlUmVjb3JkKHJlcXVlc3QsIHJhbmdlKTsKLX0KLQotdm9p
ZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Om9wZW5DdXJzb3IoY29uc3QgSURCUmVxdWVzdERh
dGEmIHJlcXVlc3QsIGNvbnN0IElEQkN1cnNvckluZm8mIGluZm8pCi17Ci0gICAgU3RvcmFnZVBy
b2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcihtX3Nlc3Npb25JRCkub3BlbkN1cnNvcihyZXF1
ZXN0LCBpbmZvKTsKLX0KLQotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Oml0ZXJhdGVD
dXJzb3IoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3QsIGNvbnN0IElEQkl0ZXJhdGVDdXJz
b3JEYXRhJiBkYXRhKQotewotICAgIFN0b3JhZ2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2
ZXIobV9zZXNzaW9uSUQpLml0ZXJhdGVDdXJzb3IocmVxdWVzdCwgZGF0YSk7Ci19Ci0KLXZvaWQg
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojplc3RhYmxpc2hUcmFuc2FjdGlvbih1aW50NjRfdCBk
YXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mIGlu
Zm8pCi17Ci0gICAgU3RvcmFnZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcihtX3Nlc3Np
b25JRCkuZXN0YWJsaXNoVHJhbnNhY3Rpb24oZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwg
aW5mbyk7Ci19Ci0KLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkYXRhYmFzZUNvbm5l
Y3Rpb25QZW5kaW5nQ2xvc2UodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcikK
LXsKLSAgICBTdG9yYWdlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKG1fc2Vzc2lvbklE
KS5kYXRhYmFzZUNvbm5lY3Rpb25QZW5kaW5nQ2xvc2UoZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRp
Zmllcik7Ci19Ci0KLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkYXRhYmFzZUNvbm5l
Y3Rpb25DbG9zZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcikKLXsKLSAg
ICBTdG9yYWdlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKG1fc2Vzc2lvbklEKS5kYXRh
YmFzZUNvbm5lY3Rpb25DbG9zZWQoZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcik7Ci19Ci0K
LXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjphYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVk
KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKQotewotICAgIFN0b3JhZ2VQcm9jZXNz
OjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIobV9zZXNzaW9uSUQpLmFib3J0T3BlbkFuZFVwZ3JhZGVO
ZWVkZWQoZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgdHJhbnNhY3Rpb25JZGVudGlmaWVy
KTsKLX0KLQotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEZpcmVWZXJzaW9uQ2hh
bmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpCi17Ci0gICAgU3RvcmFn
ZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcihtX3Nlc3Npb25JRCkuZGlkRmlyZVZlcnNp
b25DaGFuZ2VFdmVudChkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCB0cmFuc2FjdGlvbklk
ZW50aWZpZXIpOwotfQotCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6b3BlbkRCUmVx
dWVzdENhbmNlbGxlZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEpCi17Ci0gICAg
U3RvcmFnZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcihtX3Nlc3Npb25JRCkub3BlbkRC
UmVxdWVzdENhbmNlbGxlZChyZXF1ZXN0RGF0YSk7Ci19Ci0KLXZvaWQgV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50Ojpjb25maXJtRGlkQ2xvc2VGcm9tU2VydmVyKHVpbnQ2NF90IGRhdGFiYXNlQ29u
bmVjdGlvbklkZW50aWZpZXIpCi17Ci0gICAgU3RvcmFnZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlk
YlNlcnZlcihtX3Nlc3Npb25JRCkuY29uZmlybURpZENsb3NlRnJvbVNlcnZlcihkYXRhYmFzZUNv
bm5lY3Rpb25JZGVudGlmaWVyKTsKLX0KLQotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6
OmdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNr
SUQpCi17Ci0gICAgU3RvcmFnZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcihtX3Nlc3Np
b25JRCkuZ2V0QWxsRGF0YWJhc2VOYW1lcyhzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdG9w
T3JpZ2luLCBvcGVuaW5nT3JpZ2luLCBjYWxsYmFja0lEKTsKLX0KLQotfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25U
b0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYzNDNl
MTNkMWUwNjVhYjgyODliZGUxMmYzMTE3NzMwOWY1MTJlZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9J
bmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSwx
NDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCi0KLSNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCi0jaW5jbHVkZSAiU3Rv
cmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0lEQkNvbm5l
Y3Rpb25Ub0NsaWVudC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLWNsYXNzIElEQkN1cnNvckluZm87Ci1jbGFzcyBJREJJbmRleEluZm87
Ci1jbGFzcyBJREJLZXlEYXRhOwotY2xhc3MgSURCT2JqZWN0U3RvcmVJbmZvOwotY2xhc3MgSURC
UmVxdWVzdERhdGE7Ci1jbGFzcyBJREJUcmFuc2FjdGlvbkluZm87Ci1jbGFzcyBJREJWYWx1ZTsK
LWNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKLXN0cnVjdCBJREJHZXRBbGxSZWNvcmRzRGF0
YTsKLXN0cnVjdCBJREJHZXRSZWNvcmREYXRhOwotc3RydWN0IElEQkl0ZXJhdGVDdXJzb3JEYXRh
Owotc3RydWN0IElEQktleVJhbmdlRGF0YTsKLXN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7Ci19
Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQg
ZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6SURCU2VydmVyOjpJREJDb25uZWN0aW9uVG9DbGllbnRE
ZWxlZ2F0ZSwgcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciwgcHVibGljIFJlZkNvdW50ZWQ8V2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50PiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJJREJD
b25uZWN0aW9uVG9DbGllbnQ+IGNyZWF0ZShTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbiYs
IHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXNzaW9uSUQp
OwotCi0gICAgdmlydHVhbCB+V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50KCk7Ci0KLSAgICBXZWJD
b3JlOjpJREJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVudCYgY29ubmVjdGlvblRvQ2xpZW50
KCk7Ci0gICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faWRl
bnRpZmllcjsgfQotICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgZmlu
YWwgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9Ci0KLSAgICAvLyBJREJDb25uZWN0aW9uVG9DbGll
bnREZWxlZ2F0ZQotICAgIHZvaWQgZGlkRGVsZXRlRGF0YWJhc2UoY29uc3QgV2ViQ29yZTo6SURC
UmVzdWx0RGF0YSYpIGZpbmFsOwotICAgIHZvaWQgZGlkT3BlbkRhdGFiYXNlKGNvbnN0IFdlYkNv
cmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKLSAgICB2b2lkIGRpZEFib3J0VHJhbnNhY3Rpb24o
Y29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJikgZmluYWw7Ci0gICAgdm9pZCBkaWRDb21taXRU
cmFuc2FjdGlvbihjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCRXJyb3ImKSBmaW5hbDsKLSAgICB2b2lk
IGRpZENyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5h
bDsKLSAgICB2b2lkIGRpZERlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3Vs
dERhdGEmKSBmaW5hbDsKLSAgICB2b2lkIGRpZFJlbmFtZU9iamVjdFN0b3JlKGNvbnN0IFdlYkNv
cmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKLSAgICB2b2lkIGRpZENsZWFyT2JqZWN0U3RvcmUo
Y29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOwotICAgIHZvaWQgZGlkQ3JlYXRl
SW5kZXgoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOwotICAgIHZvaWQgZGlk
RGVsZXRlSW5kZXgoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOwotICAgIHZv
aWQgZGlkUmVuYW1lSW5kZXgoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOwot
ICAgIHZvaWQgZGlkUHV0T3JBZGQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFs
OwotICAgIHZvaWQgZGlkR2V0UmVjb3JkKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBm
aW5hbDsKLSAgICB2b2lkIGRpZEdldEFsbFJlY29yZHMoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0
RGF0YSYpIGZpbmFsOwotICAgIHZvaWQgZGlkR2V0Q291bnQoY29uc3QgV2ViQ29yZTo6SURCUmVz
dWx0RGF0YSYpIGZpbmFsOwotICAgIHZvaWQgZGlkRGVsZXRlUmVjb3JkKGNvbnN0IFdlYkNvcmU6
OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKLSAgICB2b2lkIGRpZE9wZW5DdXJzb3IoY29uc3QgV2Vi
Q29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOwotICAgIHZvaWQgZGlkSXRlcmF0ZUN1cnNvcihj
b25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmluYWw7Ci0KLSAgICB2b2lkIGZpcmVWZXJz
aW9uQ2hhbmdlRXZlbnQoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZUNvbm5l
Y3Rpb24mLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVu
dGlmaWVyLCB1aW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKSBmaW5hbDsKLSAgICB2b2lkIGRpZFN0
YXJ0VHJhbnNhY3Rpb24oY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFu
c2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJikgZmluYWw7Ci0gICAg
dm9pZCBkaWRDbG9zZUZyb21TZXJ2ZXIoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRh
YmFzZUNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpJREJFcnJvciYpIGZpbmFsOwotICAgIHZv
aWQgbm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qgb2xkVmVyc2lvbiwgdWludDY0
X3QgbmV3VmVyc2lvbikgZmluYWw7Ci0KLSAgICB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXMo
dWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFiYXNlTmFtZXMp
IGZpbmFsOwotCi0gICAgdm9pZCByZWYoKSBvdmVycmlkZSB7IFJlZkNvdW50ZWQ8V2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50Pjo6cmVmKCk7IH0KLSAgICB2b2lkIGRlcmVmKCkgb3ZlcnJpZGUgeyBS
ZWZDb3VudGVkPFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudD46OmRlcmVmKCk7IH0KLQotICAgIC8v
IE1lc3NhZ2VzIHJlY2VpdmVkIGZyb20gV2ViUHJvY2VzcwotICAgIHZvaWQgZGVsZXRlRGF0YWJh
c2UoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmKTsKLSAgICB2b2lkIG9wZW5EYXRhYmFz
ZShjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYpOwotICAgIHZvaWQgYWJvcnRUcmFuc2Fj
dGlvbihjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImKTsKLSAgICB2b2lkIGNv
bW1pdFRyYW5zYWN0aW9uKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYpOwot
ICAgIHZvaWQgZGlkRmluaXNoSGFuZGxpbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24odWludDY0
X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCUmVzb3Vy
Y2VJZGVudGlmaWVyJik7Ci0gICAgdm9pZCBjcmVhdGVPYmplY3RTdG9yZShjb25zdCBXZWJDb3Jl
OjpJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IFdlYkNvcmU6OklEQk9iamVjdFN0b3JlSW5mbyYpOwot
ICAgIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEm
LCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSk7Ci0gICAgdm9pZCByZW5hbWVPYmplY3RT
dG9yZShjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYsIHVpbnQ2NF90IG9iamVjdFN0b3Jl
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKTsKLSAgICB2b2lkIGNsZWFyT2JqZWN0
U3RvcmUoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCB1aW50NjRfdCBvYmplY3RTdG9y
ZUlkZW50aWZpZXIpOwotICAgIHZvaWQgY3JlYXRlSW5kZXgoY29uc3QgV2ViQ29yZTo6SURCUmVx
dWVzdERhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJJbmRleEluZm8mKTsKLSAgICB2b2lkIGRlbGV0
ZUluZGV4KGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJiwgdWludDY0X3Qgb2JqZWN0U3Rv
cmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGluZGV4TmFtZSk7Ci0gICAgdm9pZCByZW5hbWVJ
bmRleChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYsIHVpbnQ2NF90IG9iamVjdFN0b3Jl
SWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05h
bWUpOwotICAgIHZvaWQgcHV0T3JBZGQoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCBj
b25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgY29uc3QgV2ViQ29yZTo6SURCVmFsdWUmLCB1bnNp
Z25lZCBvdmVyd3JpdGVNb2RlKTsKLSAgICB2b2lkIGdldFJlY29yZChjb25zdCBXZWJDb3JlOjpJ
REJSZXF1ZXN0RGF0YSYsIGNvbnN0IFdlYkNvcmU6OklEQkdldFJlY29yZERhdGEmKTsKLSAgICB2
b2lkIGdldEFsbFJlY29yZHMoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCBjb25zdCBX
ZWJDb3JlOjpJREJHZXRBbGxSZWNvcmRzRGF0YSYpOwotICAgIHZvaWQgZ2V0Q291bnQoY29uc3Qg
V2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJLZXlSYW5nZURhdGEm
KTsKLSAgICB2b2lkIGRlbGV0ZVJlY29yZChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYs
IGNvbnN0IFdlYkNvcmU6OklEQktleVJhbmdlRGF0YSYpOwotICAgIHZvaWQgb3BlbkN1cnNvcihj
b25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IFdlYkNvcmU6OklEQkN1cnNvcklu
Zm8mKTsKLSAgICB2b2lkIGl0ZXJhdGVDdXJzb3IoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERh
dGEmLCBjb25zdCBXZWJDb3JlOjpJREJJdGVyYXRlQ3Vyc29yRGF0YSYpOwotCi0gICAgdm9pZCBl
c3RhYmxpc2hUcmFuc2FjdGlvbih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkluZm8mKTsKLSAgICB2b2lkIGRhdGFiYXNl
Q29ubmVjdGlvblBlbmRpbmdDbG9zZSh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlm
aWVyKTsKLSAgICB2b2lkIGRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZCh1aW50NjRfdCBkYXRhYmFz
ZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsKLSAgICB2b2lkIGFib3J0T3BlbkFuZFVwZ3JhZGVOZWVk
ZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpOwotICAgIHZvaWQg
ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVu
dGlmaWVyKTsKLSAgICB2b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoY29uc3QgV2ViQ29yZTo6
SURCUmVxdWVzdERhdGEmKTsKLSAgICB2b2lkIGNvbmZpcm1EaWRDbG9zZUZyb21TZXJ2ZXIodWlu
dDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcik7Ci0KLSAgICB2b2lkIGdldEFsbERh
dGFiYXNlTmFtZXModWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwotCi0g
ICAgdm9pZCBkaXNjb25uZWN0ZWRGcm9tV2ViUHJvY2VzcygpOwotCi0gICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKLQotcHJpdmF0ZToK
LSAgICBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQoU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24mLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2Vzc2lv
bklEKTsKLQotICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBm
aW5hbDsKLQotICAgIHRlbXBsYXRlPGNsYXNzIE1lc3NhZ2VUeXBlPiB2b2lkIGhhbmRsZUdldFJl
c3VsdChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJik7Ci0KLSAgICBSZWY8U3RvcmFnZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKLQotICAgIHVpbnQ2NF90IG1faWRl
bnRpZmllcjsKLSAgICBXZWJDb3JlOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7Ci0gICAgUmVmUHRy
PFdlYkNvcmU6OklEQlNlcnZlcjo6SURCQ29ubmVjdGlvblRvQ2xpZW50PiBtX2Nvbm5lY3Rpb25U
b0NsaWVudDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9j
ZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGll
bnQubWVzc2FnZXMuaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRhYWIwMjY3ZDdi
MzU0MzI2YzU3NzQ5ZTA3MDA4MmVlYjgzNzcwZjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9JbmRleGVk
REIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Lm1lc3NhZ2VzLmluCisrKyAvZGV2L251bGwKQEAg
LTEsNTYgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMg
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECi0jIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotIyBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0j
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0KLW1lc3NhZ2VzIC0+IFdlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudCB7Ci0gICAgRGVsZXRlRGF0YWJhc2UoV2ViQ29yZTo6SURCUmVxdWVzdERhdGEg
cmVxdWVzdERhdGEpCi0gICAgT3BlbkRhdGFiYXNlKFdlYkNvcmU6OklEQlJlcXVlc3REYXRhIHJl
cXVlc3REYXRhKTsKLSAgICBBYm9ydFRyYW5zYWN0aW9uKFdlYkNvcmU6OklEQlJlc291cmNlSWRl
bnRpZmllciB0cmFuc2FjdGlvbklkZW50aWZpZXIpOwotICAgIENvbW1pdFRyYW5zYWN0aW9uKFdl
YkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciB0cmFuc2FjdGlvbklkZW50aWZpZXIpOwotICAg
IERpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKHVpbnQ2NF90IGRhdGFi
YXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciB0
cmFuc2FjdGlvbklkZW50aWZpZXIpOwotICAgIENyZWF0ZU9iamVjdFN0b3JlKFdlYkNvcmU6OklE
QlJlcXVlc3REYXRhIHJlcXVlc3REYXRhLCBXZWJDb3JlOjpJREJPYmplY3RTdG9yZUluZm8gaW5m
byk7Ci0gICAgRGVsZXRlT2JqZWN0U3RvcmUoV2ViQ29yZTo6SURCUmVxdWVzdERhdGEgcmVxdWVz
dERhdGEsIFN0cmluZyBvYmplY3RTdG9yZU5hbWUpOwotICAgIFJlbmFtZU9iamVjdFN0b3JlKFdl
YkNvcmU6OklEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRhLCB1aW50NjRfdCBvYmplY3RTdG9yZUlk
ZW50aWZpZXIsIFN0cmluZyBuZXdOYW1lKTsKLSAgICBDbGVhck9iamVjdFN0b3JlKFdlYkNvcmU6
OklEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRhLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZp
ZXIpOwotICAgIENyZWF0ZUluZGV4KFdlYkNvcmU6OklEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRh
LCBXZWJDb3JlOjpJREJJbmRleEluZm8gaW5mbyk7Ci0gICAgRGVsZXRlSW5kZXgoV2ViQ29yZTo6
SURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmll
ciwgU3RyaW5nIGluZGV4TmFtZSk7Ci0gICAgUmVuYW1lSW5kZXgoV2ViQ29yZTo6SURCUmVxdWVz
dERhdGEgcmVxdWVzdERhdGEsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0
X3QgaW5kZXhJZGVudGlmaWVyLCBTdHJpbmcgbmV3TmFtZSk7Ci0gICAgUHV0T3JBZGQoV2ViQ29y
ZTo6SURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEsIFdlYkNvcmU6OklEQktleURhdGEga2V5LCBX
ZWJDb3JlOjpJREJWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgb3ZlcndyaXRlTW9kZSk7Ci0gICAgR2V0
UmVjb3JkKFdlYkNvcmU6OklEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRhLCBzdHJ1Y3QgV2ViQ29y
ZTo6SURCR2V0UmVjb3JkRGF0YSBnZXRSZWNvcmREYXRhKTsKLSAgICBHZXRBbGxSZWNvcmRzKFdl
YkNvcmU6OklEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRhLCBzdHJ1Y3QgV2ViQ29yZTo6SURCR2V0
QWxsUmVjb3Jkc0RhdGEgZ2V0QWxsUmVjb3Jkc0RhdGEpOwotICAgIEdldENvdW50KFdlYkNvcmU6
OklEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRhLCBzdHJ1Y3QgV2ViQ29yZTo6SURCS2V5UmFuZ2VE
YXRhIHJhbmdlKTsKLSAgICBEZWxldGVSZWNvcmQoV2ViQ29yZTo6SURCUmVxdWVzdERhdGEgcmVx
dWVzdERhdGEsIHN0cnVjdCBXZWJDb3JlOjpJREJLZXlSYW5nZURhdGEgcmFuZ2UpOwotICAgIE9w
ZW5DdXJzb3IoV2ViQ29yZTo6SURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEsIFdlYkNvcmU6OklE
QkN1cnNvckluZm8gaW5mbyk7Ci0gICAgSXRlcmF0ZUN1cnNvcihXZWJDb3JlOjpJREJSZXF1ZXN0
RGF0YSByZXF1ZXN0RGF0YSwgc3RydWN0IFdlYkNvcmU6OklEQkl0ZXJhdGVDdXJzb3JEYXRhIGRh
dGEpOwotCi0gICAgRXN0YWJsaXNoVHJhbnNhY3Rpb24odWludDY0X3QgZGF0YWJhc2VDb25uZWN0
aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25JbmZvIGluZm8pOwotICAgIERh
dGFiYXNlQ29ubmVjdGlvblBlbmRpbmdDbG9zZSh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25J
ZGVudGlmaWVyKTsKLSAgICBEYXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQodWludDY0X3QgZGF0YWJh
c2VDb25uZWN0aW9uSWRlbnRpZmllcik7Ci0gICAgQWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1
aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpJREJSZXNvdXJj
ZUlkZW50aWZpZXIgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKLSAgICBEaWRGaXJlVmVyc2lvbkNo
YW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6
OklEQlJlc291cmNlSWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZmllcik7Ci0gICAgT3BlbkRCUmVx
dWVzdENhbmNlbGxlZChXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSk7Ci0gICAg
Q29uZmlybURpZENsb3NlRnJvbVNlcnZlcih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVu
dGlmaWVyKTsKLQotICAgIEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3Qgc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wT3Jp
Z2luLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9wZW5pbmdPcmlnaW4sIHVp
bnQ2NF90IGNhbGxiYWNrSUQpOwotfQotI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vz
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjRkOTRiY2QzNTFhY2QyMjYyOGQ2NjUwMTk5
OTRhM2I5ZTQzODU2Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDMyMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzLCAy
MDE0LCAyMDE1LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlN0b3JhZ2VQcm9jZXNzLmgiCi0KLSNp
bmNsdWRlICJTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgotI2luY2x1ZGUgIlN0
b3JhZ2VQcm9jZXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJTdG9yYWdlUHJvY2Vzc1Byb3h5TWVz
c2FnZXMuaCIKLSNpbmNsdWRlICJTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIgotI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgIldlYnNpdGVEYXRhLmgi
Ci0jaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9JREJL
ZXlEYXRhLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgotI2luY2x1ZGUg
PFdlYkNvcmUvU2Vzc2lvbklELmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9UZXh0RW5jb2RpbmcuaD4K
LSNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+Ci0jaW5jbHVkZSA8d3RmL01haW5UaHJl
YWQuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewot
Ci1TdG9yYWdlUHJvY2VzcyYgU3RvcmFnZVByb2Nlc3M6OnNpbmdsZXRvbigpCi17Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFN0b3JhZ2VQcm9jZXNzPiBwcm9jZXNzOwotICAgIHJldHVybiBw
cm9jZXNzOwotfQotCi1TdG9yYWdlUHJvY2Vzczo6U3RvcmFnZVByb2Nlc3MoKQotICAgIDogbV9x
dWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5TdG9yYWdlUHJvY2VzcyIp
KQotewotICAgIC8vIE1ha2Ugc3VyZSB0aGUgVVRGOEVuY29kaW5nIGVuY29kaW5nIGFuZCB0aGUg
dGV4dCBlbmNvZGluZyBtYXBzIGhhdmUgYmVlbiBidWlsdCBvbiB0aGUgbWFpbiB0aHJlYWQgYmVm
b3JlIGEgYmFja2dyb3VuZCB0aHJlYWQgbmVlZHMgaXQuCi0gICAgLy8gRklYTUU6IGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzUzNjUgLSBOZWVkIGEgbW9yZSBleHBs
aWNpdCB3YXkgb2YgZG9pbmcgdGhpcyBiZXNpZGVzIGFjY2Vzc2luZyB0aGUgVVRGOEVuY29kaW5n
LgotICAgIFVURjhFbmNvZGluZygpOwotfQotCi1TdG9yYWdlUHJvY2Vzczo6flN0b3JhZ2VQcm9j
ZXNzKCkKLXsKLX0KLQotdm9pZCBTdG9yYWdlUHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24o
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQotewotICAgIENoaWxkUHJvY2Vzczo6aW5pdGlh
bGl6ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7Ci19Ci0KLWJvb2wgU3RvcmFnZVByb2Nlc3M6OnNo
b3VsZFRlcm1pbmF0ZSgpCi17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQgU3RvcmFnZVBy
b2Nlc3M6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCi17Ci0gICAgc3RvcFJ1bkxvb3AoKTsK
LX0KLQotdm9pZCBTdG9yYWdlUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCi17Ci0gICAgaWYgKG1lc3Nh
Z2VSZWNlaXZlck1hcCgpLmRpc3BhdGNoTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09
IE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7Ci0gICAg
ICAgIGRpZFJlY2VpdmVTdG9yYWdlUHJvY2Vzc01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci19Ci0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKLUlEQlNlcnZlcjo6SURCU2VydmVyJiBTdG9yYWdlUHJvY2Vzczo6aWRiU2VydmVyKFNlc3Np
b25JRCBzZXNzaW9uSUQpCi17Ci0gICAgYXV0byBhZGRSZXN1bHQgPSBtX2lkYlNlcnZlcnMuYWRk
KHNlc3Npb25JRCwgbnVsbHB0cik7Ci0gICAgaWYgKCFhZGRSZXN1bHQuaXNOZXdFbnRyeSkgewot
ICAgICAgICBBU1NFUlQoYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSk7Ci0gICAgICAgIHJldHVy
biAqYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKLSAgICB9Ci0KLSAgICBhdXRvIHBhdGggPSBt
X2lkYkRhdGFiYXNlUGF0aHMuZ2V0KHNlc3Npb25JRCk7Ci0gICAgLy8gVGhlcmUgc2hvdWxkIGFs
cmVhZHkgYmUgYSByZWdpc3RlcmVkIHBhdGggZm9yIHRoaXMgU2Vzc2lvbklELgotICAgIC8vIElm
IHRoZXJlJ3Mgbm90LCB0aGVuIHdoZXJlIGRpZCB0aGlzIFNlc3Npb25JRCBjb21lIGZyb20/Ci0g
ICAgQVNTRVJUKCFwYXRoLmlzRW1wdHkoKSk7Ci0KLSAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZh
bHVlID0gSURCU2VydmVyOjpJREJTZXJ2ZXI6OmNyZWF0ZShwYXRoLCBTdG9yYWdlUHJvY2Vzczo6
c2luZ2xldG9uKCkpOwotICAgIHJldHVybiAqYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKLX0K
LSNlbmRpZgotCi12b2lkIFN0b3JhZ2VQcm9jZXNzOjppbml0aWFsaXplV2Vic2l0ZURhdGFTdG9y
ZShjb25zdCBTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKLXsK
LSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICAvLyAqKioqKioqKioKLSAgICAvLyBJ
TVBPUlRBTlQ6IERvIG5vdCBjaGFuZ2UgdGhlIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgZm9yIGluZGV4
ZWQgZGF0YWJhc2VzIG9uIGRpc2sgd2l0aG91dCBmaXJzdCBjb25zdWx0aW5nIGEgcmV2aWV3ZXIg
ZnJvbSBBcHBsZSAoPHJkYXI6Ly9wcm9ibGVtLzE3NDU0NzEyPikKLSAgICAvLyAqKioqKioqKioK
LQotICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9pZGJEYXRhYmFzZVBhdGhzLmFkZChwYXJhbWV0ZXJz
LnNlc3Npb25JRCwgU3RyaW5nKCkpOwotICAgIGlmICghYWRkUmVzdWx0LmlzTmV3RW50cnkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBwYXJhbWV0
ZXJzLmluZGV4ZWREYXRhYmFzZURpcmVjdG9yeTsKLSAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25z
dW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5pbmRleGVkRGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUpOwotCi0gICAgcG9zdERhdGFiYXNlVGFzayhjcmVhdGVDcm9zc1RocmVhZFRhc2so
KnRoaXMsICZTdG9yYWdlUHJvY2Vzczo6ZW5zdXJlUGF0aEV4aXN0cywgcGFyYW1ldGVycy5pbmRl
eGVkRGF0YWJhc2VEaXJlY3RvcnkpKTsKLSNlbmRpZgotfQotCi12b2lkIFN0b3JhZ2VQcm9jZXNz
OjplbnN1cmVQYXRoRXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0aCkKLXsKLSAgICBBU1NFUlQoIVJ1
bkxvb3A6OmlzTWFpbigpKTsKLQotICAgIGlmICghbWFrZUFsbERpcmVjdG9yaWVzKHBhdGgpKQot
ICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBtYWtlIGFsbCBkaXJlY3RvcmllcyBmb3IgcGF0
aCAnJXMnIiwgcGF0aC51dGY4KCkuZGF0YSgpKTsKLX0KLQotdm9pZCBTdG9yYWdlUHJvY2Vzczo6
cG9zdERhdGFiYXNlVGFzayhDcm9zc1RocmVhZFRhc2smJiB0YXNrKQotewotICAgIEFTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2RhdGFiYXNlVGFz
a011dGV4KTsKLQotICAgIG1fZGF0YWJhc2VUYXNrcy5hcHBlbmQoV1RGTW92ZSh0YXNrKSk7Ci0K
LSAgICBtX3F1ZXVlLT5kaXNwYXRjaChbdGhpc10gewotICAgICAgICBwZXJmb3JtTmV4dERhdGFi
YXNlVGFzaygpOwotICAgIH0pOwotfQotCi12b2lkIFN0b3JhZ2VQcm9jZXNzOjpwZXJmb3JtTmV4
dERhdGFiYXNlVGFzaygpCi17Ci0gICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAg
ICBDcm9zc1RocmVhZFRhc2sgdGFzazsKLSAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fZGF0YWJhc2VUYXNrTXV0ZXgpOwotICAgICAgICBBU1NFUlQoIW1fZGF0YWJhc2VUYXNrcy5p
c0VtcHR5KCkpOwotICAgICAgICB0YXNrID0gbV9kYXRhYmFzZVRhc2tzLnRha2VGaXJzdCgpOwot
ICAgIH0KLQotICAgIHRhc2sucGVyZm9ybVRhc2soKTsKLX0KLQotdm9pZCBTdG9yYWdlUHJvY2Vz
czo6Y3JlYXRlRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCkKLXsKLSNpZiBVU0UoVU5J
WF9ET01BSU5fU09DS0VUUykKLSAgICBJUEM6OkNvbm5lY3Rpb246OlNvY2tldFBhaXIgc29ja2V0
UGFpciA9IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlUGxhdGZvcm1Db25uZWN0aW9uKCk7Ci0gICAg
bV9kYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmFwcGVuZChTdG9yYWdlVG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKHNvY2tldFBhaXIuc2VydmVyKSk7Ci0gICAgcGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6U3RvcmFnZVByb2Nlc3NQcm94eTo6RGlk
Q3JlYXRlRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKElQQzo6QXR0YWNobWVudChzb2Nr
ZXRQYWlyLmNsaWVudCkpLCAwKTsKLSNlbGlmIE9TKERBUldJTikKLSAgICAvLyBDcmVhdGUgdGhl
IGxpc3RlbmluZyBwb3J0LgotICAgIG1hY2hfcG9ydF90IGxpc3RlbmluZ1BvcnQ7Ci0gICAgbWFj
aF9wb3J0X2FsbG9jYXRlKG1hY2hfdGFza19zZWxmKCksIE1BQ0hfUE9SVF9SSUdIVF9SRUNFSVZF
LCAmbGlzdGVuaW5nUG9ydCk7Ci0KLSAgICAvLyBDcmVhdGUgYSBsaXN0ZW5pbmcgY29ubmVjdGlv
bi4KLSAgICBtX2RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbnMuYXBwZW5kKFN0b3JhZ2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
KGxpc3RlbmluZ1BvcnQpKSk7Ci0KLSAgICBJUEM6OkF0dGFjaG1lbnQgY2xpZW50UG9ydChsaXN0
ZW5pbmdQb3J0LCBNQUNIX01TR19UWVBFX01BS0VfU0VORCk7Ci0gICAgcGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6U3RvcmFnZVByb2Nlc3NQcm94eTo6RGlkQ3JlYXRl
RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNsaWVudFBvcnQpLCAwKTsKLSNlbHNlCi0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSNlbmRpZgotfQotCi12b2lkIFN0b3JhZ2VQcm9jZXNzOjpm
ZXRjaFdlYnNpdGVEYXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0
YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCi17Ci0jaWYgRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlz
LCBjYWxsYmFja0lEXShjb25zdCBXZWJzaXRlRGF0YSYgd2Vic2l0ZURhdGEpIHsKLSAgICAgICAg
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6U3RvcmFnZVByb2Nlc3NQ
cm94eTo6RGlkRmV0Y2hXZWJzaXRlRGF0YShjYWxsYmFja0lELCB3ZWJzaXRlRGF0YSksIDApOwot
ICAgIH07Ci0KLSAgICBTdHJpbmcgcGF0aCA9IG1faWRiRGF0YWJhc2VQYXRocy5nZXQoc2Vzc2lv
bklEKTsKLSAgICBpZiAocGF0aC5pc0VtcHR5KCkgfHwgIXdlYnNpdGVEYXRhVHlwZXMuY29udGFp
bnMoV2Vic2l0ZURhdGFUeXBlOjpJbmRleGVkREJEYXRhYmFzZXMpKSB7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHsgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAod2Vi
c2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkluZGV4ZWREQkRhdGFiYXNl
cykpIHsKLSAgICAgICAgLy8gRklYTUU6IFBpY2sgdGhlIHJpZ2h0IGRhdGFiYXNlIHN0b3JlIGJh
c2VkIG9uIHRoZSBzZXNzaW9uIElELgotICAgICAgICBwb3N0RGF0YWJhc2VUYXNrKENyb3NzVGhy
ZWFkVGFzayhbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSwgcGF0aCA9IFdURk1vdmUocGF0aCldKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBSdW5M
b29wOjptYWluKCkuZGlzcGF0Y2goW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlciksIHNlY3VyaXR5T3JpZ2lucyA9IGluZGV4ZWREYXRhYmFzZU9yaWdpbnMocGF0
aCldIHsKLSAgICAgICAgICAgICAgICBXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YTsKLSAgICAgICAg
ICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHNlY3VyaXR5T3JpZ2luIDogc2VjdXJpdHlPcmlnaW5z
KQotICAgICAgICAgICAgICAgICAgICB3ZWJzaXRlRGF0YS5lbnRyaWVzLmFwcGVuZCh7IHNlY3Vy
aXR5T3JpZ2luLCBXZWJzaXRlRGF0YVR5cGU6OkluZGV4ZWREQkRhdGFiYXNlcywgMCB9KTsKLQot
ICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdlYnNpdGVEYXRhKTsKLSAgICAgICAg
ICAgIH0pOwotICAgICAgICB9KSk7Ci0gICAgfQotI2VuZGlmCi19Ci0KLXZvaWQgU3RvcmFnZVBy
b2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9w
dGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpz
eXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJ
RCkKLXsKLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICBhdXRvIGNvbXBsZXRpb25I
YW5kbGVyID0gW3RoaXMsIGNhbGxiYWNrSURdKCkgewotICAgICAgICBwYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzc1Byb3h5OjpEaWREZWxldGVX
ZWJzaXRlRGF0YShjYWxsYmFja0lEKSwgMCk7Ci0gICAgfTsKLQotICAgIGlmICghd2Vic2l0ZURh
dGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkluZGV4ZWREQkRhdGFiYXNlcykpIHsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIGlkYlNlcnZlcihzZXNzaW9uSUQpLmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRT
aW5jZShtb2RpZmllZFNpbmNlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0jZW5kaWYK
LX0KLQotdm9pZCBTdG9yYWdlUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdl
YkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdl
YnNpdGVEYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiBzZWN1cml0
eU9yaWdpbkRhdGFzLCB1aW50NjRfdCBjYWxsYmFja0lEKQotewotI2lmIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQotICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgY2FsbGJhY2tJ
RF0oKSB7Ci0gICAgICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
OlN0b3JhZ2VQcm9jZXNzUHJveHk6OkRpZERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhjYWxs
YmFja0lEKSwgMCk7Ci0gICAgfTsKLQotICAgIGlmICghd2Vic2l0ZURhdGFUeXBlcy5jb250YWlu
cyhXZWJzaXRlRGF0YVR5cGU6OkluZGV4ZWREQkRhdGFiYXNlcykpIHsKLSAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlkYlNlcnZlcihz
ZXNzaW9uSUQpLmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyhzZWN1cml0eU9yaWdp
bkRhdGFzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0jZW5kaWYKLX0KLQotI2lmIEVO
QUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCi12b2lkIFN0b3JhZ2VQcm9jZXNzOjpncmFudFNhbmRi
b3hFeHRlbnNpb25zRm9yQmxvYnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzLCBjb25zdCBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYgaGFuZGxlcykKLXsKLSAgICBBU1NFUlQocGF0
aHMuc2l6ZSgpID09IGhhbmRsZXMuc2l6ZSgpKTsKLQotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgcGF0aHMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgYXV0byByZXN1bHQgPSBtX2Jsb2JUZW1w
b3JhcnlGaWxlU2FuZGJveEV4dGVuc2lvbnMuYWRkKHBhdGhzW2ldLCBTYW5kYm94RXh0ZW5zaW9u
OjpjcmVhdGUoaGFuZGxlc1tpXSkpOwotICAgICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVz
dWx0LmlzTmV3RW50cnkpOwotICAgIH0KLX0KLSNlbmRpZgotCi0jaWYgRU5BQkxFKElOREVYRURf
REFUQUJBU0UpCi12b2lkIFN0b3JhZ2VQcm9jZXNzOjpwcmVwYXJlRm9yQWNjZXNzVG9UZW1wb3Jh
cnlGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCkKLXsKLSAgICBpZiAoYXV0byBleHRlbnNpb24gPSBt
X2Jsb2JUZW1wb3JhcnlGaWxlU2FuZGJveEV4dGVuc2lvbnMuZ2V0KHBhdGgpKQotICAgICAgICBl
eHRlbnNpb24tPmNvbnN1bWUoKTsKLX0KLQotdm9pZCBTdG9yYWdlUHJvY2Vzczo6YWNjZXNzVG9U
ZW1wb3JhcnlGaWxlQ29tcGxldGUoY29uc3QgU3RyaW5nJiBwYXRoKQotewotICAgIC8vIFdlJ3Zl
IGVpdGhlciBoYXJkIGxpbmtlZCB0aGUgdGVtcG9yYXJ5IGJsb2IgZmlsZSB0byB0aGUgZGF0YWJh
c2UgZGlyZWN0b3J5LCBjb3BpZWQgaXQgdGhlcmUsCi0gICAgLy8gb3IgdGhlIHRyYW5zYWN0aW9u
IGlzIGJlaW5nIGFib3J0ZWQuCi0gICAgLy8gSW4gYW55IG9mIHRob3NlIGNhc2VzLCB3ZSBjYW4g
ZGVsZXRlIHRoZSB0ZW1wb3JhcnkgYmxvYiBmaWxlIG5vdy4KLSAgICBkZWxldGVGaWxlKHBhdGgp
OwotCi0gICAgaWYgKGF1dG8gZXh0ZW5zaW9uID0gbV9ibG9iVGVtcG9yYXJ5RmlsZVNhbmRib3hF
eHRlbnNpb25zLnRha2UocGF0aCkpCi0gICAgICAgIGV4dGVuc2lvbi0+cmV2b2tlKCk7Ci19Ci0K
LVZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IFN0b3JhZ2VQcm9jZXNzOjppbmRl
eGVkRGF0YWJhc2VPcmlnaW5zKGNvbnN0IFN0cmluZyYgcGF0aCkKLXsKLSAgICBpZiAocGF0aC5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0KLSAgICBWZWN0b3I8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhPiBzZWN1cml0eU9yaWdpbnM7Ci0gICAgZm9yIChhdXRvJiBvcmlnaW5Q
YXRoIDogbGlzdERpcmVjdG9yeShwYXRoLCAiKiIpKSB7Ci0gICAgICAgIFN0cmluZyBkYXRhYmFz
ZUlkZW50aWZpZXIgPSBwYXRoR2V0RmlsZU5hbWUob3JpZ2luUGF0aCk7Ci0KLSAgICAgICAgaWYg
KGF1dG8gc2VjdXJpdHlPcmlnaW4gPSBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21EYXRhYmFzZUlk
ZW50aWZpZXIoZGF0YWJhc2VJZGVudGlmaWVyKSkKLSAgICAgICAgICAgIHNlY3VyaXR5T3JpZ2lu
cy5hcHBlbmQoV1RGTW92ZSgqc2VjdXJpdHlPcmlnaW4pKTsKLSAgICB9Ci0KLSAgICByZXR1cm4g
c2VjdXJpdHlPcmlnaW5zOwotfQotCi0jZW5kaWYKLQotI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVO
U0lPTlMpCi12b2lkIFN0b3JhZ2VQcm9jZXNzOjpnZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JG
aWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBXVEY6OkZ1bmN0aW9uPHZvaWQg
KFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQot
ewotICAgIHN0YXRpYyB1aW50NjRfdCBsYXN0UmVxdWVzdElEOwotCi0gICAgdWludDY0X3QgcmVx
dWVzdElEID0gKytsYXN0UmVxdWVzdElEOwotICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvckJsb2Jz
Q29tcGxldGlvbkhhbmRsZXJzLnNldChyZXF1ZXN0SUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKLSAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpTdG9y
YWdlUHJvY2Vzc1Byb3h5OjpHZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JGaWxlcyhyZXF1ZXN0
SUQsIGZpbGVuYW1lcyksIDApOwotfQotCi12b2lkIFN0b3JhZ2VQcm9jZXNzOjpkaWRHZXRTYW5k
Ym94RXh0ZW5zaW9uc0ZvckJsb2JGaWxlcyh1aW50NjRfdCByZXF1ZXN0SUQsIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZUFycmF5JiYgaGFuZGxlcykKLXsKLSAgICBpZiAoYXV0byBoYW5kbGVyID0g
bV9zYW5kYm94RXh0ZW5zaW9uRm9yQmxvYnNDb21wbGV0aW9uSGFuZGxlcnMudGFrZShyZXF1ZXN0
SUQpKQotICAgICAgICBoYW5kbGVyKFdURk1vdmUoaGFuZGxlcykpOwotfQotI2VuZGlmCi0KLSNp
ZiAhUExBVEZPUk0oQ09DT0EpCi12b2lkIFN0b3JhZ2VQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vz
cyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQotewotfQotCi12
b2lkIFN0b3JhZ2VQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9j
ZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKLXsKLX0KLQotdm9pZCBTdG9yYWdlUHJvY2Vz
czo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJh
bWV0ZXJzJiwgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCi17Ci19Ci0jZW5kaWYK
LQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3Jh
Z2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNz
L1N0b3JhZ2VQcm9jZXNzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2N2M0M2Vl
ODUyN2FiZWE4MGY0NzhmZmRhMWRjOGIzMzBhYjA3MzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9y
YWdlUHJvY2Vzcy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTI2ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkNoaWxkUHJvY2Vzcy5oIgotI2luY2x1ZGUgIlNh
bmRib3hFeHRlbnNpb24uaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0lEQkJhY2tpbmdTdG9yZS5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvSURCU2VydmVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9u
SUQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1VuaXF1ZUlEQkRhdGFiYXNlLmg+Ci0jaW5jbHVkZSA8
d3RmL0Nyb3NzVGhyZWFkVGFzay5oPgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci1zdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwotfQotCi1uYW1lc3Bh
Y2UgV2ViS2l0IHsKLQotY2xhc3MgU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb247Ci1lbnVt
IGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKLXN0cnVjdCBTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczsKLQotY2xhc3MgU3RvcmFnZVByb2Nlc3MgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzCi0j
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgLCBwdWJsaWMgV2ViQ29yZTo6SURCU2Vy
dmVyOjpJREJCYWNraW5nU3RvcmVUZW1wb3JhcnlGaWxlSGFuZGxlcgotI2VuZGlmCi17Ci0gICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoU3RvcmFnZVByb2Nlc3MpOwotICAgIGZyaWVuZCBjbGFzcyBO
ZXZlckRlc3Ryb3llZDxTdG9yYWdlUHJvY2Vzcz47Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFN0b3Jh
Z2VQcm9jZXNzJiBzaW5nbGV0b24oKTsKLSAgICB+U3RvcmFnZVByb2Nlc3MoKTsKLQotI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVy
JiBpZGJTZXJ2ZXIoV2ViQ29yZTo6U2Vzc2lvbklEKTsKLSNlbmRpZgotCi0gICAgV29ya1F1ZXVl
JiBxdWV1ZSgpIHsgcmV0dXJuIG1fcXVldWUuZ2V0KCk7IH0KLQotICAgIHZvaWQgcG9zdERhdGFi
YXNlVGFzayhDcm9zc1RocmVhZFRhc2smJik7Ci0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKLSAgICAvLyBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkJhY2tpbmdTdG9yZUZpbGVIYW5kbGVy
Ci0gICAgdm9pZCBwcmVwYXJlRm9yQWNjZXNzVG9UZW1wb3JhcnlGaWxlKGNvbnN0IFN0cmluZyYg
cGF0aCkgZmluYWw7Ci0gICAgdm9pZCBhY2Nlc3NUb1RlbXBvcmFyeUZpbGVDb21wbGV0ZShjb25z
dCBTdHJpbmcmIHBhdGgpIGZpbmFsOwotI2VuZGlmCi0KLSNpZiBFTkFCTEUoU0FOREJPWF9FWFRF
TlNJT05TKQotICAgIHZvaWQgZ2V0U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9iRmlsZXMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgV1RGOjpGdW5jdGlvbjx2b2lkIChTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGVBcnJheSYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7Ci0jZW5kaWYKLQot
cHJpdmF0ZToKLSAgICBTdG9yYWdlUHJvY2VzcygpOwotCi0gICAgLy8gQ2hpbGRQcm9jZXNzCi0g
ICAgdm9pZCBpbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlv
blBhcmFtZXRlcnMmKSBvdmVycmlkZTsKLSAgICB2b2lkIGluaXRpYWxpemVQcm9jZXNzTmFtZShj
b25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGluaXRpYWxpemVTYW5kYm94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9u
UGFyYW1ldGVycyYsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKSBvdmVycmlkZTsK
LSAgICB2b2lkIGluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiopIG92ZXJyaWRl
OwotICAgIGJvb2wgc2hvdWxkVGVybWluYXRlKCkgb3ZlcnJpZGU7Ci0KLSAgICAvLyBJUEM6OkNv
bm5lY3Rpb246OkNsaWVudAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRDbG9zZShJUEM6OkNv
bm5lY3Rpb24mKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTdG9yYWdlUHJvY2Vzc01l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7Ci0KLSAgICAvLyBNZXNzYWdl
IEhhbmRsZXJzCi0gICAgdm9pZCBpbml0aWFsaXplV2Vic2l0ZURhdGFTdG9yZShjb25zdCBTdG9y
YWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwotICAgIHZvaWQgY3JlYXRlRGF0YWJhc2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uKCk7Ci0KLSAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoV2Vi
Q29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5
cGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKLSAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFdl
YkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFU
eXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNl
LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKLSAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yT3Jp
Z2lucyhXZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNp
dGVEYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBv
cmlnaW5zLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKLSNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJ
T05TKQotICAgIHZvaWQgZ3JhbnRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JzKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBwYXRocywgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmKTsK
LSAgICB2b2lkIGRpZEdldFNhbmRib3hFeHRlbnNpb25zRm9yQmxvYkZpbGVzKHVpbnQ2NF90IHJl
cXVlc3RJRCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmJik7Ci0jZW5kaWYKLQotI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGE+IGluZGV4ZWREYXRhYmFzZU9yaWdpbnMoY29uc3QgU3RyaW5nJiBwYXRoKTsKLSNl
bmRpZgotCi0gICAgLy8gRm9yIGV4ZWN1dGlvbiBvbiB3b3JrIHF1ZXVlIHRocmVhZCBvbmx5Ci0g
ICAgdm9pZCBwZXJmb3JtTmV4dERhdGFiYXNlVGFzaygpOwotICAgIHZvaWQgZW5zdXJlUGF0aEV4
aXN0cyhjb25zdCBTdHJpbmcmKTsKLQotICAgIFZlY3RvcjxSZWZQdHI8U3RvcmFnZVRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24+PiBtX2RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbnM7Ci0KLSAg
ICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwotCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpTZXNzaW9uSUQsIFN0cmluZz4gbV9pZGJEYXRhYmFzZVBh
dGhzOwotICAgIEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBSZWZQdHI8V2ViQ29yZTo6SURC
U2VydmVyOjpJREJTZXJ2ZXI+PiBtX2lkYlNlcnZlcnM7Ci0jZW5kaWYKLSAgICBIYXNoTWFwPFN0
cmluZywgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+PiBtX2Jsb2JUZW1wb3JhcnlGaWxlU2FuZGJv
eEV4dGVuc2lvbnM7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgV1RGOjpGdW5jdGlvbjx2b2lkIChT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYmKT4+IG1fc2FuZGJveEV4dGVuc2lvbkZvckJs
b2JzQ29tcGxldGlvbkhhbmRsZXJzOwotCi0gICAgRGVxdWU8Q3Jvc3NUaHJlYWRUYXNrPiBtX2Rh
dGFiYXNlVGFza3M7Ci0gICAgTG9jayBtX2RhdGFiYXNlVGFza011dGV4OwotfTsKLQotfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNz
L1N0b3JhZ2VQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9TdG9yYWdlUHJvY2Vzcy5tZXNzYWdlcy5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDU1ODczNzU0YmU2NjU0NjAzYzEyYmRiNzU1OTI1ZjM2MTU5NzAxNy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQ
cm9jZXNzL1N0b3JhZ2VQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyAvZGV2L251bGwKQEAgLTEsMzcg
KzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
Ci0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAot
IyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotIyBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1tZXNzYWdl
cyAtPiBTdG9yYWdlUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7Ci0gICAgIyBJbml0aWFsaXplcyBh
IFdlYnNpdGVEYXRhU3RvcmUvU2Vzc2lvbiBpbiB0aGUgU3RvcmFnZVByb2Nlc3Mgd2l0aCB0aGUg
Y29ycmVjdCBwYXJhbWV0ZXJzCi0gICAgSW5pdGlhbGl6ZVdlYnNpdGVEYXRhU3RvcmUoc3RydWN0
IFdlYktpdDo6U3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgcHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycykKLQotICAgICMgQ3JlYXRlcyBhIGNvbm5lY3Rpb24gZm9yIGNvbW11bmljYXRp
b24gd2l0aCBhIFdlYlByb2Nlc3MKLSAgICBDcmVhdGVEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24oKQotCi0gICAgRmV0Y2hXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMs
IHVpbnQ2NF90IGNhbGxiYWNrSUQpCi0gICAgRGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJz
aXRlRGF0YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlm
aWVkU2luY2UsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCi0gICAgRGVsZXRlV2Vic2l0ZURhdGFGb3JP
cmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6Oldl
YnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YT4gb3JpZ2lucywgdWludDY0X3QgY2FsbGJhY2tJRCkKLSNpZiBFTkFCTEUoU0FO
REJPWF9FWFRFTlNJT05TKQotICAgIEdyYW50U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9icyhWZWN0
b3I8U3RyaW5nPiBwYXRocywgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBl
eHRlbnNpb25zKQotICAgIERpZEdldFNhbmRib3hFeHRlbnNpb25zRm9yQmxvYkZpbGVzKHVpbnQ2
NF90IHJlcXVlc3RJRCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBleHRl
bnNpb25zKQotI2VuZGlmCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9j
ZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0YWNjMjY0MDQ0ZmQ1M2Y3ZTQxOGZkMWE3MWMzZTRmNzYwZTdj
Y2UxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsMTI3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKLQot
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVj
dGlvbk1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgiCi0j
aW5jbHVkZSAiV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50TWVzc2FnZXMuaCIKLSNpbmNsdWRlIDx3
dGYvUnVuTG9vcC5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotUmVmPFN0b3JhZ2VUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uPiBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKElQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKLXsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0
aW9uSWRlbnRpZmllcikpOwotfQotCi1TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6U3Rv
cmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNv
bm5lY3Rpb25JZGVudGlmaWVyKQotICAgIDogbV9jb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6
Y3JlYXRlU2VydmVyQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpKQotewot
ICAgIG1fY29ubmVjdGlvbi0+c2V0T25seVNlbmRNZXNzYWdlc0FzRGlzcGF0Y2hXaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseVdoZW5Qcm9jZXNzaW5nU3VjaEFNZXNzYWdlKHRydWUpOwotICAgIG1fY29u
bmVjdGlvbi0+b3BlbigpOwotfQotCi1TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6flN0
b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCkKLXsKLQotfQotCi12b2lkIFN0b3JhZ2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBpZiAoZGVjb2Rlci5tZXNz
YWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0
aW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKLSAgICAgICAgZGlkUmVjZWl2ZVN0b3JhZ2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgIGlm
IChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6V2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKLSAgICAgICAgYXV0byBpdGVy
YXRvciA9IG1fd2ViSURCQ29ubmVjdGlvbnMuZmluZChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7
Ci0gICAgICAgIGlmIChpdGVyYXRvciAhPSBtX3dlYklEQkNvbm5lY3Rpb25zLmVuZCgpKQotICAg
ICAgICAgICAgaXRlcmF0b3ItPnZhbHVlLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBk
ZWNvZGVyKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRpZgotCi0gICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci19Ci0KLXZvaWQgU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRp
ZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVj
b2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2Rl
cikKLXsKLSAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6
OlN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsK
LSAgICAgICAgZGlkUmVjZWl2ZVN5bmNTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3Nh
Z2UoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCi12b2lkIFN0b3JhZ2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQotewotI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgIGF1dG8gY29ubmVjdGlvbnMgPSBtX3dlYklEQkNv
bm5lY3Rpb25zOwotICAgIGZvciAoYXV0byYgY29ubmVjdGlvbiA6IGNvbm5lY3Rpb25zLnZhbHVl
cygpKQotICAgICAgICBjb25uZWN0aW9uLT5kaXNjb25uZWN0ZWRGcm9tV2ViUHJvY2VzcygpOwot
Ci0gICAgbV93ZWJJREJDb25uZWN0aW9ucy5jbGVhcigpOwotI2VuZGlmCi19Ci0KLXZvaWQgU3Rv
cmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJ
UEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkKLXsKLQotfQotCi0jaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCi0KLXN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUNvbm5lY3Rpb25Ub1Nl
cnZlcklkZW50aWZpZXIoKQotewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAg
c3RhdGljIHVpbnQ2NF90IGlkZW50aWZpZXIgPSAwOwotICAgIHJldHVybiArK2lkZW50aWZpZXI7
Ci19Ci0KLXZvaWQgU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmVzdGFibGlzaElEQkNv
bm5lY3Rpb25Ub1NlcnZlcihXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCYg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCi17Ci0gICAgc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIgPSBnZW5lcmF0ZUNvbm5lY3Rpb25Ub1NlcnZlcklkZW50aWZpZXIoKTsKLSAgICBMT0co
SW5kZXhlZERCLCAiU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmVzdGFibGlzaElEQkNv
bm5lY3Rpb25Ub1NlcnZlciAtICUiIFBSSXU2NCwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIp
OwotICAgIEFTU0VSVCghbV93ZWJJREJDb25uZWN0aW9ucy5jb250YWlucyhzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllcikpOwotCi0gICAgbV93ZWJJREJDb25uZWN0aW9ucy5zZXQoc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIsIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y3JlYXRlKCp0aGlz
LCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgc2Vzc2lvbklEKSk7Ci19Ci0KLXZvaWQgU3Rv
cmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OnJlbW92ZUlEQkNvbm5lY3Rpb25Ub1NlcnZlcih1
aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKLXsKLSAgICBBU1NFUlQobV93ZWJJ
REJDb25uZWN0aW9ucy5jb250YWlucyhzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpOwotCi0g
ICAgYXV0byBjb25uZWN0aW9uID0gbV93ZWJJREJDb25uZWN0aW9ucy50YWtlKHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyKTsKLSAgICBjb25uZWN0aW9uLT5kaXNjb25uZWN0ZWRGcm9tV2ViUHJv
Y2VzcygpOwotfQotI2VuZGlmCi0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3ND
b25uZWN0aW9uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyZmZlOTVkODIyODFj
YzUwNTM2YmZiNDQ2NDNhZWYxNjViZGFmMjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlVG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgotI2luY2x1
ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKLQotI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+Ci0j
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudDsKLQotY2xhc3MgU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbj4s
IHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCwgcHVibGljIElQQzo6TWVzc2FnZVNlbmRl
ciB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7Ci0gICAgflN0b3JhZ2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uKCk7Ci0KLSAgICBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24o
KSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KLQotcHJpdmF0ZToKLSAgICBTdG9yYWdl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwotCi0g
ICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6
dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRDbG9zZShJ
UEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2
ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBkaWRSZWNlaXZlU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNTdG9y
YWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpE
ZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKTsKLQotICAgIC8vIElQQzo6
TWVzc2FnZVNlbmRlcgotICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rp
b24oKSBvdmVycmlkZSB7IHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7IH0KLSAgICB1aW50NjRf
dCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KLQot
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgIC8vIE1lc3NhZ2VzIGhhbmRsZXJzIChN
b2Rlcm4gSURCKQotICAgIHZvaWQgZXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKFdlYkNv
cmU6OlNlc3Npb25JRCwgdWludDY0X3QmIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKLSAg
ICB2b2lkIHJlbW92ZUlEQkNvbm5lY3Rpb25Ub1NlcnZlcih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllcik7Ci0KLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50Pj4gbV93ZWJJREJDb25uZWN0aW9uczsKLSNlbmRpZiAvLyBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKLQotICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlv
bjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU4NzYxMjAy
MDVlMGQ4NTZmMjY0ODY4ZmZhY2ZlYWQ3MDQxMzNjNjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9y
YWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgL2Rldi9udWxsCkBAIC0x
LDI5ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAotIyBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAotIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0jIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwKLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSMgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwKLSMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotbWVz
c2FnZXMgLT4gU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24gTGVnYWN5UmVjZWl2ZXIgewot
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgICMgQ3JlYXRlcyBhIGNvbm5lY3Rpb24g
Zm9yIGNvbW11bmljYXRpb24gd2l0aCBhIFdlYlByb2Nlc3MKLSAgICBFc3RhYmxpc2hJREJDb25u
ZWN0aW9uVG9TZXJ2ZXIoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKHVpbnQ2NF90
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQotICAgIFJlbW92ZUlEQkNvbm5lY3Rpb25Ub1Nl
cnZlcih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKLSNlbmRpZgotfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9ndGsvU3RvcmFnZVByb2Nlc3NN
YWluR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvZ3RrL1N0b3JhZ2VQcm9j
ZXNzTWFpbkd0ay5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJjMTg0Nzg3ZTli
OWRiMWZkMDkwM2ExN2IyMTJmOGNmYTAzNjVmYjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9ndGsvU3Rv
cmFnZVByb2Nlc3NNYWluR3RrLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIlN0b3JhZ2VQcm9jZXNzTWFpblVuaXguaCIKLQotI2luY2x1
ZGUgIkNoaWxkUHJvY2Vzc01haW4uaCIKLSNpbmNsdWRlICJTdG9yYWdlUHJvY2Vzcy5oIgotCi1u
YW1lc3BhY2UgV2ViS2l0IHsKLQotaW50IFN0b3JhZ2VQcm9jZXNzTWFpblVuaXgoaW50IGFyZ2Ms
IGNoYXIqKiBhcmd2KQotewotICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWluPFN0b3JhZ2VQcm9j
ZXNzLCBDaGlsZFByb2Nlc3NNYWluQmFzZT4oYXJnYywgYXJndik7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9pb3Mv
U3RvcmFnZVByb2Nlc3NJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL2lvcy9T
dG9yYWdlUHJvY2Vzc0lPUy5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjNkNzI3
MDBiMjM0NzEzM2U2OThkOTY0NDk5YTQxMTYyZTNkNWZjMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL2lv
cy9TdG9yYWdlUHJvY2Vzc0lPUy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLQotI2lmIFBMQVRGT1JNKElPUykKLQotI2lt
cG9ydCAiU3RvcmFnZVByb2Nlc3MuaCIKLQotI2ltcG9ydCAiU2FuZGJveEluaXRpYWxpemF0aW9u
UGFyYW1ldGVycy5oIgotI2ltcG9ydCA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+Ci0jaW1wb3J0IDxX
ZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KLSNpbXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50
ZWQuaD4KLSNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgotCi11c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKLQotI2RlZmluZSBFTkFCTEVfTUFOVUFMX0RBVEFCQVNFX1NBTkRCT1hJTkcg
MAotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotdm9pZCBTdG9yYWdlUHJvY2Vzczo6aW5pdGlhbGl6
ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKLXsK
LX0KLQotdm9pZCBTdG9yYWdlUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENo
aWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKLXsKLX0KLQot
dm9pZCBTdG9yYWdlUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNz
SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBTYW5kYm94SW5pdGlhbGl6YXRp
b25QYXJhbWV0ZXJzJiBzYW5kYm94UGFyYW1ldGVycykKLXsKLSNpZiBFTkFCTEVfTUFOVUFMX0RB
VEFCQVNFX1NBTkRCT1hJTkcKLSAgICAvLyBOZWVkIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0LCBi
ZWNhdXNlIHNlcnZpY2UgaGFzIGEgZGlmZmVyZW50IGJ1bmRsZSBJRC4KLSAgICBOU0J1bmRsZSAq
d2Via2l0MkJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpOU0NsYXNzRnJvbVN0cmlu
ZyhAIldLV2ViVmlldyIpXTsKLSAgICBzYW5kYm94UGFyYW1ldGVycy5zZXRPdmVycmlkZVNhbmRi
b3hQcm9maWxlUGF0aChbd2Via2l0MkJ1bmRsZSBwYXRoRm9yUmVzb3VyY2U6QCJjb20uYXBwbGUu
V2ViS2l0LlN0b3JhZ2UiIG9mVHlwZTpAInNiIl0pOwotICAgIENoaWxkUHJvY2Vzczo6aW5pdGlh
bGl6ZVNhbmRib3gocGFyYW1ldGVycywgc2FuZGJveFBhcmFtZXRlcnMpOwotI2VuZGlmCi19Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9tYWMvU3RvcmFnZVByb2Nlc3NNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL21hYy9TdG9yYWdlUHJvY2Vzc01hYy5t
bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDZhZjE2OWNmNTdlNDU4YzM5ZDE5NDUz
NjAwMDk2ZjU3YjBhNzUwMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL21hYy9TdG9yYWdlUHJvY2Vzc01h
Yy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0
ICJjb25maWcuaCIKLQotI2lmIFBMQVRGT1JNKE1BQykKLQotI2ltcG9ydCAiU3RvcmFnZVByb2Nl
c3MuaCIKLQotI2ltcG9ydCAiU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIgotI2lt
cG9ydCA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0
cmluZ3MuaD4KLSNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgotCi11c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXZvaWQgU3RvcmFnZVByb2Nl
c3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFy
YW1ldGVycyYpCi17Ci0gICAgLy8gSGF2aW5nIGEgd2luZG93IHNlcnZlciBjb25uZWN0aW9uIGlu
IHRoaXMgcHJvY2VzcyB3b3VsZCByZXN1bHQgaW4gc3BpbiBsb2dzICg8cmRhcjovL3Byb2JsZW0v
MTMyMzkxMTk+KS4KLSAgICBzZXRBcHBsaWNhdGlvbklzRGFlbW9uKCk7Ci19Ci0KLXZvaWQgU3Rv
cmFnZVByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0
aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCi17Ci0gICAgTlNTdHJpbmcgKmFwcGxp
Y2F0aW9uTmFtZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OldFQl9VSV9TVFJJTkcoIiVA
IERhdGFiYXNlIFN0b3JhZ2UiLCAidmlzaWJsZSBuYW1lIG9mIHRoZSBkYXRhYmFzZSBwcm9jZXNz
LiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuIiksIChOU1N0cmluZyAqKXBh
cmFtZXRlcnMudWlQcm9jZXNzTmFtZV07Ci0gICAgV0tTZXRWaXNpYmxlQXBwbGljYXRpb25OYW1l
KChDRlN0cmluZ1JlZilhcHBsaWNhdGlvbk5hbWUpOwotfQotCi12b2lkIFN0b3JhZ2VQcm9jZXNz
Ojppbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFt
ZXRlcnMmIHBhcmFtZXRlcnMsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHNhbmRi
b3hQYXJhbWV0ZXJzKQotewotICAgIC8vIE5lZWQgdG8gb3ZlcmlkZSB0aGUgZGVmYXVsdCwgYmVj
YXVzZSBzZXJ2aWNlIGhhcyBhIGRpZmZlcmVudCBidW5kbGUgSUQuCi0gICAgTlNCdW5kbGUgKndl
YmtpdDJCdW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xhc3M6TlNDbGFzc0Zyb21TdHJpbmco
QCJXS1ZpZXciKV07Ci0gICAgc2FuZGJveFBhcmFtZXRlcnMuc2V0T3ZlcnJpZGVTYW5kYm94UHJv
ZmlsZVBhdGgoW3dlYmtpdDJCdW5kbGUgcGF0aEZvclJlc291cmNlOkAiY29tLmFwcGxlLldlYktp
dC5TdG9yYWdlIiBvZlR5cGU6QCJzYiJdKTsKLQotICAgIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6
ZVNhbmRib3gocGFyYW1ldGVycywgc2FuZGJveFBhcmFtZXRlcnMpOwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzLnNi
LmluIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5E
YXRhYmFzZXMuc2IuaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1YjRhZmMwYzg2
MTdkZDVkNGMwY2FlN2M0YjUzMDJhNDVlMDRiNDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9tYWMvY29t
LmFwcGxlLldlYktpdC5EYXRhYmFzZXMuc2IuaW4KKysrIC9kZXYvbnVsbApAQCAtMSwxMzQgKzAs
MCBAQAotOyBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi07Ci07IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotOyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLTsgYXJlIG1ldDoKLTsgMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLTsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotOyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotOyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi07ICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi07Ci07IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLTsgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi07IFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLTsgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi07IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLTsgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLTsg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi07IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi07IENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi07IEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLTsgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0odmVyc2lv
biAxKQotKGRlbnkgZGVmYXVsdCAod2l0aCBwYXJ0aWFsLXN5bWJvbGljYXRpb24pKQotKGFsbG93
IHN5c3RlbS1hdWRpdCBmaWxlLXJlYWQtbWV0YWRhdGEpCi0KLShpbXBvcnQgInN5c3RlbS5zYiIp
Ci0KLTs7OyBwcm9jZXNzLWluZm8qIGRlZmF1bHRzIHRvIGFsbG93OyBkZW55IGl0IGFuZCB0aGVu
IGFsbG93IG9wZXJhdGlvbnMgd2UgYWN0dWFsbHkgbmVlZC4KLShkZW55IHByb2Nlc3MtaW5mbyop
Ci0oYWxsb3cgcHJvY2Vzcy1pbmZvLXBpZGluZm8pCi0oYWxsb3cgcHJvY2Vzcy1pbmZvLXNldGNv
bnRyb2wgKHRhcmdldCBzZWxmKSkKLQotKGRlbnkgc3lzY3RsKikKLShhbGxvdyBzeXNjdGwtcmVh
ZAotICAgIChzeXNjdGwtbmFtZQotICAgICAgICAiaHcuYXZhaWxjcHUiCi0gICAgICAgICJody5u
Y3B1IgotICAgICAgICAiaHcubW9kZWwiCi0gICAgICAgICJrZXJuLm1lbW9yeXN0YXR1c19sZXZl
bCIKLSAgICAgICAgInZtLmZvb3RwcmludF9zdXNwZW5kIikpCi0KLShkZW55IGlva2l0LWdldC1w
cm9wZXJ0aWVzKQotCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEz
MDAKLShkZW55IG1hY2gtbG9va3VwICh4cGMtc2VydmljZS1uYW1lLXByZWZpeCAiIikpCi0jZW5k
aWYKLQotOzsgVXRpbGl0eSBmdW5jdGlvbnMgZm9yIGhvbWUgZGlyZWN0b3J5IHJlbGF0aXZlIHBh
dGggZmlsdGVycwotKGRlZmluZSAoaG9tZS1yZWdleCBob21lLXJlbGF0aXZlLXJlZ2V4KQotICAo
cmVnZXggKHN0cmluZy1hcHBlbmQgIl4iIChyZWdleC1xdW90ZSAocGFyYW0gIkhPTUVfRElSIikp
IGhvbWUtcmVsYXRpdmUtcmVnZXgpKSkKLQotKGRlZmluZSAoaG9tZS1zdWJwYXRoIGhvbWUtcmVs
YXRpdmUtc3VicGF0aCkKLSAgICAoc3VicGF0aCAoc3RyaW5nLWFwcGVuZCAocGFyYW0gIkhPTUVf
RElSIikgaG9tZS1yZWxhdGl2ZS1zdWJwYXRoKSkpCi0KLShkZWZpbmUgKGhvbWUtbGl0ZXJhbCBo
b21lLXJlbGF0aXZlLWxpdGVyYWwpCi0gICAgKGxpdGVyYWwgKHN0cmluZy1hcHBlbmQgKHBhcmFt
ICJIT01FX0RJUiIpIGhvbWUtcmVsYXRpdmUtbGl0ZXJhbCkpKQotCi0oZGVmaW5lIChhbGxvdy1y
ZWFkLXdyaXRlLWRpcmVjdG9yeS1hbmQtaXNzdWUtcmVhZC13cml0ZS1leHRlbnNpb25zIHBhdGgp
Ci0gICAgKGlmIHBhdGgKLSAgICAgICAgKGJlZ2luCi0gICAgICAgICAgICAoYWxsb3cgZmlsZS1y
ZWFkKiBmaWxlLXdyaXRlKiAoc3VicGF0aCBwYXRoKSkKLSAgICAgICAgICAgIChhbGxvdyBmaWxl
LWlzc3VlLWV4dGVuc2lvbiAocmVxdWlyZS1hbGwgKGV4dGVuc2lvbi1jbGFzcyAiY29tLmFwcGxl
LmFwcC1zYW5kYm94LnJlYWQiKSAoc3VicGF0aCBwYXRoKSkpCi0gICAgICAgICAgICAoYWxsb3cg
ZmlsZS1pc3N1ZS1leHRlbnNpb24gKHJlcXVpcmUtYWxsIChleHRlbnNpb24tY2xhc3MgImNvbS5h
cHBsZS5hcHAtc2FuZGJveC5yZWFkLXdyaXRlIikgKHN1YnBhdGggcGF0aCkpKSkpKQotCi07OyBJ
T0tpdCB1c2VyIGNsaWVudHMKLShhbGxvdyBpb2tpdC1vcGVuCi0gICAgKGlva2l0LXVzZXItY2xp
ZW50LWNsYXNzICJSb290RG9tYWluVXNlckNsaWVudCIpKQotCi07OyBTZWN1cml0eSBmcmFtZXdv
cmsKLShhbGxvdyBtYWNoLWxvb2t1cAotICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLlNl
Y3VyaXR5U2VydmVyIikpCi0oYWxsb3cgdXNlci1wcmVmZXJlbmNlLXJlYWQKLSAgICAocHJlZmVy
ZW5jZS1kb21haW4KLSAgICAgICAgImNvbS5hcHBsZS5zZWN1cml0eSIKLSAgICAgICAgImNvbS5h
cHBsZS5zZWN1cml0eS5yZXZvY2F0aW9uIikpCi0oYWxsb3cgZmlsZS1yZWFkKgotICAgICAgIChz
dWJwYXRoICIvcHJpdmF0ZS92YXIvZGIvbWRzIikKLSAgICAgICAobGl0ZXJhbCAiL3ByaXZhdGUv
dmFyL2RiL0RldGFjaGVkU2lnbmF0dXJlcyIpCi0gICAgICAgOyBUaGUgZm9sbG93aW5nIGFyZSBu
ZWVkZWQgdW50aWwgPHJkYXI6Ly9wcm9ibGVtLzExMTM0Njg4PiBpcyByZXNvbHZlZC4KLSAgICAg
ICAobGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLnNlY3VyaXR5LnBsaXN0
IikKLSAgICAgICAobGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLnNlY3Vy
aXR5LnJldm9jYXRpb24ucGxpc3QiKQotICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1By
ZWZlcmVuY2VzL2NvbS5hcHBsZS5zZWN1cml0eS5wbGlzdCIpCi0gICAgICAgKGhvbWUtbGl0ZXJh
bCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLnNlY3VyaXR5LnJldm9jYXRpb24ucGxp
c3QiKSkKLShhbGxvdyBpcGMtcG9zaXgtc2htLXJlYWQqIGlwYy1wb3NpeC1zaG0td3JpdGUtZGF0
YQotICAgICAgIChpcGMtcG9zaXgtbmFtZSAiY29tLmFwcGxlLkFwcGxlRGF0YWJhc2VDaGFuZ2Vk
IikpCi0oaWYgKHBvc2l0aXZlPyAoc3RyaW5nLWxlbmd0aCAocGFyYW0gIkRBUldJTl9VU0VSX0NB
Q0hFX0RJUiIpKSkKLSAgICAoYWxsb3ctcmVhZC13cml0ZS1kaXJlY3RvcnktYW5kLWlzc3VlLXJl
YWQtd3JpdGUtZXh0ZW5zaW9ucyAocGFyYW0gIkRBUldJTl9VU0VSX0NBQ0hFX0RJUiIpKSkKLShp
ZiAocG9zaXRpdmU/IChzdHJpbmctbGVuZ3RoIChwYXJhbSAiREFSV0lOX1VTRVJfVEVNUF9ESVIi
KSkpCi0gICAgKGFsbG93LXJlYWQtd3JpdGUtZGlyZWN0b3J5LWFuZC1pc3N1ZS1yZWFkLXdyaXRl
LWV4dGVuc2lvbnMgKHBhcmFtICJEQVJXSU5fVVNFUl9URU1QX0RJUiIpKSkKLQotOzsgUmVhZC1v
bmx5IHByZWZlcmVuY2VzIGFuZCBkYXRhCi0oYWxsb3cgdXNlci1wcmVmZXJlbmNlLXJlYWQKLSAg
ICAocHJlZmVyZW5jZS1kb21haW4KLSAgICAgICAgImtDRlByZWZlcmVuY2VzQW55QXBwbGljYXRp
b24iKSkKLShhbGxvdyBmaWxlLXJlYWQqCi0gICAgOzsgQmFzaWMgc3lzdGVtIHBhdGhzCi0gICAg
KHN1YnBhdGggIi9MaWJyYXJ5L0ZyYW1ld29ya3MiKQotICAgIChzdWJwYXRoICIvTGlicmFyeS9N
YW5hZ2VkIFByZWZlcmVuY2VzIikKLQotICAgIDs7IE9uLWRpc2sgV2ViS2l0MiBmcmFtZXdvcmsg
bG9jYXRpb24sIHRvIGFjY291bnQgZm9yIGRlYnVnIGluc3RhbGxhdGlvbnMKLSAgICA7OyBvdXRz
aWRlIG9mIC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzCi0gICAgKHN1YnBhdGggKHBhcmFtICJX
RUJLSVQyX0ZSQU1FV09SS19ESVIiKSkpCi0oYWxsb3cgc3lzdGVtLWZzY3RsIChmc2N0bC1jb21t
YW5kIChfSU8gImgiIDQ3KSkpCi0KLTs7IFZhcmlvdXMgc2VydmljZXMgcmVxdWlyZWQgYnkgQ0ZO
ZXR3b3JrIGFuZCBvdGhlciBmcmFtZXdvcmtzCi0oYWxsb3cgbWFjaC1sb29rdXAKLSNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMAotICAgIChnbG9iYWwtbmFtZSAi
Y29tLmFwcGxlLmFuYWx5dGljc2QiKQotI2VuZGlmCi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBw
bGUubHNkLm1hcGRiIikKLSkKLQotOzsgU2FuZGJveCBleHRlbnNpb25zCi0oZGVmaW5lIChhcHBs
eS1yZWFkLWFuZC1pc3N1ZS1leHRlbnNpb24gb3AgcGF0aC1maWx0ZXIpCi0gICAgKG9wIGZpbGUt
cmVhZCogcGF0aC1maWx0ZXIpCi0gICAgKG9wIGZpbGUtaXNzdWUtZXh0ZW5zaW9uIChyZXF1aXJl
LWFsbCAoZXh0ZW5zaW9uLWNsYXNzICJjb20uYXBwbGUuYXBwLXNhbmRib3gucmVhZCIpIHBhdGgt
ZmlsdGVyKSkpCi0oZGVmaW5lIChhcHBseS13cml0ZS1hbmQtaXNzdWUtZXh0ZW5zaW9uIG9wIHBh
dGgtZmlsdGVyKQotICAgIChvcCBmaWxlLXdyaXRlKiBwYXRoLWZpbHRlcikKLSAgICAob3AgZmls
ZS1pc3N1ZS1leHRlbnNpb24gKHJlcXVpcmUtYWxsIChleHRlbnNpb24tY2xhc3MgImNvbS5hcHBs
ZS5hcHAtc2FuZGJveC5yZWFkLXdyaXRlIikgcGF0aC1maWx0ZXIpKSkKLShkZWZpbmUgKHJlYWQt
b25seS1hbmQtaXNzdWUtZXh0ZW5zaW9ucyBwYXRoLWZpbHRlcikKLSAgICAoYXBwbHktcmVhZC1h
bmQtaXNzdWUtZXh0ZW5zaW9uIGFsbG93IHBhdGgtZmlsdGVyKSkKLShkZWZpbmUgKHJlYWQtd3Jp
dGUtYW5kLWlzc3VlLWV4dGVuc2lvbnMgcGF0aC1maWx0ZXIpCi0gICAgKGFwcGx5LXJlYWQtYW5k
LWlzc3VlLWV4dGVuc2lvbiBhbGxvdyBwYXRoLWZpbHRlcikKLSAgICAoYXBwbHktd3JpdGUtYW5k
LWlzc3VlLWV4dGVuc2lvbiBhbGxvdyBwYXRoLWZpbHRlcikpCi0ocmVhZC1vbmx5LWFuZC1pc3N1
ZS1leHRlbnNpb25zIChleHRlbnNpb24gImNvbS5hcHBsZS5hcHAtc2FuZGJveC5yZWFkIikpCi0o
cmVhZC13cml0ZS1hbmQtaXNzdWUtZXh0ZW5zaW9ucyAoZXh0ZW5zaW9uICJjb20uYXBwbGUuYXBw
LXNhbmRib3gucmVhZC13cml0ZSIpKQotCi0oaWYgKGRlZmluZWQ/ICd2bm9kZS10eXBlKQotICAg
IChkZW55IGZpbGUtd3JpdGUtY3JlYXRlICh2bm9kZS10eXBlIFNZTUxJTkspKSkKLQotOzsgUmVz
ZXJ2ZSBhIG5hbWVzcGFjZSBmb3IgYWRkaXRpb25hbCBwcm90ZWN0ZWQgZXh0ZW5kZWQgYXR0cmli
dXRlcy4KLShkZW55IGZpbGUtcmVhZC14YXR0ciBmaWxlLXdyaXRlLXhhdHRyICh4YXR0ci1yZWdl
eCAjIl5jb21cLmFwcGxlXC5zZWN1cml0eVwucHJpdmF0ZVwuIikpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2Iu
aW4gYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LlN0
b3JhZ2Uuc2IuaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1YjRhZmMwYzg2MTdk
ZDVkNGMwY2FlN2M0YjUzMDJhNDVlMDRiNDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9tYWMvY29tLmFw
cGxlLldlYktpdC5TdG9yYWdlLnNiLmluCisrKyAvZGV2L251bGwKQEAgLTEsMTM0ICswLDAgQEAK
LTsgQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotOwotOyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLTsgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi07IGFyZSBtZXQ6Ci07IDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci07
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLTsgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLTsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotOyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotOwotOyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi07IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotOyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi07
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotOyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi07IENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi07IFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotOyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotOyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotOyBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi07IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotKHZlcnNpb24gMSkK
LShkZW55IGRlZmF1bHQgKHdpdGggcGFydGlhbC1zeW1ib2xpY2F0aW9uKSkKLShhbGxvdyBzeXN0
ZW0tYXVkaXQgZmlsZS1yZWFkLW1ldGFkYXRhKQotCi0oaW1wb3J0ICJzeXN0ZW0uc2IiKQotCi07
OzsgcHJvY2Vzcy1pbmZvKiBkZWZhdWx0cyB0byBhbGxvdzsgZGVueSBpdCBhbmQgdGhlbiBhbGxv
dyBvcGVyYXRpb25zIHdlIGFjdHVhbGx5IG5lZWQuCi0oZGVueSBwcm9jZXNzLWluZm8qKQotKGFs
bG93IHByb2Nlc3MtaW5mby1waWRpbmZvKQotKGFsbG93IHByb2Nlc3MtaW5mby1zZXRjb250cm9s
ICh0YXJnZXQgc2VsZikpCi0KLShkZW55IHN5c2N0bCopCi0oYWxsb3cgc3lzY3RsLXJlYWQKLSAg
ICAoc3lzY3RsLW5hbWUKLSAgICAgICAgImh3LmF2YWlsY3B1IgotICAgICAgICAiaHcubmNwdSIK
LSAgICAgICAgImh3Lm1vZGVsIgotICAgICAgICAia2Vybi5tZW1vcnlzdGF0dXNfbGV2ZWwiCi0g
ICAgICAgICJ2bS5mb290cHJpbnRfc3VzcGVuZCIpKQotCi0oZGVueSBpb2tpdC1nZXQtcHJvcGVy
dGllcykKLQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwCi0o
ZGVueSBtYWNoLWxvb2t1cCAoeHBjLXNlcnZpY2UtbmFtZS1wcmVmaXggIiIpKQotI2VuZGlmCi0K
LTs7IFV0aWxpdHkgZnVuY3Rpb25zIGZvciBob21lIGRpcmVjdG9yeSByZWxhdGl2ZSBwYXRoIGZp
bHRlcnMKLShkZWZpbmUgKGhvbWUtcmVnZXggaG9tZS1yZWxhdGl2ZS1yZWdleCkKLSAgKHJlZ2V4
IChzdHJpbmctYXBwZW5kICJeIiAocmVnZXgtcXVvdGUgKHBhcmFtICJIT01FX0RJUiIpKSBob21l
LXJlbGF0aXZlLXJlZ2V4KSkpCi0KLShkZWZpbmUgKGhvbWUtc3VicGF0aCBob21lLXJlbGF0aXZl
LXN1YnBhdGgpCi0gICAgKHN1YnBhdGggKHN0cmluZy1hcHBlbmQgKHBhcmFtICJIT01FX0RJUiIp
IGhvbWUtcmVsYXRpdmUtc3VicGF0aCkpKQotCi0oZGVmaW5lIChob21lLWxpdGVyYWwgaG9tZS1y
ZWxhdGl2ZS1saXRlcmFsKQotICAgIChsaXRlcmFsIChzdHJpbmctYXBwZW5kIChwYXJhbSAiSE9N
RV9ESVIiKSBob21lLXJlbGF0aXZlLWxpdGVyYWwpKSkKLQotKGRlZmluZSAoYWxsb3ctcmVhZC13
cml0ZS1kaXJlY3RvcnktYW5kLWlzc3VlLXJlYWQtd3JpdGUtZXh0ZW5zaW9ucyBwYXRoKQotICAg
IChpZiBwYXRoCi0gICAgICAgIChiZWdpbgotICAgICAgICAgICAgKGFsbG93IGZpbGUtcmVhZCog
ZmlsZS13cml0ZSogKHN1YnBhdGggcGF0aCkpCi0gICAgICAgICAgICAoYWxsb3cgZmlsZS1pc3N1
ZS1leHRlbnNpb24gKHJlcXVpcmUtYWxsIChleHRlbnNpb24tY2xhc3MgImNvbS5hcHBsZS5hcHAt
c2FuZGJveC5yZWFkIikgKHN1YnBhdGggcGF0aCkpKQotICAgICAgICAgICAgKGFsbG93IGZpbGUt
aXNzdWUtZXh0ZW5zaW9uIChyZXF1aXJlLWFsbCAoZXh0ZW5zaW9uLWNsYXNzICJjb20uYXBwbGUu
YXBwLXNhbmRib3gucmVhZC13cml0ZSIpIChzdWJwYXRoIHBhdGgpKSkpKSkKLQotOzsgSU9LaXQg
dXNlciBjbGllbnRzCi0oYWxsb3cgaW9raXQtb3BlbgotICAgIChpb2tpdC11c2VyLWNsaWVudC1j
bGFzcyAiUm9vdERvbWFpblVzZXJDbGllbnQiKSkKLQotOzsgU2VjdXJpdHkgZnJhbWV3b3JrCi0o
YWxsb3cgbWFjaC1sb29rdXAKLSAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5TZWN1cml0
eVNlcnZlciIpKQotKGFsbG93IHVzZXItcHJlZmVyZW5jZS1yZWFkCi0gICAgKHByZWZlcmVuY2Ut
ZG9tYWluCi0gICAgICAgICJjb20uYXBwbGUuc2VjdXJpdHkiCi0gICAgICAgICJjb20uYXBwbGUu
c2VjdXJpdHkucmV2b2NhdGlvbiIpKQotKGFsbG93IGZpbGUtcmVhZCoKLSAgICAgICAoc3VicGF0
aCAiL3ByaXZhdGUvdmFyL2RiL21kcyIpCi0gICAgICAgKGxpdGVyYWwgIi9wcml2YXRlL3Zhci9k
Yi9EZXRhY2hlZFNpZ25hdHVyZXMiKQotICAgICAgIDsgVGhlIGZvbGxvd2luZyBhcmUgbmVlZGVk
IHVudGlsIDxyZGFyOi8vcHJvYmxlbS8xMTEzNDY4OD4gaXMgcmVzb2x2ZWQuCi0gICAgICAgKGxp
dGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5zZWN1cml0eS5wbGlzdCIpCi0g
ICAgICAgKGxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5zZWN1cml0eS5y
ZXZvY2F0aW9uLnBsaXN0IikKLSAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJl
bmNlcy9jb20uYXBwbGUuc2VjdXJpdHkucGxpc3QiKQotICAgICAgIChob21lLWxpdGVyYWwgIi9M
aWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5zZWN1cml0eS5yZXZvY2F0aW9uLnBsaXN0Iikp
Ci0oYWxsb3cgaXBjLXBvc2l4LXNobS1yZWFkKiBpcGMtcG9zaXgtc2htLXdyaXRlLWRhdGEKLSAg
ICAgICAoaXBjLXBvc2l4LW5hbWUgImNvbS5hcHBsZS5BcHBsZURhdGFiYXNlQ2hhbmdlZCIpKQot
KGlmIChwb3NpdGl2ZT8gKHN0cmluZy1sZW5ndGggKHBhcmFtICJEQVJXSU5fVVNFUl9DQUNIRV9E
SVIiKSkpCi0gICAgKGFsbG93LXJlYWQtd3JpdGUtZGlyZWN0b3J5LWFuZC1pc3N1ZS1yZWFkLXdy
aXRlLWV4dGVuc2lvbnMgKHBhcmFtICJEQVJXSU5fVVNFUl9DQUNIRV9ESVIiKSkpCi0oaWYgKHBv
c2l0aXZlPyAoc3RyaW5nLWxlbmd0aCAocGFyYW0gIkRBUldJTl9VU0VSX1RFTVBfRElSIikpKQot
ICAgIChhbGxvdy1yZWFkLXdyaXRlLWRpcmVjdG9yeS1hbmQtaXNzdWUtcmVhZC13cml0ZS1leHRl
bnNpb25zIChwYXJhbSAiREFSV0lOX1VTRVJfVEVNUF9ESVIiKSkpCi0KLTs7IFJlYWQtb25seSBw
cmVmZXJlbmNlcyBhbmQgZGF0YQotKGFsbG93IHVzZXItcHJlZmVyZW5jZS1yZWFkCi0gICAgKHBy
ZWZlcmVuY2UtZG9tYWluCi0gICAgICAgICJrQ0ZQcmVmZXJlbmNlc0FueUFwcGxpY2F0aW9uIikp
Ci0oYWxsb3cgZmlsZS1yZWFkKgotICAgIDs7IEJhc2ljIHN5c3RlbSBwYXRocwotICAgIChzdWJw
YXRoICIvTGlicmFyeS9GcmFtZXdvcmtzIikKLSAgICAoc3VicGF0aCAiL0xpYnJhcnkvTWFuYWdl
ZCBQcmVmZXJlbmNlcyIpCi0KLSAgICA7OyBPbi1kaXNrIFdlYktpdDIgZnJhbWV3b3JrIGxvY2F0
aW9uLCB0byBhY2NvdW50IGZvciBkZWJ1ZyBpbnN0YWxsYXRpb25zCi0gICAgOzsgb3V0c2lkZSBv
ZiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3JrcwotICAgIChzdWJwYXRoIChwYXJhbSAiV0VCS0lU
Ml9GUkFNRVdPUktfRElSIikpKQotKGFsbG93IHN5c3RlbS1mc2N0bCAoZnNjdGwtY29tbWFuZCAo
X0lPICJoIiA0NykpKQotCi07OyBWYXJpb3VzIHNlcnZpY2VzIHJlcXVpcmVkIGJ5IENGTmV0d29y
ayBhbmQgb3RoZXIgZnJhbWV3b3JrcwotKGFsbG93IG1hY2gtbG9va3VwCi0jaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDAKLSAgICAoZ2xvYmFsLW5hbWUgImNvbS5h
cHBsZS5hbmFseXRpY3NkIikKLSNlbmRpZgotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmxz
ZC5tYXBkYiIpCi0pCi0KLTs7IFNhbmRib3ggZXh0ZW5zaW9ucwotKGRlZmluZSAoYXBwbHktcmVh
ZC1hbmQtaXNzdWUtZXh0ZW5zaW9uIG9wIHBhdGgtZmlsdGVyKQotICAgIChvcCBmaWxlLXJlYWQq
IHBhdGgtZmlsdGVyKQotICAgIChvcCBmaWxlLWlzc3VlLWV4dGVuc2lvbiAocmVxdWlyZS1hbGwg
KGV4dGVuc2lvbi1jbGFzcyAiY29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQiKSBwYXRoLWZpbHRl
cikpKQotKGRlZmluZSAoYXBwbHktd3JpdGUtYW5kLWlzc3VlLWV4dGVuc2lvbiBvcCBwYXRoLWZp
bHRlcikKLSAgICAob3AgZmlsZS13cml0ZSogcGF0aC1maWx0ZXIpCi0gICAgKG9wIGZpbGUtaXNz
dWUtZXh0ZW5zaW9uIChyZXF1aXJlLWFsbCAoZXh0ZW5zaW9uLWNsYXNzICJjb20uYXBwbGUuYXBw
LXNhbmRib3gucmVhZC13cml0ZSIpIHBhdGgtZmlsdGVyKSkpCi0oZGVmaW5lIChyZWFkLW9ubHkt
YW5kLWlzc3VlLWV4dGVuc2lvbnMgcGF0aC1maWx0ZXIpCi0gICAgKGFwcGx5LXJlYWQtYW5kLWlz
c3VlLWV4dGVuc2lvbiBhbGxvdyBwYXRoLWZpbHRlcikpCi0oZGVmaW5lIChyZWFkLXdyaXRlLWFu
ZC1pc3N1ZS1leHRlbnNpb25zIHBhdGgtZmlsdGVyKQotICAgIChhcHBseS1yZWFkLWFuZC1pc3N1
ZS1leHRlbnNpb24gYWxsb3cgcGF0aC1maWx0ZXIpCi0gICAgKGFwcGx5LXdyaXRlLWFuZC1pc3N1
ZS1leHRlbnNpb24gYWxsb3cgcGF0aC1maWx0ZXIpKQotKHJlYWQtb25seS1hbmQtaXNzdWUtZXh0
ZW5zaW9ucyAoZXh0ZW5zaW9uICJjb20uYXBwbGUuYXBwLXNhbmRib3gucmVhZCIpKQotKHJlYWQt
d3JpdGUtYW5kLWlzc3VlLWV4dGVuc2lvbnMgKGV4dGVuc2lvbiAiY29tLmFwcGxlLmFwcC1zYW5k
Ym94LnJlYWQtd3JpdGUiKSkKLQotKGlmIChkZWZpbmVkPyAndm5vZGUtdHlwZSkKLSAgICAoZGVu
eSBmaWxlLXdyaXRlLWNyZWF0ZSAodm5vZGUtdHlwZSBTWU1MSU5LKSkpCi0KLTs7IFJlc2VydmUg
YSBuYW1lc3BhY2UgZm9yIGFkZGl0aW9uYWwgcHJvdGVjdGVkIGV4dGVuZGVkIGF0dHJpYnV0ZXMu
Ci0oZGVueSBmaWxlLXJlYWQteGF0dHIgZmlsZS13cml0ZS14YXR0ciAoeGF0dHItcmVnZXggIyJe
Y29tXC5hcHBsZVwuc2VjdXJpdHlcLnByaXZhdGVcLiIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TdG9yYWdlUHJvY2Vzcy91bml4L1N0b3JhZ2VQcm9jZXNzTWFpblVuaXguaCBiL1NvdXJj
ZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvdW5peC9TdG9yYWdlUHJvY2Vzc01haW5Vbml4LmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU4MjQ0MjBiOGVlNWU2NDkzZWJhMzM3M2I4ZTFm
ZDZkYjY5ZDZmNGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy91bml4L1N0b3JhZ2VQcm9jZXNzTWFpblVu
aXguaAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTUgSWdhbGlhIFMuTC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlIDxX
ZWJLaXQvV0tCYXNlLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1leHRlcm4gIkMiIHsKLVdL
X0VYUE9SVCBpbnQgU3RvcmFnZVByb2Nlc3NNYWluVW5peChpbnQgYXJnYywgY2hhcioqIGFyZ3Yp
OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzUHJveHkuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZiZWI3ZWYxZDMzMjM0NWVjNzk0NzM5ZjJlNWI4ZWQwNjY2ZGMyN2MKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNz
UHJveHkuY3BwCkBAIC0wLDAgKzEsMjIzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkRhdGFiYXNlUHJvY2Vzc1Byb3h5LmgiCisKKyNpbmNsdWRlICJEYXRh
YmFzZVByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIkRhdGFiYXNlUHJvY2Vzc1Byb3h5TWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YS5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVDYWxsYmFja0lEKCkK
K3sKKyAgICBzdGF0aWMgdWludDY0X3QgY2FsbGJhY2tJRDsKKworICAgIHJldHVybiArK2NhbGxi
YWNrSUQ7Cit9CisKK1JlZjxEYXRhYmFzZVByb2Nlc3NQcm94eT4gRGF0YWJhc2VQcm9jZXNzUHJv
eHk6OmNyZWF0ZShXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCit7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRGF0YWJhc2VQcm9jZXNzUHJveHkocHJvY2Vzc1Bvb2wpKTsKK30KKworRGF0
YWJhc2VQcm9jZXNzUHJveHk6OkRhdGFiYXNlUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sKiBw
cm9jZXNzUG9vbCkKKyAgICA6IENoaWxkUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sLT5hbHdheXNS
dW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkoKSkKKyAgICAsIG1fcHJvY2Vzc1Bvb2wocHJvY2Vzc1Bv
b2wpCisgICAgLCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHMoMCkKK3sKKyAgICBjb25u
ZWN0KCk7Cit9CisKK0RhdGFiYXNlUHJvY2Vzc1Byb3h5Ojp+RGF0YWJhc2VQcm9jZXNzUHJveHko
KQoreworICAgIEFTU0VSVChtX3BlbmRpbmdGZXRjaFdlYnNpdGVEYXRhQ2FsbGJhY2tzLmlzRW1w
dHkoKSk7CisgICAgQVNTRVJUKG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhQ2FsbGJhY2tzLmlz
RW1wdHkoKSk7CisgICAgQVNTRVJUKG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lu
c0NhbGxiYWNrcy5pc0VtcHR5KCkpOworfQorCit2b2lkIERhdGFiYXNlUHJvY2Vzc1Byb3h5Ojpn
ZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0
aW9ucykKK3sKKyAgICBsYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlID0gUHJvY2Vzc0xhdW5jaGVy
OjpQcm9jZXNzVHlwZTo6RGF0YWJhc2U7CisgICAgQ2hpbGRQcm9jZXNzUHJveHk6OmdldExhdW5j
aE9wdGlvbnMobGF1bmNoT3B0aW9ucyk7Cit9CisKK3ZvaWQgRGF0YWJhc2VQcm9jZXNzUHJveHk6
OnByb2Nlc3NXaWxsU2h1dERvd24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAg
IEFTU0VSVF9VTlVTRUQoY29ubmVjdGlvbiwgdGhpcy0+Y29ubmVjdGlvbigpID09ICZjb25uZWN0
aW9uKTsKK30KKwordm9pZCBEYXRhYmFzZVByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7Cisg
ICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpEYXRhYmFz
ZVByb2Nlc3NQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGRpZFJlY2Vp
dmVEYXRhYmFzZVByb2Nlc3NQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAg
ICAgIHJldHVybjsKKyAgICB9Cit9CisKK3ZvaWQgRGF0YWJhc2VQcm9jZXNzUHJveHk6OmZldGNo
V2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlw
ZT4gZGF0YVR5cGVzLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKFdlYnNpdGVEYXRhKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoY2FuU2VuZE1lc3NhZ2UoKSk7CisKKyAgICB1aW50
NjRfdCBjYWxsYmFja0lEID0gZ2VuZXJhdGVDYWxsYmFja0lEKCk7CisgICAgbV9wZW5kaW5nRmV0
Y2hXZWJzaXRlRGF0YUNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJRCwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworCisgICAgc2VuZChNZXNzYWdlczo6RGF0YWJhc2VQcm9jZXNzOjpGZXRjaFdl
YnNpdGVEYXRhKHNlc3Npb25JRCwgZGF0YVR5cGVzLCBjYWxsYmFja0lEKSwgMCk7Cit9CisKK3Zv
aWQgRGF0YWJhc2VQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgc3Rk
OjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCBXVEY6OkZ1
bmN0aW9uPHZvaWQgKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byBjYWxsYmFj
a0lEID0gZ2VuZXJhdGVDYWxsYmFja0lEKCk7CisKKyAgICBtX3BlbmRpbmdEZWxldGVXZWJzaXRl
RGF0YUNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJRCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OworICAgIHNlbmQoTWVzc2FnZXM6OkRhdGFiYXNlUHJvY2Vzczo6RGVsZXRlV2Vic2l0ZURhdGEo
c2Vzc2lvbklELCBkYXRhVHlwZXMsIG1vZGlmaWVkU2luY2UsIGNhbGxiYWNrSUQpLCAwKTsKK30K
Kwordm9pZCBEYXRhYmFzZVByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5z
KFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBl
cywgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIFdU
Rjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVChj
YW5TZW5kTWVzc2FnZSgpKTsKKworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBnZW5lcmF0ZUNh
bGxiYWNrSUQoKTsKKyAgICBtX3BlbmRpbmdEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnNDYWxs
YmFja3MuYWRkKGNhbGxiYWNrSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKworICAg
IHNlbmQoTWVzc2FnZXM6OkRhdGFiYXNlUHJvY2Vzczo6RGVsZXRlV2Vic2l0ZURhdGFGb3JPcmln
aW5zKHNlc3Npb25JRCwgZGF0YVR5cGVzLCBvcmlnaW5zLCBjYWxsYmFja0lEKSwgMCk7Cit9CisK
K3ZvaWQgRGF0YWJhc2VQcm9jZXNzUHJveHk6OmdldERhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24o
UmVmPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldERhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rp
b246OkRlbGF5ZWRSZXBseT4mJiByZXBseSkKK3sKKyAgICBtX3BlbmRpbmdDb25uZWN0aW9uUmVw
bGllcy5hcHBlbmQoV1RGTW92ZShyZXBseSkpOworCisgICAgaWYgKHN0YXRlKCkgPT0gU3RhdGU6
OkxhdW5jaGluZykgeworICAgICAgICBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHMrKzsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHNlbmQoTWVzc2FnZXM6OkRhdGFiYXNlUHJv
Y2Vzczo6Q3JlYXRlRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCksIDAsIElQQzo6U2Vu
ZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKK30K
Kwordm9pZCBEYXRhYmFzZVByb2Nlc3NQcm94eTo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikK
K3sKKyAgICAvLyBUaGUgZGF0YWJhc2UgcHJvY2VzcyBtdXN0IGhhdmUgY3Jhc2hlZCBvciBleGl0
ZWQsIHNvIHNlbmQgYW55IHBlbmRpbmcgc3luYyByZXBsaWVzIHdlIG1pZ2h0IGhhdmUuCisgICAg
d2hpbGUgKCFtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5pc0VtcHR5KCkpIHsKKyAgICAgICAg
YXV0byByZXBseSA9IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLnRha2VGaXJzdCgpOworCisj
aWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCisgICAgICAgIHJlcGx5LT5zZW5kKElQQzo6QXR0
YWNobWVudCgpKTsKKyNlbGlmIE9TKERBUldJTikKKyAgICAgICAgcmVwbHktPnNlbmQoSVBDOjpB
dHRhY2htZW50KDAsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKSk7CisjZWxzZQorICAgICAgICBu
b3RJbXBsZW1lbnRlZCgpOworI2VuZGlmCisgICAgfQorCisgICAgZm9yIChjb25zdCBhdXRvJiBj
YWxsYmFjayA6IG1fcGVuZGluZ0ZldGNoV2Vic2l0ZURhdGFDYWxsYmFja3MudmFsdWVzKCkpCisg
ICAgICAgIGNhbGxiYWNrKFdlYnNpdGVEYXRhKCkpOworICAgIG1fcGVuZGluZ0ZldGNoV2Vic2l0
ZURhdGFDYWxsYmFja3MuY2xlYXIoKTsKKworICAgIGZvciAoY29uc3QgYXV0byYgY2FsbGJhY2sg
OiBtX3BlbmRpbmdEZWxldGVXZWJzaXRlRGF0YUNhbGxiYWNrcy52YWx1ZXMoKSkKKyAgICAgICAg
Y2FsbGJhY2soKTsKKyAgICBtX3BlbmRpbmdEZWxldGVXZWJzaXRlRGF0YUNhbGxiYWNrcy5jbGVh
cigpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBjYWxsYmFjayA6IG1fcGVuZGluZ0RlbGV0ZVdl
YnNpdGVEYXRhRm9yT3JpZ2luc0NhbGxiYWNrcy52YWx1ZXMoKSkKKyAgICAgICAgY2FsbGJhY2so
KTsKKyAgICBtX3BlbmRpbmdEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnNDYWxsYmFja3MuY2xl
YXIoKTsKKworICAgIC8vIFRlbGwgUHJvY2Vzc1Bvb2wgdG8gZm9yZ2V0IGFib3V0IHRoaXMgZGF0
YWJhc2UgcHJvY2Vzcy4gVGhpcyBtYXkgY2F1c2UgdXMgdG8gYmUgZGVsZXRlZC4KKyAgICBtX3By
b2Nlc3NQb29sLT5kYXRhYmFzZVByb2Nlc3NDcmFzaGVkKHRoaXMpOworfQorCit2b2lkIERhdGFi
YXNlUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdS
ZWZlcmVuY2UgbWVzc2FnZU5hbWUpCit7Cit9CisKK3ZvaWQgRGF0YWJhc2VQcm9jZXNzUHJveHk6
OmRpZENyZWF0ZURhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBJUEM6OkF0dGFj
aG1lbnQmIGNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIEFTU0VSVCghbV9wZW5kaW5nQ29u
bmVjdGlvblJlcGxpZXMuaXNFbXB0eSgpKTsKKworICAgIFJlZlB0cjxNZXNzYWdlczo6V2ViUHJv
Y2Vzc1Byb3h5OjpHZXREYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+IHJl
cGx5ID0gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMudGFrZUZpcnN0KCk7CisKKyNpZiBVU0Uo
VU5JWF9ET01BSU5fU09DS0VUUykKKyAgICByZXBseS0+c2VuZChjb25uZWN0aW9uSWRlbnRpZmll
cik7CisjZWxpZiBPUyhEQVJXSU4pCisgICAgcmVwbHktPnNlbmQoSVBDOjpBdHRhY2htZW50KGNv
bm5lY3Rpb25JZGVudGlmaWVyLnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKTsKKyNl
bHNlCisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyNlbmRpZgorfQorCit2b2lkIERhdGFiYXNlUHJv
Y2Vzc1Byb3h5OjpkaWRGZXRjaFdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0
IFdlYnNpdGVEYXRhJiB3ZWJzaXRlRGF0YSkKK3sKKyAgICBhdXRvIGNhbGxiYWNrID0gbV9wZW5k
aW5nRmV0Y2hXZWJzaXRlRGF0YUNhbGxiYWNrcy50YWtlKGNhbGxiYWNrSUQpOworICAgIGNhbGxi
YWNrKHdlYnNpdGVEYXRhKTsKK30KKwordm9pZCBEYXRhYmFzZVByb2Nlc3NQcm94eTo6ZGlkRGVs
ZXRlV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBhdXRvIGNhbGxiYWNr
ID0gbV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFDYWxsYmFja3MudGFrZShjYWxsYmFja0lEKTsK
KyAgICBjYWxsYmFjaygpOworfQorCit2b2lkIERhdGFiYXNlUHJvY2Vzc1Byb3h5OjpkaWREZWxl
dGVXZWJzaXRlRGF0YUZvck9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBhdXRv
IGNhbGxiYWNrID0gbV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zQ2FsbGJhY2tz
LnRha2UoY2FsbGJhY2tJRCk7CisgICAgY2FsbGJhY2soKTsKK30KKworI2lmIEVOQUJMRShTQU5E
Qk9YX0VYVEVOU0lPTlMpCit2b2lkIERhdGFiYXNlUHJvY2Vzc1Byb3h5OjpnZXRTYW5kYm94RXh0
ZW5zaW9uc0ZvckJsb2JGaWxlcyh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBwYXRocykKK3sKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBleHRlbnNp
b25zOworICAgIGV4dGVuc2lvbnMuYWxsb2NhdGUocGF0aHMuc2l6ZSgpKTsKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHBhdGhzLnNpemUoKTsgKytpKSB7CisgICAgICAgIC8vIFJlYWRXcml0
ZSBpcyByZXF1aXJlZCBmb3IgY3JlYXRpbmcgaGFyZCBsaW5rcywgd2hpY2ggaXMgc29tZXRoaW5n
IHRoYXQgbWlnaHQgYmUgZG9uZSB3aXRoIHRoZXNlIGV4dGVuc2lvbnMuCisgICAgICAgIFNhbmRi
b3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZShwYXRoc1tpXSwgU2FuZGJveEV4dGVuc2lvbjo6UmVh
ZFdyaXRlLCBleHRlbnNpb25zW2ldKTsKKyAgICB9CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpEYXRh
YmFzZVByb2Nlc3M6OkRpZEdldFNhbmRib3hFeHRlbnNpb25zRm9yQmxvYkZpbGVzKHJlcXVlc3RJ
RCwgZXh0ZW5zaW9ucyksIDApOworfQorI2VuZGlmCisKK3ZvaWQgRGF0YWJhc2VQcm9jZXNzUHJv
eHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBJUEM6OkNv
bm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCit7CisgICAgQ2hpbGRQ
cm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhsYXVuY2hlciwgY29ubmVjdGlvbklkZW50
aWZpZXIpOworCisgICAgaWYgKElQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzTnVsbChjb25u
ZWN0aW9uSWRlbnRpZmllcikpIHsKKyAgICAgICAgLy8gRklYTUU6IERvIGJldHRlciBjbGVhbnVw
IGhlcmUuCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzOyArK2kpCisgICAgICAgIHNlbmQo
TWVzc2FnZXM6OkRhdGFiYXNlUHJvY2Vzczo6Q3JlYXRlRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uKCksIDApOworICAgIAorICAgIG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0cyA9
IDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzUHJveHkuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xM2Q1YzJkMWI5MTI1MzVlMTJjZDRhODFmYjZkZTE4ZjU4YTZlODMyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1By
b3h5LmgKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiQ2hpbGRQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJQcm9jZXNzTGF1bmNoZXIuaCIK
KyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPHd0Zi9EZXF1
ZS5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2Ns
YXNzIFNlY3VyaXR5T3JpZ2luOworY2xhc3MgU2Vzc2lvbklEOworc3RydWN0IFNlY3VyaXR5T3Jp
Z2luRGF0YTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nlc3NQb29s
OworZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5cGU7CitzdHJ1Y3QgV2Vic2l0ZURhdGE7CisKK2Ns
YXNzIERhdGFiYXNlUHJvY2Vzc1Byb3h5IDogcHVibGljIENoaWxkUHJvY2Vzc1Byb3h5IHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPERhdGFiYXNlUHJvY2Vzc1Byb3h5PiBjcmVhdGUoV2ViUHJv
Y2Vzc1Bvb2wqKTsKKyAgICB+RGF0YWJhc2VQcm9jZXNzUHJveHkoKTsKKworICAgIHZvaWQgZmV0
Y2hXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5
cGU+LCBXVEY6OkZ1bmN0aW9uPHZvaWQoV2Vic2l0ZURhdGEpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KTsKKyAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9u
U2V0PFdlYnNpdGVEYXRhVHlwZT4sIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9p
bnQgbW9kaWZpZWRTaW5jZSwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpOworICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Np
b25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGE+JiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpOworCisgICAgdm9pZCBnZXREYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKFJlZjxNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXREYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxh
eWVkUmVwbHk+JiYpOworCitwcml2YXRlOgorICAgIERhdGFiYXNlUHJvY2Vzc1Byb3h5KFdlYlBy
b2Nlc3NQb29sKik7CisKKyAgICAvLyBDaGlsZFByb2Nlc3NQcm94eQorICAgIHZvaWQgZ2V0TGF1
bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHByb2Nlc3NXaWxsU2h1dERvd24oSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CisK
KyAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBk
aWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVJ
bnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJp
ZGU7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVEYXRhYmFzZVByb2Nlc3NQcm94eU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisKKyAgICAvLyBNZXNzYWdlIGhhbmRsZXJz
CisgICAgdm9pZCBkaWRDcmVhdGVEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3Qg
SVBDOjpBdHRhY2htZW50Jik7CisgICAgdm9pZCBkaWRGZXRjaFdlYnNpdGVEYXRhKHVpbnQ2NF90
IGNhbGxiYWNrSUQsIGNvbnN0IFdlYnNpdGVEYXRhJik7CisgICAgdm9pZCBkaWREZWxldGVXZWJz
aXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGRpZERlbGV0ZVdlYnNpdGVE
YXRhRm9yT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKTsKKyNpZiBFTkFCTEUoU0FOREJPWF9F
WFRFTlNJT05TKQorICAgIHZvaWQgZ2V0U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9iRmlsZXModWlu
dDY0X3QgcmVxdWVzdElELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpOworI2VuZGlmCisK
KyAgICAvLyBQcm9jZXNzTGF1bmNoZXI6OkNsaWVudAorICAgIHZvaWQgZGlkRmluaXNoTGF1bmNo
aW5nKFByb2Nlc3NMYXVuY2hlciosIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcikgb3ZlcnJp
ZGU7CisKKyAgICBXZWJQcm9jZXNzUG9vbCogbV9wcm9jZXNzUG9vbDsKKworICAgIHVuc2lnbmVk
IG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0czsKKyAgICBEZXF1ZTxSZWY8TWVzc2FnZXM6
OldlYlByb2Nlc3NQcm94eTo6R2V0RGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJl
cGx5Pj4gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXM7CisKKyAgICBIYXNoTWFwPHVpbnQ2NF90
LCBXVEY6OkZ1bmN0aW9uPHZvaWQgKFdlYnNpdGVEYXRhKT4+IG1fcGVuZGluZ0ZldGNoV2Vic2l0
ZURhdGFDYWxsYmFja3M7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgV1RGOjpGdW5jdGlvbjx2b2lk
ICgpPj4gbV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFDYWxsYmFja3M7CisgICAgSGFzaE1hcDx1
aW50NjRfdCwgV1RGOjpGdW5jdGlvbjx2b2lkICgpPj4gbV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURh
dGFGb3JPcmlnaW5zQ2FsbGJhY2tzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNz
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EYXRhYmFzZXMvRGF0
YWJhc2VQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQ0NGJmOGE4MWY4YjJi
MjAxMTQwNTEwNDZjOTYwNzQ3YzJmNWJhZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpA
QCAtMCwwICsxLDMzIEBACisjIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMg
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
IyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
K21lc3NhZ2VzIC0+IERhdGFiYXNlUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKKyAgICBE
aWRDcmVhdGVEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpBdHRhY2htZW50IGNv
bm5lY3Rpb25JZGVudGlmaWVyKQorCisgICAgRGlkRmV0Y2hXZWJzaXRlRGF0YSh1aW50NjRfdCBj
YWxsYmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YSkKKyAgICBE
aWREZWxldGVXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIERpZERlbGV0ZVdl
YnNpdGVEYXRhRm9yT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKQorCisjaWYgRU5BQkxFKFNB
TkRCT1hfRVhURU5TSU9OUykKKyAgICBHZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JGaWxlcyh1
aW50NjRfdCByZXF1ZXN0SUQsIFZlY3RvcjxTdHJpbmc+IHBhdGhzKQorI2VuZGlmCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5j
aGVyTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NM
YXVuY2hlck1hYy5tbQppbmRleCAzOTBjZmU5NTI5MTRhYTI2NDdjNWIxNTY1YmE2MDgwYjU3YzA1
NGJlLi5iOWVmYzA0ODVlNWI1OTcwMzNkYmQ5Y2I3ODU4MDg2NTYxMjhkODlhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1
bmNoZXJNYWMubW0KQEAgLTU2LDcgKzU2LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHNlcnZpY2VO
YW1lKGNvbnN0IFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW8KICAg
ICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6Ok5ldHdvcms6CiAgICAgICAgIHJl
dHVybiAiY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nIjsKICAgICBjYXNlIFByb2Nlc3NMYXVu
Y2hlcjo6UHJvY2Vzc1R5cGU6OkRhdGFiYXNlOgotICAgICAgICByZXR1cm4gImNvbS5hcHBsZS5X
ZWJLaXQuU3RvcmFnZSI7CisgICAgICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5EYXRhYmFz
ZXMiOwogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIGNhc2UgUHJvY2Vzc0xh
dW5jaGVyOjpQcm9jZXNzVHlwZTo6UGx1Z2luMzI6CiAgICAgICAgIHJldHVybiAiY29tLmFwcGxl
LldlYktpdC5QbHVnaW4uMzIiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggMGU5YzA3ODVjYjc3ZmUxMTAy
YTE4M2E4NzE1N2UyYjQ2MzVmYWRmMS4uMjRjODQyZGFkNjI0ZWI4NmYxOTdiYWYwNjVjZmJkYzNi
ZjJjNGRhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0yNywxMyArMjcsMTMgQEAKICNpbmNsdWRlICJO
ZXR3b3JrUHJvY2Vzc1Byb3h5LmgiCiAKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZVByb3h5LmgiCisjaW5jbHVkZSAiRGF0YWJhc2VQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJEb3dubG9hZFByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJMZWdhY3lDdXN0b21Qcm90b2Nv
bE1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1By
b2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKLSNpbmNsdWRl
ICJTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAj
aW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wu
aCIKQEAgLTI5OSw3ICsyOTksNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmdyYW50U2Fu
ZGJveEV4dGVuc2lvbnNUb0RhdGFiYXNlUHJvY2Vzc0ZvckJsb2JzKHVpbnQ2NAogICAgICAgICBT
YW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUocGF0aHNbaV0sIFNhbmRib3hFeHRlbnNpb246
OlJlYWRXcml0ZSwgZXh0ZW5zaW9uc1tpXSk7CiAgICAgfQogCi0gICAgbV9wcm9jZXNzUG9vbC5z
ZW5kVG9EYXRhYmFzZVByb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpTdG9y
YWdlUHJvY2Vzczo6R3JhbnRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JzKHBhdGhzLCBleHRlbnNp
b25zKSk7CisgICAgbV9wcm9jZXNzUG9vbC5zZW5kVG9EYXRhYmFzZVByb2Nlc3NSZWxhdW5jaGlu
Z0lmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpEYXRhYmFzZVByb2Nlc3M6OkdyYW50U2FuZGJveEV4dGVu
c2lvbnNGb3JCbG9icyhwYXRocywgZXh0ZW5zaW9ucykpOwogI2VuZGlmCiAgICAgY29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlkR3JhbnRTYW5kYm94RXh0ZW5z
aW9uc1RvRGF0YWJhc2VQcm9jZXNzRm9yQmxvYnMocmVxdWVzdElEKSwgMCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc1Byb3h5
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWU3OGM3ZDBhMzY2ODJjZmQ1MTNj
ZjBhN2IzZjU2NWYyZDQ1MTgxNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNz
UHJveHkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjIzICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU3RvcmFnZVByb2Nlc3NQcm94eS5oIgotCi0j
aW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlN0b3JhZ2VQcm9j
ZXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJTdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIK
LSNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgotI2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCi0j
aW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgotCi11c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUNh
bGxiYWNrSUQoKQotewotICAgIHN0YXRpYyB1aW50NjRfdCBjYWxsYmFja0lEOwotCi0gICAgcmV0
dXJuICsrY2FsbGJhY2tJRDsKLX0KLQotUmVmPFN0b3JhZ2VQcm9jZXNzUHJveHk+IFN0b3JhZ2VQ
cm9jZXNzUHJveHk6OmNyZWF0ZShXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCi17Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZVByb2Nlc3NQcm94eShwcm9jZXNzUG9vbCkpOwot
fQotCi1TdG9yYWdlUHJvY2Vzc1Byb3h5OjpTdG9yYWdlUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQ
b29sKiBwcm9jZXNzUG9vbCkKLSAgICA6IENoaWxkUHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sLT5h
bHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkoKSkKLSAgICAsIG1fcHJvY2Vzc1Bvb2wocHJv
Y2Vzc1Bvb2wpCi0gICAgLCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHMoMCkKLXsKLSAg
ICBjb25uZWN0KCk7Ci19Ci0KLVN0b3JhZ2VQcm9jZXNzUHJveHk6On5TdG9yYWdlUHJvY2Vzc1By
b3h5KCkKLXsKLSAgICBBU1NFUlQobV9wZW5kaW5nRmV0Y2hXZWJzaXRlRGF0YUNhbGxiYWNrcy5p
c0VtcHR5KCkpOwotICAgIEFTU0VSVChtX3BlbmRpbmdEZWxldGVXZWJzaXRlRGF0YUNhbGxiYWNr
cy5pc0VtcHR5KCkpOwotICAgIEFTU0VSVChtX3BlbmRpbmdEZWxldGVXZWJzaXRlRGF0YUZvck9y
aWdpbnNDYWxsYmFja3MuaXNFbXB0eSgpKTsKLX0KLQotdm9pZCBTdG9yYWdlUHJvY2Vzc1Byb3h5
OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNo
T3B0aW9ucykKLXsKLSAgICBsYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlID0gUHJvY2Vzc0xhdW5j
aGVyOjpQcm9jZXNzVHlwZTo6RGF0YWJhc2U7Ci0gICAgQ2hpbGRQcm9jZXNzUHJveHk6OmdldExh
dW5jaE9wdGlvbnMobGF1bmNoT3B0aW9ucyk7Ci19Ci0KLXZvaWQgU3RvcmFnZVByb2Nlc3NQcm94
eTo6cHJvY2Vzc1dpbGxTaHV0RG93bihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCi17Ci0g
ICAgQVNTRVJUX1VOVVNFRChjb25uZWN0aW9uLCB0aGlzLT5jb25uZWN0aW9uKCkgPT0gJmNvbm5l
Y3Rpb24pOwotfQotCi12b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQotewot
ICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6U3RvcmFn
ZVByb2Nlc3NQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7Ci0gICAgICAgIGRpZFJlY2Vp
dmVTdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLX0KLQotdm9pZCBTdG9yYWdlUHJvY2Vzc1Byb3h5OjpmZXRjaFdl
YnNpdGVEYXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+
IGRhdGFUeXBlcywgV1RGOjpGdW5jdGlvbjx2b2lkIChXZWJzaXRlRGF0YSk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCi17Ci0gICAgQVNTRVJUKGNhblNlbmRNZXNzYWdlKCkpOwotCi0gICAgdWludDY0
X3QgY2FsbGJhY2tJRCA9IGdlbmVyYXRlQ2FsbGJhY2tJRCgpOwotICAgIG1fcGVuZGluZ0ZldGNo
V2Vic2l0ZURhdGFDYWxsYmFja3MuYWRkKGNhbGxiYWNrSUQsIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKLQotICAgIHNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpGZXRjaFdlYnNp
dGVEYXRhKHNlc3Npb25JRCwgZGF0YVR5cGVzLCBjYWxsYmFja0lEKSwgMCk7Ci19Ci0KLXZvaWQg
U3RvcmFnZVByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBzdGQ6OmNo
cm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIFdURjo6RnVuY3Rp
b248dm9pZCAoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBhdXRvIGNhbGxiYWNrSUQg
PSBnZW5lcmF0ZUNhbGxiYWNrSUQoKTsKLQotICAgIG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRh
Q2FsbGJhY2tzLmFkZChjYWxsYmFja0lELCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0g
ICAgc2VuZChNZXNzYWdlczo6U3RvcmFnZVByb2Nlc3M6OkRlbGV0ZVdlYnNpdGVEYXRhKHNlc3Np
b25JRCwgZGF0YVR5cGVzLCBtb2RpZmllZFNpbmNlLCBjYWxsYmFja0lEKSwgMCk7Ci19Ci0KLXZv
aWQgU3RvcmFnZVByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFNlc3Np
b25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgY29u
c3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIFdURjo6RnVu
Y3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIEFTU0VSVChjYW5TZW5k
TWVzc2FnZSgpKTsKLQotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBnZW5lcmF0ZUNhbGxiYWNr
SUQoKTsKLSAgICBtX3BlbmRpbmdEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnNDYWxsYmFja3Mu
YWRkKGNhbGxiYWNrSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLQotICAgIHNlbmQo
TWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoc2Vz
c2lvbklELCBkYXRhVHlwZXMsIG9yaWdpbnMsIGNhbGxiYWNrSUQpLCAwKTsKLX0KLQotdm9pZCBT
dG9yYWdlUHJvY2Vzc1Byb3h5OjpnZXREYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKFJlZjxNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXREYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxh
eWVkUmVwbHk+JiYgcmVwbHkpCi17Ci0gICAgbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMuYXBw
ZW5kKFdURk1vdmUocmVwbHkpKTsKLQotICAgIGlmIChzdGF0ZSgpID09IFN0YXRlOjpMYXVuY2hp
bmcpIHsKLSAgICAgICAgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzKys7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBzZW5kKE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzczo6Q3Jl
YXRlRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCksIDAsIElQQzo6U2VuZE9wdGlvbjo6
RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKLX0KLQotdm9pZCBT
dG9yYWdlUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQotewotICAgIC8v
IFRoZSBkYXRhYmFzZSBwcm9jZXNzIG11c3QgaGF2ZSBjcmFzaGVkIG9yIGV4aXRlZCwgc28gc2Vu
ZCBhbnkgcGVuZGluZyBzeW5jIHJlcGxpZXMgd2UgbWlnaHQgaGF2ZS4KLSAgICB3aGlsZSAoIW1f
cGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmlzRW1wdHkoKSkgewotICAgICAgICBhdXRvIHJlcGx5
ID0gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMudGFrZUZpcnN0KCk7Ci0KLSNpZiBVU0UoVU5J
WF9ET01BSU5fU09DS0VUUykKLSAgICAgICAgcmVwbHktPnNlbmQoSVBDOjpBdHRhY2htZW50KCkp
OwotI2VsaWYgT1MoREFSV0lOKQotICAgICAgICByZXBseS0+c2VuZChJUEM6OkF0dGFjaG1lbnQo
MCwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKTsKLSNlbHNlCi0gICAgICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0jZW5kaWYKLSAgICB9Ci0KLSAgICBmb3IgKGNvbnN0IGF1dG8mIGNhbGxiYWNrIDog
bV9wZW5kaW5nRmV0Y2hXZWJzaXRlRGF0YUNhbGxiYWNrcy52YWx1ZXMoKSkKLSAgICAgICAgY2Fs
bGJhY2soV2Vic2l0ZURhdGEoKSk7Ci0gICAgbV9wZW5kaW5nRmV0Y2hXZWJzaXRlRGF0YUNhbGxi
YWNrcy5jbGVhcigpOwotCi0gICAgZm9yIChjb25zdCBhdXRvJiBjYWxsYmFjayA6IG1fcGVuZGlu
Z0RlbGV0ZVdlYnNpdGVEYXRhQ2FsbGJhY2tzLnZhbHVlcygpKQotICAgICAgICBjYWxsYmFjaygp
OwotICAgIG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhQ2FsbGJhY2tzLmNsZWFyKCk7Ci0KLSAg
ICBmb3IgKGNvbnN0IGF1dG8mIGNhbGxiYWNrIDogbV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFG
b3JPcmlnaW5zQ2FsbGJhY2tzLnZhbHVlcygpKQotICAgICAgICBjYWxsYmFjaygpOwotICAgIG1f
cGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2luc0NhbGxiYWNrcy5jbGVhcigpOwotCi0g
ICAgLy8gVGVsbCBQcm9jZXNzUG9vbCB0byBmb3JnZXQgYWJvdXQgdGhpcyBkYXRhYmFzZSBwcm9j
ZXNzLiBUaGlzIG1heSBjYXVzZSB1cyB0byBiZSBkZWxldGVkLgotICAgIG1fcHJvY2Vzc1Bvb2wt
PmRhdGFiYXNlUHJvY2Vzc0NyYXNoZWQodGhpcyk7Ci19Ci0KLXZvaWQgU3RvcmFnZVByb2Nlc3NQ
cm94eTo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3Ry
aW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1l
c3NhZ2VOYW1lKQotewotfQotCi12b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmRpZENyZWF0ZURh
dGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBJUEM6OkF0dGFjaG1lbnQmIGNvbm5l
Y3Rpb25JZGVudGlmaWVyKQotewotICAgIEFTU0VSVCghbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxp
ZXMuaXNFbXB0eSgpKTsKLQotICAgIFJlZlB0cjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpH
ZXREYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+IHJlcGx5ID0gbV9wZW5k
aW5nQ29ubmVjdGlvblJlcGxpZXMudGFrZUZpcnN0KCk7Ci0KLSNpZiBVU0UoVU5JWF9ET01BSU5f
U09DS0VUUykKLSAgICByZXBseS0+c2VuZChjb25uZWN0aW9uSWRlbnRpZmllcik7Ci0jZWxpZiBP
UyhEQVJXSU4pCi0gICAgcmVwbHktPnNlbmQoSVBDOjpBdHRhY2htZW50KGNvbm5lY3Rpb25JZGVu
dGlmaWVyLnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKTsKLSNlbHNlCi0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLSNlbmRpZgotfQotCi12b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmRp
ZEZldGNoV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgV2Vic2l0ZURhdGEm
IHdlYnNpdGVEYXRhKQotewotICAgIGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdGZXRjaFdlYnNp
dGVEYXRhQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7Ci0gICAgY2FsbGJhY2sod2Vic2l0ZURh
dGEpOwotfQotCi12b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmRpZERlbGV0ZVdlYnNpdGVEYXRh
KHVpbnQ2NF90IGNhbGxiYWNrSUQpCi17Ci0gICAgYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ0Rl
bGV0ZVdlYnNpdGVEYXRhQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7Ci0gICAgY2FsbGJhY2so
KTsKLX0KLQotdm9pZCBTdG9yYWdlUHJvY2Vzc1Byb3h5OjpkaWREZWxldGVXZWJzaXRlRGF0YUZv
ck9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCkKLXsKLSAgICBhdXRvIGNhbGxiYWNrID0gbV9w
ZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJ
RCk7Ci0gICAgY2FsbGJhY2soKTsKLX0KLQotI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMp
Ci12b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmdldFNhbmRib3hFeHRlbnNpb25zRm9yQmxvYkZp
bGVzKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzKQotewot
ICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IGV4dGVuc2lvbnM7Ci0gICAgZXh0ZW5z
aW9ucy5hbGxvY2F0ZShwYXRocy5zaXplKCkpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
cGF0aHMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgLy8gUmVhZFdyaXRlIGlzIHJlcXVpcmVkIGZv
ciBjcmVhdGluZyBoYXJkIGxpbmtzLCB3aGljaCBpcyBzb21ldGhpbmcgdGhhdCBtaWdodCBiZSBk
b25lIHdpdGggdGhlc2UgZXh0ZW5zaW9ucy4KLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlKHBhdGhzW2ldLCBTYW5kYm94RXh0ZW5zaW9uOjpSZWFkV3JpdGUsIGV4dGVuc2lv
bnNbaV0pOwotICAgIH0KLQotICAgIHNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpEaWRH
ZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JGaWxlcyhyZXF1ZXN0SUQsIGV4dGVuc2lvbnMpLCAw
KTsKLX0KLSNlbmRpZgotCi12b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5j
aGluZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZp
ZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCi17Ci0gICAgQ2hpbGRQcm9jZXNzUHJveHk6OmRpZEZp
bmlzaExhdW5jaGluZyhsYXVuY2hlciwgY29ubmVjdGlvbklkZW50aWZpZXIpOwotCi0gICAgaWYg
KElQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzTnVsbChjb25uZWN0aW9uSWRlbnRpZmllcikp
IHsKLSAgICAgICAgLy8gRklYTUU6IERvIGJldHRlciBjbGVhbnVwIGhlcmUuCi0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9udW1QZW5kaW5n
Q29ubmVjdGlvblJlcXVlc3RzOyArK2kpCi0gICAgICAgIHNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQ
cm9jZXNzOjpDcmVhdGVEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKSwgMCk7Ci0gICAg
Ci0gICAgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzID0gMDsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdG9yYWdl
L1N0b3JhZ2VQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2Uv
U3RvcmFnZVByb2Nlc3NQcm94eS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYmNh
NzBlMDU1YjkxZDNiZGU0NjY4MTI5NjRhMjcwNjIwZjhiYmEzLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3Jh
Z2UvU3RvcmFnZVByb2Nlc3NQcm94eS5oCisrKyAvZGV2L251bGwKQEAgLTEsOTMgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQ2hpbGRQcm9jZXNzUHJveHku
aCIKLSNpbmNsdWRlICJQcm9jZXNzTGF1bmNoZXIuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzUHJv
eHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgotI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIFNlY3VyaXR5T3JpZ2luOwotY2xh
c3MgU2Vzc2lvbklEOwotc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKLX0KLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLWNsYXNzIFdlYlByb2Nlc3NQb29sOwotZW51bSBjbGFzcyBXZWJzaXRlRGF0
YVR5cGU7Ci1zdHJ1Y3QgV2Vic2l0ZURhdGE7Ci0KLWNsYXNzIFN0b3JhZ2VQcm9jZXNzUHJveHkg
OiBwdWJsaWMgQ2hpbGRQcm9jZXNzUHJveHkgewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8U3Rv
cmFnZVByb2Nlc3NQcm94eT4gY3JlYXRlKFdlYlByb2Nlc3NQb29sKik7Ci0gICAgflN0b3JhZ2VQ
cm9jZXNzUHJveHkoKTsKLQotICAgIHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNz
aW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBXVEY6OkZ1bmN0aW9uPHZvaWQoV2Vi
c2l0ZURhdGEpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKLSAgICB2b2lkIGRlbGV0ZVdlYnNpdGVE
YXRhKFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIHN0ZDo6
Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgV1RGOjpGdW5j
dGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpOwotICAgIHZvaWQgZGVsZXRlV2Vic2l0
ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRh
VHlwZT4sIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiwgV1RGOjpG
dW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpOwotCi0gICAgdm9pZCBnZXREYXRh
YmFzZVByb2Nlc3NDb25uZWN0aW9uKFJlZjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRE
YXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+JiYpOwotCi1wcml2YXRlOgot
ICAgIFN0b3JhZ2VQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wqKTsKLQotICAgIC8vIENoaWxk
UHJvY2Vzc1Byb3h5Ci0gICAgdm9pZCBnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6
TGF1bmNoT3B0aW9ucyYpIG92ZXJyaWRlOwotICAgIHZvaWQgcHJvY2Vzc1dpbGxTaHV0RG93bihJ
UEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKLQotICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xp
ZW50Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92
ZXJyaWRlOwotICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5n
UmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKLQotICAgIHZvaWQgZGlkUmVjZWl2ZVN0
b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
OwotCi0gICAgLy8gTWVzc2FnZSBoYW5kbGVycwotICAgIHZvaWQgZGlkQ3JlYXRlRGF0YWJhc2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IElQQzo6QXR0YWNobWVudCYpOwotICAgIHZvaWQg
ZGlkRmV0Y2hXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBXZWJzaXRlRGF0
YSYpOwotICAgIHZvaWQgZGlkRGVsZXRlV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCk7
Ci0gICAgdm9pZCBkaWREZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnModWludDY0X3QgY2FsbGJh
Y2tJRCk7Ci0jaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKLSAgICB2b2lkIGdldFNhbmRi
b3hFeHRlbnNpb25zRm9yQmxvYkZpbGVzKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIHBhdGhzKTsKLSNlbmRpZgotCi0gICAgLy8gUHJvY2Vzc0xhdW5jaGVyOjpDbGll
bnQKLSAgICB2b2lkIGRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqLCBJUEM6OkNv
bm5lY3Rpb246OklkZW50aWZpZXIpIG92ZXJyaWRlOwotCi0gICAgV2ViUHJvY2Vzc1Bvb2wqIG1f
cHJvY2Vzc1Bvb2w7Ci0KLSAgICB1bnNpZ25lZCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVz
dHM7Ci0gICAgRGVxdWU8UmVmPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldERhdGFiYXNl
UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4+IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBs
aWVzOwotCi0gICAgSGFzaE1hcDx1aW50NjRfdCwgV1RGOjpGdW5jdGlvbjx2b2lkIChXZWJzaXRl
RGF0YSk+PiBtX3BlbmRpbmdGZXRjaFdlYnNpdGVEYXRhQ2FsbGJhY2tzOwotICAgIEhhc2hNYXA8
dWludDY0X3QsIFdURjo6RnVuY3Rpb248dm9pZCAoKT4+IG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVE
YXRhQ2FsbGJhY2tzOwotICAgIEhhc2hNYXA8dWludDY0X3QsIFdURjo6RnVuY3Rpb248dm9pZCAo
KT4+IG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2luc0NhbGxiYWNrczsKLX07Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZTE3NjkzMzNkNmMwNDRmNDU1MmE3YmM1MTJhYmI2
Yjc1NGU4MzNjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NQcm94eS5tZXNz
YWdlcy5pbgorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORAotIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0jIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCi0jIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSMgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIKLSMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSMgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLQotbWVzc2FnZXMgLT4gU3RvcmFnZVByb2Nlc3NQcm94eSBM
ZWdhY3lSZWNlaXZlciB7Ci0gICAgRGlkQ3JlYXRlRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0
aW9uKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSWRlbnRpZmllcikKLQotICAgIERpZEZldGNo
V2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCwgc3RydWN0IFdlYktpdDo6V2Vic2l0ZURh
dGEgd2Vic2l0ZURhdGEpCi0gICAgRGlkRGVsZXRlV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJh
Y2tJRCkKLSAgICBEaWREZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnModWludDY0X3QgY2FsbGJh
Y2tJRCkKLQotI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCi0gICAgR2V0U2FuZGJveEV4
dGVuc2lvbnNGb3JCbG9iRmlsZXModWludDY0X3QgcmVxdWVzdElELCBWZWN0b3I8U3RyaW5nPiBw
YXRocykKLSNlbmRpZgotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
Q29udGV4dFN1cHBsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRT
dXBwbGVtZW50LmgKaW5kZXggODBjYTNhNTMzYTFjNzA0ZjIzMWRiODQwZDkxZjU2NjQ3NGRlNzQ4
YS4uMzFmZTljNGEwOWI4NGMxMDZiNjZjYWZhN2U2ZWE0ZTU2MWUzZDY1YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dFN1cHBsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0U3VwcGxlbWVudC5oCkBAIC0yOCw4ICsyOCw4
IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBEYXRhYmFzZVByb2Nlc3NQcm94eTsK
IGNsYXNzIE5ldHdvcmtQcm9jZXNzUHJveHk7Ci1jbGFzcyBTdG9yYWdlUHJvY2Vzc1Byb3h5Owog
Y2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiBjbGFzcyBXZWJQcm9jZXNzUHJveHk7CiAKQEAgLTU2LDcg
KzU2LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vz
c0RpZENsb3NlKFN0b3JhZ2VQcm9jZXNzUHJveHkqKQorICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNz
RGlkQ2xvc2UoRGF0YWJhc2VQcm9jZXNzUHJveHkqKQogICAgIHsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCBmMjhmMDk5Nzg2MTBjNTFk
MDAzMGIxOWQ2ZjYyOWMyYWIyNTQ1NjYyLi43N2U3NDZmYjNlZmUwODNiOWRhMDM1MGRkMjNmNTUw
OTNiM2YyNTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
CkBAIC0zNSw2ICszNSw4IEBACiAjaW5jbHVkZSAiQVBJTGVnYWN5Q29udGV4dEhpc3RvcnlDbGll
bnQuaCIKICNpbmNsdWRlICJBUElQYWdlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIkFQSVBy
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgIkRhdGFiYXNlUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIkRhdGFiYXNlUHJvY2Vzc01lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiRG93bmxvYWRQcm94eS5oIgogI2luY2x1ZGUgIkRvd25sb2FkUHJveHlNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIkdhbWVwYWREYXRhLmgiCkBAIC00Nyw4ICs0OSw2IEBACiAjaW5jbHVk
ZSAiUGVyQWN0aXZpdHlTdGF0ZUNQVVVzYWdlU2FtcGxlci5oIgogI2luY2x1ZGUgIlNhbmRib3hF
eHRlbnNpb24uaCIKICNpbmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgotI2luY2x1ZGUgIlN0b3Jh
Z2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCi0jaW5jbHVkZSAiU3RvcmFnZVByb2Nlc3NN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVUlHYW1lcGFk
LmgiCiAjaW5jbHVkZSAiVUlHYW1lcGFkUHJvdmlkZXIuaCIKQEAgLTUyMSw5ICs1MjEsOSBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjplbnN1cmVEYXRhYmFzZVByb2Nlc3NBbmRXZWJzaXRlRGF0YVN0
b3JlKFdlYnNpdGVEYXRhU3RvcmUqCiAgICAgLy8gKioqKioqKioqCiAKICAgICBpZiAoIW1fZGF0
YWJhc2VQcm9jZXNzKSB7Ci0gICAgICAgIG1fZGF0YWJhc2VQcm9jZXNzID0gU3RvcmFnZVByb2Nl
c3NQcm94eTo6Y3JlYXRlKHRoaXMpOworICAgICAgICBtX2RhdGFiYXNlUHJvY2VzcyA9IERhdGFi
YXNlUHJvY2Vzc1Byb3h5OjpjcmVhdGUodGhpcyk7CiAKLSAgICAgICAgU3RvcmFnZVByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMgcGFyYW1ldGVyczsKKyAgICAgICAgRGF0YWJhc2VQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CiAgICAgICAgIEFTU0VSVCghbV9jb25maWd1cmF0aW9uLT5pbmRleGVkREJEYXRhYmFzZURpcmVj
dG9yeSgpLmlzRW1wdHkoKSk7CiAKQEAgLTUzMywxMyArNTMzLDEzIEBAIHZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OmVuc3VyZURhdGFiYXNlUHJvY2Vzc0FuZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURh
dGFTdG9yZSoKICNlbmRpZgogCiAgICAgICAgIEFTU0VSVCghcGFyYW1ldGVycy5pbmRleGVkRGF0
YWJhc2VEaXJlY3RvcnkuaXNFbXB0eSgpKTsKLSAgICAgICAgbV9kYXRhYmFzZVByb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpJbml0aWFsaXplV2Vic2l0ZURhdGFTdG9yZShw
YXJhbWV0ZXJzKSwgMCk7CisgICAgICAgIG1fZGF0YWJhc2VQcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpEYXRhYmFzZVByb2Nlc3M6OkluaXRpYWxpemVXZWJzaXRlRGF0YVN0b3JlKHBhcmFtZXRlcnMp
LCAwKTsKICAgICB9CiAKICAgICBpZiAoIXJlbGV2YW50RGF0YVN0b3JlIHx8IHJlbGV2YW50RGF0
YVN0b3JlID09ICZ3ZWJzaXRlRGF0YVN0b3JlKCkud2Vic2l0ZURhdGFTdG9yZSgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBtX2RhdGFiYXNlUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6U3RvcmFn
ZVByb2Nlc3M6OkluaXRpYWxpemVXZWJzaXRlRGF0YVN0b3JlKHJlbGV2YW50RGF0YVN0b3JlLT5k
YXRhYmFzZVByb2Nlc3NQYXJhbWV0ZXJzKCkpLCAwKTsKKyAgICBtX2RhdGFiYXNlUHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6RGF0YWJhc2VQcm9jZXNzOjpJbml0aWFsaXplV2Vic2l0ZURhdGFTdG9y
ZShyZWxldmFudERhdGFTdG9yZS0+ZGF0YWJhc2VQcm9jZXNzUGFyYW1ldGVycygpKSwgMCk7CiB9
CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldERhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24oUmVm
PE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldERhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246
OkRlbGF5ZWRSZXBseT4mJiByZXBseSkKQEAgLTU0OSw3ICs1NDksNyBAQCB2b2lkIFdlYlByb2Nl
c3NQb29sOjpnZXREYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKFJlZjxNZXNzYWdlczo6V2ViUHJv
Y2Vzc1Byb3h5OgogICAgIG1fZGF0YWJhc2VQcm9jZXNzLT5nZXREYXRhYmFzZVByb2Nlc3NDb25u
ZWN0aW9uKFdURk1vdmUocmVwbHkpKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUG9vbDo6ZGF0YWJh
c2VQcm9jZXNzQ3Jhc2hlZChTdG9yYWdlUHJvY2Vzc1Byb3h5KiBkYXRhYmFzZVByb2Nlc3NQcm94
eSkKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmRhdGFiYXNlUHJvY2Vzc0NyYXNoZWQoRGF0YWJhc2VQ
cm9jZXNzUHJveHkqIGRhdGFiYXNlUHJvY2Vzc1Byb3h5KQogewogICAgIEFTU0VSVChtX2RhdGFi
YXNlUHJvY2Vzcyk7CiAgICAgQVNTRVJUKGRhdGFiYXNlUHJvY2Vzc1Byb3h5ID09IG1fZGF0YWJh
c2VQcm9jZXNzLmdldCgpKTsKQEAgLTk2MSw3ICs5NjEsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29s
OjpwYWdlQWRkZWRUb1Byb2Nlc3MoV2ViUGFnZVByb3h5JiBwYWdlKQogI2lmIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQogICAgICAgICBhdXRvIGRhdGFiYXNlUGFyYW1ldGVycyA9IHBhZ2Uud2Vi
c2l0ZURhdGFTdG9yZSgpLmRhdGFiYXNlUHJvY2Vzc1BhcmFtZXRlcnMoKTsKICAgICAgICAgaWYg
KCFkYXRhYmFzZVBhcmFtZXRlcnMuaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5LmlzRW1wdHkoKSkK
LSAgICAgICAgICAgIHNlbmRUb0RhdGFiYXNlUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3Nhcnko
TWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpJbml0aWFsaXplV2Vic2l0ZURhdGFTdG9yZShkYXRh
YmFzZVBhcmFtZXRlcnMpKTsKKyAgICAgICAgICAgIHNlbmRUb0RhdGFiYXNlUHJvY2Vzc1JlbGF1
bmNoaW5nSWZOZWNlc3NhcnkoTWVzc2FnZXM6OkRhdGFiYXNlUHJvY2Vzczo6SW5pdGlhbGl6ZVdl
YnNpdGVEYXRhU3RvcmUoZGF0YWJhc2VQYXJhbWV0ZXJzKSk7CiAjZW5kaWYKICAgICB9CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCBkZjllZTJhMzZhMjM1
OWFjZjliN2NkNWY1NDJjZjIyOWY0MmQ3NTI0Li44NjY4Y2M0ODVjZjVjZmEwZjJjYmZhNTgxNGMz
MzAwNTM1NTZiOWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgK
QEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJBUElQ
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJBUElXZWJzaXRlRGF0YVN0b3Jl
LmgiCisjaW5jbHVkZSAiRGF0YWJhc2VQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJEb3dubG9h
ZFByb3h5TWFwLmgiCiAjaW5jbHVkZSAiR2VuZXJpY0NhbGxiYWNrLmgiCiAjaW5jbHVkZSAiSGlk
ZGVuUGFnZVRocm90dGxpbmdBdXRvSW5jcmVhc2VzQ291bnRlci5oIgpAQCAtMzksNyArNDAsNiBA
QAogI2luY2x1ZGUgIlBsdWdpbkluZm9TdG9yZS5oIgogI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRs
ZXIuaCIKICNpbmNsdWRlICJTdGF0aXN0aWNzUmVxdWVzdC5oIgotI2luY2x1ZGUgIlN0b3JhZ2VQ
cm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJWaXNpdGVkTGlua1N0b3JlLmgiCiAjaW5jbHVkZSAi
V2ViQ29udGV4dENsaWVudC5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRDb25uZWN0aW9uQ2xpZW50
LmgiCkBAIC0zMTMsOSArMzEzLDkgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0TmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKFJlZjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4mJik7CiAKICAgICB2b2lkIGVuc3VyZURhdGFi
YXNlUHJvY2Vzc0FuZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZSogcmVsZXZhbnRE
YXRhU3RvcmUpOwotICAgIFN0b3JhZ2VQcm9jZXNzUHJveHkqIGRhdGFiYXNlUHJvY2VzcygpIHsg
cmV0dXJuIG1fZGF0YWJhc2VQcm9jZXNzLmdldCgpOyB9CisgICAgRGF0YWJhc2VQcm9jZXNzUHJv
eHkqIGRhdGFiYXNlUHJvY2VzcygpIHsgcmV0dXJuIG1fZGF0YWJhc2VQcm9jZXNzLmdldCgpOyB9
CiAgICAgdm9pZCBnZXREYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKFJlZjxNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpHZXREYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+
JiYpOwotICAgIHZvaWQgZGF0YWJhc2VQcm9jZXNzQ3Jhc2hlZChTdG9yYWdlUHJvY2Vzc1Byb3h5
Kik7CisgICAgdm9pZCBkYXRhYmFzZVByb2Nlc3NDcmFzaGVkKERhdGFiYXNlUHJvY2Vzc1Byb3h5
Kik7CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBib29sIHByb2Nlc3NTdXBwcmVzc2lvbkVu
YWJsZWQoKSBjb25zdDsKQEAgLTU0OSw3ICs1NDksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9j
YW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbjsKICAgICBib29sIG1fZGlkTmV0d29y
a1Byb2Nlc3NDcmFzaDsKICAgICBSZWZQdHI8TmV0d29ya1Byb2Nlc3NQcm94eT4gbV9uZXR3b3Jr
UHJvY2VzczsKLSAgICBSZWZQdHI8U3RvcmFnZVByb2Nlc3NQcm94eT4gbV9kYXRhYmFzZVByb2Nl
c3M7CisgICAgUmVmUHRyPERhdGFiYXNlUHJvY2Vzc1Byb3h5PiBtX2RhdGFiYXNlUHJvY2VzczsK
IAogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxEaWN0aW9uYXJ5Q2FsbGJhY2s+PiBtX2Rp
Y3Rpb25hcnlDYWxsYmFja3M7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFN0YXRpc3Rp
Y3NSZXF1ZXN0Pj4gbV9zdGF0aXN0aWNzUmVxdWVzdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDMw
MGI1YmZlNmU4MWMxMWQxYWQ4ZDc5MzJmZjhjMzEzZjU0OWQ5MWMuLjMwN2M4YzQxMDMyNGQzODc1
NDM4MjZlMDUyODAyYjE1MTYwNTU3OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0yOCw5ICsyOCw5
IEBACiAKICNpbmNsdWRlICJBUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRl
ICJBUElXZWJzaXRlRGF0YVJlY29yZC5oIgorI2luY2x1ZGUgIkRhdGFiYXNlUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJTdG9yYWdlTWFuYWdlci5oIgotI2luY2x1ZGUgIlN0b3JhZ2VQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCiAjaW5j
bHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIK
QEAgLTEzMTUsMTEgKzEzMTUsMTEgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjplbmFibGVSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzQW5kU2V0VGVzdGluZ0NhbGxiYWNrKEZ1bmN0aW8KICAgICAgICAg
cHJvY2Vzc1Bvb2wtPnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogfQog
Ci1TdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpkYXRh
YmFzZVByb2Nlc3NQYXJhbWV0ZXJzKCkKK0RhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyBXZWJzaXRlRGF0YVN0b3JlOjpkYXRhYmFzZVByb2Nlc3NQYXJhbWV0ZXJzKCkKIHsKICAgICBy
ZXNvbHZlRGlyZWN0b3JpZXNJZk5lY2Vzc2FyeSgpOwogCi0gICAgU3RvcmFnZVByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMgcGFyYW1ldGVyczsKKyAgICBEYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMgcGFyYW1ldGVyczsKIAogICAgIHBhcmFtZXRlcnMuc2Vzc2lvbklEID0gbV9zZXNz
aW9uSUQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCBiNTQ5MjJjZTI5OGQzZjBiNjNlMjk1NjYyYjU4OGIy
ODQwMzIzZWE2Li44ZTc3NDllZDJhZDUxYTkyZGJkMjJjZGIwYzEyNDBhYTBlZGM1ODhiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5oCkBAIC01NCw3ICs1NCw3IEBAIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogY2xhc3Mg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOwogZW51bSBjbGFzcyBXZWJzaXRlRGF0YUZl
dGNoT3B0aW9uOwogZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5cGU7Ci1zdHJ1Y3QgU3RvcmFnZVBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CitzdHJ1Y3QgRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzOwogc3RydWN0IFdlYnNpdGVEYXRhUmVjb3JkOwogc3RydWN0IFdlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzOwogCkBAIC0xMjEsNyArMTIxLDcgQEAgcHVibGljOgogICAgIGJvb2wg
aXNBc3NvY2lhdGVkUHJvY2Vzc1Bvb2woV2ViUHJvY2Vzc1Bvb2wmKSBjb25zdDsKIAogICAgIFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIHBhcmFtZXRlcnMoKTsKLSAgICBTdG9yYWdlUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyBkYXRhYmFzZVByb2Nlc3NQYXJhbWV0ZXJzKCk7CisgICAgRGF0
YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIGRhdGFiYXNlUHJvY2Vzc1BhcmFtZXRlcnMo
KTsKIAogICAgIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IHBlbmRpbmdDb29raWVzKCkgY29uc3Q7
CiAgICAgdm9pZCBhZGRQZW5kaW5nQ29va2llKGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzM3
NWYxYzQ2MDM4ZGUyN2M4NjRkNTgyNjMyOWM0ZTQxNDhmMDZhNC4uZWJjYTZlOTU5Yjc3ZjZkMzVl
NTc2YTY3YTM2ZWU3NzRmMWQxMTUzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05MTUsNiArOTE1LDEwIEBACiAJCTRBM0NDMThGMTlC
MDdCOEEwMEQxNEFFRiAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEYzNjE5QUY3QUMzMDAy
RUJBQjUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTRGNjAxNDMyMTU1QzVBQTIwMDFGQkRF
MCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0RjYwMTQzMDE1NUM1QTMyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNw
b25zZU1hcC5oICovOyB9OwogCQk1MTAyMUU5QzEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4
dE1lbnVDbGllbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRN
YWMubW0gKi87IH07CisJCTUxMDMyRjE4MTgwRjczQkIwMDk2MUJCNyAvKiBXZWJUb0RhdGFiYXNl
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTEwMzJGMTYxODBGNzNCQjAwOTYxQkI3IC8qIFdlYlRvRGF0YWJhc2VQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgKi87IH07CisJCTUxMDMyRjE5MTgwRjczQkIwMDk2MUJCNyAvKiBX
ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDMyRjE3MTgwRjczQkIwMDk2MUJCNyAvKiBXZWJUb0Rh
dGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLzsgfTsKKwkJNTEwMzJGMUQxODBGNzkxNzAwOTYx
QkI3IC8qIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTAzMkYxQjE4
MEY3OTE3MDA5NjFCQjcgLyogRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLzsgfTsKKwkJNTEwMzJGMUUxODBGNzkxNzAwOTYxQkI3IC8qIERhdGFiYXNl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTAzMkYxQzE4MEY3OTE3MDA5NjFCQjcgLyogRGF0YWJh
c2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLzsgfTsKIAkJNTEwNEY1QTIxRjE5
RDdEMjAwNENGODIxIC8qIENvb2tpZVN0b3JhZ2VVdGlsc0NGLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwNEY1QTExRjE5RDdDRjAwNENGODIxIC8q
IENvb2tpZVN0b3JhZ2VVdGlsc0NGLm1tICovOyB9OwogCQk1MTA1MjM2RjFDNzM5RDQyMDA3OTkz
Q0IgLyogV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDUyMzZEMUM3MzkzRTkwMDc5OTNDQiAvKiBXZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQuY3BwICovOyB9OwogCQk1MTA1MjM3MDFDNzM5RDQyMDA3OTkz
Q0IgLyogV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTA1MjM2RTFDNzM5M0U5MDA3OTkzQ0IgLyogV2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50LmggKi87IH07CkBAIC05MzMsMTYgKzkzNyw2IEBACiAJCTUxMEZC
QjlCMTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBGQkI5OTEyODhDOTVFMDBB
RkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oICovOyB9OwogCQk1MTEwQUUwQzEzM0Mx
NkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExMEFFMEExMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNv
bkRhdGFiYXNlLmNwcCAqLzsgfTsKIAkJNTExMEFFMEQxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNv
bkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTEwQUUwQjEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk1MTE4RTk5QjFGMjk1MjY2
MDAzRUY5RjUgLyogV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5OTkxRjI5NTI1OTAwM0VG
OUY1IC8qIFdlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLzsgfTsKLQkJNTExOEU5
OUMxRjI5NTI2NjAwM0VGOUY1IC8qIFdlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTk5QTFGMjk1
MjU5MDAzRUY5RjUgLyogV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLzsgfTsKLQkJ
NTExOEU5QTAxRjI5NTMyNjAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MThFOTlFMUYyOTUzMUYwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAgKi87IH07Ci0JCTUxMThFOUExMUYyOTUzMjYwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTExOEU5OUYxRjI5NTMxRjAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmggKi87IH07Ci0JCTUxMThFOUE4MUYyOTU5NzcwMDNFRjlGNSAvKiBT
dG9yYWdlUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTlBNTFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFn
ZVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwotCQk1MTE4RTlBOTFGMjk1OTc3MDAz
RUY5RjUgLyogU3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3Jh
Z2VQcm9jZXNzTWVzc2FnZXMuaCAqLzsgfTsKLQkJNTExOEU5QUExRjI5NTk3NzAwM0VGOUY1IC8q
IFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTcxRjI5NTk2MzAwM0VGOUY1IC8q
IFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwotCQk1MTE4RTlB
QjFGMjk1OTc3MDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTE4RTlBMjFGMjk1OTYz
MDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi87IH07Ci0JCTUxMThF
OUFDMUYyOTU5NzcwMDNFRjlGNSAvKiBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTE4RTlBMzFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwotCQk1MTE4RTlBRDFGMjk1OTc3MDAzRUY5
RjUgLyogU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExOEU5QTQxRjI5NTk2MzAwM0VG
OUY1IC8qIFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLzsgfTsKIAkJ
NTExRjdENDExRUIxQkNGNTAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGN0Q0MDFF
QjFCQ0VFMDBFNDdCODMgLyogV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCAqLzsgfTsKIAkJ
NTExRjdENDIxRUIxQkNGODAwRTQ3QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUY3RDNG
MUVCMUJDRUUwMEU0N0I4MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5jcHAgKi87IH07
CiAJCTUxMUY4QTdCMTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUY4QTc3MTM4QjQ2
MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkuaCAqLzsgfTsKQEAgLTk2MCw2ICs5NTQs
MTAgQEAKIAkJNTEyOTM1RDgxMjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRNZW51SXRlbS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyOTM1RDYx
Mjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRNZW51SXRlbS5oICovOyB9OwogCQk1MTI5MzVF
MzEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyOTM1
RTExMjg4RDk3ODAwQTRCNjk1IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50
LmNwcCAqLzsgfTsKIAkJNTEyOTM1RTQxMjg4RDk3ODAwQTRCNjk1IC8qIEluamVjdGVkQnVuZGxl
UGFnZUNvbnRleHRNZW51Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTI5MzVFMjEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQ
YWdlQ29udGV4dE1lbnVDbGllbnQuaCAqLzsgfTsKKwkJNTEyQTk3NjAxODBFMDMxRDAwMzlBMTQ5
IC8qIERhdGFiYXNlUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJBOTc1RTE4MEUwMzE2MDAzOUExNDkgLyog
RGF0YWJhc2VQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJNTEyQTk3NjExODBF
MDMxRDAwMzlBMTQ5IC8qIERhdGFiYXNlUHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJBOTc1RjE4MEUwMzE2MDAzOUExNDkg
LyogRGF0YWJhc2VQcm9jZXNzTWVzc2FnZXMuaCAqLzsgfTsKKwkJNTEyQTk3NjkxODBFMDlCODAw
MzlBMTQ5IC8qIERhdGFiYXNlUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkE5NzY3MTgwRTA5Qjgw
MDM5QTE0OSAvKiBEYXRhYmFzZVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07
CisJCTUxMkE5NzZBMTgwRTA5QjgwMDM5QTE0OSAvKiBEYXRhYmFzZVByb2Nlc3NQcm94eU1lc3Nh
Z2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJB
OTc2ODE4MEUwOUI4MDAzOUExNDkgLyogRGF0YWJhc2VQcm9jZXNzUHJveHlNZXNzYWdlcy5oICov
OyB9OwogCQk1MTJFMzRFNDEzMEI0RDA1MDBBQkQxOUEgLyogV0tBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTdBMzNCMzEzMEIzMDhDMDBGODBDQjUgLyogV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAg
Ki87IH07CiAJCTUxMkUzNEU1MTMwQjREMDUwMEFCRDE5QSAvKiBXS0FwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTdBMzNCNDEzMEIzMDhDMDBGODBDQjUgLyogV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMkY1ODk2
MTJBODgzODgwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkY1ODhFMTJBODgz
ODgwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmNwcCAqLzsgfTsKQEAg
LTEwMDUsNiArMTAwMyw4IEBACiAJCTUxNUJFMUI3MUQ1QTk0RkQwMEREN0M2OCAvKiBVSUdhbWVw
YWRQcm92aWRlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxNUJFMUI2MUQ1QTk0RjkwMEREN0M2OCAvKiBVSUdhbWVwYWRQcm92aWRlck1hYy5t
bSAqLzsgfTsKIAkJNTE1RTc3MjcxODNERDZGNjAwMDcyMDNGIC8qIEFzeW5jUmVxdWVzdC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTVFNzcyNTE4
M0RENkY2MDAwNzIwM0YgLyogQXN5bmNSZXF1ZXN0LmNwcCAqLzsgfTsKIAkJNTE1RTc3MjgxODNE
RDZGNjAwMDcyMDNGIC8qIEFzeW5jUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTE1RTc3MjYxODNERDZGNjAwMDcyMDNGIC8qIEFzeW5jUmVx
dWVzdC5oICovOyB9OworCQk1MTVFNzcyQjE4NDAwOEI5MDAwNzIwM0YgLyogRGF0YWJhc2VQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxNUU3NzI5MTg0MDA4QjkwMDA3MjAzRiAvKiBEYXRhYmFzZVByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwICovOyB9OworCQk1MTVFNzcyQzE4NDAwOEI5MDAwNzIw
M0YgLyogRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTVFNzcyQTE4NDAwOEI5MDAwNzIwM0Yg
LyogRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi87IH07CiAJCTUxNjBCRkUx
MTMzODFERjkwMDkxODk5OSAvKiBMb2dnaW5nRm91bmRhdGlvbi5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNjBCRkUwMTMzODFERjkwMDkxODk5OSAv
KiBMb2dnaW5nRm91bmRhdGlvbi5tbSAqLzsgfTsKIAkJNTE2MzE5OTIxNjI4OTgwQTAwRTIyRjAw
IC8qIE5ldHdvcmtQcm9jZXNzUHJveHlNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTYzMTk5MTE2Mjg5ODBBMDBFMjJGMDAgLyogTmV0d29ya1By
b2Nlc3NQcm94eU1hYy5tbSAqLzsgfTsKIAkJNTE2MzE5OTQxNjI4OUE2MDAwRTIyRjAwIC8qIE5l
dHdvcmtQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQUNDOTM0MTYyODA2NDgwMDM0MjU1MCAvKiBOZXR3b3Jr
UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CkBAIC0xMDE3LDggKzEwMTcsOCBAQAog
CQk1MTc5NTU2RTE2Mjg3N0IzMDBGQTQzQjYgLyogTmV0d29ya1Byb2Nlc3NQcm94eS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwQ0M3RUIxNjEzOEU3
MjAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzUHJveHkuaCAqLzsgfTsKIAkJNTE3Q0YwRTMxNjNB
NDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdDRjBF
MTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLzsgfTsKIAkJNTE3Q0YwRTQxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTdDRjBFMjE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uTWVzc2FnZXMuaCAqLzsgfTsKLQkJNTE3REQ1QkUxODBEQTdEMzAwODE2NjBCIC8q
IFN0b3JhZ2VQcm9jZXNzUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTE3REQ1QkMxODBEQTdEMzAwODE2NjBCIC8qIFN0b3JhZ2VQcm9jZXNz
UHJveHkuY3BwICovOyB9OwotCQk1MTdERDVCRjE4MERBN0QzMDA4MTY2MEIgLyogU3RvcmFnZVBy
b2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTE3REQ1QkQxODBEQTdEMzAwODE2NjBCIC8qIFN0b3JhZ2VQcm9jZXNzUHJveHkuaCAqLzsg
fTsKKwkJNTE3REQ1QkUxODBEQTdEMzAwODE2NjBCIC8qIERhdGFiYXNlUHJvY2Vzc1Byb3h5LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0RENUJD
MTgwREE3RDMwMDgxNjYwQiAvKiBEYXRhYmFzZVByb2Nlc3NQcm94eS5jcHAgKi87IH07CisJCTUx
N0RENUJGMTgwREE3RDMwMDgxNjYwQiAvKiBEYXRhYmFzZVByb2Nlc3NQcm94eS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3REQ1QkQxODBEQTdEMzAw
ODE2NjBCIC8qIERhdGFiYXNlUHJvY2Vzc1Byb3h5LmggKi87IH07CiAJCTUxODNEREVDMTYzMEJE
RkMwMDhCRTVDNyAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwNUIwRDQxNjJGN0E3QTAwRTI3NzA5
IC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi87IH07CiAJCTUxODcxQjVCMTI3Q0I4
OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTg3MUI1OTEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29u
dGV4dE1lbnUuY3BwICovOyB9OwogCQk1MTg3MUI1QzEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29u
dGV4dE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxODcxQjVBMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5oICovOyB9OwpAQCAt
MTA0OSw3ICsxMDQ5LDYgQEAKIAkJNTFCMTVBODUxMzg0M0EzOTAwMzIxQUQ4IC8qIEVudmlyb25t
ZW50VXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MUIxNUE4MzEzODQzQTM5MDAzMjFBRDggLyogRW52aXJvbm1lbnRVdGlsaXRpZXMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUMwQzk3
NDFEREQ3NjAwMDAzMkNBRDMgLyogSWNvbkxvYWRpbmdEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFDMEM5NzIxRERENzRGMDAwMzJDQUQz
IC8qIEljb25Mb2FkaW5nRGVsZWdhdGUuaCAqLzsgfTsKIAkJNTFDMEM5NzUxRERENzYwMzAwMzJD
QUQzIC8qIEljb25Mb2FkaW5nRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MUMwQzk3MzFEREQ3NEYwMDAzMkNBRDMgLyogSWNvbkxvYWRp
bmdEZWxlZ2F0ZS5tbSAqLzsgfTsKLQkJNTFDM0IyODcxRjJBNjRDNTAwMTQyN0ZGIC8qIGNvbS5h
cHBsZS5XZWJLaXQuU3RvcmFnZS5zYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTFDM0IyODYxRjJBNjRBRTAwMTQyN0ZGIC8qIGNvbS5hcHBsZS5XZWJL
aXQuU3RvcmFnZS5zYiAqLzsgfTsKIAkJNTFDRDFDNUQxQjM0OTNBRjAwMTQyQ0E1IC8qIFdLU2Vj
dXJpdHlPcmlnaW5SZWYuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTFDRDFDNTkxQjM0OTNBOTAwMTQyQ0E1IC8qIFdLU2VjdXJpdHlPcmlnaW5SZWYu
Y3BwICovOyB9OwogCQk1MUNEMUM1RTFCMzQ5M0I0MDAxNDJDQTUgLyogV0tTZWN1cml0eU9yaWdp
blJlZi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFD
RDFDNUExQjM0OTNBOTAwMTQyQ0E1IC8qIFdLU2VjdXJpdHlPcmlnaW5SZWYuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUNEMUM2NTFCMzRCOUQ0
MDAxNDJDQTUgLyogV0tTZWN1cml0eU9yaWdpbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTFDRDFDNUYxQjM0QjlDOTAwMTQyQ0E1IC8qIFdLU2VjdXJp
dHlPcmlnaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07
CkBAIC0xMDc1LDEwICsxMDc0LDEwIEBACiAJCTUxREQ5RjI5MTYzNjdEQTIwMDE1NzhFOSAvKiBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUREOUYyNzE2MzY3REEyMDAxNTc4RTkgLyog
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oICovOyB9OwogCQk1MUUzNTFD
QTE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTM1MUM4MTgwRjJDQ0MwMEU1M0JFOSAvKiBJ
REJVdGlsaXRpZXMuY3BwICovOyB9OwogCQk1MUUzNTFDQjE4MEYyQ0NDMDBFNTNCRTkgLyogSURC
VXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MUUzNTFDOTE4MEYyQ0NDMDBFNTNCRTkgLyogSURCVXRpbGl0aWVzLmggKi87IH07Ci0JCTUx
RTM1MUZGMTgwRjVEMEYwMEU1M0JFOSAvKiBTdG9yYWdlUHJvY2Vzcy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUzNTFGQTE4MEY1RDBCMDBFNTNC
RTkgLyogU3RvcmFnZVByb2Nlc3MuY3BwICovOyB9OwotCQk1MUUzNTIwMDE4MEY1RDBGMDBFNTNC
RTkgLyogU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzUxRkQxODBGNUQwQjAwRTUzQkU5IC8q
IFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLzsgfTsKLQkJNTFFMzUyMDIxODBG
NUQxRTAwRTUzQkU5IC8qIFN0b3JhZ2VQcm9jZXNzTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzUyMDExODBGNUQxRTAwRTUzQkU5IC8qIFN0
b3JhZ2VQcm9jZXNzTWFjLm1tICovOyB9OwotCQk1MUUzNTIwOTE4MEY1RDZCMDBFNTNCRTkgLyog
U3RvcmFnZVNlcnZpY2VFbnRyeVBvaW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTFFMzUyMDgxODBGNUQ2QjAwRTUzQkU5IC8qIFN0b3JhZ2VTZXJ2
aWNlRW50cnlQb2ludC5tbSAqLzsgfTsKKwkJNTFFMzUxRkYxODBGNUQwRjAwRTUzQkU5IC8qIERh
dGFiYXNlUHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MUUzNTFGQTE4MEY1RDBCMDBFNTNCRTkgLyogRGF0YWJhc2VQcm9jZXNzLmNwcCAq
LzsgfTsKKwkJNTFFMzUyMDAxODBGNUQwRjAwRTUzQkU5IC8qIERhdGFiYXNlVG9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MUUzNTFGRDE4MEY1RDBCMDBFNTNCRTkgLyogRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcCAqLzsgfTsKKwkJNTFFMzUyMDIxODBGNUQxRTAwRTUzQkU5IC8qIERhdGFiYXNl
UHJvY2Vzc01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxRTM1MjAxMTgwRjVEMUUwMEU1M0JFOSAvKiBEYXRhYmFzZVByb2Nlc3NNYWMubW0gKi87
IH07CisJCTUxRTM1MjA5MTgwRjVENkIwMEU1M0JFOSAvKiBEYXRhYmFzZVNlcnZpY2VFbnRyeVBv
aW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFF
MzUyMDgxODBGNUQ2QjAwRTUzQkU5IC8qIERhdGFiYXNlU2VydmljZUVudHJ5UG9pbnQubW0gKi87
IH07CiAJCTUxRTM5OTA2MUQ2RjU0QzcwMDlDODgzMSAvKiBVSUdhbWVwYWRQcm92aWRlckNvY29h
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzk5
MDUxRDZGNTRDNTAwOUM4ODMxIC8qIFVJR2FtZXBhZFByb3ZpZGVyQ29jb2EubW0gKi87IH07CiAJ
CTUxRTZDMTYwMUYyOTM1NjAwMEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lz
dGVudFN0b3JhZ2VJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MUU2QzE1RjFGMjkzNTUxMDBGRDM0MzcgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1BlcnNpc3RlbnRTdG9yYWdlSU9TLm1tICovOyB9OwogCQk1MUU2QzE2MzFGMjkzNUQ4MDBGRDM0
MzcgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTZDMTYyMUYyOTM1Q0Qw
MEZEMzQzNyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuY3BwICov
OyB9OwpAQCAtMTQ3OSw3ICsxNDc4LDcgQEAKIAkJQTVEMzUwNEMxRDc1MjExNjAwNTEyNEE5IC8q
IFdLV2ViSW5zcGVjdG9yV0tXZWJWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTVEMzUwNEExRDc1MjExNjAwNTEyNEE5IC8qIFdLV2ViSW5zcGVj
dG9yV0tXZWJWaWV3Lm1tICovOyB9OwogCQlBNUQzNTA0RTFENzhGNUIzMDA1MTI0QTkgLyogUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHlNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNUQzNTA0RDFENzhGMEQyMDA1MTI0QTkgLyogUmVtb3RlV2ViSW5z
cGVjdG9yUHJveHlNYWMubW0gKi87IH07CiAJCUE1RUZEMzhDMTZCMEU4OEMwMEIyRjBFOCAvKiBX
S1BhZ2VWaXNpYmlsaXR5VHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE1RUZEMzhCMTZCMEU4OEMwMEIyRjBFOCAvKiBXS1BhZ2VWaXNpYmlsaXR5
VHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQlBNzhDQ0REQTE5M0FDOUY0MDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNi
IGluIENvcHlGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzhDQ0RE
NzE5M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiICovOyB9Owor
CQlBNzhDQ0REQTE5M0FDOUY0MDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXMu
c2IgaW4gQ29weUZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3OEND
REQ3MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlcy5zYiAqLzsg
fTsKIAkJQTc4Q0NEREIxOTNBQzlGODAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29y
a2luZy5zYiBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTc4Q0NERDgxOTNBQzlFMzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5z
YiAqLzsgfTsKIAkJQTc4Q0NEREMxOTNBQzlGQjAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQu
V2ViQ29udGVudC5zYiBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTc4Q0NERDkxOTNBQzlFMzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29u
dGVudC5zYiAqLzsgfTsKIAkJQTdENzkyRDYxNzY3Q0I2RTAwODgxQ0JFIC8qIEFjdGl2aXR5QXNz
ZXJ0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3RDc5MkQ1MTc2N0NCNkUwMDg4MUNCRSAvKiBBY3Rpdml0eUFzc2VydGlvbi5jcHAgKi87IH07
CkBAIC0xOTUzLDcgKzE5NTIsOCBAQAogCQlEM0I5NDg0OTExRkY0QjY1MDAwMzJCMzkgLyogV2Vi
U2VhcmNoUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBEM0I5NDg0NTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51Lmgg
Ki87IH07CiAJCURGNThDNjM2MTM3MUFDQTAwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50
TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREY1
OEM2MzUxMzcxQUNBMDAwRjlBMzdDIC8qIE5hdGl2ZVdlYldoZWVsRXZlbnRNYWMubW0gKi87IH07
CiAJCUUxMDVGRTU0MThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMDVGRTUzMThEN0I5REUwMDhG
NTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCAqLzsgfTsKLQkJRTExNUM3MTQxOTBGODlFNDAwRUNDNTE2
IC8qIFN0b3JhZ2VQcm9jZXNzSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTFGRUYzOUMxOTBGNzkxQzAwNzMxNjU4IC8qIFN0b3JhZ2VQcm9jZXNz
SU9TLm1tICovOyB9OworCQlFMTE1QzcxNDE5MEY4OUU0MDBFQ0M1MTYgLyogRGF0YWJhc2VQcm9j
ZXNzSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFGRUYzOUMxOTBGNzkxQzAwNzMxNjU4IC8qIERhdGFiYXNlUHJvY2Vzc0lPUy5tbSAqLzsgfTsK
KwkJRTExNUM3MTYxOTBGOEEyNTAwRUNDNTE2IC8qIGNvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2Vz
LnNiIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTE1
QzcxNTE5MEY4QTI1MDBFQ0M1MTYgLyogY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXMuc2IgKi87
IH07CiAJCUUxMUQzNUFFMTZCNjNEMUIwMDZEMjNENyAvKiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5z
YiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE5NjdF
MzcxNTBBQjVFMjAwQzczMTY5IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiICovOyB9OwogCQlF
MTRBOTU0OTE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE0
QTk1NDcxNkUwMTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcCAqLzsgfTsKIAkJRTE0QTk1NEExNkUwMTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNz
UGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMTRBOTU0ODE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0
Zm9ybVN0cmF0ZWdpZXMuaCAqLzsgfTsKQEAgLTIxODgsOCArMjE4OCw4IEBACiAJCQlkc3RQYXRo
ID0gIiQoSU5TVEFMTF9QQVRIKSI7CiAJCQlkc3RTdWJmb2xkZXJTcGVjID0gMDsKIAkJCWZpbGVz
ID0gKAorCQkJCUE3OENDRERBMTkzQUM5RjQwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0LkRh
dGFiYXNlcy5zYiBpbiBDb3B5RmlsZXMgKi8sCiAJCQkJQTc4Q0NEREIxOTNBQzlGODAwNUVDQzI1
IC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYiBpbiBDb3B5RmlsZXMgKi8sCi0JCQkJ
QTc4Q0NEREExOTNBQzlGNDAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYiBp
biBDb3B5RmlsZXMgKi8sCiAJCQkJQTc4Q0NEREMxOTNBQzlGQjAwNUVDQzI1IC8qIGNvbS5hcHBs
ZS5XZWJLaXQuV2ViQ29udGVudC5zYiBpbiBDb3B5RmlsZXMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC0zMTQ1LDcgKzMxNDUsMTEgQEAK
IAkJNEY2MDE0MzAxNTVDNUEzMjAwMUZCREUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvY2tpbmdSZXNwb25zZU1hcC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTAwMzFGNjEzNzlDQUNCMDBDOERGRTQgLyogU2Vj
SXRlbVNoaW0uZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxl
VHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGgg
PSBTZWNJdGVtU2hpbS5keWxpYjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
IAkJNTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29udGV4dE1lbnVD
bGllbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxMDMyRjFBMTgwRjc0
RjEwMDk2MUJCNyAvKiBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEwMzJGMTYxODBGNzNCQjAwOTYxQkI3IC8qIFdlYlRvRGF0
YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1MTAzMkYxNzE4MEY3M0JCMDA5NjFCQjcgLyogV2ViVG9EYXRhYmFz
ZVByb2Nlc3NDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MTAzMkYxQTE4MEY3NEYxMDA5NjFCQjcgLyogRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEwMzJGMUIxODBGNzkx
NzAwOTYxQkI3IC8qIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRhYmFzZVRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1MTAzMkYxQzE4MEY3OTE3MDA5NjFCQjcgLyogRGF0YWJhc2VUb1dlYlByb2Nl
c3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTEwNEY1QTExRjE5RDdDRjAwNENGODIxIC8qIENvb2tpZVN0b3JhZ2VV
dGlsc0NGLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29va2ll
U3RvcmFnZVV0aWxzQ0YubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDUyMzZE
MUM3MzkzRTkwMDc5OTNDQiAvKiBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwNTIzNkUxQzczOTNFOTAwNzk5M0NC
IC8qIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTMxNzEsMTYgKzMxNzUsNiBAQAogCQk1MTBGQkI5OTEyODhDOTVFMDBBRkZERjQg
LyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxMTBBRTBBMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0ljb25EYXRhYmFzZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMTBBRTBCMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0lj
b25EYXRhYmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0ljb25EYXRh
YmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MTE4RTk5OTFGMjk1MjU5MDAz
RUY5RjUgLyogV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk1MTE4RTk5QTFGMjk1MjU5MDAzRUY5RjUgLyogV2ViVG9TdG9yYWdlUHJv
Y2Vzc0Nvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5l
Y3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTExOEU5OUUxRjI5NTMxRjAw
M0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFN0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTExOEU5OUYxRjI5NTMxRjAwM0VGOUY1IC8qIFN0b3JhZ2VQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxMThF
OUEyMUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTUxMThFOUEzMUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
dG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxMThFOUE0MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNTExOEU5QTUxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VQcm9jZXNzTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTExOEU5QTYxRjI5NTk2MzAw
M0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFn
ZVByb2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MTE4RTlB
NzFGMjk1OTYzMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRjdEM0YxRUIxQkNFRTAwRTQ3
QjgzIC8qIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRjdENDAxRUIxQkNFRTAwRTQ3QjgzIC8qIFdlYnNp
dGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxMUY4QTc3MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU2VjSXRlbVNoaW1MaWJyYXJ5Lmg7IHBhdGgg
PSAuLi8uLi9XZWJQcm9jZXNzL21hYy9TZWNJdGVtU2hpbUxpYnJhcnkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTMxOTgsNyArMzE5MiwxMSBAQAogCQk1MTI5MzVENjEyODhEMTk0
MDBBNEI2OTUgLyogV2ViQ29udGV4dE1lbnVJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkNvbnRleHRNZW51SXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MTI5MzVFMTEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4
dE1lbnVDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5q
ZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTI5MzVFMjEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdl
Q29udGV4dE1lbnVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5q
ZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNTEyQTk3NjYxODBFMDVEMjAwMzlBMTQ5IC8qIFN0b3JhZ2VQcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gU3RvcmFnZVByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEyQTk3NUUxODBFMDMxNjAwMzlBMTQ5IC8qIERhdGFi
YXNlUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRhYmFz
ZVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk1MTJBOTc1RjE4MEUwMzE2MDAzOUExNDkgLyogRGF0YWJhc2VQcm9jZXNzTWVzc2FnZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRGF0YWJhc2VQcm9jZXNzTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTEyQTk3NjYxODBFMDVEMjAwMzlBMTQ5IC8qIERhdGFiYXNlUHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IERhdGFiYXNlUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmlu
OyBwYXRoID0gRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTJBOTc2NzE4MEUwOUI4MDAzOUExNDkgLyogRGF0
YWJhc2VQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gRGF0YWJhc2VQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTJBOTc2ODE4MEUwOUI4MDAzOUExNDkg
LyogRGF0YWJhc2VQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEYXRhYmFzZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxMkY1ODhFMTJBODgzODgwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTJGNTg4RjEyQTg4Mzg4MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkY1ODkw
MTJBODgzODgwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRpb25EZWNpc2lv
bkxpc3RlbmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyNDUsNiArMzI0
Myw4IEBACiAJCTUxNUJFMUI2MUQ1QTk0RjkwMEREN0M2OCAvKiBVSUdhbWVwYWRQcm92aWRlck1h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFVJR2FtZXBhZFBy
b3ZpZGVyTWFjLm1tOyBwYXRoID0gVUlQcm9jZXNzL0dhbWVwYWQvbWFjL1VJR2FtZXBhZFByb3Zp
ZGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTUxNUU3NzI1MTgzREQ2
RjYwMDA3MjAzRiAvKiBBc3luY1JlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQXN5bmNSZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTE1RTc3MjYxODNERDZGNjAwMDcyMDNGIC8qIEFzeW5jUmVxdWVzdC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBc3luY1JlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTE1RTc3MjkxODQwMDhCOTAwMDcyMDNGIC8qIERhdGFiYXNlUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBEYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1MTVFNzcyQTE4NDAwOEI5MDAwNzIwM0YgLyogRGF0YWJhc2VQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERh
dGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTYwQkZFMDEzMzgxREY5MDA5MTg5OTkgLyogTG9nZ2luZ0ZvdW5kYXRpb24ubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2dnaW5nRm91bmRhdGlv
bi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE2MzE5OTExNjI4OTgwQTAwRTIy
RjAwIC8qIE5ldHdvcmtQcm9jZXNzUHJveHlNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc1Byb3h5TWFjLm1tOyBwYXRoID0gbWFjL05l
dHdvcmtQcm9jZXNzUHJveHlNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
NjRDMDk0MUIwNUI3NTcwMDRGMTAyQSAvKiBDaGlsZFByb2Nlc3MubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gQ2hpbGRQcm9jZXNzLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMzI1Myw4ICszMjUzLDggQEAKIAkJNTE3QTMzQjQxMzBCMzA4QzAw
RjgwQ0I1IC8qIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxN0NGMEUyMTYzQTQ4NkMwMEMyOTUwRSAv
KiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk1MTdERDVCQzE4MERBN0QzMDA4MTY2MEIgLyogU3RvcmFn
ZVByb2Nlc3NQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
dG9yYWdlUHJvY2Vzc1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTE3
REQ1QkQxODBEQTdEMzAwODE2NjBCIC8qIFN0b3JhZ2VQcm9jZXNzUHJveHkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZVByb2Nlc3NQcm94eS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk1MTdERDVCQzE4MERBN0QzMDA4MTY2MEIgLyogRGF0YWJhc2VQ
cm9jZXNzUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRGF0
YWJhc2VQcm9jZXNzUHJveHkuY3BwOyBwYXRoID0gRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1By
b3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE3REQ1QkQxODBEQTdEMzAw
ODE2NjBCIC8qIERhdGFiYXNlUHJvY2Vzc1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IERhdGFiYXNlUHJvY2Vzc1Byb3h5Lmg7IHBhdGggPSBEYXRhYmFzZXMvRGF0YWJh
c2VQcm9jZXNzUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4M0IzOTMx
Mzc5Rjg1QzAwRTg3NTRFIC8qIFNoaW0ueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmln
OyBwYXRoID0gU2hpbS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4
NzFCNTkxMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvbnRleHRNZW51LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTE4NzFCNUExMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRN
ZW51LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRNZW51Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjc1LDcgKzMyNzUsNyBAQAogCQk1MUE1
NTYwMDEyOEM2RDkyMDA5QUJDRUMgLyogV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0NvbnRleHRNZW51SXRlbVR5cGVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTU4NzdFMUQxQzRDQjkwMDRCQTlBRiAvKiBXZWJJ
REJSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViSURC
UmVzdWx0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBNTg3N0YxRDFDNENC
OTAwNEJBOUFGIC8qIFdlYklEQlJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJJREJSZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFBNjBC
MjkxODBDQ0Q5MDAwRjNCRjUwIC8qIFN0b3JhZ2VTZXJ2aWNlLnhjY29uZmlnICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0
aCA9IFN0b3JhZ2VTZXJ2aWNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk1MUE2MEIyOTE4MENDRDkwMDBGM0JGNTAgLyogRGF0YWJhc2VTZXJ2aWNlLnhjY29uZmlnICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2Nv
bmZpZzsgcGF0aCA9IERhdGFiYXNlU2VydmljZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTFBNzI4REMxQjFCQUQyRDAwMTAyRUVFIC8qIFdLQnVuZGxlTmF2aWdhdGlv
bkFjdGlvblByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5k
bGVOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MUE3RjJGMjEyNUJGODIwMDA4QUVCMUQgLyogTG9nZ2luZy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBMb2dnaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxQTdGMkY0MTI1QkY4RDQwMDhBRUIxRCAvKiBMb2dnaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvZ2dpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMzI5OCw3ICszMjk4LDYgQEAKIAkJNTFDMEM5NzkxRERENzg1NDAwMzJDQUQzIC8q
IF9XS0xpbmtJY29uUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBfV0tMaW5rSWNvblBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTFDMEM5N0ExRERENzg1NDAwMzJDQUQzIC8qIF9XS0xpbmtJY29uUGFyYW1ldGVycy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS0xpbmtJY29uUGFyYW1ldGVy
cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFDMEM5N0IxRERENzg1NDAwMzJD
QUQzIC8qIF9XS0xpbmtJY29uUGFyYW1ldGVyc0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IF9XS0xpbmtJY29uUGFyYW1ldGVyc0ludGVybmFsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxQzNCMjg2MUYyQTY0QUUwMDE0MjdGRiAvKiBjb20uYXBw
bGUuV2ViS2l0LlN0b3JhZ2Uuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUM4RTE5QjFGMjE2MTcyMDBCRjczMUIgLyog
V2ViSWNvbkRhdGFiYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkljb25EYXRhYmFzZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUNEMUM1OTFCMzQ5M0E5MDAxNDJDQTUgLyogV0tT
ZWN1cml0eU9yaWdpblJlZi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXS1NlY3VyaXR5T3JpZ2luUmVmLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTFDRDFDNUExQjM0OTNBOTAwMTQyQ0E1IC8qIFdLU2VjdXJpdHlPcmlnaW5SZWYuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTZWN1cml0eU9yaWdpblJlZi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzMzNCwxNCArMzMzMywxNCBAQAogCQk1MUREOUYyNzE2
MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTM1MUM4
MTgwRjJDQ0MwMEU1M0JFOSAvKiBJREJVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSURCVXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTFFMzUxQzkxODBGMkNDQzAwRTUzQkU5IC8qIElEQlV0aWxpdGllcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJNTFFMzUxRkExODBGNUQwQjAwRTUzQkU5IC8qIFN0b3JhZ2VQcm9j
ZXNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VQcm9jZXNzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFFMzUxRkIxODBGNUQwQjAwRTUzQkU5IC8qIFN0b3JhZ2VQ
cm9jZXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VQcm9jZXNzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTUxRTM1MUZDMTgwRjVEMEIwMEU1M0JFOSAvKiBTdG9yYWdlUHJvY2Vz
cy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBTdG9yYWdlUHJvY2Vzcy5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFFMzUxRkQxODBGNUQwQjAwRTUzQkU5IC8qIFN0b3JhZ2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFF
MzUxRkUxODBGNUQwQjAwRTUzQkU5IC8qIFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxRTM1MjAxMTgwRjVEMUUwMEU1M0JFOSAvKiBTdG9yYWdl
UHJvY2Vzc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFN0
b3JhZ2VQcm9jZXNzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUzNTFG
QTE4MEY1RDBCMDBFNTNCRTkgLyogRGF0YWJhc2VQcm9jZXNzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IERhdGFiYXNlUHJvY2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUx
RTM1MUZCMTgwRjVEMEIwMEU1M0JFOSAvKiBEYXRhYmFzZVByb2Nlc3MuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRGF0YWJhc2VQcm9jZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1
MUZDMTgwRjVEMEIwMEU1M0JFOSAvKiBEYXRhYmFzZVByb2Nlc3MubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
RGF0YWJhc2VQcm9jZXNzLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk1MUUzNTFGRDE4MEY1RDBCMDBFNTNCRTkgLyogRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTM1MUZFMTgwRjVEMEIwMEU1
M0JFOSAvKiBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTUxRTM1MjAxMTgwRjVEMUUwMEU1M0JFOSAvKiBEYXRhYmFzZVByb2Nlc3NNYWMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEYXRhYmFzZVByb2Nlc3NN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTM1MjA3MTgwRjVENjEwMEU1
M0JFOSAvKiBJbmZvLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBJbmZvLnBsaXN0OyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk1MUUzNTIwODE4MEY1RDZCMDBFNTNCRTkgLyogU3RvcmFnZVNl
cnZpY2VFbnRyeVBvaW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gU3RvcmFnZVNlcnZpY2VFbnRyeVBvaW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MUUzNTIwODE4MEY1RDZCMDBFNTNCRTkgLyogRGF0YWJhc2VTZXJ2aWNlRW50cnlQb2lu
dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERhdGFiYXNlU2Vy
dmljZUVudHJ5UG9pbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTM5OTA1
MUQ2RjU0QzUwMDlDODgzMSAvKiBVSUdhbWVwYWRQcm92aWRlckNvY29hLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVUlHYW1lcGFkUHJvdmlkZXJDb2NvYS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFNkMxNUYxRjI5MzU1MTAwRkQzNDM3IC8q
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZUlPUy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgbmFtZSA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZUlPUy5t
bTsgcGF0aCA9IGlvcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2VJT1Mu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTZDMTYxMUYyOTM1Q0QwMEZEMzQz
NyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMzU2LDcgKzMzNTUsNyBAQAogCQk1MUYwNjBERDE2NTQz
MTc1MDBGMzI4MkMgLyogV2ViUlRDUmVzb2x2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViUlRDUmVzb2x2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MUYwNjBERDE2NTQzMTc1MDBGMzI4MkUgLyogTmV0d29ya1JU
Q1Byb3ZpZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtS
VENQcm92aWRlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxRjA2MERFMTY1NDMxNzUwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2Vz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFGN0RDNEExODBDQzkzNjAwMjEyQ0EzIC8qIGNvbS5hcHBs
ZS5XZWJLaXQuU3RvcmFnZS54cGMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGlj
aXRGaWxlVHlwZSA9ICJ3cmFwcGVyLnhwYy1zZXJ2aWNlIjsgaW5jbHVkZUluSW5kZXggPSAwOyBw
YXRoID0gY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnhwYzsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKKwkJNTFGN0RDNEExODBDQzkzNjAwMjEyQ0EzIC8qIGNvbS5hcHBsZS5X
ZWJLaXQuRGF0YWJhc2VzLnhwYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNp
dEZpbGVUeXBlID0gIndyYXBwZXIueHBjLXNlcnZpY2UiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBh
dGggPSBjb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlcy54cGM7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CiAJCTUxRkEyRDU0MTUyMTExODYwMEMxQkEwQiAvKiBXS0J1bmRsZURP
TVdpbmRvd0V4dGVuc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1
bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MUZBMkQ1QTE1MjExQTFFMDBDMUJBMEIgLyogSW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVET01X
aW5kb3dFeHRlbnNpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFGQTJENUMx
NTIxMUE1MDAwQzFCQTBCIC8qIEluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlRE9NV2lu
ZG93RXh0ZW5zaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM3NzgsMTAg
KzM3NzcsMTAgQEAKIAkJQTVEMzUwNEQxRDc4RjBEMjAwNTEyNEE5IC8qIFJlbW90ZVdlYkluc3Bl
Y3RvclByb3h5TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
UmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE1RUZEMzhCMTZCMEU4OEMwMEIyRjBFOCAvKiBXS1BhZ2VWaXNpYmlsaXR5VHlwZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQYWdlVmlzaWJpbGl0eVR5cGVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MkQ1RDdGMTIzNkNCQTgwMEE4OEIxNSAv
KiBBUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUE3OENDREQ3MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0LlN0b3Jh
Z2Uuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBNzhDQ0RENzE5M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktp
dC5EYXRhYmFzZXMuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXMuc2I7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3OENDREQ4MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20u
YXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5OZXR3b3Jr
aW5nLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzhDQ0REOTE5M0FDOUUzMDA1
RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5X
ZWJLaXQuV2ViQ29udGVudC5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTdCRDk4
NjMxOTQ2NTNENDAwRDM1Njk4IC8qIFN0b3JhZ2UtaU9TLmVudGl0bGVtZW50cyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQucGxpc3QuZW50aXRsZW1lbnRzOyBwYXRoID0gIlN0b3JhZ2UtaU9TLmVudGl0bGVtZW50
cyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3QkQ5ODYzMTk0NjUzRDQwMEQzNTY5
OCAvKiBEYXRhYmFzZXMtaU9TLmVudGl0bGVtZW50cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueG1sOyBwYXRo
ID0gIkRhdGFiYXNlcy1pT1MuZW50aXRsZW1lbnRzIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTdENzkyRDQxNzY3Q0IwOTAwODgxQ0JFIC8qIEFjdGl2aXR5QXNzZXJ0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEFjdGl2aXR5QXNzZXJ0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE3RDc5MkQ1MTc2N0NCNkUwMDg4MUNCRSAvKiBBY3Rpdml0eUFzc2VydGlvbi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY3Rpdml0eUFzc2VydGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3RTkzQ0VCMTkyNTMxQUEwMEExREM0
OCAvKiBDaGlsZFByb2Nlc3NJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IG5hbWUgPSBDaGlsZFByb2Nlc3NJT1MubW07IHBhdGggPSBpb3MvQ2hpbGRQcm9jZXNzSU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDI5Miw2ICs0MjkxLDcgQEAKIAkJREY1
OEM2MzExMzcxQUM1ODAwRjlBMzdDIC8qIE5hdGl2ZVdlYldoZWVsRXZlbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0aXZlV2ViV2hlZWxFdmVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlERjU4QzYzNTEzNzFBQ0EwMDBGOUEzN0MgLyogTmF0aXZlV2Vi
V2hlZWxFdmVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IE5hdGl2ZVdlYldoZWVsRXZlbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUxMDVGRTUzMThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRWRpdGluZ1JhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUxMTVDNzE1MTkwRjhBMjUwMEVDQzUxNiAvKiBjb20uYXBwbGUuV2ViS2l0LkRh
dGFiYXNlcy5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0LkRhdGFi
YXNlcy5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEzM0ZEODkxNDIzREQ3RjAw
RkM3QkZCIC8qIFdlYktpdC5pY25zICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gaW1hZ2UuaWNuczsgbmFtZSA9IFdlYktpdC5pY25zOyBwYXRoID0gUmVz
b3VyY2VzL1dlYktpdC5pY25zOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTRBOTU0
NzE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya1Byb2Nlc3NQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTRB
OTU0ODE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya1Byb2Nlc3NQbGF0Zm9y
bVN0cmF0ZWdpZXMuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZv
cm1TdHJhdGVnaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MzM3LDggKzQz
MzcsOCBAQAogCQlFMUU1NTJDMzE2QUUwNjVFMDA0RUQ2NTMgLyogU2FuZGJveEluaXRpYWxpemF0
aW9uUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTYW5kYm94
SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUxRUU1M0RDMTFGOENGOUYwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdl
RWRpdG9yQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1M0U2MTFG
OENGRkIwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9y
Q2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFGRUYzOUExOTBGNzZG
MzAwNzMxNjU4IC8qIGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYi5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBw
bGUuV2ViS2l0LlN0b3JhZ2Uuc2IuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUx
RkVGMzlDMTkwRjc5MUMwMDczMTY1OCAvKiBTdG9yYWdlUHJvY2Vzc0lPUy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFN0b3JhZ2VQcm9jZXNzSU9TLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUZFRjM5QTE5MEY3NkYzMDA3MzE2NTggLyogY29t
LmFwcGxlLldlYktpdC5EYXRhYmFzZXMuc2IuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5EYXRh
YmFzZXMuc2IuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRkVGMzlDMTkwRjc5
MUMwMDczMTY1OCAvKiBEYXRhYmFzZVByb2Nlc3NJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBEYXRhYmFzZVByb2Nlc3NJT1MubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUU0MTNGNTlCMUFDMUFEQjYwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVF
bnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrQ2FjaGVFbnRy
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDEzRjU5RTFBQzFBRjlEMDAzNDUz
NjAgLyogTmV0d29ya0NhY2hlRW50cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTmV0d29ya0NhY2hlRW50cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFNDJFMDYwQjFBQTc0NDBEMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlSU9DaGFubmVsLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDQ2OCw3ICs0NDY4LDcgQEAKIAkJMDM0
NzY4REZGRjM4QTUwNDExREI5QzhCIC8qIFByb2R1Y3RzICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk1MUY3REM0QTE4MENDOTM2MDAyMTJDQTMgLyogY29t
LmFwcGxlLldlYktpdC5TdG9yYWdlLnhwYyAqLywKKwkJCQk1MUY3REM0QTE4MENDOTM2MDAyMTJD
QTMgLyogY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXMueHBjICovLAogCQkJCUJDODI4M0IxMTZC
NEJGNzcwMEEyNzhGRSAvKiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcueHBjICovLAogCQkJ
CUJDODI4M0Y5MTZCNEZEREUwMEEyNzhGRSAvKiBjb20uYXBwbGUuV2ViS2l0LlBsdWdpbi4zMi54
cGMgKi8sCiAJCQkJQkM4Mjg0MUYxNkI0RkRGNjAwQTI3OEZFIC8qIGNvbS5hcHBsZS5XZWJLaXQu
UGx1Z2luLjY0LnhwYyAqLywKQEAgLTQ0OTUsNyArNDQ5NSw3IEBACiAJCQkJMUFBRERGNEIxMEQ4
MkFGMDAwRDNENjNEIC8qIFNoYXJlZCAqLywKIAkJCQlCQzAzMkRDMzEwRjQzODI2MDA1OEMxNUEg
LyogVUlQcm9jZXNzICovLAogCQkJCUJDMDMyRDVDMTBGNDM2RDUwMDU4QzE1QSAvKiBXZWJQcm9j
ZXNzICovLAotCQkJCTUxRjdEQzBBMTgwQ0M0MTEwMDIxMkNBMyAvKiBTdG9yYWdlUHJvY2VzcyAq
LywKKwkJCQk1MUY3REMwQTE4MENDNDExMDAyMTJDQTMgLyogRGF0YWJhc2VQcm9jZXNzICovLAog
CQkJCTUxMENDN0RBMTYxMzhFMDEwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2VzcyAqLywKIAkJCQkx
QTBFQzZCMDEyNEJCRDM2MDA3RUY0QTUgLyogUGx1Z2luUHJvY2VzcyAqLywKIAkJCQlDMENFNzI5
RDEyNDdFNzFEMDBCQzBFQzQgLyogRGVyaXZlZCBTb3VyY2VzICovLApAQCAtNDczMCw2ICs0NzMw
LDggQEAKIAkJCQkxQTRGOTc2QTEwMEU3QjY2MDA2MzdBMTggLyogQmFzZS54Y2NvbmZpZyAqLywK
IAkJCQk1REFENzNGMTExNkZGOTBDMDBFRTUzOTYgLyogQmFzZVRhcmdldC54Y2NvbmZpZyAqLywK
IAkJCQlCQ0FDQzQwRDE2QjBCN0JFMDBCNkUwOTIgLyogQmFzZVhQQ1NlcnZpY2UueGNjb25maWcg
Ki8sCisJCQkJQTdCRDk4NjMxOTQ2NTNENDAwRDM1Njk4IC8qIERhdGFiYXNlcy1pT1MuZW50aXRs
ZW1lbnRzICovLAorCQkJCTUxQTYwQjI5MTgwQ0NEOTAwMEYzQkY1MCAvKiBEYXRhYmFzZVNlcnZp
Y2UueGNjb25maWcgKi8sCiAJCQkJMUE0Rjk3NkIxMDBFN0I2NjAwNjM3QTE4IC8qIERlYnVnUmVs
ZWFzZS54Y2NvbmZpZyAqLywKIAkJCQkxQTRGOTc2QzEwMEU3QjY2MDA2MzdBMTggLyogRmVhdHVy
ZURlZmluZXMueGNjb25maWcgKi8sCiAJCQkJN0MwQkI5QTkxOERDREY1QTAwMDZDMDg2IC8qIE5l
dHdvcmstaU9TLmVudGl0bGVtZW50cyAqLywKQEAgLTQ3NDEsOCArNDc0Myw2IEBACiAJCQkJMzdF
ODNENDAxQjM3RDI3QjAwMjA3OUVFIC8qIFNhbmRib3hQcm9maWxlcy54Y2NvbmZpZyAqLywKIAkJ
CQlBMUVERDJEQzE4ODRCOUI1MDBCQkZFOTggLyogU2VjSXRlbVNoaW0ueGNjb25maWcgKi8sCiAJ
CQkJNTE4M0IzOTMxMzc5Rjg1QzAwRTg3NTRFIC8qIFNoaW0ueGNjb25maWcgKi8sCi0JCQkJQTdC
RDk4NjMxOTQ2NTNENDAwRDM1Njk4IC8qIFN0b3JhZ2UtaU9TLmVudGl0bGVtZW50cyAqLywKLQkJ
CQk1MUE2MEIyOTE4MENDRDkwMDBGM0JGNTAgLyogU3RvcmFnZVNlcnZpY2UueGNjb25maWcgKi8s
CiAJCQkJMUE0Rjk3NkUxMDBFN0I2NjAwNjM3QTE4IC8qIFZlcnNpb24ueGNjb25maWcgKi8sCiAJ
CQkJN0MwQkI5QTgxOERDREU4OTAwMDZDMDg2IC8qIFdlYkNvbnRlbnQtaU9TLmVudGl0bGVtZW50
cyAqLywKIAkJCQkzN0I0MThFQjFDOTYyNEYyMDAzMUU2M0IgLyogV2ViQ29udGVudC1PU1guZW50
aXRsZW1lbnRzICovLApAQCAtNDg5MSw3ICs0ODkxLDYgQEAKIAkJCQlCQzExMUI1QTExMkY2Mjgy
MDAzMzdCQUIgLyogbWFjICovLAogCQkJCTFBQUUwNThDMTI3OURDRDQwMDg1MjQxOCAvKiBQbHVn
aW5zICovLAogCQkJCTBGNTk0N0EwMTg3QjNCNzEwMDQzNzg1NyAvKiBTY3JvbGxpbmcgKi8sCi0J
CQkJNTExOEU5OUQxRjI5NTMxRjAwM0VGOUY1IC8qIFN0b3JhZ2UgKi8sCiAJCQkJMUFCRjQzNzgx
QTM2ODAzNTAwM0ZCMEU2IC8qIFdlYnNpdGVEYXRhICovLAogCQkJCUE3RDc5MkQ1MTc2N0NCNkUw
MDg4MUNCRSAvKiBBY3Rpdml0eUFzc2VydGlvbi5jcHAgKi8sCiAJCQkJQTdENzkyRDQxNzY3Q0Iw
OTAwODgxQ0JFIC8qIEFjdGl2aXR5QXNzZXJ0aW9uLmggKi8sCkBAIC01MTY0LDYgKzUxNjMsNyBA
QAogCQkxQUJDM0RGMjE4OTlFNDE1MDA0RjA2MjYgLyogQ29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTUxN0RENUJCMTgwREE3QzQwMDgxNjYwQiAv
KiBEYXRhYmFzZXMgKi8sCiAJCQkJOTlDODFENTUxQzIwREZCRTAwNUM0QzgyIC8qIEF1dG9tYXRp
b25DbGllbnQuaCAqLywKIAkJCQk5OUM4MUQ1NjFDMjBERkJFMDA1QzRDODIgLyogQXV0b21hdGlv
bkNsaWVudC5tbSAqLywKIAkJCQk5OTBEMjhCNzFDNjUzOUEwMDA5ODY5NzcgLyogQXV0b21hdGlv
blNlc3Npb25DbGllbnQuaCAqLywKQEAgLTU5ODUsMjQgKzU5ODUsNiBAQAogCQkJcGF0aCA9IE5l
dHdvcms7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OwotCQk1MTE4RTk5ODFGMjk1
MjU5MDAzRUY5RjUgLyogU3RvcmFnZSAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hp
bGRyZW4gPSAoCi0JCQkJNTExOEU5OTkxRjI5NTI1OTAwM0VGOUY1IC8qIFdlYlRvU3RvcmFnZVBy
b2Nlc3NDb25uZWN0aW9uLmNwcCAqLywKLQkJCQk1MTE4RTk5QTFGMjk1MjU5MDAzRUY5RjUgLyog
V2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywKLQkJCSk7Ci0JCQlwYXRoID0gU3Rv
cmFnZTsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCTUxMThFOTlEMUYyOTUz
MUYwMDNFRjlGNSAvKiBTdG9yYWdlICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGls
ZHJlbiA9ICgKLQkJCQk1MTE4RTk5RTFGMjk1MzFGMDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwICovLAotCQkJCTUxMThFOTlGMUYyOTUzMUYwMDNFRjlGNSAv
KiBTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oICovLAotCQkJKTsKLQkJCXBhdGgg
PSBTdG9yYWdlOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKIAkJNTExRjhFREEx
ODA4ODE2NjAwNDdEQTk2IC8qIEluZGV4ZWREQiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCkBAIC02MDM2LDYgKzYwMTgsOCBAQAogCQkJCTUxMUY4RURBMTgwODgx
NjYwMDQ3REE5NiAvKiBJbmRleGVkREIgKi8sCiAJCQkJMUFBODNGNkExQTVCNjNGRjAwMDI2RUM2
IC8qIFdlYkRhdGFiYXNlUHJvdmlkZXIuY3BwICovLAogCQkJCTFBQTgzRjZCMUE1QjYzRkYwMDAy
NkVDNiAvKiBXZWJEYXRhYmFzZVByb3ZpZGVyLmggKi8sCisJCQkJNTEwMzJGMTYxODBGNzNCQjAw
OTYxQkI3IC8qIFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8sCisJCQkJNTEw
MzJGMTcxODBGNzNCQjAwOTYxQkI3IC8qIFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5o
ICovLAogCQkJKTsKIAkJCXBhdGggPSBEYXRhYmFzZXM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpAQCAtNjEwNiwyMSArNjA5MCwyMiBAQAogCQkJbmFtZSA9IG1hYzsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07Ci0JCTUxN0RENUJCMTgwREE3QzQwMDgxNjYwQiAvKiBTdG9y
YWdlICovID0geworCQk1MTdERDVCQjE4MERBN0M0MDA4MTY2MEIgLyogRGF0YWJhc2VzICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk1MTdERDVCQzE4MERB
N0QzMDA4MTY2MEIgLyogU3RvcmFnZVByb2Nlc3NQcm94eS5jcHAgKi8sCi0JCQkJNTE3REQ1QkQx
ODBEQTdEMzAwODE2NjBCIC8qIFN0b3JhZ2VQcm9jZXNzUHJveHkuaCAqLywKLQkJCQk1MTJBOTc2
NjE4MEUwNUQyMDAzOUExNDkgLyogU3RvcmFnZVByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiAqLywK
KwkJCQk1MTdERDVCQzE4MERBN0QzMDA4MTY2MEIgLyogRGF0YWJhc2VQcm9jZXNzUHJveHkuY3Bw
ICovLAorCQkJCTUxN0RENUJEMTgwREE3RDMwMDgxNjYwQiAvKiBEYXRhYmFzZVByb2Nlc3NQcm94
eS5oICovLAorCQkJCTUxMkE5NzY2MTgwRTA1RDIwMDM5QTE0OSAvKiBEYXRhYmFzZVByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCSk7Ci0JCQlwYXRoID0gU3RvcmFnZTsKKwkJCW5hbWUg
PSBEYXRhYmFzZXM7CisJCQlwYXRoID0gLi47CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwog
CQl9OwogCQk1MTdERDVDMDE4MERCN0FBMDA4MTY2MEIgLyogbWFjICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQlFMUZFRjM5QTE5MEY3NkYzMDA3MzE2NTgg
LyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiLmluICovLAotCQkJCTUxRTM1MjAxMTgwRjVE
MUUwMEU1M0JFOSAvKiBTdG9yYWdlUHJvY2Vzc01hYy5tbSAqLywKKwkJCQlFMUZFRjM5QTE5MEY3
NkYzMDA3MzE2NTggLyogY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXMuc2IuaW4gKi8sCisJCQkJ
NTFFMzUyMDExODBGNUQxRTAwRTUzQkU5IC8qIERhdGFiYXNlUHJvY2Vzc01hYy5tbSAqLywKIAkJ
CSk7CiAJCQlwYXRoID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTYxNTks
NiArNjE0NCw4IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTUx
RTM1MUMzMTgwRjJDOEEwMEU1M0JFOSAvKiBJbmRleGVkREIgKi8sCisJCQkJNTE1RTc3MjkxODQw
MDhCOTAwMDcyMDNGIC8qIERhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8s
CisJCQkJNTE1RTc3MkExODQwMDhCOTAwMDcyMDNGIC8qIERhdGFiYXNlUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oICovLAogCQkJKTsKIAkJCXBhdGggPSBEYXRhYmFzZXM7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpAQCAtNjIwMCwyMSArNjE4NywyMSBAQAogCQkJcGF0aCA9IGlvczsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07Ci0JCTUxRjdEQzBBMTgwQ0M0MTEwMDIx
MkNBMyAvKiBTdG9yYWdlUHJvY2VzcyAqLyA9IHsKKwkJNTFGN0RDMEExODBDQzQxMTAwMjEyQ0Ez
IC8qIERhdGFiYXNlUHJvY2VzcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCiAJCQkJNTFGN0RDMEIxODBDQzQyMjAwMjEyQ0EzIC8qIEVudHJ5UG9pbnQgKi8sCiAJ
CQkJNTFFMzUxRjkxODBGNUNGNjAwRTUzQkU5IC8qIEluZGV4ZWREQiAqLywKIAkJCQlFMUZFRjM5
QjE5MEY3OTFDMDA3MzE2NTggLyogaW9zICovLAogCQkJCTUxN0RENUMwMTgwREI3QUEwMDgxNjYw
QiAvKiBtYWMgKi8sCi0JCQkJNTFFMzUxRkExODBGNUQwQjAwRTUzQkU5IC8qIFN0b3JhZ2VQcm9j
ZXNzLmNwcCAqLywKLQkJCQk1MUUzNTFGQjE4MEY1RDBCMDBFNTNCRTkgLyogU3RvcmFnZVByb2Nl
c3MuaCAqLywKLQkJCQk1MUUzNTFGQzE4MEY1RDBCMDBFNTNCRTkgLyogU3RvcmFnZVByb2Nlc3Mu
bWVzc2FnZXMuaW4gKi8sCi0JCQkJNTFFMzUxRkQxODBGNUQwQjAwRTUzQkU5IC8qIFN0b3JhZ2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLywKLQkJCQk1MUUzNTFGRTE4MEY1RDBCMDBFNTNC
RTkgLyogU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywKLQkJCQk1MTAzMkYxQTE4
MEY3NEYxMDA5NjFCQjcgLyogU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMu
aW4gKi8sCisJCQkJNTFFMzUxRkExODBGNUQwQjAwRTUzQkU5IC8qIERhdGFiYXNlUHJvY2Vzcy5j
cHAgKi8sCisJCQkJNTFFMzUxRkIxODBGNUQwQjAwRTUzQkU5IC8qIERhdGFiYXNlUHJvY2Vzcy5o
ICovLAorCQkJCTUxRTM1MUZDMTgwRjVEMEIwMEU1M0JFOSAvKiBEYXRhYmFzZVByb2Nlc3MubWVz
c2FnZXMuaW4gKi8sCisJCQkJNTFFMzUxRkQxODBGNUQwQjAwRTUzQkU5IC8qIERhdGFiYXNlVG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8sCisJCQkJNTFFMzUxRkUxODBGNUQwQjAwRTUzQkU5
IC8qIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oICovLAorCQkJCTUxMDMyRjFBMTgw
Rjc0RjEwMDk2MUJCNyAvKiBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMu
aW4gKi8sCiAJCQkpOwotCQkJcGF0aCA9IFN0b3JhZ2VQcm9jZXNzOworCQkJcGF0aCA9IERhdGFi
YXNlUHJvY2VzczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CiAJCTUxRjdEQzBC
MTgwQ0M0MjIwMDIxMkNBMyAvKiBFbnRyeVBvaW50ICovID0gewpAQCAtNjIyOCwxOSArNjIxNSwx
OSBAQAogCQk1MUY3REMwQzE4MENDNDMxMDAyMTJDQTMgLyogWFBDU2VydmljZSAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJNTFGN0RDMEQxODBDQzQzODAw
MjEyQ0EzIC8qIFN0b3JhZ2VTZXJ2aWNlICovLAotCQkJCTUxRTM1MjA4MTgwRjVENkIwMEU1M0JF
OSAvKiBTdG9yYWdlU2VydmljZUVudHJ5UG9pbnQubW0gKi8sCisJCQkJNTFGN0RDMEQxODBDQzQz
ODAwMjEyQ0EzIC8qIERhdGFiYXNlU2VydmljZSAqLywKKwkJCQk1MUUzNTIwODE4MEY1RDZCMDBF
NTNCRTkgLyogRGF0YWJhc2VTZXJ2aWNlRW50cnlQb2ludC5tbSAqLywKIAkJCSk7CiAJCQluYW1l
ID0gWFBDU2VydmljZTsKIAkJCXBhdGggPSBtYWMvWFBDU2VydmljZTsKIAkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CiAJCX07Ci0JCTUxRjdEQzBEMTgwQ0M0MzgwMDIxMkNBMyAvKiBTdG9yYWdl
U2VydmljZSAqLyA9IHsKKwkJNTFGN0RDMEQxODBDQzQzODAwMjEyQ0EzIC8qIERhdGFiYXNlU2Vy
dmljZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNTFF
MzUyMDcxODBGNUQ2MTAwRTUzQkU5IC8qIEluZm8ucGxpc3QgKi8sCiAJCQkpOwotCQkJcGF0aCA9
IFN0b3JhZ2VTZXJ2aWNlOworCQkJcGF0aCA9IERhdGFiYXNlU2VydmljZTsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CiAJCTUzOUJENUIyMURBREIwQkEwMEYyRTRFMSAvKiBjYXB0
dXJlICovID0gewpAQCAtNjUwMCw3ICs2NDg3LDcgQEAKIAkJQTc4Q0NERDYxOTNBQzlFMzAwNUVD
QzI1IC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0J
CQkJQTc4Q0NERDcxOTNBQzlFMzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5z
YiAqLywKKwkJCQlBNzhDQ0RENzE5M0FDOUUzMDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5E
YXRhYmFzZXMuc2IgKi8sCiAJCQkJQTc4Q0NERDgxOTNBQzlFMzAwNUVDQzI1IC8qIGNvbS5hcHBs
ZS5XZWJLaXQuTmV0d29ya2luZy5zYiAqLywKIAkJCQlBNzhDQ0REOTE5M0FDOUUzMDA1RUNDMjUg
LyogY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiICovLAogCQkJKTsKQEAgLTY1NTAsNyAr
NjUzNyw2IEBACiAJCQkJMzEwOTk5NzQxNDZDOEFBODAwMjlERUI5IC8qIE5vdGlmaWNhdGlvbnMg
KFVzZXIpICovLAogCQkJCTFBNkZCN0FBMTFFNjRCNDkwMERCMTM3MSAvKiBQbHVnaW5zICovLAog
CQkJCTBGNTk0NzhDMTg3QjNCMkEwMDQzNzg1NyAvKiBTY3JvbGxpbmcgKi8sCi0JCQkJNTExOEU5
OTgxRjI5NTI1OTAwM0VGOUY1IC8qIFN0b3JhZ2UgKi8sCiAJCQkJMUFBRjA4QUExOTI2OTMwQjAw
QjYzOTBDIC8qIFVzZXJDb250ZW50ICovLAogCQkJCUJDMDMyRDVEMTBGNDM3MjIwMDU4QzE1QSAv
KiBXZWJDb3JlU3VwcG9ydCAqLywKIAkJCQlCQzAzMkQ1RTEwRjQzNzJCMDA1OEMxNUEgLyogV2Vi
UGFnZSAqLywKQEAgLTY3MDEsNyArNjY4Nyw2IEBACiAJCQkJMzFBMkVDNDAxNDg5OTczNzAwODEw
RDcxIC8qIE5vdGlmaWNhdGlvbnMgKi8sCiAJCQkJMUFFRkNDMDUxMUQwMUYzNDAwODIxOUQzIC8q
IFBsdWdpbnMgKi8sCiAJCQkJMEY1OTQ3OTMxODdCM0I0QzAwNDM3ODU3IC8qIFNjcm9sbGluZyAq
LywKLQkJCQk1MTdERDVCQjE4MERBN0M0MDA4MTY2MEIgLyogU3RvcmFnZSAqLywKIAkJCQkxQUFG
MDg5RTE5MjY4MUFDMDBCNjM5MEMgLyogVXNlckNvbnRlbnQgKi8sCiAJCQkJMUE0NEI5NTgxNkI3
M0Y4QzAwQjdCQkQ4IC8qIFdlYlN0b3JhZ2UgKi8sCiAJCQkJMUE1M0MyQTMxQTMyNTY5MTAwNEU4
QzcwIC8qIFdlYnNpdGVEYXRhICovLApAQCAtNzc1NCwxMCArNzczOSwxNiBAQAogCQkJCTk5NTVB
NkYzMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmggKi8sCiAJ
CQkJNTFGQUVDMzYxQjA2NTczMTAwMDlDNEU3IC8qIENoaWxkUHJvY2Vzc01lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8sCiAJCQkJNTFGQUVDMzcxQjA2NTczMTAwMDlDNEU3IC8qIENoaWxkUHJvY2Vzc01l
c3NhZ2VzLmggKi8sCisJCQkJRTExNUM3MTUxOTBGOEEyNTAwRUNDNTE2IC8qIGNvbS5hcHBsZS5X
ZWJLaXQuRGF0YWJhc2VzLnNiICovLAogCQkJCUUxN0FFMkMyMTZCOUM2M0EwMDFDNDJGMSAvKiBj
b20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiICovLAotCQkJCTUxQzNCMjg2MUYyQTY0
QUUwMDE0MjdGRiAvKiBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2IgKi8sCiAJCQkJN0ExNTA2
NzIxREQ1NjI5ODAwMUY0QjU4IC8qIGNvbS5hcHBsZS5XZWJLaXQucGx1Z2luLWNvbW1vbi5zYiAq
LywKIAkJCQlFMTk2N0UzNzE1MEFCNUUyMDBDNzMxNjkgLyogY29tLmFwcGxlLldlYlByb2Nlc3Mu
c2IgKi8sCisJCQkJNTEyQTk3NUUxODBFMDMxNjAwMzlBMTQ5IC8qIERhdGFiYXNlUHJvY2Vzc01l
c3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNTEyQTk3NUYxODBFMDMxNjAwMzlBMTQ5IC8qIERh
dGFiYXNlUHJvY2Vzc01lc3NhZ2VzLmggKi8sCisJCQkJNTEyQTk3NjcxODBFMDlCODAwMzlBMTQ5
IC8qIERhdGFiYXNlUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk1MTJB
OTc2ODE4MEUwOUI4MDAzOUExNDkgLyogRGF0YWJhc2VQcm9jZXNzUHJveHlNZXNzYWdlcy5oICov
LAorCQkJCTUxMDMyRjFCMTgwRjc5MTcwMDk2MUJCNyAvKiBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTUxMDMyRjFDMTgwRjc5MTcwMDk2
MUJCNyAvKiBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovLAogCQkJ
CTFBQjdENjE3MTI4OEI5RDkwMENGRDA4QyAvKiBEb3dubG9hZFByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKIAkJCQkxQUI3RDYxODEyODhCOUQ5MDBDRkQwOEMgLyogRG93bmxvYWRQcm94eU1l
c3NhZ2VzLmggKi8sCiAJCQkJMUE2NDIyOTcxMkREMDI5MjAwQ0FBRTJDIC8qIERyYXdpbmdBcmVh
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTc4MTYsMTIgKzc4MDcsNiBAQAogCQkJCTFBMzM0
REVDMTZERThGODgwMDZBOEUzOCAvKiBTdG9yYWdlQXJlYU1hcE1lc3NhZ2VzLmggKi8sCiAJCQkJ
MUFCMzFBOTQxNkJDNjg4MTAwRjZEQkM5IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKIAkJCQkxQUIzMUE5NTE2QkM2ODgxMDBGNkRCQzkgLyogU3RvcmFnZU1hbmFnZXJN
ZXNzYWdlcy5oICovLAotCQkJCTUxMThFOUE1MUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlUHJv
Y2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCi0JCQkJNTExOEU5QTYxRjI5NTk2MzAwM0VGOUY1
IC8qIFN0b3JhZ2VQcm9jZXNzTWVzc2FnZXMuaCAqLywKLQkJCQk1MTE4RTlBNzFGMjk1OTYzMDAz
RUY5RjUgLyogU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCi0JCQkJ
NTExOEU5QTIxRjI5NTk2MzAwM0VGOUY1IC8qIFN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlcy5o
ICovLAotCQkJCTUxMThFOUEzMUYyOTU5NjMwMDNFRjlGNSAvKiBTdG9yYWdlVG9XZWJQcm9jZXNz
Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCi0JCQkJNTExOEU5QTQxRjI5NTk2MzAw
M0VGOUY1IC8qIFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLywKIAkJ
CQlDRDQ5MUIwQjFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUNENDkxQjBDMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmggKi8sCiAJCQkJQ0Q0OTFCMTUxRTczNTI1NTAw
MDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovLApAQCAtODA1MCw3ICs4MDM1LDcgQEAKIAkJRTFGRUYzOUIxOTBGNzkxQzAwNzMxNjU4IC8q
IGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJRTFG
RUYzOUMxOTBGNzkxQzAwNzMxNjU4IC8qIFN0b3JhZ2VQcm9jZXNzSU9TLm1tICovLAorCQkJCUUx
RkVGMzlDMTkwRjc5MUMwMDczMTY1OCAvKiBEYXRhYmFzZVByb2Nlc3NJT1MubW0gKi8sCiAJCQkp
OwogCQkJcGF0aCA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC04MzAxLDcg
KzgyODYsMTEgQEAKIAkJCQlDRTFBMEJEMzFBNDhFNkM2MDA1NEVGNzQgLyogQ29yZVBERlNQSS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMzdDMjFDQUUxRTk5NEMwQzAwMjlENUY5IC8qIENvcmVQcmVk
aWN0aW9uU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlCODc4QjYxNTEzMzQyOERDMDA2ODg4RTkg
LyogQ29ycmVjdGlvblBhbmVsLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTdERDVCRjE4MERBN0Qz
MDA4MTY2MEIgLyogU3RvcmFnZVByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE1
RTc3MkMxODQwMDhCOTAwMDcyMDNGIC8qIERhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTEyQTk3NjExODBFMDMxRDAwMzlBMTQ5IC8qIERhdGFi
YXNlUHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTdERDVCRjE4MERBN0Qz
MDA4MTY2MEIgLyogRGF0YWJhc2VQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTUx
MkE5NzZBMTgwRTA5QjgwMDM5QTE0OSAvKiBEYXRhYmFzZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk1MTAzMkYxRTE4MEY3OTE3MDA5NjFCQjcgLyogRGF0YWJhc2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1NUY5
MTcxMUM1OTY3NkUwMDI5RTkyRCAvKiBEYXRhRGV0ZWN0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQUM3NTM4MDE4M0JFNTBGMDA3MkNCMTUgLyogRGF0YVJlZmVyZW5jZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkMwMzJEQTYxMEY0MzdEMTAwNThDMTVBIC8qIERlY29kZXIuaCBpbiBI
ZWFkZXJzICovLApAQCAtODQwMiw3ICs4MzkxLDYgQEAKIAkJCQkxQUFCMDM3QTE4NUE3QzZBMDBF
REY1MDEgLyogTWVzc2FnZVNlbmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzBFM0FBN0MxMjA5
RTgzQzAwQTQ5RDAxIC8qIE1vZHVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ1MDM2NkIxQkNE
RTE3OTAwRTIwQkIzIC8qIE5hdGl2ZVdlYkdlc3R1cmVFdmVudC5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJNTExOEU5OUMxRjI5NTI2NjAwM0VGOUY1IC8qIFdlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkyNjMxNzJDRjE4QjQ2OTQ5MDA2NUI5QzMgLyogTmF0
aXZlV2ViVG91Y2hFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFEQ0I4NkIxODk4MzFCMzAw
MjJFRTVBIC8qIE5hdmlnYXRpb25BY3Rpb25EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUJD
M0RGNjE4OTlFNDM3MDA0RjA2MjYgLyogTmF2aWdhdGlvblN0YXRlLmggaW4gSGVhZGVycyAqLywK
QEAgLTg0MjgsNyArODQxNiw2IEBACiAJCQkJNTMwMjU4M0YxRENCQkQyMjAwREE4OUMyIC8qIE5l
dHdvcmtDYXB0dXJlTG9nZ2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTMwMjU4NDExRENCQkQy
MjAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTMwMjU4NDMxRENCQkQyMjAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlUmVjb3JkZXIuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTUxMThFOUE5MUYyOTU5NzcwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vz
c01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MzAyNTg0NTFEQ0JCRDIyMDBEQTg5QzIg
LyogTmV0d29ya0NhcHR1cmVSZXBsYXllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTMwMjU4M0Mx
RENCQkQyMjAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlUmVzb3VyY2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxM0ExNjREMTYzMEE5QkYwMDVEN0QyMiAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oIGluIEhlYWRlcnMgKi8sCkBAIC04NjI2LDcgKzg2MTMsNiBAQAogCQkJCTNGODdC
OUJFMTU4OTQwMTkwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTNGODdCOUMwMTU4OTQwRDgwMDkwRkY2MiAvKiBXZWJDb2xvclBpY2tlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNzI4RTg2RjExNzk1MTg4QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFj
LmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTE4RTlBQjFGMjk1OTc3MDAzRUY5RjUgLyogU3RvcmFn
ZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzRBQkVEMTFBQThF
OUYwMDA4OEFBMzcgLyogV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdDNEFCRUQ1MUFBOEZDQjgwMDg4QUEzNyAvKiBXZWJDb21waWxlZENvbnRlbnRSdWxl
TGlzdERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNEE2MjkwMTQ3MzEyQkUwMDZDNjgxQSAv
KiBXZWJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTg3NDYsNyArODczMiw2IEBACiAJ
CQkJMzFENTkyOUYxNjZFMDYwMDAwRTZCRjAyIC8qIFdlYlBsdWdJbkNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM1NzQ0RjAxMjYzOEZCMzAwNkYwRjEyIC8qIFdlYlBvcHVwSXRlbS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRDNCOTQ4NDcxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVu
dS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTExOEU5QTExRjI5NTMyNjAwM0VGOUY1IC8qIFN0b3Jh
Z2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzU3NEU2
MzEyNjdEMDgwMDA2RjBGMTIgLyogV2ViUG9wdXBNZW51UHJveHkuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDNTc1MDk3MTI2OEYzQzYwMDZGMEYxMiAvKiBXZWJQb3B1cE1lbnVQcm94eU1hYy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNENTk3RkYxMTJCNTdCRTAwRUM4QzIzIC8qIFdlYlByZWZlcmVu
Y2VzLmggaW4gSGVhZGVycyAqLywKQEAgLTg3ODcsNiArODc3Miw3IEBACiAJCQkJODM2MDM0QTAx
QUNCMzRENjAwNjI2NTQ5IC8qIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUE1MkMwRjgxQTM4Q0RDNzAwMTYxNjBBIC8qIFdlYlN0b3JhZ2VOYW1lc3BhY2VQ
cm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDNTcxNUIxMTVBREFFRjAwMUNDQUY5IC8q
IFdlYlN5c3RlbUludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTEwMzJGMTkxODBGNzNC
QjAwOTYxQkI3IC8qIFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNBMEVGN0YxMjMzMUU3ODAwN0QzQ0ZCIC8qIFdlYlVuZG9TdGVwLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQUFGMDhBRTE5MjY5MzY3MDBCNjM5MEMgLyogV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzA2NUYyQzFDOENEOTVGMDBDMkQ5NTAg
LyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmggaW4gSGVhZGVycyAqLywKQEAg
LTg5MzYsNyArODkyMiw2IEBACiAJCQkJQkMwNkY0NEUxMkRCREYzRjAwMkQ3OERFIC8qIFdLR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwRTYxOTgx
MkQ2Q0QxMjAwMTJBNzJBIC8qIFdLR2VvbG9jYXRpb25Qb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZDQjRFNEYxOEJCRTA0NDAwMEZDRkM5IC8qIFdLR2VvbG9jYXRpb25Qcm92aWRlcklP
Uy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTExOEU5QUQxRjI5NTk3NzAwM0VGOUY1IC8qIFN0b3Jh
Z2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
QzhCMzc0MTI1RkI2OTAwMERFNDZBNCAvKiBXS0dlb21ldHJ5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTQyMkY4QjE4QjI5QjU0MDBEOENEOTYgLyogV0tIaXN0b3J5RGVsZWdhdGVQcml2YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCNjJFNzMxMjE0MzA0N0IwMDA2OUVDMzUgLyogV0tIaXRUZXN0
UmVzdWx0LmggaW4gSGVhZGVycyAqLywKQEAgLTkxOTcsOSArOTE4Miw5IEBACiAJCQlwcm9kdWN0
UmVmZXJlbmNlID0gNTEwMDMxRjYxMzc5Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1TaGltLmR5bGli
ICovOwogCQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnByb2R1Y3QtdHlwZS5saWJyYXJ5LmR5
bmFtaWMiOwogCQl9OwotCQk1MUY3REMzRjE4MENDOTM2MDAyMTJDQTMgLyogU3RvcmFnZSAqLyA9
IHsKKwkJNTFGN0RDM0YxODBDQzkzNjAwMjEyQ0EzIC8qIERhdGFiYXNlcyAqLyA9IHsKIAkJCWlz
YSA9IFBCWE5hdGl2ZVRhcmdldDsKLQkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA1MUY3REM0
NjE4MENDOTM2MDAyMTJDQTMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRp
dmVUYXJnZXQgIlN0b3JhZ2UiICovOworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDUxRjdE
QzQ2MTgwQ0M5MzYwMDIxMkNBMyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5h
dGl2ZVRhcmdldCAiRGF0YWJhc2VzIiAqLzsKIAkJCWJ1aWxkUGhhc2VzID0gKAogCQkJCTUxRjdE
QzQwMTgwQ0M5MzYwMDIxMkNBMyAvKiBTb3VyY2VzICovLAogCQkJCTUxRjdEQzQyMTgwQ0M5MzYw
MDIxMkNBMyAvKiBGcmFtZXdvcmtzICovLApAQCAtOTIxMCw5ICs5MTk1LDkgQEAKIAkJCWRlcGVu
ZGVuY2llcyA9ICgKIAkJCQkzNzVFMDYyNzE5MUVBOENDMDA0RTNDQUYgLyogUEJYVGFyZ2V0RGVw
ZW5kZW5jeSAqLywKIAkJCSk7Ci0JCQluYW1lID0gU3RvcmFnZTsKLQkJCXByb2R1Y3ROYW1lID0g
U3RvcmFnZTsKLQkJCXByb2R1Y3RSZWZlcmVuY2UgPSA1MUY3REM0QTE4MENDOTM2MDAyMTJDQTMg
LyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnhwYyAqLzsKKwkJCW5hbWUgPSBEYXRhYmFzZXM7
CisJCQlwcm9kdWN0TmFtZSA9IE5ldHdvcmtpbmc7CisJCQlwcm9kdWN0UmVmZXJlbmNlID0gNTFG
N0RDNEExODBDQzkzNjAwMjEyQ0EzIC8qIGNvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzLnhwYyAq
LzsKIAkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUueHBjLXNlcnZpY2Ui
OwogCQl9OwogCQk4REMyRUY0RjA0ODZBNjk0MDA5OEIyMTYgLyogV2ViS2l0ICovID0gewpAQCAt
OTM3OCw3ICs5MzYzLDcgQEAKIAkJCQlCQzgyODNCMDE2QjRCRjc3MDBBMjc4RkUgLyogTmV0d29y
a2luZyAqLywKIAkJCQlCQzgyODNGODE2QjRGRERFMDBBMjc4RkUgLyogUGx1Z2luLjMyICovLAog
CQkJCUJDODI4NDFFMTZCNEZERjYwMEEyNzhGRSAvKiBQbHVnaW4uNjQgKi8sCi0JCQkJNTFGN0RD
M0YxODBDQzkzNjAwMjEyQ0EzIC8qIFN0b3JhZ2UgKi8sCisJCQkJNTFGN0RDM0YxODBDQzkzNjAw
MjEyQ0EzIC8qIERhdGFiYXNlcyAqLywKIAkJCQlBN0FBREExMDE5Mzk1Q0E5MDAzRUExQzcgLyog
U2FuZGJveCBQcm9maWxlcyAqLywKIAkJCSk7CiAJCX07CkBAIC05Mzk2LDcgKzkzODEsNyBAQAog
CQkJaXNhID0gUEJYUmVzb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIx
NDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKLQkJCQk1MUMzQjI4NzFGMkE2NEM1MDAxNDI3RkYgLyog
Y29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiIGluIFJlc291cmNlcyAqLywKKwkJCQlFMTE1Qzcx
NjE5MEY4QTI1MDBFQ0M1MTYgLyogY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXMuc2IgaW4gUmVz
b3VyY2VzICovLAogCQkJCUUxN0FFMkMzMTZCOUM2M0EwMDFDNDJGMSAvKiBjb20uYXBwbGUuV2Vi
S2l0Lk5ldHdvcmtQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLywKIAkJCQlFMTFEMzVBRTE2QjYz
RDFCMDA2RDIzRDcgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgaW4gUmVzb3VyY2VzICovLAog
CQkJCTZCRTk2OUMxMUU1NEQ0NTIwMDhCNzQ4MyAvKiBjb3JlUHJlZGljdGlvbl9tb2RlbCBpbiBS
ZXNvdXJjZXMgKi8sCkBAIC05NTgwLDggKzk1NjUsOCBAQAogCQkJZmlsZXMgPSAoCiAJCQkpOwog
CQkJaW5wdXRQYXRocyA9ICgKKwkJCQkiJChTUkNST09UKS9SZXNvdXJjZXMvU2FuZGJveFByb2Zp
bGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlcy5zYiIsCiAJCQkJIiQoU1JDUk9PVCkv
UmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5n
LnNiIiwKLQkJCQkiJChTUkNST09UKS9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20u
YXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2IiLAogCQkJCSIkKFNSQ1JPT1QpL1Jlc291cmNlcy9TYW5k
Ym94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYiIsCiAJCQkpOwog
CQkJbmFtZSA9ICJDb3B5IGlPUyBTYW5kYm94IFByb2ZpbGVzIGZvciBNYW51YWwgU2FuZGJveGlu
ZyI7CkBAIC05Njc2LDcgKzk2NjEsNyBAQAogCQkJCSIkKEJVSUxUX1BST0RVQ1RTX0RJUikvY29t
LmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnhwYyIsCiAJCQkJIiQoQlVJTFRfUFJPRFVDVFNfRElS
KS9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi4zMi54cGMiLAogCQkJCSIkKEJVSUxUX1BST0RVQ1RT
X0RJUikvY29tLmFwcGxlLldlYktpdC5QbHVnaW4uNjQueHBjIiwKLQkJCQkiJChCVUlMVF9QUk9E
VUNUU19ESVIpL2NvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS54cGMiLAorCQkJCSIkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXMueHBjIiwKIAkJCSk7CiAJCQlu
YW1lID0gIkNvcHkgWFBDIHNlcnZpY2VzIGZvciBlbmdpbmVlcmluZyBidWlsZHMiOwogCQkJb3V0
cHV0UGF0aHMgPSAoCkBAIC05Njg0LDExICs5NjY5LDExIEBACiAJCQkJIiQoQlVJTFRfUFJPRFVD
VFNfRElSKS9XZWJLaXQuZnJhbWV3b3JrL1hQQ1NlcnZpY2VzL2NvbS5hcHBsZS5XZWJLaXQuTmV0
d29ya2luZy54cGMiLAogCQkJCSIkKEJVSUxUX1BST0RVQ1RTX0RJUikvV2ViS2l0LmZyYW1ld29y
ay9YUENTZXJ2aWNlcy9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi4zMi54cGMiLAogCQkJCSIkKEJV
SUxUX1BST0RVQ1RTX0RJUikvV2ViS2l0LmZyYW1ld29yay9YUENTZXJ2aWNlcy9jb20uYXBwbGUu
V2ViS2l0LlBsdWdpbi42NC54cGMiLAotCQkJCSIkKEJVSUxUX1BST0RVQ1RTX0RJUikvV2ViS2l0
LmZyYW1ld29yay9YUENTZXJ2aWNlcy9jb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2UueHBjIiwKKwkJ
CQkiJChCVUlMVF9QUk9EVUNUU19ESVIpL1dlYktpdC5mcmFtZXdvcmsvWFBDU2VydmljZXMvY29t
LmFwcGxlLldlYktpdC5EYXRhYmFzZXMueHBjIiwKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7Ci0JCQlzaGVs
bFNjcmlwdCA9ICJpZiBbWyBcIiR7Q09ORklHVVJBVElPTn1cIiA9PSBcIlByb2R1Y3Rpb25cIiBd
XTsgdGhlblxuICAgIGV4aXRcbmZpXG5cbmlmIFtbICR7UExBVEZPUk1fTkFNRX0gIT0gXCJtYWNv
c3hcIiBdXTsgdGhlblxuICAgIFhQQ19TRVJWSUNFU19QQVRIPVwiJHtCVUlMVF9QUk9EVUNUU19E
SVJ9L1dlYktpdC5mcmFtZXdvcmsvWFBDU2VydmljZXNcIlxuZWxzZVxuICAgIFhQQ19TRVJWSUNF
U19QQVRIPVwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L1dlYktpdC5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9YUENTZXJ2aWNlc1wiXG5maVxuXG5ta2RpciAtcCBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9XCJc
bmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVu
dC54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVu
dC54cGNcIlxuZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vY29tLmFwcGxlLldlYktpdC5O
ZXR3b3JraW5nLnhwY1wiIFwiJHtYUENfU0VSVklDRVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5O
ZXR3b3JraW5nLnhwY1wiXG5kaXR0byBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9jb20uYXBwbGUu
V2ViS2l0LlN0b3JhZ2UueHBjXCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2Vi
S2l0LlN0b3JhZ2UueHBjXCJcblxuaWYgW1sgJHtQTEFURk9STV9OQU1FfSA9PSBtYWNvc3ggXV07
IHRoZW5cbiAgICBkaXR0byBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2ViS2l0
LlBsdWdpbi4zMi54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5hcHBsZS5XZWJLaXQu
UGx1Z2luLnhwY1wiXG4gICAgZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vY29tLmFwcGxl
LldlYktpdC5QbHVnaW4uNjQueHBjXCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUu
V2ViS2l0LlBsdWdpbi42NC54cGNcIlxuZmlcbiI7CisJCQlzaGVsbFNjcmlwdCA9ICJpZiBbWyBc
IiR7Q09ORklHVVJBVElPTn1cIiA9PSBcIlByb2R1Y3Rpb25cIiBdXTsgdGhlblxuICAgIGV4aXRc
bmZpXG5cbmlmIFtbICR7UExBVEZPUk1fTkFNRX0gIT0gXCJtYWNvc3hcIiBdXTsgdGhlblxuICAg
IFhQQ19TRVJWSUNFU19QQVRIPVwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L1dlYktpdC5mcmFtZXdv
cmsvWFBDU2VydmljZXNcIlxuZWxzZVxuICAgIFhQQ19TRVJWSUNFU19QQVRIPVwiJHtCVUlMVF9Q
Uk9EVUNUU19ESVJ9L1dlYktpdC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9YUENTZXJ2aWNlc1wiXG5m
aVxuXG5ta2RpciAtcCBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9XCJcbmRpdHRvIFwiJHtCVUlMVF9Q
Uk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC54cGNcIiBcIiR7WFBDX1NF
UlZJQ0VTX1BBVEh9L2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC54cGNcIlxuZGl0dG8gXCIk
e0JVSUxUX1BST0RVQ1RTX0RJUn0vY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnhwY1wiIFwi
JHtYUENfU0VSVklDRVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnhwY1wiXG5k
aXR0byBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlcy54
cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzLnhw
Y1wiXG5cbmlmIFtbICR7UExBVEZPUk1fTkFNRX0gPT0gbWFjb3N4IF1dOyB0aGVuXG4gICAgZGl0
dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uMzIueHBj
XCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi54cGNcIlxu
ICAgIGRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQuUGx1Z2lu
LjY0LnhwY1wiIFwiJHtYUENfU0VSVklDRVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4u
NjQueHBjXCJcbmZpXG4iOwogCQl9OwogCQlDMENFNzI4NDEyNDdFNjY4MDBCQzBFQzQgLyogR2Vu
ZXJhdGUgRGVyaXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWls
ZFBoYXNlOwpAQCAtOTg0NSwxMiArOTgzMCwxNiBAQAogCQkJCUNEQzM4MzEwMTcyMTI0NDAwMDhB
MkZDMyAvKiBDb29raWVTdG9yYWdlU2hpbS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxMDRGNUEy
MUYxOUQ3RDIwMDRDRjgyMSAvKiBDb29raWVTdG9yYWdlVXRpbHNDRi5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUI4NzhCNjE2MTMzNDI4REMwMDY4ODhFOSAvKiBDb3JyZWN0aW9uUGFuZWwubW0gaW4g
U291cmNlcyAqLywKLQkJCQk1MUUzNTFGRjE4MEY1RDBGMDBFNTNCRTkgLyogU3RvcmFnZVByb2Nl
c3MuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRTExNUM3MTQxOTBGODlFNDAwRUNDNTE2IC8qIFN0
b3JhZ2VQcm9jZXNzSU9TLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNTFFMzUyMDIxODBGNUQxRTAw
RTUzQkU5IC8qIFN0b3JhZ2VQcm9jZXNzTWFjLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNTE3REQ1
QkUxODBEQTdEMzAwODE2NjBCIC8qIFN0b3JhZ2VQcm9jZXNzUHJveHkuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJNTFFMzUyMDkxODBGNUQ2QjAwRTUzQkU5IC8qIFN0b3JhZ2VTZXJ2aWNlRW50cnlQ
b2ludC5tbSBpbiBTb3VyY2VzICovLAotCQkJCTUxRTM1MjAwMTgwRjVEMEYwMEU1M0JFOSAvKiBT
dG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MUUz
NTFGRjE4MEY1RDBGMDBFNTNCRTkgLyogRGF0YWJhc2VQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTUxNUU3NzJCMTg0MDA4QjkwMDA3MjAzRiAvKiBEYXRhYmFzZVByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTExNUM3MTQxOTBGODlFNDAwRUND
NTE2IC8qIERhdGFiYXNlUHJvY2Vzc0lPUy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTUxRTM1MjAy
MTgwRjVEMUUwMEU1M0JFOSAvKiBEYXRhYmFzZVByb2Nlc3NNYWMubW0gaW4gU291cmNlcyAqLywK
KwkJCQk1MTJBOTc2MDE4MEUwMzFEMDAzOUExNDkgLyogRGF0YWJhc2VQcm9jZXNzTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxN0RENUJFMTgwREE3RDMwMDgxNjYwQiAv
KiBEYXRhYmFzZVByb2Nlc3NQcm94eS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTJBOTc2OTE4
MEUwOUI4MDAzOUExNDkgLyogRGF0YWJhc2VQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJNTFFMzUyMDkxODBGNUQ2QjAwRTUzQkU5IC8qIERhdGFiYXNl
U2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MUUzNTIwMDE4MEY1RDBG
MDBFNTNCRTkgLyogRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTUxMDMyRjFEMTgwRjc5MTcwMDk2MUJCNyAvKiBEYXRhYmFzZVRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU1Rjkx
NzAxQzU5NUY2MzAwMjlFOTJEIC8qIERhdGFEZXRlY3Rpb25SZXN1bHQubW0gaW4gU291cmNlcyAq
LywKIAkJCQkxQUM3NTM3RjE4M0JFNTBGMDA3MkNCMTUgLyogRGF0YVJlZmVyZW5jZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzAzMkRBNTEwRjQzN0QxMDA1OEMxNUEgLyogRGVjb2Rlci5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTEwMDE0LDcgKzEwMDAzLDYgQEAKIAkJCQk1MzIxNTk1MzFEQkFF
NzE4MDA1NEFBM0MgLyogTmV0d29ya1Nlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMy
MENCOUQxQkIwRENGQTAwODk1QkIxIC8qIE5ldHdvcmtTZXNzaW9uQ29jb2EubW0gaW4gU291cmNl
cyAqLywKIAkJCQk1QzBCMTc4MTFFN0M4QzI2MDBFOTEyM0MgLyogTmV0d29ya1NvY2tldFN0cmVh
bS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1MTE4RTk5QjFGMjk1MjY2MDAzRUY5RjUgLyogV2Vi
VG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMwQjE3
NzgxRTdDODgwRTAwRTkxMjNDIC8qIE5ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFBMkVDNTUxNDg5OTgyRTAwODEwRDcxIC8qIE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxMzEyNjFF
MTQ4RkY4MkMwMEJBMkEzOSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xMDEyMyw3ICsxMDExMSw2IEBACiAJCQkJNTFEMTMwNTMx
MzgyRUFDMDAwMzUxRUREIC8qIFNlY0l0ZW1SZXF1ZXN0RGF0YS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1MUQxMzA1NTEzODJFQUMwMDAzNTFFREQgLyogU2VjSXRlbVJlc3BvbnNlRGF0YS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlFMTc5MDg4RDE2OUJBQTYyMDA2OTA0QzcgLyogU2VjSXRlbVNo
aW0uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTExOEU5QTAxRjI5NTMyNjAwM0VGOUY1IC8qIFN0
b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUx
OEU2OTBCMTY5QjU2M0YwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUUxOEU2OTE3MTY5QjY2N0IwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNEQ5RjU4MTkxMTlEMzUwMDAw
NjNBNyAvKiBTZXJ2aWNlc0NvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLywKQEAgLTEwMzU0LDcg
KzEwMzQxLDYgQEAKIAkJCQkzMUQ1OTI5RTE2NkUwNjAwMDBFNkJGMDIgLyogV2ViUGx1Z0luQ2xp
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMDhGRUU0MUQ1OTNFMkEwMDhCQThDQiAvKiBX
ZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1NzQ0RUYxMjYz
OEZCMzAwNkYwRjEyIC8qIFdlYlBvcHVwSXRlbS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1MTE4
RTlBODFGMjk1OTc3MDAzRUY5RjUgLyogU3RvcmFnZVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRDNCOTQ4NDYxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVw
TWVudS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0M0M0FDNzEyN0I5OURFMDAzMTdGMTYgLyog
V2ViUG9wdXBNZW51TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1NzUwOTgxMjY4RjNDNjAw
NkYwRjEyIC8qIFdlYlBvcHVwTWVudVByb3h5TWFjLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0xMDM5
OCw3ICsxMDM4NCw2IEBACiAJCQkJN0MzNjFENzIxOTI3RkEzNjAwMzZBNTlEIC8qIFdlYlNjcmlw
dE1lc3NhZ2VIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQzQjk0ODQ4MTFGRjRCNjUw
MDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE0
ODMyRDYxQTlDREY5NjAwOEI0REZFIC8qIFdlYnNpdGVEYXRhLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCTUxMThFOUFBMUYyOTU5NzcwMDNFRjlGNSAvKiBTdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNDgzMkQ5MUE5RDFGRDIwMDhCNERG
RSAvKiBXZWJzaXRlRGF0YVJlY29yZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTUzQzJBOTFB
MzI1NzJCMDA0RThDNzAgLyogV2Vic2l0ZURhdGFTdG9yZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxQTQ4MzJDMzFBOTY1QTNDMDA4QjRERkUgLyogV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tIGlu
IFNvdXJjZXMgKi8sCkBAIC0xMDQwOSw2ICsxMDM5NCw3IEBACiAJCQkJODM2MDM0OUYxQUNCMzRE
NjAwNjI2NTQ5IC8qIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxQTUyQzBGNzFBMzhDREM3MDAxNjE2MEEgLyogV2ViU3RvcmFnZU5hbWVzcGFjZVByb3Zp
ZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQzU3MTVDMTE1QURBRUYwMDFDQ0FGOSAvKiBX
ZWJTeXN0ZW1JbnRlcmZhY2UubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MTAzMkYxODE4MEY3M0JC
MDA5NjFCQjcgLyogV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUMwMzM3REQ4MTI3QTUxQjYwMDhGRjRGNCAvKiBXZWJUb3VjaEV2ZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTJEQTk0NEEzMTg4NEU0RjAwMEVEODZEQiAvKiBXZWJUb3VjaEV2
ZW50SU9TLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQTBFRjgwMTIzMzFFNzgwMDdEM0NGQiAv
KiBXZWJVbmRvU3RlcC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTEwNTg3LDcgKzEwNTczLDYgQEAK
IAkJCQkxQTdFMzc3ODE4RTRBNEZFMDAzRDBGRkYgLyogV0tTY3JpcHRNZXNzYWdlLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEZDQjRFNTUxOEJCRTA0NDAwMEZDRkM5IC8qIFdLU2Nyb2xsVmlldy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTUxQ0QxQzY2MUIzNEI5REMwMDE0MkNBNSAvKiBXS1NlY3Vy
aXR5T3JpZ2luLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNTExOEU5QUMxRjI5NTk3NzAwM0VGOUY1
IC8qIFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTUxQ0QxQzVEMUIzNDkzQUYwMDE0MkNBNSAvKiBXS1NlY3VyaXR5T3Jp
Z2luUmVmLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3NjAzMTI0RkYwMjcwMDY4RjIwQSAv
KiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQURFNDZC
MjE5NTRFQzYxMDAwRjc5ODUgLyogV0tTZXNzaW9uU3RhdGVSZWYuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0xMDczNCw3ICsxMDcxOSw3IEBACiAJCX07CiAJCTUxQTYwQjJFMTgwQ0NGMTcwMEYzQkY1
MCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewogCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5k
ZW5jeTsKLQkJCXRhcmdldCA9IDUxRjdEQzNGMTgwQ0M5MzYwMDIxMkNBMyAvKiBTdG9yYWdlICov
OworCQkJdGFyZ2V0ID0gNTFGN0RDM0YxODBDQzkzNjAwMjEyQ0EzIC8qIERhdGFiYXNlcyAqLzsK
IAkJCXRhcmdldFByb3h5ID0gNTFBNjBCMkQxODBDQ0YxNzAwRjNCRjUwIC8qIFBCWENvbnRhaW5l
ckl0ZW1Qcm94eSAqLzsKIAkJfTsKIAkJQkM3N0Y5NTYxNkQwNDU5MTAwRjhGNzhBIC8qIFBCWFRh
cmdldERlcGVuZGVuY3kgKi8gPSB7CkBAIC0xMDg4NywyMSArMTA4NzIsMjEgQEAKIAkJfTsKIAkJ
NTFGN0RDNDcxODBDQzkzNjAwMjEyQ0EzIC8qIERlYnVnICovID0gewogCQkJaXNhID0gWENCdWls
ZENvbmZpZ3VyYXRpb247Ci0JCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDUxQTYwQjI5
MTgwQ0NEOTAwMEYzQkY1MCAvKiBTdG9yYWdlU2VydmljZS54Y2NvbmZpZyAqLzsKKwkJCWJhc2VD
b25maWd1cmF0aW9uUmVmZXJlbmNlID0gNTFBNjBCMjkxODBDQ0Q5MDAwRjNCRjUwIC8qIERhdGFi
YXNlU2VydmljZS54Y2NvbmZpZyAqLzsKIAkJCWJ1aWxkU2V0dGluZ3MgPSB7CiAJCQl9OwogCQkJ
bmFtZSA9IERlYnVnOwogCQl9OwogCQk1MUY3REM0ODE4MENDOTM2MDAyMTJDQTMgLyogUmVsZWFz
ZSAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwotCQkJYmFzZUNvbmZpZ3Vy
YXRpb25SZWZlcmVuY2UgPSA1MUE2MEIyOTE4MENDRDkwMDBGM0JGNTAgLyogU3RvcmFnZVNlcnZp
Y2UueGNjb25maWcgKi87CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDUxQTYwQjI5
MTgwQ0NEOTAwMEYzQkY1MCAvKiBEYXRhYmFzZVNlcnZpY2UueGNjb25maWcgKi87CiAJCQlidWls
ZFNldHRpbmdzID0gewogCQkJfTsKIAkJCW5hbWUgPSBSZWxlYXNlOwogCQl9OwogCQk1MUY3REM0
OTE4MENDOTM2MDAyMTJDQTMgLyogUHJvZHVjdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRD
b25maWd1cmF0aW9uOwotCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1MUE2MEIyOTE4
MENDRDkwMDBGM0JGNTAgLyogU3RvcmFnZVNlcnZpY2UueGNjb25maWcgKi87CisJCQliYXNlQ29u
ZmlndXJhdGlvblJlZmVyZW5jZSA9IDUxQTYwQjI5MTgwQ0NEOTAwMEYzQkY1MCAvKiBEYXRhYmFz
ZVNlcnZpY2UueGNjb25maWcgKi87CiAJCQlidWlsZFNldHRpbmdzID0gewogCQkJfTsKIAkJCW5h
bWUgPSBQcm9kdWN0aW9uOwpAQCAtMTExNDYsNyArMTExMzEsNyBAQAogCQkJZGVmYXVsdENvbmZp
Z3VyYXRpb25Jc1Zpc2libGUgPSAwOwogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJv
ZHVjdGlvbjsKIAkJfTsKLQkJNTFGN0RDNDYxODBDQzkzNjAwMjEyQ0EzIC8qIEJ1aWxkIGNvbmZp
Z3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJTdG9yYWdlIiAqLyA9IHsKKwkJNTFG
N0RDNDYxODBDQzkzNjAwMjEyQ0EzIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJY
TmF0aXZlVGFyZ2V0ICJEYXRhYmFzZXMiICovID0gewogCQkJaXNhID0gWENDb25maWd1cmF0aW9u
TGlzdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCiAJCQkJNTFGN0RDNDcxODBDQzkzNjAw
MjEyQ0EzIC8qIERlYnVnICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25U
b1NlcnZlci5jcHAKaW5kZXggNTRjMmQyODkxMDUxZjAzMjIyNjlkNTVhZTRmNGM1MDM1NWRjMzNm
MS4uZDExM2NiMjA0YTFmNTE1ZTY4ZGU0OTNjM2M1NmRlZWNiZWRjZmQ3MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2Vz
L0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCkBAIC0yOSwxNCArMjksMTQg
QEAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAogI2luY2x1ZGUgIkRhdGFSZWZlcmVu
Y2UuaCIKKyNpbmNsdWRlICJEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5o
IgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJTdG9yYWdlVG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50TWVzc2FnZXMuaCIK
ICNpbmNsdWRlICJXZWJJREJSZXN1bHQuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCi0jaW5j
bHVkZSAiV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJXZWJUb0Rh
dGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL0lEQkNvbm5lY3Rp
b25Ub1NlcnZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSURCQ3Vyc29ySW5mby5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvSURCRXJyb3IuaD4KQEAgLTY1LDE0ICs2NSwxNCBAQCBXZWJJREJDb25uZWN0
aW9uVG9TZXJ2ZXI6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcihTZXNzaW9uSUQgc2Vzc2lvbklE
KQogewogICAgIHJlbGF4QWRvcHRpb25SZXF1aXJlbWVudCgpOwogCi0gICAgbV9pc09wZW5JblNl
cnZlciA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6
RXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKHNlc3Npb25JRCksIE1lc3NhZ2VzOjpTdG9y
YWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6RXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVy
OjpSZXBseShtX2lkZW50aWZpZXIpKTsKKyAgICBtX2lzT3BlbkluU2VydmVyID0gc2VuZFN5bmMo
TWVzc2FnZXM6OkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6RXN0YWJsaXNoSURCQ29u
bmVjdGlvblRvU2VydmVyKHNlc3Npb25JRCksIE1lc3NhZ2VzOjpEYXRhYmFzZVRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb246OkVzdGFibGlzaElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6UmVwbHkobV9pZGVu
dGlmaWVyKSk7CiAgICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXIgPSBJREJDbGllbnQ6OklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6Y3JlYXRlKCp0aGlzKTsKIH0KIAogV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyOjp+V2ViSURCQ29ubmVjdGlvblRvU2VydmVyKCkKIHsKICAgICBpZiAobV9pc09wZW5JblNl
cnZlcikKLSAgICAgICAgc2VuZChNZXNzYWdlczo6U3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b246OlJlbW92ZUlEQkNvbm5lY3Rpb25Ub1NlcnZlcihtX2lkZW50aWZpZXIpKTsKKyAgICAgICAg
c2VuZChNZXNzYWdlczo6RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpSZW1vdmVJREJD
b25uZWN0aW9uVG9TZXJ2ZXIobV9pZGVudGlmaWVyKSk7CiB9CiAKIElQQzo6Q29ubmVjdGlvbiog
V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJv
dmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFz
ZVByb3ZpZGVyLmNwcAppbmRleCA1Y2Y3ZmQyYjMyNTgxMzE5MDU5NjMyNTY2NjM2MjUyNzViMzE4
Y2E2Li5hZTU1OTFiNmMwMmIyZGI1NDhhY2YzNTFjNWU5M2ZmYjk0MGNkMjE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViRGF0YWJhc2VQ
cm92aWRlci5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJXZWJEYXRhYmFzZVByb3Zp
ZGVyLmgiCiAKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCi0jaW5jbHVkZSAiV2ViVG9TdG9yYWdl
UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5l
Y3Rpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0
YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWNlMzNkNjMyZmY0YmYyMGUz
NGY5ZDYwYjQ5Yzc0ZGNiODYzYzRhMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcApA
QCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVG9EYXRhYmFzZVBy
b2Nlc3NDb25uZWN0aW9uLmgiCisKKyNpbmNsdWRlICJEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlck1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlv
bjo6V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
ZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5l
Y3Rpb246OmNyZWF0ZUNsaWVudENvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlz
KSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsKK30KKworV2ViVG9EYXRhYmFzZVByb2Nl
c3NDb25uZWN0aW9uOjp+V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKCkKK3sKK30KKwor
dm9pZCBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSA9PSBNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgYXV0byBpZGJDb25uZWN0aW9uID0gbV93ZWJJREJDb25u
ZWN0aW9uc0J5SWRlbnRpZmllci5nZXQoZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOworICAgICAg
ICBpZiAoaWRiQ29ubmVjdGlvbikKKyAgICAgICAgICAgIGlkYkNvbm5lY3Rpb24tPmRpZFJlY2Vp
dmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQor
I2VuZGlmCisgICAgCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgV2ViVG9E
YXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24pCit7CisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisgICAgZm9yIChhdXRvJiBj
b25uZWN0aW9uIDogbV93ZWJJREJDb25uZWN0aW9uc0J5SWRlbnRpZmllci52YWx1ZXMoKSkKKyAg
ICAgICAgY29ubmVjdGlvbi0+Y29ubmVjdGlvblRvU2VydmVyTG9zdCgpOworCisgICAgbV93ZWJJ
REJDb25uZWN0aW9uc0J5SWRlbnRpZmllci5jbGVhcigpOworICAgIG1fd2ViSURCQ29ubmVjdGlv
bnNCeVNlc3Npb24uY2xlYXIoKTsKKyNlbmRpZgorCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkud2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKHRoaXMpOworfQorCit2b2lk
IFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5h
bWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQoreworfQorCisjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCitXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXImIFdlYlRvRGF0YWJh
c2VQcm9jZXNzQ29ubmVjdGlvbjo6aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihjb25z
dCBTZXNzaW9uSUQmIHNlc3Npb25JRCkKK3sKKyAgICBhdXRvIHJlc3VsdCA9IG1fd2ViSURCQ29u
bmVjdGlvbnNCeVNlc3Npb24uYWRkKHNlc3Npb25JRCwgbnVsbHB0cik7CisgICAgaWYgKHJlc3Vs
dC5pc05ld0VudHJ5KSB7CisgICAgICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBXZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZShzZXNzaW9uSUQpOworICAgICAgICBBU1NFUlQoIW1f
d2ViSURCQ29ubmVjdGlvbnNCeUlkZW50aWZpZXIuY29udGFpbnMocmVzdWx0Lml0ZXJhdG9yLT52
YWx1ZS0+aWRlbnRpZmllcigpKSk7CisgICAgICAgIG1fd2ViSURCQ29ubmVjdGlvbnNCeUlkZW50
aWZpZXIuc2V0KHJlc3VsdC5pdGVyYXRvci0+dmFsdWUtPmlkZW50aWZpZXIoKSwgcmVzdWx0Lml0
ZXJhdG9yLT52YWx1ZSk7CisgICAgfQorCisgICAgcmV0dXJuICpyZXN1bHQuaXRlcmF0b3ItPnZh
bHVlOworfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5l
Y3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFz
ZVByb2Nlc3NDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGYxY2E5MjRhZmYyNjk3ZTkzOTdkNmE4
YjI2OWY4MzY1MGY2MDE2ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTAsMCAr
MSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVz
c2FnZVNlbmRlci5oIgorI2luY2x1ZGUgIldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgU2Vzc2lvbklEOworfQorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uIDogcHVibGlj
IFJlZkNvdW50ZWQ8V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uPiwgcHVibGljIElQQzo6
Q29ubmVjdGlvbjo6Q2xpZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlv
bihjb25uZWN0aW9uSWRlbnRpZmllcikpOworICAgIH0KKyAgICB+V2ViVG9EYXRhYmFzZVByb2Nl
c3NDb25uZWN0aW9uKCk7CisgICAgCisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkg
eyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKKyAgICBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXImIGlkYkNvbm5lY3Rpb25Ub1NlcnZl
ckZvclNlc3Npb24oY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJik7CisjZW5kaWYKKworcHJpdmF0
ZToKKyAgICBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyKTsKKworICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOworICAgIHZv
aWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5n
UmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3Nh
Z2VOYW1lKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgorICAgIElQQzo6
Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7IHJldHVybiBt
X2Nvbm5lY3Rpb24ucHRyKCk7IH0KKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRp
b25JRCgpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+
IG1fY29ubmVjdGlvbjsKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgIEhhc2hN
YXA8V2ViQ29yZTo6U2Vzc2lvbklELCBSZWZQdHI8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPj4g
bV93ZWJJREJDb25uZWN0aW9uc0J5U2Vzc2lvbjsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQ
dHI8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPj4gbV93ZWJJREJDb25uZWN0aW9uc0J5SWRlbnRp
ZmllcjsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3JhZ2VQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMTIx
ODUzZWZkMzI4YTllNTNmMmFmZTgzYzM3NjYxYzljNTJlY2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
OTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYlRvU3RvcmFnZVByb2Nlc3ND
b25uZWN0aW9uLmgiCi0KLSNpbmNsdWRlICJTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1l
c3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViSURCQ29ubmVjdGlvblRvU2VydmVyTWVzc2FnZXMuaCIK
LSNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1u
YW1lc3BhY2UgV2ViS2l0IHsKLQotV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjpXZWJU
b0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNv
bm5lY3Rpb25JZGVudGlmaWVyKQotICAgIDogbV9jb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6
Y3JlYXRlQ2xpZW50Q29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpKQotewot
ICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOwotfQotCi1XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5l
Y3Rpb246On5XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24oKQotewotfQotCi12b2lkIFdl
YlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCi17Ci0jaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCi0gICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgp
ID09IE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSkgewotICAgICAgICBhdXRvIGlkYkNvbm5lY3Rpb24gPSBtX3dlYklEQkNvbm5lY3Rpb25z
QnlJZGVudGlmaWVyLmdldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7Ci0gICAgICAgIGlmIChp
ZGJDb25uZWN0aW9uKQotICAgICAgICAgICAgaWRiQ29ubmVjdGlvbi0+ZGlkUmVjZWl2ZU1lc3Nh
Z2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jZW5kaWYK
LSAgICAKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQotdm9pZCBXZWJUb0RhdGFiYXNl
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikK
LXsKLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICBmb3IgKGF1dG8mIGNvbm5lY3Rp
b24gOiBtX3dlYklEQkNvbm5lY3Rpb25zQnlJZGVudGlmaWVyLnZhbHVlcygpKQotICAgICAgICBj
b25uZWN0aW9uLT5jb25uZWN0aW9uVG9TZXJ2ZXJMb3N0KCk7Ci0KLSAgICBtX3dlYklEQkNvbm5l
Y3Rpb25zQnlJZGVudGlmaWVyLmNsZWFyKCk7Ci0gICAgbV93ZWJJREJDb25uZWN0aW9uc0J5U2Vz
c2lvbi5jbGVhcigpOwotI2VuZGlmCi0KLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJU
b0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQodGhpcyk7Ci19Ci0KLXZvaWQgV2ViVG9E
YXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBD
OjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCi17Ci19Ci0KLSNpZiBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKLVdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciYgV2ViVG9EYXRhYmFzZVByb2Nl
c3NDb25uZWN0aW9uOjppZGJDb25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0IFNlc3Np
b25JRCYgc2Vzc2lvbklEKQotewotICAgIGF1dG8gcmVzdWx0ID0gbV93ZWJJREJDb25uZWN0aW9u
c0J5U2Vzc2lvbi5hZGQoc2Vzc2lvbklELCBudWxscHRyKTsKLSAgICBpZiAocmVzdWx0LmlzTmV3
RW50cnkpIHsKLSAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IFdlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlcjo6Y3JlYXRlKHNlc3Npb25JRCk7Ci0gICAgICAgIEFTU0VSVCghbV93ZWJJREJD
b25uZWN0aW9uc0J5SWRlbnRpZmllci5jb250YWlucyhyZXN1bHQuaXRlcmF0b3ItPnZhbHVlLT5p
ZGVudGlmaWVyKCkpKTsKLSAgICAgICAgbV93ZWJJREJDb25uZWN0aW9uc0J5SWRlbnRpZmllci5z
ZXQocmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS0+aWRlbnRpZmllcigpLCByZXN1bHQuaXRlcmF0b3It
PnZhbHVlKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gKnJlc3VsdC5pdGVyYXRvci0+dmFsdWU7Ci19
Ci0jZW5kaWYKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5l
Y3Rpb24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGYxY2E5MjRhZmYyNjk3ZTkz
OTdkNmE4YjI2OWY4MzY1MGY2MDE2ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3Jh
Z2VQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsNzUgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKi8KLQotI3ByYWdtYSBv
bmNlCi0KLSNpbmNsdWRlICJDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5o
IgotI2luY2x1ZGUgIldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIgotI2luY2x1ZGUgPFdlYkNv
cmUvU2Vzc2lvbklELmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotY2xhc3MgU2Vzc2lvbklEOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQot
Y2xhc3MgV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8
V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uPiwgcHVibGljIElQQzo6Q29ubmVjdGlvbjo6
Q2xpZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlv
bjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKLSAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0aW9u
SWRlbnRpZmllcikpOwotICAgIH0KLSAgICB+V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9u
KCk7Ci0gICAgCi0gICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9j
b25uZWN0aW9uLmdldCgpOyB9Ci0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICBX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXImIGlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24o
Y29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJik7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAgICBXZWJU
b0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsK
LQotICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKLSAgICB2b2lk
IGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkUmVjZWl2
ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1l
c3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVy
cmlkZTsKLQotICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgotICAgIElQQzo6Q29ubmVjdGlvbiog
bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7IHJldHVybiBtX2Nvbm5lY3Rpb24u
cHRyKCk7IH0KLSAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIG92ZXJy
aWRlIHsgcmV0dXJuIDA7IH0KLQotICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlv
bjsKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgIEhhc2hNYXA8V2ViQ29yZTo6
U2Vzc2lvbklELCBSZWZQdHI8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPj4gbV93ZWJJREJDb25u
ZWN0aW9uc0J5U2Vzc2lvbjsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViSURCQ29u
bmVjdGlvblRvU2VydmVyPj4gbV93ZWJJREJDb25uZWN0aW9uc0J5SWRlbnRpZmllcjsKLSNlbmRp
ZgotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKaW5kZXggYzY0ODEwNTA5MjY1ZjYxYTQ3N2FiMTE3MWIzMDc2ZTA1ZjU0NTA2
Yi4uYjJhMmJmMDNhNzQ5YTcxYmIwZjA0MWEwNmZiMjg0MDQ4OTBhMmViOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNjQsNyArNjQsNyBAQAogI2luY2x1ZGUg
IldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRTdHJlYW0uaCIKLSNp
bmNsdWRlICJXZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIldlYlRv
RGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCiAj
aW5jbHVkZSAiV2Vic2l0ZURhdGFUeXBlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNM
b2NrLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZSBiL1NvdXJj
ZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlCmluZGV4IGYzYzFiZjg4ZTY2MzQxMWUwMDJkM2EzODc5
ZTYzMTMxMDlkZjE1YmIuLjE4NmVjMGViMzQ3YTNmY2QwZGExZWE1YzlhYjE1NzJmYTkyMDdmNDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlCisrKyBiL1NvdXJjZS9j
bWFrZS9PcHRpb25zV1BFLmNtYWtlCkBAIC01NSw3ICs1NSw3IEBAIHNldChXZWJDb3JlX0xJQlJB
UllfVFlQRSBTVEFUSUMpCiBzZXQoV2ViS2l0Ml9PVVRQVVRfTkFNRSBXUEVXZWJLaXQpCiBzZXQo
V2ViS2l0Ml9XZWJQcm9jZXNzX09VVFBVVF9OQU1FIFdQRVdlYlByb2Nlc3MpCiBzZXQoV2ViS2l0
Ml9OZXR3b3JrUHJvY2Vzc19PVVRQVVRfTkFNRSBXUEVOZXR3b3JrUHJvY2VzcykKLXNldChXZWJL
aXQyX1N0b3JhZ2VQcm9jZXNzX09VVFBVVF9OQU1FIFdQRVN0b3JhZ2VQcm9jZXNzKQorc2V0KFdl
YktpdDJfRGF0YWJhc2VQcm9jZXNzX09VVFBVVF9OQU1FIFdQRURhdGFiYXNlUHJvY2VzcykKIAog
ZmluZF9wYWNrYWdlKElDVSBSRVFVSVJFRCkKIGZpbmRfcGFja2FnZShUaHJlYWRzIFJFUVVJUkVE
KQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL2d0a3N5bWJvbHMuZmlsdGVyIGIvU291cmNlL2Nt
YWtlL2d0a3N5bWJvbHMuZmlsdGVyCmluZGV4IDkzOGNmZjRmYjdhMzBjZmY0NmJlZTNjNmEwZjlm
YjQwZjdiZDhkYTEuLjVlOGNjMjlmNjY2ZWJhMzU1N2UwYmIzOTk1ODU3YWM3MmFiYjNhMTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9ndGtzeW1ib2xzLmZpbHRlcgorKysgYi9Tb3VyY2UvY21h
a2UvZ3Rrc3ltYm9scy5maWx0ZXIKQEAgLTQsNyArNCw3IEBAIGdsb2JhbDoKICAgV2ViUHJvY2Vz
c01haW5Vbml4OwogICBOZXR3b3JrUHJvY2Vzc01haW5Vbml4OwogICBQbHVnaW5Qcm9jZXNzTWFp
blVuaXg7Ci0gIFN0b3JhZ2VQcm9jZXNzTWFpblVuaXg7CisgIERhdGFiYXNlUHJvY2Vzc01haW5V
bml4OwogICBfWk42V2ViS2l0MjJXZWJLaXRFeHRlbnNpb25NYW5hZ2VyMTBpbml0aWFsaXplRVBO
U18xNEluamVjdGVkQnVuZGxlRVBOM0FQSTZPYmplY3RFOwogICBfWk42V2ViS2l0MjJXZWJLaXRF
eHRlbnNpb25NYW5hZ2VyOXNpbmdsZXRvbkV2OwogbG9jYWw6CmRpZmYgLS1naXQgYS9DaGFuZ2VM
b2cgYi9DaGFuZ2VMb2cKaW5kZXggODQ5OWU0ZTIwZGIwOGZjNjI1ZmU2NDQ5ZmRkNmIzNmJjYjIz
ZjdlZC4uM2Y1MTY0NDRiMDIxMzUzYjZkMzk2NTkzZjA5MzU4MmViNDRkYzQ4MiAxMDA2NDQKLS0t
IGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA3LTI4
ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMjE5OTg2LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0OTYyCisKKyAgICAgICAgImJyb2tlIFBMVCBvbiBpT1Mg
KHJkYXI6Ly9wcm9ibGVtLzMzNjAyNzUxKSIgKFJlcXVlc3RlZCBieQorICAgICAgICBlc3RlcyBv
biAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIlBh
cnQgMSBvZjogUmVuYW1lIERhdGFiYXNlUHJvY2VzcyB0byBTdG9yYWdlUHJvY2Vzcy4iCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQ4NzkKKyAgICAg
ICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjE5OTg2CisKIDIwMTctMDctMjgg
IEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R1RLXSBCdWlsZGluZyB3aXRoIEVOQUJMRV9WSURFTz1PRkYgZmFpbHMK
</data>

          </attachment>
      

    </bug>

</bugzilla>