<?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>230191</bug_id>
          
          <creation_ts>2021-09-11 10:53:39 -0700</creation_ts>
          <short_desc>Add unit test that uses PCM daemon</short_desc>
          <delta_ts>2021-09-30 21:15:04 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1792722</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-11 10:53:39 -0700</bug_when>
    <thetext>Add unit test that uses PCM daemon</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792723</commentid>
    <comment_count>1</comment_count>
      <attachid>437959</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-11 10:57:44 -0700</bug_when>
    <thetext>Created attachment 437959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792728</commentid>
    <comment_count>2</comment_count>
      <attachid>437962</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-11 12:11:26 -0700</bug_when>
    <thetext>Created attachment 437962
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792758</commentid>
    <comment_count>3</comment_count>
      <attachid>437979</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-11 21:17:12 -0700</bug_when>
    <thetext>Created attachment 437979
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793013</commentid>
    <comment_count>4</comment_count>
      <attachid>438057</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-13 11:12:55 -0700</bug_when>
    <thetext>Created attachment 438057
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793045</commentid>
    <comment_count>5</comment_count>
      <attachid>438057</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-13 12:39:53 -0700</bug_when>
    <thetext>Comment on attachment 438057
Patch

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

&gt; Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementConnection.h:45
&gt; +    Connection(CString&amp;&amp; machServiceName);

explicit

&gt; Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementConnection.h:53
&gt; +    const CString m_machServiceName;

Would be nice to have a blank line to separate data members from member functions.

&gt; Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerProxy.cpp:75
&gt; +    : m_connection(machServiceName.utf8()) { }

Don&apos;t we usually put the { } on the next line?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793047</commentid>
    <comment_count>6</comment_count>
      <attachid>438057</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-13 12:41:51 -0700</bug_when>
    <thetext>Comment on attachment 438057
Patch

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

&gt;&gt; Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerProxy.cpp:75
&gt;&gt; +    : m_connection(machServiceName.utf8()) { }
&gt; 
&gt; Don&apos;t we usually put the { } on the next line?

This is more and more common in WebKit when constructors don&apos;t do anything except initialize member variables.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793096</commentid>
    <comment_count>7</comment_count>
      <attachid>438077</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-13 14:24:07 -0700</bug_when>
    <thetext>Created attachment 438077
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793098</commentid>
    <comment_count>8</comment_count>
      <attachid>438078</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-13 14:25:07 -0700</bug_when>
    <thetext>Created attachment 438078
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793124</commentid>
    <comment_count>9</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-13 15:36:37 -0700</bug_when>
    <thetext>r282368</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798753</commentid>
    <comment_count>10</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-29 22:01:10 -0700</bug_when>
    <thetext>http://trac.webkit.org/r283298</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798754</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-29 22:02:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/83703571&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799160</commentid>
    <comment_count>12</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-30 21:15:04 -0700</bug_when>
    <thetext>r283357</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437959</attachid>
            <date>2021-09-11 10:57:44 -0700</date>
            <delta_ts>2021-09-11 12:11:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230191-20210911105743.patch</filename>
            <type>text/plain</type>
            <size>50742</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ5Mzg4ZWFlODE0MjFkZDY1ZmM4NjQ5
MGQ0NWJiMjViZjhjNTk4YjIuLjQ0YTBjYmJhYTRkNTE3NzVlOTNjN2YwZjE0ODFkYzQyOGY5ZTQ3
ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDktMTEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0IHRoYXQgdXNl
cyBQQ00gZGFlbW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzAxOTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHd0Zi9QbGF0Zm9ybUhhdmUuaDoKKyAgICAgICAgKiB3dGYvc3BpL2Rhcndpbi9YUENT
UEkuaDoKKwogMjAyMS0wOS0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgZm9sbG93LXVwIHRvIHIyODIxMDUuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJjNzIz
Y2JlNWE2Nzg0MDU4YWZiYTQ4NzViMmI5OTQ5NzE0YTJiYzUuLjM4YTgwZTUzM2ZkYjVjZDhmNzI0
MmFhMDAxYmEyMTlkMGMwNmQ2NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMjEtMDkt
MTEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAg
ICBBZGQgdW5pdCB0ZXN0IHRoYXQgdXNlcyBQQ00gZGFlbW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAxOTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJIG1ha2UgYSB3YXkgdG8gc3BlY2lmeSB3aGF0
IG1hY2ggc2VydmljZSB0byBjb25uZWN0IHRvLAorICAgICAgICB0aGVuIEkgdGVtcG9yYXJpbHkg
cmVnaXN0ZXIgYW4gZXhlY3V0YWJsZSB3aXRoIGxhdW5jaGQgdG8gcHJvdmlkZSB0aGF0IG1hY2gg
c2VydmljZSwKKyAgICAgICAgdGhlbiBJIHJ1biB0aGUgdGVzdCBjb21tdW5pY2F0aW5nIHdpdGgg
dGhhdCBleGVjdXRhYmxlLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b24uY3BwOgorICAgICAgICAoV2ViS2l0OjptYW5hZ2VyT3JQcm94eSk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRl
Y29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBh
cmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpQQ006OkNvbm5lY3Rpb246OkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQQ006
OkNvbm5lY3Rpb246OnNlbmQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rp
b246OnNlbmRXaXRoUmVwbHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rp
b246OmNvbm5lY3Rpb25Ub0RhZW1vbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6
Q29ubmVjdGlvbjo6c2VuZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVj
dGlvbjo6c2VuZFdpdGhSZXBseSk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9u
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UENNOjptYW5hZ2VyUG9pbnRlcik6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6aW5pdGlhbGl6
ZVBDTVN0b3JhZ2VJbkRpcmVjdG9yeSk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6ZGFlbW9uTWFu
YWdlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpQQ006Ok1hbmFnZXJQcm94eTo6
c2VuZE1lc3NhZ2UgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006Ok1hbmFnZXJQcm94eTo6
c2VuZE1lc3NhZ2VXaXRoUmVwbHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006Ok1hbmFn
ZXJQcm94eTo6TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UENNOjpzZW5kTWVzc2Fn
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6c2VuZE1lc3NhZ2VXaXRoUmVwbHkp
OiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5Lmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnREYWVtb25Db25uZWN0aW9uQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OlBDTTo6
Q29ubmVjdGlvbjo6Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVjdGlv
bjo6aW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OlBDTTo6Q29ubmVjdGlvbjo6c2VuZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29u
bmVjdGlvbjo6c2VuZFdpdGhSZXBseSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29u
bmVjdGlvbjo6Y29ubmVjdGlvblRvRGFlbW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
UENNOjpDb25uZWN0aW9uOjpzZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpD
b25uZWN0aW9uOjpzZW5kV2l0aFJlcGx5KTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYi5pbjoKKyAgICAgICAg
KiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9uRW50cnlQ
b2ludC5tbToKKyAgICAgICAgKFdlYktpdDo6c3RhcnRMaXN0ZW5pbmdGb3JNYWNoU2VydmljZUNv
bm5lY3Rpb25zKToKKyAgICAgICAgKFdlYktpdDo6cmVnaXN0ZXJTY2hlZHVsZWRBY3Rpdml0eUhh
bmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpQQ01EYWVtb25NYWluKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5tbToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gcGNtTWFj
aFNlcnZpY2VOYW1lXSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uIHNldFBDTU1hY2hTZXJ2aWNlTmFtZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uOjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpjb3B5IGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uaDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b246OnNldFBDTU1hY2hTZXJ2aWNlTmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uOjpwY21NYWNoU2VydmljZU5hbWUgY29uc3QpOgorCiAyMDIxLTA5
LTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgQWRkIGluZnJhc3RydWN0dXJlIHRvIGFsbG93IFRMUyBkdXJpbmcgUENNIHRlc3RzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtSGF2ZS5oCmluZGV4IDY5Y2RiNWVhZWNlOTY4ZjlkNTZiOWZmYjZkZTAyNDc4MTgxNWJj
OWYuLmIwNjZlNWZjMTMxZmM0ZThiN2ZiOTU2Nzk1Mzc5OTg5ZjZhODViY2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtSGF2ZS5oCkBAIC04MTMsNiArODEzLDcgQEAKICAgICB8fCAoUExBVEZPUk0oQVBQTEVUVikg
JiYgX19UVl9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNTAwMDApCiAjZGVmaW5lIEhBVkVf
TkVUV09SS19MT0FERVIgMQogI2RlZmluZSBIQVZFX1NFQ19UUlVTVF9DT1BZX0NFUlRJRklDQVRF
X0NIQUlOIDEKKyNkZWZpbmUgSEFWRV9PU19MQVVOQ0hEX0pPQiAxCiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxNDAwMDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oCmluZGV4IDNiNTljZmNlNzA3YzYx
NTI2NDFkMWUzMTA5NGZhOTA1MjliZTU2ZTUuLmZiODNmZjdjMDFlMzU2ZjM3MmYzMTY0NmY1NmEx
NjE2ODc4OGE5OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vWFBDU1BJ
LmgKKysrIGIvU291cmNlL1dURi93dGYvc3BpL2Rhcndpbi9YUENTUEkuaApAQCAtMTE0LDcgKzEx
NCwyMSBAQCBleHRlcm4gIkMiIHZvaWQgeHBjX2FjdGl2aXR5X3JlZ2lzdGVyKGNvbnN0IGNoYXIg
KmlkZW50aWZpZXIsIHhwY19vYmplY3RfdCBjcml0ZQogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspCiAjaW5jbHVkZSA8b3MvdHJhbnNhY3Rpb25fcHJpdmF0ZS5oPgogI2luY2x1ZGUgPHhwYy9w
cml2YXRlLmg+Ci0jZWxzZQorI2lmIEhBVkUoT1NfTEFVTkNIRF9KT0IpCisjaW5jbHVkZSA8QXBw
U2VydmVyU3VwcG9ydC9PU0xhdW5jaGRKb2IuaD4KKyNlbmRpZiAvLyBIQVZFKE9TX0xBVU5DSERf
Sk9CKQorI2Vsc2UgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2lmZGVmIF9fT0JKQ19f
CisjaWYgSEFWRShPU19MQVVOQ0hEX0pPQikKK0BjbGFzcyBPU0xhdW5jaGRKb2JJbmZvOworQGlu
dGVyZmFjZSBPU0xhdW5jaGRKb2IgOiBOU09iamVjdAorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRo
UGxpc3Q6KHhwY19vYmplY3RfdClwbGlzdDsKKy0gKE9TTGF1bmNoZEpvYkluZm8gKilzdWJtaXRB
bmRTdGFydDooTlNFcnJvciAqKillcnJvck91dDsKKy0gKEJPT0wpcmVtb3ZlOihOU0Vycm9yICoq
KWVycm9yT3V0OworQGVuZAorI2VuZGlmIC8vIEhBVkUoT1NfTEFVTkNIRF9KT0IpCisjZW5kaWYg
Ly8gX19PQkpDX18KIAogZXh0ZXJuICJDIiBjb25zdCBjaGFyICogY29uc3QgWFBDX0FDVElWSVRZ
X1JBTkRPTV9JTklUSUFMX0RFTEFZOwogZXh0ZXJuICJDIiBjb25zdCBjaGFyICogY29uc3QgWFBD
X0FDVElWSVRZX1JFUVVJUkVfTkVUV09SS19DT05ORUNUSVZJVFk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IDVlMTVmNjM0MzczNGM5
ZDFiNTNkOGRjMTMxOTkwNWQ4OTIyZjlkYjIuLjI2ZjFjYjYwZjNjZDJkMTRlMjY0Y2NhOTBmOGY4
NTNkOThhOWI2ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb24uY3BwCkBAIC05NSwxMSArOTUsOCBAQCBzdGF0aWMgU3RyaW5nIHBjbVN0b3JlRGly
ZWN0b3J5KGNvbnN0IE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBTdHJpbmcmIHJlcwog
CiBzdGF0aWMgVW5pcXVlUmVmPFBDTTo6TWFuYWdlckludGVyZmFjZT4gbWFuYWdlck9yUHJveHko
TmV0d29ya1Nlc3Npb24mIG5ldHdvcmtTZXNzaW9uLCBOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1By
b2Nlc3MsIGNvbnN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
KQogewotICAgIC8vIEZJWE1FOiBUdXJuIHRoaXMgb24gYW5kIHJlbW92ZSBNYW5hZ2VySW50ZXJm
YWNlIG9uY2UgcmRhcjovLzgwNzAxMDk4IGlzIGNsb3NlZC4KLSAgICBjb25zdGV4cHIgYm9vbCB1
c2VQQ01EYWVtb24gPSBmYWxzZTsKLQotICAgIGlmICh1c2VQQ01EYWVtb24pCi0gICAgICAgIHJl
dHVybiBtYWtlVW5pcXVlUmVmPFBDTTo6TWFuYWdlclByb3h5PigpOworICAgIGlmICghcGFyYW1l
dGVycy5wY21NYWNoU2VydmljZU5hbWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbWFrZVVu
aXF1ZVJlZjxQQ006Ok1hbmFnZXJQcm94eT4ocGFyYW1ldGVycy5wY21NYWNoU2VydmljZU5hbWUp
OwogICAgIHJldHVybiBtYWtlVW5pcXVlUmVmPFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
cj4obWFrZVVuaXF1ZVJlZjxQQ006OkNsaWVudEltcGw+KG5ldHdvcmtTZXNzaW9uLCBuZXR3b3Jr
UHJvY2VzcyksIHBjbVN0b3JlRGlyZWN0b3J5KG5ldHdvcmtTZXNzaW9uLCBwYXJhbWV0ZXJzLnJl
c291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmRpcmVjdG9yeSwgcGFyYW1ldGVycy5yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3Jh
Z2VEaXJlY3RvcnkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRl
eCBiNzdmOTE4MTE0OWI4M2NkYThmYTkzMjJhYjU0NWI5N2FkNjc0NDYzLi45ZThhYmZkOWNhYmVm
OWRmYTQ5ZmRhZDRhYzY3ZDdlODZlZDAyZjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcApAQCAtODcsNiArODcsNyBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIg
PDwgYXBwSGFzUmVxdWVzdGVkQ3Jvc3NXZWJzaXRlVHJhY2tpbmdQZXJtaXNzaW9uOwogICAgIGVu
Y29kZXIgPDwgdXNlTmV0d29ya0xvYWRlcjsKICAgICBlbmNvZGVyIDw8IGFsbG93c0hTVFNXaXRo
VW50cnVzdGVkUm9vdENlcnRpZmljYXRlOworICAgIGVuY29kZXIgPDwgcGNtTWFjaFNlcnZpY2VO
YW1lOwogICAgIGVuY29kZXIgPDwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM7CiB9
CiAKQEAgLTI5MywxMiArMjk0LDE3IEBAIHN0ZDo6b3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVh
dGlvblBhcmFtZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzCiAgICAgZGVj
b2RlciA+PiBhbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZTsKICAgICBpZiAo
IWFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlKQogICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwotICAgIAorCisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHBjbU1hY2hT
ZXJ2aWNlTmFtZTsKKyAgICBkZWNvZGVyID4+IHBjbU1hY2hTZXJ2aWNlTmFtZTsKKyAgICBpZiAo
IXBjbU1hY2hTZXJ2aWNlTmFtZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwogICAg
IHN0ZDo6b3B0aW9uYWw8UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM+IHJlc291cmNl
TG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzOwogICAgIGRlY29kZXIgPj4gcmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1BhcmFtZXRlcnM7CiAgICAgaWYgKCFyZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1l
dGVycykKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICAKKwogICAgIHJldHVybiB7
ewogICAgICAgICAqc2Vzc2lvbklECiAgICAgICAgICwgV1RGTW92ZSgqYm91bmRJbnRlcmZhY2VJ
ZGVudGlmaWVyKQpAQCAtMzQ3LDYgKzM1Myw3IEBAIHN0ZDo6b3B0aW9uYWw8TmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzCiAg
ICAgICAgICwgV1RGTW92ZSgqYXBwSGFzUmVxdWVzdGVkQ3Jvc3NXZWJzaXRlVHJhY2tpbmdQZXJt
aXNzaW9uKQogICAgICAgICAsIFdURk1vdmUoKnVzZU5ldHdvcmtMb2FkZXIpCiAgICAgICAgICwg
V1RGTW92ZSgqYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUpCisgICAgICAg
ICwgV1RGTW92ZSgqcGNtTWFjaFNlcnZpY2VOYW1lKQogICAgICAgICAsIFdURk1vdmUoKnJlc291
cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzKQogICAgIH19OwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVy
cy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVycy5oCmluZGV4IGZiNGEzODc3YjA5Y2Y0M2RkZTY2NWU0ZDYzMzkxZWYzZWRjNzZk
ZjIuLjViNjRmNmIyOWQ0ZmU1ZWYyMzFmZDQzZGI4YjNiN2YxMDE1OTIwZjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTEwMiw2ICsxMDIsNyBAQCBzdHJ1Y3QgTmV0d29ya1Nl
c3Npb25DcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGJvb2wgYXBwSGFzUmVxdWVzdGVkQ3Jvc3NX
ZWJzaXRlVHJhY2tpbmdQZXJtaXNzaW9uIHsgZmFsc2UgfTsKICAgICBib29sIHVzZU5ldHdvcmtM
b2FkZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2Vy
dGlmaWNhdGUgeyBmYWxzZSB9OworICAgIFN0cmluZyBwY21NYWNoU2VydmljZU5hbWU7CiAKICAg
ICBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycyByZXNvdXJjZUxvYWRTdGF0aXN0aWNz
UGFyYW1ldGVyczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggNTYzYTAzNjBk
YjUzMTk4MWZlNjc0YjI2M2FmNDAzMjMxZDkxOTg1ZS4uNjUwMjlhNjgzMmJkZWRhMWZkMGE0ZTFh
M2ZhYTljNzFlY2UzNWNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmNwcApAQCAtMzQsMTgg
KzM0LDE3IEBAIG5hbWVzcGFjZSBQQ00gewogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogCi1Db25u
ZWN0aW9uIENvbm5lY3Rpb246OmNvbm5lY3Rpb25Ub0RhZW1vbigpCitDb25uZWN0aW9uOjpDb25u
ZWN0aW9uKENTdHJpbmcmJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiB7
IH07CiB9CiAKLXZvaWQgQ29ubmVjdGlvbjo6c2VuZChNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3Nh
Z2UmJikKK3ZvaWQgQ29ubmVjdGlvbjo6c2VuZChNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2Um
JikgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIENvbm5lY3Rpb246
OnNlbmRXaXRoUmVwbHkoTWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRW5jb2RlZE1lc3NhZ2UmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lk
IENvbm5lY3Rpb246OnNlbmRXaXRoUmVwbHkoTWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRW5jb2RlZE1lc3NhZ2UmJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBjb21wbGV0aW9uSGFu
ZGxlcih7IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmgKaW5kZXggYWYzYTkxMDIxY2JlNDAyMDdl
NTJhMjViY2Y1MDU5NzZjOGZiNmJiNC4uMjkxN2Y3NTVjOTIxNzc1Nzg3NDIwZmQ5ZTkxZTNiM2Yz
NWFlNDlhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSA8d3RmL09TT2JqZWN0UHRyLmg+
CkBAIC0zOSwxOCArNDAsMTggQEAgbmFtZXNwYWNlIFBDTSB7CiBlbnVtIGNsYXNzIE1lc3NhZ2VU
eXBlIDogdWludDhfdDsKIHVzaW5nIEVuY29kZWRNZXNzYWdlID0gVmVjdG9yPHVpbnQ4X3Q+Owog
Ci1jbGFzcyBDb25uZWN0aW9uIHsKK2NsYXNzIENvbm5lY3Rpb24gOiBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8Q29ubmVjdGlvbj4gewogcHVibGljOgotICAgIHN0YXRpYyBDb25uZWN0aW9uIGNvbm5l
Y3Rpb25Ub0RhZW1vbigpOworICAgIENvbm5lY3Rpb24oQ1N0cmluZyYmIG1hY2hTZXJ2aWNlTmFt
ZSk7CiAKLSAgICB2b2lkIHNlbmQoTWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYpOwotICAg
IHZvaWQgc2VuZFdpdGhSZXBseShNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFbmNvZGVkTWVzc2FnZSYmKT4mJik7CisgICAgdm9pZCBzZW5kKE1l
c3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2FnZSYmKSBjb25zdDsKKyAgICB2b2lkIHNlbmRXaXRoUmVw
bHkoTWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
RW5jb2RlZE1lc3NhZ2UmJik+JiYpIGNvbnN0OwogCiBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENP
Q09BKQotICAgIENvbm5lY3Rpb24oT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4mJik7Ci0K
LSAgICBPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBtX2Nvbm5lY3Rpb247CisgICAgdm9p
ZCBpbml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVkKCkgY29uc3Q7CisgICAgY29uc3QgQ1N0cmlu
ZyBtX21hY2hTZXJ2aWNlTmFtZTsKKyAgICBtdXRhYmxlIE9TT2JqZWN0UHRyPHhwY19jb25uZWN0
aW9uX3Q+IG1fY29ubmVjdGlvbjsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXJJbnRlcmZhY2UuY3BwCmluZGV4IDVkMTNlNzRjMWRkMjY4ODc4ZjI5Yzk3MmRhNWY3MWM3OTEx
NjIyZWIuLjY3YTQ2OTMxM2NjODJjYmZmYTQ2NDFiMDg0YWVkOWFhNzAyMjcyYzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHAKQEAgLTE2NywxMSArMTY3LDIyIEBAIGJv
b2wgbWVzc2FnZVR5cGVTZW5kc1JlcGx5KE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlKQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAorc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXI+JiBtYW5hZ2VyUG9pbnRlcigpCit7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPHN0ZDo6dW5pcXVlX3B0cjxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI+PiBt
YW5hZ2VyOworICAgIHJldHVybiBtYW5hZ2VyLmdldCgpOworfQorCit2b2lkIGluaXRpYWxpemVQ
Q01TdG9yYWdlSW5EaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBzdG9yYWdlRGlyZWN0b3J5KQorewor
ICAgIEFTU0VSVCghbWFuYWdlclBvaW50ZXIoKSk7CisgICAgbWFuYWdlclBvaW50ZXIoKSA9IG1h
a2VVbmlxdWU8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyPihtYWtlVW5pcXVlUmVmPFBD
TTo6RGFlbW9uQ2xpZW50PigpLCBzdG9yYWdlRGlyZWN0b3J5KTsKK30KKwogc3RhdGljIFByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlciYgZGFlbW9uTWFuYWdlcigpCiB7Ci0gICAgLy8gRklY
TUU6IEdpdmUgdGhlIG1hbmFnZXIgYSB2YWxpZCBzdG9yYWdlIGRpcmVjdG9yeS4KLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyPiBpbnN0YW5j
ZShtYWtlVW5pcXVlUmVmPFBDTTo6RGFlbW9uQ2xpZW50PigpLCBTdHJpbmcoKSk7Ci0gICAgcmV0
dXJuIGluc3RhbmNlLmdldCgpOworICAgIEFTU0VSVChtYW5hZ2VyUG9pbnRlcigpKTsKKyAgICBy
ZXR1cm4gKm1hbmFnZXJQb2ludGVyKCk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEluZm8+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaAppbmRleCA0MDM2MmRmYTIyMTRlYzgzN2U3
NTdlOTRiY2Q0YWU4YTNjYjI1MGQ5Li41Y2Y0ZTNkZTIxZDBjYzM5OWMyM2FkMDkwN2EzM2Q4ZWVm
MDdiNWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmgKQEAgLTEwMSw2ICsx
MDEsOCBAQCB1c2luZyBFbmNvZGVkTWVzc2FnZSA9IFZlY3Rvcjx1aW50OF90PjsKIHZvaWQgZGVj
b2RlTWVzc2FnZUFuZFNlbmRUb01hbmFnZXIoTWVzc2FnZVR5cGUsIFZlY3Rvcjx1aW50OF90PiYm
IG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPHVpbnQ4X3Q+JiYpPiYmKTsK
IGJvb2wgbWVzc2FnZVR5cGVTZW5kc1JlcGx5KE1lc3NhZ2VUeXBlKTsKIAordm9pZCBpbml0aWFs
aXplUENNU3RvcmFnZUluRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYpOworCiB9IC8vIG5hbWVzcGFj
ZSBQQ00KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHku
Y3BwCmluZGV4IDEwODI2NTJiMDBlMjcxMzRlYjQxZjBlZTIxYTg2YTU4MTk1NDg2ZmQuLjliY2Iz
MTFlNDU4YjE2ZWJlNzNkNDNmMjNiNjJhMzFmM2RmNGQ4N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyUHJveHkuY3BwCkBAIC0zNSwxMSArMzUsMTEgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBuYW1l
c3BhY2UgUENNIHsKIAogdGVtcGxhdGU8TWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIHR5cGVuYW1l
Li4uIEFyZ3M+Ci12b2lkIHNlbmRNZXNzYWdlKEFyZ3MmJi4uLiBhcmdzKQordm9pZCBNYW5hZ2Vy
UHJveHk6OnNlbmRNZXNzYWdlKEFyZ3MmJi4uLiBhcmdzKSBjb25zdAogewogICAgIEVuY29kZXIg
ZW5jb2RlcjsKICAgICBlbmNvZGVyLmVuY29kZShzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4p
OwotICAgIENvbm5lY3Rpb246OmNvbm5lY3Rpb25Ub0RhZW1vbigpLnNlbmQobWVzc2FnZVR5cGUs
IGVuY29kZXIudGFrZUJ1ZmZlcigpKTsKKyAgICBtX2Nvbm5lY3Rpb24uc2VuZChtZXNzYWdlVHlw
ZSwgZW5jb2Rlci50YWtlQnVmZmVyKCkpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdz
PiBzdHJ1Y3QgUmVwbHlDYWxsZXI7CkBAIC02MSwxNiArNjEsMTkgQEAgdGVtcGxhdGU8PiBzdHJ1
Y3QgUmVwbHlDYWxsZXI8U3RyaW5nPiB7CiB9OwogCiB0ZW1wbGF0ZTxNZXNzYWdlVHlwZSBtZXNz
YWdlVHlwZSwgdHlwZW5hbWUuLi4gQXJncywgdHlwZW5hbWUuLi4gUmVwbHlBcmdzPgotdm9pZCBz
ZW5kTWVzc2FnZVdpdGhSZXBseShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlcGx5QXJncy4uLik+
JiYgY29tcGxldGlvbkhhbmRsZXIsIEFyZ3MmJi4uLiBhcmdzKQordm9pZCBNYW5hZ2VyUHJveHk6
OnNlbmRNZXNzYWdlV2l0aFJlcGx5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVwbHlBcmdzLi4u
KT4mJiBjb21wbGV0aW9uSGFuZGxlciwgQXJncyYmLi4uIGFyZ3MpIGNvbnN0CiB7CiAgICAgRW5j
b2RlciBlbmNvZGVyOwogICAgIGVuY29kZXIuZW5jb2RlKHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdz
KS4uLik7Ci0gICAgQ29ubmVjdGlvbjo6Y29ubmVjdGlvblRvRGFlbW9uKCkuc2VuZFdpdGhSZXBs
eShtZXNzYWdlVHlwZSwgZW5jb2Rlci50YWtlQnVmZmVyKCksIFtjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoYXV0byByZXBseUJ1ZmZlcikgbXV0YWJsZSB7
CisgICAgbV9jb25uZWN0aW9uLnNlbmRXaXRoUmVwbHkobWVzc2FnZVR5cGUsIGVuY29kZXIudGFr
ZUJ1ZmZlcigpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0gKGF1dG8gcmVwbHlCdWZmZXIpIG11dGFibGUgewogICAgICAgICBEZWNvZGVyIGRlY29kZXIo
V1RGTW92ZShyZXBseUJ1ZmZlcikpOwogICAgICAgICBSZXBseUNhbGxlcjxSZXBseUFyZ3MuLi4+
OjpjYWxsUmVwbHkoV1RGTW92ZShkZWNvZGVyKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwogICAgIH0pOwogfQogCitNYW5hZ2VyUHJveHk6Ok1hbmFnZXJQcm94eShjb25zdCBTdHJpbmcm
IG1hY2hTZXJ2aWNlTmFtZSkKKyAgICA6IG1fY29ubmVjdGlvbihtYWNoU2VydmljZU5hbWUudXRm
OCgpKSB7IH0KKwogdm9pZCBNYW5hZ2VyUHJveHk6OnN0b3JlVW5hdHRyaWJ1dGVkKFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYgcGNtKQogewogICAgIHNlbmRNZXNzYWdlPE1lc3Nh
Z2VUeXBlOjpTdG9yZVVuYXR0cmlidXRlZD4ocGNtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHku
aAppbmRleCAxNTExMDk4NzY4OTQxN2EzYjE4NmEyNDIwM2NjMWNjMzYyNzZiZjFmLi43YzBhZjBm
NjM5MGQzNmNkYzFmYTZiNjEwNGMzODRiNjM2NzVlNTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQ
cm94eS5oCkBAIC0yNSw4ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oIgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9j
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IApAQCAtMzUsNiArMzcsOCBAQCBuYW1lc3BhY2UgUENNIHsKIGNsYXNzIE1hbmFnZXJQcm94eSA6
IHB1YmxpYyBNYW5hZ2VySW50ZXJmYWNlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKKyAgICBNYW5hZ2VyUHJveHkoY29uc3QgU3RyaW5nJiBtYWNoU2VydmljZU5hbWUp
OworCiAgICAgdm9pZCBzdG9yZVVuYXR0cmlidXRlZChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCYmKSBmaW5hbDsKICAgICB2b2lkIGhhbmRsZUF0dHJpYnV0aW9uKFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNvbnN0IFVS
TCYgcmVxdWVzdFVSTCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiByZWRpcmVjdERvbWFp
biwgY29uc3QgVVJMJiBmaXJzdFBhcnR5VVJMKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CkBAIC01Myw2ICs1NywxNCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzdGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nKCkgZmluYWw7CiAgICAg
dm9pZCBkZXN0cm95U3RvcmVGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikg
ZmluYWw7CiAgICAgdm9pZCBhbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3Rp
bmcoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJikgZmluYWw7CisKK3ByaXZhdGU6Cisg
ICAgdGVtcGxhdGU8TWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIHR5cGVuYW1lLi4uIEFyZ3M+Cisg
ICAgdm9pZCBzZW5kTWVzc2FnZShBcmdzJiYuLi4pIGNvbnN0OworICAgIHRlbXBsYXRlPE1lc3Nh
Z2VUeXBlIG1lc3NhZ2VUeXBlLCB0eXBlbmFtZS4uLiBBcmdzLCB0eXBlbmFtZS4uLiBSZXBseUFy
Z3M+CisgICAgdm9pZCBzZW5kTWVzc2FnZVdpdGhSZXBseShDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFJlcGx5QXJncy4uLik+JiYsIEFyZ3MmJi4uLikgY29uc3Q7CisKKyAgICBDb25uZWN0aW9uIG1f
Y29ubmVjdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBDTQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudERhZW1vbkNvbm5lY3Rpb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnREYWVtb25Db25uZWN0aW9uQ29jb2EubW0KaW5kZXggNjFiNTg1MDY2NThh
M2Y5NTM1ZWVmYjFhNjA1YTI1NWQ4NzI0NzcxYS4uODkyODdhODE5OTJmZTJjZmFiZmU0MDExNjdm
YjI5YjY5MDFhZTI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhZW1v
bkNvbm5lY3Rpb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGFlbW9u
Q29ubmVjdGlvbkNvY29hLm1tCkBAIC0zMywyNiArMzMsMjEgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiAKIG5hbWVzcGFjZSBQQ00gewogCi1Db25uZWN0aW9uOjpDb25uZWN0aW9uKE9TT2JqZWN0UHRy
PHhwY19jb25uZWN0aW9uX3Q+JiYgY29ubmVjdGlvbikKLSAgICA6IG1fY29ubmVjdGlvbihXVEZN
b3ZlKGNvbm5lY3Rpb24pKSB7IH0KK0Nvbm5lY3Rpb246OkNvbm5lY3Rpb24oQ1N0cmluZyYmIG1h
Y2hTZXJ2aWNlTmFtZSkKKyAgICA6IG1fbWFjaFNlcnZpY2VOYW1lKFdURk1vdmUobWFjaFNlcnZp
Y2VOYW1lKSkgeyB9CiAKLUNvbm5lY3Rpb24gQ29ubmVjdGlvbjo6Y29ubmVjdGlvblRvRGFlbW9u
KCkKK3ZvaWQgQ29ubmVjdGlvbjo6aW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCgpIGNvbnN0
CiB7Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8T1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4+IGNvbm5lY3Rpb247Ci0gICAgaWYg
KCFjb25uZWN0aW9uLmdldCgpKSB7Ci0gICAgICAgIGNvbm5lY3Rpb24uZ2V0KCkgPSBhZG9wdE9T
T2JqZWN0KHhwY19jb25uZWN0aW9uX2NyZWF0ZV9tYWNoX3NlcnZpY2UoImNvbS5hcHBsZS53ZWJr
aXQuYWRhdHRyaWJ1dGlvbmQuc2VydmljZSIsIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIDAp
KTsKLSAgICAgICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2ZW50X2hhbmRsZXIoY29ubmVjdGlvbi5n
ZXQoKS5nZXQoKSwgXih4cGNfb2JqZWN0X3QgZXZlbnQpIHsKLSAgICAgICAgICAgIEFTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7Ci0gICAgICAgICAgICBpZiAoZXZlbnQgPT0gWFBDX0VSUk9SX0NP
Tk5FQ1RJT05fSU5URVJSVVBURUQpIHsKLSAgICAgICAgICAgICAgICAvLyBEYWVtb24gY3Jhc2hl
ZCwgd2Ugd2lsbCBuZWVkIHRvIG1ha2UgYSBuZXcgY29ubmVjdGlvbiB0byBhIG5ldyBpbnN0YW5j
ZSBvZiB0aGUgZGFlbW9uLgotICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uZ2V0KCkgPSBudWxs
cHRyOwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgIH0pOwotICAgICAgICB4cGNfY29ubmVjdGlvbl9hY3RpdmF0ZShjb25u
ZWN0aW9uLmdldCgpLmdldCgpKTsKLSAgICB9Ci0gICAgcmV0dXJuIENvbm5lY3Rpb24oT1NPYmpl
Y3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4oY29ubmVjdGlvbi5nZXQoKSkpOworICAgIGlmIChtX2Nv
bm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKyAgICBtX2Nvbm5lY3Rpb24gPSBhZG9wdE9TT2Jq
ZWN0KHhwY19jb25uZWN0aW9uX2NyZWF0ZV9tYWNoX3NlcnZpY2UobV9tYWNoU2VydmljZU5hbWUu
ZGF0YSgpLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCAwKSk7CisgICAgeHBjX2Nvbm5lY3Rp
b25fc2V0X2V2ZW50X2hhbmRsZXIobV9jb25uZWN0aW9uLmdldCgpLCBbd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyldKHhwY19vYmplY3RfdCBldmVudCkgeworICAgICAgICBpZiAod2Vha1Ro
aXMgJiYgZXZlbnQgPT0gWFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5URVJSVVBURUQpIHsKKyAgICAg
ICAgICAgIC8vIERhZW1vbiBjcmFzaGVkLCB3ZSB3aWxsIG5lZWQgdG8gbWFrZSBhIG5ldyBjb25u
ZWN0aW9uIHRvIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBkYWVtb24uCisgICAgICAgICAgICB3ZWFr
VGhpcy0+bV9jb25uZWN0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0pOworICAgIHhw
Y19jb25uZWN0aW9uX2FjdGl2YXRlKG1fY29ubmVjdGlvbi5nZXQoKSk7CiB9CiAKIHN0YXRpYyBP
U09iamVjdFB0cjx4cGNfb2JqZWN0X3Q+IGRpY3Rpb25hcnlGcm9tTWVzc2FnZShNZXNzYWdlVHlw
ZSBtZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiBtZXNzYWdlKQpAQCAtNjMsMjUgKzU4LDIy
IEBAIHN0YXRpYyBPU09iamVjdFB0cjx4cGNfb2JqZWN0X3Q+IGRpY3Rpb25hcnlGcm9tTWVzc2Fn
ZShNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwKICAgICByZXR1cm4gZGljdGlvbmFyeTsKIH0KIAot
dm9pZCBDb25uZWN0aW9uOjpzZW5kKE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlLCBFbmNvZGVkTWVz
c2FnZSYmIG1lc3NhZ2UpCit2b2lkIENvbm5lY3Rpb246OnNlbmQoTWVzc2FnZVR5cGUgbWVzc2Fn
ZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYgbWVzc2FnZSkgY29uc3QKIHsKLSAgICBpZiAoIW1fY29u
bmVjdGlvbikgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgIGluaXRpYWxpemVD
b25uZWN0aW9uSWZOZWVkZWQoKTsKIAogICAgIHhwY19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZSht
X2Nvbm5lY3Rpb24uZ2V0KCksIGRpY3Rpb25hcnlGcm9tTWVzc2FnZShtZXNzYWdlVHlwZSwgV1RG
TW92ZShtZXNzYWdlKSkuZ2V0KCkpOwogfQogCi12b2lkIENvbm5lY3Rpb246OnNlbmRXaXRoUmVw
bHkoTWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYgbWVzc2FnZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFbmNvZGVkTWVzc2FnZSYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3ZvaWQgQ29ubmVjdGlvbjo6c2VuZFdpdGhSZXBseShNZXNzYWdlVHlwZSBtZXNzYWdlVHlw
ZSwgRW5jb2RlZE1lc3NhZ2UmJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEVuY29k
ZWRNZXNzYWdlJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAogewotICAgIGlmICghbV9j
b25uZWN0aW9uKSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1
cm4gY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKLSAgICB9CisgICAgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKKyAgICBpbml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVkKCk7CiAKICAgICBhdXRv
IGRpY3Rpb25hcnkgPSBkaWN0aW9uYXJ5RnJvbU1lc3NhZ2UobWVzc2FnZVR5cGUsIFdURk1vdmUo
bWVzc2FnZSkpOwogICAgIHhwY19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZV93aXRoX3JlcGx5KG1f
Y29ubmVjdGlvbi5nZXQoKSwgZGljdGlvbmFyeS5nZXQoKSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVl
dWUoKSwgbWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXSAoeHBjX29iamVjdF90IHJlcGx5KSBtdXRhYmxlIHsKKyAgICAgICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAgICAgaWYgKHhwY19nZXRfdHlwZShyZXBseSkgIT0g
WFBDX1RZUEVfRElDVElPTkFSWSkgewogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuTmV0d29y
a1Byb2Nlc3Muc2IuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL21hYy9jb20uYXBw
bGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiLmluCmluZGV4IDE5NzRiOGU5ZjI1OWFlZWZjOTQ0
NjQ2ODRiMjA0ZDM1MGYzOGQ0MWIuLmI0MGJjM2NhNzBmNDZiYjNiMjI3YWM4MjQ5ZjA5Y2NiYjRl
ZTUyZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL2NvbS5h
cHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2IuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYi5pbgpAQCAt
MzU4LDYgKzM1OCw3IEBACiApCiAKIChhbGxvdyBtYWNoLWxvb2t1cCAoZ2xvYmFsLW5hbWUgImNv
bS5hcHBsZS53ZWJraXQuYWRhdHRyaWJ1dGlvbmQuc2VydmljZSIpKQorKGFsbG93IG1hY2gtbG9v
a3VwIChnbG9iYWwtbmFtZSAib3JnLndlYmtpdC5wY210ZXN0ZGFlbW9uLnNlcnZpY2UiKSkKIAog
KHdpdGgtZmlsdGVyICh1aWQgMCkKICAgICAoYWxsb3cgbWFjaC1sb29rdXAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvRGFlbW9uL1BD
TURhZW1vbkVudHJ5UG9pbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRp
bGl0aWVzL0NvY29hL0RhZW1vbi9QQ01EYWVtb25FbnRyeVBvaW50Lm1tCmluZGV4IDg1MTUxNDMz
OTNiNjMzZGQwYTYxNTg5MjRiYmU5ZTQ3MDczNWRjNGMuLjBjZDBmZjczNjE1MmU4N2M4NDIwNjU2
MTc1NzE3ZjA5MDI5YTZhN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5
UG9pbnRVdGlsaXRpZXMvQ29jb2EvRGFlbW9uL1BDTURhZW1vbkVudHJ5UG9pbnQubW0KKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENN
RGFlbW9uRW50cnlQb2ludC5tbQpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRYUENVdGlsaXRpZXMuaCIKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRh
dGlvbi5oPgogI2ltcG9ydCA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW1wb3J0IDx3dGYv
RmlsZVN5c3RlbS5oPgogI2ltcG9ydCA8d3RmL0hhc2hTZXQuaD4KICNpbXBvcnQgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgpAQCAtNzYsOSArNzcsOSBA
QCBzdGF0aWMgdm9pZCBjb25uZWN0aW9uRXZlbnRIYW5kbGVyKHhwY19vYmplY3RfdCByZXF1ZXN0
KQogICAgIGRlY29kZU1lc3NhZ2VBbmRTZW5kVG9NYW5hZ2VyKG1lc3NhZ2VUeXBlLCBXVEZNb3Zl
KGVuY29kZWRNZXNzYWdlKSwgcmVwbHlTZW5kZXIobWVzc2FnZVR5cGUsIHJlcXVlc3QpKTsKIH0K
IAotc3RhdGljIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JNYWNoU2VydmljZUNvbm5lY3Rpb25zKCkK
K3N0YXRpYyB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9yTWFjaFNlcnZpY2VDb25uZWN0aW9ucyhjb25z
dCBjaGFyKiBzZXJ2aWNlTmFtZSkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8T1NPYmpl
Y3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4+IGxpc3RlbmVyID0geHBjX2Nvbm5lY3Rpb25fY3JlYXRl
X21hY2hfc2VydmljZSgiY29tLmFwcGxlLndlYmtpdC5hZGF0dHJpYnV0aW9uZC5zZXJ2aWNlIiwg
ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgWFBDX0NPTk5FQ1RJT05fTUFDSF9TRVJWSUNFX0xJ
U1RFTkVSKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8T1NPYmplY3RQdHI8eHBjX2Nvbm5l
Y3Rpb25fdD4+IGxpc3RlbmVyID0geHBjX2Nvbm5lY3Rpb25fY3JlYXRlX21hY2hfc2VydmljZShz
ZXJ2aWNlTmFtZSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgWFBDX0NPTk5FQ1RJT05fTUFD
SF9TRVJWSUNFX0xJU1RFTkVSKTsKICAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxl
cihsaXN0ZW5lci5nZXQoKS5nZXQoKSwgXih4cGNfb2JqZWN0X3QgcGVlcikgewogICAgICAgICBp
ZiAoeHBjX2dldF90eXBlKHBlZXIpICE9IFhQQ19UWVBFX0NPTk5FQ1RJT04pCiAgICAgICAgICAg
ICByZXR1cm47CkBAIC0xMDQsNiArMTA1LDcgQEAgc3RhdGljIHZvaWQgc3RhcnRMaXN0ZW5pbmdG
b3JNYWNoU2VydmljZUNvbm5lY3Rpb25zKCkKIAogc3RhdGljIHZvaWQgcmVnaXN0ZXJTY2hlZHVs
ZWRBY3Rpdml0eUhhbmRsZXIoKQogeworICAgIE5TTG9nKEAiUmVnaXN0ZXJpbmcgWFBDIGFjdGl2
aXR5Iik7CiAgICAgeHBjX2FjdGl2aXR5X3JlZ2lzdGVyKCJjb20uYXBwbGUud2Via2l0LmFkYXR0
cmlidXRpb25kLmFjdGl2aXR5IiwgWFBDX0FDVElWSVRZX0NIRUNLX0lOLCBeKHhwY19hY3Rpdml0
eV90IGFjdGl2aXR5KSB7CiAgICAgICAgIGlmICh4cGNfYWN0aXZpdHlfZ2V0X3N0YXRlKGFjdGl2
aXR5KSA9PSBYUENfQUNUSVZJVFlfU1RBVEVfQ0hFQ0tfSU4pIHsKICAgICAgICAgICAgIHhwY19v
YmplY3RfdCBjcml0ZXJpYSA9IHhwY19hY3Rpdml0eV9jb3B5X2NyaXRlcmlhKGFjdGl2aXR5KTsK
QEAgLTEyNSwxNSArMTI3LDIxIEBAIHN0YXRpYyB2b2lkIGVudGVyU2FuZGJveCgpCiAKIGludCBQ
Q01EYWVtb25NYWluKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikKIHsKLSAgICBpZiAoYXJn
YyAhPSAyIHx8IHN0cmNtcChhcmd2WzFdLCAicnVuQXNEYWVtb24iKSkgewotICAgICAgICBOU0xv
ZyhAIlRoaXMgZXhlY3V0YWJsZSBpcyBpbnRlbmRlZCB0byBiZSBydW4gYXMgYSBkYWVtb24uIik7
CisgICAgaWYgKGFyZ2MgPCA1IHx8IHN0cmNtcChhcmd2WzFdLCAiLS1tYWNoU2VydmljZU5hbWUi
KSB8fCBzdHJjbXAoYXJndlszXSwgIi0tc3RvcmFnZUxvY2F0aW9uIikpIHsKKyAgICAgICAgTlNM
b2coQCJVc2FnZTogJXMgLS1tYWNoU2VydmljZU5hbWUgPG5hbWU+IC0tc3RvcmFnZUxvY2F0aW9u
IDxsb2NhdGlvbj4gWy0tc3RhcnRBY3Rpdml0eV0iLCBhcmd2WzBdKTsKICAgICAgICAgcmV0dXJu
IC0xOwogICAgIH0KKyAgICBjb25zdCBjaGFyKiBtYWNoU2VydmljZU5hbWUgPSBhcmd2WzJdOwor
ICAgIGNvbnN0IGNoYXIqIHN0b3JhZ2VMb2NhdGlvbiA9IGFyZ3ZbNF07CisgICAgYm9vbCBzdGFy
dEFjdGl2aXR5ID0gYXJnYyA+IDUgJiYgIXN0cmNtcChhcmd2WzVdLCAiLS1zdGFydEFjdGl2aXR5
Iik7CisKICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKICAgICAgICAgZW50ZXJTYW5kYm94KCk7Ci0g
ICAgICAgIHN0YXJ0TGlzdGVuaW5nRm9yTWFjaFNlcnZpY2VDb25uZWN0aW9ucygpOwotICAgICAg
ICByZWdpc3RlclNjaGVkdWxlZEFjdGl2aXR5SGFuZGxlcigpOworICAgICAgICBzdGFydExpc3Rl
bmluZ0Zvck1hY2hTZXJ2aWNlQ29ubmVjdGlvbnMobWFjaFNlcnZpY2VOYW1lKTsKKyAgICAgICAg
aWYgKHN0YXJ0QWN0aXZpdHkpCisgICAgICAgICAgICByZWdpc3RlclNjaGVkdWxlZEFjdGl2aXR5
SGFuZGxlcigpOwogICAgICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkKCk7CisgICAgICAg
IFBDTTo6aW5pdGlhbGl6ZVBDTVN0b3JhZ2VJbkRpcmVjdG9yeShGaWxlU3lzdGVtOjpzdHJpbmdG
cm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHN0b3JhZ2VMb2NhdGlvbikpOwogICAgIH0KICAg
ICBDRlJ1bkxvb3BSdW4oKTsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmgKaW5kZXggN2QwYWU3OWUyMTE4NDg0ZWVhYzlkZGM4OWJmY2E1YzFlMjA5
ZDRmMC4uMDg1MTIzZDBkNGZhYmU5OWNmZjExNGYxNjFlNjQ0ODBkMzQ4OTM1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKQEAgLTc2LDYgKzc2LDcgQEAgV0tfQ0xB
U1NfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKQogQHByb3BlcnR5IChub25hdG9t
aWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFNUU1N0b3JhZ2VEaXJlY3Rvcnk6KSBOU1VS
TCAqaHN0c1N0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9z
KDE1LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGVuYWJsZUluQXBwQnJvd3NlclBy
aXZhY3lGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7
CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RD
ZXJ0aWZpY2F0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworQHBy
b3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0UENNTWFjaFNlcnZp
Y2VOYW1lOikgTlNTdHJpbmcgKnBjbU1hY2hTZXJ2aWNlTmFtZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21p
YywgbnVsbGFibGUsIGNvcHkpIE5TVVJMICphbHRlcm5hdGl2ZVNlcnZpY2VzU3RvcmFnZURpcmVj
dG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogQHByb3BlcnR5
IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1VSTCAqc3RhbmRhbG9uZUFwcGxpY2F0aW9u
VVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KaW5kZXggYWUzOWI2NjE4NTA5YzlmMmJlZWE0
ZjlkOTU1YzA0MWFkYjdhZjM3Ni4uNTkwMDc1MmY3YjA0MTQ5NjYwYTU3ZGQyZTRiNDI5NjYxODcw
MDUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQpAQCAtNTIx
LDYgKzUyMSwxNiBAQCBzdGF0aWMgdm9pZCBjaGVja1VSTEFyZ3VtZW50KE5TVVJMICp1cmwpCiAg
ICAgX2NvbmZpZ3VyYXRpb24tPnNldEFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmlj
YXRlKGFsbG93cyk7CiB9CiAKKy0gKE5TU3RyaW5nICopcGNtTWFjaFNlcnZpY2VOYW1lCit7Cisg
ICAgcmV0dXJuIF9jb25maWd1cmF0aW9uLT5wY21NYWNoU2VydmljZU5hbWUoKTsKK30KKworLSAo
dm9pZClzZXRQQ01NYWNoU2VydmljZU5hbWU6KE5TU3RyaW5nICopbmFtZQoreworICAgIF9jb25m
aWd1cmF0aW9uLT5zZXRQQ01NYWNoU2VydmljZU5hbWUobmFtZSk7Cit9CisKIC0gKEJPT0wpYWxs
TG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZwogewog
ICAgIHJldHVybiBfY29uZmlndXJhdGlvbi0+YWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2Vt
ZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCAzZGE2YzEx
NmI5MzY4OGQxYmFjNzNkN2U2ZDlkNDk5ZTA0NDEyYWZlLi41MTEzNDhmMjBmYWI5ZjQ2NWY4ZmRl
OTAxZmU2MDdmN2U3Mzc3ZjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMjA2MCw2ICsyMDYwLDcg
QEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVy
cygpCiAgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlcXVpcmVzU2VjdXJlSFRUUFNQcm94
eUNvbm5lY3Rpb24gPSBtX2NvbmZpZ3VyYXRpb24tPnJlcXVpcmVzU2VjdXJlSFRUUFNQcm94eUNv
bm5lY3Rpb24oKTsKICAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucHJldmVudHNTeXN0ZW1I
VFRQUHJveHlBdXRoZW50aWNhdGlvbiA9IG1fY29uZmlndXJhdGlvbi0+cHJldmVudHNTeXN0ZW1I
VFRQUHJveHlBdXRoZW50aWNhdGlvbigpOwogICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5h
bGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSA9IG1fY29uZmlndXJhdGlvbi0+
YWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUoKTsKKyAgICBuZXR3b3JrU2Vz
c2lvblBhcmFtZXRlcnMucGNtTWFjaFNlcnZpY2VOYW1lID0gbV9jb25maWd1cmF0aW9uLT5wY21N
YWNoU2VydmljZU5hbWUoKTsKIAogICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0
ZXJzID0gV1RGTW92ZShuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggYmQ0Yjk1N2FiZDExMTEwZTMwOTNmNTI4
YjUzNjhlM2UxZGE0ODFiMy4uZmQ0YjA4ZTYxYWJjMzYwNDdkN2JlYjEwMDIxZTRlZWExNTg4Njg1
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcApAQCAtNTEsNiAr
NTEsNyBAQCBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6V2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24oSXNQZXJzaXN0ZW50IGlzUGVycwogI2lmIEhBVkUoQVJLSVRfSU5MSU5FX1BS
RVZJRVcpCiAgICAgICAgIHNldE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KFdlYnNpdGVEYXRh
U3RvcmU6OmRlZmF1bHRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSgpKTsKICNlbmRpZgorICAg
ICAgICAvLyBGSVhNRTogR2l2ZSBtX3BjbU1hY2hTZXJ2aWNlTmFtZSBhIGRlZmF1bHQgdmFsdWUg
YW5kIHJlbW92ZSBQQ006Ok1hbmFnZXJJbnRlcmZhY2Ugb25jZSByZGFyOi8vODA3MDEwOTggaXMg
Y2xvc2VkLgogICAgIH0KIH0KIApAQCAtMTAwLDYgKzEwMSw3IEBAIFJlZjxXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbj4gV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNvcHkoKSBj
b25zdAogICAgIGNvcHktPm1fc3RhbmRhbG9uZUFwcGxpY2F0aW9uVVJMID0gdGhpcy0+bV9zdGFu
ZGFsb25lQXBwbGljYXRpb25VUkw7CiAgICAgY29weS0+bV9lbmFibGVJbkFwcEJyb3dzZXJQcml2
YWN5Rm9yVGVzdGluZyA9IHRoaXMtPm1fZW5hYmxlSW5BcHBCcm93c2VyUHJpdmFjeUZvclRlc3Rp
bmc7CiAgICAgY29weS0+bV9hbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSA9
IHRoaXMtPm1fYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGU7CisgICAgY29w
eS0+bV9wY21NYWNoU2VydmljZU5hbWUgPSB0aGlzLT5tX3BjbU1hY2hTZXJ2aWNlTmFtZTsKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICBpZiAobV9wcm94eUNvbmZpZ3VyYXRpb24pCiAgICAgICAg
IGNvcHktPm1fcHJveHlDb25maWd1cmF0aW9uID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVD
b3B5KG51bGxwdHIsIHRoaXMtPm1fcHJveHlDb25maWd1cmF0aW9uLmdldCgpKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAppbmRleCBlZGRhYjQ0ZTNhMjg5YzFhNDU0N2Yx
YzQ2MDkyOTE5YzZjMjc4MGM3Li43MzRhYjY2MmM4NGEzNTI4N2QyNmQ5ZTViMjJlOTdkNzQ4ZjA2
MmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKQEAgLTE4MCw2ICsx
ODAsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBhbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0
aWZpY2F0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2Vy
dGlmaWNhdGU7IH0KICAgICB2b2lkIHNldEFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRp
ZmljYXRlKGJvb2wgYWxsb3dzKSB7IG1fYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlm
aWNhdGUgPSBhbGxvd3M7IH0KICAgICAKKyAgICB2b2lkIHNldFBDTU1hY2hTZXJ2aWNlTmFtZShT
dHJpbmcmJiBuYW1lKSB7IG1fcGNtTWFjaFNlcnZpY2VOYW1lID0gV1RGTW92ZShuYW1lKTsgfQor
ICAgIGNvbnN0IFN0cmluZyYgcGNtTWFjaFNlcnZpY2VOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9w
Y21NYWNoU2VydmljZU5hbWU7IH0KKwogcHJpdmF0ZToKICAgICBJc1BlcnNpc3RlbnQgbV9pc1Bl
cnNpc3RlbnQgeyBJc1BlcnNpc3RlbnQ6Ok5vIH07CiAKQEAgLTIzMiw2ICsyMzUsNyBAQCBwcml2
YXRlOgogICAgIFVSTCBtX3N0YW5kYWxvbmVBcHBsaWNhdGlvblVSTDsKICAgICBib29sIG1fZW5h
YmxlSW5BcHBCcm93c2VyUHJpdmFjeUZvclRlc3RpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9h
bGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSB7IGZhbHNlIH07CisgICAgU3Ry
aW5nIG1fcGNtTWFjaFNlcnZpY2VOYW1lOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFp
blB0cjxDRkRpY3Rpb25hcnlSZWY+IG1fcHJveHlDb25maWd1cmF0aW9uOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmM1YjIyZTk3
NjlhNzY0MWVhOTkzZWE0MWNmNTZmNTU4MGMwODM3Ni4uMWNjNmI2ODdjZTVhNmNmZmIxOTA5OWY2
OWNiNmM0ZDRhY2M5NzM4ZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTA5LTExICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHVuaXQgdGVzdCB0aGF0
IHVzZXMgUENNIGRhZW1vbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMwMTkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RQQ01EYWVtb24ueGNj
b25maWc6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmN1
cnJlbnRFeGVjdXRhYmxlTG9jYXRpb24pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6dGVzdERh
ZW1vblBMaXN0KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvY29jb2EvVGVzdFBDTURhZW1vbk1haW4uYzogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudENvbm5lY3Rpb24uY3BwLgorICAgICAgICAobWFpbik6CisKIDIwMjEtMDkt
MTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBBZGQgaW5mcmFzdHJ1Y3R1cmUgdG8gYWxsb3cgVExTIGR1cmluZyBQQ00gdGVzdHMKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFBDTURhZW1vbi54
Y2NvbmZpZyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFBDTURhZW1v
bi54Y2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZTdlYzY4MTZhODk4YjQ4NzIyN2RlMDRlZjM5NTkxNjA4
OGIzMDUxCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0
aW9ucy9UZXN0UENNRGFlbW9uLnhjY29uZmlnCkBAIC0wLDAgKzEsMjcgQEAKKy8vIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKy8vIGFyZSBtZXQ6CisvLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
Ly8gMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKy8vICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKy8vICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisvLwor
Ly8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisvLyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorLy8gSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisvLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorLy8gQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisvLyBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisvLyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKy8vIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKy8vIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKworUFJPRFVDVF9OQU1FID0gVGVzdFBDTURhZW1vbjsK
KworT1RIRVJfTERGTEFHUyA9IC1mcmFtZXdvcmsgV2ViS2l0OworRlJBTUVXT1JLX1NFQVJDSF9Q
QVRIUyA9ICQoQlVJTFRfUFJPRFVDVFNfRElSKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MThlYmY5NDEwM2JhODRjZTY0MGMyZDMxMWRmZTNiZmZjNTM2N2RlZS4uYWNmNWFlMjUyZDJhZWRm
ZDU1MTBiYWQ3YzE2NDM3MzM5OTE3YmI2OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM2
LDYgKzM2LDcgQEAKIAkJCQk1MzdDRjg0ODIyRUZENzIwMDBDNkVCQjMgLyogQ2hlY2sgLnhjZmls
ZWxpc3RzICovLAogCQkJKTsKIAkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCQk1QzFCMUQxQzI2RUMy
RUVDMDA4ODJEQTIgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQk3QzgzRTAzMDFEMEE1
RTFCMDBGRUJDRjMgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQk3QzgzRTAzMjFEMEE1
RTFEMDBGRUJDRjMgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCSk7CkBAIC00NzgsNiAr
NDc5LDcgQEAKIAkJNUMxMjFFOEQyNDEwNzA0OTAwNDg2RjlCIC8qIENvbnRlbnRXb3JsZFBsdWdJ
bi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMTIx
RThDMjQxMDcwMzIwMDQ4NkY5QiAvKiBDb250ZW50V29ybGRQbHVnSW4ubW0gKi87IH07CiAJCTVD
MTZGOEZDMjMwQzk0MzcwMDc0QzRBOCAvKiBUZXh0U2l6ZS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMTZGOEZCMjMwQzk0MkIwMDc0QzRBOCAvKiBU
ZXh0U2l6ZS5tbSAqLzsgfTsKIAkJNUMxOUE1MjQxRkQwRjYwMTAwRUVBMzIzIC8qIENvb2tpZVBy
aXZhdGVCcm93c2luZy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDVDMTlBNTIzMUZEMEYzMjYwMEVFQTMyMyAvKiBDb29raWVQcml2YXRlQnJvd3Npbmcu
bW0gKi87IH07CisJCTVDMUIxRDE3MjZFQzI3REUwMDg4MkRBMiAvKiBUZXN0UENNRGFlbW9uTWFp
bi5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMxQjFE
MTYyNkVDMjdDNTAwODgyREEyIC8qIFRlc3RQQ01EYWVtb25NYWluLmMgKi87IH07CiAJCTVDMjNE
RjBCMjI0NjAxNTgwMEY0NTRCNiAvKiBDaGFsbGVuZ2UubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzIzREYwQTIyNDVDOUQ3MDBGNDU0QjYgLyogQ2hh
bGxlbmdlLm1tICovOyB9OwogCQk1QzI5MzY5MzFENUJGNzBEMDBERUFCMUUgLyogQ29va2llQWNj
ZXB0UG9saWN5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUMyOTM2OTExRDVCRjYzRTAwREVBQjFFIC8qIENvb2tpZUFjY2VwdFBvbGljeS5tbSAqLzsg
fTsKIAkJNUMyOTM2OTYxRDVDMDBFRDAwREVBQjFFIC8qIENvb2tpZU1lc3NhZ2UuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzI5MzY5
NDFENUJGRDE5MDBERUFCMUUgLyogQ29va2llTWVzc2FnZS5odG1sICovOyB9OwpAQCAtMTI5Nyw2
ICsxMjk5LDEzIEBACiAvKiBFbmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4g
UEJYQ29udGFpbmVySXRlbVByb3h5IHNlY3Rpb24gKi8KKwkJNUMxQjFEMUIyNkVDMkVFQzAwODgy
REEyIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5l
ckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRhbCA9IDA4RkI3NzkzRkU4NDE1NURDMDJBQUMw
NyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9i
YWxJRFN0cmluZyA9IDVDMUIxRDA4MjZFQzI3ODUwMDg4MkRBMjsKKwkJCXJlbW90ZUluZm8gPSBU
ZXN0UENNRGFlbW9uOworCQl9OwogCQk1QzlEOTIyMTIyRDdEQzg0MDA4RTkyNjYgLyogUEJYQ29u
dGFpbmVySXRlbVByb3h5ICovID0gewogCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5Owog
CQkJY29udGFpbmVyUG9ydGFsID0gMDhGQjc3OTNGRTg0MTU1REMwMkFBQzA3IC8qIFByb2plY3Qg
b2JqZWN0ICovOwpAQCAtMjMzMSw2ICsyMzQwLDkgQEAKIAkJNUMxMjFFOEMyNDEwNzAzMjAwNDg2
RjlCIC8qIENvbnRlbnRXb3JsZFBsdWdJbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IENvbnRlbnRXb3JsZFBsdWdJbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNUMxNkY4RkIyMzBDOTQyQjAwNzRDNEE4IC8qIFRleHRTaXplLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGV4dFNpemUubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTVDMTlBNTIzMUZEMEYzMjYwMEVFQTMyMyAvKiBDb29raWVQcml2
YXRlQnJvd3NpbmcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBD
b29raWVQcml2YXRlQnJvd3NpbmcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVD
MUIxRDE0MjZFQzI3ODUwMDg4MkRBMiAvKiBUZXN0UENNRGFlbW9uICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFi
bGUiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBUZXN0UENNRGFlbW9uOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk1QzFCMUQxNjI2RUMyN0M1MDA4ODJEQTIgLyog
VGVzdFBDTURhZW1vbk1haW4uYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gVGVzdFBDTURhZW1vbk1haW4uYzsg
cGF0aCA9IGNvY29hL1Rlc3RQQ01EYWVtb25NYWluLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTVDMUIxRDFBMjZFQzI4NEUwMDg4MkRBMiAvKiBUZXN0UENNRGFlbW9uLnhjY29uZmln
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54
Y2NvbmZpZzsgcGF0aCA9IFRlc3RQQ01EYWVtb24ueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTVDMjNERjBBMjI0NUM5RDcwMEY0NTRCNiAvKiBDaGFsbGVuZ2UubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDaGFsbGVuZ2UubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMjkzNjkxMUQ1QkY2M0UwMERFQUIxRSAvKiBDb29r
aWVBY2NlcHRQb2xpY3kubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBDb29raWVBY2NlcHRQb2xpY3kubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVD
MjkzNjk0MUQ1QkZEMTkwMERFQUIxRSAvKiBDb29raWVNZXNzYWdlLmh0bWwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0Lmh0bWw7IHBhdGggPSBDb29raWVNZXNzYWdlLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0zMTYyLDYgKzMxNzQsMTMgQEAKIC8qIEVuZCBQQlhGaWxlUmVmZXJlbmNlIHNl
Y3Rpb24gKi8KIAogLyogQmVnaW4gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwor
CQk1QzFCMUQwRTI2RUMyNzg1MDA4ODJEQTIgLyogRnJhbWV3b3JrcyAqLyA9IHsKKwkJCWlzYSA9
IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0
NzsKKwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOworCQl9OwogCQk3QzgzREY2NDFEMEE1OTBDMDBGRUJDRjMgLyogRnJhbWV3b3Jr
cyAqLyA9IHsKIAkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTMzMDYsNiArMzMyNSw3IEBACiAJCQkJNUM3MkU4Q0Uy
NDRGRkNFNDAwMzgxRUI3IC8qIFRlc3RMZWdhY3lEb3dubG9hZERlbGVnYXRlLm1tICovLAogCQkJ
CTJEMUMwNEE1MUQ3NjI5OEIwMDBBNjgxNiAvKiBUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmggKi8s
CiAJCQkJMkQxQzA0QTYxRDc2Mjk4QjAwMEE2ODE2IC8qIFRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUu
bW0gKi8sCisJCQkJNUMxQjFEMTYyNkVDMjdDNTAwODgyREEyIC8qIFRlc3RQQ01EYWVtb25NYWlu
LmMgKi8sCiAJCQkJNTE2MjgxMjMyMzI1QzE3QTAwQkI3RTQyIC8qIFRlc3RQREZEb2N1bWVudC5o
ICovLAogCQkJCTUxNjI4MTI0MjMyNUMxN0IwMEJCN0U0MiAvKiBUZXN0UERGRG9jdW1lbnQubW0g
Ki8sCiAJCQkJQTE0RkM1OEQxQjhBRTM2NTAwRDEwN0VCIC8qIFRlc3RQcm90b2NvbC5oICovLApA
QCAtMzM2NCw2ICszMzg0LDcgQEAKIAkJMUFCNjc0QURGRTlENTRCNTExQ0EyQ0JCIC8qIFByb2R1
Y3RzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1QzFC
MUQxNDI2RUMyNzg1MDA4ODJEQTIgLyogVGVzdFBDTURhZW1vbiAqLywKIAkJCQk4REQ3NkZBMTA0
ODZBQTc2MDBEOTZCNUUgLyogVGVzdFdlYktpdEFQSSAqLywKIAkJCQk3QzgzRTAyMzFEMEE1QUU0
MDBGRUJDRjMgLyogVGVzdFdURiAqLywKIAkJCQlCQzU3NTk4MDEyNkU3NEFGMDA2RjBGMTIgLyog
SW5qZWN0ZWRCdW5kbGVUZXN0V2ViS2l0QVBJLmJ1bmRsZSAqLywKQEAgLTQyOTMsNiArNDMxNCw3
IEBACiAJCQkJQkM5MDk1N0YxMjU1NENGOTAwMDgzNzU2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZp
ZyAqLywKIAkJCQlCQzU3NUFFMjEyNkU4OEIxMDA2RjBGMTIgLyogSW5qZWN0ZWRCdW5kbGUueGNj
b25maWcgKi8sCiAJCQkJQTFCODlCOTkyMjFFMDI5RjAwRUI0Q0VBIC8qIFNES1ZhcmlhbnQueGNj
b25maWcgKi8sCisJCQkJNUMxQjFEMUEyNkVDMjg0RTAwODgyREEyIC8qIFRlc3RQQ01EYWVtb24u
eGNjb25maWcgKi8sCiAJCQkJNTczNUYwMjUxRjNBNEVBNjAwMEVFODAxIC8qIFRlc3RXZWJLaXRB
UEktaU9TLmVudGl0bGVtZW50cyAqLywKIAkJCQk1MUVCMTI1MzI0QzY2QkNCMDAwQ0IwMzAgLyog
VGVzdFdlYktpdEFQSS1tYWNPUy1pbnRlcm5hbC5lbnRpdGxlbWVudHMgKi8sCiAJCQkJN0FCMDE3
MzkyM0ZCMkJGMDAwMkY4MzY2IC8qIFRlc3RXZWJLaXRBUEktbWFjT1MuZW50aXRsZW1lbnRzICov
LApAQCAtNDk3OSw2ICs1MDAxLDIzIEBACiAvKiBFbmQgUEJYR3JvdXAgc2VjdGlvbiAqLwogCiAv
KiBCZWdpbiBQQlhOYXRpdmVUYXJnZXQgc2VjdGlvbiAqLworCQk1QzFCMUQwODI2RUMyNzg1MDA4
ODJEQTIgLyogVGVzdFBDTURhZW1vbiAqLyA9IHsKKwkJCWlzYSA9IFBCWE5hdGl2ZVRhcmdldDsK
KwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA1QzFCMUQxMTI2RUMyNzg1MDA4ODJEQTIgLyog
QnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIlRlc3RQQ01EYWVt
b24iICovOworCQkJYnVpbGRQaGFzZXMgPSAoCisJCQkJNUMxQjFEMEIyNkVDMjc4NTAwODgyREEy
IC8qIFNvdXJjZXMgKi8sCisJCQkJNUMxQjFEMEUyNkVDMjc4NTAwODgyREEyIC8qIEZyYW1ld29y
a3MgKi8sCisJCQkpOworCQkJYnVpbGRSdWxlcyA9ICgKKwkJCSk7CisJCQlkZXBlbmRlbmNpZXMg
PSAoCisJCQkpOworCQkJbmFtZSA9IFRlc3RQQ01EYWVtb247CisJCQlwcm9kdWN0SW5zdGFsbFBh
dGggPSAiJChIT01FKS9iaW4iOworCQkJcHJvZHVjdE5hbWUgPSBUZXN0UENNRGFlbW9uOworCQkJ
cHJvZHVjdFJlZmVyZW5jZSA9IDVDMUIxRDE0MjZFQzI3ODUwMDg4MkRBMiAvKiBUZXN0UENNRGFl
bW9uICovOworCQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnByb2R1Y3QtdHlwZS50b29sIjsK
KwkJfTsKIAkJN0M4M0RFOTUxRDBBNTkwQzAwRkVCQ0YzIC8qIFRlc3RXVEZMaWJyYXJ5ICovID0g
ewogCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9
IDdDODNERjY1MUQwQTU5MEMwMEZFQkNGMyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9y
IFBCWE5hdGl2ZVRhcmdldCAiVGVzdFdURkxpYnJhcnkiICovOwpAQCAtNTEzOCw2ICs1MTc3LDcg
QEAKIAkJCQlCQzU3NTk3RjEyNkU3NEFGMDA2RjBGMTIgLyogSW5qZWN0ZWRCdW5kbGVUZXN0V2Vi
S2l0QVBJICovLAogCQkJCUExM0VCQjQ4MUI4NzMzOUUwMDA5NzExMCAvKiBXZWJQcm9jZXNzUGx1
Z0luICovLAogCQkJCTUzN0NGODQzMjJFRkQ2NDEwMEM2RUJCMyAvKiBBcHBseSBDb25maWd1cmF0
aW9uIHRvIFhDRmlsZUxpc3RzICovLAorCQkJCTVDMUIxRDA4MjZFQzI3ODUwMDg4MkRBMiAvKiBU
ZXN0UENNRGFlbW9uICovLAogCQkJKTsKIAkJfTsKIC8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24g
Ki8KQEAgLTUyMTQsNiArNTI1NCwxNCBAQAogLyogRW5kIFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFz
ZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWFNvdXJjZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8K
KwkJNUMxQjFEMEIyNkVDMjc4NTAwODgyREEyIC8qIFNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQ
QlhTb3VyY2VzQnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJ
CQlmaWxlcyA9ICgKKwkJCQk1QzFCMUQxNzI2RUMyN0RFMDA4ODJEQTIgLyogVGVzdFBDTURhZW1v
bk1haW4uYyBpbiBTb3VyY2VzICovLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOworCQl9OwogCQk3QzgzREU5NjFEMEE1OTBDMDBGRUJDRjMgLyogU291
cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTYwNzgsNiArNjEyNiwxMSBAQAogLyogRW5kIFBCWFNv
dXJjZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYVGFyZ2V0RGVwZW5kZW5j
eSBzZWN0aW9uICovCisJCTVDMUIxRDFDMjZFQzJFRUMwMDg4MkRBMiAvKiBQQlhUYXJnZXREZXBl
bmRlbmN5ICovID0geworCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKKwkJCXRhcmdldCA9
IDVDMUIxRDA4MjZFQzI3ODUwMDg4MkRBMiAvKiBUZXN0UENNRGFlbW9uICovOworCQkJdGFyZ2V0
UHJveHkgPSA1QzFCMUQxQjI2RUMyRUVDMDA4ODJEQTIgLyogUEJYQ29udGFpbmVySXRlbVByb3h5
ICovOworCQl9OwogCQk1QzlEOTIyMjIyRDdEQzg0MDA4RTkyNjYgLyogUEJYVGFyZ2V0RGVwZW5k
ZW5jeSAqLyA9IHsKIAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJCQl0YXJnZXQgPSA1
QzlEOTIxNDIyRDdEQTAyMDA4RTkyNjYgLyogR2VuZXJhdGUgVW5pZmllZCBTb3VyY2VzICovOwpA
QCAtNjE2MCw2ICs2MjEzLDIyIEBACiAJCQl9OwogCQkJbmFtZSA9IFJlbGVhc2U7CiAJCX07CisJ
CTVDMUIxRDEyMjZFQzI3ODUwMDg4MkRBMiAvKiBEZWJ1ZyAqLyA9IHsKKwkJCWlzYSA9IFhDQnVp
bGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1QzFCMUQx
QTI2RUMyODRFMDA4ODJEQTIgLyogVGVzdFBDTURhZW1vbi54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxk
U2V0dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07
CisJCQluYW1lID0gRGVidWc7CisJCX07CisJCTVDMUIxRDEzMjZFQzI3ODUwMDg4MkRBMiAvKiBS
ZWxlYXNlICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29u
ZmlndXJhdGlvblJlZmVyZW5jZSA9IDVDMUIxRDFBMjZFQzI4NEUwMDg4MkRBMiAvKiBUZXN0UENN
RGFlbW9uLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05B
TUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNlOworCQl9Owog
CQk1QzlEOTIxQTIyRDdEQTAyMDA4RTkyNjYgLyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBYQ0J1
aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJ1aWxkU2V0dGluZ3MgPSB7CkBAIC02Mjg4LDYgKzYzNTcs
MTUgQEAKIAkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKIAkJCWRlZmF1bHRD
b25maWd1cmF0aW9uTmFtZSA9IFJlbGVhc2U7CiAJCX07CisJCTVDMUIxRDExMjZFQzI3ODUwMDg4
MkRBMiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiVGVz
dFBDTURhZW1vbiIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVp
bGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQk1QzFCMUQxMjI2RUMyNzg1MDA4ODJEQTIgLyogRGVi
dWcgKi8sCisJCQkJNUMxQjFEMTMyNkVDMjc4NTAwODgyREEyIC8qIFJlbGVhc2UgKi8sCisJCQkp
OworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQkJZGVmYXVsdENvbmZp
Z3VyYXRpb25OYW1lID0gUmVsZWFzZTsKKwkJfTsKIAkJNUM5RDkyMTkyMkQ3REEwMjAwOEU5MjY2
IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJHZW5l
cmF0ZSBVbmlmaWVkIFNvdXJjZXMiICovID0gewogCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlz
dDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KaW5kZXggODdk
N2ZlOGVlN2U4ODdiMjBiN2U4YTY2N2Q4OTQ3MTY0N2E2Mzk5Ny4uMWY4NmE1OWNlZTkxYzMwNjRl
YWE1MjVjZWZjMjk5NzMyOWNhNmU2YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpAQCAtMjcsMTMgKzI3
LDE3IEBACiAKICNpbXBvcnQgIkhUVFBTZXJ2ZXIuaCIKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0
aWVzLmgiCisjaW1wb3J0ICJUZXN0LmgiCiAjaW1wb3J0ICJUZXN0TmF2aWdhdGlvbkRlbGVnYXRl
LmgiCiAjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0ICJVdGlsaXRpZXMuaCIKKyNp
bXBvcnQgPFdlYktpdC9XS01haW4uaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRl
Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaD4KICNpbXBv
cnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQv
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaD4KKyNpbXBvcnQgPG1hY2gtby9keWxk
Lmg+CisjaW1wb3J0IDx3dGYvT1NPYmplY3RQdHIuaD4KIAogI2lmIEhBVkUoUlNBX0JTU0EpCiAK
QEAgLTM2MCw2ICszNjQsODAgQEAgVEVTVChFdmVudEF0dHJpYnV0aW9uLCBEYXRhYmFzZUxvY2F0
aW9uKQogICAgIEVYUEVDVF9FUSh3ZWJWaWV3VG9LZWVwTmV0d29ya1Byb2Nlc3NBbGl2ZS5nZXQo
KS5jb25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUuX25ldHdvcmtQcm9jZXNzSWRlbnRpZmll
ciwgb3JpZ2luYWxOZXR3b3JrUHJvY2Vzc1BpZCk7CiB9CiAKK3N0YXRpYyBSZXRhaW5QdHI8TlNV
Ukw+IGN1cnJlbnRFeGVjdXRhYmxlTG9jYXRpb24oKQoreworICAgIHVpbnQzMl90IHNpemUgeyAw
IH07CisgICAgX05TR2V0RXhlY3V0YWJsZVBhdGgobnVsbHB0ciwgJnNpemUpOworICAgIFZlY3Rv
cjxjaGFyPiBidWZmZXI7CisgICAgYnVmZmVyLnJlc2l6ZShzaXplICsgMSk7CisgICAgX05TR2V0
RXhlY3V0YWJsZVBhdGgoYnVmZmVyLmRhdGEoKSwgJnNpemUpOworICAgIGJ1ZmZlcltzaXplXSA9
ICdcMCc7CisgICAgYXV0byBwYXRoU3RyaW5nID0gYWRvcHROUyhbW05TU3RyaW5nIGFsbG9jXSBp
bml0V2l0aFVURjhTdHJpbmc6YnVmZmVyLmRhdGEoKV0pOworICAgIHJldHVybiBhZG9wdE5TKFtb
TlNVUkwgYWxsb2NdIGluaXRGaWxlVVJMV2l0aFBhdGg6cGF0aFN0cmluZy5nZXQoKSBpc0RpcmVj
dG9yeTpOT10pOworfQorCitzdGF0aWMgT1NPYmplY3RQdHI8eHBjX29iamVjdF90PiB0ZXN0RGFl
bW9uUExpc3QoTlNVUkwgKnN0b3JhZ2VMb2NhdGlvbikKK3sKKyAgICBhdXRvIHBsaXN0ID0gYWRv
cHRPU09iamVjdCh4cGNfZGljdGlvbmFyeV9jcmVhdGUobnVsbHB0ciwgbnVsbHB0ciwgMCkpOwor
ICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmcocGxpc3QuZ2V0KCksICJMYWJlbCIsICJvcmcu
d2Via2l0LnBjbXRlc3RkYWVtb24iKTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfYm9vbChwbGlz
dC5nZXQoKSwgIkxhdW5jaE9ubHlPbmNlIiwgdHJ1ZSk7CisKKyAgICB7CisgICAgICAgIGF1dG8g
ZW52aXJvbm1lbnRWYXJpYWJsZXMgPSBhZG9wdE9TT2JqZWN0KHhwY19kaWN0aW9uYXJ5X2NyZWF0
ZShudWxscHRyLCBudWxscHRyLCAwKSk7CisgICAgICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJp
bmcoZW52aXJvbm1lbnRWYXJpYWJsZXMuZ2V0KCksICJEWUxEX0ZSQU1FV09SS19QQVRIIiwgW2N1
cnJlbnRFeGVjdXRhYmxlTG9jYXRpb24oKSBVUkxCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRd
LmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbik7CisgICAgICAgIHhwY19kaWN0aW9uYXJ5X3NldF92
YWx1ZShwbGlzdC5nZXQoKSwgIkVudmlyb25tZW50VmFyaWFibGVzIiwgZW52aXJvbm1lbnRWYXJp
YWJsZXMuZ2V0KCkpOworICAgIH0KKyAgICB7CisgICAgICAgIGF1dG8gbWFjaFNlcnZpY2VzID0g
YWRvcHRPU09iamVjdCh4cGNfZGljdGlvbmFyeV9jcmVhdGUobnVsbHB0ciwgbnVsbHB0ciwgMCkp
OworICAgICAgICB4cGNfZGljdGlvbmFyeV9zZXRfYm9vbChtYWNoU2VydmljZXMuZ2V0KCksICJv
cmcud2Via2l0LnBjbXRlc3RkYWVtb24uc2VydmljZSIsIHRydWUpOworICAgICAgICB4cGNfZGlj
dGlvbmFyeV9zZXRfdmFsdWUocGxpc3QuZ2V0KCksICJNYWNoU2VydmljZXMiLCBtYWNoU2Vydmlj
ZXMuZ2V0KCkpOworICAgIH0KKyAgICB7CisgICAgICAgIGF1dG8gcHJvZ3JhbUFyZ3VtZW50cyA9
IGFkb3B0T1NPYmplY3QoeHBjX2FycmF5X2NyZWF0ZShudWxscHRyLCAwKSk7CisgICAgICAgIE5T
VVJMICpleGVjdXRhYmxlTG9jYXRpb24gPSBbW2N1cnJlbnRFeGVjdXRhYmxlTG9jYXRpb24oKSBV
UkxCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVu
dDpAIlRlc3RQQ01EYWVtb24iIGlzRGlyZWN0b3J5Ok5PXTsKKyAgICAgICAgeHBjX2FycmF5X3Nl
dF9zdHJpbmcocHJvZ3JhbUFyZ3VtZW50cy5nZXQoKSwgWFBDX0FSUkFZX0FQUEVORCwgZXhlY3V0
YWJsZUxvY2F0aW9uLmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbik7CisgICAgICAgIHhwY19hcnJh
eV9zZXRfc3RyaW5nKHByb2dyYW1Bcmd1bWVudHMuZ2V0KCksIFhQQ19BUlJBWV9BUFBFTkQsICIt
LW1hY2hTZXJ2aWNlTmFtZSIpOworICAgICAgICB4cGNfYXJyYXlfc2V0X3N0cmluZyhwcm9ncmFt
QXJndW1lbnRzLmdldCgpLCBYUENfQVJSQVlfQVBQRU5ELCAib3JnLndlYmtpdC5wY210ZXN0ZGFl
bW9uLnNlcnZpY2UiKTsKKyAgICAgICAgeHBjX2FycmF5X3NldF9zdHJpbmcocHJvZ3JhbUFyZ3Vt
ZW50cy5nZXQoKSwgWFBDX0FSUkFZX0FQUEVORCwgIi0tc3RvcmFnZUxvY2F0aW9uIik7CisgICAg
ICAgIHhwY19hcnJheV9zZXRfc3RyaW5nKHByb2dyYW1Bcmd1bWVudHMuZ2V0KCksIFhQQ19BUlJB
WV9BUFBFTkQsIHN0b3JhZ2VMb2NhdGlvbi5maWxlU3lzdGVtUmVwcmVzZW50YXRpb24pOworICAg
ICAgICB4cGNfZGljdGlvbmFyeV9zZXRfdmFsdWUocGxpc3QuZ2V0KCksICJQcm9ncmFtQXJndW1l
bnRzIiwgcHJvZ3JhbUFyZ3VtZW50cy5nZXQoKSk7CisgICAgfQorICAgIHJldHVybiBwbGlzdDsK
K30KKworI2lmIEhBVkUoT1NfTEFVTkNIRF9KT0IpCisKK1RFU1QoRXZlbnRBdHRyaWJ1dGlvbiwg
RGFlbW9uKQoreworICAgIE5TRmlsZU1hbmFnZXIgKmZpbGVNYW5hZ2VyID0gW05TRmlsZU1hbmFn
ZXIgZGVmYXVsdE1hbmFnZXJdOworICAgIE5TVVJMICp0ZW1wRGlyID0gW05TVVJMIGZpbGVVUkxX
aXRoUGF0aDpbTlNUZW1wb3JhcnlEaXJlY3RvcnkoKSBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21w
b25lbnQ6QCJFdmVudEF0dHJpYnV0aW9uRGFlbW9uVGVzdCJdIGlzRGlyZWN0b3J5OllFU107Cisg
ICAgaWYgKFtmaWxlTWFuYWdlciBmaWxlRXhpc3RzQXRQYXRoOnRlbXBEaXIucGF0aF0pCisgICAg
ICAgIFtmaWxlTWFuYWdlciByZW1vdmVJdGVtQXRVUkw6dGVtcERpciBlcnJvcjpuaWxdOworCisg
ICAgYXV0byBwbGlzdCA9IHRlc3REYWVtb25QTGlzdCh0ZW1wRGlyKTsKKyAgICAKKyAgICBhdXRv
IGxhdW5jaERKb2IgPSBhZG9wdE5TKFtbT1NMYXVuY2hkSm9iIGFsbG9jXSBpbml0V2l0aFBsaXN0
OnBsaXN0LmdldCgpXSk7CisgICAgTlNFcnJvciAqZXJyb3I7CisgICAgW2xhdW5jaERKb2Igc3Vi
bWl0QW5kU3RhcnQ6JmVycm9yXTsKKyAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgCisgICAg
YXV0byBkYXRhU3RvcmVDb25maWd1cmF0aW9uID0gYWRvcHROUyhbX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAgZGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKS5w
Y21NYWNoU2VydmljZU5hbWUgPSBAIm9yZy53ZWJraXQuZXZlbnRhdHRyaWJ1dGlvbnRlc3Quc2Vy
dmljZSI7CisgICAgYXV0byB2aWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gbmV3XSk7CisgICAgdmlld0NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURh
dGFTdG9yZSA9IGFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENv
bmZpZ3VyYXRpb246ZGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pLmdldCgpOworICAgIHJ1
bkJhc2ljRXZlbnRBdHRyaWJ1dGlvblRlc3Qodmlld0NvbmZpZ3VyYXRpb24uZ2V0KCksIFtdKFdL
V2ViVmlldyAqd2ViVmlldywgY29uc3QgSFRUUFNlcnZlciYgc2VydmVyKSB7CisgICAgICAgIFt3
ZWJWaWV3IF9hZGRFdmVudEF0dHJpYnV0aW9uV2l0aFNvdXJjZUlEOjQyIGRlc3RpbmF0aW9uVVJM
OmV4YW1wbGVVUkwoKSBzb3VyY2VEZXNjcmlwdGlvbjpAInRlc3Qgc291cmNlIGRlc2NyaXB0aW9u
IiBwdXJjaGFzZXI6QCJ0ZXN0IHB1cmNoYXNlciIgcmVwb3J0RW5kcG9pbnQ6c2VydmVyLnJlcXVl
c3QoKS5VUkwgb3B0aW9uYWxOb25jZTpuaWxdOworICAgIH0pOworCisgICAgRVhQRUNUX1RSVUUo
W2ZpbGVNYW5hZ2VyIGZpbGVFeGlzdHNBdFBhdGg6dGVtcERpci5wYXRoXSk7CisgICAgW2ZpbGVN
YW5hZ2VyIHJlbW92ZUl0ZW1BdFVSTDp0ZW1wRGlyIGVycm9yOm5pbF07CisKKyAgICBbbGF1bmNo
REpvYiByZW1vdmU6JmVycm9yXTsKKyAgICBFWFBFQ1RfTlVMTChlcnJvcik7Cit9CisKKyNlbmRp
ZiAvLyBIQVZFKE9TX0xBVU5DSERfSk9CKQorCiAjaWYgSEFWRShVSV9FVkVOVF9BVFRSSUJVVElP
TikKIAogVEVTVChFdmVudEF0dHJpYnV0aW9uLCBCYXNpY1dpdGhJT1NTUEkpCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RQQ01EYWVtb25NYWluLmMgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RQQ01EYWVtb25NYWluLmMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGE4NjEy
M2UwZDdiYzQ4Nzk2YzJhODNiMzc2NDA2ZjY0MjE0NjdjMwotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFBDTURhZW1vbk1haW4uYwpAQCAtMCwwICsxLDMx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgPFdlYktpdC9XS01haW4uaD4KKworaW50IG1haW4o
aW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBhcmd2KQoreworICAgIFdLUENNRGFlbW9uTWFpbihhcmdj
LCBhcmd2KTsKK30K
</data>
<flag name="commit-queue"
          id="461249"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437962</attachid>
            <date>2021-09-11 12:11:26 -0700</date>
            <delta_ts>2021-09-11 21:17:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230191-20210911121125.patch</filename>
            <type>text/plain</type>
            <size>53129</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ5Mzg4ZWFlODE0MjFkZDY1ZmM4NjQ5
MGQ0NWJiMjViZjhjNTk4YjIuLjQ0YTBjYmJhYTRkNTE3NzVlOTNjN2YwZjE0ODFkYzQyOGY5ZTQ3
ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDktMTEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0IHRoYXQgdXNl
cyBQQ00gZGFlbW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzAxOTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHd0Zi9QbGF0Zm9ybUhhdmUuaDoKKyAgICAgICAgKiB3dGYvc3BpL2Rhcndpbi9YUENT
UEkuaDoKKwogMjAyMS0wOS0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgZm9sbG93LXVwIHRvIHIyODIxMDUuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJjNzIz
Y2JlNWE2Nzg0MDU4YWZiYTQ4NzViMmI5OTQ5NzE0YTJiYzUuLjM4YTgwZTUzM2ZkYjVjZDhmNzI0
MmFhMDAxYmEyMTlkMGMwNmQ2NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMjEtMDkt
MTEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAg
ICBBZGQgdW5pdCB0ZXN0IHRoYXQgdXNlcyBQQ00gZGFlbW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAxOTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJIG1ha2UgYSB3YXkgdG8gc3BlY2lmeSB3aGF0
IG1hY2ggc2VydmljZSB0byBjb25uZWN0IHRvLAorICAgICAgICB0aGVuIEkgdGVtcG9yYXJpbHkg
cmVnaXN0ZXIgYW4gZXhlY3V0YWJsZSB3aXRoIGxhdW5jaGQgdG8gcHJvdmlkZSB0aGF0IG1hY2gg
c2VydmljZSwKKyAgICAgICAgdGhlbiBJIHJ1biB0aGUgdGVzdCBjb21tdW5pY2F0aW5nIHdpdGgg
dGhhdCBleGVjdXRhYmxlLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b24uY3BwOgorICAgICAgICAoV2ViS2l0OjptYW5hZ2VyT3JQcm94eSk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRl
Y29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBh
cmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpQQ006OkNvbm5lY3Rpb246OkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQQ006
OkNvbm5lY3Rpb246OnNlbmQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rp
b246OnNlbmRXaXRoUmVwbHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rp
b246OmNvbm5lY3Rpb25Ub0RhZW1vbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6
Q29ubmVjdGlvbjo6c2VuZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVj
dGlvbjo6c2VuZFdpdGhSZXBseSk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9u
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UENNOjptYW5hZ2VyUG9pbnRlcik6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6aW5pdGlhbGl6
ZVBDTVN0b3JhZ2VJbkRpcmVjdG9yeSk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6ZGFlbW9uTWFu
YWdlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpQQ006Ok1hbmFnZXJQcm94eTo6
c2VuZE1lc3NhZ2UgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006Ok1hbmFnZXJQcm94eTo6
c2VuZE1lc3NhZ2VXaXRoUmVwbHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006Ok1hbmFn
ZXJQcm94eTo6TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UENNOjpzZW5kTWVzc2Fn
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6c2VuZE1lc3NhZ2VXaXRoUmVwbHkp
OiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5Lmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnREYWVtb25Db25uZWN0aW9uQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OlBDTTo6
Q29ubmVjdGlvbjo6Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVjdGlv
bjo6aW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OlBDTTo6Q29ubmVjdGlvbjo6c2VuZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29u
bmVjdGlvbjo6c2VuZFdpdGhSZXBseSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29u
bmVjdGlvbjo6Y29ubmVjdGlvblRvRGFlbW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
UENNOjpDb25uZWN0aW9uOjpzZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpD
b25uZWN0aW9uOjpzZW5kV2l0aFJlcGx5KTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYi5pbjoKKyAgICAgICAg
KiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9uRW50cnlQ
b2ludC5tbToKKyAgICAgICAgKFdlYktpdDo6c3RhcnRMaXN0ZW5pbmdGb3JNYWNoU2VydmljZUNv
bm5lY3Rpb25zKToKKyAgICAgICAgKFdlYktpdDo6cmVnaXN0ZXJTY2hlZHVsZWRBY3Rpdml0eUhh
bmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpQQ01EYWVtb25NYWluKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5tbToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gcGNtTWFj
aFNlcnZpY2VOYW1lXSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uIHNldFBDTU1hY2hTZXJ2aWNlTmFtZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uOjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpjb3B5IGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uaDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b246OnNldFBDTU1hY2hTZXJ2aWNlTmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uOjpwY21NYWNoU2VydmljZU5hbWUgY29uc3QpOgorCiAyMDIxLTA5
LTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgQWRkIGluZnJhc3RydWN0dXJlIHRvIGFsbG93IFRMUyBkdXJpbmcgUENNIHRlc3RzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtSGF2ZS5oCmluZGV4IDY5Y2RiNWVhZWNlOTY4ZjlkNTZiOWZmYjZkZTAyNDc4MTgxNWJj
OWYuLmIwNjZlNWZjMTMxZmM0ZThiN2ZiOTU2Nzk1Mzc5OTg5ZjZhODViY2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtSGF2ZS5oCkBAIC04MTMsNiArODEzLDcgQEAKICAgICB8fCAoUExBVEZPUk0oQVBQTEVUVikg
JiYgX19UVl9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNTAwMDApCiAjZGVmaW5lIEhBVkVf
TkVUV09SS19MT0FERVIgMQogI2RlZmluZSBIQVZFX1NFQ19UUlVTVF9DT1BZX0NFUlRJRklDQVRF
X0NIQUlOIDEKKyNkZWZpbmUgSEFWRV9PU19MQVVOQ0hEX0pPQiAxCiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxNDAwMDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oCmluZGV4IDNiNTljZmNlNzA3YzYx
NTI2NDFkMWUzMTA5NGZhOTA1MjliZTU2ZTUuLmZiODNmZjdjMDFlMzU2ZjM3MmYzMTY0NmY1NmEx
NjE2ODc4OGE5OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vWFBDU1BJ
LmgKKysrIGIvU291cmNlL1dURi93dGYvc3BpL2Rhcndpbi9YUENTUEkuaApAQCAtMTE0LDcgKzEx
NCwyMSBAQCBleHRlcm4gIkMiIHZvaWQgeHBjX2FjdGl2aXR5X3JlZ2lzdGVyKGNvbnN0IGNoYXIg
KmlkZW50aWZpZXIsIHhwY19vYmplY3RfdCBjcml0ZQogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspCiAjaW5jbHVkZSA8b3MvdHJhbnNhY3Rpb25fcHJpdmF0ZS5oPgogI2luY2x1ZGUgPHhwYy9w
cml2YXRlLmg+Ci0jZWxzZQorI2lmIEhBVkUoT1NfTEFVTkNIRF9KT0IpCisjaW5jbHVkZSA8QXBw
U2VydmVyU3VwcG9ydC9PU0xhdW5jaGRKb2IuaD4KKyNlbmRpZiAvLyBIQVZFKE9TX0xBVU5DSERf
Sk9CKQorI2Vsc2UgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2lmZGVmIF9fT0JKQ19f
CisjaWYgSEFWRShPU19MQVVOQ0hEX0pPQikKK0BjbGFzcyBPU0xhdW5jaGRKb2JJbmZvOworQGlu
dGVyZmFjZSBPU0xhdW5jaGRKb2IgOiBOU09iamVjdAorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRo
UGxpc3Q6KHhwY19vYmplY3RfdClwbGlzdDsKKy0gKE9TTGF1bmNoZEpvYkluZm8gKilzdWJtaXRB
bmRTdGFydDooTlNFcnJvciAqKillcnJvck91dDsKKy0gKEJPT0wpcmVtb3ZlOihOU0Vycm9yICoq
KWVycm9yT3V0OworQGVuZAorI2VuZGlmIC8vIEhBVkUoT1NfTEFVTkNIRF9KT0IpCisjZW5kaWYg
Ly8gX19PQkpDX18KIAogZXh0ZXJuICJDIiBjb25zdCBjaGFyICogY29uc3QgWFBDX0FDVElWSVRZ
X1JBTkRPTV9JTklUSUFMX0RFTEFZOwogZXh0ZXJuICJDIiBjb25zdCBjaGFyICogY29uc3QgWFBD
X0FDVElWSVRZX1JFUVVJUkVfTkVUV09SS19DT05ORUNUSVZJVFk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IDVlMTVmNjM0MzczNGM5
ZDFiNTNkOGRjMTMxOTkwNWQ4OTIyZjlkYjIuLjI2ZjFjYjYwZjNjZDJkMTRlMjY0Y2NhOTBmOGY4
NTNkOThhOWI2ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb24uY3BwCkBAIC05NSwxMSArOTUsOCBAQCBzdGF0aWMgU3RyaW5nIHBjbVN0b3JlRGly
ZWN0b3J5KGNvbnN0IE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBTdHJpbmcmIHJlcwog
CiBzdGF0aWMgVW5pcXVlUmVmPFBDTTo6TWFuYWdlckludGVyZmFjZT4gbWFuYWdlck9yUHJveHko
TmV0d29ya1Nlc3Npb24mIG5ldHdvcmtTZXNzaW9uLCBOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1By
b2Nlc3MsIGNvbnN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
KQogewotICAgIC8vIEZJWE1FOiBUdXJuIHRoaXMgb24gYW5kIHJlbW92ZSBNYW5hZ2VySW50ZXJm
YWNlIG9uY2UgcmRhcjovLzgwNzAxMDk4IGlzIGNsb3NlZC4KLSAgICBjb25zdGV4cHIgYm9vbCB1
c2VQQ01EYWVtb24gPSBmYWxzZTsKLQotICAgIGlmICh1c2VQQ01EYWVtb24pCi0gICAgICAgIHJl
dHVybiBtYWtlVW5pcXVlUmVmPFBDTTo6TWFuYWdlclByb3h5PigpOworICAgIGlmICghcGFyYW1l
dGVycy5wY21NYWNoU2VydmljZU5hbWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbWFrZVVu
aXF1ZVJlZjxQQ006Ok1hbmFnZXJQcm94eT4ocGFyYW1ldGVycy5wY21NYWNoU2VydmljZU5hbWUp
OwogICAgIHJldHVybiBtYWtlVW5pcXVlUmVmPFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
cj4obWFrZVVuaXF1ZVJlZjxQQ006OkNsaWVudEltcGw+KG5ldHdvcmtTZXNzaW9uLCBuZXR3b3Jr
UHJvY2VzcyksIHBjbVN0b3JlRGlyZWN0b3J5KG5ldHdvcmtTZXNzaW9uLCBwYXJhbWV0ZXJzLnJl
c291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmRpcmVjdG9yeSwgcGFyYW1ldGVycy5yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3Jh
Z2VEaXJlY3RvcnkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRl
eCBiNzdmOTE4MTE0OWI4M2NkYThmYTkzMjJhYjU0NWI5N2FkNjc0NDYzLi45ZThhYmZkOWNhYmVm
OWRmYTQ5ZmRhZDRhYzY3ZDdlODZlZDAyZjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcApAQCAtODcsNiArODcsNyBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIg
PDwgYXBwSGFzUmVxdWVzdGVkQ3Jvc3NXZWJzaXRlVHJhY2tpbmdQZXJtaXNzaW9uOwogICAgIGVu
Y29kZXIgPDwgdXNlTmV0d29ya0xvYWRlcjsKICAgICBlbmNvZGVyIDw8IGFsbG93c0hTVFNXaXRo
VW50cnVzdGVkUm9vdENlcnRpZmljYXRlOworICAgIGVuY29kZXIgPDwgcGNtTWFjaFNlcnZpY2VO
YW1lOwogICAgIGVuY29kZXIgPDwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM7CiB9
CiAKQEAgLTI5MywxMiArMjk0LDE3IEBAIHN0ZDo6b3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVh
dGlvblBhcmFtZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzCiAgICAgZGVj
b2RlciA+PiBhbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZTsKICAgICBpZiAo
IWFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlKQogICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwotICAgIAorCisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHBjbU1hY2hT
ZXJ2aWNlTmFtZTsKKyAgICBkZWNvZGVyID4+IHBjbU1hY2hTZXJ2aWNlTmFtZTsKKyAgICBpZiAo
IXBjbU1hY2hTZXJ2aWNlTmFtZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwogICAg
IHN0ZDo6b3B0aW9uYWw8UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM+IHJlc291cmNl
TG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzOwogICAgIGRlY29kZXIgPj4gcmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1BhcmFtZXRlcnM7CiAgICAgaWYgKCFyZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1l
dGVycykKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICAKKwogICAgIHJldHVybiB7
ewogICAgICAgICAqc2Vzc2lvbklECiAgICAgICAgICwgV1RGTW92ZSgqYm91bmRJbnRlcmZhY2VJ
ZGVudGlmaWVyKQpAQCAtMzQ3LDYgKzM1Myw3IEBAIHN0ZDo6b3B0aW9uYWw8TmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzCiAg
ICAgICAgICwgV1RGTW92ZSgqYXBwSGFzUmVxdWVzdGVkQ3Jvc3NXZWJzaXRlVHJhY2tpbmdQZXJt
aXNzaW9uKQogICAgICAgICAsIFdURk1vdmUoKnVzZU5ldHdvcmtMb2FkZXIpCiAgICAgICAgICwg
V1RGTW92ZSgqYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUpCisgICAgICAg
ICwgV1RGTW92ZSgqcGNtTWFjaFNlcnZpY2VOYW1lKQogICAgICAgICAsIFdURk1vdmUoKnJlc291
cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzKQogICAgIH19OwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVy
cy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVycy5oCmluZGV4IGZiNGEzODc3YjA5Y2Y0M2RkZTY2NWU0ZDYzMzkxZWYzZWRjNzZk
ZjIuLjViNjRmNmIyOWQ0ZmU1ZWYyMzFmZDQzZGI4YjNiN2YxMDE1OTIwZjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTEwMiw2ICsxMDIsNyBAQCBzdHJ1Y3QgTmV0d29ya1Nl
c3Npb25DcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGJvb2wgYXBwSGFzUmVxdWVzdGVkQ3Jvc3NX
ZWJzaXRlVHJhY2tpbmdQZXJtaXNzaW9uIHsgZmFsc2UgfTsKICAgICBib29sIHVzZU5ldHdvcmtM
b2FkZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2Vy
dGlmaWNhdGUgeyBmYWxzZSB9OworICAgIFN0cmluZyBwY21NYWNoU2VydmljZU5hbWU7CiAKICAg
ICBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycyByZXNvdXJjZUxvYWRTdGF0aXN0aWNz
UGFyYW1ldGVyczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggNTYzYTAzNjBk
YjUzMTk4MWZlNjc0YjI2M2FmNDAzMjMxZDkxOTg1ZS4uNjUwMjlhNjgzMmJkZWRhMWZkMGE0ZTFh
M2ZhYTljNzFlY2UzNWNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmNwcApAQCAtMzQsMTgg
KzM0LDE3IEBAIG5hbWVzcGFjZSBQQ00gewogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogCi1Db25u
ZWN0aW9uIENvbm5lY3Rpb246OmNvbm5lY3Rpb25Ub0RhZW1vbigpCitDb25uZWN0aW9uOjpDb25u
ZWN0aW9uKENTdHJpbmcmJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiB7
IH07CiB9CiAKLXZvaWQgQ29ubmVjdGlvbjo6c2VuZChNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3Nh
Z2UmJikKK3ZvaWQgQ29ubmVjdGlvbjo6c2VuZChNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2Um
JikgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIENvbm5lY3Rpb246
OnNlbmRXaXRoUmVwbHkoTWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRW5jb2RlZE1lc3NhZ2UmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lk
IENvbm5lY3Rpb246OnNlbmRXaXRoUmVwbHkoTWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRW5jb2RlZE1lc3NhZ2UmJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBjb21wbGV0aW9uSGFu
ZGxlcih7IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmgKaW5kZXggYWYzYTkxMDIxY2JlNDAyMDdl
NTJhMjViY2Y1MDU5NzZjOGZiNmJiNC4uMjkxN2Y3NTVjOTIxNzc1Nzg3NDIwZmQ5ZTkxZTNiM2Yz
NWFlNDlhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSA8d3RmL09TT2JqZWN0UHRyLmg+
CkBAIC0zOSwxOCArNDAsMTggQEAgbmFtZXNwYWNlIFBDTSB7CiBlbnVtIGNsYXNzIE1lc3NhZ2VU
eXBlIDogdWludDhfdDsKIHVzaW5nIEVuY29kZWRNZXNzYWdlID0gVmVjdG9yPHVpbnQ4X3Q+Owog
Ci1jbGFzcyBDb25uZWN0aW9uIHsKK2NsYXNzIENvbm5lY3Rpb24gOiBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8Q29ubmVjdGlvbj4gewogcHVibGljOgotICAgIHN0YXRpYyBDb25uZWN0aW9uIGNvbm5l
Y3Rpb25Ub0RhZW1vbigpOworICAgIENvbm5lY3Rpb24oQ1N0cmluZyYmIG1hY2hTZXJ2aWNlTmFt
ZSk7CiAKLSAgICB2b2lkIHNlbmQoTWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYpOwotICAg
IHZvaWQgc2VuZFdpdGhSZXBseShNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFbmNvZGVkTWVzc2FnZSYmKT4mJik7CisgICAgdm9pZCBzZW5kKE1l
c3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2FnZSYmKSBjb25zdDsKKyAgICB2b2lkIHNlbmRXaXRoUmVw
bHkoTWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
RW5jb2RlZE1lc3NhZ2UmJik+JiYpIGNvbnN0OwogCiBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENP
Q09BKQotICAgIENvbm5lY3Rpb24oT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4mJik7Ci0K
LSAgICBPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBtX2Nvbm5lY3Rpb247CisgICAgdm9p
ZCBpbml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVkKCkgY29uc3Q7CisgICAgY29uc3QgQ1N0cmlu
ZyBtX21hY2hTZXJ2aWNlTmFtZTsKKyAgICBtdXRhYmxlIE9TT2JqZWN0UHRyPHhwY19jb25uZWN0
aW9uX3Q+IG1fY29ubmVjdGlvbjsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXJJbnRlcmZhY2UuY3BwCmluZGV4IDVkMTNlNzRjMWRkMjY4ODc4ZjI5Yzk3MmRhNWY3MWM3OTEx
NjIyZWIuLjY3YTQ2OTMxM2NjODJjYmZmYTQ2NDFiMDg0YWVkOWFhNzAyMjcyYzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHAKQEAgLTE2NywxMSArMTY3LDIyIEBAIGJv
b2wgbWVzc2FnZVR5cGVTZW5kc1JlcGx5KE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlKQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAorc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXI+JiBtYW5hZ2VyUG9pbnRlcigpCit7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPHN0ZDo6dW5pcXVlX3B0cjxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI+PiBt
YW5hZ2VyOworICAgIHJldHVybiBtYW5hZ2VyLmdldCgpOworfQorCit2b2lkIGluaXRpYWxpemVQ
Q01TdG9yYWdlSW5EaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBzdG9yYWdlRGlyZWN0b3J5KQorewor
ICAgIEFTU0VSVCghbWFuYWdlclBvaW50ZXIoKSk7CisgICAgbWFuYWdlclBvaW50ZXIoKSA9IG1h
a2VVbmlxdWU8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyPihtYWtlVW5pcXVlUmVmPFBD
TTo6RGFlbW9uQ2xpZW50PigpLCBzdG9yYWdlRGlyZWN0b3J5KTsKK30KKwogc3RhdGljIFByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlciYgZGFlbW9uTWFuYWdlcigpCiB7Ci0gICAgLy8gRklY
TUU6IEdpdmUgdGhlIG1hbmFnZXIgYSB2YWxpZCBzdG9yYWdlIGRpcmVjdG9yeS4KLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyPiBpbnN0YW5j
ZShtYWtlVW5pcXVlUmVmPFBDTTo6RGFlbW9uQ2xpZW50PigpLCBTdHJpbmcoKSk7Ci0gICAgcmV0
dXJuIGluc3RhbmNlLmdldCgpOworICAgIEFTU0VSVChtYW5hZ2VyUG9pbnRlcigpKTsKKyAgICBy
ZXR1cm4gKm1hbmFnZXJQb2ludGVyKCk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEluZm8+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaAppbmRleCA0MDM2MmRmYTIyMTRlYzgzN2U3
NTdlOTRiY2Q0YWU4YTNjYjI1MGQ5Li41Y2Y0ZTNkZTIxZDBjYzM5OWMyM2FkMDkwN2EzM2Q4ZWVm
MDdiNWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmgKQEAgLTEwMSw2ICsx
MDEsOCBAQCB1c2luZyBFbmNvZGVkTWVzc2FnZSA9IFZlY3Rvcjx1aW50OF90PjsKIHZvaWQgZGVj
b2RlTWVzc2FnZUFuZFNlbmRUb01hbmFnZXIoTWVzc2FnZVR5cGUsIFZlY3Rvcjx1aW50OF90PiYm
IG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPHVpbnQ4X3Q+JiYpPiYmKTsK
IGJvb2wgbWVzc2FnZVR5cGVTZW5kc1JlcGx5KE1lc3NhZ2VUeXBlKTsKIAordm9pZCBpbml0aWFs
aXplUENNU3RvcmFnZUluRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYpOworCiB9IC8vIG5hbWVzcGFj
ZSBQQ00KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHku
Y3BwCmluZGV4IDEwODI2NTJiMDBlMjcxMzRlYjQxZjBlZTIxYTg2YTU4MTk1NDg2ZmQuLjliY2Iz
MTFlNDU4YjE2ZWJlNzNkNDNmMjNiNjJhMzFmM2RmNGQ4N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyUHJveHkuY3BwCkBAIC0zNSwxMSArMzUsMTEgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBuYW1l
c3BhY2UgUENNIHsKIAogdGVtcGxhdGU8TWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIHR5cGVuYW1l
Li4uIEFyZ3M+Ci12b2lkIHNlbmRNZXNzYWdlKEFyZ3MmJi4uLiBhcmdzKQordm9pZCBNYW5hZ2Vy
UHJveHk6OnNlbmRNZXNzYWdlKEFyZ3MmJi4uLiBhcmdzKSBjb25zdAogewogICAgIEVuY29kZXIg
ZW5jb2RlcjsKICAgICBlbmNvZGVyLmVuY29kZShzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4p
OwotICAgIENvbm5lY3Rpb246OmNvbm5lY3Rpb25Ub0RhZW1vbigpLnNlbmQobWVzc2FnZVR5cGUs
IGVuY29kZXIudGFrZUJ1ZmZlcigpKTsKKyAgICBtX2Nvbm5lY3Rpb24uc2VuZChtZXNzYWdlVHlw
ZSwgZW5jb2Rlci50YWtlQnVmZmVyKCkpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdz
PiBzdHJ1Y3QgUmVwbHlDYWxsZXI7CkBAIC02MSwxNiArNjEsMTkgQEAgdGVtcGxhdGU8PiBzdHJ1
Y3QgUmVwbHlDYWxsZXI8U3RyaW5nPiB7CiB9OwogCiB0ZW1wbGF0ZTxNZXNzYWdlVHlwZSBtZXNz
YWdlVHlwZSwgdHlwZW5hbWUuLi4gQXJncywgdHlwZW5hbWUuLi4gUmVwbHlBcmdzPgotdm9pZCBz
ZW5kTWVzc2FnZVdpdGhSZXBseShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlcGx5QXJncy4uLik+
JiYgY29tcGxldGlvbkhhbmRsZXIsIEFyZ3MmJi4uLiBhcmdzKQordm9pZCBNYW5hZ2VyUHJveHk6
OnNlbmRNZXNzYWdlV2l0aFJlcGx5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVwbHlBcmdzLi4u
KT4mJiBjb21wbGV0aW9uSGFuZGxlciwgQXJncyYmLi4uIGFyZ3MpIGNvbnN0CiB7CiAgICAgRW5j
b2RlciBlbmNvZGVyOwogICAgIGVuY29kZXIuZW5jb2RlKHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdz
KS4uLik7Ci0gICAgQ29ubmVjdGlvbjo6Y29ubmVjdGlvblRvRGFlbW9uKCkuc2VuZFdpdGhSZXBs
eShtZXNzYWdlVHlwZSwgZW5jb2Rlci50YWtlQnVmZmVyKCksIFtjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoYXV0byByZXBseUJ1ZmZlcikgbXV0YWJsZSB7
CisgICAgbV9jb25uZWN0aW9uLnNlbmRXaXRoUmVwbHkobWVzc2FnZVR5cGUsIGVuY29kZXIudGFr
ZUJ1ZmZlcigpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0gKGF1dG8gcmVwbHlCdWZmZXIpIG11dGFibGUgewogICAgICAgICBEZWNvZGVyIGRlY29kZXIo
V1RGTW92ZShyZXBseUJ1ZmZlcikpOwogICAgICAgICBSZXBseUNhbGxlcjxSZXBseUFyZ3MuLi4+
OjpjYWxsUmVwbHkoV1RGTW92ZShkZWNvZGVyKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwogICAgIH0pOwogfQogCitNYW5hZ2VyUHJveHk6Ok1hbmFnZXJQcm94eShjb25zdCBTdHJpbmcm
IG1hY2hTZXJ2aWNlTmFtZSkKKyAgICA6IG1fY29ubmVjdGlvbihtYWNoU2VydmljZU5hbWUudXRm
OCgpKSB7IH0KKwogdm9pZCBNYW5hZ2VyUHJveHk6OnN0b3JlVW5hdHRyaWJ1dGVkKFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYgcGNtKQogewogICAgIHNlbmRNZXNzYWdlPE1lc3Nh
Z2VUeXBlOjpTdG9yZVVuYXR0cmlidXRlZD4ocGNtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHku
aAppbmRleCAxNTExMDk4NzY4OTQxN2EzYjE4NmEyNDIwM2NjMWNjMzYyNzZiZjFmLi43YzBhZjBm
NjM5MGQzNmNkYzFmYTZiNjEwNGMzODRiNjM2NzVlNTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQ
cm94eS5oCkBAIC0yNSw4ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oIgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9j
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IApAQCAtMzUsNiArMzcsOCBAQCBuYW1lc3BhY2UgUENNIHsKIGNsYXNzIE1hbmFnZXJQcm94eSA6
IHB1YmxpYyBNYW5hZ2VySW50ZXJmYWNlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKKyAgICBNYW5hZ2VyUHJveHkoY29uc3QgU3RyaW5nJiBtYWNoU2VydmljZU5hbWUp
OworCiAgICAgdm9pZCBzdG9yZVVuYXR0cmlidXRlZChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCYmKSBmaW5hbDsKICAgICB2b2lkIGhhbmRsZUF0dHJpYnV0aW9uKFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNvbnN0IFVS
TCYgcmVxdWVzdFVSTCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiByZWRpcmVjdERvbWFp
biwgY29uc3QgVVJMJiBmaXJzdFBhcnR5VVJMKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CkBAIC01Myw2ICs1NywxNCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzdGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nKCkgZmluYWw7CiAgICAg
dm9pZCBkZXN0cm95U3RvcmVGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikg
ZmluYWw7CiAgICAgdm9pZCBhbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3Rp
bmcoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJikgZmluYWw7CisKK3ByaXZhdGU6Cisg
ICAgdGVtcGxhdGU8TWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIHR5cGVuYW1lLi4uIEFyZ3M+Cisg
ICAgdm9pZCBzZW5kTWVzc2FnZShBcmdzJiYuLi4pIGNvbnN0OworICAgIHRlbXBsYXRlPE1lc3Nh
Z2VUeXBlIG1lc3NhZ2VUeXBlLCB0eXBlbmFtZS4uLiBBcmdzLCB0eXBlbmFtZS4uLiBSZXBseUFy
Z3M+CisgICAgdm9pZCBzZW5kTWVzc2FnZVdpdGhSZXBseShDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFJlcGx5QXJncy4uLik+JiYsIEFyZ3MmJi4uLikgY29uc3Q7CisKKyAgICBDb25uZWN0aW9uIG1f
Y29ubmVjdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBDTQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudERhZW1vbkNvbm5lY3Rpb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnREYWVtb25Db25uZWN0aW9uQ29jb2EubW0KaW5kZXggNjFiNTg1MDY2NThh
M2Y5NTM1ZWVmYjFhNjA1YTI1NWQ4NzI0NzcxYS4uMWM2ZTZiZmU3MzE1MzllYTExODQzNzNhOGNl
NmJhNTVlMmE5YzliOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhZW1v
bkNvbm5lY3Rpb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGFlbW9u
Q29ubmVjdGlvbkNvY29hLm1tCkBAIC0zMywyNiArMzMsMjUgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiAKIG5hbWVzcGFjZSBQQ00gewogCi1Db25uZWN0aW9uOjpDb25uZWN0aW9uKE9TT2JqZWN0UHRy
PHhwY19jb25uZWN0aW9uX3Q+JiYgY29ubmVjdGlvbikKLSAgICA6IG1fY29ubmVjdGlvbihXVEZN
b3ZlKGNvbm5lY3Rpb24pKSB7IH0KK0Nvbm5lY3Rpb246OkNvbm5lY3Rpb24oQ1N0cmluZyYmIG1h
Y2hTZXJ2aWNlTmFtZSkKKyAgICA6IG1fbWFjaFNlcnZpY2VOYW1lKFdURk1vdmUobWFjaFNlcnZp
Y2VOYW1lKSkgeyB9CiAKLUNvbm5lY3Rpb24gQ29ubmVjdGlvbjo6Y29ubmVjdGlvblRvRGFlbW9u
KCkKK3ZvaWQgQ29ubmVjdGlvbjo6aW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCgpIGNvbnN0
CiB7Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8T1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4+IGNvbm5lY3Rpb247Ci0gICAgaWYg
KCFjb25uZWN0aW9uLmdldCgpKSB7Ci0gICAgICAgIGNvbm5lY3Rpb24uZ2V0KCkgPSBhZG9wdE9T
T2JqZWN0KHhwY19jb25uZWN0aW9uX2NyZWF0ZV9tYWNoX3NlcnZpY2UoImNvbS5hcHBsZS53ZWJr
aXQuYWRhdHRyaWJ1dGlvbmQuc2VydmljZSIsIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIDAp
KTsKLSAgICAgICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2ZW50X2hhbmRsZXIoY29ubmVjdGlvbi5n
ZXQoKS5nZXQoKSwgXih4cGNfb2JqZWN0X3QgZXZlbnQpIHsKLSAgICAgICAgICAgIEFTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7Ci0gICAgICAgICAgICBpZiAoZXZlbnQgPT0gWFBDX0VSUk9SX0NP
Tk5FQ1RJT05fSU5URVJSVVBURUQpIHsKLSAgICAgICAgICAgICAgICAvLyBEYWVtb24gY3Jhc2hl
ZCwgd2Ugd2lsbCBuZWVkIHRvIG1ha2UgYSBuZXcgY29ubmVjdGlvbiB0byBhIG5ldyBpbnN0YW5j
ZSBvZiB0aGUgZGFlbW9uLgotICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uZ2V0KCkgPSBudWxs
cHRyOwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgIH0pOwotICAgICAgICB4cGNfY29ubmVjdGlvbl9hY3RpdmF0ZShjb25u
ZWN0aW9uLmdldCgpLmdldCgpKTsKLSAgICB9Ci0gICAgcmV0dXJuIENvbm5lY3Rpb24oT1NPYmpl
Y3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4oY29ubmVjdGlvbi5nZXQoKSkpOworICAgIGlmIChtX2Nv
bm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKyAgICBtX2Nvbm5lY3Rpb24gPSBhZG9wdE9TT2Jq
ZWN0KHhwY19jb25uZWN0aW9uX2NyZWF0ZV9tYWNoX3NlcnZpY2UobV9tYWNoU2VydmljZU5hbWUu
ZGF0YSgpLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCAwKSk7CisgICAgeHBjX2Nvbm5lY3Rp
b25fc2V0X2V2ZW50X2hhbmRsZXIobV9jb25uZWN0aW9uLmdldCgpLCBbd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyldKHhwY19vYmplY3RfdCBldmVudCkgeworICAgICAgICBpZiAoIXdlYWtU
aGlzKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoZXZlbnQgPT0gWFBDX0VSUk9S
X0NPTk5FQ1RJT05fSU5WQUxJRCkKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiRmFpbGVkIHRv
IGNvbm5lY3QgdG8gbWFjaCBzZXJ2aWNlICVzLCBsaWtlbHkgYmVjYXVzZSBpdCBpcyBub3QgcmVn
aXN0ZXJlZCB3aXRoIGxhdW5jaGQiLCB3ZWFrVGhpcy0+bV9tYWNoU2VydmljZU5hbWUuZGF0YSgp
KTsKKyAgICAgICAgaWYgKGV2ZW50ID09IFhQQ19FUlJPUl9DT05ORUNUSU9OX0lOVEVSUlVQVEVE
KSB7CisgICAgICAgICAgICAvLyBEYWVtb24gY3Jhc2hlZCwgd2Ugd2lsbCBuZWVkIHRvIG1ha2Ug
YSBuZXcgY29ubmVjdGlvbiB0byBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgZGFlbW9uLgorICAgICAg
ICAgICAgd2Vha1RoaXMtPm1fY29ubmVjdGlvbiA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9
KTsKKyAgICB4cGNfY29ubmVjdGlvbl9hY3RpdmF0ZShtX2Nvbm5lY3Rpb24uZ2V0KCkpOwogfQog
CiBzdGF0aWMgT1NPYmplY3RQdHI8eHBjX29iamVjdF90PiBkaWN0aW9uYXJ5RnJvbU1lc3NhZ2Uo
TWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYgbWVzc2FnZSkKQEAgLTYz
LDI1ICs2MiwyMiBAQCBzdGF0aWMgT1NPYmplY3RQdHI8eHBjX29iamVjdF90PiBkaWN0aW9uYXJ5
RnJvbU1lc3NhZ2UoTWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsCiAgICAgcmV0dXJuIGRpY3Rpb25h
cnk7CiB9CiAKLXZvaWQgQ29ubmVjdGlvbjo6c2VuZChNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwg
RW5jb2RlZE1lc3NhZ2UmJiBtZXNzYWdlKQordm9pZCBDb25uZWN0aW9uOjpzZW5kKE1lc3NhZ2VU
eXBlIG1lc3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2FnZSYmIG1lc3NhZ2UpIGNvbnN0CiB7Ci0gICAg
aWYgKCFtX2Nvbm5lY3Rpb24pIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICBp
bml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVkKCk7CiAKICAgICB4cGNfY29ubmVjdGlvbl9zZW5k
X21lc3NhZ2UobV9jb25uZWN0aW9uLmdldCgpLCBkaWN0aW9uYXJ5RnJvbU1lc3NhZ2UobWVzc2Fn
ZVR5cGUsIFdURk1vdmUobWVzc2FnZSkpLmdldCgpKTsKIH0KIAotdm9pZCBDb25uZWN0aW9uOjpz
ZW5kV2l0aFJlcGx5KE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2FnZSYmIG1l
c3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRW5jb2RlZE1lc3NhZ2UmJik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIENvbm5lY3Rpb246OnNlbmRXaXRoUmVwbHkoTWVzc2FnZVR5cGUg
bWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChFbmNvZGVkTWVzc2FnZSYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QKIHsKLSAg
ICBpZiAoIW1fY29ubmVjdGlvbikgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7Ci0gICAgfQorICAgIEFTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7CisgICAgaW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCgpOwog
CiAgICAgYXV0byBkaWN0aW9uYXJ5ID0gZGljdGlvbmFyeUZyb21NZXNzYWdlKG1lc3NhZ2VUeXBl
LCBXVEZNb3ZlKG1lc3NhZ2UpKTsKICAgICB4cGNfY29ubmVjdGlvbl9zZW5kX21lc3NhZ2Vfd2l0
aF9yZXBseShtX2Nvbm5lY3Rpb24uZ2V0KCksIGRpY3Rpb25hcnkuZ2V0KCksIGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIG1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0gKHhwY19vYmplY3RfdCByZXBseSkgbXV0YWJsZSB7CisgICAg
ICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgICAgIGlmICh4cGNfZ2V0X3R5cGUo
cmVwbHkpICE9IFhQQ19UWVBFX0RJQ1RJT05BUlkpIHsKICAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL21hYy9jb20uYXBwbGUuV2Vi
S2l0Lk5ldHdvcmtQcm9jZXNzLnNiLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9t
YWMvY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYi5pbgppbmRleCAxOTc0YjhlOWYy
NTlhZWVmYzk0NDY0Njg0YjIwNGQzNTBmMzhkNDFiLi5iNDBiYzNjYTcwZjQ2YmIzYjIyN2FjODI0
OWYwOWNjYmI0ZWU1MmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L21hYy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Mu
c2IuaW4KQEAgLTM1OCw2ICszNTgsNyBAQAogKQogCiAoYWxsb3cgbWFjaC1sb29rdXAgKGdsb2Jh
bC1uYW1lICJjb20uYXBwbGUud2Via2l0LmFkYXR0cmlidXRpb25kLnNlcnZpY2UiKSkKKyhhbGxv
dyBtYWNoLWxvb2t1cCAoZ2xvYmFsLW5hbWUgIm9yZy53ZWJraXQucGNtdGVzdGRhZW1vbi5zZXJ2
aWNlIikpCiAKICh3aXRoLWZpbHRlciAodWlkIDApCiAgICAgKGFsbG93IG1hY2gtbG9va3VwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29h
L0RhZW1vbi9QQ01EYWVtb25FbnRyeVBvaW50Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50
cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9uRW50cnlQb2ludC5tbQppbmRl
eCA4NTE1MTQzMzkzYjYzM2RkMGE2MTU4OTI0YmJlOWU0NzA3MzVkYzRjLi41NDhmZjUxNjRjNmQ2
ZjE5YmU1MWQ0ZjQ2OGRkN2JmNWQ0M2E0ODZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9QQ01EYWVtb25FbnRyeVBvaW50
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2Ev
RGFlbW9uL1BDTURhZW1vbkVudHJ5UG9pbnQubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQg
IlByaXZhdGVDbGlja01lYXN1cmVtZW50WFBDVXRpbGl0aWVzLmgiCiAjaW1wb3J0IDxGb3VuZGF0
aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2lt
cG9ydCA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+CiAjaW1wb3J0
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTc2
LDkgKzc3LDkgQEAgc3RhdGljIHZvaWQgY29ubmVjdGlvbkV2ZW50SGFuZGxlcih4cGNfb2JqZWN0
X3QgcmVxdWVzdCkKICAgICBkZWNvZGVNZXNzYWdlQW5kU2VuZFRvTWFuYWdlcihtZXNzYWdlVHlw
ZSwgV1RGTW92ZShlbmNvZGVkTWVzc2FnZSksIHJlcGx5U2VuZGVyKG1lc3NhZ2VUeXBlLCByZXF1
ZXN0KSk7CiB9CiAKLXN0YXRpYyB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9yTWFjaFNlcnZpY2VDb25u
ZWN0aW9ucygpCitzdGF0aWMgdm9pZCBzdGFydExpc3RlbmluZ0Zvck1hY2hTZXJ2aWNlQ29ubmVj
dGlvbnMoY29uc3QgY2hhciogc2VydmljZU5hbWUpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPE9TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+PiBsaXN0ZW5lciA9IHhwY19jb25uZWN0
aW9uX2NyZWF0ZV9tYWNoX3NlcnZpY2UoImNvbS5hcHBsZS53ZWJraXQuYWRhdHRyaWJ1dGlvbmQu
c2VydmljZSIsIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFhQQ19DT05ORUNUSU9OX01BQ0hf
U0VSVklDRV9MSVNURU5FUik7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE9TT2JqZWN0UHRy
PHhwY19jb25uZWN0aW9uX3Q+PiBsaXN0ZW5lciA9IHhwY19jb25uZWN0aW9uX2NyZWF0ZV9tYWNo
X3NlcnZpY2Uoc2VydmljZU5hbWUsIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFhQQ19DT05O
RUNUSU9OX01BQ0hfU0VSVklDRV9MSVNURU5FUik7CiAgICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2
ZW50X2hhbmRsZXIobGlzdGVuZXIuZ2V0KCkuZ2V0KCksIF4oeHBjX29iamVjdF90IHBlZXIpIHsK
ICAgICAgICAgaWYgKHhwY19nZXRfdHlwZShwZWVyKSAhPSBYUENfVFlQRV9DT05ORUNUSU9OKQog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtODYsNiArODcsOCBAQCBzdGF0aWMgdm9pZCBzdGFydExp
c3RlbmluZ0Zvck1hY2hTZXJ2aWNlQ29ubmVjdGlvbnMoKQogICAgICAgICAvLyBGSVhNRTogQWRk
IGFuIGVudGl0bGVtZW50IGNoZWNrIGhlcmUgc28gdGhhdCBvbmx5IHRoZSBuZXR3b3JrIHByb2Nl
c3MgY2FuIHN1Y2Nlc3NmdWxseSBjb25uZWN0LgogCiAgICAgICAgIHhwY19jb25uZWN0aW9uX3Nl
dF9ldmVudF9oYW5kbGVyKHBlZXIsIF4oeHBjX29iamVjdF90IGV2ZW50KSB7CisgICAgICAgICAg
ICBpZiAoZXZlbnQgPT0gWFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5WQUxJRCkKKyAgICAgICAgICAg
ICAgICBOU0xvZyhAIkZhaWxlZCB0byBzdGFydCBsaXN0ZW5pbmcgZm9yIGNvbm5lY3Rpb25zIHRv
IG1hY2ggc2VydmljZSAlcywgbGlrZWx5IGJlY2F1c2UgaXQgaXMgbm90IHJlZ2lzdGVyZWQgd2l0
aCBsYXVuY2hkIiwgc2VydmljZU5hbWUpOwogICAgICAgICAgICAgaWYgKGV2ZW50ID09IFhQQ19F
UlJPUl9DT05ORUNUSU9OX0lOVEVSUlVQVEVEKSB7CiAgICAgICAgICAgICAgICAgTlNMb2coQCJy
ZW1vdmluZyBwZWVyIGNvbm5lY3Rpb24gJXAiLCBwZWVyKTsKICAgICAgICAgICAgICAgICBwZWVy
cygpLnJlbW92ZShwZWVyKTsKQEAgLTEwNCw2ICsxMDcsNyBAQCBzdGF0aWMgdm9pZCBzdGFydExp
c3RlbmluZ0Zvck1hY2hTZXJ2aWNlQ29ubmVjdGlvbnMoKQogCiBzdGF0aWMgdm9pZCByZWdpc3Rl
clNjaGVkdWxlZEFjdGl2aXR5SGFuZGxlcigpCiB7CisgICAgTlNMb2coQCJSZWdpc3RlcmluZyBY
UEMgYWN0aXZpdHkiKTsKICAgICB4cGNfYWN0aXZpdHlfcmVnaXN0ZXIoImNvbS5hcHBsZS53ZWJr
aXQuYWRhdHRyaWJ1dGlvbmQuYWN0aXZpdHkiLCBYUENfQUNUSVZJVFlfQ0hFQ0tfSU4sIF4oeHBj
X2FjdGl2aXR5X3QgYWN0aXZpdHkpIHsKICAgICAgICAgaWYgKHhwY19hY3Rpdml0eV9nZXRfc3Rh
dGUoYWN0aXZpdHkpID09IFhQQ19BQ1RJVklUWV9TVEFURV9DSEVDS19JTikgewogICAgICAgICAg
ICAgeHBjX29iamVjdF90IGNyaXRlcmlhID0geHBjX2FjdGl2aXR5X2NvcHlfY3JpdGVyaWEoYWN0
aXZpdHkpOwpAQCAtMTI1LDE1ICsxMjksMjEgQEAgc3RhdGljIHZvaWQgZW50ZXJTYW5kYm94KCkK
IAogaW50IFBDTURhZW1vbk1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBhcmd2KQogewotICAg
IGlmIChhcmdjICE9IDIgfHwgc3RyY21wKGFyZ3ZbMV0sICJydW5Bc0RhZW1vbiIpKSB7Ci0gICAg
ICAgIE5TTG9nKEAiVGhpcyBleGVjdXRhYmxlIGlzIGludGVuZGVkIHRvIGJlIHJ1biBhcyBhIGRh
ZW1vbi4iKTsKKyAgICBpZiAoYXJnYyA8IDUgfHwgc3RyY21wKGFyZ3ZbMV0sICItLW1hY2hTZXJ2
aWNlTmFtZSIpIHx8IHN0cmNtcChhcmd2WzNdLCAiLS1zdG9yYWdlTG9jYXRpb24iKSkgeworICAg
ICAgICBOU0xvZyhAIlVzYWdlOiAlcyAtLW1hY2hTZXJ2aWNlTmFtZSA8bmFtZT4gLS1zdG9yYWdl
TG9jYXRpb24gPGxvY2F0aW9uPiBbLS1zdGFydEFjdGl2aXR5XSIsIGFyZ3ZbMF0pOwogICAgICAg
ICByZXR1cm4gLTE7CiAgICAgfQorICAgIGNvbnN0IGNoYXIqIG1hY2hTZXJ2aWNlTmFtZSA9IGFy
Z3ZbMl07CisgICAgY29uc3QgY2hhciogc3RvcmFnZUxvY2F0aW9uID0gYXJndls0XTsKKyAgICBi
b29sIHN0YXJ0QWN0aXZpdHkgPSBhcmdjID4gNSAmJiAhc3RyY21wKGFyZ3ZbNV0sICItLXN0YXJ0
QWN0aXZpdHkiKTsKKwogICAgIEBhdXRvcmVsZWFzZXBvb2wgewogICAgICAgICBlbnRlclNhbmRi
b3goKTsKLSAgICAgICAgc3RhcnRMaXN0ZW5pbmdGb3JNYWNoU2VydmljZUNvbm5lY3Rpb25zKCk7
Ci0gICAgICAgIHJlZ2lzdGVyU2NoZWR1bGVkQWN0aXZpdHlIYW5kbGVyKCk7CisgICAgICAgIHN0
YXJ0TGlzdGVuaW5nRm9yTWFjaFNlcnZpY2VDb25uZWN0aW9ucyhtYWNoU2VydmljZU5hbWUpOwor
ICAgICAgICBpZiAoc3RhcnRBY3Rpdml0eSkKKyAgICAgICAgICAgIHJlZ2lzdGVyU2NoZWR1bGVk
QWN0aXZpdHlIYW5kbGVyKCk7CiAgICAgICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQoKTsK
KyAgICAgICAgUENNOjppbml0aWFsaXplUENNU3RvcmFnZUluRGlyZWN0b3J5KEZpbGVTeXN0ZW06
OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oc3RvcmFnZUxvY2F0aW9uKSk7CiAg
ICAgfQogICAgIENGUnVuTG9vcFJ1bigpOwogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24uaAppbmRleCA3ZDBhZTc5ZTIxMTg0ODRlZWFjOWRkYzg5YmZj
YTVjMWUyMDlkNGYwLi4wODUxMjNkMGQ0ZmFiZTk5Y2ZmMTE0ZjE2MWU2NDQ4MGQzNDg5MzVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaApAQCAtNzYsNiArNzYsNyBA
QCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRIU1RTU3RvcmFnZURpcmVjdG9y
eTopIE5TVVJMICpoc3RzU3RvcmFnZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEy
LjApLCBpb3MoMTUuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgZW5hYmxlSW5BcHBC
cm93c2VyUHJpdmFjeUZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9z
KDE1LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93c0hTVFNXaXRoVW50cnVz
dGVkUm9vdENlcnRpZmljYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4w
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRQQ01N
YWNoU2VydmljZU5hbWU6KSBOU1N0cmluZyAqcGNtTWFjaFNlcnZpY2VOYW1lIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNVUkwgKmFsdGVybmF0aXZlU2VydmljZXNTdG9y
YWdlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TVVJMICpzdGFuZGFsb25lQXBw
bGljYXRpb25VUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQppbmRleCBhZTM5YjY2MTg1MDlj
OWYyYmVlYTRmOWQ5NTVjMDQxYWRiN2FmMzc2Li41OTAwNzUyZjdiMDQxNDk2NjBhNTdkZDJlNGI0
Mjk2NjE4NzAwNTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1t
CkBAIC01MjEsNiArNTIxLDE2IEBAIHN0YXRpYyB2b2lkIGNoZWNrVVJMQXJndW1lbnQoTlNVUkwg
KnVybCkKICAgICBfY29uZmlndXJhdGlvbi0+c2V0QWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290
Q2VydGlmaWNhdGUoYWxsb3dzKTsKIH0KIAorLSAoTlNTdHJpbmcgKilwY21NYWNoU2VydmljZU5h
bWUKK3sKKyAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24tPnBjbU1hY2hTZXJ2aWNlTmFtZSgpOwor
fQorCistICh2b2lkKXNldFBDTU1hY2hTZXJ2aWNlTmFtZTooTlNTdHJpbmcgKiluYW1lCit7Cisg
ICAgX2NvbmZpZ3VyYXRpb24tPnNldFBDTU1hY2hTZXJ2aWNlTmFtZShuYW1lKTsKK30KKwogLSAo
Qk9PTClhbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0
aW5nCiB7CiAgICAgcmV0dXJuIF9jb25maWd1cmF0aW9uLT5hbGxMb2Fkc0Jsb2NrZWRCeURldmlj
ZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4
IDNkYTZjMTE2YjkzNjg4ZDFiYWM3M2Q3ZTZkOWQ0OTllMDQ0MTJhZmUuLjUxMTM0OGYyMGZhYjlm
NDY1ZjhmZGU5MDFmZTYwN2Y3ZTczNzdmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0yMDYwLDYg
KzIwNjAsNyBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpw
YXJhbWV0ZXJzKCkKICAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVxdWlyZXNTZWN1cmVI
VFRQU1Byb3h5Q29ubmVjdGlvbiA9IG1fY29uZmlndXJhdGlvbi0+cmVxdWlyZXNTZWN1cmVIVFRQ
U1Byb3h5Q29ubmVjdGlvbigpOwogICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5wcmV2ZW50
c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uID0gbV9jb25maWd1cmF0aW9uLT5wcmV2ZW50
c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uKCk7CiAgICAgbmV0d29ya1Nlc3Npb25QYXJh
bWV0ZXJzLmFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlID0gbV9jb25maWd1
cmF0aW9uLT5hbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSgpOworICAgIG5l
dHdvcmtTZXNzaW9uUGFyYW1ldGVycy5wY21NYWNoU2VydmljZU5hbWUgPSBtX2NvbmZpZ3VyYXRp
b24tPnBjbU1hY2hTZXJ2aWNlTmFtZSgpOwogCiAgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lv
blBhcmFtZXRlcnMgPSBXVEZNb3ZlKG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycyk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcAppbmRleCBiZDRiOTU3YWJkMTExMTBl
MzA5M2Y1MjhiNTM2OGUzZTFkYTQ4MWIzLi5mZDRiMDhlNjFhYmMzNjA0N2Q3YmViMTAwMjFlNGVl
YTE1ODg2ODVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwCkBA
IC01MSw2ICs1MSw3IEBAIFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbihJc1BlcnNpc3RlbnQgaXNQZXJzCiAjaWYgSEFWRShBUktJVF9J
TkxJTkVfUFJFVklFVykKICAgICAgICAgc2V0TW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoV2Vi
c2l0ZURhdGFTdG9yZTo6ZGVmYXVsdE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KCkpOwogI2Vu
ZGlmCisgICAgICAgIC8vIEZJWE1FOiBHaXZlIG1fcGNtTWFjaFNlcnZpY2VOYW1lIGEgZGVmYXVs
dCB2YWx1ZSBhbmQgcmVtb3ZlIFBDTTo6TWFuYWdlckludGVyZmFjZSBvbmNlIHJkYXI6Ly84MDcw
MTA5OCBpcyBjbG9zZWQuCiAgICAgfQogfQogCkBAIC0xMDAsNiArMTAxLDcgQEAgUmVmPFdlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6
Y29weSgpIGNvbnN0CiAgICAgY29weS0+bV9zdGFuZGFsb25lQXBwbGljYXRpb25VUkwgPSB0aGlz
LT5tX3N0YW5kYWxvbmVBcHBsaWNhdGlvblVSTDsKICAgICBjb3B5LT5tX2VuYWJsZUluQXBwQnJv
d3NlclByaXZhY3lGb3JUZXN0aW5nID0gdGhpcy0+bV9lbmFibGVJbkFwcEJyb3dzZXJQcml2YWN5
Rm9yVGVzdGluZzsKICAgICBjb3B5LT5tX2FsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRp
ZmljYXRlID0gdGhpcy0+bV9hbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZTsK
KyAgICBjb3B5LT5tX3BjbU1hY2hTZXJ2aWNlTmFtZSA9IHRoaXMtPm1fcGNtTWFjaFNlcnZpY2VO
YW1lOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGlmIChtX3Byb3h5Q29uZmlndXJhdGlvbikK
ICAgICAgICAgY29weS0+bV9wcm94eUNvbmZpZ3VyYXRpb24gPSBhZG9wdENGKENGRGljdGlvbmFy
eUNyZWF0ZUNvcHkobnVsbHB0ciwgdGhpcy0+bV9wcm94eUNvbmZpZ3VyYXRpb24uZ2V0KCkpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCmluZGV4IGVkZGFiNDRlM2EyODlj
MWE0NTQ3ZjFjNDYwOTI5MTljNmMyNzgwYzcuLjczNGFiNjYyYzg0YTM1Mjg3ZDI2ZDllNWIyMmU5
N2Q3NDhmMDYyZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaApAQCAt
MTgwLDYgKzE4MCw5IEBAIHB1YmxpYzoKICAgICBib29sIGFsbG93c0hTVFNXaXRoVW50cnVzdGVk
Um9vdENlcnRpZmljYXRlKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd3NIU1RTV2l0aFVudHJ1c3Rl
ZFJvb3RDZXJ0aWZpY2F0ZTsgfQogICAgIHZvaWQgc2V0QWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRS
b290Q2VydGlmaWNhdGUoYm9vbCBhbGxvd3MpIHsgbV9hbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJv
b3RDZXJ0aWZpY2F0ZSA9IGFsbG93czsgfQogICAgIAorICAgIHZvaWQgc2V0UENNTWFjaFNlcnZp
Y2VOYW1lKFN0cmluZyYmIG5hbWUpIHsgbV9wY21NYWNoU2VydmljZU5hbWUgPSBXVEZNb3ZlKG5h
bWUpOyB9CisgICAgY29uc3QgU3RyaW5nJiBwY21NYWNoU2VydmljZU5hbWUoKSBjb25zdCB7IHJl
dHVybiBtX3BjbU1hY2hTZXJ2aWNlTmFtZTsgfQorCiBwcml2YXRlOgogICAgIElzUGVyc2lzdGVu
dCBtX2lzUGVyc2lzdGVudCB7IElzUGVyc2lzdGVudDo6Tm8gfTsKIApAQCAtMjMyLDYgKzIzNSw3
IEBAIHByaXZhdGU6CiAgICAgVVJMIG1fc3RhbmRhbG9uZUFwcGxpY2F0aW9uVVJMOwogICAgIGJv
b2wgbV9lbmFibGVJbkFwcEJyb3dzZXJQcml2YWN5Rm9yVGVzdGluZyB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2FsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlIHsgZmFsc2UgfTsK
KyAgICBTdHJpbmcgbV9wY21NYWNoU2VydmljZU5hbWU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gbV9wcm94eUNvbmZpZ3VyYXRpb247CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAy
YzViMjJlOTc2OWE3NjQxZWE5OTNlYTQxY2Y1NmY1NTgwYzA4Mzc2Li4xY2M2YjY4N2NlNWE2Y2Zm
YjE5MDk5ZjY5Y2I2YzRkNGFjYzk3MzhkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMDktMTEgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgdW5pdCB0
ZXN0IHRoYXQgdXNlcyBQQ00gZGFlbW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzAxOTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFBDTURh
ZW1vbi54Y2NvbmZpZzogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6Y3VycmVudEV4ZWN1dGFibGVMb2NhdGlvbik6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
Ojp0ZXN0RGFlbW9uUExpc3QpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0UENNRGFlbW9uTWFpbi5jOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5jcHAuCisgICAgICAgIChtYWluKToKKwog
MjAyMS0wOS0xMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIEFkZCBpbmZyYXN0cnVjdHVyZSB0byBhbGxvdyBUTFMgZHVyaW5nIFBDTSB0ZXN0
cwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0UENN
RGFlbW9uLnhjY29uZmlnIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0
UENNRGFlbW9uLnhjY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlN2VjNjgxNmE4OThiNDg3MjI3ZGUwNGVm
Mzk1OTE2MDg4YjMwNTEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0Nv
bmZpZ3VyYXRpb25zL1Rlc3RQQ01EYWVtb24ueGNjb25maWcKQEAgLTAsMCArMSwyNyBAQAorLy8g
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisv
LyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworLy8gYXJlIG1ldDoKKy8vIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisvLyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorLy8gICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKy8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKy8vIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisvLyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKy8vIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisvLyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKy8vIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKy8vIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorLy8gUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorLy8gT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisv
LyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorCitQUk9EVUNUX05BTUUgPSBUZXN0UENN
RGFlbW9uOworCitPVEhFUl9MREZMQUdTID0gLWZyYW1ld29yayBXZWJLaXQ7CitGUkFNRVdPUktf
U0VBUkNIX1BBVEhTID0gJChCVUlMVF9QUk9EVUNUU19ESVIpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAxOGViZjk0MTAzYmE4NGNlNjQwYzJkMzExZGZlM2JmZmM1MzY3ZGVlLi5hY2Y1YWUy
NTJkMmFlZGZkNTUxMGJhZDdjMTY0MzczMzk5MTdiYjY5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMzYsNiArMzYsNyBAQAogCQkJCTUzN0NGODQ4MjJFRkQ3MjAwMEM2RUJCMyAvKiBDaGVj
ayAueGNmaWxlbGlzdHMgKi8sCiAJCQkpOwogCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCTVDMUIx
RDFDMjZFQzJFRUMwMDg4MkRBMiAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTdDODNF
MDMwMUQwQTVFMUIwMEZFQkNGMyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTdDODNF
MDMyMUQwQTVFMUQwMEZFQkNGMyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsKQEAg
LTQ3OCw2ICs0NzksNyBAQAogCQk1QzEyMUU4RDI0MTA3MDQ5MDA0ODZGOUIgLyogQ29udGVudFdv
cmxkUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUMxMjFFOEMyNDEwNzAzMjAwNDg2RjlCIC8qIENvbnRlbnRXb3JsZFBsdWdJbi5tbSAqLzsg
fTsKIAkJNUMxNkY4RkMyMzBDOTQzNzAwNzRDNEE4IC8qIFRleHRTaXplLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMxNkY4RkIyMzBDOTQyQjAwNzRD
NEE4IC8qIFRleHRTaXplLm1tICovOyB9OwogCQk1QzE5QTUyNDFGRDBGNjAxMDBFRUEzMjMgLyog
Q29va2llUHJpdmF0ZUJyb3dzaW5nLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNUMxOUE1MjMxRkQwRjMyNjAwRUVBMzIzIC8qIENvb2tpZVByaXZhdGVC
cm93c2luZy5tbSAqLzsgfTsKKwkJNUMxQjFEMTcyNkVDMjdERTAwODgyREEyIC8qIFRlc3RQQ01E
YWVtb25NYWluLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1QzFCMUQxNjI2RUMyN0M1MDA4ODJEQTIgLyogVGVzdFBDTURhZW1vbk1haW4uYyAqLzsgfTsK
IAkJNUMyM0RGMEIyMjQ2MDE1ODAwRjQ1NEI2IC8qIENoYWxsZW5nZS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMjNERjBBMjI0NUM5RDcwMEY0NTRC
NiAvKiBDaGFsbGVuZ2UubW0gKi87IH07CiAJCTVDMjkzNjkzMUQ1QkY3MEQwMERFQUIxRSAvKiBD
b29raWVBY2NlcHRQb2xpY3kubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1QzI5MzY5MTFENUJGNjNFMDBERUFCMUUgLyogQ29va2llQWNjZXB0UG9saWN5
Lm1tICovOyB9OwogCQk1QzI5MzY5NjFENUMwMEVEMDBERUFCMUUgLyogQ29va2llTWVzc2FnZS5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDVDMjkzNjk0MUQ1QkZEMTkwMERFQUIxRSAvKiBDb29raWVNZXNzYWdlLmh0bWwgKi87IH07CkBA
IC0xMjk3LDYgKzEyOTksMTMgQEAKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCiAv
KiBCZWdpbiBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLworCQk1QzFCMUQxQjI2RUMy
RUVDMDA4ODJEQTIgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0geworCQkJaXNhID0gUEJY
Q29udGFpbmVySXRlbVByb3h5OworCQkJY29udGFpbmVyUG9ydGFsID0gMDhGQjc3OTNGRTg0MTU1
REMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOworCQkJcHJveHlUeXBlID0gMTsKKwkJCXJl
bW90ZUdsb2JhbElEU3RyaW5nID0gNUMxQjFEMDgyNkVDMjc4NTAwODgyREEyOworCQkJcmVtb3Rl
SW5mbyA9IFRlc3RQQ01EYWVtb247CisJCX07CiAJCTVDOUQ5MjIxMjJEN0RDODQwMDhFOTI2NiAv
KiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CiAJCQlpc2EgPSBQQlhDb250YWluZXJJdGVt
UHJveHk7CiAJCQljb250YWluZXJQb3J0YWwgPSAwOEZCNzc5M0ZFODQxNTVEQzAyQUFDMDcgLyog
UHJvamVjdCBvYmplY3QgKi87CkBAIC0yMzMxLDYgKzIzNDAsOSBAQAogCQk1QzEyMUU4QzI0MTA3
MDMyMDA0ODZGOUIgLyogQ29udGVudFdvcmxkUGx1Z0luLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gQ29udGVudFdvcmxkUGx1Z0luLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1QzE2RjhGQjIzMEM5NDJCMDA3NEM0QTggLyogVGV4dFNpemUubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXh0U2l6ZS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMxOUE1MjMxRkQwRjMyNjAwRUVBMzIzIC8qIENv
b2tpZVByaXZhdGVCcm93c2luZy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IENvb2tpZVByaXZhdGVCcm93c2luZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNUMxQjFEMTQyNkVDMjc4NTAwODgyREEyIC8qIFRlc3RQQ01EYWVtb24gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8u
ZXhlY3V0YWJsZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFRlc3RQQ01EYWVtb247IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTVDMUIxRDE2MjZFQzI3QzUwMDg4
MkRBMiAvKiBUZXN0UENNRGFlbW9uTWFpbi5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBUZXN0UENNRGFlbW9u
TWFpbi5jOyBwYXRoID0gY29jb2EvVGVzdFBDTURhZW1vbk1haW4uYzsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNUMxQjFEMUEyNkVDMjg0RTAwODgyREEyIC8qIFRlc3RQQ01EYWVtb24u
eGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gVGVzdFBDTURhZW1vbi54Y2NvbmZpZzsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMyM0RGMEEyMjQ1QzlENzAwRjQ1NEI2IC8qIENoYWxsZW5n
ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENoYWxsZW5nZS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMyOTM2OTExRDVCRjYzRTAwREVBQjFF
IC8qIENvb2tpZUFjY2VwdFBvbGljeS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IENvb2tpZUFjY2VwdFBvbGljeS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNUMyOTM2OTQxRDVCRkQxOTAwREVBQjFFIC8qIENvb2tpZU1lc3NhZ2UuaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IENvb2tpZU1lc3NhZ2UuaHRtbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTMxNjIsNiArMzE3NCwxMyBAQAogLyogRW5kIFBCWEZpbGVSZWZl
cmVuY2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0
aW9uICovCisJCTVDMUIxRDBFMjZFQzI3ODUwMDg4MkRBMiAvKiBGcmFtZXdvcmtzICovID0gewor
CQkJaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAy
MTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CiAJCTdDODNERjY0MUQwQTU5MEMwMEZFQkNGMyAvKiBG
cmFtZXdvcmtzICovID0gewogCQkJaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CiAJCQli
dWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtMzMwNiw2ICszMzI1LDcgQEAKIAkJCQk1
QzcyRThDRTI0NEZGQ0U0MDAzODFFQjcgLyogVGVzdExlZ2FjeURvd25sb2FkRGVsZWdhdGUubW0g
Ki8sCiAJCQkJMkQxQzA0QTUxRDc2Mjk4QjAwMEE2ODE2IC8qIFRlc3ROYXZpZ2F0aW9uRGVsZWdh
dGUuaCAqLywKIAkJCQkyRDFDMDRBNjFENzYyOThCMDAwQTY4MTYgLyogVGVzdE5hdmlnYXRpb25E
ZWxlZ2F0ZS5tbSAqLywKKwkJCQk1QzFCMUQxNjI2RUMyN0M1MDA4ODJEQTIgLyogVGVzdFBDTURh
ZW1vbk1haW4uYyAqLywKIAkJCQk1MTYyODEyMzIzMjVDMTdBMDBCQjdFNDIgLyogVGVzdFBERkRv
Y3VtZW50LmggKi8sCiAJCQkJNTE2MjgxMjQyMzI1QzE3QjAwQkI3RTQyIC8qIFRlc3RQREZEb2N1
bWVudC5tbSAqLywKIAkJCQlBMTRGQzU4RDFCOEFFMzY1MDBEMTA3RUIgLyogVGVzdFByb3RvY29s
LmggKi8sCkBAIC0zMzY0LDYgKzMzODQsNyBAQAogCQkxQUI2NzRBREZFOUQ1NEI1MTFDQTJDQkIg
LyogUHJvZHVjdHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAor
CQkJCTVDMUIxRDE0MjZFQzI3ODUwMDg4MkRBMiAvKiBUZXN0UENNRGFlbW9uICovLAogCQkJCThE
RDc2RkExMDQ4NkFBNzYwMEQ5NkI1RSAvKiBUZXN0V2ViS2l0QVBJICovLAogCQkJCTdDODNFMDIz
MUQwQTVBRTQwMEZFQkNGMyAvKiBUZXN0V1RGICovLAogCQkJCUJDNTc1OTgwMTI2RTc0QUYwMDZG
MEYxMiAvKiBJbmplY3RlZEJ1bmRsZVRlc3RXZWJLaXRBUEkuYnVuZGxlICovLApAQCAtNDI5Myw2
ICs0MzE0LDcgQEAKIAkJCQlCQzkwOTU3RjEyNTU0Q0Y5MDAwODM3NTYgLyogRGVidWdSZWxlYXNl
LnhjY29uZmlnICovLAogCQkJCUJDNTc1QUUyMTI2RTg4QjEwMDZGMEYxMiAvKiBJbmplY3RlZEJ1
bmRsZS54Y2NvbmZpZyAqLywKIAkJCQlBMUI4OUI5OTIyMUUwMjlGMDBFQjRDRUEgLyogU0RLVmFy
aWFudC54Y2NvbmZpZyAqLywKKwkJCQk1QzFCMUQxQTI2RUMyODRFMDA4ODJEQTIgLyogVGVzdFBD
TURhZW1vbi54Y2NvbmZpZyAqLywKIAkJCQk1NzM1RjAyNTFGM0E0RUE2MDAwRUU4MDEgLyogVGVz
dFdlYktpdEFQSS1pT1MuZW50aXRsZW1lbnRzICovLAogCQkJCTUxRUIxMjUzMjRDNjZCQ0IwMDBD
QjAzMCAvKiBUZXN0V2ViS2l0QVBJLW1hY09TLWludGVybmFsLmVudGl0bGVtZW50cyAqLywKIAkJ
CQk3QUIwMTczOTIzRkIyQkYwMDAyRjgzNjYgLyogVGVzdFdlYktpdEFQSS1tYWNPUy5lbnRpdGxl
bWVudHMgKi8sCkBAIC00OTc5LDYgKzUwMDEsMjMgQEAKIC8qIEVuZCBQQlhHcm91cCBzZWN0aW9u
ICovCiAKIC8qIEJlZ2luIFBCWE5hdGl2ZVRhcmdldCBzZWN0aW9uICovCisJCTVDMUIxRDA4MjZF
QzI3ODUwMDg4MkRBMiAvKiBUZXN0UENNRGFlbW9uICovID0geworCQkJaXNhID0gUEJYTmF0aXZl
VGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDVDMUIxRDExMjZFQzI3ODUwMDg4
MkRBMiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiVGVz
dFBDTURhZW1vbiIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJCQk1QzFCMUQwQjI2RUMyNzg1
MDA4ODJEQTIgLyogU291cmNlcyAqLywKKwkJCQk1QzFCMUQwRTI2RUMyNzg1MDA4ODJEQTIgLyog
RnJhbWV3b3JrcyAqLywKKwkJCSk7CisJCQlidWlsZFJ1bGVzID0gKAorCQkJKTsKKwkJCWRlcGVu
ZGVuY2llcyA9ICgKKwkJCSk7CisJCQluYW1lID0gVGVzdFBDTURhZW1vbjsKKwkJCXByb2R1Y3RJ
bnN0YWxsUGF0aCA9ICIkKEhPTUUpL2JpbiI7CisJCQlwcm9kdWN0TmFtZSA9IFRlc3RQQ01EYWVt
b247CisJCQlwcm9kdWN0UmVmZXJlbmNlID0gNUMxQjFEMTQyNkVDMjc4NTAwODgyREEyIC8qIFRl
c3RQQ01EYWVtb24gKi87CisJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBl
LnRvb2wiOworCQl9OwogCQk3QzgzREU5NTFEMEE1OTBDMDBGRUJDRjMgLyogVGVzdFdURkxpYnJh
cnkgKi8gPSB7CiAJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CiAJCQlidWlsZENvbmZpZ3VyYXRp
b25MaXN0ID0gN0M4M0RGNjUxRDBBNTkwQzAwRkVCQ0YzIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24g
bGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJUZXN0V1RGTGlicmFyeSIgKi87CkBAIC01MTM4LDYg
KzUxNzcsNyBAQAogCQkJCUJDNTc1OTdGMTI2RTc0QUYwMDZGMEYxMiAvKiBJbmplY3RlZEJ1bmRs
ZVRlc3RXZWJLaXRBUEkgKi8sCiAJCQkJQTEzRUJCNDgxQjg3MzM5RTAwMDk3MTEwIC8qIFdlYlBy
b2Nlc3NQbHVnSW4gKi8sCiAJCQkJNTM3Q0Y4NDMyMkVGRDY0MTAwQzZFQkIzIC8qIEFwcGx5IENv
bmZpZ3VyYXRpb24gdG8gWENGaWxlTGlzdHMgKi8sCisJCQkJNUMxQjFEMDgyNkVDMjc4NTAwODgy
REEyIC8qIFRlc3RQQ01EYWVtb24gKi8sCiAJCQkpOwogCQl9OwogLyogRW5kIFBCWFByb2plY3Qg
c2VjdGlvbiAqLwpAQCAtNTIxNCw2ICs1MjU0LDE0IEBACiAvKiBFbmQgUEJYU2hlbGxTY3JpcHRC
dWlsZFBoYXNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYU291cmNlc0J1aWxkUGhhc2Ugc2Vj
dGlvbiAqLworCQk1QzFCMUQwQjI2RUMyNzg1MDA4ODJEQTIgLyogU291cmNlcyAqLyA9IHsKKwkJ
CWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4
MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJCTVDMUIxRDE3MjZFQzI3REUwMDg4MkRBMiAvKiBUZXN0
UENNRGFlbW9uTWFpbi5jIGluIFNvdXJjZXMgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CiAJCTdDODNERTk2MUQwQTU5MEMwMEZFQkNG
MyAvKiBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQli
dWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtNjA3OCw2ICs2MTI2LDExIEBACiAvKiBF
bmQgUEJYU291cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhUYXJnZXRE
ZXBlbmRlbmN5IHNlY3Rpb24gKi8KKwkJNUMxQjFEMUMyNkVDMkVFQzAwODgyREEyIC8qIFBCWFRh
cmdldERlcGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OworCQkJ
dGFyZ2V0ID0gNUMxQjFEMDgyNkVDMjc4NTAwODgyREEyIC8qIFRlc3RQQ01EYWVtb24gKi87CisJ
CQl0YXJnZXRQcm94eSA9IDVDMUIxRDFCMjZFQzJFRUMwMDg4MkRBMiAvKiBQQlhDb250YWluZXJJ
dGVtUHJveHkgKi87CisJCX07CiAJCTVDOUQ5MjIyMjJEN0RDODQwMDhFOTI2NiAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovID0gewogCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKIAkJCXRh
cmdldCA9IDVDOUQ5MjE0MjJEN0RBMDIwMDhFOTI2NiAvKiBHZW5lcmF0ZSBVbmlmaWVkIFNvdXJj
ZXMgKi87CkBAIC02MTYwLDYgKzYyMTMsMjIgQEAKIAkJCX07CiAJCQluYW1lID0gUmVsZWFzZTsK
IAkJfTsKKwkJNUMxQjFEMTIyNkVDMjc4NTAwODgyREEyIC8qIERlYnVnICovID0geworCQkJaXNh
ID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9
IDVDMUIxRDFBMjZFQzI4NEUwMDg4MkRBMiAvKiBUZXN0UENNRGFlbW9uLnhjY29uZmlnICovOwor
CQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSki
OworCQkJfTsKKwkJCW5hbWUgPSBEZWJ1ZzsKKwkJfTsKKwkJNUMxQjFEMTMyNkVDMjc4NTAwODgy
REEyIC8qIFJlbGVhc2UgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJ
CWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUMxQjFEMUEyNkVDMjg0RTAwODgyREEyIC8q
IFRlc3RQQ01EYWVtb24ueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBS
T0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFJlbGVhc2U7
CisJCX07CiAJCTVDOUQ5MjFBMjJEN0RBMDIwMDhFOTI2NiAvKiBEZWJ1ZyAqLyA9IHsKIAkJCWlz
YSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYnVpbGRTZXR0aW5ncyA9IHsKQEAgLTYyODgs
NiArNjM1NywxNSBAQAogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwogCQkJ
ZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUmVsZWFzZTsKIAkJfTsKKwkJNUMxQjFEMTEyNkVD
Mjc4NTAwODgyREEyIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFy
Z2V0ICJUZXN0UENNRGFlbW9uIiAqLyA9IHsKKwkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7
CisJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAorCQkJCTVDMUIxRDEyMjZFQzI3ODUwMDg4MkRB
MiAvKiBEZWJ1ZyAqLywKKwkJCQk1QzFCMUQxMzI2RUMyNzg1MDA4ODJEQTIgLyogUmVsZWFzZSAq
LywKKwkJCSk7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisJCQlkZWZh
dWx0Q29uZmlndXJhdGlvbk5hbWUgPSBSZWxlYXNlOworCQl9OwogCQk1QzlEOTIxOTIyRDdEQTAy
MDA4RTkyNjYgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJn
ZXQgIkdlbmVyYXRlIFVuaWZpZWQgU291cmNlcyIgKi8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3Vy
YXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpp
bmRleCA4N2Q3ZmU4ZWU3ZTg4N2IyMGI3ZThhNjY3ZDg5NDcxNjQ3YTYzOTk3Li4zMTlkNWU5MzVl
ZmM3ZTM1MmI0MDc3YzczZWE2N2QxNTNmNGUwMzU2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCkBAIC0y
NywxMyArMjcsMTggQEAKIAogI2ltcG9ydCAiSFRUUFNlcnZlci5oIgogI2ltcG9ydCAiUGxhdGZv
cm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3QuaCIKICNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9u
RGVsZWdhdGUuaCIKICNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKICNpbXBvcnQgIlV0aWxpdGll
cy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLTWFpbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmll
d1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5o
PgogI2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaD4KICNpbXBvcnQg
PFdlYktpdC9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oPgorI2ltcG9ydCA8bWFj
aC1vL2R5bGQuaD4KKyNpbXBvcnQgPHd0Zi9PU09iamVjdFB0ci5oPgorI2ltcG9ydCA8d3RmL3Nw
aS9kYXJ3aW4vWFBDU1BJLmg+CiAKICNpZiBIQVZFKFJTQV9CU1NBKQogCkBAIC0zNjAsNiArMzY1
LDEyNSBAQCBURVNUKEV2ZW50QXR0cmlidXRpb24sIERhdGFiYXNlTG9jYXRpb24pCiAgICAgRVhQ
RUNUX0VRKHdlYlZpZXdUb0tlZXBOZXR3b3JrUHJvY2Vzc0FsaXZlLmdldCgpLmNvbmZpZ3VyYXRp
b24ud2Vic2l0ZURhdGFTdG9yZS5fbmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyLCBvcmlnaW5hbE5l
dHdvcmtQcm9jZXNzUGlkKTsKIH0KIAorc3RhdGljIFJldGFpblB0cjxOU1VSTD4gY3VycmVudEV4
ZWN1dGFibGVMb2NhdGlvbigpCit7CisgICAgdWludDMyX3Qgc2l6ZSB7IDAgfTsKKyAgICBfTlNH
ZXRFeGVjdXRhYmxlUGF0aChudWxscHRyLCAmc2l6ZSk7CisgICAgVmVjdG9yPGNoYXI+IGJ1ZmZl
cjsKKyAgICBidWZmZXIucmVzaXplKHNpemUgKyAxKTsKKyAgICBfTlNHZXRFeGVjdXRhYmxlUGF0
aChidWZmZXIuZGF0YSgpLCAmc2l6ZSk7CisgICAgYnVmZmVyW3NpemVdID0gJ1wwJzsKKyAgICBh
dXRvIHBhdGhTdHJpbmcgPSBhZG9wdE5TKFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoVVRGOFN0
cmluZzpidWZmZXIuZGF0YSgpXSk7CisgICAgcmV0dXJuIGFkb3B0TlMoW1tOU1VSTCBhbGxvY10g
aW5pdEZpbGVVUkxXaXRoUGF0aDpwYXRoU3RyaW5nLmdldCgpIGlzRGlyZWN0b3J5Ok5PXSk7Cit9
CisKK3N0YXRpYyBSZXRhaW5QdHI8TlNVUkw+IGN1cnJlbnRFeGVjdXRhYmxlRGlyZWN0b3J5KCkK
K3sKKyAgICByZXR1cm4gW2N1cnJlbnRFeGVjdXRhYmxlTG9jYXRpb24oKSBVUkxCeURlbGV0aW5n
TGFzdFBhdGhDb21wb25lbnRdOworfQorCitzdGF0aWMgUmV0YWluUHRyPE5TVVJMPiB0ZXN0UENN
RGFlbW9uTG9jYXRpb24oKQoreworICAgIHJldHVybiBbY3VycmVudEV4ZWN1dGFibGVEaXJlY3Rv
cnkoKSBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJUZXN0UENNRGFlbW9uIiBpc0RpcmVj
dG9yeTpOT107Cit9CisKKyNpZiBIQVZFKE9TX0xBVU5DSERfSk9CKQorCitzdGF0aWMgT1NPYmpl
Y3RQdHI8eHBjX29iamVjdF90PiB0ZXN0RGFlbW9uUExpc3QoTlNVUkwgKnN0b3JhZ2VMb2NhdGlv
bikKK3sKKyAgICBhdXRvIHBsaXN0ID0gYWRvcHRPU09iamVjdCh4cGNfZGljdGlvbmFyeV9jcmVh
dGUobnVsbHB0ciwgbnVsbHB0ciwgMCkpOworICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmco
cGxpc3QuZ2V0KCksICJMYWJlbCIsICJvcmcud2Via2l0LnBjbXRlc3RkYWVtb24iKTsKKyAgICB4
cGNfZGljdGlvbmFyeV9zZXRfYm9vbChwbGlzdC5nZXQoKSwgIkxhdW5jaE9ubHlPbmNlIiwgdHJ1
ZSk7CisKKyAgICB7CisgICAgICAgIGF1dG8gZW52aXJvbm1lbnRWYXJpYWJsZXMgPSBhZG9wdE9T
T2JqZWN0KHhwY19kaWN0aW9uYXJ5X2NyZWF0ZShudWxscHRyLCBudWxscHRyLCAwKSk7CisgICAg
ICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmcoZW52aXJvbm1lbnRWYXJpYWJsZXMuZ2V0KCks
ICJEWUxEX0ZSQU1FV09SS19QQVRIIiwgY3VycmVudEV4ZWN1dGFibGVEaXJlY3RvcnkoKS5nZXQo
KS5maWxlU3lzdGVtUmVwcmVzZW50YXRpb24pOworICAgICAgICB4cGNfZGljdGlvbmFyeV9zZXRf
dmFsdWUocGxpc3QuZ2V0KCksICJFbnZpcm9ubWVudFZhcmlhYmxlcyIsIGVudmlyb25tZW50VmFy
aWFibGVzLmdldCgpKTsKKyAgICB9CisgICAgeworICAgICAgICBhdXRvIG1hY2hTZXJ2aWNlcyA9
IGFkb3B0T1NPYmplY3QoeHBjX2RpY3Rpb25hcnlfY3JlYXRlKG51bGxwdHIsIG51bGxwdHIsIDAp
KTsKKyAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X2Jvb2wobWFjaFNlcnZpY2VzLmdldCgpLCAi
b3JnLndlYmtpdC5wY210ZXN0ZGFlbW9uLnNlcnZpY2UiLCB0cnVlKTsKKyAgICAgICAgeHBjX2Rp
Y3Rpb25hcnlfc2V0X3ZhbHVlKHBsaXN0LmdldCgpLCAiTWFjaFNlcnZpY2VzIiwgbWFjaFNlcnZp
Y2VzLmdldCgpKTsKKyAgICB9CisgICAgeworICAgICAgICBhdXRvIHByb2dyYW1Bcmd1bWVudHMg
PSBhZG9wdE9TT2JqZWN0KHhwY19hcnJheV9jcmVhdGUobnVsbHB0ciwgMCkpOworICAgICAgICBh
dXRvIGV4ZWN1dGFibGVMb2NhdGlvbiA9IHRlc3RQQ01EYWVtb25Mb2NhdGlvbigpOworICAgICAg
ICB4cGNfYXJyYXlfc2V0X3N0cmluZyhwcm9ncmFtQXJndW1lbnRzLmdldCgpLCBYUENfQVJSQVlf
QVBQRU5ELCBleGVjdXRhYmxlTG9jYXRpb24uZ2V0KCkuZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9u
KTsKKyAgICAgICAgeHBjX2FycmF5X3NldF9zdHJpbmcocHJvZ3JhbUFyZ3VtZW50cy5nZXQoKSwg
WFBDX0FSUkFZX0FQUEVORCwgIi0tbWFjaFNlcnZpY2VOYW1lIik7CisgICAgICAgIHhwY19hcnJh
eV9zZXRfc3RyaW5nKHByb2dyYW1Bcmd1bWVudHMuZ2V0KCksIFhQQ19BUlJBWV9BUFBFTkQsICJv
cmcud2Via2l0LnBjbXRlc3RkYWVtb24uc2VydmljZSIpOworICAgICAgICB4cGNfYXJyYXlfc2V0
X3N0cmluZyhwcm9ncmFtQXJndW1lbnRzLmdldCgpLCBYUENfQVJSQVlfQVBQRU5ELCAiLS1zdG9y
YWdlTG9jYXRpb24iKTsKKyAgICAgICAgeHBjX2FycmF5X3NldF9zdHJpbmcocHJvZ3JhbUFyZ3Vt
ZW50cy5nZXQoKSwgWFBDX0FSUkFZX0FQUEVORCwgc3RvcmFnZUxvY2F0aW9uLmZpbGVTeXN0ZW1S
ZXByZXNlbnRhdGlvbik7CisgICAgICAgIHhwY19kaWN0aW9uYXJ5X3NldF92YWx1ZShwbGlzdC5n
ZXQoKSwgIlByb2dyYW1Bcmd1bWVudHMiLCBwcm9ncmFtQXJndW1lbnRzLmdldCgpKTsKKyAgICB9
CisgICAgcmV0dXJuIHBsaXN0OworfQorCisjZWxzZQorCitzdGF0aWMgUmV0YWluUHRyPE5TRGlj
dGlvbmFyeT4gdGVzdERhZW1vblBMaXN0KE5TVVJMICpzdG9yYWdlTG9jYXRpb24pCit7CisgICAg
cmV0dXJuIEB7CisgICAgICAgIEAiTGFiZWwiIDogQCJvcmcud2Via2l0LnBjbXRlc3RkYWVtb24i
LAorICAgICAgICBAIkxhdW5jaE9ubHlPbmNlIiA6IEBZRVMsCisgICAgICAgIEAiRW52aXJvbm1l
bnRWYXJpYWJsZXMiIDogQHsgQCJEWUxEX0ZSQU1FV09SS19QQVRIIiA6IGN1cnJlbnRFeGVjdXRh
YmxlRGlyZWN0b3J5KCkuZ2V0KCkucGF0aCB9LAorICAgICAgICBAIk1hY2hTZXJ2aWNlcyIgOiBA
eyBAIm9yZy53ZWJraXQucGNtdGVzdGRhZW1vbi5zZXJ2aWNlIiA6IEBZRVMgfSwKKyAgICAgICAg
QCJQcm9ncmFtQXJndW1lbnRzIiA6IEBbCisgICAgICAgICAgICB0ZXN0UENNRGFlbW9uTG9jYXRp
b24oKS5nZXQoKS5wYXRoLAorICAgICAgICAgICAgQCItLW1hY2hTZXJ2aWNlTmFtZSIsCisgICAg
ICAgICAgICBAIm9yZy53ZWJraXQucGNtdGVzdGRhZW1vbi5zZXJ2aWNlIiwKKyAgICAgICAgICAg
IEAiLS1zdG9yYWdlTG9jYXRpb24iLAorICAgICAgICAgICAgc3RvcmFnZUxvY2F0aW9uLnBhdGgK
KyAgICAgICAgXQorICAgIH07Cit9CisKKyNlbmRpZgorCitURVNUKEV2ZW50QXR0cmlidXRpb24s
IERhZW1vbikKK3sKKyAgICBOU0ZpbGVNYW5hZ2VyICpmaWxlTWFuYWdlciA9IFtOU0ZpbGVNYW5h
Z2VyIGRlZmF1bHRNYW5hZ2VyXTsKKyAgICBOU1VSTCAqdGVtcERpciA9IFtOU1VSTCBmaWxlVVJM
V2l0aFBhdGg6W05TVGVtcG9yYXJ5RGlyZWN0b3J5KCkgc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29t
cG9uZW50OkAiRXZlbnRBdHRyaWJ1dGlvbkRhZW1vblRlc3QiXSBpc0RpcmVjdG9yeTpZRVNdOwor
ICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOworICAgIGlmIChbZmlsZU1hbmFnZXIgZmlsZUV4aXN0
c0F0UGF0aDp0ZW1wRGlyLnBhdGhdKQorICAgICAgICBbZmlsZU1hbmFnZXIgcmVtb3ZlSXRlbUF0
VVJMOnRlbXBEaXIgZXJyb3I6JmVycm9yXTsKKyAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisKKyAg
ICBhdXRvIHBsaXN0ID0gdGVzdERhZW1vblBMaXN0KHRlbXBEaXIpOworI2lmIEhBVkUoT1NfTEFV
TkNIRF9KT0IpCisgICAgYXV0byBsYXVuY2hESm9iID0gYWRvcHROUyhbW09TTGF1bmNoZEpvYiBh
bGxvY10gaW5pdFdpdGhQbGlzdDpwbGlzdC5nZXQoKV0pOworICAgIFtsYXVuY2hESm9iIHN1Ym1p
dEFuZFN0YXJ0OiZlcnJvcl07CisjZWxzZQorICAgIE5TVVJMICpwbGlzdExvY2F0aW9uID0gW3Rl
bXBEaXIgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiRGFlbW9uSW5mby5wbGlzdCJdOwor
ICAgIEJPT0wgc3VjY2VzcyA9IFtmaWxlTWFuYWdlciBjcmVhdGVEaXJlY3RvcnlBdFVSTDp0ZW1w
RGlyIHdpdGhJbnRlcm1lZGlhdGVEaXJlY3RvcmllczpZRVMgYXR0cmlidXRlczpuaWwgZXJyb3I6
JmVycm9yXTsKKyAgICBFWFBFQ1RfVFJVRShzdWNjZXNzKTsKKyAgICBFWFBFQ1RfTlVMTChlcnJv
cik7CisgICAgc3VjY2VzcyA9IFtwbGlzdCB3cml0ZVRvVVJMOnBsaXN0TG9jYXRpb24gZXJyb3I6
JmVycm9yXTsKKyAgICBFWFBFQ1RfVFJVRShzdWNjZXNzKTsKKyAgICBzeXN0ZW0oW05TU3RyaW5n
IHN0cmluZ1dpdGhGb3JtYXQ6QCJsYXVuY2hjdGwgbG9hZCAlQCIsIHBsaXN0TG9jYXRpb24ucGF0
aF0uVVRGOFN0cmluZyk7CisjZW5kaWYKKyAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisKKyAgICBh
dXRvIGRhdGFTdG9yZUNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtfV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbiBuZXddKTsKKyAgICBkYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpLnBj
bU1hY2hTZXJ2aWNlTmFtZSA9IEAib3JnLndlYmtpdC5wY210ZXN0ZGFlbW9uLnNlcnZpY2UiOwor
ICAgIGF1dG8gdmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0
aW9uIG5ld10pOworICAgIHZpZXdDb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUg
PSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0
aW9uOmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCldKS5nZXQoKTsKKyAgICBydW5CYXNpY0V2
ZW50QXR0cmlidXRpb25UZXN0KHZpZXdDb25maWd1cmF0aW9uLmdldCgpLCBbXShXS1dlYlZpZXcg
KndlYlZpZXcsIGNvbnN0IEhUVFBTZXJ2ZXImIHNlcnZlcikgeworICAgICAgICBbd2ViVmlldyBf
YWRkRXZlbnRBdHRyaWJ1dGlvbldpdGhTb3VyY2VJRDo0MiBkZXN0aW5hdGlvblVSTDpleGFtcGxl
VVJMKCkgc291cmNlRGVzY3JpcHRpb246QCJ0ZXN0IHNvdXJjZSBkZXNjcmlwdGlvbiIgcHVyY2hh
c2VyOkAidGVzdCBwdXJjaGFzZXIiIHJlcG9ydEVuZHBvaW50OnNlcnZlci5yZXF1ZXN0KCkuVVJM
IG9wdGlvbmFsTm9uY2U6bmlsXTsKKyAgICB9KTsKKworICAgIEVYUEVDVF9UUlVFKFtmaWxlTWFu
YWdlciBmaWxlRXhpc3RzQXRQYXRoOnRlbXBEaXIucGF0aF0pOworICAgIFtmaWxlTWFuYWdlciBy
ZW1vdmVJdGVtQXRVUkw6dGVtcERpciBlcnJvcjomZXJyb3JdOworICAgIEVYUEVDVF9OVUxMKGVy
cm9yKTsKKworI2lmIEhBVkUoT1NfTEFVTkNIRF9KT0IpCisgICAgW2xhdW5jaERKb2IgcmVtb3Zl
OiZlcnJvcl07CisgICAgRVhQRUNUX05VTEwoZXJyb3IpOworI2Vsc2UKKyAgICBzeXN0ZW0oW05T
U3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJsYXVuY2hjdGwgdW5sb2FkICVAIiwgcGxpc3RMb2Nh
dGlvbi5wYXRoXS5VVEY4U3RyaW5nKTsKKyNlbmRpZgorICAgIHN5c3RlbSgia2lsbGFsbCBUZXN0
UENNRGFlbW9uIC05Iik7Cit9CisKICNpZiBIQVZFKFVJX0VWRU5UX0FUVFJJQlVUSU9OKQogCiBU
RVNUKEV2ZW50QXR0cmlidXRpb24sIEJhc2ljV2l0aElPU1NQSSkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFBDTURhZW1vbk1haW4uYyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvY29jb2EvVGVzdFBDTURhZW1vbk1haW4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYTg2MTIzZTBkN2Jj
NDg3OTZjMmE4M2IzNzY0MDZmNjQyMTQ2N2MzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9jb2NvYS9UZXN0UENNRGFlbW9uTWFpbi5jCkBAIC0wLDAgKzEsMzEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSA8V2ViS2l0L1dLTWFpbi5oPgorCitpbnQgbWFpbihpbnQgYXJn
YywgY29uc3QgY2hhcioqIGFyZ3YpCit7CisgICAgV0tQQ01EYWVtb25NYWluKGFyZ2MsIGFyZ3Yp
OworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437979</attachid>
            <date>2021-09-11 21:17:12 -0700</date>
            <delta_ts>2021-09-13 11:12:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230191-20210911211711.patch</filename>
            <type>text/plain</type>
            <size>53319</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ5Mzg4ZWFlODE0MjFkZDY1ZmM4NjQ5
MGQ0NWJiMjViZjhjNTk4YjIuLjQ0YTBjYmJhYTRkNTE3NzVlOTNjN2YwZjE0ODFkYzQyOGY5ZTQ3
ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDktMTEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0IHRoYXQgdXNl
cyBQQ00gZGFlbW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzAxOTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHd0Zi9QbGF0Zm9ybUhhdmUuaDoKKyAgICAgICAgKiB3dGYvc3BpL2Rhcndpbi9YUENT
UEkuaDoKKwogMjAyMS0wOS0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgZm9sbG93LXVwIHRvIHIyODIxMDUuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJjNzIz
Y2JlNWE2Nzg0MDU4YWZiYTQ4NzViMmI5OTQ5NzE0YTJiYzUuLjM4YTgwZTUzM2ZkYjVjZDhmNzI0
MmFhMDAxYmEyMTlkMGMwNmQ2NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMjEtMDkt
MTEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAg
ICBBZGQgdW5pdCB0ZXN0IHRoYXQgdXNlcyBQQ00gZGFlbW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAxOTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJIG1ha2UgYSB3YXkgdG8gc3BlY2lmeSB3aGF0
IG1hY2ggc2VydmljZSB0byBjb25uZWN0IHRvLAorICAgICAgICB0aGVuIEkgdGVtcG9yYXJpbHkg
cmVnaXN0ZXIgYW4gZXhlY3V0YWJsZSB3aXRoIGxhdW5jaGQgdG8gcHJvdmlkZSB0aGF0IG1hY2gg
c2VydmljZSwKKyAgICAgICAgdGhlbiBJIHJ1biB0aGUgdGVzdCBjb21tdW5pY2F0aW5nIHdpdGgg
dGhhdCBleGVjdXRhYmxlLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b24uY3BwOgorICAgICAgICAoV2ViS2l0OjptYW5hZ2VyT3JQcm94eSk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRl
Y29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBh
cmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpQQ006OkNvbm5lY3Rpb246OkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQQ006
OkNvbm5lY3Rpb246OnNlbmQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rp
b246OnNlbmRXaXRoUmVwbHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rp
b246OmNvbm5lY3Rpb25Ub0RhZW1vbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6
Q29ubmVjdGlvbjo6c2VuZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVj
dGlvbjo6c2VuZFdpdGhSZXBseSk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9u
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UENNOjptYW5hZ2VyUG9pbnRlcik6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6aW5pdGlhbGl6
ZVBDTVN0b3JhZ2VJbkRpcmVjdG9yeSk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6ZGFlbW9uTWFu
YWdlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpQQ006Ok1hbmFnZXJQcm94eTo6
c2VuZE1lc3NhZ2UgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006Ok1hbmFnZXJQcm94eTo6
c2VuZE1lc3NhZ2VXaXRoUmVwbHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006Ok1hbmFn
ZXJQcm94eTo6TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UENNOjpzZW5kTWVzc2Fn
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6c2VuZE1lc3NhZ2VXaXRoUmVwbHkp
OiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5Lmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnREYWVtb25Db25uZWN0aW9uQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OlBDTTo6
Q29ubmVjdGlvbjo6Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVjdGlv
bjo6aW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OlBDTTo6Q29ubmVjdGlvbjo6c2VuZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29u
bmVjdGlvbjo6c2VuZFdpdGhSZXBseSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29u
bmVjdGlvbjo6Y29ubmVjdGlvblRvRGFlbW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
UENNOjpDb25uZWN0aW9uOjpzZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpD
b25uZWN0aW9uOjpzZW5kV2l0aFJlcGx5KTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYi5pbjoKKyAgICAgICAg
KiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9uRW50cnlQ
b2ludC5tbToKKyAgICAgICAgKFdlYktpdDo6c3RhcnRMaXN0ZW5pbmdGb3JNYWNoU2VydmljZUNv
bm5lY3Rpb25zKToKKyAgICAgICAgKFdlYktpdDo6cmVnaXN0ZXJTY2hlZHVsZWRBY3Rpdml0eUhh
bmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpQQ01EYWVtb25NYWluKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5tbToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gcGNtTWFj
aFNlcnZpY2VOYW1lXSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uIHNldFBDTU1hY2hTZXJ2aWNlTmFtZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uOjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpjb3B5IGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uaDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b246OnNldFBDTU1hY2hTZXJ2aWNlTmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uOjpwY21NYWNoU2VydmljZU5hbWUgY29uc3QpOgorCiAyMDIxLTA5
LTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgQWRkIGluZnJhc3RydWN0dXJlIHRvIGFsbG93IFRMUyBkdXJpbmcgUENNIHRlc3RzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtSGF2ZS5oCmluZGV4IDY5Y2RiNWVhZWNlOTY4ZjlkNTZiOWZmYjZkZTAyNDc4MTgxNWJj
OWYuLmIwNjZlNWZjMTMxZmM0ZThiN2ZiOTU2Nzk1Mzc5OTg5ZjZhODViY2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtSGF2ZS5oCkBAIC04MTMsNiArODEzLDcgQEAKICAgICB8fCAoUExBVEZPUk0oQVBQTEVUVikg
JiYgX19UVl9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNTAwMDApCiAjZGVmaW5lIEhBVkVf
TkVUV09SS19MT0FERVIgMQogI2RlZmluZSBIQVZFX1NFQ19UUlVTVF9DT1BZX0NFUlRJRklDQVRF
X0NIQUlOIDEKKyNkZWZpbmUgSEFWRV9PU19MQVVOQ0hEX0pPQiAxCiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxNDAwMDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oCmluZGV4IDNiNTljZmNlNzA3YzYx
NTI2NDFkMWUzMTA5NGZhOTA1MjliZTU2ZTUuLmZiODNmZjdjMDFlMzU2ZjM3MmYzMTY0NmY1NmEx
NjE2ODc4OGE5OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vWFBDU1BJ
LmgKKysrIGIvU291cmNlL1dURi93dGYvc3BpL2Rhcndpbi9YUENTUEkuaApAQCAtMTE0LDcgKzEx
NCwyMSBAQCBleHRlcm4gIkMiIHZvaWQgeHBjX2FjdGl2aXR5X3JlZ2lzdGVyKGNvbnN0IGNoYXIg
KmlkZW50aWZpZXIsIHhwY19vYmplY3RfdCBjcml0ZQogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspCiAjaW5jbHVkZSA8b3MvdHJhbnNhY3Rpb25fcHJpdmF0ZS5oPgogI2luY2x1ZGUgPHhwYy9w
cml2YXRlLmg+Ci0jZWxzZQorI2lmIEhBVkUoT1NfTEFVTkNIRF9KT0IpCisjaW5jbHVkZSA8QXBw
U2VydmVyU3VwcG9ydC9PU0xhdW5jaGRKb2IuaD4KKyNlbmRpZiAvLyBIQVZFKE9TX0xBVU5DSERf
Sk9CKQorI2Vsc2UgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2lmZGVmIF9fT0JKQ19f
CisjaWYgSEFWRShPU19MQVVOQ0hEX0pPQikKK0BjbGFzcyBPU0xhdW5jaGRKb2JJbmZvOworQGlu
dGVyZmFjZSBPU0xhdW5jaGRKb2IgOiBOU09iamVjdAorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRo
UGxpc3Q6KHhwY19vYmplY3RfdClwbGlzdDsKKy0gKE9TTGF1bmNoZEpvYkluZm8gKilzdWJtaXRB
bmRTdGFydDooTlNFcnJvciAqKillcnJvck91dDsKKy0gKEJPT0wpcmVtb3ZlOihOU0Vycm9yICoq
KWVycm9yT3V0OworQGVuZAorI2VuZGlmIC8vIEhBVkUoT1NfTEFVTkNIRF9KT0IpCisjZW5kaWYg
Ly8gX19PQkpDX18KIAogZXh0ZXJuICJDIiBjb25zdCBjaGFyICogY29uc3QgWFBDX0FDVElWSVRZ
X1JBTkRPTV9JTklUSUFMX0RFTEFZOwogZXh0ZXJuICJDIiBjb25zdCBjaGFyICogY29uc3QgWFBD
X0FDVElWSVRZX1JFUVVJUkVfTkVUV09SS19DT05ORUNUSVZJVFk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IDVlMTVmNjM0MzczNGM5
ZDFiNTNkOGRjMTMxOTkwNWQ4OTIyZjlkYjIuLjI2ZjFjYjYwZjNjZDJkMTRlMjY0Y2NhOTBmOGY4
NTNkOThhOWI2ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb24uY3BwCkBAIC05NSwxMSArOTUsOCBAQCBzdGF0aWMgU3RyaW5nIHBjbVN0b3JlRGly
ZWN0b3J5KGNvbnN0IE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBTdHJpbmcmIHJlcwog
CiBzdGF0aWMgVW5pcXVlUmVmPFBDTTo6TWFuYWdlckludGVyZmFjZT4gbWFuYWdlck9yUHJveHko
TmV0d29ya1Nlc3Npb24mIG5ldHdvcmtTZXNzaW9uLCBOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1By
b2Nlc3MsIGNvbnN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
KQogewotICAgIC8vIEZJWE1FOiBUdXJuIHRoaXMgb24gYW5kIHJlbW92ZSBNYW5hZ2VySW50ZXJm
YWNlIG9uY2UgcmRhcjovLzgwNzAxMDk4IGlzIGNsb3NlZC4KLSAgICBjb25zdGV4cHIgYm9vbCB1
c2VQQ01EYWVtb24gPSBmYWxzZTsKLQotICAgIGlmICh1c2VQQ01EYWVtb24pCi0gICAgICAgIHJl
dHVybiBtYWtlVW5pcXVlUmVmPFBDTTo6TWFuYWdlclByb3h5PigpOworICAgIGlmICghcGFyYW1l
dGVycy5wY21NYWNoU2VydmljZU5hbWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbWFrZVVu
aXF1ZVJlZjxQQ006Ok1hbmFnZXJQcm94eT4ocGFyYW1ldGVycy5wY21NYWNoU2VydmljZU5hbWUp
OwogICAgIHJldHVybiBtYWtlVW5pcXVlUmVmPFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
cj4obWFrZVVuaXF1ZVJlZjxQQ006OkNsaWVudEltcGw+KG5ldHdvcmtTZXNzaW9uLCBuZXR3b3Jr
UHJvY2VzcyksIHBjbVN0b3JlRGlyZWN0b3J5KG5ldHdvcmtTZXNzaW9uLCBwYXJhbWV0ZXJzLnJl
c291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmRpcmVjdG9yeSwgcGFyYW1ldGVycy5yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3Jh
Z2VEaXJlY3RvcnkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRl
eCBiNzdmOTE4MTE0OWI4M2NkYThmYTkzMjJhYjU0NWI5N2FkNjc0NDYzLi45ZThhYmZkOWNhYmVm
OWRmYTQ5ZmRhZDRhYzY3ZDdlODZlZDAyZjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcApAQCAtODcsNiArODcsNyBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIg
PDwgYXBwSGFzUmVxdWVzdGVkQ3Jvc3NXZWJzaXRlVHJhY2tpbmdQZXJtaXNzaW9uOwogICAgIGVu
Y29kZXIgPDwgdXNlTmV0d29ya0xvYWRlcjsKICAgICBlbmNvZGVyIDw8IGFsbG93c0hTVFNXaXRo
VW50cnVzdGVkUm9vdENlcnRpZmljYXRlOworICAgIGVuY29kZXIgPDwgcGNtTWFjaFNlcnZpY2VO
YW1lOwogICAgIGVuY29kZXIgPDwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM7CiB9
CiAKQEAgLTI5MywxMiArMjk0LDE3IEBAIHN0ZDo6b3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVh
dGlvblBhcmFtZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzCiAgICAgZGVj
b2RlciA+PiBhbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZTsKICAgICBpZiAo
IWFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlKQogICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwotICAgIAorCisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHBjbU1hY2hT
ZXJ2aWNlTmFtZTsKKyAgICBkZWNvZGVyID4+IHBjbU1hY2hTZXJ2aWNlTmFtZTsKKyAgICBpZiAo
IXBjbU1hY2hTZXJ2aWNlTmFtZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwogICAg
IHN0ZDo6b3B0aW9uYWw8UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM+IHJlc291cmNl
TG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzOwogICAgIGRlY29kZXIgPj4gcmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1BhcmFtZXRlcnM7CiAgICAgaWYgKCFyZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1l
dGVycykKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICAKKwogICAgIHJldHVybiB7
ewogICAgICAgICAqc2Vzc2lvbklECiAgICAgICAgICwgV1RGTW92ZSgqYm91bmRJbnRlcmZhY2VJ
ZGVudGlmaWVyKQpAQCAtMzQ3LDYgKzM1Myw3IEBAIHN0ZDo6b3B0aW9uYWw8TmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzCiAg
ICAgICAgICwgV1RGTW92ZSgqYXBwSGFzUmVxdWVzdGVkQ3Jvc3NXZWJzaXRlVHJhY2tpbmdQZXJt
aXNzaW9uKQogICAgICAgICAsIFdURk1vdmUoKnVzZU5ldHdvcmtMb2FkZXIpCiAgICAgICAgICwg
V1RGTW92ZSgqYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUpCisgICAgICAg
ICwgV1RGTW92ZSgqcGNtTWFjaFNlcnZpY2VOYW1lKQogICAgICAgICAsIFdURk1vdmUoKnJlc291
cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzKQogICAgIH19OwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVy
cy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVycy5oCmluZGV4IGZiNGEzODc3YjA5Y2Y0M2RkZTY2NWU0ZDYzMzkxZWYzZWRjNzZk
ZjIuLjViNjRmNmIyOWQ0ZmU1ZWYyMzFmZDQzZGI4YjNiN2YxMDE1OTIwZjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTEwMiw2ICsxMDIsNyBAQCBzdHJ1Y3QgTmV0d29ya1Nl
c3Npb25DcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGJvb2wgYXBwSGFzUmVxdWVzdGVkQ3Jvc3NX
ZWJzaXRlVHJhY2tpbmdQZXJtaXNzaW9uIHsgZmFsc2UgfTsKICAgICBib29sIHVzZU5ldHdvcmtM
b2FkZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2Vy
dGlmaWNhdGUgeyBmYWxzZSB9OworICAgIFN0cmluZyBwY21NYWNoU2VydmljZU5hbWU7CiAKICAg
ICBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycyByZXNvdXJjZUxvYWRTdGF0aXN0aWNz
UGFyYW1ldGVyczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggNTYzYTAzNjBk
YjUzMTk4MWZlNjc0YjI2M2FmNDAzMjMxZDkxOTg1ZS4uNjUwMjlhNjgzMmJkZWRhMWZkMGE0ZTFh
M2ZhYTljNzFlY2UzNWNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmNwcApAQCAtMzQsMTgg
KzM0LDE3IEBAIG5hbWVzcGFjZSBQQ00gewogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogCi1Db25u
ZWN0aW9uIENvbm5lY3Rpb246OmNvbm5lY3Rpb25Ub0RhZW1vbigpCitDb25uZWN0aW9uOjpDb25u
ZWN0aW9uKENTdHJpbmcmJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiB7
IH07CiB9CiAKLXZvaWQgQ29ubmVjdGlvbjo6c2VuZChNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3Nh
Z2UmJikKK3ZvaWQgQ29ubmVjdGlvbjo6c2VuZChNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2Um
JikgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIENvbm5lY3Rpb246
OnNlbmRXaXRoUmVwbHkoTWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRW5jb2RlZE1lc3NhZ2UmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lk
IENvbm5lY3Rpb246OnNlbmRXaXRoUmVwbHkoTWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRW5jb2RlZE1lc3NhZ2UmJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBjb21wbGV0aW9uSGFu
ZGxlcih7IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmgKaW5kZXggYWYzYTkxMDIxY2JlNDAyMDdl
NTJhMjViY2Y1MDU5NzZjOGZiNmJiNC4uMjkxN2Y3NTVjOTIxNzc1Nzg3NDIwZmQ5ZTkxZTNiM2Yz
NWFlNDlhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSA8d3RmL09TT2JqZWN0UHRyLmg+
CkBAIC0zOSwxOCArNDAsMTggQEAgbmFtZXNwYWNlIFBDTSB7CiBlbnVtIGNsYXNzIE1lc3NhZ2VU
eXBlIDogdWludDhfdDsKIHVzaW5nIEVuY29kZWRNZXNzYWdlID0gVmVjdG9yPHVpbnQ4X3Q+Owog
Ci1jbGFzcyBDb25uZWN0aW9uIHsKK2NsYXNzIENvbm5lY3Rpb24gOiBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8Q29ubmVjdGlvbj4gewogcHVibGljOgotICAgIHN0YXRpYyBDb25uZWN0aW9uIGNvbm5l
Y3Rpb25Ub0RhZW1vbigpOworICAgIENvbm5lY3Rpb24oQ1N0cmluZyYmIG1hY2hTZXJ2aWNlTmFt
ZSk7CiAKLSAgICB2b2lkIHNlbmQoTWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYpOwotICAg
IHZvaWQgc2VuZFdpdGhSZXBseShNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFbmNvZGVkTWVzc2FnZSYmKT4mJik7CisgICAgdm9pZCBzZW5kKE1l
c3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2FnZSYmKSBjb25zdDsKKyAgICB2b2lkIHNlbmRXaXRoUmVw
bHkoTWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
RW5jb2RlZE1lc3NhZ2UmJik+JiYpIGNvbnN0OwogCiBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENP
Q09BKQotICAgIENvbm5lY3Rpb24oT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4mJik7Ci0K
LSAgICBPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBtX2Nvbm5lY3Rpb247CisgICAgdm9p
ZCBpbml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVkKCkgY29uc3Q7CisgICAgY29uc3QgQ1N0cmlu
ZyBtX21hY2hTZXJ2aWNlTmFtZTsKKyAgICBtdXRhYmxlIE9TT2JqZWN0UHRyPHhwY19jb25uZWN0
aW9uX3Q+IG1fY29ubmVjdGlvbjsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXJJbnRlcmZhY2UuY3BwCmluZGV4IDVkMTNlNzRjMWRkMjY4ODc4ZjI5Yzk3MmRhNWY3MWM3OTEx
NjIyZWIuLjY3YTQ2OTMxM2NjODJjYmZmYTQ2NDFiMDg0YWVkOWFhNzAyMjcyYzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHAKQEAgLTE2NywxMSArMTY3LDIyIEBAIGJv
b2wgbWVzc2FnZVR5cGVTZW5kc1JlcGx5KE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlKQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAorc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXI+JiBtYW5hZ2VyUG9pbnRlcigpCit7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPHN0ZDo6dW5pcXVlX3B0cjxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI+PiBt
YW5hZ2VyOworICAgIHJldHVybiBtYW5hZ2VyLmdldCgpOworfQorCit2b2lkIGluaXRpYWxpemVQ
Q01TdG9yYWdlSW5EaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBzdG9yYWdlRGlyZWN0b3J5KQorewor
ICAgIEFTU0VSVCghbWFuYWdlclBvaW50ZXIoKSk7CisgICAgbWFuYWdlclBvaW50ZXIoKSA9IG1h
a2VVbmlxdWU8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyPihtYWtlVW5pcXVlUmVmPFBD
TTo6RGFlbW9uQ2xpZW50PigpLCBzdG9yYWdlRGlyZWN0b3J5KTsKK30KKwogc3RhdGljIFByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlciYgZGFlbW9uTWFuYWdlcigpCiB7Ci0gICAgLy8gRklY
TUU6IEdpdmUgdGhlIG1hbmFnZXIgYSB2YWxpZCBzdG9yYWdlIGRpcmVjdG9yeS4KLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyPiBpbnN0YW5j
ZShtYWtlVW5pcXVlUmVmPFBDTTo6RGFlbW9uQ2xpZW50PigpLCBTdHJpbmcoKSk7Ci0gICAgcmV0
dXJuIGluc3RhbmNlLmdldCgpOworICAgIEFTU0VSVChtYW5hZ2VyUG9pbnRlcigpKTsKKyAgICBy
ZXR1cm4gKm1hbmFnZXJQb2ludGVyKCk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEluZm8+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaAppbmRleCA0MDM2MmRmYTIyMTRlYzgzN2U3
NTdlOTRiY2Q0YWU4YTNjYjI1MGQ5Li41Y2Y0ZTNkZTIxZDBjYzM5OWMyM2FkMDkwN2EzM2Q4ZWVm
MDdiNWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmgKQEAgLTEwMSw2ICsx
MDEsOCBAQCB1c2luZyBFbmNvZGVkTWVzc2FnZSA9IFZlY3Rvcjx1aW50OF90PjsKIHZvaWQgZGVj
b2RlTWVzc2FnZUFuZFNlbmRUb01hbmFnZXIoTWVzc2FnZVR5cGUsIFZlY3Rvcjx1aW50OF90PiYm
IG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPHVpbnQ4X3Q+JiYpPiYmKTsK
IGJvb2wgbWVzc2FnZVR5cGVTZW5kc1JlcGx5KE1lc3NhZ2VUeXBlKTsKIAordm9pZCBpbml0aWFs
aXplUENNU3RvcmFnZUluRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYpOworCiB9IC8vIG5hbWVzcGFj
ZSBQQ00KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHku
Y3BwCmluZGV4IDEwODI2NTJiMDBlMjcxMzRlYjQxZjBlZTIxYTg2YTU4MTk1NDg2ZmQuLjliY2Iz
MTFlNDU4YjE2ZWJlNzNkNDNmMjNiNjJhMzFmM2RmNGQ4N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyUHJveHkuY3BwCkBAIC0zNSwxMSArMzUsMTEgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBuYW1l
c3BhY2UgUENNIHsKIAogdGVtcGxhdGU8TWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIHR5cGVuYW1l
Li4uIEFyZ3M+Ci12b2lkIHNlbmRNZXNzYWdlKEFyZ3MmJi4uLiBhcmdzKQordm9pZCBNYW5hZ2Vy
UHJveHk6OnNlbmRNZXNzYWdlKEFyZ3MmJi4uLiBhcmdzKSBjb25zdAogewogICAgIEVuY29kZXIg
ZW5jb2RlcjsKICAgICBlbmNvZGVyLmVuY29kZShzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4p
OwotICAgIENvbm5lY3Rpb246OmNvbm5lY3Rpb25Ub0RhZW1vbigpLnNlbmQobWVzc2FnZVR5cGUs
IGVuY29kZXIudGFrZUJ1ZmZlcigpKTsKKyAgICBtX2Nvbm5lY3Rpb24uc2VuZChtZXNzYWdlVHlw
ZSwgZW5jb2Rlci50YWtlQnVmZmVyKCkpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdz
PiBzdHJ1Y3QgUmVwbHlDYWxsZXI7CkBAIC02MSwxNiArNjEsMTkgQEAgdGVtcGxhdGU8PiBzdHJ1
Y3QgUmVwbHlDYWxsZXI8U3RyaW5nPiB7CiB9OwogCiB0ZW1wbGF0ZTxNZXNzYWdlVHlwZSBtZXNz
YWdlVHlwZSwgdHlwZW5hbWUuLi4gQXJncywgdHlwZW5hbWUuLi4gUmVwbHlBcmdzPgotdm9pZCBz
ZW5kTWVzc2FnZVdpdGhSZXBseShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlcGx5QXJncy4uLik+
JiYgY29tcGxldGlvbkhhbmRsZXIsIEFyZ3MmJi4uLiBhcmdzKQordm9pZCBNYW5hZ2VyUHJveHk6
OnNlbmRNZXNzYWdlV2l0aFJlcGx5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVwbHlBcmdzLi4u
KT4mJiBjb21wbGV0aW9uSGFuZGxlciwgQXJncyYmLi4uIGFyZ3MpIGNvbnN0CiB7CiAgICAgRW5j
b2RlciBlbmNvZGVyOwogICAgIGVuY29kZXIuZW5jb2RlKHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdz
KS4uLik7Ci0gICAgQ29ubmVjdGlvbjo6Y29ubmVjdGlvblRvRGFlbW9uKCkuc2VuZFdpdGhSZXBs
eShtZXNzYWdlVHlwZSwgZW5jb2Rlci50YWtlQnVmZmVyKCksIFtjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoYXV0byByZXBseUJ1ZmZlcikgbXV0YWJsZSB7
CisgICAgbV9jb25uZWN0aW9uLnNlbmRXaXRoUmVwbHkobWVzc2FnZVR5cGUsIGVuY29kZXIudGFr
ZUJ1ZmZlcigpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0gKGF1dG8gcmVwbHlCdWZmZXIpIG11dGFibGUgewogICAgICAgICBEZWNvZGVyIGRlY29kZXIo
V1RGTW92ZShyZXBseUJ1ZmZlcikpOwogICAgICAgICBSZXBseUNhbGxlcjxSZXBseUFyZ3MuLi4+
OjpjYWxsUmVwbHkoV1RGTW92ZShkZWNvZGVyKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwogICAgIH0pOwogfQogCitNYW5hZ2VyUHJveHk6Ok1hbmFnZXJQcm94eShjb25zdCBTdHJpbmcm
IG1hY2hTZXJ2aWNlTmFtZSkKKyAgICA6IG1fY29ubmVjdGlvbihtYWNoU2VydmljZU5hbWUudXRm
OCgpKSB7IH0KKwogdm9pZCBNYW5hZ2VyUHJveHk6OnN0b3JlVW5hdHRyaWJ1dGVkKFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYgcGNtKQogewogICAgIHNlbmRNZXNzYWdlPE1lc3Nh
Z2VUeXBlOjpTdG9yZVVuYXR0cmlidXRlZD4ocGNtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHku
aAppbmRleCAxNTExMDk4NzY4OTQxN2EzYjE4NmEyNDIwM2NjMWNjMzYyNzZiZjFmLi43YzBhZjBm
NjM5MGQzNmNkYzFmYTZiNjEwNGMzODRiNjM2NzVlNTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQ
cm94eS5oCkBAIC0yNSw4ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oIgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9j
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IApAQCAtMzUsNiArMzcsOCBAQCBuYW1lc3BhY2UgUENNIHsKIGNsYXNzIE1hbmFnZXJQcm94eSA6
IHB1YmxpYyBNYW5hZ2VySW50ZXJmYWNlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKKyAgICBNYW5hZ2VyUHJveHkoY29uc3QgU3RyaW5nJiBtYWNoU2VydmljZU5hbWUp
OworCiAgICAgdm9pZCBzdG9yZVVuYXR0cmlidXRlZChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCYmKSBmaW5hbDsKICAgICB2b2lkIGhhbmRsZUF0dHJpYnV0aW9uKFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNvbnN0IFVS
TCYgcmVxdWVzdFVSTCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiByZWRpcmVjdERvbWFp
biwgY29uc3QgVVJMJiBmaXJzdFBhcnR5VVJMKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CkBAIC01Myw2ICs1NywxNCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzdGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nKCkgZmluYWw7CiAgICAg
dm9pZCBkZXN0cm95U3RvcmVGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikg
ZmluYWw7CiAgICAgdm9pZCBhbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3Rp
bmcoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJikgZmluYWw7CisKK3ByaXZhdGU6Cisg
ICAgdGVtcGxhdGU8TWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIHR5cGVuYW1lLi4uIEFyZ3M+Cisg
ICAgdm9pZCBzZW5kTWVzc2FnZShBcmdzJiYuLi4pIGNvbnN0OworICAgIHRlbXBsYXRlPE1lc3Nh
Z2VUeXBlIG1lc3NhZ2VUeXBlLCB0eXBlbmFtZS4uLiBBcmdzLCB0eXBlbmFtZS4uLiBSZXBseUFy
Z3M+CisgICAgdm9pZCBzZW5kTWVzc2FnZVdpdGhSZXBseShDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFJlcGx5QXJncy4uLik+JiYsIEFyZ3MmJi4uLikgY29uc3Q7CisKKyAgICBDb25uZWN0aW9uIG1f
Y29ubmVjdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBDTQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudERhZW1vbkNvbm5lY3Rpb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnREYWVtb25Db25uZWN0aW9uQ29jb2EubW0KaW5kZXggNjFiNTg1MDY2NThh
M2Y5NTM1ZWVmYjFhNjA1YTI1NWQ4NzI0NzcxYS4uMWM2ZTZiZmU3MzE1MzllYTExODQzNzNhOGNl
NmJhNTVlMmE5YzliOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhZW1v
bkNvbm5lY3Rpb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGFlbW9u
Q29ubmVjdGlvbkNvY29hLm1tCkBAIC0zMywyNiArMzMsMjUgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiAKIG5hbWVzcGFjZSBQQ00gewogCi1Db25uZWN0aW9uOjpDb25uZWN0aW9uKE9TT2JqZWN0UHRy
PHhwY19jb25uZWN0aW9uX3Q+JiYgY29ubmVjdGlvbikKLSAgICA6IG1fY29ubmVjdGlvbihXVEZN
b3ZlKGNvbm5lY3Rpb24pKSB7IH0KK0Nvbm5lY3Rpb246OkNvbm5lY3Rpb24oQ1N0cmluZyYmIG1h
Y2hTZXJ2aWNlTmFtZSkKKyAgICA6IG1fbWFjaFNlcnZpY2VOYW1lKFdURk1vdmUobWFjaFNlcnZp
Y2VOYW1lKSkgeyB9CiAKLUNvbm5lY3Rpb24gQ29ubmVjdGlvbjo6Y29ubmVjdGlvblRvRGFlbW9u
KCkKK3ZvaWQgQ29ubmVjdGlvbjo6aW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCgpIGNvbnN0
CiB7Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8T1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4+IGNvbm5lY3Rpb247Ci0gICAgaWYg
KCFjb25uZWN0aW9uLmdldCgpKSB7Ci0gICAgICAgIGNvbm5lY3Rpb24uZ2V0KCkgPSBhZG9wdE9T
T2JqZWN0KHhwY19jb25uZWN0aW9uX2NyZWF0ZV9tYWNoX3NlcnZpY2UoImNvbS5hcHBsZS53ZWJr
aXQuYWRhdHRyaWJ1dGlvbmQuc2VydmljZSIsIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIDAp
KTsKLSAgICAgICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2ZW50X2hhbmRsZXIoY29ubmVjdGlvbi5n
ZXQoKS5nZXQoKSwgXih4cGNfb2JqZWN0X3QgZXZlbnQpIHsKLSAgICAgICAgICAgIEFTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7Ci0gICAgICAgICAgICBpZiAoZXZlbnQgPT0gWFBDX0VSUk9SX0NP
Tk5FQ1RJT05fSU5URVJSVVBURUQpIHsKLSAgICAgICAgICAgICAgICAvLyBEYWVtb24gY3Jhc2hl
ZCwgd2Ugd2lsbCBuZWVkIHRvIG1ha2UgYSBuZXcgY29ubmVjdGlvbiB0byBhIG5ldyBpbnN0YW5j
ZSBvZiB0aGUgZGFlbW9uLgotICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uZ2V0KCkgPSBudWxs
cHRyOwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgIH0pOwotICAgICAgICB4cGNfY29ubmVjdGlvbl9hY3RpdmF0ZShjb25u
ZWN0aW9uLmdldCgpLmdldCgpKTsKLSAgICB9Ci0gICAgcmV0dXJuIENvbm5lY3Rpb24oT1NPYmpl
Y3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4oY29ubmVjdGlvbi5nZXQoKSkpOworICAgIGlmIChtX2Nv
bm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKyAgICBtX2Nvbm5lY3Rpb24gPSBhZG9wdE9TT2Jq
ZWN0KHhwY19jb25uZWN0aW9uX2NyZWF0ZV9tYWNoX3NlcnZpY2UobV9tYWNoU2VydmljZU5hbWUu
ZGF0YSgpLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCAwKSk7CisgICAgeHBjX2Nvbm5lY3Rp
b25fc2V0X2V2ZW50X2hhbmRsZXIobV9jb25uZWN0aW9uLmdldCgpLCBbd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyldKHhwY19vYmplY3RfdCBldmVudCkgeworICAgICAgICBpZiAoIXdlYWtU
aGlzKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoZXZlbnQgPT0gWFBDX0VSUk9S
X0NPTk5FQ1RJT05fSU5WQUxJRCkKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiRmFpbGVkIHRv
IGNvbm5lY3QgdG8gbWFjaCBzZXJ2aWNlICVzLCBsaWtlbHkgYmVjYXVzZSBpdCBpcyBub3QgcmVn
aXN0ZXJlZCB3aXRoIGxhdW5jaGQiLCB3ZWFrVGhpcy0+bV9tYWNoU2VydmljZU5hbWUuZGF0YSgp
KTsKKyAgICAgICAgaWYgKGV2ZW50ID09IFhQQ19FUlJPUl9DT05ORUNUSU9OX0lOVEVSUlVQVEVE
KSB7CisgICAgICAgICAgICAvLyBEYWVtb24gY3Jhc2hlZCwgd2Ugd2lsbCBuZWVkIHRvIG1ha2Ug
YSBuZXcgY29ubmVjdGlvbiB0byBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgZGFlbW9uLgorICAgICAg
ICAgICAgd2Vha1RoaXMtPm1fY29ubmVjdGlvbiA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9
KTsKKyAgICB4cGNfY29ubmVjdGlvbl9hY3RpdmF0ZShtX2Nvbm5lY3Rpb24uZ2V0KCkpOwogfQog
CiBzdGF0aWMgT1NPYmplY3RQdHI8eHBjX29iamVjdF90PiBkaWN0aW9uYXJ5RnJvbU1lc3NhZ2Uo
TWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYgbWVzc2FnZSkKQEAgLTYz
LDI1ICs2MiwyMiBAQCBzdGF0aWMgT1NPYmplY3RQdHI8eHBjX29iamVjdF90PiBkaWN0aW9uYXJ5
RnJvbU1lc3NhZ2UoTWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsCiAgICAgcmV0dXJuIGRpY3Rpb25h
cnk7CiB9CiAKLXZvaWQgQ29ubmVjdGlvbjo6c2VuZChNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwg
RW5jb2RlZE1lc3NhZ2UmJiBtZXNzYWdlKQordm9pZCBDb25uZWN0aW9uOjpzZW5kKE1lc3NhZ2VU
eXBlIG1lc3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2FnZSYmIG1lc3NhZ2UpIGNvbnN0CiB7Ci0gICAg
aWYgKCFtX2Nvbm5lY3Rpb24pIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICBp
bml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVkKCk7CiAKICAgICB4cGNfY29ubmVjdGlvbl9zZW5k
X21lc3NhZ2UobV9jb25uZWN0aW9uLmdldCgpLCBkaWN0aW9uYXJ5RnJvbU1lc3NhZ2UobWVzc2Fn
ZVR5cGUsIFdURk1vdmUobWVzc2FnZSkpLmdldCgpKTsKIH0KIAotdm9pZCBDb25uZWN0aW9uOjpz
ZW5kV2l0aFJlcGx5KE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2FnZSYmIG1l
c3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRW5jb2RlZE1lc3NhZ2UmJik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIENvbm5lY3Rpb246OnNlbmRXaXRoUmVwbHkoTWVzc2FnZVR5cGUg
bWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChFbmNvZGVkTWVzc2FnZSYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QKIHsKLSAg
ICBpZiAoIW1fY29ubmVjdGlvbikgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7Ci0gICAgfQorICAgIEFTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7CisgICAgaW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCgpOwog
CiAgICAgYXV0byBkaWN0aW9uYXJ5ID0gZGljdGlvbmFyeUZyb21NZXNzYWdlKG1lc3NhZ2VUeXBl
LCBXVEZNb3ZlKG1lc3NhZ2UpKTsKICAgICB4cGNfY29ubmVjdGlvbl9zZW5kX21lc3NhZ2Vfd2l0
aF9yZXBseShtX2Nvbm5lY3Rpb24uZ2V0KCksIGRpY3Rpb25hcnkuZ2V0KCksIGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIG1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0gKHhwY19vYmplY3RfdCByZXBseSkgbXV0YWJsZSB7CisgICAg
ICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgICAgIGlmICh4cGNfZ2V0X3R5cGUo
cmVwbHkpICE9IFhQQ19UWVBFX0RJQ1RJT05BUlkpIHsKICAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL21hYy9jb20uYXBwbGUuV2Vi
S2l0Lk5ldHdvcmtQcm9jZXNzLnNiLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9t
YWMvY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYi5pbgppbmRleCAxOTc0YjhlOWYy
NTlhZWVmYzk0NDY0Njg0YjIwNGQzNTBmMzhkNDFiLi5iNDBiYzNjYTcwZjQ2YmIzYjIyN2FjODI0
OWYwOWNjYmI0ZWU1MmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L21hYy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Mu
c2IuaW4KQEAgLTM1OCw2ICszNTgsNyBAQAogKQogCiAoYWxsb3cgbWFjaC1sb29rdXAgKGdsb2Jh
bC1uYW1lICJjb20uYXBwbGUud2Via2l0LmFkYXR0cmlidXRpb25kLnNlcnZpY2UiKSkKKyhhbGxv
dyBtYWNoLWxvb2t1cCAoZ2xvYmFsLW5hbWUgIm9yZy53ZWJraXQucGNtdGVzdGRhZW1vbi5zZXJ2
aWNlIikpCiAKICh3aXRoLWZpbHRlciAodWlkIDApCiAgICAgKGFsbG93IG1hY2gtbG9va3VwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29h
L0RhZW1vbi9QQ01EYWVtb25FbnRyeVBvaW50Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50
cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9uRW50cnlQb2ludC5tbQppbmRl
eCA4NTE1MTQzMzkzYjYzM2RkMGE2MTU4OTI0YmJlOWU0NzA3MzVkYzRjLi41NDhmZjUxNjRjNmQ2
ZjE5YmU1MWQ0ZjQ2OGRkN2JmNWQ0M2E0ODZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9QQ01EYWVtb25FbnRyeVBvaW50
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2Ev
RGFlbW9uL1BDTURhZW1vbkVudHJ5UG9pbnQubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQg
IlByaXZhdGVDbGlja01lYXN1cmVtZW50WFBDVXRpbGl0aWVzLmgiCiAjaW1wb3J0IDxGb3VuZGF0
aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2lt
cG9ydCA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+CiAjaW1wb3J0
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTc2
LDkgKzc3LDkgQEAgc3RhdGljIHZvaWQgY29ubmVjdGlvbkV2ZW50SGFuZGxlcih4cGNfb2JqZWN0
X3QgcmVxdWVzdCkKICAgICBkZWNvZGVNZXNzYWdlQW5kU2VuZFRvTWFuYWdlcihtZXNzYWdlVHlw
ZSwgV1RGTW92ZShlbmNvZGVkTWVzc2FnZSksIHJlcGx5U2VuZGVyKG1lc3NhZ2VUeXBlLCByZXF1
ZXN0KSk7CiB9CiAKLXN0YXRpYyB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9yTWFjaFNlcnZpY2VDb25u
ZWN0aW9ucygpCitzdGF0aWMgdm9pZCBzdGFydExpc3RlbmluZ0Zvck1hY2hTZXJ2aWNlQ29ubmVj
dGlvbnMoY29uc3QgY2hhciogc2VydmljZU5hbWUpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPE9TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+PiBsaXN0ZW5lciA9IHhwY19jb25uZWN0
aW9uX2NyZWF0ZV9tYWNoX3NlcnZpY2UoImNvbS5hcHBsZS53ZWJraXQuYWRhdHRyaWJ1dGlvbmQu
c2VydmljZSIsIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFhQQ19DT05ORUNUSU9OX01BQ0hf
U0VSVklDRV9MSVNURU5FUik7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE9TT2JqZWN0UHRy
PHhwY19jb25uZWN0aW9uX3Q+PiBsaXN0ZW5lciA9IHhwY19jb25uZWN0aW9uX2NyZWF0ZV9tYWNo
X3NlcnZpY2Uoc2VydmljZU5hbWUsIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFhQQ19DT05O
RUNUSU9OX01BQ0hfU0VSVklDRV9MSVNURU5FUik7CiAgICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2
ZW50X2hhbmRsZXIobGlzdGVuZXIuZ2V0KCkuZ2V0KCksIF4oeHBjX29iamVjdF90IHBlZXIpIHsK
ICAgICAgICAgaWYgKHhwY19nZXRfdHlwZShwZWVyKSAhPSBYUENfVFlQRV9DT05ORUNUSU9OKQog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtODYsNiArODcsOCBAQCBzdGF0aWMgdm9pZCBzdGFydExp
c3RlbmluZ0Zvck1hY2hTZXJ2aWNlQ29ubmVjdGlvbnMoKQogICAgICAgICAvLyBGSVhNRTogQWRk
IGFuIGVudGl0bGVtZW50IGNoZWNrIGhlcmUgc28gdGhhdCBvbmx5IHRoZSBuZXR3b3JrIHByb2Nl
c3MgY2FuIHN1Y2Nlc3NmdWxseSBjb25uZWN0LgogCiAgICAgICAgIHhwY19jb25uZWN0aW9uX3Nl
dF9ldmVudF9oYW5kbGVyKHBlZXIsIF4oeHBjX29iamVjdF90IGV2ZW50KSB7CisgICAgICAgICAg
ICBpZiAoZXZlbnQgPT0gWFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5WQUxJRCkKKyAgICAgICAgICAg
ICAgICBOU0xvZyhAIkZhaWxlZCB0byBzdGFydCBsaXN0ZW5pbmcgZm9yIGNvbm5lY3Rpb25zIHRv
IG1hY2ggc2VydmljZSAlcywgbGlrZWx5IGJlY2F1c2UgaXQgaXMgbm90IHJlZ2lzdGVyZWQgd2l0
aCBsYXVuY2hkIiwgc2VydmljZU5hbWUpOwogICAgICAgICAgICAgaWYgKGV2ZW50ID09IFhQQ19F
UlJPUl9DT05ORUNUSU9OX0lOVEVSUlVQVEVEKSB7CiAgICAgICAgICAgICAgICAgTlNMb2coQCJy
ZW1vdmluZyBwZWVyIGNvbm5lY3Rpb24gJXAiLCBwZWVyKTsKICAgICAgICAgICAgICAgICBwZWVy
cygpLnJlbW92ZShwZWVyKTsKQEAgLTEwNCw2ICsxMDcsNyBAQCBzdGF0aWMgdm9pZCBzdGFydExp
c3RlbmluZ0Zvck1hY2hTZXJ2aWNlQ29ubmVjdGlvbnMoKQogCiBzdGF0aWMgdm9pZCByZWdpc3Rl
clNjaGVkdWxlZEFjdGl2aXR5SGFuZGxlcigpCiB7CisgICAgTlNMb2coQCJSZWdpc3RlcmluZyBY
UEMgYWN0aXZpdHkiKTsKICAgICB4cGNfYWN0aXZpdHlfcmVnaXN0ZXIoImNvbS5hcHBsZS53ZWJr
aXQuYWRhdHRyaWJ1dGlvbmQuYWN0aXZpdHkiLCBYUENfQUNUSVZJVFlfQ0hFQ0tfSU4sIF4oeHBj
X2FjdGl2aXR5X3QgYWN0aXZpdHkpIHsKICAgICAgICAgaWYgKHhwY19hY3Rpdml0eV9nZXRfc3Rh
dGUoYWN0aXZpdHkpID09IFhQQ19BQ1RJVklUWV9TVEFURV9DSEVDS19JTikgewogICAgICAgICAg
ICAgeHBjX29iamVjdF90IGNyaXRlcmlhID0geHBjX2FjdGl2aXR5X2NvcHlfY3JpdGVyaWEoYWN0
aXZpdHkpOwpAQCAtMTI1LDE1ICsxMjksMjEgQEAgc3RhdGljIHZvaWQgZW50ZXJTYW5kYm94KCkK
IAogaW50IFBDTURhZW1vbk1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBhcmd2KQogewotICAg
IGlmIChhcmdjICE9IDIgfHwgc3RyY21wKGFyZ3ZbMV0sICJydW5Bc0RhZW1vbiIpKSB7Ci0gICAg
ICAgIE5TTG9nKEAiVGhpcyBleGVjdXRhYmxlIGlzIGludGVuZGVkIHRvIGJlIHJ1biBhcyBhIGRh
ZW1vbi4iKTsKKyAgICBpZiAoYXJnYyA8IDUgfHwgc3RyY21wKGFyZ3ZbMV0sICItLW1hY2hTZXJ2
aWNlTmFtZSIpIHx8IHN0cmNtcChhcmd2WzNdLCAiLS1zdG9yYWdlTG9jYXRpb24iKSkgeworICAg
ICAgICBOU0xvZyhAIlVzYWdlOiAlcyAtLW1hY2hTZXJ2aWNlTmFtZSA8bmFtZT4gLS1zdG9yYWdl
TG9jYXRpb24gPGxvY2F0aW9uPiBbLS1zdGFydEFjdGl2aXR5XSIsIGFyZ3ZbMF0pOwogICAgICAg
ICByZXR1cm4gLTE7CiAgICAgfQorICAgIGNvbnN0IGNoYXIqIG1hY2hTZXJ2aWNlTmFtZSA9IGFy
Z3ZbMl07CisgICAgY29uc3QgY2hhciogc3RvcmFnZUxvY2F0aW9uID0gYXJndls0XTsKKyAgICBi
b29sIHN0YXJ0QWN0aXZpdHkgPSBhcmdjID4gNSAmJiAhc3RyY21wKGFyZ3ZbNV0sICItLXN0YXJ0
QWN0aXZpdHkiKTsKKwogICAgIEBhdXRvcmVsZWFzZXBvb2wgewogICAgICAgICBlbnRlclNhbmRi
b3goKTsKLSAgICAgICAgc3RhcnRMaXN0ZW5pbmdGb3JNYWNoU2VydmljZUNvbm5lY3Rpb25zKCk7
Ci0gICAgICAgIHJlZ2lzdGVyU2NoZWR1bGVkQWN0aXZpdHlIYW5kbGVyKCk7CisgICAgICAgIHN0
YXJ0TGlzdGVuaW5nRm9yTWFjaFNlcnZpY2VDb25uZWN0aW9ucyhtYWNoU2VydmljZU5hbWUpOwor
ICAgICAgICBpZiAoc3RhcnRBY3Rpdml0eSkKKyAgICAgICAgICAgIHJlZ2lzdGVyU2NoZWR1bGVk
QWN0aXZpdHlIYW5kbGVyKCk7CiAgICAgICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQoKTsK
KyAgICAgICAgUENNOjppbml0aWFsaXplUENNU3RvcmFnZUluRGlyZWN0b3J5KEZpbGVTeXN0ZW06
OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oc3RvcmFnZUxvY2F0aW9uKSk7CiAg
ICAgfQogICAgIENGUnVuTG9vcFJ1bigpOwogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24uaAppbmRleCA3ZDBhZTc5ZTIxMTg0ODRlZWFjOWRkYzg5YmZj
YTVjMWUyMDlkNGYwLi4wODUxMjNkMGQ0ZmFiZTk5Y2ZmMTE0ZjE2MWU2NDQ4MGQzNDg5MzVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaApAQCAtNzYsNiArNzYsNyBA
QCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRIU1RTU3RvcmFnZURpcmVjdG9y
eTopIE5TVVJMICpoc3RzU3RvcmFnZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEy
LjApLCBpb3MoMTUuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgZW5hYmxlSW5BcHBC
cm93c2VyUHJpdmFjeUZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9z
KDE1LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93c0hTVFNXaXRoVW50cnVz
dGVkUm9vdENlcnRpZmljYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4w
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRQQ01N
YWNoU2VydmljZU5hbWU6KSBOU1N0cmluZyAqcGNtTWFjaFNlcnZpY2VOYW1lIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNVUkwgKmFsdGVybmF0aXZlU2VydmljZXNTdG9y
YWdlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TVVJMICpzdGFuZGFsb25lQXBw
bGljYXRpb25VUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQppbmRleCBhZTM5YjY2MTg1MDlj
OWYyYmVlYTRmOWQ5NTVjMDQxYWRiN2FmMzc2Li41OTAwNzUyZjdiMDQxNDk2NjBhNTdkZDJlNGI0
Mjk2NjE4NzAwNTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1t
CkBAIC01MjEsNiArNTIxLDE2IEBAIHN0YXRpYyB2b2lkIGNoZWNrVVJMQXJndW1lbnQoTlNVUkwg
KnVybCkKICAgICBfY29uZmlndXJhdGlvbi0+c2V0QWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290
Q2VydGlmaWNhdGUoYWxsb3dzKTsKIH0KIAorLSAoTlNTdHJpbmcgKilwY21NYWNoU2VydmljZU5h
bWUKK3sKKyAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24tPnBjbU1hY2hTZXJ2aWNlTmFtZSgpOwor
fQorCistICh2b2lkKXNldFBDTU1hY2hTZXJ2aWNlTmFtZTooTlNTdHJpbmcgKiluYW1lCit7Cisg
ICAgX2NvbmZpZ3VyYXRpb24tPnNldFBDTU1hY2hTZXJ2aWNlTmFtZShuYW1lKTsKK30KKwogLSAo
Qk9PTClhbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0
aW5nCiB7CiAgICAgcmV0dXJuIF9jb25maWd1cmF0aW9uLT5hbGxMb2Fkc0Jsb2NrZWRCeURldmlj
ZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4
IDNkYTZjMTE2YjkzNjg4ZDFiYWM3M2Q3ZTZkOWQ0OTllMDQ0MTJhZmUuLjUxMTM0OGYyMGZhYjlm
NDY1ZjhmZGU5MDFmZTYwN2Y3ZTczNzdmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0yMDYwLDYg
KzIwNjAsNyBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpw
YXJhbWV0ZXJzKCkKICAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVxdWlyZXNTZWN1cmVI
VFRQU1Byb3h5Q29ubmVjdGlvbiA9IG1fY29uZmlndXJhdGlvbi0+cmVxdWlyZXNTZWN1cmVIVFRQ
U1Byb3h5Q29ubmVjdGlvbigpOwogICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5wcmV2ZW50
c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uID0gbV9jb25maWd1cmF0aW9uLT5wcmV2ZW50
c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uKCk7CiAgICAgbmV0d29ya1Nlc3Npb25QYXJh
bWV0ZXJzLmFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlID0gbV9jb25maWd1
cmF0aW9uLT5hbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSgpOworICAgIG5l
dHdvcmtTZXNzaW9uUGFyYW1ldGVycy5wY21NYWNoU2VydmljZU5hbWUgPSBtX2NvbmZpZ3VyYXRp
b24tPnBjbU1hY2hTZXJ2aWNlTmFtZSgpOwogCiAgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lv
blBhcmFtZXRlcnMgPSBXVEZNb3ZlKG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycyk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcAppbmRleCBiZDRiOTU3YWJkMTExMTBl
MzA5M2Y1MjhiNTM2OGUzZTFkYTQ4MWIzLi5mZDRiMDhlNjFhYmMzNjA0N2Q3YmViMTAwMjFlNGVl
YTE1ODg2ODVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwCkBA
IC01MSw2ICs1MSw3IEBAIFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbihJc1BlcnNpc3RlbnQgaXNQZXJzCiAjaWYgSEFWRShBUktJVF9J
TkxJTkVfUFJFVklFVykKICAgICAgICAgc2V0TW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoV2Vi
c2l0ZURhdGFTdG9yZTo6ZGVmYXVsdE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KCkpOwogI2Vu
ZGlmCisgICAgICAgIC8vIEZJWE1FOiBHaXZlIG1fcGNtTWFjaFNlcnZpY2VOYW1lIGEgZGVmYXVs
dCB2YWx1ZSBhbmQgcmVtb3ZlIFBDTTo6TWFuYWdlckludGVyZmFjZSBvbmNlIHJkYXI6Ly84MDcw
MTA5OCBpcyBjbG9zZWQuCiAgICAgfQogfQogCkBAIC0xMDAsNiArMTAxLDcgQEAgUmVmPFdlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6
Y29weSgpIGNvbnN0CiAgICAgY29weS0+bV9zdGFuZGFsb25lQXBwbGljYXRpb25VUkwgPSB0aGlz
LT5tX3N0YW5kYWxvbmVBcHBsaWNhdGlvblVSTDsKICAgICBjb3B5LT5tX2VuYWJsZUluQXBwQnJv
d3NlclByaXZhY3lGb3JUZXN0aW5nID0gdGhpcy0+bV9lbmFibGVJbkFwcEJyb3dzZXJQcml2YWN5
Rm9yVGVzdGluZzsKICAgICBjb3B5LT5tX2FsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRp
ZmljYXRlID0gdGhpcy0+bV9hbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZTsK
KyAgICBjb3B5LT5tX3BjbU1hY2hTZXJ2aWNlTmFtZSA9IHRoaXMtPm1fcGNtTWFjaFNlcnZpY2VO
YW1lOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGlmIChtX3Byb3h5Q29uZmlndXJhdGlvbikK
ICAgICAgICAgY29weS0+bV9wcm94eUNvbmZpZ3VyYXRpb24gPSBhZG9wdENGKENGRGljdGlvbmFy
eUNyZWF0ZUNvcHkobnVsbHB0ciwgdGhpcy0+bV9wcm94eUNvbmZpZ3VyYXRpb24uZ2V0KCkpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCmluZGV4IGVkZGFiNDRlM2EyODlj
MWE0NTQ3ZjFjNDYwOTI5MTljNmMyNzgwYzcuLjczNGFiNjYyYzg0YTM1Mjg3ZDI2ZDllNWIyMmU5
N2Q3NDhmMDYyZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaApAQCAt
MTgwLDYgKzE4MCw5IEBAIHB1YmxpYzoKICAgICBib29sIGFsbG93c0hTVFNXaXRoVW50cnVzdGVk
Um9vdENlcnRpZmljYXRlKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd3NIU1RTV2l0aFVudHJ1c3Rl
ZFJvb3RDZXJ0aWZpY2F0ZTsgfQogICAgIHZvaWQgc2V0QWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRS
b290Q2VydGlmaWNhdGUoYm9vbCBhbGxvd3MpIHsgbV9hbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJv
b3RDZXJ0aWZpY2F0ZSA9IGFsbG93czsgfQogICAgIAorICAgIHZvaWQgc2V0UENNTWFjaFNlcnZp
Y2VOYW1lKFN0cmluZyYmIG5hbWUpIHsgbV9wY21NYWNoU2VydmljZU5hbWUgPSBXVEZNb3ZlKG5h
bWUpOyB9CisgICAgY29uc3QgU3RyaW5nJiBwY21NYWNoU2VydmljZU5hbWUoKSBjb25zdCB7IHJl
dHVybiBtX3BjbU1hY2hTZXJ2aWNlTmFtZTsgfQorCiBwcml2YXRlOgogICAgIElzUGVyc2lzdGVu
dCBtX2lzUGVyc2lzdGVudCB7IElzUGVyc2lzdGVudDo6Tm8gfTsKIApAQCAtMjMyLDYgKzIzNSw3
IEBAIHByaXZhdGU6CiAgICAgVVJMIG1fc3RhbmRhbG9uZUFwcGxpY2F0aW9uVVJMOwogICAgIGJv
b2wgbV9lbmFibGVJbkFwcEJyb3dzZXJQcml2YWN5Rm9yVGVzdGluZyB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2FsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlIHsgZmFsc2UgfTsK
KyAgICBTdHJpbmcgbV9wY21NYWNoU2VydmljZU5hbWU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gbV9wcm94eUNvbmZpZ3VyYXRpb247CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAy
YzViMjJlOTc2OWE3NjQxZWE5OTNlYTQxY2Y1NmY1NTgwYzA4Mzc2Li4xY2M2YjY4N2NlNWE2Y2Zm
YjE5MDk5ZjY5Y2I2YzRkNGFjYzk3MzhkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMDktMTEgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgdW5pdCB0
ZXN0IHRoYXQgdXNlcyBQQ00gZGFlbW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzAxOTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFBDTURh
ZW1vbi54Y2NvbmZpZzogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6Y3VycmVudEV4ZWN1dGFibGVMb2NhdGlvbik6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
Ojp0ZXN0RGFlbW9uUExpc3QpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0UENNRGFlbW9uTWFpbi5jOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5jcHAuCisgICAgICAgIChtYWluKToKKwog
MjAyMS0wOS0xMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIEFkZCBpbmZyYXN0cnVjdHVyZSB0byBhbGxvdyBUTFMgZHVyaW5nIFBDTSB0ZXN0
cwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0UENN
RGFlbW9uLnhjY29uZmlnIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0
UENNRGFlbW9uLnhjY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlN2VjNjgxNmE4OThiNDg3MjI3ZGUwNGVm
Mzk1OTE2MDg4YjMwNTEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0Nv
bmZpZ3VyYXRpb25zL1Rlc3RQQ01EYWVtb24ueGNjb25maWcKQEAgLTAsMCArMSwyNyBAQAorLy8g
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisv
LyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworLy8gYXJlIG1ldDoKKy8vIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisvLyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorLy8gICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKy8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKy8vIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisvLyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKy8vIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisvLyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKy8vIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKy8vIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorLy8gUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorLy8gT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisv
LyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorCitQUk9EVUNUX05BTUUgPSBUZXN0UENN
RGFlbW9uOworCitPVEhFUl9MREZMQUdTID0gLWZyYW1ld29yayBXZWJLaXQ7CitGUkFNRVdPUktf
U0VBUkNIX1BBVEhTID0gJChCVUlMVF9QUk9EVUNUU19ESVIpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAxOGViZjk0MTAzYmE4NGNlNjQwYzJkMzExZGZlM2JmZmM1MzY3ZGVlLi5hY2Y1YWUy
NTJkMmFlZGZkNTUxMGJhZDdjMTY0MzczMzk5MTdiYjY5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMzYsNiArMzYsNyBAQAogCQkJCTUzN0NGODQ4MjJFRkQ3MjAwMEM2RUJCMyAvKiBDaGVj
ayAueGNmaWxlbGlzdHMgKi8sCiAJCQkpOwogCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCTVDMUIx
RDFDMjZFQzJFRUMwMDg4MkRBMiAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTdDODNF
MDMwMUQwQTVFMUIwMEZFQkNGMyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTdDODNF
MDMyMUQwQTVFMUQwMEZFQkNGMyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsKQEAg
LTQ3OCw2ICs0NzksNyBAQAogCQk1QzEyMUU4RDI0MTA3MDQ5MDA0ODZGOUIgLyogQ29udGVudFdv
cmxkUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUMxMjFFOEMyNDEwNzAzMjAwNDg2RjlCIC8qIENvbnRlbnRXb3JsZFBsdWdJbi5tbSAqLzsg
fTsKIAkJNUMxNkY4RkMyMzBDOTQzNzAwNzRDNEE4IC8qIFRleHRTaXplLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMxNkY4RkIyMzBDOTQyQjAwNzRD
NEE4IC8qIFRleHRTaXplLm1tICovOyB9OwogCQk1QzE5QTUyNDFGRDBGNjAxMDBFRUEzMjMgLyog
Q29va2llUHJpdmF0ZUJyb3dzaW5nLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNUMxOUE1MjMxRkQwRjMyNjAwRUVBMzIzIC8qIENvb2tpZVByaXZhdGVC
cm93c2luZy5tbSAqLzsgfTsKKwkJNUMxQjFEMTcyNkVDMjdERTAwODgyREEyIC8qIFRlc3RQQ01E
YWVtb25NYWluLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1QzFCMUQxNjI2RUMyN0M1MDA4ODJEQTIgLyogVGVzdFBDTURhZW1vbk1haW4uYyAqLzsgfTsK
IAkJNUMyM0RGMEIyMjQ2MDE1ODAwRjQ1NEI2IC8qIENoYWxsZW5nZS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMjNERjBBMjI0NUM5RDcwMEY0NTRC
NiAvKiBDaGFsbGVuZ2UubW0gKi87IH07CiAJCTVDMjkzNjkzMUQ1QkY3MEQwMERFQUIxRSAvKiBD
b29raWVBY2NlcHRQb2xpY3kubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1QzI5MzY5MTFENUJGNjNFMDBERUFCMUUgLyogQ29va2llQWNjZXB0UG9saWN5
Lm1tICovOyB9OwogCQk1QzI5MzY5NjFENUMwMEVEMDBERUFCMUUgLyogQ29va2llTWVzc2FnZS5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDVDMjkzNjk0MUQ1QkZEMTkwMERFQUIxRSAvKiBDb29raWVNZXNzYWdlLmh0bWwgKi87IH07CkBA
IC0xMjk3LDYgKzEyOTksMTMgQEAKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCiAv
KiBCZWdpbiBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLworCQk1QzFCMUQxQjI2RUMy
RUVDMDA4ODJEQTIgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0geworCQkJaXNhID0gUEJY
Q29udGFpbmVySXRlbVByb3h5OworCQkJY29udGFpbmVyUG9ydGFsID0gMDhGQjc3OTNGRTg0MTU1
REMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOworCQkJcHJveHlUeXBlID0gMTsKKwkJCXJl
bW90ZUdsb2JhbElEU3RyaW5nID0gNUMxQjFEMDgyNkVDMjc4NTAwODgyREEyOworCQkJcmVtb3Rl
SW5mbyA9IFRlc3RQQ01EYWVtb247CisJCX07CiAJCTVDOUQ5MjIxMjJEN0RDODQwMDhFOTI2NiAv
KiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CiAJCQlpc2EgPSBQQlhDb250YWluZXJJdGVt
UHJveHk7CiAJCQljb250YWluZXJQb3J0YWwgPSAwOEZCNzc5M0ZFODQxNTVEQzAyQUFDMDcgLyog
UHJvamVjdCBvYmplY3QgKi87CkBAIC0yMzMxLDYgKzIzNDAsOSBAQAogCQk1QzEyMUU4QzI0MTA3
MDMyMDA0ODZGOUIgLyogQ29udGVudFdvcmxkUGx1Z0luLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gQ29udGVudFdvcmxkUGx1Z0luLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1QzE2RjhGQjIzMEM5NDJCMDA3NEM0QTggLyogVGV4dFNpemUubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXh0U2l6ZS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMxOUE1MjMxRkQwRjMyNjAwRUVBMzIzIC8qIENv
b2tpZVByaXZhdGVCcm93c2luZy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IENvb2tpZVByaXZhdGVCcm93c2luZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNUMxQjFEMTQyNkVDMjc4NTAwODgyREEyIC8qIFRlc3RQQ01EYWVtb24gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8u
ZXhlY3V0YWJsZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFRlc3RQQ01EYWVtb247IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTVDMUIxRDE2MjZFQzI3QzUwMDg4
MkRBMiAvKiBUZXN0UENNRGFlbW9uTWFpbi5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBUZXN0UENNRGFlbW9u
TWFpbi5jOyBwYXRoID0gY29jb2EvVGVzdFBDTURhZW1vbk1haW4uYzsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNUMxQjFEMUEyNkVDMjg0RTAwODgyREEyIC8qIFRlc3RQQ01EYWVtb24u
eGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gVGVzdFBDTURhZW1vbi54Y2NvbmZpZzsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMyM0RGMEEyMjQ1QzlENzAwRjQ1NEI2IC8qIENoYWxsZW5n
ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENoYWxsZW5nZS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMyOTM2OTExRDVCRjYzRTAwREVBQjFF
IC8qIENvb2tpZUFjY2VwdFBvbGljeS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IENvb2tpZUFjY2VwdFBvbGljeS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNUMyOTM2OTQxRDVCRkQxOTAwREVBQjFFIC8qIENvb2tpZU1lc3NhZ2UuaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IENvb2tpZU1lc3NhZ2UuaHRtbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTMxNjIsNiArMzE3NCwxMyBAQAogLyogRW5kIFBCWEZpbGVSZWZl
cmVuY2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0
aW9uICovCisJCTVDMUIxRDBFMjZFQzI3ODUwMDg4MkRBMiAvKiBGcmFtZXdvcmtzICovID0gewor
CQkJaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAy
MTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CiAJCTdDODNERjY0MUQwQTU5MEMwMEZFQkNGMyAvKiBG
cmFtZXdvcmtzICovID0gewogCQkJaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CiAJCQli
dWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtMzMwNiw2ICszMzI1LDcgQEAKIAkJCQk1
QzcyRThDRTI0NEZGQ0U0MDAzODFFQjcgLyogVGVzdExlZ2FjeURvd25sb2FkRGVsZWdhdGUubW0g
Ki8sCiAJCQkJMkQxQzA0QTUxRDc2Mjk4QjAwMEE2ODE2IC8qIFRlc3ROYXZpZ2F0aW9uRGVsZWdh
dGUuaCAqLywKIAkJCQkyRDFDMDRBNjFENzYyOThCMDAwQTY4MTYgLyogVGVzdE5hdmlnYXRpb25E
ZWxlZ2F0ZS5tbSAqLywKKwkJCQk1QzFCMUQxNjI2RUMyN0M1MDA4ODJEQTIgLyogVGVzdFBDTURh
ZW1vbk1haW4uYyAqLywKIAkJCQk1MTYyODEyMzIzMjVDMTdBMDBCQjdFNDIgLyogVGVzdFBERkRv
Y3VtZW50LmggKi8sCiAJCQkJNTE2MjgxMjQyMzI1QzE3QjAwQkI3RTQyIC8qIFRlc3RQREZEb2N1
bWVudC5tbSAqLywKIAkJCQlBMTRGQzU4RDFCOEFFMzY1MDBEMTA3RUIgLyogVGVzdFByb3RvY29s
LmggKi8sCkBAIC0zMzY0LDYgKzMzODQsNyBAQAogCQkxQUI2NzRBREZFOUQ1NEI1MTFDQTJDQkIg
LyogUHJvZHVjdHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAor
CQkJCTVDMUIxRDE0MjZFQzI3ODUwMDg4MkRBMiAvKiBUZXN0UENNRGFlbW9uICovLAogCQkJCThE
RDc2RkExMDQ4NkFBNzYwMEQ5NkI1RSAvKiBUZXN0V2ViS2l0QVBJICovLAogCQkJCTdDODNFMDIz
MUQwQTVBRTQwMEZFQkNGMyAvKiBUZXN0V1RGICovLAogCQkJCUJDNTc1OTgwMTI2RTc0QUYwMDZG
MEYxMiAvKiBJbmplY3RlZEJ1bmRsZVRlc3RXZWJLaXRBUEkuYnVuZGxlICovLApAQCAtNDI5Myw2
ICs0MzE0LDcgQEAKIAkJCQlCQzkwOTU3RjEyNTU0Q0Y5MDAwODM3NTYgLyogRGVidWdSZWxlYXNl
LnhjY29uZmlnICovLAogCQkJCUJDNTc1QUUyMTI2RTg4QjEwMDZGMEYxMiAvKiBJbmplY3RlZEJ1
bmRsZS54Y2NvbmZpZyAqLywKIAkJCQlBMUI4OUI5OTIyMUUwMjlGMDBFQjRDRUEgLyogU0RLVmFy
aWFudC54Y2NvbmZpZyAqLywKKwkJCQk1QzFCMUQxQTI2RUMyODRFMDA4ODJEQTIgLyogVGVzdFBD
TURhZW1vbi54Y2NvbmZpZyAqLywKIAkJCQk1NzM1RjAyNTFGM0E0RUE2MDAwRUU4MDEgLyogVGVz
dFdlYktpdEFQSS1pT1MuZW50aXRsZW1lbnRzICovLAogCQkJCTUxRUIxMjUzMjRDNjZCQ0IwMDBD
QjAzMCAvKiBUZXN0V2ViS2l0QVBJLW1hY09TLWludGVybmFsLmVudGl0bGVtZW50cyAqLywKIAkJ
CQk3QUIwMTczOTIzRkIyQkYwMDAyRjgzNjYgLyogVGVzdFdlYktpdEFQSS1tYWNPUy5lbnRpdGxl
bWVudHMgKi8sCkBAIC00OTc5LDYgKzUwMDEsMjMgQEAKIC8qIEVuZCBQQlhHcm91cCBzZWN0aW9u
ICovCiAKIC8qIEJlZ2luIFBCWE5hdGl2ZVRhcmdldCBzZWN0aW9uICovCisJCTVDMUIxRDA4MjZF
QzI3ODUwMDg4MkRBMiAvKiBUZXN0UENNRGFlbW9uICovID0geworCQkJaXNhID0gUEJYTmF0aXZl
VGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDVDMUIxRDExMjZFQzI3ODUwMDg4
MkRBMiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiVGVz
dFBDTURhZW1vbiIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJCQk1QzFCMUQwQjI2RUMyNzg1
MDA4ODJEQTIgLyogU291cmNlcyAqLywKKwkJCQk1QzFCMUQwRTI2RUMyNzg1MDA4ODJEQTIgLyog
RnJhbWV3b3JrcyAqLywKKwkJCSk7CisJCQlidWlsZFJ1bGVzID0gKAorCQkJKTsKKwkJCWRlcGVu
ZGVuY2llcyA9ICgKKwkJCSk7CisJCQluYW1lID0gVGVzdFBDTURhZW1vbjsKKwkJCXByb2R1Y3RJ
bnN0YWxsUGF0aCA9ICIkKEhPTUUpL2JpbiI7CisJCQlwcm9kdWN0TmFtZSA9IFRlc3RQQ01EYWVt
b247CisJCQlwcm9kdWN0UmVmZXJlbmNlID0gNUMxQjFEMTQyNkVDMjc4NTAwODgyREEyIC8qIFRl
c3RQQ01EYWVtb24gKi87CisJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBl
LnRvb2wiOworCQl9OwogCQk3QzgzREU5NTFEMEE1OTBDMDBGRUJDRjMgLyogVGVzdFdURkxpYnJh
cnkgKi8gPSB7CiAJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CiAJCQlidWlsZENvbmZpZ3VyYXRp
b25MaXN0ID0gN0M4M0RGNjUxRDBBNTkwQzAwRkVCQ0YzIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24g
bGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJUZXN0V1RGTGlicmFyeSIgKi87CkBAIC01MTM4LDYg
KzUxNzcsNyBAQAogCQkJCUJDNTc1OTdGMTI2RTc0QUYwMDZGMEYxMiAvKiBJbmplY3RlZEJ1bmRs
ZVRlc3RXZWJLaXRBUEkgKi8sCiAJCQkJQTEzRUJCNDgxQjg3MzM5RTAwMDk3MTEwIC8qIFdlYlBy
b2Nlc3NQbHVnSW4gKi8sCiAJCQkJNTM3Q0Y4NDMyMkVGRDY0MTAwQzZFQkIzIC8qIEFwcGx5IENv
bmZpZ3VyYXRpb24gdG8gWENGaWxlTGlzdHMgKi8sCisJCQkJNUMxQjFEMDgyNkVDMjc4NTAwODgy
REEyIC8qIFRlc3RQQ01EYWVtb24gKi8sCiAJCQkpOwogCQl9OwogLyogRW5kIFBCWFByb2plY3Qg
c2VjdGlvbiAqLwpAQCAtNTIxNCw2ICs1MjU0LDE0IEBACiAvKiBFbmQgUEJYU2hlbGxTY3JpcHRC
dWlsZFBoYXNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYU291cmNlc0J1aWxkUGhhc2Ugc2Vj
dGlvbiAqLworCQk1QzFCMUQwQjI2RUMyNzg1MDA4ODJEQTIgLyogU291cmNlcyAqLyA9IHsKKwkJ
CWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4
MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJCTVDMUIxRDE3MjZFQzI3REUwMDg4MkRBMiAvKiBUZXN0
UENNRGFlbW9uTWFpbi5jIGluIFNvdXJjZXMgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CiAJCTdDODNERTk2MUQwQTU5MEMwMEZFQkNG
MyAvKiBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQli
dWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtNjA3OCw2ICs2MTI2LDExIEBACiAvKiBF
bmQgUEJYU291cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhUYXJnZXRE
ZXBlbmRlbmN5IHNlY3Rpb24gKi8KKwkJNUMxQjFEMUMyNkVDMkVFQzAwODgyREEyIC8qIFBCWFRh
cmdldERlcGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OworCQkJ
dGFyZ2V0ID0gNUMxQjFEMDgyNkVDMjc4NTAwODgyREEyIC8qIFRlc3RQQ01EYWVtb24gKi87CisJ
CQl0YXJnZXRQcm94eSA9IDVDMUIxRDFCMjZFQzJFRUMwMDg4MkRBMiAvKiBQQlhDb250YWluZXJJ
dGVtUHJveHkgKi87CisJCX07CiAJCTVDOUQ5MjIyMjJEN0RDODQwMDhFOTI2NiAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovID0gewogCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKIAkJCXRh
cmdldCA9IDVDOUQ5MjE0MjJEN0RBMDIwMDhFOTI2NiAvKiBHZW5lcmF0ZSBVbmlmaWVkIFNvdXJj
ZXMgKi87CkBAIC02MTYwLDYgKzYyMTMsMjIgQEAKIAkJCX07CiAJCQluYW1lID0gUmVsZWFzZTsK
IAkJfTsKKwkJNUMxQjFEMTIyNkVDMjc4NTAwODgyREEyIC8qIERlYnVnICovID0geworCQkJaXNh
ID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9
IDVDMUIxRDFBMjZFQzI4NEUwMDg4MkRBMiAvKiBUZXN0UENNRGFlbW9uLnhjY29uZmlnICovOwor
CQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSki
OworCQkJfTsKKwkJCW5hbWUgPSBEZWJ1ZzsKKwkJfTsKKwkJNUMxQjFEMTMyNkVDMjc4NTAwODgy
REEyIC8qIFJlbGVhc2UgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJ
CWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUMxQjFEMUEyNkVDMjg0RTAwODgyREEyIC8q
IFRlc3RQQ01EYWVtb24ueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBS
T0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFJlbGVhc2U7
CisJCX07CiAJCTVDOUQ5MjFBMjJEN0RBMDIwMDhFOTI2NiAvKiBEZWJ1ZyAqLyA9IHsKIAkJCWlz
YSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYnVpbGRTZXR0aW5ncyA9IHsKQEAgLTYyODgs
NiArNjM1NywxNSBAQAogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwogCQkJ
ZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUmVsZWFzZTsKIAkJfTsKKwkJNUMxQjFEMTEyNkVD
Mjc4NTAwODgyREEyIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFy
Z2V0ICJUZXN0UENNRGFlbW9uIiAqLyA9IHsKKwkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7
CisJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAorCQkJCTVDMUIxRDEyMjZFQzI3ODUwMDg4MkRB
MiAvKiBEZWJ1ZyAqLywKKwkJCQk1QzFCMUQxMzI2RUMyNzg1MDA4ODJEQTIgLyogUmVsZWFzZSAq
LywKKwkJCSk7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisJCQlkZWZh
dWx0Q29uZmlndXJhdGlvbk5hbWUgPSBSZWxlYXNlOworCQl9OwogCQk1QzlEOTIxOTIyRDdEQTAy
MDA4RTkyNjYgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJn
ZXQgIkdlbmVyYXRlIFVuaWZpZWQgU291cmNlcyIgKi8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3Vy
YXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpp
bmRleCA4N2Q3ZmU4ZWU3ZTg4N2IyMGI3ZThhNjY3ZDg5NDcxNjQ3YTYzOTk3Li43ZjYyODlhMzdi
YjY4ZDBkNmJjYmJmZDU4Zjk5NWM4ZDQ4NjYwZDRjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCkBAIC0y
NywxMyArMjcsMTggQEAKIAogI2ltcG9ydCAiSFRUUFNlcnZlci5oIgogI2ltcG9ydCAiUGxhdGZv
cm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3QuaCIKICNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9u
RGVsZWdhdGUuaCIKICNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKICNpbXBvcnQgIlV0aWxpdGll
cy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLTWFpbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmll
d1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5o
PgogI2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaD4KICNpbXBvcnQg
PFdlYktpdC9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oPgorI2ltcG9ydCA8bWFj
aC1vL2R5bGQuaD4KKyNpbXBvcnQgPHd0Zi9PU09iamVjdFB0ci5oPgorI2ltcG9ydCA8d3RmL3Nw
aS9kYXJ3aW4vWFBDU1BJLmg+CiAKICNpZiBIQVZFKFJTQV9CU1NBKQogCkBAIC0zNjAsNiArMzY1
LDEzMCBAQCBURVNUKEV2ZW50QXR0cmlidXRpb24sIERhdGFiYXNlTG9jYXRpb24pCiAgICAgRVhQ
RUNUX0VRKHdlYlZpZXdUb0tlZXBOZXR3b3JrUHJvY2Vzc0FsaXZlLmdldCgpLmNvbmZpZ3VyYXRp
b24ud2Vic2l0ZURhdGFTdG9yZS5fbmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyLCBvcmlnaW5hbE5l
dHdvcmtQcm9jZXNzUGlkKTsKIH0KIAorc3RhdGljIFJldGFpblB0cjxOU1VSTD4gY3VycmVudEV4
ZWN1dGFibGVMb2NhdGlvbigpCit7CisgICAgdWludDMyX3Qgc2l6ZSB7IDAgfTsKKyAgICBfTlNH
ZXRFeGVjdXRhYmxlUGF0aChudWxscHRyLCAmc2l6ZSk7CisgICAgVmVjdG9yPGNoYXI+IGJ1ZmZl
cjsKKyAgICBidWZmZXIucmVzaXplKHNpemUgKyAxKTsKKyAgICBfTlNHZXRFeGVjdXRhYmxlUGF0
aChidWZmZXIuZGF0YSgpLCAmc2l6ZSk7CisgICAgYnVmZmVyW3NpemVdID0gJ1wwJzsKKyAgICBh
dXRvIHBhdGhTdHJpbmcgPSBhZG9wdE5TKFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoVVRGOFN0
cmluZzpidWZmZXIuZGF0YSgpXSk7CisgICAgcmV0dXJuIGFkb3B0TlMoW1tOU1VSTCBhbGxvY10g
aW5pdEZpbGVVUkxXaXRoUGF0aDpwYXRoU3RyaW5nLmdldCgpIGlzRGlyZWN0b3J5Ok5PXSk7Cit9
CisKK3N0YXRpYyBSZXRhaW5QdHI8TlNVUkw+IGN1cnJlbnRFeGVjdXRhYmxlRGlyZWN0b3J5KCkK
K3sKKyAgICByZXR1cm4gW2N1cnJlbnRFeGVjdXRhYmxlTG9jYXRpb24oKSBVUkxCeURlbGV0aW5n
TGFzdFBhdGhDb21wb25lbnRdOworfQorCitzdGF0aWMgUmV0YWluUHRyPE5TVVJMPiB0ZXN0UENN
RGFlbW9uTG9jYXRpb24oKQoreworICAgIHJldHVybiBbY3VycmVudEV4ZWN1dGFibGVEaXJlY3Rv
cnkoKSBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJUZXN0UENNRGFlbW9uIiBpc0RpcmVj
dG9yeTpOT107Cit9CisKKyNpZiBIQVZFKE9TX0xBVU5DSERfSk9CKQorCitzdGF0aWMgT1NPYmpl
Y3RQdHI8eHBjX29iamVjdF90PiB0ZXN0RGFlbW9uUExpc3QoTlNVUkwgKnN0b3JhZ2VMb2NhdGlv
bikKK3sKKyAgICBhdXRvIHBsaXN0ID0gYWRvcHRPU09iamVjdCh4cGNfZGljdGlvbmFyeV9jcmVh
dGUobnVsbHB0ciwgbnVsbHB0ciwgMCkpOworICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmco
cGxpc3QuZ2V0KCksICJMYWJlbCIsICJvcmcud2Via2l0LnBjbXRlc3RkYWVtb24iKTsKKyAgICB4
cGNfZGljdGlvbmFyeV9zZXRfYm9vbChwbGlzdC5nZXQoKSwgIkxhdW5jaE9ubHlPbmNlIiwgdHJ1
ZSk7CisKKyAgICB7CisgICAgICAgIGF1dG8gZW52aXJvbm1lbnRWYXJpYWJsZXMgPSBhZG9wdE9T
T2JqZWN0KHhwY19kaWN0aW9uYXJ5X2NyZWF0ZShudWxscHRyLCBudWxscHRyLCAwKSk7CisgICAg
ICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmcoZW52aXJvbm1lbnRWYXJpYWJsZXMuZ2V0KCks
ICJEWUxEX0ZSQU1FV09SS19QQVRIIiwgY3VycmVudEV4ZWN1dGFibGVEaXJlY3RvcnkoKS5nZXQo
KS5maWxlU3lzdGVtUmVwcmVzZW50YXRpb24pOworICAgICAgICB4cGNfZGljdGlvbmFyeV9zZXRf
dmFsdWUocGxpc3QuZ2V0KCksICJFbnZpcm9ubWVudFZhcmlhYmxlcyIsIGVudmlyb25tZW50VmFy
aWFibGVzLmdldCgpKTsKKyAgICB9CisgICAgeworICAgICAgICBhdXRvIG1hY2hTZXJ2aWNlcyA9
IGFkb3B0T1NPYmplY3QoeHBjX2RpY3Rpb25hcnlfY3JlYXRlKG51bGxwdHIsIG51bGxwdHIsIDAp
KTsKKyAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X2Jvb2wobWFjaFNlcnZpY2VzLmdldCgpLCAi
b3JnLndlYmtpdC5wY210ZXN0ZGFlbW9uLnNlcnZpY2UiLCB0cnVlKTsKKyAgICAgICAgeHBjX2Rp
Y3Rpb25hcnlfc2V0X3ZhbHVlKHBsaXN0LmdldCgpLCAiTWFjaFNlcnZpY2VzIiwgbWFjaFNlcnZp
Y2VzLmdldCgpKTsKKyAgICB9CisgICAgeworICAgICAgICBhdXRvIHByb2dyYW1Bcmd1bWVudHMg
PSBhZG9wdE9TT2JqZWN0KHhwY19hcnJheV9jcmVhdGUobnVsbHB0ciwgMCkpOworICAgICAgICBh
dXRvIGV4ZWN1dGFibGVMb2NhdGlvbiA9IHRlc3RQQ01EYWVtb25Mb2NhdGlvbigpOworICAgICAg
ICB4cGNfYXJyYXlfc2V0X3N0cmluZyhwcm9ncmFtQXJndW1lbnRzLmdldCgpLCBYUENfQVJSQVlf
QVBQRU5ELCBleGVjdXRhYmxlTG9jYXRpb24uZ2V0KCkuZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9u
KTsKKyAgICAgICAgeHBjX2FycmF5X3NldF9zdHJpbmcocHJvZ3JhbUFyZ3VtZW50cy5nZXQoKSwg
WFBDX0FSUkFZX0FQUEVORCwgIi0tbWFjaFNlcnZpY2VOYW1lIik7CisgICAgICAgIHhwY19hcnJh
eV9zZXRfc3RyaW5nKHByb2dyYW1Bcmd1bWVudHMuZ2V0KCksIFhQQ19BUlJBWV9BUFBFTkQsICJv
cmcud2Via2l0LnBjbXRlc3RkYWVtb24uc2VydmljZSIpOworICAgICAgICB4cGNfYXJyYXlfc2V0
X3N0cmluZyhwcm9ncmFtQXJndW1lbnRzLmdldCgpLCBYUENfQVJSQVlfQVBQRU5ELCAiLS1zdG9y
YWdlTG9jYXRpb24iKTsKKyAgICAgICAgeHBjX2FycmF5X3NldF9zdHJpbmcocHJvZ3JhbUFyZ3Vt
ZW50cy5nZXQoKSwgWFBDX0FSUkFZX0FQUEVORCwgc3RvcmFnZUxvY2F0aW9uLmZpbGVTeXN0ZW1S
ZXByZXNlbnRhdGlvbik7CisgICAgICAgIHhwY19kaWN0aW9uYXJ5X3NldF92YWx1ZShwbGlzdC5n
ZXQoKSwgIlByb2dyYW1Bcmd1bWVudHMiLCBwcm9ncmFtQXJndW1lbnRzLmdldCgpKTsKKyAgICB9
CisgICAgcmV0dXJuIHBsaXN0OworfQorCisjZWxzZQorCitzdGF0aWMgUmV0YWluUHRyPE5TRGlj
dGlvbmFyeT4gdGVzdERhZW1vblBMaXN0KE5TVVJMICpzdG9yYWdlTG9jYXRpb24pCit7CisgICAg
cmV0dXJuIEB7CisgICAgICAgIEAiTGFiZWwiIDogQCJvcmcud2Via2l0LnBjbXRlc3RkYWVtb24i
LAorICAgICAgICBAIkxhdW5jaE9ubHlPbmNlIiA6IEBZRVMsCisgICAgICAgIEAiRW52aXJvbm1l
bnRWYXJpYWJsZXMiIDogQHsgQCJEWUxEX0ZSQU1FV09SS19QQVRIIiA6IGN1cnJlbnRFeGVjdXRh
YmxlRGlyZWN0b3J5KCkuZ2V0KCkucGF0aCB9LAorICAgICAgICBAIk1hY2hTZXJ2aWNlcyIgOiBA
eyBAIm9yZy53ZWJraXQucGNtdGVzdGRhZW1vbi5zZXJ2aWNlIiA6IEBZRVMgfSwKKyAgICAgICAg
QCJQcm9ncmFtQXJndW1lbnRzIiA6IEBbCisgICAgICAgICAgICB0ZXN0UENNRGFlbW9uTG9jYXRp
b24oKS5nZXQoKS5wYXRoLAorICAgICAgICAgICAgQCItLW1hY2hTZXJ2aWNlTmFtZSIsCisgICAg
ICAgICAgICBAIm9yZy53ZWJraXQucGNtdGVzdGRhZW1vbi5zZXJ2aWNlIiwKKyAgICAgICAgICAg
IEAiLS1zdG9yYWdlTG9jYXRpb24iLAorICAgICAgICAgICAgc3RvcmFnZUxvY2F0aW9uLnBhdGgK
KyAgICAgICAgXQorICAgIH07Cit9CisKKyNlbmRpZgorCisvLyBsYXVuY2hjdGwgZG9lc24ndCBz
ZWVtIHRvIGJlIGFibGUgdG8gYmUgY2FsbGVkIGZyb20gYW4gaU9TIHNpbXVsYXRvciB1bml0IHRl
c3QgbGlrZSB0aGlzLgorI2lmIFBMQVRGT1JNKE1BQykgfHwgSEFWRShPU19MQVVOQ0hEX0pPQikK
KworVEVTVChFdmVudEF0dHJpYnV0aW9uLCBEYWVtb24pCit7CisgICAgTlNGaWxlTWFuYWdlciAq
ZmlsZU1hbmFnZXIgPSBbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl07CisgICAgTlNVUkwg
KnRlbXBEaXIgPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltOU1RlbXBvcmFyeURpcmVjdG9yeSgp
IHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIkV2ZW50QXR0cmlidXRpb25EYWVtb25U
ZXN0Il0gaXNEaXJlY3Rvcnk6WUVTXTsKKyAgICBOU0Vycm9yICplcnJvciA9IG5pbDsKKyAgICBp
ZiAoW2ZpbGVNYW5hZ2VyIGZpbGVFeGlzdHNBdFBhdGg6dGVtcERpci5wYXRoXSkKKyAgICAgICAg
W2ZpbGVNYW5hZ2VyIHJlbW92ZUl0ZW1BdFVSTDp0ZW1wRGlyIGVycm9yOiZlcnJvcl07CisgICAg
RVhQRUNUX05VTEwoZXJyb3IpOworCisgICAgYXV0byBwbGlzdCA9IHRlc3REYWVtb25QTGlzdCh0
ZW1wRGlyKTsKKyNpZiBIQVZFKE9TX0xBVU5DSERfSk9CKQorICAgIGF1dG8gbGF1bmNoREpvYiA9
IGFkb3B0TlMoW1tPU0xhdW5jaGRKb2IgYWxsb2NdIGluaXRXaXRoUGxpc3Q6cGxpc3QuZ2V0KCld
KTsKKyAgICBbbGF1bmNoREpvYiBzdWJtaXRBbmRTdGFydDomZXJyb3JdOworI2Vsc2UKKyAgICBO
U1VSTCAqcGxpc3RMb2NhdGlvbiA9IFt0ZW1wRGlyIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVu
dDpAIkRhZW1vbkluZm8ucGxpc3QiXTsKKyAgICBCT09MIHN1Y2Nlc3MgPSBbZmlsZU1hbmFnZXIg
Y3JlYXRlRGlyZWN0b3J5QXRVUkw6dGVtcERpciB3aXRoSW50ZXJtZWRpYXRlRGlyZWN0b3JpZXM6
WUVTIGF0dHJpYnV0ZXM6bmlsIGVycm9yOiZlcnJvcl07CisgICAgRVhQRUNUX1RSVUUoc3VjY2Vz
cyk7CisgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgIHN1Y2Nlc3MgPSBbcGxpc3Qgd3JpdGVU
b1VSTDpwbGlzdExvY2F0aW9uIGVycm9yOiZlcnJvcl07CisgICAgRVhQRUNUX1RSVUUoc3VjY2Vz
cyk7CisgICAgc3lzdGVtKFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAibGF1bmNoY3RsIGxv
YWQgJUAiLCBwbGlzdExvY2F0aW9uLnBhdGhdLlVURjhTdHJpbmcpOworI2VuZGlmCisgICAgRVhQ
RUNUX05VTEwoZXJyb3IpOworCisgICAgYXV0byBkYXRhU3RvcmVDb25maWd1cmF0aW9uID0gYWRv
cHROUyhbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAgZGF0YVN0
b3JlQ29uZmlndXJhdGlvbi5nZXQoKS5wY21NYWNoU2VydmljZU5hbWUgPSBAIm9yZy53ZWJraXQu
cGNtdGVzdGRhZW1vbi5zZXJ2aWNlIjsKKyAgICBhdXRvIHZpZXdDb25maWd1cmF0aW9uID0gYWRv
cHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKKyAgICB2aWV3Q29uZmlndXJhdGlv
bi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBh
bGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpkYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgp
XSkuZ2V0KCk7CisgICAgcnVuQmFzaWNFdmVudEF0dHJpYnV0aW9uVGVzdCh2aWV3Q29uZmlndXJh
dGlvbi5nZXQoKSwgW10oV0tXZWJWaWV3ICp3ZWJWaWV3LCBjb25zdCBIVFRQU2VydmVyJiBzZXJ2
ZXIpIHsKKyAgICAgICAgW3dlYlZpZXcgX2FkZEV2ZW50QXR0cmlidXRpb25XaXRoU291cmNlSUQ6
NDIgZGVzdGluYXRpb25VUkw6ZXhhbXBsZVVSTCgpIHNvdXJjZURlc2NyaXB0aW9uOkAidGVzdCBz
b3VyY2UgZGVzY3JpcHRpb24iIHB1cmNoYXNlcjpAInRlc3QgcHVyY2hhc2VyIiByZXBvcnRFbmRw
b2ludDpzZXJ2ZXIucmVxdWVzdCgpLlVSTCBvcHRpb25hbE5vbmNlOm5pbF07CisgICAgfSk7CisK
KyAgICBFWFBFQ1RfVFJVRShbZmlsZU1hbmFnZXIgZmlsZUV4aXN0c0F0UGF0aDp0ZW1wRGlyLnBh
dGhdKTsKKyAgICBbZmlsZU1hbmFnZXIgcmVtb3ZlSXRlbUF0VVJMOnRlbXBEaXIgZXJyb3I6JmVy
cm9yXTsKKyAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisKKyNpZiBIQVZFKE9TX0xBVU5DSERfSk9C
KQorICAgIFtsYXVuY2hESm9iIHJlbW92ZTomZXJyb3JdOworICAgIEVYUEVDVF9OVUxMKGVycm9y
KTsKKyNlbHNlCisgICAgc3lzdGVtKFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAibGF1bmNo
Y3RsIHVubG9hZCAlQCIsIHBsaXN0TG9jYXRpb24ucGF0aF0uVVRGOFN0cmluZyk7CisjZW5kaWYK
KyAgICBzeXN0ZW0oImtpbGxhbGwgVGVzdFBDTURhZW1vbiAtOSIpOworfQorCisjZW5kaWYgLy8g
UExBVEZPUk0oTUFDKSB8fCBIQVZFKE9TX0xBVU5DSERfSk9CKQorCiAjaWYgSEFWRShVSV9FVkVO
VF9BVFRSSUJVVElPTikKIAogVEVTVChFdmVudEF0dHJpYnV0aW9uLCBCYXNpY1dpdGhJT1NTUEkp
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RQQ01EYWVtb25NYWlu
LmMgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RQQ01EYWVtb25NYWluLmMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZGE4NjEyM2UwZDdiYzQ4Nzk2YzJhODNiMzc2NDA2ZjY0MjE0NjdjMwotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFBDTURhZW1vbk1haW4uYwpA
QCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgPFdlYktpdC9XS01haW4uaD4K
KworaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBhcmd2KQoreworICAgIFdLUENNRGFl
bW9uTWFpbihhcmdjLCBhcmd2KTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438057</attachid>
            <date>2021-09-13 11:12:55 -0700</date>
            <delta_ts>2021-09-13 14:24:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230191-20210913111254.patch</filename>
            <type>text/plain</type>
            <size>57092</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRjMDJmZDZhNThjY2I4MmEzNmJhZDE1
OGYwZTFiMTQ3NDk2ZTRkYjguLjc5ZDk4MWM2ZmQ4MGY4MDA5Y2M0NWJlMTcxYjI2ODg1MGFhNjA4
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDktMTMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0IHRoYXQgdXNl
cyBQQ00gZGFlbW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzAxOTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHd0Zi9QbGF0Zm9ybUhhdmUuaDoKKyAgICAgICAgKiB3dGYvc3BpL2Rhcndpbi9YUENT
UEkuaDoKKwogMjAyMS0wOS0xMSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0dMSUJdIE1lZGlhU2Vzc2lvbiBpcyBub3QgZW5hYmxlZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA2MGM4ODdjNGEwNTVhYzhmYjY5NTA2YmU1ODk1OTE5NDE5YTc1ZWVmLi42Y2I5YmUzY2Yz
YzNiZjE0MzkyMDgwM2Y0NmExYWYxMDE2MTQxOTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBA
CisyMDIxLTA5LTEzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgQWRkIHVuaXQgdGVzdCB0aGF0IHVzZXMgUENNIGRhZW1vbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMTkxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSSBtYWtlIGEgd2F5IHRvIHNw
ZWNpZnkgd2hhdCBtYWNoIHNlcnZpY2UgdG8gY29ubmVjdCB0bywKKyAgICAgICAgdGhlbiBJIHRl
bXBvcmFyaWx5IHJlZ2lzdGVyIGFuIGV4ZWN1dGFibGUgd2l0aCBsYXVuY2hkIHRvIHByb3ZpZGUg
dGhhdCBtYWNoIHNlcnZpY2UsCisgICAgICAgIHRoZW4gSSBydW4gdGhlIHRlc3QgY29tbXVuaWNh
dGluZyB3aXRoIHRoYXQgZXhlY3V0YWJsZS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bWFuYWdlck9yUHJveHkpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmVu
Y29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
Q3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UENNOjpDb25uZWN0aW9uOjpDb25uZWN0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6UENNOjpDb25uZWN0aW9uOjpzZW5kIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UENN
OjpDb25uZWN0aW9uOjpzZW5kV2l0aFJlcGx5IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UENN
OjpDb25uZWN0aW9uOjpjb25uZWN0aW9uVG9EYWVtb24pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpQQ006OkNvbm5lY3Rpb246OnNlbmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQ
Q006OkNvbm5lY3Rpb246OnNlbmRXaXRoUmVwbHkpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29ubmVjdGlvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBDTTo6bWFuYWdlclBvaW50ZXIpOgorICAgICAgICAoV2ViS2l0OjpQQ006
OmluaXRpYWxpemVQQ01TdG9yYWdlSW5EaXJlY3RvcnkpOgorICAgICAgICAoV2ViS2l0OjpQQ006
OmRhZW1vbk1hbmFnZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpNYW5h
Z2VyUHJveHk6OnNlbmRNZXNzYWdlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UENNOjpNYW5h
Z2VyUHJveHk6OnNlbmRNZXNzYWdlV2l0aFJlcGx5IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
UENNOjpNYW5hZ2VyUHJveHk6Ok1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6
c2VuZE1lc3NhZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQQ006OnNlbmRNZXNzYWdl
V2l0aFJlcGx5KTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50RGFlbW9uQ29ubmVjdGlvbkNvY29hLm1tOgorICAgICAgICAoV2Vi
S2l0OjpQQ006OkNvbm5lY3Rpb246OkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQQ006
OkNvbm5lY3Rpb246OmluaXRpYWxpemVDb25uZWN0aW9uSWZOZWVkZWQgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb246OnNlbmQgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpQQ006OkNvbm5lY3Rpb246OnNlbmRXaXRoUmVwbHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpQQ006OkNvbm5lY3Rpb246OmNvbm5lY3Rpb25Ub0RhZW1vbik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OlBDTTo6Q29ubmVjdGlvbjo6c2VuZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OlBDTTo6Q29ubmVjdGlvbjo6c2VuZFdpdGhSZXBseSk6IERlbGV0ZWQuCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2IuaW46
CisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvRGFlbW9uL1BDTURh
ZW1vbkVudHJ5UG9pbnQubW06CisgICAgICAgIChXZWJLaXQ6OnN0YXJ0TGlzdGVuaW5nRm9yTWFj
aFNlcnZpY2VDb25uZWN0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6OnJlZ2lzdGVyU2NoZWR1bGVk
QWN0aXZpdHlIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6UENNRGFlbW9uTWFpbik6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uIHBjbU1hY2hTZXJ2aWNlTmFtZV0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbiBzZXRQQ01NYWNoU2VydmljZU5hbWU6XSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6
Y29weSBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uOjpzZXRQQ01NYWNoU2VydmljZU5hbWUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6cGNtTWFjaFNlcnZpY2VOYW1lIGNvbnN0KToK
KwogMjAyMS0wOS0xMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgog
CiAgICAgICAgIFtDb2NvYV0gRHJhd2luZyB0aGUgcm91bmRlZCBzeXN0ZW0gdWkgZm9udCBpbnRv
IGNhbnZhcyBjYXVzZXMgYSBjcmFzaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZv
cm1IYXZlLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAppbmRleCA2OWNkYjVlYWVj
ZTk2OGY5ZDU2YjlmZmI2ZGUwMjQ3ODE4MTViYzlmLi5iMDY2ZTVmYzEzMWZjNGU4YjdmYjk1Njc5
NTM3OTk4OWY2YTg1YmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaApAQCAtODEzLDYgKzgxMyw3IEBA
CiAgICAgfHwgKFBMQVRGT1JNKEFQUExFVFYpICYmIF9fVFZfT1NfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTUwMDAwKQogI2RlZmluZSBIQVZFX05FVFdPUktfTE9BREVSIDEKICNkZWZpbmUgSEFW
RV9TRUNfVFJVU1RfQ09QWV9DRVJUSUZJQ0FURV9DSEFJTiAxCisjZGVmaW5lIEhBVkVfT1NfTEFV
TkNIRF9KT0IgMQogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkgJiYgX19JUEhP
TkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTQwMDAwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oIGIvU291cmNlL1dURi93dGYvc3BpL2Rhcndpbi9Y
UENTUEkuaAppbmRleCAzYjU5Y2ZjZTcwN2M2MTUyNjQxZDFlMzEwOTRmYTkwNTI5YmU1NmU1Li5j
NDE3ZTE5MDVmOWRmMGNlNGUxZDdmYzE4NjQ3ZjBlZGFmZTUzZTE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3NwaS9k
YXJ3aW4vWFBDU1BJLmgKQEAgLTExNCw3ICsxMTQsMTkgQEAgZXh0ZXJuICJDIiB2b2lkIHhwY19h
Y3Rpdml0eV9yZWdpc3Rlcihjb25zdCBjaGFyICppZGVudGlmaWVyLCB4cGNfb2JqZWN0X3QgY3Jp
dGUKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2luY2x1ZGUgPG9zL3RyYW5zYWN0aW9u
X3ByaXZhdGUuaD4KICNpbmNsdWRlIDx4cGMvcHJpdmF0ZS5oPgotI2Vsc2UKKyNpZiBIQVZFKE9T
X0xBVU5DSERfSk9CKQorI2luY2x1ZGUgPEFwcFNlcnZlclN1cHBvcnQvT1NMYXVuY2hkSm9iLmg+
CisjZW5kaWYgLy8gSEFWRShPU19MQVVOQ0hEX0pPQikKKyNlbHNlIC8vIFVTRShBUFBMRV9JTlRF
Uk5BTF9TREspCisKKyNpZmRlZiBfX09CSkNfXworI2lmIEhBVkUoT1NfTEFVTkNIRF9KT0IpCitA
aW50ZXJmYWNlIE9TTGF1bmNoZEpvYiA6IE5TT2JqZWN0CistIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhQbGlzdDooeHBjX29iamVjdF90KXBsaXN0OworLSAoQk9PTClzdWJtaXQ6KE5TRXJyb3IgKiop
ZXJyb3JPdXQ7CitAZW5kCisjZW5kaWYgLy8gSEFWRShPU19MQVVOQ0hEX0pPQikKKyNlbmRpZiAv
LyBfX09CSkNfXwogCiBleHRlcm4gIkMiIGNvbnN0IGNoYXIgKiBjb25zdCBYUENfQUNUSVZJVFlf
UkFORE9NX0lOSVRJQUxfREVMQVk7CiBleHRlcm4gIkMiIGNvbnN0IGNoYXIgKiBjb25zdCBYUENf
QUNUSVZJVFlfUkVRVUlSRV9ORVRXT1JLX0NPTk5FQ1RJVklUWTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXggMDc4ZDgzZTE5Mzg5YjNj
NWY0NTAxZmM5MWMwMjAyMDA4MTk2N2U4Ny4uMDM1NzU5ODBmNTVjZTY2YTFmZTAwNjYyM2ZiZTI2
MmIwMGNhYWU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5jcHAKQEAgLTk1LDExICs5NSw4IEBAIHN0YXRpYyBTdHJpbmcgcGNtU3RvcmVEaXJl
Y3RvcnkoY29uc3QgTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIGNvbnN0IFN0cmluZyYgcmVzCiAK
IHN0YXRpYyBVbmlxdWVSZWY8UENNOjpNYW5hZ2VySW50ZXJmYWNlPiBtYW5hZ2VyT3JQcm94eShO
ZXR3b3JrU2Vzc2lvbiYgbmV0d29ya1Nlc3Npb24sIE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJv
Y2VzcywgY29uc3QgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMp
CiB7Ci0gICAgLy8gRklYTUU6IFR1cm4gdGhpcyBvbiBhbmQgcmVtb3ZlIE1hbmFnZXJJbnRlcmZh
Y2Ugb25jZSByZGFyOi8vODA3MDEwOTggaXMgY2xvc2VkLgotICAgIGNvbnN0ZXhwciBib29sIHVz
ZVBDTURhZW1vbiA9IGZhbHNlOwotCi0gICAgaWYgKHVzZVBDTURhZW1vbikKLSAgICAgICAgcmV0
dXJuIG1ha2VVbmlxdWVSZWY8UENNOjpNYW5hZ2VyUHJveHk+KCk7CisgICAgaWYgKCFwYXJhbWV0
ZXJzLnBjbU1hY2hTZXJ2aWNlTmFtZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBtYWtlVW5p
cXVlUmVmPFBDTTo6TWFuYWdlclByb3h5PihwYXJhbWV0ZXJzLnBjbU1hY2hTZXJ2aWNlTmFtZSk7
CiAgICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
PihtYWtlVW5pcXVlUmVmPFBDTTo6Q2xpZW50SW1wbD4obmV0d29ya1Nlc3Npb24sIG5ldHdvcmtQ
cm9jZXNzKSwgcGNtU3RvcmVEaXJlY3RvcnkobmV0d29ya1Nlc3Npb24sIHBhcmFtZXRlcnMucmVz
b3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuZGlyZWN0b3J5LCBwYXJhbWV0ZXJzLnJlc291
cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLnByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmFn
ZURpcmVjdG9yeSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4
IGI3N2Y5MTgxMTQ5YjgzY2RhOGZhOTMyMmFiNTQ1Yjk3YWQ2NzQ0NjMuLjllOGFiZmQ5Y2FiZWY5
ZGZhNDlmZGFkNGFjNjdkN2U4NmVkMDJmNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRl
cnMuY3BwCkBAIC04Nyw2ICs4Nyw3IEBAIHZvaWQgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8
PCBhcHBIYXNSZXF1ZXN0ZWRDcm9zc1dlYnNpdGVUcmFja2luZ1Blcm1pc3Npb247CiAgICAgZW5j
b2RlciA8PCB1c2VOZXR3b3JrTG9hZGVyOwogICAgIGVuY29kZXIgPDwgYWxsb3dzSFNUU1dpdGhV
bnRydXN0ZWRSb290Q2VydGlmaWNhdGU7CisgICAgZW5jb2RlciA8PCBwY21NYWNoU2VydmljZU5h
bWU7CiAgICAgZW5jb2RlciA8PCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVyczsKIH0K
IApAQCAtMjkzLDEyICsyOTQsMTcgQEAgc3RkOjpvcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0
aW9uUGFyYW1ldGVycz4gTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMKICAgICBkZWNv
ZGVyID4+IGFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlOwogICAgIGlmICgh
YWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUpCiAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7Ci0gICAgCisKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gcGNtTWFjaFNl
cnZpY2VOYW1lOworICAgIGRlY29kZXIgPj4gcGNtTWFjaFNlcnZpY2VOYW1lOworICAgIGlmICgh
cGNtTWFjaFNlcnZpY2VOYW1lKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCiAgICAg
c3RkOjpvcHRpb25hbDxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycz4gcmVzb3VyY2VM
b2FkU3RhdGlzdGljc1BhcmFtZXRlcnM7CiAgICAgZGVjb2RlciA+PiByZXNvdXJjZUxvYWRTdGF0
aXN0aWNzUGFyYW1ldGVyczsKICAgICBpZiAoIXJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0
ZXJzKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIAorCiAgICAgcmV0dXJuIHt7
CiAgICAgICAgICpzZXNzaW9uSUQKICAgICAgICAgLCBXVEZNb3ZlKCpib3VuZEludGVyZmFjZUlk
ZW50aWZpZXIpCkBAIC0zNDcsNiArMzUzLDcgQEAgc3RkOjpvcHRpb25hbDxOZXR3b3JrU2Vzc2lv
bkNyZWF0aW9uUGFyYW1ldGVycz4gTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMKICAg
ICAgICAgLCBXVEZNb3ZlKCphcHBIYXNSZXF1ZXN0ZWRDcm9zc1dlYnNpdGVUcmFja2luZ1Blcm1p
c3Npb24pCiAgICAgICAgICwgV1RGTW92ZSgqdXNlTmV0d29ya0xvYWRlcikKICAgICAgICAgLCBX
VEZNb3ZlKCphbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSkKKyAgICAgICAg
LCBXVEZNb3ZlKCpwY21NYWNoU2VydmljZU5hbWUpCiAgICAgICAgICwgV1RGTW92ZSgqcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMpCiAgICAgfX07CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJz
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKaW5kZXggZmI0YTM4NzdiMDljZjQzZGRlNjY1ZTRkNjMzOTFlZjNlZGM3NmRm
Mi4uNWI2NGY2YjI5ZDRmZTVlZjIzMWZkNDNkYjhiM2I3ZjEwMTU5MjBmMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1l
dGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25D
cmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTAyLDYgKzEwMiw3IEBAIHN0cnVjdCBOZXR3b3JrU2Vz
c2lvbkNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgYm9vbCBhcHBIYXNSZXF1ZXN0ZWRDcm9zc1dl
YnNpdGVUcmFja2luZ1Blcm1pc3Npb24geyBmYWxzZSB9OwogICAgIGJvb2wgdXNlTmV0d29ya0xv
YWRlciB7IGZhbHNlIH07CiAgICAgYm9vbCBhbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0
aWZpY2F0ZSB7IGZhbHNlIH07CisgICAgU3RyaW5nIHBjbU1hY2hTZXJ2aWNlTmFtZTsKIAogICAg
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFN0YXRpc3RpY3NQ
YXJhbWV0ZXJzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmNwcAppbmRleCA1NjNhMDM2MGRi
NTMxOTgxZmU2NzRiMjYzYWY0MDMyMzFkOTE5ODVlLi42NTAyOWE2ODMyYmRlZGExZmQwYTRlMWEz
ZmFhOWM3MWVjZTM1Y2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uY3BwCkBAIC0zNCwxOCAr
MzQsMTcgQEAgbmFtZXNwYWNlIFBDTSB7CiAKICNpZiAhUExBVEZPUk0oQ09DT0EpCiAKLUNvbm5l
Y3Rpb24gQ29ubmVjdGlvbjo6Y29ubmVjdGlvblRvRGFlbW9uKCkKK0Nvbm5lY3Rpb246OkNvbm5l
Y3Rpb24oQ1N0cmluZyYmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIHsg
fTsKIH0KIAotdm9pZCBDb25uZWN0aW9uOjpzZW5kKE1lc3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2Fn
ZSYmKQordm9pZCBDb25uZWN0aW9uOjpzZW5kKE1lc3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2FnZSYm
KSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ29ubmVjdGlvbjo6
c2VuZFdpdGhSZXBseShNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChFbmNvZGVkTWVzc2FnZSYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQg
Q29ubmVjdGlvbjo6c2VuZFdpdGhSZXBseShNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFbmNvZGVkTWVzc2FnZSYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIGNvbXBsZXRpb25IYW5k
bGVyKHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaAppbmRleCBhZjNhOTEwMjFjYmU0MDIwN2U1
MmEyNWJjZjUwNTk3NmM4ZmI2YmI0Li4yOTE3Zjc1NWM5MjE3NzU3ODc0MjBmZDllOTFlM2IzZjM1
YWU0OWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlIDx3dGYvT1NPYmplY3RQdHIuaD4K
QEAgLTM5LDE4ICs0MCwxOCBAQCBuYW1lc3BhY2UgUENNIHsKIGVudW0gY2xhc3MgTWVzc2FnZVR5
cGUgOiB1aW50OF90OwogdXNpbmcgRW5jb2RlZE1lc3NhZ2UgPSBWZWN0b3I8dWludDhfdD47CiAK
LWNsYXNzIENvbm5lY3Rpb24geworY2xhc3MgQ29ubmVjdGlvbiA6IHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxDb25uZWN0aW9uPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIENvbm5lY3Rpb24gY29ubmVj
dGlvblRvRGFlbW9uKCk7CisgICAgQ29ubmVjdGlvbihDU3RyaW5nJiYgbWFjaFNlcnZpY2VOYW1l
KTsKIAotICAgIHZvaWQgc2VuZChNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJik7Ci0gICAg
dm9pZCBzZW5kV2l0aFJlcGx5KE1lc3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2FnZSYmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEVuY29kZWRNZXNzYWdlJiYpPiYmKTsKKyAgICB2b2lkIHNlbmQoTWVz
c2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYpIGNvbnN0OworICAgIHZvaWQgc2VuZFdpdGhSZXBs
eShNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
bmNvZGVkTWVzc2FnZSYmKT4mJikgY29uc3Q7CiAKIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09D
T0EpCi0gICAgQ29ubmVjdGlvbihPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiYmKTsKLQot
ICAgIE9TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+IG1fY29ubmVjdGlvbjsKKyAgICB2b2lk
IGluaXRpYWxpemVDb25uZWN0aW9uSWZOZWVkZWQoKSBjb25zdDsKKyAgICBjb25zdCBDU3RyaW5n
IG1fbWFjaFNlcnZpY2VOYW1lOworICAgIG11dGFibGUgT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rp
b25fdD4gbV9jb25uZWN0aW9uOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
ckludGVyZmFjZS5jcHAKaW5kZXggNWQxM2U3NGMxZGQyNjg4NzhmMjljOTcyZGE1ZjcxYzc5MTE2
MjJlYi4uNjdhNDY5MzEzY2M4MmNiZmZhNDY0MWIwODRhZWQ5YWE3MDIyNzJjNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcApAQCAtMTY3LDExICsxNjcsMjIgQEAgYm9v
bCBtZXNzYWdlVHlwZVNlbmRzUmVwbHkoTWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUpCiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCitzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlcj4mIG1hbmFnZXJQb2ludGVyKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8c3RkOjp1bmlxdWVfcHRyPFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcj4+IG1h
bmFnZXI7CisgICAgcmV0dXJuIG1hbmFnZXIuZ2V0KCk7Cit9CisKK3ZvaWQgaW5pdGlhbGl6ZVBD
TVN0b3JhZ2VJbkRpcmVjdG9yeShjb25zdCBTdHJpbmcmIHN0b3JhZ2VEaXJlY3RvcnkpCit7Cisg
ICAgQVNTRVJUKCFtYW5hZ2VyUG9pbnRlcigpKTsKKyAgICBtYW5hZ2VyUG9pbnRlcigpID0gbWFr
ZVVuaXF1ZTxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI+KG1ha2VVbmlxdWVSZWY8UENN
OjpEYWVtb25DbGllbnQ+KCksIHN0b3JhZ2VEaXJlY3RvcnkpOworfQorCiBzdGF0aWMgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyJiBkYWVtb25NYW5hZ2VyKCkKIHsKLSAgICAvLyBGSVhN
RTogR2l2ZSB0aGUgbWFuYWdlciBhIHZhbGlkIHN0b3JhZ2UgZGlyZWN0b3J5LgotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI+IGluc3RhbmNl
KG1ha2VVbmlxdWVSZWY8UENNOjpEYWVtb25DbGllbnQ+KCksIFN0cmluZygpKTsKLSAgICByZXR1
cm4gaW5zdGFuY2UuZ2V0KCk7CisgICAgQVNTRVJUKG1hbmFnZXJQb2ludGVyKCkpOworICAgIHJl
dHVybiAqbWFuYWdlclBvaW50ZXIoKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgSW5mbz4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oCmluZGV4IDQwMzYyZGZhMjIxNGVjODM3ZTc1
N2U5NGJjZDRhZThhM2NiMjUwZDkuLjVjZjRlM2RlMjFkMGNjMzk5YzIzYWQwOTA3YTMzZDhlZWYw
N2I1YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaApAQCAtMTAxLDYgKzEw
MSw4IEBAIHVzaW5nIEVuY29kZWRNZXNzYWdlID0gVmVjdG9yPHVpbnQ4X3Q+Owogdm9pZCBkZWNv
ZGVNZXNzYWdlQW5kU2VuZFRvTWFuYWdlcihNZXNzYWdlVHlwZSwgVmVjdG9yPHVpbnQ4X3Q+JiYg
bWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8dWludDhfdD4mJik+JiYpOwog
Ym9vbCBtZXNzYWdlVHlwZVNlbmRzUmVwbHkoTWVzc2FnZVR5cGUpOwogCit2b2lkIGluaXRpYWxp
emVQQ01TdG9yYWdlSW5EaXJlY3RvcnkoY29uc3QgU3RyaW5nJik7CisKIH0gLy8gbmFtZXNwYWNl
IFBDTQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5j
cHAKaW5kZXggMTA4MjY1MmIwMGUyNzEzNGViNDFmMGVlMjFhODZhNTgxOTU0ODZmZC4uOWJjYjMx
MWU0NThiMTZlYmU3M2Q0M2YyM2I2MmEzMWYzZGY0ZDg3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXJQcm94eS5jcHAKQEAgLTM1LDExICszNSwxMSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIG5hbWVz
cGFjZSBQQ00gewogCiB0ZW1wbGF0ZTxNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgdHlwZW5hbWUu
Li4gQXJncz4KLXZvaWQgc2VuZE1lc3NhZ2UoQXJncyYmLi4uIGFyZ3MpCit2b2lkIE1hbmFnZXJQ
cm94eTo6c2VuZE1lc3NhZ2UoQXJncyYmLi4uIGFyZ3MpIGNvbnN0CiB7CiAgICAgRW5jb2RlciBl
bmNvZGVyOwogICAgIGVuY29kZXIuZW5jb2RlKHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7
Ci0gICAgQ29ubmVjdGlvbjo6Y29ubmVjdGlvblRvRGFlbW9uKCkuc2VuZChtZXNzYWdlVHlwZSwg
ZW5jb2Rlci50YWtlQnVmZmVyKCkpOworICAgIG1fY29ubmVjdGlvbi5zZW5kKG1lc3NhZ2VUeXBl
LCBlbmNvZGVyLnRha2VCdWZmZXIoKSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+
IHN0cnVjdCBSZXBseUNhbGxlcjsKQEAgLTYxLDE2ICs2MSwxOSBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBSZXBseUNhbGxlcjxTdHJpbmc+IHsKIH07CiAKIHRlbXBsYXRlPE1lc3NhZ2VUeXBlIG1lc3Nh
Z2VUeXBlLCB0eXBlbmFtZS4uLiBBcmdzLCB0eXBlbmFtZS4uLiBSZXBseUFyZ3M+Ci12b2lkIHNl
bmRNZXNzYWdlV2l0aFJlcGx5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVwbHlBcmdzLi4uKT4m
JiBjb21wbGV0aW9uSGFuZGxlciwgQXJncyYmLi4uIGFyZ3MpCit2b2lkIE1hbmFnZXJQcm94eTo6
c2VuZE1lc3NhZ2VXaXRoUmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXBseUFyZ3MuLi4p
PiYmIGNvbXBsZXRpb25IYW5kbGVyLCBBcmdzJiYuLi4gYXJncykgY29uc3QKIHsKICAgICBFbmNv
ZGVyIGVuY29kZXI7CiAgICAgZW5jb2Rlci5lbmNvZGUoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3Mp
Li4uKTsKLSAgICBDb25uZWN0aW9uOjpjb25uZWN0aW9uVG9EYWVtb24oKS5zZW5kV2l0aFJlcGx5
KG1lc3NhZ2VUeXBlLCBlbmNvZGVyLnRha2VCdWZmZXIoKSwgW2NvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChhdXRvIHJlcGx5QnVmZmVyKSBtdXRhYmxlIHsK
KyAgICBtX2Nvbm5lY3Rpb24uc2VuZFdpdGhSZXBseShtZXNzYWdlVHlwZSwgZW5jb2Rlci50YWtl
QnVmZmVyKCksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XSAoYXV0byByZXBseUJ1ZmZlcikgbXV0YWJsZSB7CiAgICAgICAgIERlY29kZXIgZGVjb2RlcihX
VEZNb3ZlKHJlcGx5QnVmZmVyKSk7CiAgICAgICAgIFJlcGx5Q2FsbGVyPFJlcGx5QXJncy4uLj46
OmNhbGxSZXBseShXVEZNb3ZlKGRlY29kZXIpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
CiAgICAgfSk7CiB9CiAKK01hbmFnZXJQcm94eTo6TWFuYWdlclByb3h5KGNvbnN0IFN0cmluZyYg
bWFjaFNlcnZpY2VOYW1lKQorICAgIDogbV9jb25uZWN0aW9uKG1hY2hTZXJ2aWNlTmFtZS51dGY4
KCkpIHsgfQorCiB2b2lkIE1hbmFnZXJQcm94eTo6c3RvcmVVbmF0dHJpYnV0ZWQoV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBwY20pCiB7CiAgICAgc2VuZE1lc3NhZ2U8TWVzc2Fn
ZVR5cGU6OlN0b3JlVW5hdHRyaWJ1dGVkPihwY20pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5o
CmluZGV4IDE1MTEwOTg3Njg5NDE3YTNiMTg2YTI0MjAzY2MxY2MzNjI3NmJmMWYuLjdjMGFmMGY2
MzkwZDM2Y2RjMWZhNmI2MTA0YzM4NGI2MzY3NWU1MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclBy
b3h5LmgKQEAgLTI1LDggKzI1LDEwIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmgiCiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2Mu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CkBAIC0zNSw2ICszNyw4IEBAIG5hbWVzcGFjZSBQQ00gewogY2xhc3MgTWFuYWdlclByb3h5IDog
cHVibGljIE1hbmFnZXJJbnRlcmZhY2UgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgorICAgIE1hbmFnZXJQcm94eShjb25zdCBTdHJpbmcmIG1hY2hTZXJ2aWNlTmFtZSk7
CisKICAgICB2b2lkIHN0b3JlVW5hdHRyaWJ1dGVkKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50JiYpIGZpbmFsOwogICAgIHZvaWQgaGFuZGxlQXR0cmlidXRpb24oV2ViQ29yZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiwgY29uc3QgVVJM
JiByZXF1ZXN0VVJMLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHJlZGlyZWN0RG9tYWlu
LCBjb25zdCBVUkwmIGZpcnN0UGFydHlVUkwpIGZpbmFsOwogICAgIHZvaWQgY2xlYXIoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKQEAgLTUzLDYgKzU3LDE0IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcoKSBmaW5hbDsKICAgICB2
b2lkIGRlc3Ryb3lTdG9yZUZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBm
aW5hbDsKICAgICB2b2lkIGFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGlu
Zyhjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKSBmaW5hbDsKKworcHJpdmF0ZToKKyAg
ICB0ZW1wbGF0ZTxNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgdHlwZW5hbWUuLi4gQXJncz4KKyAg
ICB2b2lkIHNlbmRNZXNzYWdlKEFyZ3MmJi4uLikgY29uc3Q7CisgICAgdGVtcGxhdGU8TWVzc2Fn
ZVR5cGUgbWVzc2FnZVR5cGUsIHR5cGVuYW1lLi4uIEFyZ3MsIHR5cGVuYW1lLi4uIFJlcGx5QXJn
cz4KKyAgICB2b2lkIHNlbmRNZXNzYWdlV2l0aFJlcGx5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
UmVwbHlBcmdzLi4uKT4mJiwgQXJncyYmLi4uKSBjb25zdDsKKworICAgIENvbm5lY3Rpb24gbV9j
b25uZWN0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgUENNCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50RGFlbW9uQ29ubmVjdGlvbkNvY29hLm1tIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudERhZW1vbkNvbm5lY3Rpb25Db2NvYS5tbQppbmRleCA2MWI1ODUwNjY1OGEz
Zjk1MzVlZWZiMWE2MDVhMjU1ZDg3MjQ3NzFhLi4xYzZlNmJmZTczMTUzOWVhMTE4NDM3M2E4Y2U2
YmE1NWUyYTljOWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGFlbW9u
Q29ubmVjdGlvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYWVtb25D
b25uZWN0aW9uQ29jb2EubW0KQEAgLTMzLDI2ICszMywyNSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogbmFtZXNwYWNlIFBDTSB7CiAKLUNvbm5lY3Rpb246OkNvbm5lY3Rpb24oT1NPYmplY3RQdHI8
eHBjX2Nvbm5lY3Rpb25fdD4mJiBjb25uZWN0aW9uKQotICAgIDogbV9jb25uZWN0aW9uKFdURk1v
dmUoY29ubmVjdGlvbikpIHsgfQorQ29ubmVjdGlvbjo6Q29ubmVjdGlvbihDU3RyaW5nJiYgbWFj
aFNlcnZpY2VOYW1lKQorICAgIDogbV9tYWNoU2VydmljZU5hbWUoV1RGTW92ZShtYWNoU2Vydmlj
ZU5hbWUpKSB7IH0KIAotQ29ubmVjdGlvbiBDb25uZWN0aW9uOjpjb25uZWN0aW9uVG9EYWVtb24o
KQordm9pZCBDb25uZWN0aW9uOjppbml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVkKCkgY29uc3QK
IHsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90Pj4gY29ubmVjdGlvbjsKLSAgICBpZiAo
IWNvbm5lY3Rpb24uZ2V0KCkpIHsKLSAgICAgICAgY29ubmVjdGlvbi5nZXQoKSA9IGFkb3B0T1NP
YmplY3QoeHBjX2Nvbm5lY3Rpb25fY3JlYXRlX21hY2hfc2VydmljZSgiY29tLmFwcGxlLndlYmtp
dC5hZGF0dHJpYnV0aW9uZC5zZXJ2aWNlIiwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgMCkp
OwotICAgICAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihjb25uZWN0aW9uLmdl
dCgpLmdldCgpLCBeKHhwY19vYmplY3RfdCBldmVudCkgewotICAgICAgICAgICAgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKLSAgICAgICAgICAgIGlmIChldmVudCA9PSBYUENfRVJST1JfQ09O
TkVDVElPTl9JTlRFUlJVUFRFRCkgewotICAgICAgICAgICAgICAgIC8vIERhZW1vbiBjcmFzaGVk
LCB3ZSB3aWxsIG5lZWQgdG8gbWFrZSBhIG5ldyBjb25uZWN0aW9uIHRvIGEgbmV3IGluc3RhbmNl
IG9mIHRoZSBkYWVtb24uCi0gICAgICAgICAgICAgICAgY29ubmVjdGlvbi5nZXQoKSA9IG51bGxw
dHI7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIHhwY19jb25uZWN0aW9uX2FjdGl2YXRlKGNvbm5l
Y3Rpb24uZ2V0KCkuZ2V0KCkpOwotICAgIH0KLSAgICByZXR1cm4gQ29ubmVjdGlvbihPU09iamVj
dFB0cjx4cGNfY29ubmVjdGlvbl90Pihjb25uZWN0aW9uLmdldCgpKSk7CisgICAgaWYgKG1fY29u
bmVjdGlvbikKKyAgICAgICAgcmV0dXJuOworICAgIG1fY29ubmVjdGlvbiA9IGFkb3B0T1NPYmpl
Y3QoeHBjX2Nvbm5lY3Rpb25fY3JlYXRlX21hY2hfc2VydmljZShtX21hY2hTZXJ2aWNlTmFtZS5k
YXRhKCksIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIDApKTsKKyAgICB4cGNfY29ubmVjdGlv
bl9zZXRfZXZlbnRfaGFuZGxlcihtX2Nvbm5lY3Rpb24uZ2V0KCksIFt3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKCp0aGlzKV0oeHBjX29iamVjdF90IGV2ZW50KSB7CisgICAgICAgIGlmICghd2Vha1Ro
aXMpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlmIChldmVudCA9PSBYUENfRVJST1Jf
Q09OTkVDVElPTl9JTlZBTElEKQorICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJGYWlsZWQgdG8g
Y29ubmVjdCB0byBtYWNoIHNlcnZpY2UgJXMsIGxpa2VseSBiZWNhdXNlIGl0IGlzIG5vdCByZWdp
c3RlcmVkIHdpdGggbGF1bmNoZCIsIHdlYWtUaGlzLT5tX21hY2hTZXJ2aWNlTmFtZS5kYXRhKCkp
OworICAgICAgICBpZiAoZXZlbnQgPT0gWFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5URVJSVVBURUQp
IHsKKyAgICAgICAgICAgIC8vIERhZW1vbiBjcmFzaGVkLCB3ZSB3aWxsIG5lZWQgdG8gbWFrZSBh
IG5ldyBjb25uZWN0aW9uIHRvIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBkYWVtb24uCisgICAgICAg
ICAgICB3ZWFrVGhpcy0+bV9jb25uZWN0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0p
OworICAgIHhwY19jb25uZWN0aW9uX2FjdGl2YXRlKG1fY29ubmVjdGlvbi5nZXQoKSk7CiB9CiAK
IHN0YXRpYyBPU09iamVjdFB0cjx4cGNfb2JqZWN0X3Q+IGRpY3Rpb25hcnlGcm9tTWVzc2FnZShN
ZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiBtZXNzYWdlKQpAQCAtNjMs
MjUgKzYyLDIyIEBAIHN0YXRpYyBPU09iamVjdFB0cjx4cGNfb2JqZWN0X3Q+IGRpY3Rpb25hcnlG
cm9tTWVzc2FnZShNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwKICAgICByZXR1cm4gZGljdGlvbmFy
eTsKIH0KIAotdm9pZCBDb25uZWN0aW9uOjpzZW5kKE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlLCBF
bmNvZGVkTWVzc2FnZSYmIG1lc3NhZ2UpCit2b2lkIENvbm5lY3Rpb246OnNlbmQoTWVzc2FnZVR5
cGUgbWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYgbWVzc2FnZSkgY29uc3QKIHsKLSAgICBp
ZiAoIW1fY29ubmVjdGlvbikgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgIGlu
aXRpYWxpemVDb25uZWN0aW9uSWZOZWVkZWQoKTsKIAogICAgIHhwY19jb25uZWN0aW9uX3NlbmRf
bWVzc2FnZShtX2Nvbm5lY3Rpb24uZ2V0KCksIGRpY3Rpb25hcnlGcm9tTWVzc2FnZShtZXNzYWdl
VHlwZSwgV1RGTW92ZShtZXNzYWdlKSkuZ2V0KCkpOwogfQogCi12b2lkIENvbm5lY3Rpb246OnNl
bmRXaXRoUmVwbHkoTWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYgbWVz
c2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFbmNvZGVkTWVzc2FnZSYmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgQ29ubmVjdGlvbjo6c2VuZFdpdGhSZXBseShNZXNzYWdlVHlwZSBt
ZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEVuY29kZWRNZXNzYWdlJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAogewotICAg
IGlmICghbV9jb25uZWN0aW9uKSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
ICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKLSAgICB9CisgICAgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKKyAgICBpbml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVkKCk7CiAK
ICAgICBhdXRvIGRpY3Rpb25hcnkgPSBkaWN0aW9uYXJ5RnJvbU1lc3NhZ2UobWVzc2FnZVR5cGUs
IFdURk1vdmUobWVzc2FnZSkpOwogICAgIHhwY19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZV93aXRo
X3JlcGx5KG1fY29ubmVjdGlvbi5nZXQoKSwgZGljdGlvbmFyeS5nZXQoKSwgZGlzcGF0Y2hfZ2V0
X21haW5fcXVldWUoKSwgbWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXSAoeHBjX29iamVjdF90IHJlcGx5KSBtdXRhYmxlIHsKKyAgICAg
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAgICAgaWYgKHhwY19nZXRfdHlwZShy
ZXBseSkgIT0gWFBDX1RZUEVfRElDVElPTkFSWSkgewogICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJL
aXQuTmV0d29ya1Byb2Nlc3Muc2IuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL21h
Yy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiLmluCmluZGV4IDE5NzRiOGU5ZjI1
OWFlZWZjOTQ0NjQ2ODRiMjA0ZDM1MGYzOGQ0MWIuLmI0MGJjM2NhNzBmNDZiYjNiMjI3YWM4MjQ5
ZjA5Y2NiYjRlZTUyZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
bWFjL2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2IuaW4KKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5z
Yi5pbgpAQCAtMzU4LDYgKzM1OCw3IEBACiApCiAKIChhbGxvdyBtYWNoLWxvb2t1cCAoZ2xvYmFs
LW5hbWUgImNvbS5hcHBsZS53ZWJraXQuYWRhdHRyaWJ1dGlvbmQuc2VydmljZSIpKQorKGFsbG93
IG1hY2gtbG9va3VwIChnbG9iYWwtbmFtZSAib3JnLndlYmtpdC5wY210ZXN0ZGFlbW9uLnNlcnZp
Y2UiKSkKIAogKHdpdGgtZmlsdGVyICh1aWQgMCkKICAgICAoYWxsb3cgbWFjaC1sb29rdXAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2Ev
RGFlbW9uL1BDTURhZW1vbkVudHJ5UG9pbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRy
eVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9QQ01EYWVtb25FbnRyeVBvaW50Lm1tCmluZGV4
IDg1MTUxNDMzOTNiNjMzZGQwYTYxNTg5MjRiYmU5ZTQ3MDczNWRjNGMuLjU0OGZmNTE2NGM2ZDZm
MTliZTUxZDRmNDY4ZGQ3YmY1ZDQzYTQ4NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvRGFlbW9uL1BDTURhZW1vbkVudHJ5UG9pbnQu
bW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9E
YWVtb24vUENNRGFlbW9uRW50cnlQb2ludC5tbQpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAi
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRYUENVdGlsaXRpZXMuaCIKICNpbXBvcnQgPEZvdW5kYXRp
b24vRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW1w
b3J0IDx3dGYvRmlsZVN5c3RlbS5oPgogI2ltcG9ydCA8d3RmL0hhc2hTZXQuaD4KICNpbXBvcnQg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgpAQCAtNzYs
OSArNzcsOSBAQCBzdGF0aWMgdm9pZCBjb25uZWN0aW9uRXZlbnRIYW5kbGVyKHhwY19vYmplY3Rf
dCByZXF1ZXN0KQogICAgIGRlY29kZU1lc3NhZ2VBbmRTZW5kVG9NYW5hZ2VyKG1lc3NhZ2VUeXBl
LCBXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSwgcmVwbHlTZW5kZXIobWVzc2FnZVR5cGUsIHJlcXVl
c3QpKTsKIH0KIAotc3RhdGljIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JNYWNoU2VydmljZUNvbm5l
Y3Rpb25zKCkKK3N0YXRpYyB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9yTWFjaFNlcnZpY2VDb25uZWN0
aW9ucyhjb25zdCBjaGFyKiBzZXJ2aWNlTmFtZSkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8T1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4+IGxpc3RlbmVyID0geHBjX2Nvbm5lY3Rp
b25fY3JlYXRlX21hY2hfc2VydmljZSgiY29tLmFwcGxlLndlYmtpdC5hZGF0dHJpYnV0aW9uZC5z
ZXJ2aWNlIiwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgWFBDX0NPTk5FQ1RJT05fTUFDSF9T
RVJWSUNFX0xJU1RFTkVSKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8T1NPYmplY3RQdHI8
eHBjX2Nvbm5lY3Rpb25fdD4+IGxpc3RlbmVyID0geHBjX2Nvbm5lY3Rpb25fY3JlYXRlX21hY2hf
c2VydmljZShzZXJ2aWNlTmFtZSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgWFBDX0NPTk5F
Q1RJT05fTUFDSF9TRVJWSUNFX0xJU1RFTkVSKTsKICAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZl
bnRfaGFuZGxlcihsaXN0ZW5lci5nZXQoKS5nZXQoKSwgXih4cGNfb2JqZWN0X3QgcGVlcikgewog
ICAgICAgICBpZiAoeHBjX2dldF90eXBlKHBlZXIpICE9IFhQQ19UWVBFX0NPTk5FQ1RJT04pCiAg
ICAgICAgICAgICByZXR1cm47CkBAIC04Niw2ICs4Nyw4IEBAIHN0YXRpYyB2b2lkIHN0YXJ0TGlz
dGVuaW5nRm9yTWFjaFNlcnZpY2VDb25uZWN0aW9ucygpCiAgICAgICAgIC8vIEZJWE1FOiBBZGQg
YW4gZW50aXRsZW1lbnQgY2hlY2sgaGVyZSBzbyB0aGF0IG9ubHkgdGhlIG5ldHdvcmsgcHJvY2Vz
cyBjYW4gc3VjY2Vzc2Z1bGx5IGNvbm5lY3QuCiAKICAgICAgICAgeHBjX2Nvbm5lY3Rpb25fc2V0
X2V2ZW50X2hhbmRsZXIocGVlciwgXih4cGNfb2JqZWN0X3QgZXZlbnQpIHsKKyAgICAgICAgICAg
IGlmIChldmVudCA9PSBYUENfRVJST1JfQ09OTkVDVElPTl9JTlZBTElEKQorICAgICAgICAgICAg
ICAgIE5TTG9nKEAiRmFpbGVkIHRvIHN0YXJ0IGxpc3RlbmluZyBmb3IgY29ubmVjdGlvbnMgdG8g
bWFjaCBzZXJ2aWNlICVzLCBsaWtlbHkgYmVjYXVzZSBpdCBpcyBub3QgcmVnaXN0ZXJlZCB3aXRo
IGxhdW5jaGQiLCBzZXJ2aWNlTmFtZSk7CiAgICAgICAgICAgICBpZiAoZXZlbnQgPT0gWFBDX0VS
Uk9SX0NPTk5FQ1RJT05fSU5URVJSVVBURUQpIHsKICAgICAgICAgICAgICAgICBOU0xvZyhAInJl
bW92aW5nIHBlZXIgY29ubmVjdGlvbiAlcCIsIHBlZXIpOwogICAgICAgICAgICAgICAgIHBlZXJz
KCkucmVtb3ZlKHBlZXIpOwpAQCAtMTA0LDYgKzEwNyw3IEBAIHN0YXRpYyB2b2lkIHN0YXJ0TGlz
dGVuaW5nRm9yTWFjaFNlcnZpY2VDb25uZWN0aW9ucygpCiAKIHN0YXRpYyB2b2lkIHJlZ2lzdGVy
U2NoZWR1bGVkQWN0aXZpdHlIYW5kbGVyKCkKIHsKKyAgICBOU0xvZyhAIlJlZ2lzdGVyaW5nIFhQ
QyBhY3Rpdml0eSIpOwogICAgIHhwY19hY3Rpdml0eV9yZWdpc3RlcigiY29tLmFwcGxlLndlYmtp
dC5hZGF0dHJpYnV0aW9uZC5hY3Rpdml0eSIsIFhQQ19BQ1RJVklUWV9DSEVDS19JTiwgXih4cGNf
YWN0aXZpdHlfdCBhY3Rpdml0eSkgewogICAgICAgICBpZiAoeHBjX2FjdGl2aXR5X2dldF9zdGF0
ZShhY3Rpdml0eSkgPT0gWFBDX0FDVElWSVRZX1NUQVRFX0NIRUNLX0lOKSB7CiAgICAgICAgICAg
ICB4cGNfb2JqZWN0X3QgY3JpdGVyaWEgPSB4cGNfYWN0aXZpdHlfY29weV9jcml0ZXJpYShhY3Rp
dml0eSk7CkBAIC0xMjUsMTUgKzEyOSwyMSBAQCBzdGF0aWMgdm9pZCBlbnRlclNhbmRib3goKQog
CiBpbnQgUENNRGFlbW9uTWFpbihpbnQgYXJnYywgY29uc3QgY2hhcioqIGFyZ3YpCiB7Ci0gICAg
aWYgKGFyZ2MgIT0gMiB8fCBzdHJjbXAoYXJndlsxXSwgInJ1bkFzRGFlbW9uIikpIHsKLSAgICAg
ICAgTlNMb2coQCJUaGlzIGV4ZWN1dGFibGUgaXMgaW50ZW5kZWQgdG8gYmUgcnVuIGFzIGEgZGFl
bW9uLiIpOworICAgIGlmIChhcmdjIDwgNSB8fCBzdHJjbXAoYXJndlsxXSwgIi0tbWFjaFNlcnZp
Y2VOYW1lIikgfHwgc3RyY21wKGFyZ3ZbM10sICItLXN0b3JhZ2VMb2NhdGlvbiIpKSB7CisgICAg
ICAgIE5TTG9nKEAiVXNhZ2U6ICVzIC0tbWFjaFNlcnZpY2VOYW1lIDxuYW1lPiAtLXN0b3JhZ2VM
b2NhdGlvbiA8bG9jYXRpb24+IFstLXN0YXJ0QWN0aXZpdHldIiwgYXJndlswXSk7CiAgICAgICAg
IHJldHVybiAtMTsKICAgICB9CisgICAgY29uc3QgY2hhciogbWFjaFNlcnZpY2VOYW1lID0gYXJn
dlsyXTsKKyAgICBjb25zdCBjaGFyKiBzdG9yYWdlTG9jYXRpb24gPSBhcmd2WzRdOworICAgIGJv
b2wgc3RhcnRBY3Rpdml0eSA9IGFyZ2MgPiA1ICYmICFzdHJjbXAoYXJndls1XSwgIi0tc3RhcnRB
Y3Rpdml0eSIpOworCiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7CiAgICAgICAgIGVudGVyU2FuZGJv
eCgpOwotICAgICAgICBzdGFydExpc3RlbmluZ0Zvck1hY2hTZXJ2aWNlQ29ubmVjdGlvbnMoKTsK
LSAgICAgICAgcmVnaXN0ZXJTY2hlZHVsZWRBY3Rpdml0eUhhbmRsZXIoKTsKKyAgICAgICAgc3Rh
cnRMaXN0ZW5pbmdGb3JNYWNoU2VydmljZUNvbm5lY3Rpb25zKG1hY2hTZXJ2aWNlTmFtZSk7Cisg
ICAgICAgIGlmIChzdGFydEFjdGl2aXR5KQorICAgICAgICAgICAgcmVnaXN0ZXJTY2hlZHVsZWRB
Y3Rpdml0eUhhbmRsZXIoKTsKICAgICAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZCgpOwor
ICAgICAgICBQQ006OmluaXRpYWxpemVQQ01TdG9yYWdlSW5EaXJlY3RvcnkoRmlsZVN5c3RlbTo6
c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihzdG9yYWdlTG9jYXRpb24pKTsKICAg
ICB9CiAgICAgQ0ZSdW5Mb29wUnVuKCk7CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5oCmluZGV4IDdkMGFlNzllMjExODQ4NGVlYWM5ZGRjODliZmNh
NWMxZTIwOWQ0ZjAuLjA4NTEyM2QwZDRmYWJlOTljZmYxMTRmMTYxZTY0NDgwZDM0ODkzNWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCkBAIC03Niw2ICs3Niw3IEBA
IFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSkKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldEhTVFNTdG9yYWdlRGlyZWN0b3J5
OikgTlNVUkwgKmhzdHNTdG9yYWdlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIu
MCksIGlvcygxNS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBlbmFibGVJbkFwcEJy
b3dzZXJQcml2YWN5Rm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3Mo
MTUuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzSFNUU1dpdGhVbnRydXN0
ZWRSb290Q2VydGlmaWNhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjAp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldFBDTU1h
Y2hTZXJ2aWNlTmFtZTopIE5TU3RyaW5nICpwY21NYWNoU2VydmljZU5hbWUgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQHByb3BlcnR5IChu
b25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1VSTCAqYWx0ZXJuYXRpdmVTZXJ2aWNlc1N0b3Jh
Z2VEaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNVUkwgKnN0YW5kYWxvbmVBcHBs
aWNhdGlvblVSTCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCmluZGV4IGFlMzliNjYxODUwOWM5
ZjJiZWVhNGY5ZDk1NWMwNDFhZGI3YWYzNzYuLjU5MDA3NTJmN2IwNDE0OTY2MGE1N2RkMmU0YjQy
OTY2MTg3MDA1MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0K
QEAgLTUyMSw2ICs1MjEsMTYgQEAgc3RhdGljIHZvaWQgY2hlY2tVUkxBcmd1bWVudChOU1VSTCAq
dXJsKQogICAgIF9jb25maWd1cmF0aW9uLT5zZXRBbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RD
ZXJ0aWZpY2F0ZShhbGxvd3MpOwogfQogCistIChOU1N0cmluZyAqKXBjbU1hY2hTZXJ2aWNlTmFt
ZQoreworICAgIHJldHVybiBfY29uZmlndXJhdGlvbi0+cGNtTWFjaFNlcnZpY2VOYW1lKCk7Cit9
CisKKy0gKHZvaWQpc2V0UENNTWFjaFNlcnZpY2VOYW1lOihOU1N0cmluZyAqKW5hbWUKK3sKKyAg
ICBfY29uZmlndXJhdGlvbi0+c2V0UENNTWFjaFNlcnZpY2VOYW1lKG5hbWUpOworfQorCiAtIChC
T09MKWFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3Rp
bmcKIHsKICAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24tPmFsbExvYWRzQmxvY2tlZEJ5RGV2aWNl
TWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXgg
M2RhNmMxMTZiOTM2ODhkMWJhYzczZDdlNmQ5ZDQ5OWUwNDQxMmFmZS4uNTExMzQ4ZjIwZmFiOWY0
NjVmOGZkZTkwMWZlNjA3ZjdlNzM3N2YwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTIwNjAsNiAr
MjA2MCw3IEBAIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBh
cmFtZXRlcnMoKQogICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXF1aXJlc1NlY3VyZUhU
VFBTUHJveHlDb25uZWN0aW9uID0gbV9jb25maWd1cmF0aW9uLT5yZXF1aXJlc1NlY3VyZUhUVFBT
UHJveHlDb25uZWN0aW9uKCk7CiAgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnByZXZlbnRz
U3lzdGVtSFRUUFByb3h5QXV0aGVudGljYXRpb24gPSBtX2NvbmZpZ3VyYXRpb24tPnByZXZlbnRz
U3lzdGVtSFRUUFByb3h5QXV0aGVudGljYXRpb24oKTsKICAgICBuZXR3b3JrU2Vzc2lvblBhcmFt
ZXRlcnMuYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUgPSBtX2NvbmZpZ3Vy
YXRpb24tPmFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlKCk7CisgICAgbmV0
d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnBjbU1hY2hTZXJ2aWNlTmFtZSA9IG1fY29uZmlndXJhdGlv
bi0+cGNtTWFjaFNlcnZpY2VOYW1lKCk7CiAKICAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9u
UGFyYW1ldGVycyA9IFdURk1vdmUobmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGJkNGI5NTdhYmQxMTExMGUz
MDkzZjUyOGI1MzY4ZTNlMWRhNDgxYjMuLmZkNGIwOGU2MWFiYzM2MDQ3ZDdiZWIxMDAyMWU0ZWVh
MTU4ODY4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAKQEAg
LTUxLDYgKzUxLDcgQEAgV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OldlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uKElzUGVyc2lzdGVudCBpc1BlcnMKICNpZiBIQVZFKEFSS0lUX0lO
TElORV9QUkVWSUVXKQogICAgICAgICBzZXRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeShXZWJz
aXRlRGF0YVN0b3JlOjpkZWZhdWx0TW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoKSk7CiAjZW5k
aWYKKyAgICAgICAgLy8gRklYTUU6IEdpdmUgbV9wY21NYWNoU2VydmljZU5hbWUgYSBkZWZhdWx0
IHZhbHVlIGFuZCByZW1vdmUgUENNOjpNYW5hZ2VySW50ZXJmYWNlIG9uY2UgcmRhcjovLzgwNzAx
MDk4IGlzIGNsb3NlZC4KICAgICB9CiB9CiAKQEAgLTEwMCw2ICsxMDEsNyBAQCBSZWY8V2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+IFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpj
b3B5KCkgY29uc3QKICAgICBjb3B5LT5tX3N0YW5kYWxvbmVBcHBsaWNhdGlvblVSTCA9IHRoaXMt
Pm1fc3RhbmRhbG9uZUFwcGxpY2F0aW9uVVJMOwogICAgIGNvcHktPm1fZW5hYmxlSW5BcHBCcm93
c2VyUHJpdmFjeUZvclRlc3RpbmcgPSB0aGlzLT5tX2VuYWJsZUluQXBwQnJvd3NlclByaXZhY3lG
b3JUZXN0aW5nOwogICAgIGNvcHktPm1fYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlm
aWNhdGUgPSB0aGlzLT5tX2FsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlOwor
ICAgIGNvcHktPm1fcGNtTWFjaFNlcnZpY2VOYW1lID0gdGhpcy0+bV9wY21NYWNoU2VydmljZU5h
bWU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKG1fcHJveHlDb25maWd1cmF0aW9uKQog
ICAgICAgICBjb3B5LT5tX3Byb3h5Q29uZmlndXJhdGlvbiA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5
Q3JlYXRlQ29weShudWxscHRyLCB0aGlzLT5tX3Byb3h5Q29uZmlndXJhdGlvbi5nZXQoKSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKaW5kZXggZWRkYWI0NGUzYTI4OWMx
YTQ1NDdmMWM0NjA5MjkxOWM2YzI3ODBjNy4uNzM0YWI2NjJjODRhMzUyODdkMjZkOWU1YjIyZTk3
ZDc0OGYwNjJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCkBAIC0x
ODAsNiArMTgwLDkgQEAgcHVibGljOgogICAgIGJvb2wgYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRS
b290Q2VydGlmaWNhdGUoKSBjb25zdCB7IHJldHVybiBtX2FsbG93c0hTVFNXaXRoVW50cnVzdGVk
Um9vdENlcnRpZmljYXRlOyB9CiAgICAgdm9pZCBzZXRBbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJv
b3RDZXJ0aWZpY2F0ZShib29sIGFsbG93cykgeyBtX2FsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9v
dENlcnRpZmljYXRlID0gYWxsb3dzOyB9CiAgICAgCisgICAgdm9pZCBzZXRQQ01NYWNoU2Vydmlj
ZU5hbWUoU3RyaW5nJiYgbmFtZSkgeyBtX3BjbU1hY2hTZXJ2aWNlTmFtZSA9IFdURk1vdmUobmFt
ZSk7IH0KKyAgICBjb25zdCBTdHJpbmcmIHBjbU1hY2hTZXJ2aWNlTmFtZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcGNtTWFjaFNlcnZpY2VOYW1lOyB9CisKIHByaXZhdGU6CiAgICAgSXNQZXJzaXN0ZW50
IG1faXNQZXJzaXN0ZW50IHsgSXNQZXJzaXN0ZW50OjpObyB9OwogCkBAIC0yMzIsNiArMjM1LDcg
QEAgcHJpdmF0ZToKICAgICBVUkwgbV9zdGFuZGFsb25lQXBwbGljYXRpb25VUkw7CiAgICAgYm9v
bCBtX2VuYWJsZUluQXBwQnJvd3NlclByaXZhY3lGb3JUZXN0aW5nIHsgZmFsc2UgfTsKICAgICBi
b29sIG1fYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUgeyBmYWxzZSB9Owor
ICAgIFN0cmluZyBtX3BjbU1hY2hTZXJ2aWNlTmFtZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBtX3Byb3h5Q29uZmlndXJhdGlvbjsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDNl
YTdiZGZkMTdlNGU2ZGZjNmIwZjU1YzlmNjdkYzVhZTA2ZGZmNmUuLjBiNjRmZTc4ZWUyY2VmZDRh
OGVmNmIwNzBkZmYwZTlhNWIxZjg1ZjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0wOS0xMyAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCB1bml0IHRl
c3QgdGhhdCB1c2VzIFBDTSBkYWVtb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMDE5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0UENNRGFl
bW9uLnhjY29uZmlnOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW06CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpjdXJyZW50RXhlY3V0YWJsZUxvY2F0aW9uKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OnRlc3REYWVtb25QTGlzdCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RQQ01EYWVtb25NYWluLmM6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmNwcC4KKyAgICAgICAgKG1haW4pOgorCiAy
MDIxLTA5LTEzICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZWR1Y2UgRVdTIGVtYWlsIG5vdGlmaWNhdGlvbnMgdG8gQWFrYXNoCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RQQ01EYWVtb24ueGNjb25maWcg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RQQ01EYWVtb24ueGNjb25m
aWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMmU3ZWM2ODE2YTg5OGI0ODcyMjdkZTA0ZWYzOTU5MTYwODhiMzA1MQot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVz
dFBDTURhZW1vbi54Y2NvbmZpZwpAQCAtMCwwICsxLDI3IEBACisvLyBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8g
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisvLyBhcmUgbWV0OgorLy8gMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisvLyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisvLyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorLy8KKy8vIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorLy8g
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKy8vIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorLy8gUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKy8vIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorLy8gRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorLy8gUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisvLyBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisvLyBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
Ly8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisKK1BST0RVQ1RfTkFNRSA9IFRlc3RQQ01EYWVtb247CisKK09USEVS
X0xERkxBR1MgPSAtZnJhbWV3b3JrIFdlYktpdDsKK0ZSQU1FV09SS19TRUFSQ0hfUEFUSFMgPSAk
KEJVSUxUX1BST0RVQ1RTX0RJUik7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0Nv
bmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEktbWFjT1MtaW50ZXJuYWwuZW50aXRsZW1lbnRzIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLW1hY09TLWlu
dGVybmFsLmVudGl0bGVtZW50cwppbmRleCAzODFhYTMyNTMzMjU0YWYwZjE4ZDhiYjI1OGY0Njk0
Nzg0ZjA0Y2YxLi5jZjA4ZTRiNjRhM2I1Yzk4ZGE1MTNiY2Q0YmE0OGRmMmRlMDM5MWRhIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkt
bWFjT1MtaW50ZXJuYWwuZW50aXRsZW1lbnRzCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29u
ZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS1tYWNPUy1pbnRlcm5hbC5lbnRpdGxlbWVudHMKQEAg
LTIsNiArMiw4IEBACiA8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNU
IDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRk
Ij4KIDxwbGlzdCB2ZXJzaW9uPSIxLjAiPgogPGRpY3Q+CisJPGtleT5jb20uYXBwbGUucHJpdmF0
ZS54cGMubGF1bmNoZC5qb2ItbWFuYWdlcjwva2V5PgorCTxzdHJpbmc+VGVzdFdlYktpdEFQSTwv
c3RyaW5nPgogCTxrZXk+Y29tLmFwcGxlLmhpZC5tYW5hZ2VyLnVzZXItYWNjZXNzLWRldmljZTwv
a2V5PgogCTx0cnVlLz4KIAk8a2V5PmNvbS5hcHBsZS5wcml2YXRlLmhpZC5jbGllbnQuZXZlbnQt
ZmlsdGVyPC9rZXk+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRp
b25zL1Rlc3RXZWJLaXRBUEktbWFjT1MuZW50aXRsZW1lbnRzIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLW1hY09TLmVudGl0bGVtZW50cwppbmRleCBm
NDg4YWVhNjIzNDgzNDI0MGE4NzdkZTQ4NGNjYjQyZDEyMDM4MmQxLi5jMDMzMTZmMmYyYWRmNTIw
ZWU3NTRkM2E0NzI0ZDRkOTZhNTgyZTIzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEktbWFjT1MuZW50aXRsZW1lbnRzCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS1tYWNPUy5lbnRp
dGxlbWVudHMKQEAgLTIsNiArMiw4IEBACiA8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBs
ZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5
TGlzdC0xLjAuZHRkIj4KIDxwbGlzdCB2ZXJzaW9uPSIxLjAiPgogPGRpY3Q+CisJPGtleT5jb20u
YXBwbGUucHJpdmF0ZS54cGMubGF1bmNoZC5qb2ItbWFuYWdlcjwva2V5PgorCTxzdHJpbmc+VGVz
dFdlYktpdEFQSTwvc3RyaW5nPgogCTxrZXk+a2V5Y2hhaW4tYWNjZXNzLWdyb3Vwczwva2V5Pgog
CTxhcnJheT4KIAkJPHN0cmluZz5jb20uYXBwbGUuVGVzdFdlYktpdEFQSTwvc3RyaW5nPgpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJ
LnhjY29uZmlnIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0
QVBJLnhjY29uZmlnCmluZGV4IGZjYjgyYmFmZTc2MGE1MTIwYTIyNWJiZGIyNDYzYmE5YzMwZTIz
ZTMuLmMwNjJlNjMyMWZjMjUzYTZkNmQ1ZWIxZThmOThjNWZiYTAyZmRkMzQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS54Y2NvbmZp
ZworKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEku
eGNjb25maWcKQEAgLTQzLDYgKzQzLDEwIEBAIEZSQU1FV09SS19TRUFSQ0hfUEFUSFMgPSAkKEZS
QU1FV09SS19TRUFSQ0hfUEFUSFNfJChXS19DT0NPQV9UT1VDSCkpOwogRlJBTUVXT1JLX1NFQVJD
SF9QQVRIU18gPSAkKGluaGVyaXRlZCkgJChXS19QUklWQVRFX0ZSQU1FV09SS1NfRElSKSAkKFNZ
U1RFTV9MSUJSQVJZX0RJUikvUHJpdmF0ZUZyYW1ld29ya3MgJChTWVNURU1fTElCUkFSWV9ESVIp
L0ZyYW1ld29ya3MvV2ViS2l0LmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3M7CiBGUkFN
RVdPUktfU0VBUkNIX1BBVEhTX2NvY29hdG91Y2ggPSAkKGluaGVyaXRlZCkgJChXS19QUklWQVRF
X0ZSQU1FV09SS1NfRElSKTsKIAorV0tfQVBQU0VSVkVSU1VQUE9SVF9MREZMQUdTID0gJChXS19B
UFBTRVJWRVJTVVBQT1JUX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CitXS19BUFBTRVJW
RVJTVVBQT1JUX0xERkxBR1NfbWFjb3N4ID0gJChXS19BUFBTRVJWRVJTVVBQT1JUX0xERkxBR1Mk
KFdLX01BQ09TXzEyMDApKTsKK1dLX0FQUFNFUlZFUlNVUFBPUlRfTERGTEFHU19NQUNPU19TSU5D
RV8xMjAwID0gLWZyYW1ld29yayBBcHBTZXJ2ZXJTdXBwb3J0CisKIFdLX0FVVEhLSVRfTERGTEFH
UyA9ICQoV0tfQVVUSEtJVF9MREZMQUdTXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogV0tfQVVUSEtJ
VF9MREZMQUdTX2lwaG9uZW9zID0gJChXS19BVVRIS0lUX0xERkxBR1MkKFdLX0lPU18xMykpOwog
V0tfQVVUSEtJVF9MREZMQUdTX2lwaG9uZXNpbXVsYXRvciA9ICQoV0tfQVVUSEtJVF9MREZMQUdT
JChXS19JT1NfMTMpKTsKQEAgLTg2LDcgKzkwLDcgQEAgV0tfVUlLSVRNQUNIRUxQRVJfTERGTEFH
U19tYWNjYXRhbHlzdCA9IC1mcmFtZXdvcmsgVUlLaXRNYWNIZWxwZXI7CiAKIE9USEVSX0NQTFVT
UExVU0ZMQUdTID0gJChpbmhlcml0ZWQpIC1pc3lzdGVtICQoU0RLUk9PVCkvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3Jrcy9TeXN0ZW0uZnJhbWV3b3JrL1ByaXZhdGVIZWFkZXJzOwogCi1PVEhFUl9M
REZMQUdTID0gJChpbmhlcml0ZWQpIC1sZ3Rlc3QgLWZvcmNlX2xvYWQgJChCVUlMVF9QUk9EVUNU
U19ESVIpL2xpYlRlc3RXZWJLaXRBUEkuYSAtZnJhbWV3b3JrIEphdmFTY3JpcHRDb3JlIC1mcmFt
ZXdvcmsgV2ViS2l0IC1sV2ViQ29yZVRlc3RTdXBwb3J0ICQoV0tfQVVUSEtJVF9MREZMQUdTKSAt
ZnJhbWV3b3JrIE5ldHdvcmsgJChXS19ISURfTERGTEFHUykgJChXS19PUEVOR0xfTERGTEFHUykg
JChXS19QREZLSVRfTERGTEFHUykgJChXS19TWVNURU1fTERGTEFHUykgJChXS19VSUtJVE1BQ0hF
TFBFUl9MREZMQUdTKSAkKFdLX1ZJU0lPTktJVENPUkVfTERGTEFHUykgJChPVEhFUl9MREZMQUdT
X1BMQVRGT1JNXyQoV0tfQ09DT0FfVE9VQ0gpKTsKK09USEVSX0xERkxBR1MgPSAkKGluaGVyaXRl
ZCkgLWxndGVzdCAtZm9yY2VfbG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvbGliVGVzdFdlYktp
dEFQSS5hIC1mcmFtZXdvcmsgSmF2YVNjcmlwdENvcmUgLWZyYW1ld29yayBXZWJLaXQgLWxXZWJD
b3JlVGVzdFN1cHBvcnQgJChXS19BUFBTRVJWRVJTVVBQT1JUX0xERkxBR1MpICQoV0tfQVVUSEtJ
VF9MREZMQUdTKSAtZnJhbWV3b3JrIE5ldHdvcmsgJChXS19ISURfTERGTEFHUykgJChXS19PUEVO
R0xfTERGTEFHUykgJChXS19QREZLSVRfTERGTEFHUykgJChXS19TWVNURU1fTERGTEFHUykgJChX
S19VSUtJVE1BQ0hFTFBFUl9MREZMQUdTKSAkKFdLX1ZJU0lPTktJVENPUkVfTERGTEFHUykgJChP
VEhFUl9MREZMQUdTX1BMQVRGT1JNXyQoV0tfQ09DT0FfVE9VQ0gpKTsKIE9USEVSX0xERkxBR1Nf
UExBVEZPUk1fID0gLWZyYW1ld29yayBDb2NvYSAtZnJhbWV3b3JrIENhcmJvbjsKIAogLy8gRklY
TUU6IFRoaXMgc2hvdWxkIG5vdCBiZSBidWlsdCBvbiBpT1MuIEluc3RlYWQgd2Ugc2hvdWxkIGNy
ZWF0ZSBhbmQgdXNlIGEgVGVzdFdlYktpdEFQSSBhcHBsaWNhdGlvbi4KZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMThlYmY5NDEwM2JhODRjZTY0MGMyZDMxMWRmZTNiZmZjNTM2N2RlZS4uYWNm
NWFlMjUyZDJhZWRmZDU1MTBiYWQ3YzE2NDM3MzM5OTE3YmI2OSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTM2LDYgKzM2LDcgQEAKIAkJCQk1MzdDRjg0ODIyRUZENzIwMDBDNkVCQjMgLyog
Q2hlY2sgLnhjZmlsZWxpc3RzICovLAogCQkJKTsKIAkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCQk1
QzFCMUQxQzI2RUMyRUVDMDA4ODJEQTIgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQk3
QzgzRTAzMDFEMEE1RTFCMDBGRUJDRjMgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQk3
QzgzRTAzMjFEMEE1RTFEMDBGRUJDRjMgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCSk7
CkBAIC00NzgsNiArNDc5LDcgQEAKIAkJNUMxMjFFOEQyNDEwNzA0OTAwNDg2RjlCIC8qIENvbnRl
bnRXb3JsZFBsdWdJbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDVDMTIxRThDMjQxMDcwMzIwMDQ4NkY5QiAvKiBDb250ZW50V29ybGRQbHVnSW4ubW0g
Ki87IH07CiAJCTVDMTZGOEZDMjMwQzk0MzcwMDc0QzRBOCAvKiBUZXh0U2l6ZS5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMTZGOEZCMjMwQzk0MkIw
MDc0QzRBOCAvKiBUZXh0U2l6ZS5tbSAqLzsgfTsKIAkJNUMxOUE1MjQxRkQwRjYwMTAwRUVBMzIz
IC8qIENvb2tpZVByaXZhdGVCcm93c2luZy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDVDMTlBNTIzMUZEMEYzMjYwMEVFQTMyMyAvKiBDb29raWVQcml2
YXRlQnJvd3NpbmcubW0gKi87IH07CisJCTVDMUIxRDE3MjZFQzI3REUwMDg4MkRBMiAvKiBUZXN0
UENNRGFlbW9uTWFpbi5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNUMxQjFEMTYyNkVDMjdDNTAwODgyREEyIC8qIFRlc3RQQ01EYWVtb25NYWluLmMgKi87
IH07CiAJCTVDMjNERjBCMjI0NjAxNTgwMEY0NTRCNiAvKiBDaGFsbGVuZ2UubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzIzREYwQTIyNDVDOUQ3MDBG
NDU0QjYgLyogQ2hhbGxlbmdlLm1tICovOyB9OwogCQk1QzI5MzY5MzFENUJGNzBEMDBERUFCMUUg
LyogQ29va2llQWNjZXB0UG9saWN5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNUMyOTM2OTExRDVCRjYzRTAwREVBQjFFIC8qIENvb2tpZUFjY2VwdFBv
bGljeS5tbSAqLzsgfTsKIAkJNUMyOTM2OTYxRDVDMDBFRDAwREVBQjFFIC8qIENvb2tpZU1lc3Nh
Z2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1QzI5MzY5NDFENUJGRDE5MDBERUFCMUUgLyogQ29va2llTWVzc2FnZS5odG1sICovOyB9
OwpAQCAtMTI5Nyw2ICsxMjk5LDEzIEBACiAvKiBFbmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8K
IAogLyogQmVnaW4gUEJYQ29udGFpbmVySXRlbVByb3h5IHNlY3Rpb24gKi8KKwkJNUMxQjFEMUIy
NkVDMkVFQzAwODgyREEyIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9
IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRhbCA9IDA4RkI3NzkzRkU4
NDE1NURDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJ
CQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDVDMUIxRDA4MjZFQzI3ODUwMDg4MkRBMjsKKwkJCXJl
bW90ZUluZm8gPSBUZXN0UENNRGFlbW9uOworCQl9OwogCQk1QzlEOTIyMTIyRDdEQzg0MDA4RTky
NjYgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewogCQkJaXNhID0gUEJYQ29udGFpbmVy
SXRlbVByb3h5OwogCQkJY29udGFpbmVyUG9ydGFsID0gMDhGQjc3OTNGRTg0MTU1REMwMkFBQzA3
IC8qIFByb2plY3Qgb2JqZWN0ICovOwpAQCAtMjMzMSw2ICsyMzQwLDkgQEAKIAkJNUMxMjFFOEMy
NDEwNzAzMjAwNDg2RjlCIC8qIENvbnRlbnRXb3JsZFBsdWdJbi5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvbnRlbnRXb3JsZFBsdWdJbi5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMxNkY4RkIyMzBDOTQyQjAwNzRDNEE4IC8qIFRleHRTaXpl
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGV4dFNpemUubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMTlBNTIzMUZEMEYzMjYwMEVFQTMyMyAv
KiBDb29raWVQcml2YXRlQnJvd3NpbmcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBDb29raWVQcml2YXRlQnJvd3NpbmcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTVDMUIxRDE0MjZFQzI3ODUwMDg4MkRBMiAvKiBUZXN0UENNRGFlbW9uICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFj
aC1vLmV4ZWN1dGFibGUiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBUZXN0UENNRGFlbW9u
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk1QzFCMUQxNjI2RUMyN0M1
MDA4ODJEQTIgLyogVGVzdFBDTURhZW1vbk1haW4uYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gVGVzdFBDTURh
ZW1vbk1haW4uYzsgcGF0aCA9IGNvY29hL1Rlc3RQQ01EYWVtb25NYWluLmM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTVDMUIxRDFBMjZFQzI4NEUwMDg4MkRBMiAvKiBUZXN0UENNRGFl
bW9uLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFRlc3RQQ01EYWVtb24ueGNjb25maWc7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMjNERjBBMjI0NUM5RDcwMEY0NTRCNiAvKiBDaGFs
bGVuZ2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDaGFsbGVu
Z2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMjkzNjkxMUQ1QkY2M0UwMERF
QUIxRSAvKiBDb29raWVBY2NlcHRQb2xpY3kubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBDb29raWVBY2NlcHRQb2xpY3kubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTVDMjkzNjk0MUQ1QkZEMTkwMERFQUIxRSAvKiBDb29raWVNZXNzYWdlLmh0bWwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBDb29raWVNZXNzYWdlLmh0bWw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMTYyLDYgKzMxNzQsMTMgQEAKIC8qIEVuZCBQQlhGaWxl
UmVmZXJlbmNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ug
c2VjdGlvbiAqLworCQk1QzFCMUQwRTI2RUMyNzg1MDA4ODJEQTIgLyogRnJhbWV3b3JrcyAqLyA9
IHsKKwkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNr
ID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9OwogCQk3QzgzREY2NDFEMEE1OTBDMDBGRUJDRjMg
LyogRnJhbWV3b3JrcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOwog
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTMzMDYsNiArMzMyNSw3IEBACiAJ
CQkJNUM3MkU4Q0UyNDRGRkNFNDAwMzgxRUI3IC8qIFRlc3RMZWdhY3lEb3dubG9hZERlbGVnYXRl
Lm1tICovLAogCQkJCTJEMUMwNEE1MUQ3NjI5OEIwMDBBNjgxNiAvKiBUZXN0TmF2aWdhdGlvbkRl
bGVnYXRlLmggKi8sCiAJCQkJMkQxQzA0QTYxRDc2Mjk4QjAwMEE2ODE2IC8qIFRlc3ROYXZpZ2F0
aW9uRGVsZWdhdGUubW0gKi8sCisJCQkJNUMxQjFEMTYyNkVDMjdDNTAwODgyREEyIC8qIFRlc3RQ
Q01EYWVtb25NYWluLmMgKi8sCiAJCQkJNTE2MjgxMjMyMzI1QzE3QTAwQkI3RTQyIC8qIFRlc3RQ
REZEb2N1bWVudC5oICovLAogCQkJCTUxNjI4MTI0MjMyNUMxN0IwMEJCN0U0MiAvKiBUZXN0UERG
RG9jdW1lbnQubW0gKi8sCiAJCQkJQTE0RkM1OEQxQjhBRTM2NTAwRDEwN0VCIC8qIFRlc3RQcm90
b2NvbC5oICovLApAQCAtMzM2NCw2ICszMzg0LDcgQEAKIAkJMUFCNjc0QURGRTlENTRCNTExQ0Ey
Q0JCIC8qIFByb2R1Y3RzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQk1QzFCMUQxNDI2RUMyNzg1MDA4ODJEQTIgLyogVGVzdFBDTURhZW1vbiAqLywKIAkJ
CQk4REQ3NkZBMTA0ODZBQTc2MDBEOTZCNUUgLyogVGVzdFdlYktpdEFQSSAqLywKIAkJCQk3Qzgz
RTAyMzFEMEE1QUU0MDBGRUJDRjMgLyogVGVzdFdURiAqLywKIAkJCQlCQzU3NTk4MDEyNkU3NEFG
MDA2RjBGMTIgLyogSW5qZWN0ZWRCdW5kbGVUZXN0V2ViS2l0QVBJLmJ1bmRsZSAqLywKQEAgLTQy
OTMsNiArNDMxNCw3IEBACiAJCQkJQkM5MDk1N0YxMjU1NENGOTAwMDgzNzU2IC8qIERlYnVnUmVs
ZWFzZS54Y2NvbmZpZyAqLywKIAkJCQlCQzU3NUFFMjEyNkU4OEIxMDA2RjBGMTIgLyogSW5qZWN0
ZWRCdW5kbGUueGNjb25maWcgKi8sCiAJCQkJQTFCODlCOTkyMjFFMDI5RjAwRUI0Q0VBIC8qIFNE
S1ZhcmlhbnQueGNjb25maWcgKi8sCisJCQkJNUMxQjFEMUEyNkVDMjg0RTAwODgyREEyIC8qIFRl
c3RQQ01EYWVtb24ueGNjb25maWcgKi8sCiAJCQkJNTczNUYwMjUxRjNBNEVBNjAwMEVFODAxIC8q
IFRlc3RXZWJLaXRBUEktaU9TLmVudGl0bGVtZW50cyAqLywKIAkJCQk1MUVCMTI1MzI0QzY2QkNC
MDAwQ0IwMzAgLyogVGVzdFdlYktpdEFQSS1tYWNPUy1pbnRlcm5hbC5lbnRpdGxlbWVudHMgKi8s
CiAJCQkJN0FCMDE3MzkyM0ZCMkJGMDAwMkY4MzY2IC8qIFRlc3RXZWJLaXRBUEktbWFjT1MuZW50
aXRsZW1lbnRzICovLApAQCAtNDk3OSw2ICs1MDAxLDIzIEBACiAvKiBFbmQgUEJYR3JvdXAgc2Vj
dGlvbiAqLwogCiAvKiBCZWdpbiBQQlhOYXRpdmVUYXJnZXQgc2VjdGlvbiAqLworCQk1QzFCMUQw
ODI2RUMyNzg1MDA4ODJEQTIgLyogVGVzdFBDTURhZW1vbiAqLyA9IHsKKwkJCWlzYSA9IFBCWE5h
dGl2ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA1QzFCMUQxMTI2RUMyNzg1
MDA4ODJEQTIgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQg
IlRlc3RQQ01EYWVtb24iICovOworCQkJYnVpbGRQaGFzZXMgPSAoCisJCQkJNUMxQjFEMEIyNkVD
Mjc4NTAwODgyREEyIC8qIFNvdXJjZXMgKi8sCisJCQkJNUMxQjFEMEUyNkVDMjc4NTAwODgyREEy
IC8qIEZyYW1ld29ya3MgKi8sCisJCQkpOworCQkJYnVpbGRSdWxlcyA9ICgKKwkJCSk7CisJCQlk
ZXBlbmRlbmNpZXMgPSAoCisJCQkpOworCQkJbmFtZSA9IFRlc3RQQ01EYWVtb247CisJCQlwcm9k
dWN0SW5zdGFsbFBhdGggPSAiJChIT01FKS9iaW4iOworCQkJcHJvZHVjdE5hbWUgPSBUZXN0UENN
RGFlbW9uOworCQkJcHJvZHVjdFJlZmVyZW5jZSA9IDVDMUIxRDE0MjZFQzI3ODUwMDg4MkRBMiAv
KiBUZXN0UENNRGFlbW9uICovOworCQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnByb2R1Y3Qt
dHlwZS50b29sIjsKKwkJfTsKIAkJN0M4M0RFOTUxRDBBNTkwQzAwRkVCQ0YzIC8qIFRlc3RXVEZM
aWJyYXJ5ICovID0gewogCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0OwogCQkJYnVpbGRDb25maWd1
cmF0aW9uTGlzdCA9IDdDODNERjY1MUQwQTU5MEMwMEZFQkNGMyAvKiBCdWlsZCBjb25maWd1cmF0
aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiVGVzdFdURkxpYnJhcnkiICovOwpAQCAtNTEz
OCw2ICs1MTc3LDcgQEAKIAkJCQlCQzU3NTk3RjEyNkU3NEFGMDA2RjBGMTIgLyogSW5qZWN0ZWRC
dW5kbGVUZXN0V2ViS2l0QVBJICovLAogCQkJCUExM0VCQjQ4MUI4NzMzOUUwMDA5NzExMCAvKiBX
ZWJQcm9jZXNzUGx1Z0luICovLAogCQkJCTUzN0NGODQzMjJFRkQ2NDEwMEM2RUJCMyAvKiBBcHBs
eSBDb25maWd1cmF0aW9uIHRvIFhDRmlsZUxpc3RzICovLAorCQkJCTVDMUIxRDA4MjZFQzI3ODUw
MDg4MkRBMiAvKiBUZXN0UENNRGFlbW9uICovLAogCQkJKTsKIAkJfTsKIC8qIEVuZCBQQlhQcm9q
ZWN0IHNlY3Rpb24gKi8KQEAgLTUyMTQsNiArNTI1NCwxNCBAQAogLyogRW5kIFBCWFNoZWxsU2Ny
aXB0QnVpbGRQaGFzZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWFNvdXJjZXNCdWlsZFBoYXNl
IHNlY3Rpb24gKi8KKwkJNUMxQjFEMEIyNkVDMjc4NTAwODgyREEyIC8qIFNvdXJjZXMgKi8gPSB7
CisJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIx
NDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCQk1QzFCMUQxNzI2RUMyN0RFMDA4ODJEQTIgLyog
VGVzdFBDTURhZW1vbk1haW4uYyBpbiBTb3VyY2VzICovLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9OwogCQk3QzgzREU5NjFEMEE1OTBDMDBG
RUJDRjMgLyogU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwog
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTYwNzgsNiArNjEyNiwxMSBAQAog
LyogRW5kIFBCWFNvdXJjZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYVGFy
Z2V0RGVwZW5kZW5jeSBzZWN0aW9uICovCisJCTVDMUIxRDFDMjZFQzJFRUMwMDg4MkRBMiAvKiBQ
QlhUYXJnZXREZXBlbmRlbmN5ICovID0geworCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsK
KwkJCXRhcmdldCA9IDVDMUIxRDA4MjZFQzI3ODUwMDg4MkRBMiAvKiBUZXN0UENNRGFlbW9uICov
OworCQkJdGFyZ2V0UHJveHkgPSA1QzFCMUQxQjI2RUMyRUVDMDA4ODJEQTIgLyogUEJYQ29udGFp
bmVySXRlbVByb3h5ICovOworCQl9OwogCQk1QzlEOTIyMjIyRDdEQzg0MDA4RTkyNjYgLyogUEJY
VGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKIAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJ
CQl0YXJnZXQgPSA1QzlEOTIxNDIyRDdEQTAyMDA4RTkyNjYgLyogR2VuZXJhdGUgVW5pZmllZCBT
b3VyY2VzICovOwpAQCAtNjE2MCw2ICs2MjEzLDIyIEBACiAJCQl9OwogCQkJbmFtZSA9IFJlbGVh
c2U7CiAJCX07CisJCTVDMUIxRDEyMjZFQzI3ODUwMDg4MkRBMiAvKiBEZWJ1ZyAqLyA9IHsKKwkJ
CWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVu
Y2UgPSA1QzFCMUQxQTI2RUMyODRFMDA4ODJEQTIgLyogVGVzdFBDTURhZW1vbi54Y2NvbmZpZyAq
LzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05B
TUUpIjsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07CisJCTVDMUIxRDEzMjZFQzI3ODUw
MDg4MkRBMiAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247
CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVDMUIxRDFBMjZFQzI4NEUwMDg4MkRB
MiAvKiBUZXN0UENNRGFlbW9uLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJ
CQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBSZWxl
YXNlOworCQl9OwogCQk1QzlEOTIxQTIyRDdEQTAyMDA4RTkyNjYgLyogRGVidWcgKi8gPSB7CiAJ
CQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJ1aWxkU2V0dGluZ3MgPSB7CkBAIC02
Mjg4LDYgKzYzNTcsMTUgQEAKIAkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsK
IAkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFJlbGVhc2U7CiAJCX07CisJCTVDMUIxRDEx
MjZFQzI3ODUwMDg4MkRBMiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2
ZVRhcmdldCAiVGVzdFBDTURhZW1vbiIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25M
aXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQk1QzFCMUQxMjI2RUMyNzg1MDA4
ODJEQTIgLyogRGVidWcgKi8sCisJCQkJNUMxQjFEMTMyNkVDMjc4NTAwODgyREEyIC8qIFJlbGVh
c2UgKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQkJ
ZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUmVsZWFzZTsKKwkJfTsKIAkJNUM5RDkyMTkyMkQ3
REEwMjAwOEU5MjY2IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVnYXRl
VGFyZ2V0ICJHZW5lcmF0ZSBVbmlmaWVkIFNvdXJjZXMiICovID0gewogCQkJaXNhID0gWENDb25m
aWd1cmF0aW9uTGlzdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24u
bW0KaW5kZXggODdkN2ZlOGVlN2U4ODdiMjBiN2U4YTY2N2Q4OTQ3MTY0N2E2Mzk5Ny4uM2E2YWQ5
YmNhYzY4OTEwMmI1ZmIzOWJkOTNlZmUyNzkxYzI3ZTE5MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpA
QCAtMjcsMTMgKzI3LDE4IEBACiAKICNpbXBvcnQgIkhUVFBTZXJ2ZXIuaCIKICNpbXBvcnQgIlBs
YXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0LmgiCiAjaW1wb3J0ICJUZXN0TmF2aWdh
dGlvbkRlbGVnYXRlLmgiCiAjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0ICJVdGls
aXRpZXMuaCIKKyNpbXBvcnQgPFdlYktpdC9XS01haW4uaD4KICNpbXBvcnQgPFdlYktpdC9XS1dl
YlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3Rp
bmcuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg+CiAjaW1w
b3J0IDxXZWJLaXQvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaD4KKyNpbXBvcnQg
PG1hY2gtby9keWxkLmg+CisjaW1wb3J0IDx3dGYvT1NPYmplY3RQdHIuaD4KKyNpbXBvcnQgPHd0
Zi9zcGkvZGFyd2luL1hQQ1NQSS5oPgogCiAjaWYgSEFWRShSU0FfQlNTQSkKIApAQCAtMzYwLDYg
KzM2NSwxMzAgQEAgVEVTVChFdmVudEF0dHJpYnV0aW9uLCBEYXRhYmFzZUxvY2F0aW9uKQogICAg
IEVYUEVDVF9FUSh3ZWJWaWV3VG9LZWVwTmV0d29ya1Byb2Nlc3NBbGl2ZS5nZXQoKS5jb25maWd1
cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUuX25ldHdvcmtQcm9jZXNzSWRlbnRpZmllciwgb3JpZ2lu
YWxOZXR3b3JrUHJvY2Vzc1BpZCk7CiB9CiAKKy8vIEZJWE1FOiBHZXQgdGhpcyB3b3JraW5nIGlu
IHRoZSBpT1Mgc2ltdWxhdG9yLgorI2lmIFBMQVRGT1JNKE1BQykKKworc3RhdGljIFJldGFpblB0
cjxOU1VSTD4gY3VycmVudEV4ZWN1dGFibGVMb2NhdGlvbigpCit7CisgICAgdWludDMyX3Qgc2l6
ZSB7IDAgfTsKKyAgICBfTlNHZXRFeGVjdXRhYmxlUGF0aChudWxscHRyLCAmc2l6ZSk7CisgICAg
VmVjdG9yPGNoYXI+IGJ1ZmZlcjsKKyAgICBidWZmZXIucmVzaXplKHNpemUgKyAxKTsKKyAgICBf
TlNHZXRFeGVjdXRhYmxlUGF0aChidWZmZXIuZGF0YSgpLCAmc2l6ZSk7CisgICAgYnVmZmVyW3Np
emVdID0gJ1wwJzsKKyAgICBhdXRvIHBhdGhTdHJpbmcgPSBhZG9wdE5TKFtbTlNTdHJpbmcgYWxs
b2NdIGluaXRXaXRoVVRGOFN0cmluZzpidWZmZXIuZGF0YSgpXSk7CisgICAgcmV0dXJuIGFkb3B0
TlMoW1tOU1VSTCBhbGxvY10gaW5pdEZpbGVVUkxXaXRoUGF0aDpwYXRoU3RyaW5nLmdldCgpIGlz
RGlyZWN0b3J5Ok5PXSk7Cit9CisKK3N0YXRpYyBSZXRhaW5QdHI8TlNVUkw+IGN1cnJlbnRFeGVj
dXRhYmxlRGlyZWN0b3J5KCkKK3sKKyAgICByZXR1cm4gW2N1cnJlbnRFeGVjdXRhYmxlTG9jYXRp
b24oKSBVUkxCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdOworfQorCitzdGF0aWMgUmV0YWlu
UHRyPE5TVVJMPiB0ZXN0UENNRGFlbW9uTG9jYXRpb24oKQoreworICAgIHJldHVybiBbY3VycmVu
dEV4ZWN1dGFibGVEaXJlY3RvcnkoKSBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJUZXN0
UENNRGFlbW9uIiBpc0RpcmVjdG9yeTpOT107Cit9CisKKyNpZiBIQVZFKE9TX0xBVU5DSERfSk9C
KQorCitzdGF0aWMgT1NPYmplY3RQdHI8eHBjX29iamVjdF90PiB0ZXN0RGFlbW9uUExpc3QoTlNV
UkwgKnN0b3JhZ2VMb2NhdGlvbikKK3sKKyAgICBhdXRvIHBsaXN0ID0gYWRvcHRPU09iamVjdCh4
cGNfZGljdGlvbmFyeV9jcmVhdGUobnVsbHB0ciwgbnVsbHB0ciwgMCkpOworICAgIHhwY19kaWN0
aW9uYXJ5X3NldF9zdHJpbmcocGxpc3QuZ2V0KCksICJfTWFuYWdlZEJ5IiwgIlRlc3RXZWJLaXRB
UEkiKTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKHBsaXN0LmdldCgpLCAiTGFiZWwi
LCAib3JnLndlYmtpdC5wY210ZXN0ZGFlbW9uIik7CisgICAgeHBjX2RpY3Rpb25hcnlfc2V0X2Jv
b2wocGxpc3QuZ2V0KCksICJMYXVuY2hPbmx5T25jZSIsIHRydWUpOworCisgICAgeworICAgICAg
ICBhdXRvIGVudmlyb25tZW50VmFyaWFibGVzID0gYWRvcHRPU09iamVjdCh4cGNfZGljdGlvbmFy
eV9jcmVhdGUobnVsbHB0ciwgbnVsbHB0ciwgMCkpOworICAgICAgICB4cGNfZGljdGlvbmFyeV9z
ZXRfc3RyaW5nKGVudmlyb25tZW50VmFyaWFibGVzLmdldCgpLCAiRFlMRF9GUkFNRVdPUktfUEFU
SCIsIGN1cnJlbnRFeGVjdXRhYmxlRGlyZWN0b3J5KCkuZ2V0KCkuZmlsZVN5c3RlbVJlcHJlc2Vu
dGF0aW9uKTsKKyAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3ZhbHVlKHBsaXN0LmdldCgpLCAi
RW52aXJvbm1lbnRWYXJpYWJsZXMiLCBlbnZpcm9ubWVudFZhcmlhYmxlcy5nZXQoKSk7CisgICAg
fQorICAgIHsKKyAgICAgICAgYXV0byBtYWNoU2VydmljZXMgPSBhZG9wdE9TT2JqZWN0KHhwY19k
aWN0aW9uYXJ5X2NyZWF0ZShudWxscHRyLCBudWxscHRyLCAwKSk7CisgICAgICAgIHhwY19kaWN0
aW9uYXJ5X3NldF9ib29sKG1hY2hTZXJ2aWNlcy5nZXQoKSwgIm9yZy53ZWJraXQucGNtdGVzdGRh
ZW1vbi5zZXJ2aWNlIiwgdHJ1ZSk7CisgICAgICAgIHhwY19kaWN0aW9uYXJ5X3NldF92YWx1ZShw
bGlzdC5nZXQoKSwgIk1hY2hTZXJ2aWNlcyIsIG1hY2hTZXJ2aWNlcy5nZXQoKSk7CisgICAgfQor
ICAgIHsKKyAgICAgICAgYXV0byBwcm9ncmFtQXJndW1lbnRzID0gYWRvcHRPU09iamVjdCh4cGNf
YXJyYXlfY3JlYXRlKG51bGxwdHIsIDApKTsKKyAgICAgICAgYXV0byBleGVjdXRhYmxlTG9jYXRp
b24gPSB0ZXN0UENNRGFlbW9uTG9jYXRpb24oKTsKKyAgICAgICAgeHBjX2FycmF5X3NldF9zdHJp
bmcocHJvZ3JhbUFyZ3VtZW50cy5nZXQoKSwgWFBDX0FSUkFZX0FQUEVORCwgZXhlY3V0YWJsZUxv
Y2F0aW9uLmdldCgpLmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbik7CisgICAgICAgIHhwY19hcnJh
eV9zZXRfc3RyaW5nKHByb2dyYW1Bcmd1bWVudHMuZ2V0KCksIFhQQ19BUlJBWV9BUFBFTkQsICIt
LW1hY2hTZXJ2aWNlTmFtZSIpOworICAgICAgICB4cGNfYXJyYXlfc2V0X3N0cmluZyhwcm9ncmFt
QXJndW1lbnRzLmdldCgpLCBYUENfQVJSQVlfQVBQRU5ELCAib3JnLndlYmtpdC5wY210ZXN0ZGFl
bW9uLnNlcnZpY2UiKTsKKyAgICAgICAgeHBjX2FycmF5X3NldF9zdHJpbmcocHJvZ3JhbUFyZ3Vt
ZW50cy5nZXQoKSwgWFBDX0FSUkFZX0FQUEVORCwgIi0tc3RvcmFnZUxvY2F0aW9uIik7CisgICAg
ICAgIHhwY19hcnJheV9zZXRfc3RyaW5nKHByb2dyYW1Bcmd1bWVudHMuZ2V0KCksIFhQQ19BUlJB
WV9BUFBFTkQsIHN0b3JhZ2VMb2NhdGlvbi5maWxlU3lzdGVtUmVwcmVzZW50YXRpb24pOworICAg
ICAgICB4cGNfZGljdGlvbmFyeV9zZXRfdmFsdWUocGxpc3QuZ2V0KCksICJQcm9ncmFtQXJndW1l
bnRzIiwgcHJvZ3JhbUFyZ3VtZW50cy5nZXQoKSk7CisgICAgfQorICAgIHJldHVybiBwbGlzdDsK
K30KKworI2Vsc2UKKworc3RhdGljIFJldGFpblB0cjxOU0RpY3Rpb25hcnk+IHRlc3REYWVtb25Q
TGlzdChOU1VSTCAqc3RvcmFnZUxvY2F0aW9uKQoreworICAgIHJldHVybiBAeworICAgICAgICBA
IkxhYmVsIiA6IEAib3JnLndlYmtpdC5wY210ZXN0ZGFlbW9uIiwKKyAgICAgICAgQCJMYXVuY2hP
bmx5T25jZSIgOiBAWUVTLAorICAgICAgICBAIkVudmlyb25tZW50VmFyaWFibGVzIiA6IEB7IEAi
RFlMRF9GUkFNRVdPUktfUEFUSCIgOiBjdXJyZW50RXhlY3V0YWJsZURpcmVjdG9yeSgpLmdldCgp
LnBhdGggfSwKKyAgICAgICAgQCJNYWNoU2VydmljZXMiIDogQHsgQCJvcmcud2Via2l0LnBjbXRl
c3RkYWVtb24uc2VydmljZSIgOiBAWUVTIH0sCisgICAgICAgIEAiUHJvZ3JhbUFyZ3VtZW50cyIg
OiBAWworICAgICAgICAgICAgdGVzdFBDTURhZW1vbkxvY2F0aW9uKCkuZ2V0KCkucGF0aCwKKyAg
ICAgICAgICAgIEAiLS1tYWNoU2VydmljZU5hbWUiLAorICAgICAgICAgICAgQCJvcmcud2Via2l0
LnBjbXRlc3RkYWVtb24uc2VydmljZSIsCisgICAgICAgICAgICBAIi0tc3RvcmFnZUxvY2F0aW9u
IiwKKyAgICAgICAgICAgIHN0b3JhZ2VMb2NhdGlvbi5wYXRoCisgICAgICAgIF0KKyAgICB9Owor
fQorCisjZW5kaWYKKworVEVTVChFdmVudEF0dHJpYnV0aW9uLCBEYWVtb24pCit7CisgICAgTlNG
aWxlTWFuYWdlciAqZmlsZU1hbmFnZXIgPSBbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl07
CisgICAgTlNVUkwgKnRlbXBEaXIgPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltOU1RlbXBvcmFy
eURpcmVjdG9yeSgpIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIkV2ZW50QXR0cmli
dXRpb25EYWVtb25UZXN0Il0gaXNEaXJlY3Rvcnk6WUVTXTsKKyAgICBOU0Vycm9yICplcnJvciA9
IG5pbDsKKyAgICBpZiAoW2ZpbGVNYW5hZ2VyIGZpbGVFeGlzdHNBdFBhdGg6dGVtcERpci5wYXRo
XSkKKyAgICAgICAgW2ZpbGVNYW5hZ2VyIHJlbW92ZUl0ZW1BdFVSTDp0ZW1wRGlyIGVycm9yOiZl
cnJvcl07CisgICAgRVhQRUNUX05VTEwoZXJyb3IpOworCisgICAgYXV0byBwbGlzdCA9IHRlc3RE
YWVtb25QTGlzdCh0ZW1wRGlyKTsKKyNpZiBIQVZFKE9TX0xBVU5DSERfSk9CKQorICAgIGF1dG8g
bGF1bmNoREpvYiA9IGFkb3B0TlMoW1tPU0xhdW5jaGRKb2IgYWxsb2NdIGluaXRXaXRoUGxpc3Q6
cGxpc3QuZ2V0KCldKTsKKyAgICBbbGF1bmNoREpvYiBzdWJtaXQ6JmVycm9yXTsKKyNlbHNlCisg
ICAgTlNVUkwgKnBsaXN0TG9jYXRpb24gPSBbdGVtcERpciBVUkxCeUFwcGVuZGluZ1BhdGhDb21w
b25lbnQ6QCJEYWVtb25JbmZvLnBsaXN0Il07CisgICAgQk9PTCBzdWNjZXNzID0gW2ZpbGVNYW5h
Z2VyIGNyZWF0ZURpcmVjdG9yeUF0VVJMOnRlbXBEaXIgd2l0aEludGVybWVkaWF0ZURpcmVjdG9y
aWVzOllFUyBhdHRyaWJ1dGVzOm5pbCBlcnJvcjomZXJyb3JdOworICAgIEVYUEVDVF9UUlVFKHN1
Y2Nlc3MpOworICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICBzdWNjZXNzID0gW3BsaXN0IHdy
aXRlVG9VUkw6cGxpc3RMb2NhdGlvbiBlcnJvcjomZXJyb3JdOworICAgIEVYUEVDVF9UUlVFKHN1
Y2Nlc3MpOworICAgIHN5c3RlbShbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAImxhdW5jaGN0
bCBsb2FkICVAIiwgcGxpc3RMb2NhdGlvbi5wYXRoXS5VVEY4U3RyaW5nKTsKKyNlbmRpZgorICAg
IEVYUEVDVF9OVUxMKGVycm9yKTsKKworICAgIGF1dG8gZGF0YVN0b3JlQ29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIG5ld10pOworICAgIGRh
dGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCkucGNtTWFjaFNlcnZpY2VOYW1lID0gQCJvcmcud2Vi
a2l0LnBjbXRlc3RkYWVtb24uc2VydmljZSI7CisgICAgYXV0byB2aWV3Q29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAgdmlld0NvbmZpZ3Vy
YXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IGFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3Rv
cmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246ZGF0YVN0b3JlQ29uZmlndXJhdGlvbi5n
ZXQoKV0pLmdldCgpOworICAgIHJ1bkJhc2ljRXZlbnRBdHRyaWJ1dGlvblRlc3Qodmlld0NvbmZp
Z3VyYXRpb24uZ2V0KCksIFtdKFdLV2ViVmlldyAqd2ViVmlldywgY29uc3QgSFRUUFNlcnZlciYg
c2VydmVyKSB7CisgICAgICAgIFt3ZWJWaWV3IF9hZGRFdmVudEF0dHJpYnV0aW9uV2l0aFNvdXJj
ZUlEOjQyIGRlc3RpbmF0aW9uVVJMOmV4YW1wbGVVUkwoKSBzb3VyY2VEZXNjcmlwdGlvbjpAInRl
c3Qgc291cmNlIGRlc2NyaXB0aW9uIiBwdXJjaGFzZXI6QCJ0ZXN0IHB1cmNoYXNlciIgcmVwb3J0
RW5kcG9pbnQ6c2VydmVyLnJlcXVlc3QoKS5VUkwgb3B0aW9uYWxOb25jZTpuaWxdOworICAgIH0p
OworCisgICAgc3lzdGVtKCJraWxsYWxsIFRlc3RQQ01EYWVtb24gLTkiKTsKKyNpZiBIQVZFKE9T
X0xBVU5DSERfSk9CKQorICAgIC8vIExhdW5jaE9ubHlPbmNlIHRha2VzIGNhcmUgb2YgY2xlYW51
cCB3aXRoIGxhdW5jaGQuCisjZWxzZQorICAgIHN5c3RlbShbTlNTdHJpbmcgc3RyaW5nV2l0aEZv
cm1hdDpAImxhdW5jaGN0bCB1bmxvYWQgJUAiLCBwbGlzdExvY2F0aW9uLnBhdGhdLlVURjhTdHJp
bmcpOworI2VuZGlmCisKKyAgICBFWFBFQ1RfVFJVRShbZmlsZU1hbmFnZXIgZmlsZUV4aXN0c0F0
UGF0aDp0ZW1wRGlyLnBhdGhdKTsKKyAgICBbZmlsZU1hbmFnZXIgcmVtb3ZlSXRlbUF0VVJMOnRl
bXBEaXIgZXJyb3I6JmVycm9yXTsKKyAgICBFWFBFQ1RfTlVMTChlcnJvcik7Cit9CisKKyNlbmRp
ZiAvLyBQTEFURk9STShNQUMpCisKICNpZiBIQVZFKFVJX0VWRU5UX0FUVFJJQlVUSU9OKQogCiBU
RVNUKEV2ZW50QXR0cmlidXRpb24sIEJhc2ljV2l0aElPU1NQSSkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFBDTURhZW1vbk1haW4uYyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvY29jb2EvVGVzdFBDTURhZW1vbk1haW4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDdkNDQ1MGUyYWY3
NjlkZjc4MDVjNGRhOTU5NGYxYTRiMmMxOTA3Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9jb2NvYS9UZXN0UENNRGFlbW9uTWFpbi5jCkBAIC0wLDAgKzEsMzIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSA8b3MvYXZhaWxhYmlsaXR5Lmg+CisjaW5jbHVkZSA8V2ViS2l0
L1dLTWFpbi5oPgorCitpbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhcioqIGFyZ3YpCit7Cisg
ICAgV0tQQ01EYWVtb25NYWluKGFyZ2MsIGFyZ3YpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438077</attachid>
            <date>2021-09-13 14:24:07 -0700</date>
            <delta_ts>2021-09-13 14:25:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230191-20210913142406.patch</filename>
            <type>text/plain</type>
            <size>57082</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ5Mzg4ZWFlODE0MjFkZDY1ZmM4NjQ5
MGQ0NWJiMjViZjhjNTk4YjIuLjQ3NzU5YTJjM2I1MTliNTYyODg2OTRmMDVlY2JjMWE2YTc3ODQ5
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDktMTMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0IHRoYXQgdXNl
cyBQQ00gZGFlbW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzAxOTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHd0Zi9QbGF0Zm9ybUhhdmUuaDoKKyAgICAgICAgKiB3dGYvc3BpL2Rhcndpbi9YUENT
UEkuaDoKKwogMjAyMS0wOS0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgZm9sbG93LXVwIHRvIHIyODIxMDUuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJjNzIz
Y2JlNWE2Nzg0MDU4YWZiYTQ4NzViMmI5OTQ5NzE0YTJiYzUuLmQxZWQ2ODZhMWMzOGVjYmYwNzFl
OTQ2ZmIyYzI1MjY2NjM1NTM5N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMjEtMDkt
MTMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAg
ICBBZGQgdW5pdCB0ZXN0IHRoYXQgdXNlcyBQQ00gZGFlbW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAxOTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBDaHJpcyBEdW1lei4KKworICAgICAgICBJIG1ha2UgYSB3YXkgdG8gc3BlY2lmeSB3aGF0IG1h
Y2ggc2VydmljZSB0byBjb25uZWN0IHRvLAorICAgICAgICB0aGVuIEkgdGVtcG9yYXJpbHkgcmVn
aXN0ZXIgYW4gZXhlY3V0YWJsZSB3aXRoIGxhdW5jaGQgdG8gcHJvdmlkZSB0aGF0IG1hY2ggc2Vy
dmljZSwKKyAgICAgICAgdGhlbiBJIHJ1biB0aGUgdGVzdCBjb21tdW5pY2F0aW5nIHdpdGggdGhh
dCBleGVjdXRhYmxlLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
Y3BwOgorICAgICAgICAoV2ViS2l0OjptYW5hZ2VyT3JQcm94eSk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlY29k
ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0
OjpQQ006OkNvbm5lY3Rpb246OkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNv
bm5lY3Rpb246OnNlbmQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb246
OnNlbmRXaXRoUmVwbHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb246
OmNvbm5lY3Rpb25Ub0RhZW1vbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29u
bmVjdGlvbjo6c2VuZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVjdGlv
bjo6c2VuZFdpdGhSZXBseSk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UENNOjptYW5hZ2VyUG9pbnRlcik6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6aW5pdGlhbGl6ZVBD
TVN0b3JhZ2VJbkRpcmVjdG9yeSk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6ZGFlbW9uTWFuYWdl
cik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpQQ006Ok1hbmFnZXJQcm94eTo6c2Vu
ZE1lc3NhZ2UgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006Ok1hbmFnZXJQcm94eTo6c2Vu
ZE1lc3NhZ2VXaXRoUmVwbHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006Ok1hbmFnZXJQ
cm94eTo6TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UENNOjpzZW5kTWVzc2FnZSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6c2VuZE1lc3NhZ2VXaXRoUmVwbHkpOiBE
ZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5Lmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnREYWVtb25Db25uZWN0aW9uQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29u
bmVjdGlvbjo6Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVjdGlvbjo6
aW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBD
TTo6Q29ubmVjdGlvbjo6c2VuZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVj
dGlvbjo6c2VuZFdpdGhSZXBseSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVj
dGlvbjo6Y29ubmVjdGlvblRvRGFlbW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENN
OjpDb25uZWN0aW9uOjpzZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpDb25u
ZWN0aW9uOjpzZW5kV2l0aFJlcGx5KTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9tYWMvY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYi5pbjoKKyAgICAgICAgKiBT
aGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9uRW50cnlQb2lu
dC5tbToKKyAgICAgICAgKFdlYktpdDo6c3RhcnRMaXN0ZW5pbmdGb3JNYWNoU2VydmljZUNvbm5l
Y3Rpb25zKToKKyAgICAgICAgKFdlYktpdDo6cmVnaXN0ZXJTY2hlZHVsZWRBY3Rpdml0eUhhbmRs
ZXIpOgorICAgICAgICAoV2ViS2l0OjpQQ01EYWVtb25NYWluKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5t
bToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gcGNtTWFjaFNl
cnZpY2VOYW1lXSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
IHNldFBDTU1hY2hTZXJ2aWNlTmFtZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3Rv
cmU6OnBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uOjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpjb3B5IGNvbnN0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24uaDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246
OnNldFBDTU1hY2hTZXJ2aWNlTmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uOjpwY21NYWNoU2VydmljZU5hbWUgY29uc3QpOgorCiAyMDIxLTA5LTEw
ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
QWRkIGluZnJhc3RydWN0dXJlIHRvIGFsbG93IFRMUyBkdXJpbmcgUENNIHRlc3RzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtSGF2ZS5oCmluZGV4IDY5Y2RiNWVhZWNlOTY4ZjlkNTZiOWZmYjZkZTAyNDc4MTgxNWJjOWYu
LmIwNjZlNWZjMTMxZmM0ZThiN2ZiOTU2Nzk1Mzc5OTg5ZjZhODViY2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
SGF2ZS5oCkBAIC04MTMsNiArODEzLDcgQEAKICAgICB8fCAoUExBVEZPUk0oQVBQTEVUVikgJiYg
X19UVl9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNTAwMDApCiAjZGVmaW5lIEhBVkVfTkVU
V09SS19MT0FERVIgMQogI2RlZmluZSBIQVZFX1NFQ19UUlVTVF9DT1BZX0NFUlRJRklDQVRFX0NI
QUlOIDEKKyNkZWZpbmUgSEFWRV9PU19MQVVOQ0hEX0pPQiAxCiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKE1BQ0NBVEFMWVNUKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
NDAwMDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmggYi9T
b3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oCmluZGV4IDNiNTljZmNlNzA3YzYxNTI2
NDFkMWUzMTA5NGZhOTA1MjliZTU2ZTUuLmM0MTdlMTkwNWY5ZGYwY2U0ZTFkN2ZjMTg2NDdmMGVk
YWZlNTNlMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmgK
KysrIGIvU291cmNlL1dURi93dGYvc3BpL2Rhcndpbi9YUENTUEkuaApAQCAtMTE0LDcgKzExNCwx
OSBAQCBleHRlcm4gIkMiIHZvaWQgeHBjX2FjdGl2aXR5X3JlZ2lzdGVyKGNvbnN0IGNoYXIgKmlk
ZW50aWZpZXIsIHhwY19vYmplY3RfdCBjcml0ZQogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
CiAjaW5jbHVkZSA8b3MvdHJhbnNhY3Rpb25fcHJpdmF0ZS5oPgogI2luY2x1ZGUgPHhwYy9wcml2
YXRlLmg+Ci0jZWxzZQorI2lmIEhBVkUoT1NfTEFVTkNIRF9KT0IpCisjaW5jbHVkZSA8QXBwU2Vy
dmVyU3VwcG9ydC9PU0xhdW5jaGRKb2IuaD4KKyNlbmRpZiAvLyBIQVZFKE9TX0xBVU5DSERfSk9C
KQorI2Vsc2UgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2lmZGVmIF9fT0JKQ19fCisj
aWYgSEFWRShPU19MQVVOQ0hEX0pPQikKK0BpbnRlcmZhY2UgT1NMYXVuY2hkSm9iIDogTlNPYmpl
Y3QKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBsaXN0Oih4cGNfb2JqZWN0X3QpcGxpc3Q7Cist
IChCT09MKXN1Ym1pdDooTlNFcnJvciAqKillcnJvck91dDsKK0BlbmQKKyNlbmRpZiAvLyBIQVZF
KE9TX0xBVU5DSERfSk9CKQorI2VuZGlmIC8vIF9fT0JKQ19fCiAKIGV4dGVybiAiQyIgY29uc3Qg
Y2hhciAqIGNvbnN0IFhQQ19BQ1RJVklUWV9SQU5ET01fSU5JVElBTF9ERUxBWTsKIGV4dGVybiAi
QyIgY29uc3QgY2hhciAqIGNvbnN0IFhQQ19BQ1RJVklUWV9SRVFVSVJFX05FVFdPUktfQ09OTkVD
VElWSVRZOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
LmNwcAppbmRleCA1ZTE1ZjYzNDM3MzRjOWQxYjUzZDhkYzEzMTk5MDVkODkyMmY5ZGIyLi4yNmYx
Y2I2MGYzY2QyZDE0ZTI2NGNjYTkwZjhmODUzZDk4YTliNmY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApAQCAtOTUsMTEgKzk1LDggQEAg
c3RhdGljIFN0cmluZyBwY21TdG9yZURpcmVjdG9yeShjb25zdCBOZXR3b3JrU2Vzc2lvbiYgc2Vz
c2lvbiwgY29uc3QgU3RyaW5nJiByZXMKIAogc3RhdGljIFVuaXF1ZVJlZjxQQ006Ok1hbmFnZXJJ
bnRlcmZhY2U+IG1hbmFnZXJPclByb3h5KE5ldHdvcmtTZXNzaW9uJiBuZXR3b3JrU2Vzc2lvbiwg
TmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBjb25zdCBOZXR3b3JrU2Vzc2lvbkNyZWF0
aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKLSAgICAvLyBGSVhNRTogVHVybiB0aGlzIG9u
IGFuZCByZW1vdmUgTWFuYWdlckludGVyZmFjZSBvbmNlIHJkYXI6Ly84MDcwMTA5OCBpcyBjbG9z
ZWQuCi0gICAgY29uc3RleHByIGJvb2wgdXNlUENNRGFlbW9uID0gZmFsc2U7Ci0KLSAgICBpZiAo
dXNlUENNRGFlbW9uKQotICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZVJlZjxQQ006Ok1hbmFnZXJQ
cm94eT4oKTsKKyAgICBpZiAoIXBhcmFtZXRlcnMucGNtTWFjaFNlcnZpY2VOYW1lLmlzRW1wdHko
KSkKKyAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8UENNOjpNYW5hZ2VyUHJveHk+KHBhcmFt
ZXRlcnMucGNtTWFjaFNlcnZpY2VOYW1lKTsKICAgICByZXR1cm4gbWFrZVVuaXF1ZVJlZjxQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI+KG1ha2VVbmlxdWVSZWY8UENNOjpDbGllbnRJbXBs
PihuZXR3b3JrU2Vzc2lvbiwgbmV0d29ya1Byb2Nlc3MpLCBwY21TdG9yZURpcmVjdG9yeShuZXR3
b3JrU2Vzc2lvbiwgcGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5k
aXJlY3RvcnksIHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMucHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yYWdlRGlyZWN0b3J5KSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNy
ZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggYjc3ZjkxODExNDliODNjZGE4ZmE5MzIyYWI1NDVi
OTdhZDY3NDQ2My4uOWU4YWJmZDljYWJlZjlkZmE0OWZkYWQ0YWM2N2Q3ZTg2ZWQwMmY2MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0
aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTg3LDYgKzg3LDcgQEAgdm9pZCBO
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5j
b2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGFwcEhhc1JlcXVlc3RlZENyb3NzV2Vic2l0ZVRy
YWNraW5nUGVybWlzc2lvbjsKICAgICBlbmNvZGVyIDw8IHVzZU5ldHdvcmtMb2FkZXI7CiAgICAg
ZW5jb2RlciA8PCBhbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZTsKKyAgICBl
bmNvZGVyIDw8IHBjbU1hY2hTZXJ2aWNlTmFtZTsKICAgICBlbmNvZGVyIDw8IHJlc291cmNlTG9h
ZFN0YXRpc3RpY3NQYXJhbWV0ZXJzOwogfQogCkBAIC0yOTMsMTIgKzI5NCwxNyBAQCBzdGQ6Om9w
dGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lvbkNy
ZWF0aW9uUGFyYW1ldGVycwogICAgIGRlY29kZXIgPj4gYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRS
b290Q2VydGlmaWNhdGU7CiAgICAgaWYgKCFhbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0
aWZpY2F0ZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICAKKworICAgIHN0ZDo6
b3B0aW9uYWw8U3RyaW5nPiBwY21NYWNoU2VydmljZU5hbWU7CisgICAgZGVjb2RlciA+PiBwY21N
YWNoU2VydmljZU5hbWU7CisgICAgaWYgKCFwY21NYWNoU2VydmljZU5hbWUpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKICAgICBzdGQ6Om9wdGlvbmFsPFJlc291cmNlTG9hZFN0YXRp
c3RpY3NQYXJhbWV0ZXJzPiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVyczsKICAgICBk
ZWNvZGVyID4+IHJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzOwogICAgIGlmICghcmVz
b3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7Ci0gICAgCisKICAgICByZXR1cm4ge3sKICAgICAgICAgKnNlc3Npb25JRAogICAgICAgICAs
IFdURk1vdmUoKmJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcikKQEAgLTM0Nyw2ICszNTMsNyBAQCBz
dGQ6Om9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3JrU2Vz
c2lvbkNyZWF0aW9uUGFyYW1ldGVycwogICAgICAgICAsIFdURk1vdmUoKmFwcEhhc1JlcXVlc3Rl
ZENyb3NzV2Vic2l0ZVRyYWNraW5nUGVybWlzc2lvbikKICAgICAgICAgLCBXVEZNb3ZlKCp1c2VO
ZXR3b3JrTG9hZGVyKQogICAgICAgICAsIFdURk1vdmUoKmFsbG93c0hTVFNXaXRoVW50cnVzdGVk
Um9vdENlcnRpZmljYXRlKQorICAgICAgICAsIFdURk1vdmUoKnBjbU1hY2hTZXJ2aWNlTmFtZSkK
ICAgICAgICAgLCBXVEZNb3ZlKCpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycykKICAg
ICB9fTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBmYjRhMzg3N2IwOWNm
NDNkZGU2NjVlNGQ2MzM5MWVmM2VkYzc2ZGYyLi41YjY0ZjZiMjlkNGZlNWVmMjMxZmQ0M2RiOGIz
YjdmMTAxNTkyMGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0xMDIsNiAr
MTAyLDcgQEAgc3RydWN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBi
b29sIGFwcEhhc1JlcXVlc3RlZENyb3NzV2Vic2l0ZVRyYWNraW5nUGVybWlzc2lvbiB7IGZhbHNl
IH07CiAgICAgYm9vbCB1c2VOZXR3b3JrTG9hZGVyIHsgZmFsc2UgfTsKICAgICBib29sIGFsbG93
c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlIHsgZmFsc2UgfTsKKyAgICBTdHJpbmcg
cGNtTWFjaFNlcnZpY2VOYW1lOwogCiAgICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRl
cnMgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5l
Y3Rpb24uY3BwCmluZGV4IDU2M2EwMzYwZGI1MzE5ODFmZTY3NGIyNjNhZjQwMzIzMWQ5MTk4NWUu
LjY1MDI5YTY4MzJiZGVkYTFmZDBhNGUxYTNmYWE5YzcxZWNlMzVjZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29ubmVjdGlvbi5jcHAKQEAgLTM0LDE4ICszNCwxNyBAQCBuYW1lc3BhY2UgUENNIHsKIAogI2lm
ICFQTEFURk9STShDT0NPQSkKIAotQ29ubmVjdGlvbiBDb25uZWN0aW9uOjpjb25uZWN0aW9uVG9E
YWVtb24oKQorQ29ubmVjdGlvbjo6Q29ubmVjdGlvbihDU3RyaW5nJiYpCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKLSAgICByZXR1cm4geyB9OwogfQogCi12b2lkIENvbm5lY3Rpb246OnNlbmQo
TWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYpCit2b2lkIENvbm5lY3Rpb246OnNlbmQoTWVz
c2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KIAotdm9pZCBDb25uZWN0aW9uOjpzZW5kV2l0aFJlcGx5KE1lc3NhZ2VUeXBlLCBFbmNv
ZGVkTWVzc2FnZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEVuY29kZWRNZXNzYWdlJiYpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBDb25uZWN0aW9uOjpzZW5kV2l0aFJlcGx5KE1lc3Nh
Z2VUeXBlLCBFbmNvZGVkTWVzc2FnZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEVuY29kZWRN
ZXNzYWdlJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5o
CmluZGV4IGFmM2E5MTAyMWNiZTQwMjA3ZTUyYTI1YmNmNTA1OTc2YzhmYjZiYjQuLmNiZmMxZGUw
NTJmNGE5N2FkYWJhMmNhZjJjNGIwM2VjNGI0NGQyZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24u
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQogI2lu
Y2x1ZGUgPHd0Zi9PU09iamVjdFB0ci5oPgpAQCAtMzksMTggKzQwLDE5IEBAIG5hbWVzcGFjZSBQ
Q00gewogZW51bSBjbGFzcyBNZXNzYWdlVHlwZSA6IHVpbnQ4X3Q7CiB1c2luZyBFbmNvZGVkTWVz
c2FnZSA9IFZlY3Rvcjx1aW50OF90PjsKIAotY2xhc3MgQ29ubmVjdGlvbiB7CitjbGFzcyBDb25u
ZWN0aW9uIDogcHVibGljIENhbk1ha2VXZWFrUHRyPENvbm5lY3Rpb24+IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgQ29ubmVjdGlvbiBjb25uZWN0aW9uVG9EYWVtb24oKTsKKyAgICBleHBsaWNpdCBD
b25uZWN0aW9uKENTdHJpbmcmJiBtYWNoU2VydmljZU5hbWUpOwogCi0gICAgdm9pZCBzZW5kKE1l
c3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2FnZSYmKTsKLSAgICB2b2lkIHNlbmRXaXRoUmVwbHkoTWVz
c2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRW5jb2Rl
ZE1lc3NhZ2UmJik+JiYpOworICAgIHZvaWQgc2VuZChNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3Nh
Z2UmJikgY29uc3Q7CisgICAgdm9pZCBzZW5kV2l0aFJlcGx5KE1lc3NhZ2VUeXBlLCBFbmNvZGVk
TWVzc2FnZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEVuY29kZWRNZXNzYWdlJiYpPiYmKSBj
b25zdDsKIAogcHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBDb25uZWN0aW9uKE9T
T2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+JiYpOworICAgIHZvaWQgaW5pdGlhbGl6ZUNvbm5l
Y3Rpb25JZk5lZWRlZCgpIGNvbnN0OwogCi0gICAgT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25f
dD4gbV9jb25uZWN0aW9uOworICAgIGNvbnN0IENTdHJpbmcgbV9tYWNoU2VydmljZU5hbWU7Cisg
ICAgbXV0YWJsZSBPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBtX2Nvbm5lY3Rpb247CiAj
ZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJm
YWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcAppbmRleCA1
ZDEzZTc0YzFkZDI2ODg3OGYyOWM5NzJkYTVmNzFjNzkxMTYyMmViLi42N2E0NjkzMTNjYzgyY2Jm
ZmE0NjQxYjA4NGFlZDlhYTcwMjI3MmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlckludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRl
cmZhY2UuY3BwCkBAIC0xNjcsMTEgKzE2NywyMiBAQCBib29sIG1lc3NhZ2VUeXBlU2VuZHNSZXBs
eShNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyPiYgbWFuYWdl
clBvaW50ZXIoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6OnVuaXF1ZV9wdHI8
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyPj4gbWFuYWdlcjsKKyAgICByZXR1cm4gbWFu
YWdlci5nZXQoKTsKK30KKwordm9pZCBpbml0aWFsaXplUENNU3RvcmFnZUluRGlyZWN0b3J5KGNv
bnN0IFN0cmluZyYgc3RvcmFnZURpcmVjdG9yeSkKK3sKKyAgICBBU1NFUlQoIW1hbmFnZXJQb2lu
dGVyKCkpOworICAgIG1hbmFnZXJQb2ludGVyKCkgPSBtYWtlVW5pcXVlPFByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlcj4obWFrZVVuaXF1ZVJlZjxQQ006OkRhZW1vbkNsaWVudD4oKSwgc3Rv
cmFnZURpcmVjdG9yeSk7Cit9CisKIHN0YXRpYyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXImIGRhZW1vbk1hbmFnZXIoKQogewotICAgIC8vIEZJWE1FOiBHaXZlIHRoZSBtYW5hZ2VyIGEg
dmFsaWQgc3RvcmFnZSBkaXJlY3RvcnkuCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlcj4gaW5zdGFuY2UobWFrZVVuaXF1ZVJlZjxQQ006OkRh
ZW1vbkNsaWVudD4oKSwgU3RyaW5nKCkpOwotICAgIHJldHVybiBpbnN0YW5jZS5nZXQoKTsKKyAg
ICBBU1NFUlQobWFuYWdlclBvaW50ZXIoKSk7CisgICAgcmV0dXJuICptYW5hZ2VyUG9pbnRlcigp
OwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJbmZvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50
ZXJmYWNlLmgKaW5kZXggNDAzNjJkZmEyMjE0ZWM4MzdlNzU3ZTk0YmNkNGFlOGEzY2IyNTBkOS4u
NWNmNGUzZGUyMWQwY2MzOTljMjNhZDA5MDdhMzNkOGVlZjA3YjVhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlckludGVyZmFjZS5oCkBAIC0xMDEsNiArMTAxLDggQEAgdXNpbmcgRW5jb2RlZE1l
c3NhZ2UgPSBWZWN0b3I8dWludDhfdD47CiB2b2lkIGRlY29kZU1lc3NhZ2VBbmRTZW5kVG9NYW5h
Z2VyKE1lc3NhZ2VUeXBlLCBWZWN0b3I8dWludDhfdD4mJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFZlY3Rvcjx1aW50OF90PiYmKT4mJik7CiBib29sIG1lc3NhZ2VUeXBlU2VuZHNS
ZXBseShNZXNzYWdlVHlwZSk7CiAKK3ZvaWQgaW5pdGlhbGl6ZVBDTVN0b3JhZ2VJbkRpcmVjdG9y
eShjb25zdCBTdHJpbmcmKTsKKwogfSAvLyBuYW1lc3BhY2UgUENNCiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNwcAppbmRleCAxMDgyNjUyYjAwZTI3
MTM0ZWI0MWYwZWUyMWE4NmE1ODE5NTQ4NmZkLi45YmNiMzExZTQ1OGIxNmViZTczZDQzZjIzYjYy
YTMxZjNkZjRkODdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNwcApAQCAtMzUsMTEg
KzM1LDExIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogbmFtZXNwYWNlIFBDTSB7CiAKIHRlbXBsYXRl
PE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlLCB0eXBlbmFtZS4uLiBBcmdzPgotdm9pZCBzZW5kTWVz
c2FnZShBcmdzJiYuLi4gYXJncykKK3ZvaWQgTWFuYWdlclByb3h5OjpzZW5kTWVzc2FnZShBcmdz
JiYuLi4gYXJncykgY29uc3QKIHsKICAgICBFbmNvZGVyIGVuY29kZXI7CiAgICAgZW5jb2Rlci5l
bmNvZGUoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKLSAgICBDb25uZWN0aW9uOjpjb25u
ZWN0aW9uVG9EYWVtb24oKS5zZW5kKG1lc3NhZ2VUeXBlLCBlbmNvZGVyLnRha2VCdWZmZXIoKSk7
CisgICAgbV9jb25uZWN0aW9uLnNlbmQobWVzc2FnZVR5cGUsIGVuY29kZXIudGFrZUJ1ZmZlcigp
KTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4gc3RydWN0IFJlcGx5Q2FsbGVyOwpA
QCAtNjEsMTYgKzYxLDE5IEBAIHRlbXBsYXRlPD4gc3RydWN0IFJlcGx5Q2FsbGVyPFN0cmluZz4g
ewogfTsKIAogdGVtcGxhdGU8TWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIHR5cGVuYW1lLi4uIEFy
Z3MsIHR5cGVuYW1lLi4uIFJlcGx5QXJncz4KLXZvaWQgc2VuZE1lc3NhZ2VXaXRoUmVwbHkoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChSZXBseUFyZ3MuLi4pPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBB
cmdzJiYuLi4gYXJncykKK3ZvaWQgTWFuYWdlclByb3h5OjpzZW5kTWVzc2FnZVdpdGhSZXBseShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlcGx5QXJncy4uLik+JiYgY29tcGxldGlvbkhhbmRsZXIs
IEFyZ3MmJi4uLiBhcmdzKSBjb25zdAogewogICAgIEVuY29kZXIgZW5jb2RlcjsKICAgICBlbmNv
ZGVyLmVuY29kZShzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOwotICAgIENvbm5lY3Rpb246
OmNvbm5lY3Rpb25Ub0RhZW1vbigpLnNlbmRXaXRoUmVwbHkobWVzc2FnZVR5cGUsIGVuY29kZXIu
dGFrZUJ1ZmZlcigpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0gKGF1dG8gcmVwbHlCdWZmZXIpIG11dGFibGUgeworICAgIG1fY29ubmVjdGlvbi5zZW5k
V2l0aFJlcGx5KG1lc3NhZ2VUeXBlLCBlbmNvZGVyLnRha2VCdWZmZXIoKSwgW2NvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChhdXRvIHJlcGx5QnVmZmVyKSBt
dXRhYmxlIHsKICAgICAgICAgRGVjb2RlciBkZWNvZGVyKFdURk1vdmUocmVwbHlCdWZmZXIpKTsK
ICAgICAgICAgUmVwbHlDYWxsZXI8UmVwbHlBcmdzLi4uPjo6Y2FsbFJlcGx5KFdURk1vdmUoZGVj
b2RlciksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICB9KTsKIH0KIAorTWFuYWdl
clByb3h5OjpNYW5hZ2VyUHJveHkoY29uc3QgU3RyaW5nJiBtYWNoU2VydmljZU5hbWUpCisgICAg
OiBtX2Nvbm5lY3Rpb24obWFjaFNlcnZpY2VOYW1lLnV0ZjgoKSkgeyB9CisKIHZvaWQgTWFuYWdl
clByb3h5OjpzdG9yZVVuYXR0cmlidXRlZChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCYmIHBjbSkKIHsKICAgICBzZW5kTWVzc2FnZTxNZXNzYWdlVHlwZTo6U3RvcmVVbmF0dHJpYnV0
ZWQ+KHBjbSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmgKaW5kZXggMTUxMTA5ODc2ODk0MTdh
M2IxODZhMjQyMDNjYzFjYzM2Mjc2YmYxZi4uN2MwYWYwZjYzOTBkMzZjZGMxZmE2YjYxMDRjMzg0
YjYzNjc1ZTUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaApAQCAtMjUsOCArMjUsMTAg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
bm5lY3Rpb24uaCIKICNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRl
cmZhY2UuaCIKICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTM1LDYgKzM3LDggQEAgbmFt
ZXNwYWNlIFBDTSB7CiBjbGFzcyBNYW5hZ2VyUHJveHkgOiBwdWJsaWMgTWFuYWdlckludGVyZmFj
ZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CisgICAgTWFuYWdlclBy
b3h5KGNvbnN0IFN0cmluZyYgbWFjaFNlcnZpY2VOYW1lKTsKKwogICAgIHZvaWQgc3RvcmVVbmF0
dHJpYnV0ZWQoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJikgZmluYWw7CiAgICAg
dm9pZCBoYW5kbGVBdHRyaWJ1dGlvbihXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluJiYgcmVkaXJlY3REb21haW4sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eVVSTCkgZmluYWw7CiAgICAgdm9pZCBjbGVhcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
IGZpbmFsOwpAQCAtNTMsNiArNTcsMTQgQEAgcHVibGljOgogICAgIHZvaWQgc3RhcnRUaW1lcklt
bWVkaWF0ZWx5Rm9yVGVzdGluZygpIGZpbmFsOwogICAgIHZvaWQgZGVzdHJveVN0b3JlRm9yVGVz
dGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIHZvaWQgYWxsb3dU
TFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKGNvbnN0IFdlYkNvcmU6OkNlcnRp
ZmljYXRlSW5mbyYpIGZpbmFsOworCitwcml2YXRlOgorICAgIHRlbXBsYXRlPE1lc3NhZ2VUeXBl
IG1lc3NhZ2VUeXBlLCB0eXBlbmFtZS4uLiBBcmdzPgorICAgIHZvaWQgc2VuZE1lc3NhZ2UoQXJn
cyYmLi4uKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgdHlw
ZW5hbWUuLi4gQXJncywgdHlwZW5hbWUuLi4gUmVwbHlBcmdzPgorICAgIHZvaWQgc2VuZE1lc3Nh
Z2VXaXRoUmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXBseUFyZ3MuLi4pPiYmLCBBcmdz
JiYuLi4pIGNvbnN0OworCisgICAgQ29ubmVjdGlvbiBtX2Nvbm5lY3Rpb247CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBQQ00KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYWVt
b25Db25uZWN0aW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGFlbW9uQ29u
bmVjdGlvbkNvY29hLm1tCmluZGV4IDYxYjU4NTA2NjU4YTNmOTUzNWVlZmIxYTYwNWEyNTVkODcy
NDc3MWEuLjFjNmU2YmZlNzMxNTM5ZWExMTg0MzczYThjZTZiYTU1ZTJhOWM5YjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
Y29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYWVtb25Db25uZWN0aW9uQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9j
b2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhZW1vbkNvbm5lY3Rpb25Db2NvYS5tbQpAQCAt
MzMsMjYgKzMzLDI1IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBuYW1lc3BhY2UgUENNIHsKIAot
Q29ubmVjdGlvbjo6Q29ubmVjdGlvbihPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiYmIGNv
bm5lY3Rpb24pCi0gICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkgeyB9CitD
b25uZWN0aW9uOjpDb25uZWN0aW9uKENTdHJpbmcmJiBtYWNoU2VydmljZU5hbWUpCisgICAgOiBt
X21hY2hTZXJ2aWNlTmFtZShXVEZNb3ZlKG1hY2hTZXJ2aWNlTmFtZSkpIHsgfQogCi1Db25uZWN0
aW9uIENvbm5lY3Rpb246OmNvbm5lY3Rpb25Ub0RhZW1vbigpCit2b2lkIENvbm5lY3Rpb246Omlu
aXRpYWxpemVDb25uZWN0aW9uSWZOZWVkZWQoKSBjb25zdAogewotICAgIEFTU0VSVChSdW5Mb29w
Ojppc01haW4oKSk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE9TT2JqZWN0UHRyPHhwY19j
b25uZWN0aW9uX3Q+PiBjb25uZWN0aW9uOwotICAgIGlmICghY29ubmVjdGlvbi5nZXQoKSkgewot
ICAgICAgICBjb25uZWN0aW9uLmdldCgpID0gYWRvcHRPU09iamVjdCh4cGNfY29ubmVjdGlvbl9j
cmVhdGVfbWFjaF9zZXJ2aWNlKCJjb20uYXBwbGUud2Via2l0LmFkYXR0cmlidXRpb25kLnNlcnZp
Y2UiLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCAwKSk7Ci0gICAgICAgIHhwY19jb25uZWN0
aW9uX3NldF9ldmVudF9oYW5kbGVyKGNvbm5lY3Rpb24uZ2V0KCkuZ2V0KCksIF4oeHBjX29iamVj
dF90IGV2ZW50KSB7Ci0gICAgICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAg
ICAgICAgICAgaWYgKGV2ZW50ID09IFhQQ19FUlJPUl9DT05ORUNUSU9OX0lOVEVSUlVQVEVEKSB7
Ci0gICAgICAgICAgICAgICAgLy8gRGFlbW9uIGNyYXNoZWQsIHdlIHdpbGwgbmVlZCB0byBtYWtl
IGEgbmV3IGNvbm5lY3Rpb24gdG8gYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGRhZW1vbi4KLSAgICAg
ICAgICAgICAgICBjb25uZWN0aW9uLmdldCgpID0gbnVsbHB0cjsKLSAgICAgICAgICAgIH0gZWxz
ZQotICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICB9KTsKLSAg
ICAgICAgeHBjX2Nvbm5lY3Rpb25fYWN0aXZhdGUoY29ubmVjdGlvbi5nZXQoKS5nZXQoKSk7Ci0g
ICAgfQotICAgIHJldHVybiBDb25uZWN0aW9uKE9TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+
KGNvbm5lY3Rpb24uZ2V0KCkpKTsKKyAgICBpZiAobV9jb25uZWN0aW9uKQorICAgICAgICByZXR1
cm47CisgICAgbV9jb25uZWN0aW9uID0gYWRvcHRPU09iamVjdCh4cGNfY29ubmVjdGlvbl9jcmVh
dGVfbWFjaF9zZXJ2aWNlKG1fbWFjaFNlcnZpY2VOYW1lLmRhdGEoKSwgZGlzcGF0Y2hfZ2V0X21h
aW5fcXVldWUoKSwgMCkpOworICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5kbGVyKG1f
Y29ubmVjdGlvbi5nZXQoKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSh4cGNfb2Jq
ZWN0X3QgZXZlbnQpIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgaWYgKGV2ZW50ID09IFhQQ19FUlJPUl9DT05ORUNUSU9OX0lOVkFMSUQpCisg
ICAgICAgICAgICBXVEZMb2dBbHdheXMoIkZhaWxlZCB0byBjb25uZWN0IHRvIG1hY2ggc2Vydmlj
ZSAlcywgbGlrZWx5IGJlY2F1c2UgaXQgaXMgbm90IHJlZ2lzdGVyZWQgd2l0aCBsYXVuY2hkIiwg
d2Vha1RoaXMtPm1fbWFjaFNlcnZpY2VOYW1lLmRhdGEoKSk7CisgICAgICAgIGlmIChldmVudCA9
PSBYUENfRVJST1JfQ09OTkVDVElPTl9JTlRFUlJVUFRFRCkgeworICAgICAgICAgICAgLy8gRGFl
bW9uIGNyYXNoZWQsIHdlIHdpbGwgbmVlZCB0byBtYWtlIGEgbmV3IGNvbm5lY3Rpb24gdG8gYSBu
ZXcgaW5zdGFuY2Ugb2YgdGhlIGRhZW1vbi4KKyAgICAgICAgICAgIHdlYWtUaGlzLT5tX2Nvbm5l
Y3Rpb24gPSBudWxscHRyOworICAgICAgICB9CisgICAgfSk7CisgICAgeHBjX2Nvbm5lY3Rpb25f
YWN0aXZhdGUobV9jb25uZWN0aW9uLmdldCgpKTsKIH0KIAogc3RhdGljIE9TT2JqZWN0UHRyPHhw
Y19vYmplY3RfdD4gZGljdGlvbmFyeUZyb21NZXNzYWdlKE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBl
LCBFbmNvZGVkTWVzc2FnZSYmIG1lc3NhZ2UpCkBAIC02MywyNSArNjIsMjIgQEAgc3RhdGljIE9T
T2JqZWN0UHRyPHhwY19vYmplY3RfdD4gZGljdGlvbmFyeUZyb21NZXNzYWdlKE1lc3NhZ2VUeXBl
IG1lc3NhZ2VUeXBlLAogICAgIHJldHVybiBkaWN0aW9uYXJ5OwogfQogCi12b2lkIENvbm5lY3Rp
b246OnNlbmQoTWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYgbWVzc2Fn
ZSkKK3ZvaWQgQ29ubmVjdGlvbjo6c2VuZChNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgRW5jb2Rl
ZE1lc3NhZ2UmJiBtZXNzYWdlKSBjb25zdAogewotICAgIGlmICghbV9jb25uZWN0aW9uKSB7Ci0g
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgaW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5l
ZWRlZCgpOwogCiAgICAgeHBjX2Nvbm5lY3Rpb25fc2VuZF9tZXNzYWdlKG1fY29ubmVjdGlvbi5n
ZXQoKSwgZGljdGlvbmFyeUZyb21NZXNzYWdlKG1lc3NhZ2VUeXBlLCBXVEZNb3ZlKG1lc3NhZ2Up
KS5nZXQoKSk7CiB9CiAKLXZvaWQgQ29ubmVjdGlvbjo6c2VuZFdpdGhSZXBseShNZXNzYWdlVHlw
ZSBtZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKEVuY29kZWRNZXNzYWdlJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBDb25u
ZWN0aW9uOjpzZW5kV2l0aFJlcGx5KE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlLCBFbmNvZGVkTWVz
c2FnZSYmIG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRW5jb2RlZE1lc3NhZ2UmJik+
JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2Nvbm5lY3Rpb24pIHsK
LSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcih7IH0pOwotICAgIH0KKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAg
IGluaXRpYWxpemVDb25uZWN0aW9uSWZOZWVkZWQoKTsKIAogICAgIGF1dG8gZGljdGlvbmFyeSA9
IGRpY3Rpb25hcnlGcm9tTWVzc2FnZShtZXNzYWdlVHlwZSwgV1RGTW92ZShtZXNzYWdlKSk7CiAg
ICAgeHBjX2Nvbm5lY3Rpb25fc2VuZF9tZXNzYWdlX3dpdGhfcmVwbHkobV9jb25uZWN0aW9uLmdl
dCgpLCBkaWN0aW9uYXJ5LmdldCgpLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBtYWtlQmxv
Y2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICh4
cGNfb2JqZWN0X3QgcmVwbHkpIG11dGFibGUgeworICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOwogICAgICAgICBpZiAoeHBjX2dldF90eXBlKHJlcGx5KSAhPSBYUENfVFlQRV9ESUNU
SU9OQVJZKSB7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYi5p
biBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuTmV0
d29ya1Byb2Nlc3Muc2IuaW4KaW5kZXggMTk3NGI4ZTlmMjU5YWVlZmM5NDQ2NDY4NGIyMDRkMzUw
ZjM4ZDQxYi4uYjQwYmMzY2E3MGY0NmJiM2IyMjdhYzgyNDlmMDljY2JiNGVlNTJkMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5O
ZXR3b3JrUHJvY2Vzcy5zYi5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL21h
Yy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiLmluCkBAIC0zNTgsNiArMzU4LDcg
QEAKICkKIAogKGFsbG93IG1hY2gtbG9va3VwIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLndlYmtp
dC5hZGF0dHJpYnV0aW9uZC5zZXJ2aWNlIikpCisoYWxsb3cgbWFjaC1sb29rdXAgKGdsb2JhbC1u
YW1lICJvcmcud2Via2l0LnBjbXRlc3RkYWVtb24uc2VydmljZSIpKQogCiAod2l0aC1maWx0ZXIg
KHVpZCAwKQogICAgIChhbGxvdyBtYWNoLWxvb2t1cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9uRW50cnlQ
b2ludC5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2Ev
RGFlbW9uL1BDTURhZW1vbkVudHJ5UG9pbnQubW0KaW5kZXggODUxNTE0MzM5M2I2MzNkZDBhNjE1
ODkyNGJiZTllNDcwNzM1ZGM0Yy4uNTQ4ZmY1MTY0YzZkNmYxOWJlNTFkNGY0NjhkZDdiZjVkNDNh
NDg2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGll
cy9Db2NvYS9EYWVtb24vUENNRGFlbW9uRW50cnlQb2ludC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9QQ01EYWVtb25FbnRyeVBv
aW50Lm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFhQQ1V0aWxpdGllcy5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1w
b3J0IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbXBvcnQgPHd0Zi9GaWxlU3lzdGVtLmg+
CiAjaW1wb3J0IDx3dGYvSGFzaFNldC5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CkBAIC03Niw5ICs3Nyw5IEBAIHN0YXRpYyB2b2lk
IGNvbm5lY3Rpb25FdmVudEhhbmRsZXIoeHBjX29iamVjdF90IHJlcXVlc3QpCiAgICAgZGVjb2Rl
TWVzc2FnZUFuZFNlbmRUb01hbmFnZXIobWVzc2FnZVR5cGUsIFdURk1vdmUoZW5jb2RlZE1lc3Nh
Z2UpLCByZXBseVNlbmRlcihtZXNzYWdlVHlwZSwgcmVxdWVzdCkpOwogfQogCi1zdGF0aWMgdm9p
ZCBzdGFydExpc3RlbmluZ0Zvck1hY2hTZXJ2aWNlQ29ubmVjdGlvbnMoKQorc3RhdGljIHZvaWQg
c3RhcnRMaXN0ZW5pbmdGb3JNYWNoU2VydmljZUNvbm5lY3Rpb25zKGNvbnN0IGNoYXIqIHNlcnZp
Y2VOYW1lKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxPU09iamVjdFB0cjx4cGNfY29u
bmVjdGlvbl90Pj4gbGlzdGVuZXIgPSB4cGNfY29ubmVjdGlvbl9jcmVhdGVfbWFjaF9zZXJ2aWNl
KCJjb20uYXBwbGUud2Via2l0LmFkYXR0cmlidXRpb25kLnNlcnZpY2UiLCBkaXNwYXRjaF9nZXRf
bWFpbl9xdWV1ZSgpLCBYUENfQ09OTkVDVElPTl9NQUNIX1NFUlZJQ0VfTElTVEVORVIpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90Pj4gbGlz
dGVuZXIgPSB4cGNfY29ubmVjdGlvbl9jcmVhdGVfbWFjaF9zZXJ2aWNlKHNlcnZpY2VOYW1lLCBk
aXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBYUENfQ09OTkVDVElPTl9NQUNIX1NFUlZJQ0VfTElT
VEVORVIpOwogICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5kbGVyKGxpc3RlbmVyLmdl
dCgpLmdldCgpLCBeKHhwY19vYmplY3RfdCBwZWVyKSB7CiAgICAgICAgIGlmICh4cGNfZ2V0X3R5
cGUocGVlcikgIT0gWFBDX1RZUEVfQ09OTkVDVElPTikKICAgICAgICAgICAgIHJldHVybjsKQEAg
LTg2LDYgKzg3LDggQEAgc3RhdGljIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JNYWNoU2VydmljZUNv
bm5lY3Rpb25zKCkKICAgICAgICAgLy8gRklYTUU6IEFkZCBhbiBlbnRpdGxlbWVudCBjaGVjayBo
ZXJlIHNvIHRoYXQgb25seSB0aGUgbmV0d29yayBwcm9jZXNzIGNhbiBzdWNjZXNzZnVsbHkgY29u
bmVjdC4KIAogICAgICAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihwZWVyLCBe
KHhwY19vYmplY3RfdCBldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50ID09IFhQQ19FUlJP
Ul9DT05ORUNUSU9OX0lOVkFMSUQpCisgICAgICAgICAgICAgICAgTlNMb2coQCJGYWlsZWQgdG8g
c3RhcnQgbGlzdGVuaW5nIGZvciBjb25uZWN0aW9ucyB0byBtYWNoIHNlcnZpY2UgJXMsIGxpa2Vs
eSBiZWNhdXNlIGl0IGlzIG5vdCByZWdpc3RlcmVkIHdpdGggbGF1bmNoZCIsIHNlcnZpY2VOYW1l
KTsKICAgICAgICAgICAgIGlmIChldmVudCA9PSBYUENfRVJST1JfQ09OTkVDVElPTl9JTlRFUlJV
UFRFRCkgewogICAgICAgICAgICAgICAgIE5TTG9nKEAicmVtb3ZpbmcgcGVlciBjb25uZWN0aW9u
ICVwIiwgcGVlcik7CiAgICAgICAgICAgICAgICAgcGVlcnMoKS5yZW1vdmUocGVlcik7CkBAIC0x
MDQsNiArMTA3LDcgQEAgc3RhdGljIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JNYWNoU2VydmljZUNv
bm5lY3Rpb25zKCkKIAogc3RhdGljIHZvaWQgcmVnaXN0ZXJTY2hlZHVsZWRBY3Rpdml0eUhhbmRs
ZXIoKQogeworICAgIE5TTG9nKEAiUmVnaXN0ZXJpbmcgWFBDIGFjdGl2aXR5Iik7CiAgICAgeHBj
X2FjdGl2aXR5X3JlZ2lzdGVyKCJjb20uYXBwbGUud2Via2l0LmFkYXR0cmlidXRpb25kLmFjdGl2
aXR5IiwgWFBDX0FDVElWSVRZX0NIRUNLX0lOLCBeKHhwY19hY3Rpdml0eV90IGFjdGl2aXR5KSB7
CiAgICAgICAgIGlmICh4cGNfYWN0aXZpdHlfZ2V0X3N0YXRlKGFjdGl2aXR5KSA9PSBYUENfQUNU
SVZJVFlfU1RBVEVfQ0hFQ0tfSU4pIHsKICAgICAgICAgICAgIHhwY19vYmplY3RfdCBjcml0ZXJp
YSA9IHhwY19hY3Rpdml0eV9jb3B5X2NyaXRlcmlhKGFjdGl2aXR5KTsKQEAgLTEyNSwxNSArMTI5
LDIxIEBAIHN0YXRpYyB2b2lkIGVudGVyU2FuZGJveCgpCiAKIGludCBQQ01EYWVtb25NYWluKGlu
dCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikKIHsKLSAgICBpZiAoYXJnYyAhPSAyIHx8IHN0cmNt
cChhcmd2WzFdLCAicnVuQXNEYWVtb24iKSkgewotICAgICAgICBOU0xvZyhAIlRoaXMgZXhlY3V0
YWJsZSBpcyBpbnRlbmRlZCB0byBiZSBydW4gYXMgYSBkYWVtb24uIik7CisgICAgaWYgKGFyZ2Mg
PCA1IHx8IHN0cmNtcChhcmd2WzFdLCAiLS1tYWNoU2VydmljZU5hbWUiKSB8fCBzdHJjbXAoYXJn
dlszXSwgIi0tc3RvcmFnZUxvY2F0aW9uIikpIHsKKyAgICAgICAgTlNMb2coQCJVc2FnZTogJXMg
LS1tYWNoU2VydmljZU5hbWUgPG5hbWU+IC0tc3RvcmFnZUxvY2F0aW9uIDxsb2NhdGlvbj4gWy0t
c3RhcnRBY3Rpdml0eV0iLCBhcmd2WzBdKTsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KKyAg
ICBjb25zdCBjaGFyKiBtYWNoU2VydmljZU5hbWUgPSBhcmd2WzJdOworICAgIGNvbnN0IGNoYXIq
IHN0b3JhZ2VMb2NhdGlvbiA9IGFyZ3ZbNF07CisgICAgYm9vbCBzdGFydEFjdGl2aXR5ID0gYXJn
YyA+IDUgJiYgIXN0cmNtcChhcmd2WzVdLCAiLS1zdGFydEFjdGl2aXR5Iik7CisKICAgICBAYXV0
b3JlbGVhc2Vwb29sIHsKICAgICAgICAgZW50ZXJTYW5kYm94KCk7Ci0gICAgICAgIHN0YXJ0TGlz
dGVuaW5nRm9yTWFjaFNlcnZpY2VDb25uZWN0aW9ucygpOwotICAgICAgICByZWdpc3RlclNjaGVk
dWxlZEFjdGl2aXR5SGFuZGxlcigpOworICAgICAgICBzdGFydExpc3RlbmluZ0Zvck1hY2hTZXJ2
aWNlQ29ubmVjdGlvbnMobWFjaFNlcnZpY2VOYW1lKTsKKyAgICAgICAgaWYgKHN0YXJ0QWN0aXZp
dHkpCisgICAgICAgICAgICByZWdpc3RlclNjaGVkdWxlZEFjdGl2aXR5SGFuZGxlcigpOwogICAg
ICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkKCk7CisgICAgICAgIFBDTTo6aW5pdGlhbGl6
ZVBDTVN0b3JhZ2VJbkRpcmVjdG9yeShGaWxlU3lzdGVtOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJl
cHJlc2VudGF0aW9uKHN0b3JhZ2VMb2NhdGlvbikpOwogICAgIH0KICAgICBDRlJ1bkxvb3BSdW4o
KTsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgK
aW5kZXggN2QwYWU3OWUyMTE4NDg0ZWVhYzlkZGM4OWJmY2E1YzFlMjA5ZDRmMC4uMDg1MTIzZDBk
NGZhYmU5OWNmZjExNGYxNjFlNjQ0ODBkMzQ4OTM1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLmgKQEAgLTc2LDYgKzc2LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzKSwgaW9zKDExLjApKQogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBj
b3B5LCBzZXR0ZXI9c2V0SFNUU1N0b3JhZ2VEaXJlY3Rvcnk6KSBOU1VSTCAqaHN0c1N0b3JhZ2VE
aXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljKSBCT09MIGVuYWJsZUluQXBwQnJvd3NlclByaXZhY3lGb3JUZXN0aW5n
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiBAcHJvcGVydHkgKG5v
bmF0b21pYykgQk9PTCBhbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworQHByb3BlcnR5IChub25hdG9t
aWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0UENNTWFjaFNlcnZpY2VOYW1lOikgTlNTdHJp
bmcgKnBjbU1hY2hTZXJ2aWNlTmFtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNv
cHkpIE5TVVJMICphbHRlcm5hdGl2ZVNlcnZpY2VzU3RvcmFnZURpcmVjdG9yeSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIG51
bGxhYmxlLCBjb3B5KSBOU1VSTCAqc3RhbmRhbG9uZUFwcGxpY2F0aW9uVVJMIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24ubW0KaW5kZXggYWUzOWI2NjE4NTA5YzlmMmJlZWE0ZjlkOTU1YzA0MWFkYjdh
ZjM3Ni4uNTkwMDc1MmY3YjA0MTQ5NjYwYTU3ZGQyZTRiNDI5NjYxODcwMDUwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQpAQCAtNTIxLDYgKzUyMSwxNiBAQCBz
dGF0aWMgdm9pZCBjaGVja1VSTEFyZ3VtZW50KE5TVVJMICp1cmwpCiAgICAgX2NvbmZpZ3VyYXRp
b24tPnNldEFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlKGFsbG93cyk7CiB9
CiAKKy0gKE5TU3RyaW5nICopcGNtTWFjaFNlcnZpY2VOYW1lCit7CisgICAgcmV0dXJuIF9jb25m
aWd1cmF0aW9uLT5wY21NYWNoU2VydmljZU5hbWUoKTsKK30KKworLSAodm9pZClzZXRQQ01NYWNo
U2VydmljZU5hbWU6KE5TU3RyaW5nICopbmFtZQoreworICAgIF9jb25maWd1cmF0aW9uLT5zZXRQ
Q01NYWNoU2VydmljZU5hbWUobmFtZSk7Cit9CisKIC0gKEJPT0wpYWxsTG9hZHNCbG9ja2VkQnlE
ZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZwogewogICAgIHJldHVybiBfY29u
ZmlndXJhdGlvbi0+YWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25z
Rm9yVGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCAzZGE2YzExNmI5MzY4OGQxYmFjNzNk
N2U2ZDlkNDk5ZTA0NDEyYWZlLi41MTEzNDhmMjBmYWI5ZjQ2NWY4ZmRlOTAxZmU2MDdmN2U3Mzc3
ZjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMjA2MCw2ICsyMDYwLDcgQEAgV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAgICAgbmV0d29y
a1Nlc3Npb25QYXJhbWV0ZXJzLnJlcXVpcmVzU2VjdXJlSFRUUFNQcm94eUNvbm5lY3Rpb24gPSBt
X2NvbmZpZ3VyYXRpb24tPnJlcXVpcmVzU2VjdXJlSFRUUFNQcm94eUNvbm5lY3Rpb24oKTsKICAg
ICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50
aWNhdGlvbiA9IG1fY29uZmlndXJhdGlvbi0+cHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50
aWNhdGlvbigpOwogICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5hbGxvd3NIU1RTV2l0aFVu
dHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSA9IG1fY29uZmlndXJhdGlvbi0+YWxsb3dzSFNUU1dpdGhV
bnRydXN0ZWRSb290Q2VydGlmaWNhdGUoKTsKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMu
cGNtTWFjaFNlcnZpY2VOYW1lID0gbV9jb25maWd1cmF0aW9uLT5wY21NYWNoU2VydmljZU5hbWUo
KTsKIAogICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzID0gV1RGTW92ZShu
ZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5jcHAKaW5kZXggYmQ0Yjk1N2FiZDExMTEwZTMwOTNmNTI4YjUzNjhlM2UxZGE0ODFi
My4uZmQ0YjA4ZTYxYWJjMzYwNDdkN2JlYjEwMDIxZTRlZWExNTg4Njg1ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcApAQCAtNTEsNiArNTEsNyBAQCBXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24oSXNQ
ZXJzaXN0ZW50IGlzUGVycwogI2lmIEhBVkUoQVJLSVRfSU5MSU5FX1BSRVZJRVcpCiAgICAgICAg
IHNldE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KFdlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRN
b2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSgpKTsKICNlbmRpZgorICAgICAgICAvLyBGSVhNRTog
R2l2ZSBtX3BjbU1hY2hTZXJ2aWNlTmFtZSBhIGRlZmF1bHQgdmFsdWUgYW5kIHJlbW92ZSBQQ006
Ok1hbmFnZXJJbnRlcmZhY2Ugb25jZSByZGFyOi8vODA3MDEwOTggaXMgY2xvc2VkLgogICAgIH0K
IH0KIApAQCAtMTAwLDYgKzEwMSw3IEBAIFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bj4gV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNvcHkoKSBjb25zdAogICAgIGNvcHkt
Pm1fc3RhbmRhbG9uZUFwcGxpY2F0aW9uVVJMID0gdGhpcy0+bV9zdGFuZGFsb25lQXBwbGljYXRp
b25VUkw7CiAgICAgY29weS0+bV9lbmFibGVJbkFwcEJyb3dzZXJQcml2YWN5Rm9yVGVzdGluZyA9
IHRoaXMtPm1fZW5hYmxlSW5BcHBCcm93c2VyUHJpdmFjeUZvclRlc3Rpbmc7CiAgICAgY29weS0+
bV9hbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSA9IHRoaXMtPm1fYWxsb3dz
SFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGU7CisgICAgY29weS0+bV9wY21NYWNoU2Vy
dmljZU5hbWUgPSB0aGlzLT5tX3BjbU1hY2hTZXJ2aWNlTmFtZTsKICNpZiBQTEFURk9STShDT0NP
QSkKICAgICBpZiAobV9wcm94eUNvbmZpZ3VyYXRpb24pCiAgICAgICAgIGNvcHktPm1fcHJveHlD
b25maWd1cmF0aW9uID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVDb3B5KG51bGxwdHIsIHRo
aXMtPm1fcHJveHlDb25maWd1cmF0aW9uLmdldCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24uaAppbmRleCBlZGRhYjQ0ZTNhMjg5YzFhNDU0N2YxYzQ2MDkyOTE5YzZjMjc4
MGM3Li43MzRhYjY2MmM4NGEzNTI4N2QyNmQ5ZTViMjJlOTdkNzQ4ZjA2MmY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKQEAgLTE4MCw2ICsxODAsOSBAQCBwdWJsaWM6
CiAgICAgYm9vbCBhbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGU7IH0KICAg
ICB2b2lkIHNldEFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlKGJvb2wgYWxs
b3dzKSB7IG1fYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUgPSBhbGxvd3M7
IH0KICAgICAKKyAgICB2b2lkIHNldFBDTU1hY2hTZXJ2aWNlTmFtZShTdHJpbmcmJiBuYW1lKSB7
IG1fcGNtTWFjaFNlcnZpY2VOYW1lID0gV1RGTW92ZShuYW1lKTsgfQorICAgIGNvbnN0IFN0cmlu
ZyYgcGNtTWFjaFNlcnZpY2VOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9wY21NYWNoU2VydmljZU5h
bWU7IH0KKwogcHJpdmF0ZToKICAgICBJc1BlcnNpc3RlbnQgbV9pc1BlcnNpc3RlbnQgeyBJc1Bl
cnNpc3RlbnQ6Ok5vIH07CiAKQEAgLTIzMiw2ICsyMzUsNyBAQCBwcml2YXRlOgogICAgIFVSTCBt
X3N0YW5kYWxvbmVBcHBsaWNhdGlvblVSTDsKICAgICBib29sIG1fZW5hYmxlSW5BcHBCcm93c2Vy
UHJpdmFjeUZvclRlc3RpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9hbGxvd3NIU1RTV2l0aFVu
dHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSB7IGZhbHNlIH07CisgICAgU3RyaW5nIG1fcGNtTWFjaFNl
cnZpY2VOYW1lOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxDRkRpY3Rpb25h
cnlSZWY+IG1fcHJveHlDb25maWd1cmF0aW9uOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmM1YjIyZTk3NjlhNzY0MWVhOTkzZWE0
MWNmNTZmNTU4MGMwODM3Ni4uMjY2NGZmZTdiNjBkZWY0MWJjYzU4N2M1OGRiYjJmYTFlZWEyNzE1
MiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE5IEBACisyMDIxLTA5LTEzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHVuaXQgdGVzdCB0aGF0IHVzZXMgUENNIGRhZW1v
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMTkx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RQQ01EYWVtb24ueGNjb25maWc6IEFkZGVkLgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRy
aWJ1dGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmN1cnJlbnRFeGVjdXRhYmxlTG9j
YXRpb24pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6dGVzdERhZW1vblBMaXN0KToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2Ev
VGVzdFBDTURhZW1vbk1haW4uYzogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5l
Y3Rpb24uY3BwLgorICAgICAgICAobWFpbik6CisKIDIwMjEtMDktMTAgIEFsZXggQ2hyaXN0ZW5z
ZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgaW5mcmFzdHJ1Y3R1
cmUgdG8gYWxsb3cgVExTIGR1cmluZyBQQ00gdGVzdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFBDTURhZW1vbi54Y2NvbmZpZyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFBDTURhZW1vbi54Y2NvbmZpZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yZTdlYzY4MTZhODk4YjQ4NzIyN2RlMDRlZjM5NTkxNjA4OGIzMDUxCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0UENNRGFlbW9u
LnhjY29uZmlnCkBAIC0wLDAgKzEsMjcgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
Ky8vIGFyZSBtZXQ6CisvLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8v
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKy8vICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisvLyBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
Ly8gSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisvLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisvLyBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisvLyBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKy8vIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKy8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKworUFJPRFVDVF9OQU1FID0gVGVzdFBDTURhZW1vbjsKKworT1RIRVJfTERGTEFHUyA9
IC1mcmFtZXdvcmsgV2ViS2l0OworRlJBTUVXT1JLX1NFQVJDSF9QQVRIUyA9ICQoQlVJTFRfUFJP
RFVDVFNfRElSKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlv
bnMvVGVzdFdlYktpdEFQSS1tYWNPUy1pbnRlcm5hbC5lbnRpdGxlbWVudHMgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEktbWFjT1MtaW50ZXJuYWwuZW50
aXRsZW1lbnRzCmluZGV4IDM4MWFhMzI1MzMyNTRhZjBmMThkOGJiMjU4ZjQ2OTQ3ODRmMDRjZjEu
LmNmMDhlNGI2NGEzYjVjOThkYTUxM2JjZDRiYTQ4ZGYyZGUwMzkxZGEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS1tYWNPUy1pbnRl
cm5hbC5lbnRpdGxlbWVudHMKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9u
cy9UZXN0V2ViS2l0QVBJLW1hY09TLWludGVybmFsLmVudGl0bGVtZW50cwpAQCAtMiw2ICsyLDgg
QEAKIDwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIg
Imh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgogPHBsaXN0
IHZlcnNpb249IjEuMCI+CiA8ZGljdD4KKwk8a2V5PmNvbS5hcHBsZS5wcml2YXRlLnhwYy5sYXVu
Y2hkLmpvYi1tYW5hZ2VyPC9rZXk+CisJPHN0cmluZz5UZXN0V2ViS2l0QVBJPC9zdHJpbmc+CiAJ
PGtleT5jb20uYXBwbGUuaGlkLm1hbmFnZXIudXNlci1hY2Nlc3MtZGV2aWNlPC9rZXk+CiAJPHRy
dWUvPgogCTxrZXk+Y29tLmFwcGxlLnByaXZhdGUuaGlkLmNsaWVudC5ldmVudC1maWx0ZXI8L2tl
eT4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdl
YktpdEFQSS1tYWNPUy5lbnRpdGxlbWVudHMgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3Vy
YXRpb25zL1Rlc3RXZWJLaXRBUEktbWFjT1MuZW50aXRsZW1lbnRzCmluZGV4IGY0ODhhZWE2MjM0
ODM0MjQwYTg3N2RlNDg0Y2NiNDJkMTIwMzgyZDEuLmMwMzMxNmYyZjJhZGY1MjBlZTc1NGQzYTQ3
MjRkNGQ5NmE1ODJlMjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJh
dGlvbnMvVGVzdFdlYktpdEFQSS1tYWNPUy5lbnRpdGxlbWVudHMKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLW1hY09TLmVudGl0bGVtZW50cwpA
QCAtMiw2ICsyLDggQEAKIDwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJ
U1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5k
dGQiPgogPHBsaXN0IHZlcnNpb249IjEuMCI+CiA8ZGljdD4KKwk8a2V5PmNvbS5hcHBsZS5wcml2
YXRlLnhwYy5sYXVuY2hkLmpvYi1tYW5hZ2VyPC9rZXk+CisJPHN0cmluZz5UZXN0V2ViS2l0QVBJ
PC9zdHJpbmc+CiAJPGtleT5rZXljaGFpbi1hY2Nlc3MtZ3JvdXBzPC9rZXk+CiAJPGFycmF5Pgog
CQk8c3RyaW5nPmNvbS5hcHBsZS5UZXN0V2ViS2l0QVBJPC9zdHJpbmc+CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25maWcg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25m
aWcKaW5kZXggZmNiODJiYWZlNzYwYTUxMjBhMjI1YmJkYjI0NjNiYTljMzBlMjNlMy4uYzA2MmU2
MzIxZmMyNTNhNmQ2ZDVlYjFlOGY5OGM1ZmJhMDJmZGQzNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLnhjY29uZmlnCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS54Y2NvbmZpZwpA
QCAtNDMsNiArNDMsMTAgQEAgRlJBTUVXT1JLX1NFQVJDSF9QQVRIUyA9ICQoRlJBTUVXT1JLX1NF
QVJDSF9QQVRIU18kKFdLX0NPQ09BX1RPVUNIKSk7CiBGUkFNRVdPUktfU0VBUkNIX1BBVEhTXyA9
ICQoaW5oZXJpdGVkKSAkKFdLX1BSSVZBVEVfRlJBTUVXT1JLU19ESVIpICQoU1lTVEVNX0xJQlJB
UllfRElSKS9Qcml2YXRlRnJhbWV3b3JrcyAkKFNZU1RFTV9MSUJSQVJZX0RJUikvRnJhbWV3b3Jr
cy9XZWJLaXQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3JrczsKIEZSQU1FV09SS19TRUFS
Q0hfUEFUSFNfY29jb2F0b3VjaCA9ICQoaW5oZXJpdGVkKSAkKFdLX1BSSVZBVEVfRlJBTUVXT1JL
U19ESVIpOwogCitXS19BUFBTRVJWRVJTVVBQT1JUX0xERkxBR1MgPSAkKFdLX0FQUFNFUlZFUlNV
UFBPUlRfTERGTEFHU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKK1dLX0FQUFNFUlZFUlNVUFBPUlRf
TERGTEFHU19tYWNvc3ggPSAkKFdLX0FQUFNFUlZFUlNVUFBPUlRfTERGTEFHUyQoV0tfTUFDT1Nf
MTIwMCkpOworV0tfQVBQU0VSVkVSU1VQUE9SVF9MREZMQUdTX01BQ09TX1NJTkNFXzEyMDAgPSAt
ZnJhbWV3b3JrIEFwcFNlcnZlclN1cHBvcnQKKwogV0tfQVVUSEtJVF9MREZMQUdTID0gJChXS19B
VVRIS0lUX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CiBXS19BVVRIS0lUX0xERkxBR1Nf
aXBob25lb3MgPSAkKFdLX0FVVEhLSVRfTERGTEFHUyQoV0tfSU9TXzEzKSk7CiBXS19BVVRIS0lU
X0xERkxBR1NfaXBob25lc2ltdWxhdG9yID0gJChXS19BVVRIS0lUX0xERkxBR1MkKFdLX0lPU18x
MykpOwpAQCAtODYsNyArOTAsNyBAQCBXS19VSUtJVE1BQ0hFTFBFUl9MREZMQUdTX21hY2NhdGFs
eXN0ID0gLWZyYW1ld29yayBVSUtpdE1hY0hlbHBlcjsKIAogT1RIRVJfQ1BMVVNQTFVTRkxBR1Mg
PSAkKGluaGVyaXRlZCkgLWlzeXN0ZW0gJChTREtST09UKS9TeXN0ZW0vTGlicmFyeS9GcmFtZXdv
cmtzL1N5c3RlbS5mcmFtZXdvcmsvUHJpdmF0ZUhlYWRlcnM7CiAKLU9USEVSX0xERkxBR1MgPSAk
KGluaGVyaXRlZCkgLWxndGVzdCAtZm9yY2VfbG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvbGli
VGVzdFdlYktpdEFQSS5hIC1mcmFtZXdvcmsgSmF2YVNjcmlwdENvcmUgLWZyYW1ld29yayBXZWJL
aXQgLWxXZWJDb3JlVGVzdFN1cHBvcnQgJChXS19BVVRIS0lUX0xERkxBR1MpIC1mcmFtZXdvcmsg
TmV0d29yayAkKFdLX0hJRF9MREZMQUdTKSAkKFdLX09QRU5HTF9MREZMQUdTKSAkKFdLX1BERktJ
VF9MREZMQUdTKSAkKFdLX1NZU1RFTV9MREZMQUdTKSAkKFdLX1VJS0lUTUFDSEVMUEVSX0xERkxB
R1MpICQoV0tfVklTSU9OS0lUQ09SRV9MREZMQUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1f
JChXS19DT0NPQV9UT1VDSCkpOworT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAtbGd0ZXN0
IC1mb3JjZV9sb2FkICQoQlVJTFRfUFJPRFVDVFNfRElSKS9saWJUZXN0V2ViS2l0QVBJLmEgLWZy
YW1ld29yayBKYXZhU2NyaXB0Q29yZSAtZnJhbWV3b3JrIFdlYktpdCAtbFdlYkNvcmVUZXN0U3Vw
cG9ydCAkKFdLX0FQUFNFUlZFUlNVUFBPUlRfTERGTEFHUykgJChXS19BVVRIS0lUX0xERkxBR1Mp
IC1mcmFtZXdvcmsgTmV0d29yayAkKFdLX0hJRF9MREZMQUdTKSAkKFdLX09QRU5HTF9MREZMQUdT
KSAkKFdLX1BERktJVF9MREZMQUdTKSAkKFdLX1NZU1RFTV9MREZMQUdTKSAkKFdLX1VJS0lUTUFD
SEVMUEVSX0xERkxBR1MpICQoV0tfVklTSU9OS0lUQ09SRV9MREZMQUdTKSAkKE9USEVSX0xERkxB
R1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkpOwogT1RIRVJfTERGTEFHU19QTEFURk9STV8g
PSAtZnJhbWV3b3JrIENvY29hIC1mcmFtZXdvcmsgQ2FyYm9uOwogCiAvLyBGSVhNRTogVGhpcyBz
aG91bGQgbm90IGJlIGJ1aWx0IG9uIGlPUy4gSW5zdGVhZCB3ZSBzaG91bGQgY3JlYXRlIGFuZCB1
c2UgYSBUZXN0V2ViS2l0QVBJIGFwcGxpY2F0aW9uLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAxOGViZjk0MTAzYmE4NGNlNjQwYzJkMzExZGZlM2JmZmM1MzY3ZGVlLi5hY2Y1YWUyNTJkMmFl
ZGZkNTUxMGJhZDdjMTY0MzczMzk5MTdiYjY5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MzYsNiArMzYsNyBAQAogCQkJCTUzN0NGODQ4MjJFRkQ3MjAwMEM2RUJCMyAvKiBDaGVjayAueGNm
aWxlbGlzdHMgKi8sCiAJCQkpOwogCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCTVDMUIxRDFDMjZF
QzJFRUMwMDg4MkRBMiAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTdDODNFMDMwMUQw
QTVFMUIwMEZFQkNGMyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTdDODNFMDMyMUQw
QTVFMUQwMEZFQkNGMyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsKQEAgLTQ3OCw2
ICs0NzksNyBAQAogCQk1QzEyMUU4RDI0MTA3MDQ5MDA0ODZGOUIgLyogQ29udGVudFdvcmxkUGx1
Z0luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMx
MjFFOEMyNDEwNzAzMjAwNDg2RjlCIC8qIENvbnRlbnRXb3JsZFBsdWdJbi5tbSAqLzsgfTsKIAkJ
NUMxNkY4RkMyMzBDOTQzNzAwNzRDNEE4IC8qIFRleHRTaXplLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMxNkY4RkIyMzBDOTQyQjAwNzRDNEE4IC8q
IFRleHRTaXplLm1tICovOyB9OwogCQk1QzE5QTUyNDFGRDBGNjAxMDBFRUEzMjMgLyogQ29va2ll
UHJpdmF0ZUJyb3dzaW5nLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUMxOUE1MjMxRkQwRjMyNjAwRUVBMzIzIC8qIENvb2tpZVByaXZhdGVCcm93c2lu
Zy5tbSAqLzsgfTsKKwkJNUMxQjFEMTcyNkVDMjdERTAwODgyREEyIC8qIFRlc3RQQ01EYWVtb25N
YWluLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzFC
MUQxNjI2RUMyN0M1MDA4ODJEQTIgLyogVGVzdFBDTURhZW1vbk1haW4uYyAqLzsgfTsKIAkJNUMy
M0RGMEIyMjQ2MDE1ODAwRjQ1NEI2IC8qIENoYWxsZW5nZS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMjNERjBBMjI0NUM5RDcwMEY0NTRCNiAvKiBD
aGFsbGVuZ2UubW0gKi87IH07CiAJCTVDMjkzNjkzMUQ1QkY3MEQwMERFQUIxRSAvKiBDb29raWVB
Y2NlcHRQb2xpY3kubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1QzI5MzY5MTFENUJGNjNFMDBERUFCMUUgLyogQ29va2llQWNjZXB0UG9saWN5Lm1tICov
OyB9OwogCQk1QzI5MzY5NjFENUMwMEVEMDBERUFCMUUgLyogQ29va2llTWVzc2FnZS5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMjkz
Njk0MUQ1QkZEMTkwMERFQUIxRSAvKiBDb29raWVNZXNzYWdlLmh0bWwgKi87IH07CkBAIC0xMjk3
LDYgKzEyOTksMTMgQEAKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCiAvKiBCZWdp
biBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLworCQk1QzFCMUQxQjI2RUMyRUVDMDA4
ODJEQTIgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0geworCQkJaXNhID0gUEJYQ29udGFp
bmVySXRlbVByb3h5OworCQkJY29udGFpbmVyUG9ydGFsID0gMDhGQjc3OTNGRTg0MTU1REMwMkFB
QzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOworCQkJcHJveHlUeXBlID0gMTsKKwkJCXJlbW90ZUds
b2JhbElEU3RyaW5nID0gNUMxQjFEMDgyNkVDMjc4NTAwODgyREEyOworCQkJcmVtb3RlSW5mbyA9
IFRlc3RQQ01EYWVtb247CisJCX07CiAJCTVDOUQ5MjIxMjJEN0RDODQwMDhFOTI2NiAvKiBQQlhD
b250YWluZXJJdGVtUHJveHkgKi8gPSB7CiAJCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7
CiAJCQljb250YWluZXJQb3J0YWwgPSAwOEZCNzc5M0ZFODQxNTVEQzAyQUFDMDcgLyogUHJvamVj
dCBvYmplY3QgKi87CkBAIC0yMzMxLDYgKzIzNDAsOSBAQAogCQk1QzEyMUU4QzI0MTA3MDMyMDA0
ODZGOUIgLyogQ29udGVudFdvcmxkUGx1Z0luLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gQ29udGVudFdvcmxkUGx1Z0luLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1QzE2RjhGQjIzMEM5NDJCMDA3NEM0QTggLyogVGV4dFNpemUubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXh0U2l6ZS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMxOUE1MjMxRkQwRjMyNjAwRUVBMzIzIC8qIENvb2tpZVBy
aXZhdGVCcm93c2luZy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IENvb2tpZVByaXZhdGVCcm93c2luZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NUMxQjFEMTQyNkVDMjc4NTAwODgyREEyIC8qIFRlc3RQQ01EYWVtb24gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhlY3V0
YWJsZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFRlc3RQQ01EYWVtb247IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTVDMUIxRDE2MjZFQzI3QzUwMDg4MkRBMiAv
KiBUZXN0UENNRGFlbW9uTWFpbi5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBUZXN0UENNRGFlbW9uTWFpbi5j
OyBwYXRoID0gY29jb2EvVGVzdFBDTURhZW1vbk1haW4uYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNUMxQjFEMUEyNkVDMjg0RTAwODgyREEyIC8qIFRlc3RQQ01EYWVtb24ueGNjb25m
aWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
LnhjY29uZmlnOyBwYXRoID0gVGVzdFBDTURhZW1vbi54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNUMyM0RGMEEyMjQ1QzlENzAwRjQ1NEI2IC8qIENoYWxsZW5nZS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENoYWxsZW5nZS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMyOTM2OTExRDVCRjYzRTAwREVBQjFFIC8qIENv
b2tpZUFjY2VwdFBvbGljeS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IENvb2tpZUFjY2VwdFBvbGljeS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NUMyOTM2OTQxRDVCRkQxOTAwREVBQjFFIC8qIENvb2tpZU1lc3NhZ2UuaHRtbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQuaHRtbDsgcGF0aCA9IENvb2tpZU1lc3NhZ2UuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTMxNjIsNiArMzE3NCwxMyBAQAogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ug
c2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICov
CisJCTVDMUIxRDBFMjZFQzI3ODUwMDg4MkRBMiAvKiBGcmFtZXdvcmtzICovID0geworCQkJaXNh
ID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgz
NjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CisJCX07CiAJCTdDODNERjY0MUQwQTU5MEMwMEZFQkNGMyAvKiBGcmFtZXdv
cmtzICovID0gewogCQkJaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtMzMwNiw2ICszMzI1LDcgQEAKIAkJCQk1QzcyRThD
RTI0NEZGQ0U0MDAzODFFQjcgLyogVGVzdExlZ2FjeURvd25sb2FkRGVsZWdhdGUubW0gKi8sCiAJ
CQkJMkQxQzA0QTUxRDc2Mjk4QjAwMEE2ODE2IC8qIFRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCAq
LywKIAkJCQkyRDFDMDRBNjFENzYyOThCMDAwQTY4MTYgLyogVGVzdE5hdmlnYXRpb25EZWxlZ2F0
ZS5tbSAqLywKKwkJCQk1QzFCMUQxNjI2RUMyN0M1MDA4ODJEQTIgLyogVGVzdFBDTURhZW1vbk1h
aW4uYyAqLywKIAkJCQk1MTYyODEyMzIzMjVDMTdBMDBCQjdFNDIgLyogVGVzdFBERkRvY3VtZW50
LmggKi8sCiAJCQkJNTE2MjgxMjQyMzI1QzE3QjAwQkI3RTQyIC8qIFRlc3RQREZEb2N1bWVudC5t
bSAqLywKIAkJCQlBMTRGQzU4RDFCOEFFMzY1MDBEMTA3RUIgLyogVGVzdFByb3RvY29sLmggKi8s
CkBAIC0zMzY0LDYgKzMzODQsNyBAQAogCQkxQUI2NzRBREZFOUQ1NEI1MTFDQTJDQkIgLyogUHJv
ZHVjdHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTVD
MUIxRDE0MjZFQzI3ODUwMDg4MkRBMiAvKiBUZXN0UENNRGFlbW9uICovLAogCQkJCThERDc2RkEx
MDQ4NkFBNzYwMEQ5NkI1RSAvKiBUZXN0V2ViS2l0QVBJICovLAogCQkJCTdDODNFMDIzMUQwQTVB
RTQwMEZFQkNGMyAvKiBUZXN0V1RGICovLAogCQkJCUJDNTc1OTgwMTI2RTc0QUYwMDZGMEYxMiAv
KiBJbmplY3RlZEJ1bmRsZVRlc3RXZWJLaXRBUEkuYnVuZGxlICovLApAQCAtNDI5Myw2ICs0MzE0
LDcgQEAKIAkJCQlCQzkwOTU3RjEyNTU0Q0Y5MDAwODM3NTYgLyogRGVidWdSZWxlYXNlLnhjY29u
ZmlnICovLAogCQkJCUJDNTc1QUUyMTI2RTg4QjEwMDZGMEYxMiAvKiBJbmplY3RlZEJ1bmRsZS54
Y2NvbmZpZyAqLywKIAkJCQlBMUI4OUI5OTIyMUUwMjlGMDBFQjRDRUEgLyogU0RLVmFyaWFudC54
Y2NvbmZpZyAqLywKKwkJCQk1QzFCMUQxQTI2RUMyODRFMDA4ODJEQTIgLyogVGVzdFBDTURhZW1v
bi54Y2NvbmZpZyAqLywKIAkJCQk1NzM1RjAyNTFGM0E0RUE2MDAwRUU4MDEgLyogVGVzdFdlYktp
dEFQSS1pT1MuZW50aXRsZW1lbnRzICovLAogCQkJCTUxRUIxMjUzMjRDNjZCQ0IwMDBDQjAzMCAv
KiBUZXN0V2ViS2l0QVBJLW1hY09TLWludGVybmFsLmVudGl0bGVtZW50cyAqLywKIAkJCQk3QUIw
MTczOTIzRkIyQkYwMDAyRjgzNjYgLyogVGVzdFdlYktpdEFQSS1tYWNPUy5lbnRpdGxlbWVudHMg
Ki8sCkBAIC00OTc5LDYgKzUwMDEsMjMgQEAKIC8qIEVuZCBQQlhHcm91cCBzZWN0aW9uICovCiAK
IC8qIEJlZ2luIFBCWE5hdGl2ZVRhcmdldCBzZWN0aW9uICovCisJCTVDMUIxRDA4MjZFQzI3ODUw
MDg4MkRBMiAvKiBUZXN0UENNRGFlbW9uICovID0geworCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0
OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDVDMUIxRDExMjZFQzI3ODUwMDg4MkRBMiAv
KiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiVGVzdFBDTURh
ZW1vbiIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJCQk1QzFCMUQwQjI2RUMyNzg1MDA4ODJE
QTIgLyogU291cmNlcyAqLywKKwkJCQk1QzFCMUQwRTI2RUMyNzg1MDA4ODJEQTIgLyogRnJhbWV3
b3JrcyAqLywKKwkJCSk7CisJCQlidWlsZFJ1bGVzID0gKAorCQkJKTsKKwkJCWRlcGVuZGVuY2ll
cyA9ICgKKwkJCSk7CisJCQluYW1lID0gVGVzdFBDTURhZW1vbjsKKwkJCXByb2R1Y3RJbnN0YWxs
UGF0aCA9ICIkKEhPTUUpL2JpbiI7CisJCQlwcm9kdWN0TmFtZSA9IFRlc3RQQ01EYWVtb247CisJ
CQlwcm9kdWN0UmVmZXJlbmNlID0gNUMxQjFEMTQyNkVDMjc4NTAwODgyREEyIC8qIFRlc3RQQ01E
YWVtb24gKi87CisJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnRvb2wi
OworCQl9OwogCQk3QzgzREU5NTFEMEE1OTBDMDBGRUJDRjMgLyogVGVzdFdURkxpYnJhcnkgKi8g
PSB7CiAJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0
ID0gN0M4M0RGNjUxRDBBNTkwQzAwRkVCQ0YzIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBm
b3IgUEJYTmF0aXZlVGFyZ2V0ICJUZXN0V1RGTGlicmFyeSIgKi87CkBAIC01MTM4LDYgKzUxNzcs
NyBAQAogCQkJCUJDNTc1OTdGMTI2RTc0QUYwMDZGMEYxMiAvKiBJbmplY3RlZEJ1bmRsZVRlc3RX
ZWJLaXRBUEkgKi8sCiAJCQkJQTEzRUJCNDgxQjg3MzM5RTAwMDk3MTEwIC8qIFdlYlByb2Nlc3NQ
bHVnSW4gKi8sCiAJCQkJNTM3Q0Y4NDMyMkVGRDY0MTAwQzZFQkIzIC8qIEFwcGx5IENvbmZpZ3Vy
YXRpb24gdG8gWENGaWxlTGlzdHMgKi8sCisJCQkJNUMxQjFEMDgyNkVDMjc4NTAwODgyREEyIC8q
IFRlc3RQQ01EYWVtb24gKi8sCiAJCQkpOwogCQl9OwogLyogRW5kIFBCWFByb2plY3Qgc2VjdGlv
biAqLwpAQCAtNTIxNCw2ICs1MjU0LDE0IEBACiAvKiBFbmQgUEJYU2hlbGxTY3JpcHRCdWlsZFBo
YXNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYU291cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAq
LworCQk1QzFCMUQwQjI2RUMyNzg1MDA4ODJEQTIgLyogU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9
IFBCWFNvdXJjZXNCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsK
KwkJCWZpbGVzID0gKAorCQkJCTVDMUIxRDE3MjZFQzI3REUwMDg4MkRBMiAvKiBUZXN0UENNRGFl
bW9uTWFpbi5jIGluIFNvdXJjZXMgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CiAJCTdDODNERTk2MUQwQTU5MEMwMEZFQkNGMyAvKiBT
b3VyY2VzICovID0gewogCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtNjA3OCw2ICs2MTI2LDExIEBACiAvKiBFbmQgUEJY
U291cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhUYXJnZXREZXBlbmRl
bmN5IHNlY3Rpb24gKi8KKwkJNUMxQjFEMUMyNkVDMkVFQzAwODgyREEyIC8qIFBCWFRhcmdldERl
cGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OworCQkJdGFyZ2V0
ID0gNUMxQjFEMDgyNkVDMjc4NTAwODgyREEyIC8qIFRlc3RQQ01EYWVtb24gKi87CisJCQl0YXJn
ZXRQcm94eSA9IDVDMUIxRDFCMjZFQzJFRUMwMDg4MkRBMiAvKiBQQlhDb250YWluZXJJdGVtUHJv
eHkgKi87CisJCX07CiAJCTVDOUQ5MjIyMjJEN0RDODQwMDhFOTI2NiAvKiBQQlhUYXJnZXREZXBl
bmRlbmN5ICovID0gewogCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKIAkJCXRhcmdldCA9
IDVDOUQ5MjE0MjJEN0RBMDIwMDhFOTI2NiAvKiBHZW5lcmF0ZSBVbmlmaWVkIFNvdXJjZXMgKi87
CkBAIC02MTYwLDYgKzYyMTMsMjIgQEAKIAkJCX07CiAJCQluYW1lID0gUmVsZWFzZTsKIAkJfTsK
KwkJNUMxQjFEMTIyNkVDMjc4NTAwODgyREEyIC8qIERlYnVnICovID0geworCQkJaXNhID0gWENC
dWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVDMUIx
RDFBMjZFQzI4NEUwMDg4MkRBMiAvKiBUZXN0UENNRGFlbW9uLnhjY29uZmlnICovOworCQkJYnVp
bGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJ
fTsKKwkJCW5hbWUgPSBEZWJ1ZzsKKwkJfTsKKwkJNUMxQjFEMTMyNkVDMjc4NTAwODgyREEyIC8q
IFJlbGVhc2UgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VD
b25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUMxQjFEMUEyNkVDMjg0RTAwODgyREEyIC8qIFRlc3RQ
Q01EYWVtb24ueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1Rf
TkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07
CiAJCTVDOUQ5MjFBMjJEN0RBMDIwMDhFOTI2NiAvKiBEZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9IFhD
QnVpbGRDb25maWd1cmF0aW9uOwogCQkJYnVpbGRTZXR0aW5ncyA9IHsKQEAgLTYyODgsNiArNjM1
NywxNSBAQAogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwogCQkJZGVmYXVs
dENvbmZpZ3VyYXRpb25OYW1lID0gUmVsZWFzZTsKIAkJfTsKKwkJNUMxQjFEMTEyNkVDMjc4NTAw
ODgyREEyIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJU
ZXN0UENNRGFlbW9uIiAqLyA9IHsKKwkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CisJCQli
dWlsZENvbmZpZ3VyYXRpb25zID0gKAorCQkJCTVDMUIxRDEyMjZFQzI3ODUwMDg4MkRBMiAvKiBE
ZWJ1ZyAqLywKKwkJCQk1QzFCMUQxMzI2RUMyNzg1MDA4ODJEQTIgLyogUmVsZWFzZSAqLywKKwkJ
CSk7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisJCQlkZWZhdWx0Q29u
ZmlndXJhdGlvbk5hbWUgPSBSZWxlYXNlOworCQl9OwogCQk1QzlEOTIxOTIyRDdEQTAyMDA4RTky
NjYgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkdl
bmVyYXRlIFVuaWZpZWQgU291cmNlcyIgKi8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25M
aXN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQppbmRleCA4
N2Q3ZmU4ZWU3ZTg4N2IyMGI3ZThhNjY3ZDg5NDcxNjQ3YTYzOTk3Li4zYTZhZDliY2FjNjg5MTAy
YjVmYjM5YmQ5M2VmZTI3OTFjMjdlMTkxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCkBAIC0yNywxMyAr
MjcsMTggQEAKIAogI2ltcG9ydCAiSFRUUFNlcnZlci5oIgogI2ltcG9ydCAiUGxhdGZvcm1VdGls
aXRpZXMuaCIKKyNpbXBvcnQgIlRlc3QuaCIKICNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdh
dGUuaCIKICNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKICNpbXBvcnQgIlV0aWxpdGllcy5oIgor
I2ltcG9ydCA8V2ViS2l0L1dLTWFpbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZh
dGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oPgogI2lt
cG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktp
dC9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oPgorI2ltcG9ydCA8bWFjaC1vL2R5
bGQuaD4KKyNpbXBvcnQgPHd0Zi9PU09iamVjdFB0ci5oPgorI2ltcG9ydCA8d3RmL3NwaS9kYXJ3
aW4vWFBDU1BJLmg+CiAKICNpZiBIQVZFKFJTQV9CU1NBKQogCkBAIC0zNjAsNiArMzY1LDEzMCBA
QCBURVNUKEV2ZW50QXR0cmlidXRpb24sIERhdGFiYXNlTG9jYXRpb24pCiAgICAgRVhQRUNUX0VR
KHdlYlZpZXdUb0tlZXBOZXR3b3JrUHJvY2Vzc0FsaXZlLmdldCgpLmNvbmZpZ3VyYXRpb24ud2Vi
c2l0ZURhdGFTdG9yZS5fbmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyLCBvcmlnaW5hbE5ldHdvcmtQ
cm9jZXNzUGlkKTsKIH0KIAorLy8gRklYTUU6IEdldCB0aGlzIHdvcmtpbmcgaW4gdGhlIGlPUyBz
aW11bGF0b3IuCisjaWYgUExBVEZPUk0oTUFDKQorCitzdGF0aWMgUmV0YWluUHRyPE5TVVJMPiBj
dXJyZW50RXhlY3V0YWJsZUxvY2F0aW9uKCkKK3sKKyAgICB1aW50MzJfdCBzaXplIHsgMCB9Owor
ICAgIF9OU0dldEV4ZWN1dGFibGVQYXRoKG51bGxwdHIsICZzaXplKTsKKyAgICBWZWN0b3I8Y2hh
cj4gYnVmZmVyOworICAgIGJ1ZmZlci5yZXNpemUoc2l6ZSArIDEpOworICAgIF9OU0dldEV4ZWN1
dGFibGVQYXRoKGJ1ZmZlci5kYXRhKCksICZzaXplKTsKKyAgICBidWZmZXJbc2l6ZV0gPSAnXDAn
OworICAgIGF1dG8gcGF0aFN0cmluZyA9IGFkb3B0TlMoW1tOU1N0cmluZyBhbGxvY10gaW5pdFdp
dGhVVEY4U3RyaW5nOmJ1ZmZlci5kYXRhKCldKTsKKyAgICByZXR1cm4gYWRvcHROUyhbW05TVVJM
IGFsbG9jXSBpbml0RmlsZVVSTFdpdGhQYXRoOnBhdGhTdHJpbmcuZ2V0KCkgaXNEaXJlY3Rvcnk6
Tk9dKTsKK30KKworc3RhdGljIFJldGFpblB0cjxOU1VSTD4gY3VycmVudEV4ZWN1dGFibGVEaXJl
Y3RvcnkoKQoreworICAgIHJldHVybiBbY3VycmVudEV4ZWN1dGFibGVMb2NhdGlvbigpIFVSTEJ5
RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF07Cit9CisKK3N0YXRpYyBSZXRhaW5QdHI8TlNVUkw+
IHRlc3RQQ01EYWVtb25Mb2NhdGlvbigpCit7CisgICAgcmV0dXJuIFtjdXJyZW50RXhlY3V0YWJs
ZURpcmVjdG9yeSgpIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIlRlc3RQQ01EYWVtb24i
IGlzRGlyZWN0b3J5Ok5PXTsKK30KKworI2lmIEhBVkUoT1NfTEFVTkNIRF9KT0IpCisKK3N0YXRp
YyBPU09iamVjdFB0cjx4cGNfb2JqZWN0X3Q+IHRlc3REYWVtb25QTGlzdChOU1VSTCAqc3RvcmFn
ZUxvY2F0aW9uKQoreworICAgIGF1dG8gcGxpc3QgPSBhZG9wdE9TT2JqZWN0KHhwY19kaWN0aW9u
YXJ5X2NyZWF0ZShudWxscHRyLCBudWxscHRyLCAwKSk7CisgICAgeHBjX2RpY3Rpb25hcnlfc2V0
X3N0cmluZyhwbGlzdC5nZXQoKSwgIl9NYW5hZ2VkQnkiLCAiVGVzdFdlYktpdEFQSSIpOworICAg
IHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmcocGxpc3QuZ2V0KCksICJMYWJlbCIsICJvcmcud2Vi
a2l0LnBjbXRlc3RkYWVtb24iKTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfYm9vbChwbGlzdC5n
ZXQoKSwgIkxhdW5jaE9ubHlPbmNlIiwgdHJ1ZSk7CisKKyAgICB7CisgICAgICAgIGF1dG8gZW52
aXJvbm1lbnRWYXJpYWJsZXMgPSBhZG9wdE9TT2JqZWN0KHhwY19kaWN0aW9uYXJ5X2NyZWF0ZShu
dWxscHRyLCBudWxscHRyLCAwKSk7CisgICAgICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmco
ZW52aXJvbm1lbnRWYXJpYWJsZXMuZ2V0KCksICJEWUxEX0ZSQU1FV09SS19QQVRIIiwgY3VycmVu
dEV4ZWN1dGFibGVEaXJlY3RvcnkoKS5nZXQoKS5maWxlU3lzdGVtUmVwcmVzZW50YXRpb24pOwor
ICAgICAgICB4cGNfZGljdGlvbmFyeV9zZXRfdmFsdWUocGxpc3QuZ2V0KCksICJFbnZpcm9ubWVu
dFZhcmlhYmxlcyIsIGVudmlyb25tZW50VmFyaWFibGVzLmdldCgpKTsKKyAgICB9CisgICAgewor
ICAgICAgICBhdXRvIG1hY2hTZXJ2aWNlcyA9IGFkb3B0T1NPYmplY3QoeHBjX2RpY3Rpb25hcnlf
Y3JlYXRlKG51bGxwdHIsIG51bGxwdHIsIDApKTsKKyAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0
X2Jvb2wobWFjaFNlcnZpY2VzLmdldCgpLCAib3JnLndlYmtpdC5wY210ZXN0ZGFlbW9uLnNlcnZp
Y2UiLCB0cnVlKTsKKyAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3ZhbHVlKHBsaXN0LmdldCgp
LCAiTWFjaFNlcnZpY2VzIiwgbWFjaFNlcnZpY2VzLmdldCgpKTsKKyAgICB9CisgICAgeworICAg
ICAgICBhdXRvIHByb2dyYW1Bcmd1bWVudHMgPSBhZG9wdE9TT2JqZWN0KHhwY19hcnJheV9jcmVh
dGUobnVsbHB0ciwgMCkpOworICAgICAgICBhdXRvIGV4ZWN1dGFibGVMb2NhdGlvbiA9IHRlc3RQ
Q01EYWVtb25Mb2NhdGlvbigpOworICAgICAgICB4cGNfYXJyYXlfc2V0X3N0cmluZyhwcm9ncmFt
QXJndW1lbnRzLmdldCgpLCBYUENfQVJSQVlfQVBQRU5ELCBleGVjdXRhYmxlTG9jYXRpb24uZ2V0
KCkuZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKTsKKyAgICAgICAgeHBjX2FycmF5X3NldF9zdHJp
bmcocHJvZ3JhbUFyZ3VtZW50cy5nZXQoKSwgWFBDX0FSUkFZX0FQUEVORCwgIi0tbWFjaFNlcnZp
Y2VOYW1lIik7CisgICAgICAgIHhwY19hcnJheV9zZXRfc3RyaW5nKHByb2dyYW1Bcmd1bWVudHMu
Z2V0KCksIFhQQ19BUlJBWV9BUFBFTkQsICJvcmcud2Via2l0LnBjbXRlc3RkYWVtb24uc2Vydmlj
ZSIpOworICAgICAgICB4cGNfYXJyYXlfc2V0X3N0cmluZyhwcm9ncmFtQXJndW1lbnRzLmdldCgp
LCBYUENfQVJSQVlfQVBQRU5ELCAiLS1zdG9yYWdlTG9jYXRpb24iKTsKKyAgICAgICAgeHBjX2Fy
cmF5X3NldF9zdHJpbmcocHJvZ3JhbUFyZ3VtZW50cy5nZXQoKSwgWFBDX0FSUkFZX0FQUEVORCwg
c3RvcmFnZUxvY2F0aW9uLmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbik7CisgICAgICAgIHhwY19k
aWN0aW9uYXJ5X3NldF92YWx1ZShwbGlzdC5nZXQoKSwgIlByb2dyYW1Bcmd1bWVudHMiLCBwcm9n
cmFtQXJndW1lbnRzLmdldCgpKTsKKyAgICB9CisgICAgcmV0dXJuIHBsaXN0OworfQorCisjZWxz
ZQorCitzdGF0aWMgUmV0YWluUHRyPE5TRGljdGlvbmFyeT4gdGVzdERhZW1vblBMaXN0KE5TVVJM
ICpzdG9yYWdlTG9jYXRpb24pCit7CisgICAgcmV0dXJuIEB7CisgICAgICAgIEAiTGFiZWwiIDog
QCJvcmcud2Via2l0LnBjbXRlc3RkYWVtb24iLAorICAgICAgICBAIkxhdW5jaE9ubHlPbmNlIiA6
IEBZRVMsCisgICAgICAgIEAiRW52aXJvbm1lbnRWYXJpYWJsZXMiIDogQHsgQCJEWUxEX0ZSQU1F
V09SS19QQVRIIiA6IGN1cnJlbnRFeGVjdXRhYmxlRGlyZWN0b3J5KCkuZ2V0KCkucGF0aCB9LAor
ICAgICAgICBAIk1hY2hTZXJ2aWNlcyIgOiBAeyBAIm9yZy53ZWJraXQucGNtdGVzdGRhZW1vbi5z
ZXJ2aWNlIiA6IEBZRVMgfSwKKyAgICAgICAgQCJQcm9ncmFtQXJndW1lbnRzIiA6IEBbCisgICAg
ICAgICAgICB0ZXN0UENNRGFlbW9uTG9jYXRpb24oKS5nZXQoKS5wYXRoLAorICAgICAgICAgICAg
QCItLW1hY2hTZXJ2aWNlTmFtZSIsCisgICAgICAgICAgICBAIm9yZy53ZWJraXQucGNtdGVzdGRh
ZW1vbi5zZXJ2aWNlIiwKKyAgICAgICAgICAgIEAiLS1zdG9yYWdlTG9jYXRpb24iLAorICAgICAg
ICAgICAgc3RvcmFnZUxvY2F0aW9uLnBhdGgKKyAgICAgICAgXQorICAgIH07Cit9CisKKyNlbmRp
ZgorCitURVNUKEV2ZW50QXR0cmlidXRpb24sIERhZW1vbikKK3sKKyAgICBOU0ZpbGVNYW5hZ2Vy
ICpmaWxlTWFuYWdlciA9IFtOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXTsKKyAgICBOU1VS
TCAqdGVtcERpciA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W05TVGVtcG9yYXJ5RGlyZWN0b3J5
KCkgc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiRXZlbnRBdHRyaWJ1dGlvbkRhZW1v
blRlc3QiXSBpc0RpcmVjdG9yeTpZRVNdOworICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOworICAg
IGlmIChbZmlsZU1hbmFnZXIgZmlsZUV4aXN0c0F0UGF0aDp0ZW1wRGlyLnBhdGhdKQorICAgICAg
ICBbZmlsZU1hbmFnZXIgcmVtb3ZlSXRlbUF0VVJMOnRlbXBEaXIgZXJyb3I6JmVycm9yXTsKKyAg
ICBFWFBFQ1RfTlVMTChlcnJvcik7CisKKyAgICBhdXRvIHBsaXN0ID0gdGVzdERhZW1vblBMaXN0
KHRlbXBEaXIpOworI2lmIEhBVkUoT1NfTEFVTkNIRF9KT0IpCisgICAgYXV0byBsYXVuY2hESm9i
ID0gYWRvcHROUyhbW09TTGF1bmNoZEpvYiBhbGxvY10gaW5pdFdpdGhQbGlzdDpwbGlzdC5nZXQo
KV0pOworICAgIFtsYXVuY2hESm9iIHN1Ym1pdDomZXJyb3JdOworI2Vsc2UKKyAgICBOU1VSTCAq
cGxpc3RMb2NhdGlvbiA9IFt0ZW1wRGlyIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIkRh
ZW1vbkluZm8ucGxpc3QiXTsKKyAgICBCT09MIHN1Y2Nlc3MgPSBbZmlsZU1hbmFnZXIgY3JlYXRl
RGlyZWN0b3J5QXRVUkw6dGVtcERpciB3aXRoSW50ZXJtZWRpYXRlRGlyZWN0b3JpZXM6WUVTIGF0
dHJpYnV0ZXM6bmlsIGVycm9yOiZlcnJvcl07CisgICAgRVhQRUNUX1RSVUUoc3VjY2Vzcyk7Cisg
ICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgIHN1Y2Nlc3MgPSBbcGxpc3Qgd3JpdGVUb1VSTDpw
bGlzdExvY2F0aW9uIGVycm9yOiZlcnJvcl07CisgICAgRVhQRUNUX1RSVUUoc3VjY2Vzcyk7Cisg
ICAgc3lzdGVtKFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAibGF1bmNoY3RsIGxvYWQgJUAi
LCBwbGlzdExvY2F0aW9uLnBhdGhdLlVURjhTdHJpbmcpOworI2VuZGlmCisgICAgRVhQRUNUX05V
TEwoZXJyb3IpOworCisgICAgYXV0byBkYXRhU3RvcmVDb25maWd1cmF0aW9uID0gYWRvcHROUyhb
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAgZGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5nZXQoKS5wY21NYWNoU2VydmljZU5hbWUgPSBAIm9yZy53ZWJraXQucGNtdGVz
dGRhZW1vbi5zZXJ2aWNlIjsKKyAgICBhdXRvIHZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKKyAgICB2aWV3Q29uZmlndXJhdGlvbi5nZXQo
KS53ZWJzaXRlRGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10g
X2luaXRXaXRoQ29uZmlndXJhdGlvbjpkYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuZ2V0
KCk7CisgICAgcnVuQmFzaWNFdmVudEF0dHJpYnV0aW9uVGVzdCh2aWV3Q29uZmlndXJhdGlvbi5n
ZXQoKSwgW10oV0tXZWJWaWV3ICp3ZWJWaWV3LCBjb25zdCBIVFRQU2VydmVyJiBzZXJ2ZXIpIHsK
KyAgICAgICAgW3dlYlZpZXcgX2FkZEV2ZW50QXR0cmlidXRpb25XaXRoU291cmNlSUQ6NDIgZGVz
dGluYXRpb25VUkw6ZXhhbXBsZVVSTCgpIHNvdXJjZURlc2NyaXB0aW9uOkAidGVzdCBzb3VyY2Ug
ZGVzY3JpcHRpb24iIHB1cmNoYXNlcjpAInRlc3QgcHVyY2hhc2VyIiByZXBvcnRFbmRwb2ludDpz
ZXJ2ZXIucmVxdWVzdCgpLlVSTCBvcHRpb25hbE5vbmNlOm5pbF07CisgICAgfSk7CisKKyAgICBz
eXN0ZW0oImtpbGxhbGwgVGVzdFBDTURhZW1vbiAtOSIpOworI2lmIEhBVkUoT1NfTEFVTkNIRF9K
T0IpCisgICAgLy8gTGF1bmNoT25seU9uY2UgdGFrZXMgY2FyZSBvZiBjbGVhbnVwIHdpdGggbGF1
bmNoZC4KKyNlbHNlCisgICAgc3lzdGVtKFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAibGF1
bmNoY3RsIHVubG9hZCAlQCIsIHBsaXN0TG9jYXRpb24ucGF0aF0uVVRGOFN0cmluZyk7CisjZW5k
aWYKKworICAgIEVYUEVDVF9UUlVFKFtmaWxlTWFuYWdlciBmaWxlRXhpc3RzQXRQYXRoOnRlbXBE
aXIucGF0aF0pOworICAgIFtmaWxlTWFuYWdlciByZW1vdmVJdGVtQXRVUkw6dGVtcERpciBlcnJv
cjomZXJyb3JdOworICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKK30KKworI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykKKwogI2lmIEhBVkUoVUlfRVZFTlRfQVRUUklCVVRJT04pCiAKIFRFU1QoRXZlbnRB
dHRyaWJ1dGlvbiwgQmFzaWNXaXRoSU9TU1BJKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9jb2NvYS9UZXN0UENNRGFlbW9uTWFpbi5jIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2Nv
YS9UZXN0UENNRGFlbW9uTWFpbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkN2Q0NDUwZTJhZjc2OWRmNzgwNWM0
ZGE5NTk0ZjFhNGIyYzE5MDcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L2NvY29hL1Rlc3RQQ01EYWVtb25NYWluLmMKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlIDxvcy9hdmFpbGFiaWxpdHkuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tNYWluLmg+
CisKK2ludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikKK3sKKyAgICBXS1BDTURh
ZW1vbk1haW4oYXJnYywgYXJndik7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438078</attachid>
            <date>2021-09-13 14:25:07 -0700</date>
            <delta_ts>2021-09-13 15:36:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230191-20210913142506.patch</filename>
            <type>text/plain</type>
            <size>57079</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ5Mzg4ZWFlODE0MjFkZDY1ZmM4NjQ5
MGQ0NWJiMjViZjhjNTk4YjIuLmM3OGJmMWRiYzdlMDMyZmM3NDU0ZGM4YjA0Y2EzZTI5MTFmMDRm
NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDktMTMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0IHRoYXQgdXNl
cyBQQ00gZGFlbW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzAxOTEKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybUhhdmUuaDoKKyAgICAgICAgKiB3dGYvc3BpL2Rhcndpbi9YUENTUEku
aDoKKwogMjAyMS0wOS0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQgZm9sbG93LXVwIHRvIHIyODIxMDUuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJjNzIzY2Jl
NWE2Nzg0MDU4YWZiYTQ4NzViMmI5OTQ5NzE0YTJiYzUuLmQxZWQ2ODZhMWMzOGVjYmYwNzFlOTQ2
ZmIyYzI1MjY2NjM1NTM5N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMjEtMDktMTMg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBB
ZGQgdW5pdCB0ZXN0IHRoYXQgdXNlcyBQQ00gZGFlbW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAxOTEKKworICAgICAgICBSZXZpZXdlZCBieSBD
aHJpcyBEdW1lei4KKworICAgICAgICBJIG1ha2UgYSB3YXkgdG8gc3BlY2lmeSB3aGF0IG1hY2gg
c2VydmljZSB0byBjb25uZWN0IHRvLAorICAgICAgICB0aGVuIEkgdGVtcG9yYXJpbHkgcmVnaXN0
ZXIgYW4gZXhlY3V0YWJsZSB3aXRoIGxhdW5jaGQgdG8gcHJvdmlkZSB0aGF0IG1hY2ggc2Vydmlj
ZSwKKyAgICAgICAgdGhlbiBJIHJ1biB0aGUgdGVzdCBjb21tdW5pY2F0aW5nIHdpdGggdGhhdCBl
eGVjdXRhYmxlLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjptYW5hZ2VyT3JQcm94eSk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRl
cnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpQ
Q006OkNvbm5lY3Rpb246OkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5l
Y3Rpb246OnNlbmQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb246OnNl
bmRXaXRoUmVwbHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb246OmNv
bm5lY3Rpb25Ub0RhZW1vbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVj
dGlvbjo6c2VuZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVjdGlvbjo6
c2VuZFdpdGhSZXBseSk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UENN
OjptYW5hZ2VyUG9pbnRlcik6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6aW5pdGlhbGl6ZVBDTVN0
b3JhZ2VJbkRpcmVjdG9yeSk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6ZGFlbW9uTWFuYWdlcik6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpQQ006Ok1hbmFnZXJQcm94eTo6c2VuZE1l
c3NhZ2UgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006Ok1hbmFnZXJQcm94eTo6c2VuZE1l
c3NhZ2VXaXRoUmVwbHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006Ok1hbmFnZXJQcm94
eTo6TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UENNOjpzZW5kTWVzc2FnZSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6c2VuZE1lc3NhZ2VXaXRoUmVwbHkpOiBEZWxl
dGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5Lmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnREYWVtb25Db25uZWN0aW9uQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVj
dGlvbjo6Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVjdGlvbjo6aW5p
dGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6
Q29ubmVjdGlvbjo6c2VuZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVjdGlv
bjo6c2VuZFdpdGhSZXBseSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVjdGlv
bjo6Y29ubmVjdGlvblRvRGFlbW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpD
b25uZWN0aW9uOjpzZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpDb25uZWN0
aW9uOjpzZW5kV2l0aFJlcGx5KTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9t
YWMvY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYi5pbjoKKyAgICAgICAgKiBTaGFy
ZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9uRW50cnlQb2ludC5t
bToKKyAgICAgICAgKFdlYktpdDo6c3RhcnRMaXN0ZW5pbmdGb3JNYWNoU2VydmljZUNvbm5lY3Rp
b25zKToKKyAgICAgICAgKFdlYktpdDo6cmVnaXN0ZXJTY2hlZHVsZWRBY3Rpdml0eUhhbmRsZXIp
OgorICAgICAgICAoV2ViS2l0OjpQQ01EYWVtb25NYWluKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbToK
KyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gcGNtTWFjaFNlcnZp
Y2VOYW1lXSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHNl
dFBDTU1hY2hTZXJ2aWNlTmFtZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6
OnBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uOjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpjb3B5IGNvbnN0KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b24uaDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OnNl
dFBDTU1hY2hTZXJ2aWNlTmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uOjpwY21NYWNoU2VydmljZU5hbWUgY29uc3QpOgorCiAyMDIxLTA5LTEwICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRk
IGluZnJhc3RydWN0dXJlIHRvIGFsbG93IFRMUyBkdXJpbmcgUENNIHRlc3RzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
SGF2ZS5oCmluZGV4IDY5Y2RiNWVhZWNlOTY4ZjlkNTZiOWZmYjZkZTAyNDc4MTgxNWJjOWYuLmIw
NjZlNWZjMTMxZmM0ZThiN2ZiOTU2Nzk1Mzc5OTg5ZjZhODViY2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2
ZS5oCkBAIC04MTMsNiArODEzLDcgQEAKICAgICB8fCAoUExBVEZPUk0oQVBQTEVUVikgJiYgX19U
Vl9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNTAwMDApCiAjZGVmaW5lIEhBVkVfTkVUV09S
S19MT0FERVIgMQogI2RlZmluZSBIQVZFX1NFQ19UUlVTVF9DT1BZX0NFUlRJRklDQVRFX0NIQUlO
IDEKKyNkZWZpbmUgSEFWRV9PU19MQVVOQ0hEX0pPQiAxCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KE1BQ0NBVEFMWVNUKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNDAw
MDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oCmluZGV4IDNiNTljZmNlNzA3YzYxNTI2NDFk
MWUzMTA5NGZhOTA1MjliZTU2ZTUuLmM0MTdlMTkwNWY5ZGYwY2U0ZTFkN2ZjMTg2NDdmMGVkYWZl
NTNlMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmgKKysr
IGIvU291cmNlL1dURi93dGYvc3BpL2Rhcndpbi9YUENTUEkuaApAQCAtMTE0LDcgKzExNCwxOSBA
QCBleHRlcm4gIkMiIHZvaWQgeHBjX2FjdGl2aXR5X3JlZ2lzdGVyKGNvbnN0IGNoYXIgKmlkZW50
aWZpZXIsIHhwY19vYmplY3RfdCBjcml0ZQogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAj
aW5jbHVkZSA8b3MvdHJhbnNhY3Rpb25fcHJpdmF0ZS5oPgogI2luY2x1ZGUgPHhwYy9wcml2YXRl
Lmg+Ci0jZWxzZQorI2lmIEhBVkUoT1NfTEFVTkNIRF9KT0IpCisjaW5jbHVkZSA8QXBwU2VydmVy
U3VwcG9ydC9PU0xhdW5jaGRKb2IuaD4KKyNlbmRpZiAvLyBIQVZFKE9TX0xBVU5DSERfSk9CKQor
I2Vsc2UgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2lmZGVmIF9fT0JKQ19fCisjaWYg
SEFWRShPU19MQVVOQ0hEX0pPQikKK0BpbnRlcmZhY2UgT1NMYXVuY2hkSm9iIDogTlNPYmplY3QK
Ky0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBsaXN0Oih4cGNfb2JqZWN0X3QpcGxpc3Q7CistIChC
T09MKXN1Ym1pdDooTlNFcnJvciAqKillcnJvck91dDsKK0BlbmQKKyNlbmRpZiAvLyBIQVZFKE9T
X0xBVU5DSERfSk9CKQorI2VuZGlmIC8vIF9fT0JKQ19fCiAKIGV4dGVybiAiQyIgY29uc3QgY2hh
ciAqIGNvbnN0IFhQQ19BQ1RJVklUWV9SQU5ET01fSU5JVElBTF9ERUxBWTsKIGV4dGVybiAiQyIg
Y29uc3QgY2hhciAqIGNvbnN0IFhQQ19BQ1RJVklUWV9SRVFVSVJFX05FVFdPUktfQ09OTkVDVElW
SVRZOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNw
cAppbmRleCA1ZTE1ZjYzNDM3MzRjOWQxYjUzZDhkYzEzMTk5MDVkODkyMmY5ZGIyLi4yNmYxY2I2
MGYzY2QyZDE0ZTI2NGNjYTkwZjhmODUzZDk4YTliNmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApAQCAtOTUsMTEgKzk1LDggQEAgc3Rh
dGljIFN0cmluZyBwY21TdG9yZURpcmVjdG9yeShjb25zdCBOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lv
biwgY29uc3QgU3RyaW5nJiByZXMKIAogc3RhdGljIFVuaXF1ZVJlZjxQQ006Ok1hbmFnZXJJbnRl
cmZhY2U+IG1hbmFnZXJPclByb3h5KE5ldHdvcmtTZXNzaW9uJiBuZXR3b3JrU2Vzc2lvbiwgTmV0
d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBjb25zdCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKLSAgICAvLyBGSVhNRTogVHVybiB0aGlzIG9uIGFu
ZCByZW1vdmUgTWFuYWdlckludGVyZmFjZSBvbmNlIHJkYXI6Ly84MDcwMTA5OCBpcyBjbG9zZWQu
Ci0gICAgY29uc3RleHByIGJvb2wgdXNlUENNRGFlbW9uID0gZmFsc2U7Ci0KLSAgICBpZiAodXNl
UENNRGFlbW9uKQotICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZVJlZjxQQ006Ok1hbmFnZXJQcm94
eT4oKTsKKyAgICBpZiAoIXBhcmFtZXRlcnMucGNtTWFjaFNlcnZpY2VOYW1lLmlzRW1wdHkoKSkK
KyAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8UENNOjpNYW5hZ2VyUHJveHk+KHBhcmFtZXRl
cnMucGNtTWFjaFNlcnZpY2VOYW1lKTsKICAgICByZXR1cm4gbWFrZVVuaXF1ZVJlZjxQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXI+KG1ha2VVbmlxdWVSZWY8UENNOjpDbGllbnRJbXBsPihu
ZXR3b3JrU2Vzc2lvbiwgbmV0d29ya1Byb2Nlc3MpLCBwY21TdG9yZURpcmVjdG9yeShuZXR3b3Jr
U2Vzc2lvbiwgcGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5kaXJl
Y3RvcnksIHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMucHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRTdG9yYWdlRGlyZWN0b3J5KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRl
cnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0
aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggYjc3ZjkxODExNDliODNjZGE4ZmE5MzIyYWI1NDViOTdh
ZDY3NDQ2My4uOWU4YWJmZDljYWJlZjlkZmE0OWZkYWQ0YWM2N2Q3ZTg2ZWQwMmY2MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTg3LDYgKzg3LDcgQEAgdm9pZCBOZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKICAgICBlbmNvZGVyIDw8IGFwcEhhc1JlcXVlc3RlZENyb3NzV2Vic2l0ZVRyYWNr
aW5nUGVybWlzc2lvbjsKICAgICBlbmNvZGVyIDw8IHVzZU5ldHdvcmtMb2FkZXI7CiAgICAgZW5j
b2RlciA8PCBhbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZTsKKyAgICBlbmNv
ZGVyIDw8IHBjbU1hY2hTZXJ2aWNlTmFtZTsKICAgICBlbmNvZGVyIDw8IHJlc291cmNlTG9hZFN0
YXRpc3RpY3NQYXJhbWV0ZXJzOwogfQogCkBAIC0yOTMsMTIgKzI5NCwxNyBAQCBzdGQ6Om9wdGlv
bmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lvbkNyZWF0
aW9uUGFyYW1ldGVycwogICAgIGRlY29kZXIgPj4gYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290
Q2VydGlmaWNhdGU7CiAgICAgaWYgKCFhbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZp
Y2F0ZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICAKKworICAgIHN0ZDo6b3B0
aW9uYWw8U3RyaW5nPiBwY21NYWNoU2VydmljZU5hbWU7CisgICAgZGVjb2RlciA+PiBwY21NYWNo
U2VydmljZU5hbWU7CisgICAgaWYgKCFwY21NYWNoU2VydmljZU5hbWUpCisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKICAgICBzdGQ6Om9wdGlvbmFsPFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NQYXJhbWV0ZXJzPiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVyczsKICAgICBkZWNv
ZGVyID4+IHJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzOwogICAgIGlmICghcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
Ci0gICAgCisKICAgICByZXR1cm4ge3sKICAgICAgICAgKnNlc3Npb25JRAogICAgICAgICAsIFdU
Rk1vdmUoKmJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcikKQEAgLTM0Nyw2ICszNTMsNyBAQCBzdGQ6
Om9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lv
bkNyZWF0aW9uUGFyYW1ldGVycwogICAgICAgICAsIFdURk1vdmUoKmFwcEhhc1JlcXVlc3RlZENy
b3NzV2Vic2l0ZVRyYWNraW5nUGVybWlzc2lvbikKICAgICAgICAgLCBXVEZNb3ZlKCp1c2VOZXR3
b3JrTG9hZGVyKQogICAgICAgICAsIFdURk1vdmUoKmFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9v
dENlcnRpZmljYXRlKQorICAgICAgICAsIFdURk1vdmUoKnBjbU1hY2hTZXJ2aWNlTmFtZSkKICAg
ICAgICAgLCBXVEZNb3ZlKCpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycykKICAgICB9
fTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nl
c3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBmYjRhMzg3N2IwOWNmNDNk
ZGU2NjVlNGQ2MzM5MWVmM2VkYzc2ZGYyLi41YjY0ZjZiMjlkNGZlNWVmMjMxZmQ0M2RiOGIzYjdm
MTAxNTkyMGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0xMDIsNiArMTAy
LDcgQEAgc3RydWN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBib29s
IGFwcEhhc1JlcXVlc3RlZENyb3NzV2Vic2l0ZVRyYWNraW5nUGVybWlzc2lvbiB7IGZhbHNlIH07
CiAgICAgYm9vbCB1c2VOZXR3b3JrTG9hZGVyIHsgZmFsc2UgfTsKICAgICBib29sIGFsbG93c0hT
VFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlIHsgZmFsc2UgfTsKKyAgICBTdHJpbmcgcGNt
TWFjaFNlcnZpY2VOYW1lOwogCiAgICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMg
cmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rp
b24uY3BwCmluZGV4IDU2M2EwMzYwZGI1MzE5ODFmZTY3NGIyNjNhZjQwMzIzMWQ5MTk4NWUuLjY1
MDI5YTY4MzJiZGVkYTFmZDBhNGUxYTNmYWE5YzcxZWNlMzVjZTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29u
bmVjdGlvbi5jcHAKQEAgLTM0LDE4ICszNCwxNyBAQCBuYW1lc3BhY2UgUENNIHsKIAogI2lmICFQ
TEFURk9STShDT0NPQSkKIAotQ29ubmVjdGlvbiBDb25uZWN0aW9uOjpjb25uZWN0aW9uVG9EYWVt
b24oKQorQ29ubmVjdGlvbjo6Q29ubmVjdGlvbihDU3RyaW5nJiYpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4geyB9OwogfQogCi12b2lkIENvbm5lY3Rpb246OnNlbmQoTWVz
c2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYpCit2b2lkIENvbm5lY3Rpb246OnNlbmQoTWVzc2Fn
ZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAotdm9pZCBDb25uZWN0aW9uOjpzZW5kV2l0aFJlcGx5KE1lc3NhZ2VUeXBlLCBFbmNvZGVk
TWVzc2FnZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEVuY29kZWRNZXNzYWdlJiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBDb25uZWN0aW9uOjpzZW5kV2l0aFJlcGx5KE1lc3NhZ2VU
eXBlLCBFbmNvZGVkTWVzc2FnZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEVuY29kZWRNZXNz
YWdlJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CiAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oCmlu
ZGV4IGFmM2E5MTAyMWNiZTQwMjA3ZTUyYTI1YmNmNTA1OTc2YzhmYjZiYjQuLmNiZmMxZGUwNTJm
NGE5N2FkYWJhMmNhZjJjNGIwM2VjNGI0NGQyZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaApA
QCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1
ZGUgPHd0Zi9PU09iamVjdFB0ci5oPgpAQCAtMzksMTggKzQwLDE5IEBAIG5hbWVzcGFjZSBQQ00g
ewogZW51bSBjbGFzcyBNZXNzYWdlVHlwZSA6IHVpbnQ4X3Q7CiB1c2luZyBFbmNvZGVkTWVzc2Fn
ZSA9IFZlY3Rvcjx1aW50OF90PjsKIAotY2xhc3MgQ29ubmVjdGlvbiB7CitjbGFzcyBDb25uZWN0
aW9uIDogcHVibGljIENhbk1ha2VXZWFrUHRyPENvbm5lY3Rpb24+IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgQ29ubmVjdGlvbiBjb25uZWN0aW9uVG9EYWVtb24oKTsKKyAgICBleHBsaWNpdCBDb25u
ZWN0aW9uKENTdHJpbmcmJiBtYWNoU2VydmljZU5hbWUpOwogCi0gICAgdm9pZCBzZW5kKE1lc3Nh
Z2VUeXBlLCBFbmNvZGVkTWVzc2FnZSYmKTsKLSAgICB2b2lkIHNlbmRXaXRoUmVwbHkoTWVzc2Fn
ZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRW5jb2RlZE1l
c3NhZ2UmJik+JiYpOworICAgIHZvaWQgc2VuZChNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2Um
JikgY29uc3Q7CisgICAgdm9pZCBzZW5kV2l0aFJlcGx5KE1lc3NhZ2VUeXBlLCBFbmNvZGVkTWVz
c2FnZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEVuY29kZWRNZXNzYWdlJiYpPiYmKSBjb25z
dDsKIAogcHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBDb25uZWN0aW9uKE9TT2Jq
ZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+JiYpOworICAgIHZvaWQgaW5pdGlhbGl6ZUNvbm5lY3Rp
b25JZk5lZWRlZCgpIGNvbnN0OwogCi0gICAgT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4g
bV9jb25uZWN0aW9uOworICAgIGNvbnN0IENTdHJpbmcgbV9tYWNoU2VydmljZU5hbWU7CisgICAg
bXV0YWJsZSBPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBtX2Nvbm5lY3Rpb247CiAjZW5k
aWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcAppbmRleCA1ZDEz
ZTc0YzFkZDI2ODg3OGYyOWM5NzJkYTVmNzFjNzkxMTYyMmViLi42N2E0NjkzMTNjYzgyY2JmZmE0
NjQxYjA4NGFlZDlhYTcwMjI3MmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlckludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZh
Y2UuY3BwCkBAIC0xNjcsMTEgKzE2NywyMiBAQCBib29sIG1lc3NhZ2VUeXBlU2VuZHNSZXBseShN
ZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyPiYgbWFuYWdlclBv
aW50ZXIoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6OnVuaXF1ZV9wdHI8UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyPj4gbWFuYWdlcjsKKyAgICByZXR1cm4gbWFuYWdl
ci5nZXQoKTsKK30KKwordm9pZCBpbml0aWFsaXplUENNU3RvcmFnZUluRGlyZWN0b3J5KGNvbnN0
IFN0cmluZyYgc3RvcmFnZURpcmVjdG9yeSkKK3sKKyAgICBBU1NFUlQoIW1hbmFnZXJQb2ludGVy
KCkpOworICAgIG1hbmFnZXJQb2ludGVyKCkgPSBtYWtlVW5pcXVlPFByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlcj4obWFrZVVuaXF1ZVJlZjxQQ006OkRhZW1vbkNsaWVudD4oKSwgc3RvcmFn
ZURpcmVjdG9yeSk7Cit9CisKIHN0YXRpYyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIm
IGRhZW1vbk1hbmFnZXIoKQogewotICAgIC8vIEZJWE1FOiBHaXZlIHRoZSBtYW5hZ2VyIGEgdmFs
aWQgc3RvcmFnZSBkaXJlY3RvcnkuCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlcj4gaW5zdGFuY2UobWFrZVVuaXF1ZVJlZjxQQ006OkRhZW1v
bkNsaWVudD4oKSwgU3RyaW5nKCkpOwotICAgIHJldHVybiBpbnN0YW5jZS5nZXQoKTsKKyAgICBB
U1NFUlQobWFuYWdlclBvaW50ZXIoKSk7CisgICAgcmV0dXJuICptYW5hZ2VyUG9pbnRlcigpOwog
fQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJbmZvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXJJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJm
YWNlLmgKaW5kZXggNDAzNjJkZmEyMjE0ZWM4MzdlNzU3ZTk0YmNkNGFlOGEzY2IyNTBkOS4uNWNm
NGUzZGUyMWQwY2MzOTljMjNhZDA5MDdhMzNkOGVlZjA3YjVhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlckludGVyZmFjZS5oCkBAIC0xMDEsNiArMTAxLDggQEAgdXNpbmcgRW5jb2RlZE1lc3Nh
Z2UgPSBWZWN0b3I8dWludDhfdD47CiB2b2lkIGRlY29kZU1lc3NhZ2VBbmRTZW5kVG9NYW5hZ2Vy
KE1lc3NhZ2VUeXBlLCBWZWN0b3I8dWludDhfdD4mJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFZlY3Rvcjx1aW50OF90PiYmKT4mJik7CiBib29sIG1lc3NhZ2VUeXBlU2VuZHNSZXBs
eShNZXNzYWdlVHlwZSk7CiAKK3ZvaWQgaW5pdGlhbGl6ZVBDTVN0b3JhZ2VJbkRpcmVjdG9yeShj
b25zdCBTdHJpbmcmKTsKKwogfSAvLyBuYW1lc3BhY2UgUENNCiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNwcAppbmRleCAxMDgyNjUyYjAwZTI3MTM0
ZWI0MWYwZWUyMWE4NmE1ODE5NTQ4NmZkLi45YmNiMzExZTQ1OGIxNmViZTczZDQzZjIzYjYyYTMx
ZjNkZjRkODdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNwcApAQCAtMzUsMTEgKzM1
LDExIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogbmFtZXNwYWNlIFBDTSB7CiAKIHRlbXBsYXRlPE1l
c3NhZ2VUeXBlIG1lc3NhZ2VUeXBlLCB0eXBlbmFtZS4uLiBBcmdzPgotdm9pZCBzZW5kTWVzc2Fn
ZShBcmdzJiYuLi4gYXJncykKK3ZvaWQgTWFuYWdlclByb3h5OjpzZW5kTWVzc2FnZShBcmdzJiYu
Li4gYXJncykgY29uc3QKIHsKICAgICBFbmNvZGVyIGVuY29kZXI7CiAgICAgZW5jb2Rlci5lbmNv
ZGUoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKLSAgICBDb25uZWN0aW9uOjpjb25uZWN0
aW9uVG9EYWVtb24oKS5zZW5kKG1lc3NhZ2VUeXBlLCBlbmNvZGVyLnRha2VCdWZmZXIoKSk7Cisg
ICAgbV9jb25uZWN0aW9uLnNlbmQobWVzc2FnZVR5cGUsIGVuY29kZXIudGFrZUJ1ZmZlcigpKTsK
IH0KIAogdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4gc3RydWN0IFJlcGx5Q2FsbGVyOwpAQCAt
NjEsMTYgKzYxLDE5IEBAIHRlbXBsYXRlPD4gc3RydWN0IFJlcGx5Q2FsbGVyPFN0cmluZz4gewog
fTsKIAogdGVtcGxhdGU8TWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIHR5cGVuYW1lLi4uIEFyZ3Ms
IHR5cGVuYW1lLi4uIFJlcGx5QXJncz4KLXZvaWQgc2VuZE1lc3NhZ2VXaXRoUmVwbHkoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChSZXBseUFyZ3MuLi4pPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBBcmdz
JiYuLi4gYXJncykKK3ZvaWQgTWFuYWdlclByb3h5OjpzZW5kTWVzc2FnZVdpdGhSZXBseShDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFJlcGx5QXJncy4uLik+JiYgY29tcGxldGlvbkhhbmRsZXIsIEFy
Z3MmJi4uLiBhcmdzKSBjb25zdAogewogICAgIEVuY29kZXIgZW5jb2RlcjsKICAgICBlbmNvZGVy
LmVuY29kZShzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOwotICAgIENvbm5lY3Rpb246OmNv
bm5lY3Rpb25Ub0RhZW1vbigpLnNlbmRXaXRoUmVwbHkobWVzc2FnZVR5cGUsIGVuY29kZXIudGFr
ZUJ1ZmZlcigpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0gKGF1dG8gcmVwbHlCdWZmZXIpIG11dGFibGUgeworICAgIG1fY29ubmVjdGlvbi5zZW5kV2l0
aFJlcGx5KG1lc3NhZ2VUeXBlLCBlbmNvZGVyLnRha2VCdWZmZXIoKSwgW2NvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChhdXRvIHJlcGx5QnVmZmVyKSBtdXRh
YmxlIHsKICAgICAgICAgRGVjb2RlciBkZWNvZGVyKFdURk1vdmUocmVwbHlCdWZmZXIpKTsKICAg
ICAgICAgUmVwbHlDYWxsZXI8UmVwbHlBcmdzLi4uPjo6Y2FsbFJlcGx5KFdURk1vdmUoZGVjb2Rl
ciksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICB9KTsKIH0KIAorTWFuYWdlclBy
b3h5OjpNYW5hZ2VyUHJveHkoY29uc3QgU3RyaW5nJiBtYWNoU2VydmljZU5hbWUpCisgICAgOiBt
X2Nvbm5lY3Rpb24obWFjaFNlcnZpY2VOYW1lLnV0ZjgoKSkgeyB9CisKIHZvaWQgTWFuYWdlclBy
b3h5OjpzdG9yZVVuYXR0cmlidXRlZChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYm
IHBjbSkKIHsKICAgICBzZW5kTWVzc2FnZTxNZXNzYWdlVHlwZTo6U3RvcmVVbmF0dHJpYnV0ZWQ+
KHBjbSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmgKaW5kZXggMTUxMTA5ODc2ODk0MTdhM2Ix
ODZhMjQyMDNjYzFjYzM2Mjc2YmYxZi4uN2MwYWYwZjYzOTBkMzZjZGMxZmE2YjYxMDRjMzg0YjYz
Njc1ZTUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaApAQCAtMjUsOCArMjUsMTAgQEAK
IAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5l
Y3Rpb24uaCIKICNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZh
Y2UuaCIKICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTM1LDYgKzM3LDggQEAgbmFtZXNw
YWNlIFBDTSB7CiBjbGFzcyBNYW5hZ2VyUHJveHkgOiBwdWJsaWMgTWFuYWdlckludGVyZmFjZSB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CisgICAgTWFuYWdlclByb3h5
KGNvbnN0IFN0cmluZyYgbWFjaFNlcnZpY2VOYW1lKTsKKwogICAgIHZvaWQgc3RvcmVVbmF0dHJp
YnV0ZWQoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJikgZmluYWw7CiAgICAgdm9p
ZCBoYW5kbGVBdHRyaWJ1dGlvbihXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0
cmlidXRpb25UcmlnZ2VyRGF0YSYmLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluJiYgcmVkaXJlY3REb21haW4sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eVVS
TCkgZmluYWw7CiAgICAgdm9pZCBjbGVhcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZp
bmFsOwpAQCAtNTMsNiArNTcsMTQgQEAgcHVibGljOgogICAgIHZvaWQgc3RhcnRUaW1lckltbWVk
aWF0ZWx5Rm9yVGVzdGluZygpIGZpbmFsOwogICAgIHZvaWQgZGVzdHJveVN0b3JlRm9yVGVzdGlu
ZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIHZvaWQgYWxsb3dUTFND
ZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKGNvbnN0IFdlYkNvcmU6OkNlcnRpZmlj
YXRlSW5mbyYpIGZpbmFsOworCitwcml2YXRlOgorICAgIHRlbXBsYXRlPE1lc3NhZ2VUeXBlIG1l
c3NhZ2VUeXBlLCB0eXBlbmFtZS4uLiBBcmdzPgorICAgIHZvaWQgc2VuZE1lc3NhZ2UoQXJncyYm
Li4uKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgdHlwZW5h
bWUuLi4gQXJncywgdHlwZW5hbWUuLi4gUmVwbHlBcmdzPgorICAgIHZvaWQgc2VuZE1lc3NhZ2VX
aXRoUmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXBseUFyZ3MuLi4pPiYmLCBBcmdzJiYu
Li4pIGNvbnN0OworCisgICAgQ29ubmVjdGlvbiBtX2Nvbm5lY3Rpb247CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBQQ00KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYWVtb25D
b25uZWN0aW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGFlbW9uQ29ubmVj
dGlvbkNvY29hLm1tCmluZGV4IDYxYjU4NTA2NjU4YTNmOTUzNWVlZmIxYTYwNWEyNTVkODcyNDc3
MWEuLjFjNmU2YmZlNzMxNTM5ZWExMTg0MzczYThjZTZiYTU1ZTJhOWM5YjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29j
b2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYWVtb25Db25uZWN0aW9uQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2Nv
YS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhZW1vbkNvbm5lY3Rpb25Db2NvYS5tbQpAQCAtMzMs
MjYgKzMzLDI1IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBuYW1lc3BhY2UgUENNIHsKIAotQ29u
bmVjdGlvbjo6Q29ubmVjdGlvbihPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiYmIGNvbm5l
Y3Rpb24pCi0gICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkgeyB9CitDb25u
ZWN0aW9uOjpDb25uZWN0aW9uKENTdHJpbmcmJiBtYWNoU2VydmljZU5hbWUpCisgICAgOiBtX21h
Y2hTZXJ2aWNlTmFtZShXVEZNb3ZlKG1hY2hTZXJ2aWNlTmFtZSkpIHsgfQogCi1Db25uZWN0aW9u
IENvbm5lY3Rpb246OmNvbm5lY3Rpb25Ub0RhZW1vbigpCit2b2lkIENvbm5lY3Rpb246OmluaXRp
YWxpemVDb25uZWN0aW9uSWZOZWVkZWQoKSBjb25zdAogewotICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE9TT2JqZWN0UHRyPHhwY19jb25u
ZWN0aW9uX3Q+PiBjb25uZWN0aW9uOwotICAgIGlmICghY29ubmVjdGlvbi5nZXQoKSkgewotICAg
ICAgICBjb25uZWN0aW9uLmdldCgpID0gYWRvcHRPU09iamVjdCh4cGNfY29ubmVjdGlvbl9jcmVh
dGVfbWFjaF9zZXJ2aWNlKCJjb20uYXBwbGUud2Via2l0LmFkYXR0cmlidXRpb25kLnNlcnZpY2Ui
LCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCAwKSk7Ci0gICAgICAgIHhwY19jb25uZWN0aW9u
X3NldF9ldmVudF9oYW5kbGVyKGNvbm5lY3Rpb24uZ2V0KCkuZ2V0KCksIF4oeHBjX29iamVjdF90
IGV2ZW50KSB7Ci0gICAgICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgICAg
ICAgICAgaWYgKGV2ZW50ID09IFhQQ19FUlJPUl9DT05ORUNUSU9OX0lOVEVSUlVQVEVEKSB7Ci0g
ICAgICAgICAgICAgICAgLy8gRGFlbW9uIGNyYXNoZWQsIHdlIHdpbGwgbmVlZCB0byBtYWtlIGEg
bmV3IGNvbm5lY3Rpb24gdG8gYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGRhZW1vbi4KLSAgICAgICAg
ICAgICAgICBjb25uZWN0aW9uLmdldCgpID0gbnVsbHB0cjsKLSAgICAgICAgICAgIH0gZWxzZQot
ICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICB9KTsKLSAgICAg
ICAgeHBjX2Nvbm5lY3Rpb25fYWN0aXZhdGUoY29ubmVjdGlvbi5nZXQoKS5nZXQoKSk7Ci0gICAg
fQotICAgIHJldHVybiBDb25uZWN0aW9uKE9TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+KGNv
bm5lY3Rpb24uZ2V0KCkpKTsKKyAgICBpZiAobV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm47
CisgICAgbV9jb25uZWN0aW9uID0gYWRvcHRPU09iamVjdCh4cGNfY29ubmVjdGlvbl9jcmVhdGVf
bWFjaF9zZXJ2aWNlKG1fbWFjaFNlcnZpY2VOYW1lLmRhdGEoKSwgZGlzcGF0Y2hfZ2V0X21haW5f
cXVldWUoKSwgMCkpOworICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5kbGVyKG1fY29u
bmVjdGlvbi5nZXQoKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSh4cGNfb2JqZWN0
X3QgZXZlbnQpIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgaWYgKGV2ZW50ID09IFhQQ19FUlJPUl9DT05ORUNUSU9OX0lOVkFMSUQpCisgICAg
ICAgICAgICBXVEZMb2dBbHdheXMoIkZhaWxlZCB0byBjb25uZWN0IHRvIG1hY2ggc2VydmljZSAl
cywgbGlrZWx5IGJlY2F1c2UgaXQgaXMgbm90IHJlZ2lzdGVyZWQgd2l0aCBsYXVuY2hkIiwgd2Vh
a1RoaXMtPm1fbWFjaFNlcnZpY2VOYW1lLmRhdGEoKSk7CisgICAgICAgIGlmIChldmVudCA9PSBY
UENfRVJST1JfQ09OTkVDVElPTl9JTlRFUlJVUFRFRCkgeworICAgICAgICAgICAgLy8gRGFlbW9u
IGNyYXNoZWQsIHdlIHdpbGwgbmVlZCB0byBtYWtlIGEgbmV3IGNvbm5lY3Rpb24gdG8gYSBuZXcg
aW5zdGFuY2Ugb2YgdGhlIGRhZW1vbi4KKyAgICAgICAgICAgIHdlYWtUaGlzLT5tX2Nvbm5lY3Rp
b24gPSBudWxscHRyOworICAgICAgICB9CisgICAgfSk7CisgICAgeHBjX2Nvbm5lY3Rpb25fYWN0
aXZhdGUobV9jb25uZWN0aW9uLmdldCgpKTsKIH0KIAogc3RhdGljIE9TT2JqZWN0UHRyPHhwY19v
YmplY3RfdD4gZGljdGlvbmFyeUZyb21NZXNzYWdlKE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlLCBF
bmNvZGVkTWVzc2FnZSYmIG1lc3NhZ2UpCkBAIC02MywyNSArNjIsMjIgQEAgc3RhdGljIE9TT2Jq
ZWN0UHRyPHhwY19vYmplY3RfdD4gZGljdGlvbmFyeUZyb21NZXNzYWdlKE1lc3NhZ2VUeXBlIG1l
c3NhZ2VUeXBlLAogICAgIHJldHVybiBkaWN0aW9uYXJ5OwogfQogCi12b2lkIENvbm5lY3Rpb246
OnNlbmQoTWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYgbWVzc2FnZSkK
K3ZvaWQgQ29ubmVjdGlvbjo6c2VuZChNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgRW5jb2RlZE1l
c3NhZ2UmJiBtZXNzYWdlKSBjb25zdAogewotICAgIGlmICghbV9jb25uZWN0aW9uKSB7Ci0gICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgaW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRl
ZCgpOwogCiAgICAgeHBjX2Nvbm5lY3Rpb25fc2VuZF9tZXNzYWdlKG1fY29ubmVjdGlvbi5nZXQo
KSwgZGljdGlvbmFyeUZyb21NZXNzYWdlKG1lc3NhZ2VUeXBlLCBXVEZNb3ZlKG1lc3NhZ2UpKS5n
ZXQoKSk7CiB9CiAKLXZvaWQgQ29ubmVjdGlvbjo6c2VuZFdpdGhSZXBseShNZXNzYWdlVHlwZSBt
ZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEVuY29kZWRNZXNzYWdlJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBDb25uZWN0
aW9uOjpzZW5kV2l0aFJlcGx5KE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2Fn
ZSYmIG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRW5jb2RlZE1lc3NhZ2UmJik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2Nvbm5lY3Rpb24pIHsKLSAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFu
ZGxlcih7IH0pOwotICAgIH0KKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgIGlu
aXRpYWxpemVDb25uZWN0aW9uSWZOZWVkZWQoKTsKIAogICAgIGF1dG8gZGljdGlvbmFyeSA9IGRp
Y3Rpb25hcnlGcm9tTWVzc2FnZShtZXNzYWdlVHlwZSwgV1RGTW92ZShtZXNzYWdlKSk7CiAgICAg
eHBjX2Nvbm5lY3Rpb25fc2VuZF9tZXNzYWdlX3dpdGhfcmVwbHkobV9jb25uZWN0aW9uLmdldCgp
LCBkaWN0aW9uYXJ5LmdldCgpLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBtYWtlQmxvY2tQ
dHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICh4cGNf
b2JqZWN0X3QgcmVwbHkpIG11dGFibGUgeworICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWlu
KCkpOwogICAgICAgICBpZiAoeHBjX2dldF90eXBlKHJlcGx5KSAhPSBYUENfVFlQRV9ESUNUSU9O
QVJZKSB7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYi5pbiBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuTmV0d29y
a1Byb2Nlc3Muc2IuaW4KaW5kZXggMTk3NGI4ZTlmMjU5YWVlZmM5NDQ2NDY4NGIyMDRkMzUwZjM4
ZDQxYi4uYjQwYmMzY2E3MGY0NmJiM2IyMjdhYzgyNDlmMDljY2JiNGVlNTJkMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5OZXR3
b3JrUHJvY2Vzcy5zYi5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL21hYy9j
b20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiLmluCkBAIC0zNTgsNiArMzU4LDcgQEAK
ICkKIAogKGFsbG93IG1hY2gtbG9va3VwIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLndlYmtpdC5h
ZGF0dHJpYnV0aW9uZC5zZXJ2aWNlIikpCisoYWxsb3cgbWFjaC1sb29rdXAgKGdsb2JhbC1uYW1l
ICJvcmcud2Via2l0LnBjbXRlc3RkYWVtb24uc2VydmljZSIpKQogCiAod2l0aC1maWx0ZXIgKHVp
ZCAwKQogICAgIChhbGxvdyBtYWNoLWxvb2t1cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9uRW50cnlQb2lu
dC5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvRGFl
bW9uL1BDTURhZW1vbkVudHJ5UG9pbnQubW0KaW5kZXggODUxNTE0MzM5M2I2MzNkZDBhNjE1ODky
NGJiZTllNDcwNzM1ZGM0Yy4uNTQ4ZmY1MTY0YzZkNmYxOWJlNTFkNGY0NjhkZDdiZjVkNDNhNDg2
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9D
b2NvYS9EYWVtb24vUENNRGFlbW9uRW50cnlQb2ludC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9QQ01EYWVtb25FbnRyeVBvaW50
Lm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFhQ
Q1V0aWxpdGllcy5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0
IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbXBvcnQgPHd0Zi9GaWxlU3lzdGVtLmg+CiAj
aW1wb3J0IDx3dGYvSGFzaFNldC5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAj
aW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CkBAIC03Niw5ICs3Nyw5IEBAIHN0YXRpYyB2b2lkIGNv
bm5lY3Rpb25FdmVudEhhbmRsZXIoeHBjX29iamVjdF90IHJlcXVlc3QpCiAgICAgZGVjb2RlTWVz
c2FnZUFuZFNlbmRUb01hbmFnZXIobWVzc2FnZVR5cGUsIFdURk1vdmUoZW5jb2RlZE1lc3NhZ2Up
LCByZXBseVNlbmRlcihtZXNzYWdlVHlwZSwgcmVxdWVzdCkpOwogfQogCi1zdGF0aWMgdm9pZCBz
dGFydExpc3RlbmluZ0Zvck1hY2hTZXJ2aWNlQ29ubmVjdGlvbnMoKQorc3RhdGljIHZvaWQgc3Rh
cnRMaXN0ZW5pbmdGb3JNYWNoU2VydmljZUNvbm5lY3Rpb25zKGNvbnN0IGNoYXIqIHNlcnZpY2VO
YW1lKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxPU09iamVjdFB0cjx4cGNfY29ubmVj
dGlvbl90Pj4gbGlzdGVuZXIgPSB4cGNfY29ubmVjdGlvbl9jcmVhdGVfbWFjaF9zZXJ2aWNlKCJj
b20uYXBwbGUud2Via2l0LmFkYXR0cmlidXRpb25kLnNlcnZpY2UiLCBkaXNwYXRjaF9nZXRfbWFp
bl9xdWV1ZSgpLCBYUENfQ09OTkVDVElPTl9NQUNIX1NFUlZJQ0VfTElTVEVORVIpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90Pj4gbGlzdGVu
ZXIgPSB4cGNfY29ubmVjdGlvbl9jcmVhdGVfbWFjaF9zZXJ2aWNlKHNlcnZpY2VOYW1lLCBkaXNw
YXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBYUENfQ09OTkVDVElPTl9NQUNIX1NFUlZJQ0VfTElTVEVO
RVIpOwogICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5kbGVyKGxpc3RlbmVyLmdldCgp
LmdldCgpLCBeKHhwY19vYmplY3RfdCBwZWVyKSB7CiAgICAgICAgIGlmICh4cGNfZ2V0X3R5cGUo
cGVlcikgIT0gWFBDX1RZUEVfQ09OTkVDVElPTikKICAgICAgICAgICAgIHJldHVybjsKQEAgLTg2
LDYgKzg3LDggQEAgc3RhdGljIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JNYWNoU2VydmljZUNvbm5l
Y3Rpb25zKCkKICAgICAgICAgLy8gRklYTUU6IEFkZCBhbiBlbnRpdGxlbWVudCBjaGVjayBoZXJl
IHNvIHRoYXQgb25seSB0aGUgbmV0d29yayBwcm9jZXNzIGNhbiBzdWNjZXNzZnVsbHkgY29ubmVj
dC4KIAogICAgICAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihwZWVyLCBeKHhw
Y19vYmplY3RfdCBldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50ID09IFhQQ19FUlJPUl9D
T05ORUNUSU9OX0lOVkFMSUQpCisgICAgICAgICAgICAgICAgTlNMb2coQCJGYWlsZWQgdG8gc3Rh
cnQgbGlzdGVuaW5nIGZvciBjb25uZWN0aW9ucyB0byBtYWNoIHNlcnZpY2UgJXMsIGxpa2VseSBi
ZWNhdXNlIGl0IGlzIG5vdCByZWdpc3RlcmVkIHdpdGggbGF1bmNoZCIsIHNlcnZpY2VOYW1lKTsK
ICAgICAgICAgICAgIGlmIChldmVudCA9PSBYUENfRVJST1JfQ09OTkVDVElPTl9JTlRFUlJVUFRF
RCkgewogICAgICAgICAgICAgICAgIE5TTG9nKEAicmVtb3ZpbmcgcGVlciBjb25uZWN0aW9uICVw
IiwgcGVlcik7CiAgICAgICAgICAgICAgICAgcGVlcnMoKS5yZW1vdmUocGVlcik7CkBAIC0xMDQs
NiArMTA3LDcgQEAgc3RhdGljIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JNYWNoU2VydmljZUNvbm5l
Y3Rpb25zKCkKIAogc3RhdGljIHZvaWQgcmVnaXN0ZXJTY2hlZHVsZWRBY3Rpdml0eUhhbmRsZXIo
KQogeworICAgIE5TTG9nKEAiUmVnaXN0ZXJpbmcgWFBDIGFjdGl2aXR5Iik7CiAgICAgeHBjX2Fj
dGl2aXR5X3JlZ2lzdGVyKCJjb20uYXBwbGUud2Via2l0LmFkYXR0cmlidXRpb25kLmFjdGl2aXR5
IiwgWFBDX0FDVElWSVRZX0NIRUNLX0lOLCBeKHhwY19hY3Rpdml0eV90IGFjdGl2aXR5KSB7CiAg
ICAgICAgIGlmICh4cGNfYWN0aXZpdHlfZ2V0X3N0YXRlKGFjdGl2aXR5KSA9PSBYUENfQUNUSVZJ
VFlfU1RBVEVfQ0hFQ0tfSU4pIHsKICAgICAgICAgICAgIHhwY19vYmplY3RfdCBjcml0ZXJpYSA9
IHhwY19hY3Rpdml0eV9jb3B5X2NyaXRlcmlhKGFjdGl2aXR5KTsKQEAgLTEyNSwxNSArMTI5LDIx
IEBAIHN0YXRpYyB2b2lkIGVudGVyU2FuZGJveCgpCiAKIGludCBQQ01EYWVtb25NYWluKGludCBh
cmdjLCBjb25zdCBjaGFyKiogYXJndikKIHsKLSAgICBpZiAoYXJnYyAhPSAyIHx8IHN0cmNtcChh
cmd2WzFdLCAicnVuQXNEYWVtb24iKSkgewotICAgICAgICBOU0xvZyhAIlRoaXMgZXhlY3V0YWJs
ZSBpcyBpbnRlbmRlZCB0byBiZSBydW4gYXMgYSBkYWVtb24uIik7CisgICAgaWYgKGFyZ2MgPCA1
IHx8IHN0cmNtcChhcmd2WzFdLCAiLS1tYWNoU2VydmljZU5hbWUiKSB8fCBzdHJjbXAoYXJndlsz
XSwgIi0tc3RvcmFnZUxvY2F0aW9uIikpIHsKKyAgICAgICAgTlNMb2coQCJVc2FnZTogJXMgLS1t
YWNoU2VydmljZU5hbWUgPG5hbWU+IC0tc3RvcmFnZUxvY2F0aW9uIDxsb2NhdGlvbj4gWy0tc3Rh
cnRBY3Rpdml0eV0iLCBhcmd2WzBdKTsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KKyAgICBj
b25zdCBjaGFyKiBtYWNoU2VydmljZU5hbWUgPSBhcmd2WzJdOworICAgIGNvbnN0IGNoYXIqIHN0
b3JhZ2VMb2NhdGlvbiA9IGFyZ3ZbNF07CisgICAgYm9vbCBzdGFydEFjdGl2aXR5ID0gYXJnYyA+
IDUgJiYgIXN0cmNtcChhcmd2WzVdLCAiLS1zdGFydEFjdGl2aXR5Iik7CisKICAgICBAYXV0b3Jl
bGVhc2Vwb29sIHsKICAgICAgICAgZW50ZXJTYW5kYm94KCk7Ci0gICAgICAgIHN0YXJ0TGlzdGVu
aW5nRm9yTWFjaFNlcnZpY2VDb25uZWN0aW9ucygpOwotICAgICAgICByZWdpc3RlclNjaGVkdWxl
ZEFjdGl2aXR5SGFuZGxlcigpOworICAgICAgICBzdGFydExpc3RlbmluZ0Zvck1hY2hTZXJ2aWNl
Q29ubmVjdGlvbnMobWFjaFNlcnZpY2VOYW1lKTsKKyAgICAgICAgaWYgKHN0YXJ0QWN0aXZpdHkp
CisgICAgICAgICAgICByZWdpc3RlclNjaGVkdWxlZEFjdGl2aXR5SGFuZGxlcigpOwogICAgICAg
ICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkKCk7CisgICAgICAgIFBDTTo6aW5pdGlhbGl6ZVBD
TVN0b3JhZ2VJbkRpcmVjdG9yeShGaWxlU3lzdGVtOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJl
c2VudGF0aW9uKHN0b3JhZ2VMb2NhdGlvbikpOwogICAgIH0KICAgICBDRlJ1bkxvb3BSdW4oKTsK
ICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKaW5k
ZXggN2QwYWU3OWUyMTE4NDg0ZWVhYzlkZGM4OWJmY2E1YzFlMjA5ZDRmMC4uMDg1MTIzZDBkNGZh
YmU5OWNmZjExNGYxNjFlNjQ0ODBkMzQ4OTM1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmgKQEAgLTc2LDYgKzc2LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29z
KDEwLjEzKSwgaW9zKDExLjApKQogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5
LCBzZXR0ZXI9c2V0SFNUU1N0b3JhZ2VEaXJlY3Rvcnk6KSBOU1VSTCAqaHN0c1N0b3JhZ2VEaXJl
Y3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljKSBCT09MIGVuYWJsZUluQXBwQnJvd3NlclByaXZhY3lGb3JUZXN0aW5nIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0
b21pYykgQk9PTCBhbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworQHByb3BlcnR5IChub25hdG9taWMs
IG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0UENNTWFjaFNlcnZpY2VOYW1lOikgTlNTdHJpbmcg
KnBjbU1hY2hTZXJ2aWNlTmFtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkp
IE5TVVJMICphbHRlcm5hdGl2ZVNlcnZpY2VzU3RvcmFnZURpcmVjdG9yeSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxh
YmxlLCBjb3B5KSBOU1VSTCAqc3RhbmRhbG9uZUFwcGxpY2F0aW9uVVJMIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24ubW0KaW5kZXggYWUzOWI2NjE4NTA5YzlmMmJlZWE0ZjlkOTU1YzA0MWFkYjdhZjM3
Ni4uNTkwMDc1MmY3YjA0MTQ5NjYwYTU3ZGQyZTRiNDI5NjYxODcwMDUwNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQpAQCAtNTIxLDYgKzUyMSwxNiBAQCBzdGF0
aWMgdm9pZCBjaGVja1VSTEFyZ3VtZW50KE5TVVJMICp1cmwpCiAgICAgX2NvbmZpZ3VyYXRpb24t
PnNldEFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlKGFsbG93cyk7CiB9CiAK
Ky0gKE5TU3RyaW5nICopcGNtTWFjaFNlcnZpY2VOYW1lCit7CisgICAgcmV0dXJuIF9jb25maWd1
cmF0aW9uLT5wY21NYWNoU2VydmljZU5hbWUoKTsKK30KKworLSAodm9pZClzZXRQQ01NYWNoU2Vy
dmljZU5hbWU6KE5TU3RyaW5nICopbmFtZQoreworICAgIF9jb25maWd1cmF0aW9uLT5zZXRQQ01N
YWNoU2VydmljZU5hbWUobmFtZSk7Cit9CisKIC0gKEJPT0wpYWxsTG9hZHNCbG9ja2VkQnlEZXZp
Y2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZwogewogICAgIHJldHVybiBfY29uZmln
dXJhdGlvbi0+YWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9y
VGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCAzZGE2YzExNmI5MzY4OGQxYmFjNzNkN2U2
ZDlkNDk5ZTA0NDEyYWZlLi41MTEzNDhmMjBmYWI5ZjQ2NWY4ZmRlOTAxZmU2MDdmN2U3Mzc3ZjA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMjA2MCw2ICsyMDYwLDcgQEAgV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAgICAgbmV0d29ya1Nl
c3Npb25QYXJhbWV0ZXJzLnJlcXVpcmVzU2VjdXJlSFRUUFNQcm94eUNvbm5lY3Rpb24gPSBtX2Nv
bmZpZ3VyYXRpb24tPnJlcXVpcmVzU2VjdXJlSFRUUFNQcm94eUNvbm5lY3Rpb24oKTsKICAgICBu
ZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNh
dGlvbiA9IG1fY29uZmlndXJhdGlvbi0+cHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNh
dGlvbigpOwogICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5hbGxvd3NIU1RTV2l0aFVudHJ1
c3RlZFJvb3RDZXJ0aWZpY2F0ZSA9IG1fY29uZmlndXJhdGlvbi0+YWxsb3dzSFNUU1dpdGhVbnRy
dXN0ZWRSb290Q2VydGlmaWNhdGUoKTsKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucGNt
TWFjaFNlcnZpY2VOYW1lID0gbV9jb25maWd1cmF0aW9uLT5wY21NYWNoU2VydmljZU5hbWUoKTsK
IAogICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzID0gV1RGTW92ZShuZXR3
b3JrU2Vzc2lvblBhcmFtZXRlcnMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbi5jcHAKaW5kZXggYmQ0Yjk1N2FiZDExMTEwZTMwOTNmNTI4YjUzNjhlM2UxZGE0ODFiMy4u
ZmQ0YjA4ZTYxYWJjMzYwNDdkN2JlYjEwMDIxZTRlZWExNTg4Njg1ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcApAQCAtNTEsNiArNTEsNyBAQCBXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbjo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24oSXNQZXJz
aXN0ZW50IGlzUGVycwogI2lmIEhBVkUoQVJLSVRfSU5MSU5FX1BSRVZJRVcpCiAgICAgICAgIHNl
dE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KFdlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRNb2Rl
bEVsZW1lbnRDYWNoZURpcmVjdG9yeSgpKTsKICNlbmRpZgorICAgICAgICAvLyBGSVhNRTogR2l2
ZSBtX3BjbU1hY2hTZXJ2aWNlTmFtZSBhIGRlZmF1bHQgdmFsdWUgYW5kIHJlbW92ZSBQQ006Ok1h
bmFnZXJJbnRlcmZhY2Ugb25jZSByZGFyOi8vODA3MDEwOTggaXMgY2xvc2VkLgogICAgIH0KIH0K
IApAQCAtMTAwLDYgKzEwMSw3IEBAIFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4g
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNvcHkoKSBjb25zdAogICAgIGNvcHktPm1f
c3RhbmRhbG9uZUFwcGxpY2F0aW9uVVJMID0gdGhpcy0+bV9zdGFuZGFsb25lQXBwbGljYXRpb25V
Ukw7CiAgICAgY29weS0+bV9lbmFibGVJbkFwcEJyb3dzZXJQcml2YWN5Rm9yVGVzdGluZyA9IHRo
aXMtPm1fZW5hYmxlSW5BcHBCcm93c2VyUHJpdmFjeUZvclRlc3Rpbmc7CiAgICAgY29weS0+bV9h
bGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSA9IHRoaXMtPm1fYWxsb3dzSFNU
U1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGU7CisgICAgY29weS0+bV9wY21NYWNoU2Vydmlj
ZU5hbWUgPSB0aGlzLT5tX3BjbU1hY2hTZXJ2aWNlTmFtZTsKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICBpZiAobV9wcm94eUNvbmZpZ3VyYXRpb24pCiAgICAgICAgIGNvcHktPm1fcHJveHlDb25m
aWd1cmF0aW9uID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVDb3B5KG51bGxwdHIsIHRoaXMt
Pm1fcHJveHlDb25maWd1cmF0aW9uLmdldCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uaAppbmRleCBlZGRhYjQ0ZTNhMjg5YzFhNDU0N2YxYzQ2MDkyOTE5YzZjMjc4MGM3
Li43MzRhYjY2MmM4NGEzNTI4N2QyNmQ5ZTViMjJlOTdkNzQ4ZjA2MmY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKQEAgLTE4MCw2ICsxODAsOSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBhbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGU7IH0KICAgICB2
b2lkIHNldEFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRpZmljYXRlKGJvb2wgYWxsb3dz
KSB7IG1fYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2VydGlmaWNhdGUgPSBhbGxvd3M7IH0K
ICAgICAKKyAgICB2b2lkIHNldFBDTU1hY2hTZXJ2aWNlTmFtZShTdHJpbmcmJiBuYW1lKSB7IG1f
cGNtTWFjaFNlcnZpY2VOYW1lID0gV1RGTW92ZShuYW1lKTsgfQorICAgIGNvbnN0IFN0cmluZyYg
cGNtTWFjaFNlcnZpY2VOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9wY21NYWNoU2VydmljZU5hbWU7
IH0KKwogcHJpdmF0ZToKICAgICBJc1BlcnNpc3RlbnQgbV9pc1BlcnNpc3RlbnQgeyBJc1BlcnNp
c3RlbnQ6Ok5vIH07CiAKQEAgLTIzMiw2ICsyMzUsNyBAQCBwcml2YXRlOgogICAgIFVSTCBtX3N0
YW5kYWxvbmVBcHBsaWNhdGlvblVSTDsKICAgICBib29sIG1fZW5hYmxlSW5BcHBCcm93c2VyUHJp
dmFjeUZvclRlc3RpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9hbGxvd3NIU1RTV2l0aFVudHJ1
c3RlZFJvb3RDZXJ0aWZpY2F0ZSB7IGZhbHNlIH07CisgICAgU3RyaW5nIG1fcGNtTWFjaFNlcnZp
Y2VOYW1lOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlS
ZWY+IG1fcHJveHlDb25maWd1cmF0aW9uOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmM1YjIyZTk3NjlhNzY0MWVhOTkzZWE0MWNm
NTZmNTU4MGMwODM3Ni4uMjY2NGZmZTdiNjBkZWY0MWJjYzU4N2M1OGRiYjJmYTFlZWEyNzE1MiAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE5IEBACisyMDIxLTA5LTEzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHVuaXQgdGVzdCB0aGF0IHVzZXMgUENNIGRhZW1vbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMTkxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RQQ01EYWVtb24ueGNjb25maWc6IEFkZGVkLgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1
dGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmN1cnJlbnRFeGVjdXRhYmxlTG9jYXRp
b24pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6dGVzdERhZW1vblBMaXN0KToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvVGVz
dFBDTURhZW1vbk1haW4uYzogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rp
b24uY3BwLgorICAgICAgICAobWFpbik6CisKIDIwMjEtMDktMTAgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgaW5mcmFzdHJ1Y3R1cmUg
dG8gYWxsb3cgVExTIGR1cmluZyBQQ00gdGVzdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFBDTURhZW1vbi54Y2NvbmZpZyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFBDTURhZW1vbi54Y2NvbmZpZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yZTdlYzY4MTZhODk4YjQ4NzIyN2RlMDRlZjM5NTkxNjA4OGIzMDUxCi0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0UENNRGFlbW9uLnhj
Y29uZmlnCkBAIC0wLDAgKzEsMjcgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy8v
IGFyZSBtZXQ6CisvLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKy8vICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisvLyBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorLy8g
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisvLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisvLyBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisvLyBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKy8vIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKy8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKworUFJPRFVDVF9OQU1FID0gVGVzdFBDTURhZW1vbjsKKworT1RIRVJfTERGTEFHUyA9IC1m
cmFtZXdvcmsgV2ViS2l0OworRlJBTUVXT1JLX1NFQVJDSF9QQVRIUyA9ICQoQlVJTFRfUFJPRFVD
VFNfRElSKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMv
VGVzdFdlYktpdEFQSS1tYWNPUy1pbnRlcm5hbC5lbnRpdGxlbWVudHMgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEktbWFjT1MtaW50ZXJuYWwuZW50aXRs
ZW1lbnRzCmluZGV4IDM4MWFhMzI1MzMyNTRhZjBmMThkOGJiMjU4ZjQ2OTQ3ODRmMDRjZjEuLmNm
MDhlNGI2NGEzYjVjOThkYTUxM2JjZDRiYTQ4ZGYyZGUwMzkxZGEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS1tYWNPUy1pbnRlcm5h
bC5lbnRpdGxlbWVudHMKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9U
ZXN0V2ViS2l0QVBJLW1hY09TLWludGVybmFsLmVudGl0bGVtZW50cwpAQCAtMiw2ICsyLDggQEAK
IDwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0
dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgogPHBsaXN0IHZl
cnNpb249IjEuMCI+CiA8ZGljdD4KKwk8a2V5PmNvbS5hcHBsZS5wcml2YXRlLnhwYy5sYXVuY2hk
LmpvYi1tYW5hZ2VyPC9rZXk+CisJPHN0cmluZz5UZXN0V2ViS2l0QVBJPC9zdHJpbmc+CiAJPGtl
eT5jb20uYXBwbGUuaGlkLm1hbmFnZXIudXNlci1hY2Nlc3MtZGV2aWNlPC9rZXk+CiAJPHRydWUv
PgogCTxrZXk+Y29tLmFwcGxlLnByaXZhdGUuaGlkLmNsaWVudC5ldmVudC1maWx0ZXI8L2tleT4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktp
dEFQSS1tYWNPUy5lbnRpdGxlbWVudHMgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRp
b25zL1Rlc3RXZWJLaXRBUEktbWFjT1MuZW50aXRsZW1lbnRzCmluZGV4IGY0ODhhZWE2MjM0ODM0
MjQwYTg3N2RlNDg0Y2NiNDJkMTIwMzgyZDEuLmMwMzMxNmYyZjJhZGY1MjBlZTc1NGQzYTQ3MjRk
NGQ5NmE1ODJlMjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlv
bnMvVGVzdFdlYktpdEFQSS1tYWNPUy5lbnRpdGxlbWVudHMKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLW1hY09TLmVudGl0bGVtZW50cwpAQCAt
Miw2ICsyLDggQEAKIDwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1Qg
MS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQi
PgogPHBsaXN0IHZlcnNpb249IjEuMCI+CiA8ZGljdD4KKwk8a2V5PmNvbS5hcHBsZS5wcml2YXRl
LnhwYy5sYXVuY2hkLmpvYi1tYW5hZ2VyPC9rZXk+CisJPHN0cmluZz5UZXN0V2ViS2l0QVBJPC9z
dHJpbmc+CiAJPGtleT5rZXljaGFpbi1hY2Nlc3MtZ3JvdXBzPC9rZXk+CiAJPGFycmF5PgogCQk8
c3RyaW5nPmNvbS5hcHBsZS5UZXN0V2ViS2l0QVBJPC9zdHJpbmc+CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25maWcgYi9U
b29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25maWcK
aW5kZXggZmNiODJiYWZlNzYwYTUxMjBhMjI1YmJkYjI0NjNiYTljMzBlMjNlMy4uYzA2MmU2MzIx
ZmMyNTNhNmQ2ZDVlYjFlOGY5OGM1ZmJhMDJmZGQzNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLnhjY29uZmlnCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS54Y2NvbmZpZwpAQCAt
NDMsNiArNDMsMTAgQEAgRlJBTUVXT1JLX1NFQVJDSF9QQVRIUyA9ICQoRlJBTUVXT1JLX1NFQVJD
SF9QQVRIU18kKFdLX0NPQ09BX1RPVUNIKSk7CiBGUkFNRVdPUktfU0VBUkNIX1BBVEhTXyA9ICQo
aW5oZXJpdGVkKSAkKFdLX1BSSVZBVEVfRlJBTUVXT1JLU19ESVIpICQoU1lTVEVNX0xJQlJBUllf
RElSKS9Qcml2YXRlRnJhbWV3b3JrcyAkKFNZU1RFTV9MSUJSQVJZX0RJUikvRnJhbWV3b3Jrcy9X
ZWJLaXQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3JrczsKIEZSQU1FV09SS19TRUFSQ0hf
UEFUSFNfY29jb2F0b3VjaCA9ICQoaW5oZXJpdGVkKSAkKFdLX1BSSVZBVEVfRlJBTUVXT1JLU19E
SVIpOwogCitXS19BUFBTRVJWRVJTVVBQT1JUX0xERkxBR1MgPSAkKFdLX0FQUFNFUlZFUlNVUFBP
UlRfTERGTEFHU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKK1dLX0FQUFNFUlZFUlNVUFBPUlRfTERG
TEFHU19tYWNvc3ggPSAkKFdLX0FQUFNFUlZFUlNVUFBPUlRfTERGTEFHUyQoV0tfTUFDT1NfMTIw
MCkpOworV0tfQVBQU0VSVkVSU1VQUE9SVF9MREZMQUdTX01BQ09TX1NJTkNFXzEyMDAgPSAtZnJh
bWV3b3JrIEFwcFNlcnZlclN1cHBvcnQKKwogV0tfQVVUSEtJVF9MREZMQUdTID0gJChXS19BVVRI
S0lUX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CiBXS19BVVRIS0lUX0xERkxBR1NfaXBo
b25lb3MgPSAkKFdLX0FVVEhLSVRfTERGTEFHUyQoV0tfSU9TXzEzKSk7CiBXS19BVVRIS0lUX0xE
RkxBR1NfaXBob25lc2ltdWxhdG9yID0gJChXS19BVVRIS0lUX0xERkxBR1MkKFdLX0lPU18xMykp
OwpAQCAtODYsNyArOTAsNyBAQCBXS19VSUtJVE1BQ0hFTFBFUl9MREZMQUdTX21hY2NhdGFseXN0
ID0gLWZyYW1ld29yayBVSUtpdE1hY0hlbHBlcjsKIAogT1RIRVJfQ1BMVVNQTFVTRkxBR1MgPSAk
KGluaGVyaXRlZCkgLWlzeXN0ZW0gJChTREtST09UKS9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz
L1N5c3RlbS5mcmFtZXdvcmsvUHJpdmF0ZUhlYWRlcnM7CiAKLU9USEVSX0xERkxBR1MgPSAkKGlu
aGVyaXRlZCkgLWxndGVzdCAtZm9yY2VfbG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvbGliVGVz
dFdlYktpdEFQSS5hIC1mcmFtZXdvcmsgSmF2YVNjcmlwdENvcmUgLWZyYW1ld29yayBXZWJLaXQg
LWxXZWJDb3JlVGVzdFN1cHBvcnQgJChXS19BVVRIS0lUX0xERkxBR1MpIC1mcmFtZXdvcmsgTmV0
d29yayAkKFdLX0hJRF9MREZMQUdTKSAkKFdLX09QRU5HTF9MREZMQUdTKSAkKFdLX1BERktJVF9M
REZMQUdTKSAkKFdLX1NZU1RFTV9MREZMQUdTKSAkKFdLX1VJS0lUTUFDSEVMUEVSX0xERkxBR1Mp
ICQoV0tfVklTSU9OS0lUQ09SRV9MREZMQUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChX
S19DT0NPQV9UT1VDSCkpOworT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAtbGd0ZXN0IC1m
b3JjZV9sb2FkICQoQlVJTFRfUFJPRFVDVFNfRElSKS9saWJUZXN0V2ViS2l0QVBJLmEgLWZyYW1l
d29yayBKYXZhU2NyaXB0Q29yZSAtZnJhbWV3b3JrIFdlYktpdCAtbFdlYkNvcmVUZXN0U3VwcG9y
dCAkKFdLX0FQUFNFUlZFUlNVUFBPUlRfTERGTEFHUykgJChXS19BVVRIS0lUX0xERkxBR1MpIC1m
cmFtZXdvcmsgTmV0d29yayAkKFdLX0hJRF9MREZMQUdTKSAkKFdLX09QRU5HTF9MREZMQUdTKSAk
KFdLX1BERktJVF9MREZMQUdTKSAkKFdLX1NZU1RFTV9MREZMQUdTKSAkKFdLX1VJS0lUTUFDSEVM
UEVSX0xERkxBR1MpICQoV0tfVklTSU9OS0lUQ09SRV9MREZMQUdTKSAkKE9USEVSX0xERkxBR1Nf
UExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkpOwogT1RIRVJfTERGTEFHU19QTEFURk9STV8gPSAt
ZnJhbWV3b3JrIENvY29hIC1mcmFtZXdvcmsgQ2FyYm9uOwogCiAvLyBGSVhNRTogVGhpcyBzaG91
bGQgbm90IGJlIGJ1aWx0IG9uIGlPUy4gSW5zdGVhZCB3ZSBzaG91bGQgY3JlYXRlIGFuZCB1c2Ug
YSBUZXN0V2ViS2l0QVBJIGFwcGxpY2F0aW9uLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAx
OGViZjk0MTAzYmE4NGNlNjQwYzJkMzExZGZlM2JmZmM1MzY3ZGVlLi5hY2Y1YWUyNTJkMmFlZGZk
NTUxMGJhZDdjMTY0MzczMzk5MTdiYjY5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzYs
NiArMzYsNyBAQAogCQkJCTUzN0NGODQ4MjJFRkQ3MjAwMEM2RUJCMyAvKiBDaGVjayAueGNmaWxl
bGlzdHMgKi8sCiAJCQkpOwogCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCTVDMUIxRDFDMjZFQzJF
RUMwMDg4MkRBMiAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTdDODNFMDMwMUQwQTVF
MUIwMEZFQkNGMyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTdDODNFMDMyMUQwQTVF
MUQwMEZFQkNGMyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsKQEAgLTQ3OCw2ICs0
NzksNyBAQAogCQk1QzEyMUU4RDI0MTA3MDQ5MDA0ODZGOUIgLyogQ29udGVudFdvcmxkUGx1Z0lu
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMxMjFF
OEMyNDEwNzAzMjAwNDg2RjlCIC8qIENvbnRlbnRXb3JsZFBsdWdJbi5tbSAqLzsgfTsKIAkJNUMx
NkY4RkMyMzBDOTQzNzAwNzRDNEE4IC8qIFRleHRTaXplLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMxNkY4RkIyMzBDOTQyQjAwNzRDNEE4IC8qIFRl
eHRTaXplLm1tICovOyB9OwogCQk1QzE5QTUyNDFGRDBGNjAxMDBFRUEzMjMgLyogQ29va2llUHJp
dmF0ZUJyb3dzaW5nLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNUMxOUE1MjMxRkQwRjMyNjAwRUVBMzIzIC8qIENvb2tpZVByaXZhdGVCcm93c2luZy5t
bSAqLzsgfTsKKwkJNUMxQjFEMTcyNkVDMjdERTAwODgyREEyIC8qIFRlc3RQQ01EYWVtb25NYWlu
LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzFCMUQx
NjI2RUMyN0M1MDA4ODJEQTIgLyogVGVzdFBDTURhZW1vbk1haW4uYyAqLzsgfTsKIAkJNUMyM0RG
MEIyMjQ2MDE1ODAwRjQ1NEI2IC8qIENoYWxsZW5nZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMjNERjBBMjI0NUM5RDcwMEY0NTRCNiAvKiBDaGFs
bGVuZ2UubW0gKi87IH07CiAJCTVDMjkzNjkzMUQ1QkY3MEQwMERFQUIxRSAvKiBDb29raWVBY2Nl
cHRQb2xpY3kubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1QzI5MzY5MTFENUJGNjNFMDBERUFCMUUgLyogQ29va2llQWNjZXB0UG9saWN5Lm1tICovOyB9
OwogCQk1QzI5MzY5NjFENUMwMEVEMDBERUFCMUUgLyogQ29va2llTWVzc2FnZS5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMjkzNjk0
MUQ1QkZEMTkwMERFQUIxRSAvKiBDb29raWVNZXNzYWdlLmh0bWwgKi87IH07CkBAIC0xMjk3LDYg
KzEyOTksMTMgQEAKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQ
QlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLworCQk1QzFCMUQxQjI2RUMyRUVDMDA4ODJE
QTIgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0geworCQkJaXNhID0gUEJYQ29udGFpbmVy
SXRlbVByb3h5OworCQkJY29udGFpbmVyUG9ydGFsID0gMDhGQjc3OTNGRTg0MTU1REMwMkFBQzA3
IC8qIFByb2plY3Qgb2JqZWN0ICovOworCQkJcHJveHlUeXBlID0gMTsKKwkJCXJlbW90ZUdsb2Jh
bElEU3RyaW5nID0gNUMxQjFEMDgyNkVDMjc4NTAwODgyREEyOworCQkJcmVtb3RlSW5mbyA9IFRl
c3RQQ01EYWVtb247CisJCX07CiAJCTVDOUQ5MjIxMjJEN0RDODQwMDhFOTI2NiAvKiBQQlhDb250
YWluZXJJdGVtUHJveHkgKi8gPSB7CiAJCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CiAJ
CQljb250YWluZXJQb3J0YWwgPSAwOEZCNzc5M0ZFODQxNTVEQzAyQUFDMDcgLyogUHJvamVjdCBv
YmplY3QgKi87CkBAIC0yMzMxLDYgKzIzNDAsOSBAQAogCQk1QzEyMUU4QzI0MTA3MDMyMDA0ODZG
OUIgLyogQ29udGVudFdvcmxkUGx1Z0luLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gQ29udGVudFdvcmxkUGx1Z0luLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1QzE2RjhGQjIzMEM5NDJCMDA3NEM0QTggLyogVGV4dFNpemUubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXh0U2l6ZS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNUMxOUE1MjMxRkQwRjMyNjAwRUVBMzIzIC8qIENvb2tpZVByaXZh
dGVCcm93c2luZy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENv
b2tpZVByaXZhdGVCcm93c2luZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUMx
QjFEMTQyNkVDMjc4NTAwODgyREEyIC8qIFRlc3RQQ01EYWVtb24gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhlY3V0YWJs
ZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFRlc3RQQ01EYWVtb247IHNvdXJjZVRyZWUg
PSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTVDMUIxRDE2MjZFQzI3QzUwMDg4MkRBMiAvKiBU
ZXN0UENNRGFlbW9uTWFpbi5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBUZXN0UENNRGFlbW9uTWFpbi5jOyBw
YXRoID0gY29jb2EvVGVzdFBDTURhZW1vbk1haW4uYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNUMxQjFEMUEyNkVDMjg0RTAwODgyREEyIC8qIFRlc3RQQ01EYWVtb24ueGNjb25maWcg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lnhj
Y29uZmlnOyBwYXRoID0gVGVzdFBDTURhZW1vbi54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNUMyM0RGMEEyMjQ1QzlENzAwRjQ1NEI2IC8qIENoYWxsZW5nZS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENoYWxsZW5nZS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMyOTM2OTExRDVCRjYzRTAwREVBQjFFIC8qIENvb2tp
ZUFjY2VwdFBvbGljeS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IENvb2tpZUFjY2VwdFBvbGljeS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMy
OTM2OTQxRDVCRkQxOTAwREVBQjFFIC8qIENvb2tpZU1lc3NhZ2UuaHRtbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQuaHRtbDsgcGF0aCA9IENvb2tpZU1lc3NhZ2UuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTMxNjIsNiArMzE3NCwxMyBAQAogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2Vj
dGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCisJ
CTVDMUIxRDBFMjZFQzI3ODUwMDg4MkRBMiAvKiBGcmFtZXdvcmtzICovID0geworCQkJaXNhID0g
UEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3
OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CisJCX07CiAJCTdDODNERjY0MUQwQTU5MEMwMEZFQkNGMyAvKiBGcmFtZXdvcmtz
ICovID0gewogCQkJaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlv
bk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtMzMwNiw2ICszMzI1LDcgQEAKIAkJCQk1QzcyRThDRTI0
NEZGQ0U0MDAzODFFQjcgLyogVGVzdExlZ2FjeURvd25sb2FkRGVsZWdhdGUubW0gKi8sCiAJCQkJ
MkQxQzA0QTUxRDc2Mjk4QjAwMEE2ODE2IC8qIFRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCAqLywK
IAkJCQkyRDFDMDRBNjFENzYyOThCMDAwQTY4MTYgLyogVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5t
bSAqLywKKwkJCQk1QzFCMUQxNjI2RUMyN0M1MDA4ODJEQTIgLyogVGVzdFBDTURhZW1vbk1haW4u
YyAqLywKIAkJCQk1MTYyODEyMzIzMjVDMTdBMDBCQjdFNDIgLyogVGVzdFBERkRvY3VtZW50Lmgg
Ki8sCiAJCQkJNTE2MjgxMjQyMzI1QzE3QjAwQkI3RTQyIC8qIFRlc3RQREZEb2N1bWVudC5tbSAq
LywKIAkJCQlBMTRGQzU4RDFCOEFFMzY1MDBEMTA3RUIgLyogVGVzdFByb3RvY29sLmggKi8sCkBA
IC0zMzY0LDYgKzMzODQsNyBAQAogCQkxQUI2NzRBREZFOUQ1NEI1MTFDQTJDQkIgLyogUHJvZHVj
dHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTVDMUIx
RDE0MjZFQzI3ODUwMDg4MkRBMiAvKiBUZXN0UENNRGFlbW9uICovLAogCQkJCThERDc2RkExMDQ4
NkFBNzYwMEQ5NkI1RSAvKiBUZXN0V2ViS2l0QVBJICovLAogCQkJCTdDODNFMDIzMUQwQTVBRTQw
MEZFQkNGMyAvKiBUZXN0V1RGICovLAogCQkJCUJDNTc1OTgwMTI2RTc0QUYwMDZGMEYxMiAvKiBJ
bmplY3RlZEJ1bmRsZVRlc3RXZWJLaXRBUEkuYnVuZGxlICovLApAQCAtNDI5Myw2ICs0MzE0LDcg
QEAKIAkJCQlCQzkwOTU3RjEyNTU0Q0Y5MDAwODM3NTYgLyogRGVidWdSZWxlYXNlLnhjY29uZmln
ICovLAogCQkJCUJDNTc1QUUyMTI2RTg4QjEwMDZGMEYxMiAvKiBJbmplY3RlZEJ1bmRsZS54Y2Nv
bmZpZyAqLywKIAkJCQlBMUI4OUI5OTIyMUUwMjlGMDBFQjRDRUEgLyogU0RLVmFyaWFudC54Y2Nv
bmZpZyAqLywKKwkJCQk1QzFCMUQxQTI2RUMyODRFMDA4ODJEQTIgLyogVGVzdFBDTURhZW1vbi54
Y2NvbmZpZyAqLywKIAkJCQk1NzM1RjAyNTFGM0E0RUE2MDAwRUU4MDEgLyogVGVzdFdlYktpdEFQ
SS1pT1MuZW50aXRsZW1lbnRzICovLAogCQkJCTUxRUIxMjUzMjRDNjZCQ0IwMDBDQjAzMCAvKiBU
ZXN0V2ViS2l0QVBJLW1hY09TLWludGVybmFsLmVudGl0bGVtZW50cyAqLywKIAkJCQk3QUIwMTcz
OTIzRkIyQkYwMDAyRjgzNjYgLyogVGVzdFdlYktpdEFQSS1tYWNPUy5lbnRpdGxlbWVudHMgKi8s
CkBAIC00OTc5LDYgKzUwMDEsMjMgQEAKIC8qIEVuZCBQQlhHcm91cCBzZWN0aW9uICovCiAKIC8q
IEJlZ2luIFBCWE5hdGl2ZVRhcmdldCBzZWN0aW9uICovCisJCTVDMUIxRDA4MjZFQzI3ODUwMDg4
MkRBMiAvKiBUZXN0UENNRGFlbW9uICovID0geworCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0Owor
CQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDVDMUIxRDExMjZFQzI3ODUwMDg4MkRBMiAvKiBC
dWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiVGVzdFBDTURhZW1v
biIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJCQk1QzFCMUQwQjI2RUMyNzg1MDA4ODJEQTIg
LyogU291cmNlcyAqLywKKwkJCQk1QzFCMUQwRTI2RUMyNzg1MDA4ODJEQTIgLyogRnJhbWV3b3Jr
cyAqLywKKwkJCSk7CisJCQlidWlsZFJ1bGVzID0gKAorCQkJKTsKKwkJCWRlcGVuZGVuY2llcyA9
ICgKKwkJCSk7CisJCQluYW1lID0gVGVzdFBDTURhZW1vbjsKKwkJCXByb2R1Y3RJbnN0YWxsUGF0
aCA9ICIkKEhPTUUpL2JpbiI7CisJCQlwcm9kdWN0TmFtZSA9IFRlc3RQQ01EYWVtb247CisJCQlw
cm9kdWN0UmVmZXJlbmNlID0gNUMxQjFEMTQyNkVDMjc4NTAwODgyREEyIC8qIFRlc3RQQ01EYWVt
b24gKi87CisJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnRvb2wiOwor
CQl9OwogCQk3QzgzREU5NTFEMEE1OTBDMDBGRUJDRjMgLyogVGVzdFdURkxpYnJhcnkgKi8gPSB7
CiAJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0g
N0M4M0RGNjUxRDBBNTkwQzAwRkVCQ0YzIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3Ig
UEJYTmF0aXZlVGFyZ2V0ICJUZXN0V1RGTGlicmFyeSIgKi87CkBAIC01MTM4LDYgKzUxNzcsNyBA
QAogCQkJCUJDNTc1OTdGMTI2RTc0QUYwMDZGMEYxMiAvKiBJbmplY3RlZEJ1bmRsZVRlc3RXZWJL
aXRBUEkgKi8sCiAJCQkJQTEzRUJCNDgxQjg3MzM5RTAwMDk3MTEwIC8qIFdlYlByb2Nlc3NQbHVn
SW4gKi8sCiAJCQkJNTM3Q0Y4NDMyMkVGRDY0MTAwQzZFQkIzIC8qIEFwcGx5IENvbmZpZ3VyYXRp
b24gdG8gWENGaWxlTGlzdHMgKi8sCisJCQkJNUMxQjFEMDgyNkVDMjc4NTAwODgyREEyIC8qIFRl
c3RQQ01EYWVtb24gKi8sCiAJCQkpOwogCQl9OwogLyogRW5kIFBCWFByb2plY3Qgc2VjdGlvbiAq
LwpAQCAtNTIxNCw2ICs1MjU0LDE0IEBACiAvKiBFbmQgUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNl
IHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYU291cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwor
CQk1QzFCMUQwQjI2RUMyNzg1MDA4ODJEQTIgLyogU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBC
WFNvdXJjZXNCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJ
CWZpbGVzID0gKAorCQkJCTVDMUIxRDE3MjZFQzI3REUwMDg4MkRBMiAvKiBUZXN0UENNRGFlbW9u
TWFpbi5jIGluIFNvdXJjZXMgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CisJCX07CiAJCTdDODNERTk2MUQwQTU5MEMwMEZFQkNGMyAvKiBTb3Vy
Y2VzICovID0gewogCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlv
bk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtNjA3OCw2ICs2MTI2LDExIEBACiAvKiBFbmQgUEJYU291
cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhUYXJnZXREZXBlbmRlbmN5
IHNlY3Rpb24gKi8KKwkJNUMxQjFEMUMyNkVDMkVFQzAwODgyREEyIC8qIFBCWFRhcmdldERlcGVu
ZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OworCQkJdGFyZ2V0ID0g
NUMxQjFEMDgyNkVDMjc4NTAwODgyREEyIC8qIFRlc3RQQ01EYWVtb24gKi87CisJCQl0YXJnZXRQ
cm94eSA9IDVDMUIxRDFCMjZFQzJFRUMwMDg4MkRBMiAvKiBQQlhDb250YWluZXJJdGVtUHJveHkg
Ki87CisJCX07CiAJCTVDOUQ5MjIyMjJEN0RDODQwMDhFOTI2NiAvKiBQQlhUYXJnZXREZXBlbmRl
bmN5ICovID0gewogCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKIAkJCXRhcmdldCA9IDVD
OUQ5MjE0MjJEN0RBMDIwMDhFOTI2NiAvKiBHZW5lcmF0ZSBVbmlmaWVkIFNvdXJjZXMgKi87CkBA
IC02MTYwLDYgKzYyMTMsMjIgQEAKIAkJCX07CiAJCQluYW1lID0gUmVsZWFzZTsKIAkJfTsKKwkJ
NUMxQjFEMTIyNkVDMjc4NTAwODgyREEyIC8qIERlYnVnICovID0geworCQkJaXNhID0gWENCdWls
ZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVDMUIxRDFB
MjZFQzI4NEUwMDg4MkRBMiAvKiBUZXN0UENNRGFlbW9uLnhjY29uZmlnICovOworCQkJYnVpbGRT
ZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsK
KwkJCW5hbWUgPSBEZWJ1ZzsKKwkJfTsKKwkJNUMxQjFEMTMyNkVDMjc4NTAwODgyREEyIC8qIFJl
bGVhc2UgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25m
aWd1cmF0aW9uUmVmZXJlbmNlID0gNUMxQjFEMUEyNkVDMjg0RTAwODgyREEyIC8qIFRlc3RQQ01E
YWVtb24ueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFN
RSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CiAJ
CTVDOUQ5MjFBMjJEN0RBMDIwMDhFOTI2NiAvKiBEZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9IFhDQnVp
bGRDb25maWd1cmF0aW9uOwogCQkJYnVpbGRTZXR0aW5ncyA9IHsKQEAgLTYyODgsNiArNjM1Nywx
NSBAQAogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwogCQkJZGVmYXVsdENv
bmZpZ3VyYXRpb25OYW1lID0gUmVsZWFzZTsKIAkJfTsKKwkJNUMxQjFEMTEyNkVDMjc4NTAwODgy
REEyIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJUZXN0
UENNRGFlbW9uIiAqLyA9IHsKKwkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CisJCQlidWls
ZENvbmZpZ3VyYXRpb25zID0gKAorCQkJCTVDMUIxRDEyMjZFQzI3ODUwMDg4MkRBMiAvKiBEZWJ1
ZyAqLywKKwkJCQk1QzFCMUQxMzI2RUMyNzg1MDA4ODJEQTIgLyogUmVsZWFzZSAqLywKKwkJCSk7
CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisJCQlkZWZhdWx0Q29uZmln
dXJhdGlvbk5hbWUgPSBSZWxlYXNlOworCQl9OwogCQk1QzlEOTIxOTIyRDdEQTAyMDA4RTkyNjYg
LyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkdlbmVy
YXRlIFVuaWZpZWQgU291cmNlcyIgKi8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0
OwogCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQppbmRleCA4N2Q3
ZmU4ZWU3ZTg4N2IyMGI3ZThhNjY3ZDg5NDcxNjQ3YTYzOTk3Li4zYTZhZDliY2FjNjg5MTAyYjVm
YjM5YmQ5M2VmZTI3OTFjMjdlMTkxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCkBAIC0yNywxMyArMjcs
MTggQEAKIAogI2ltcG9ydCAiSFRUUFNlcnZlci5oIgogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRp
ZXMuaCIKKyNpbXBvcnQgIlRlc3QuaCIKICNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUu
aCIKICNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKICNpbXBvcnQgIlV0aWxpdGllcy5oIgorI2lt
cG9ydCA8V2ViS2l0L1dLTWFpbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUu
aD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oPgogI2ltcG9y
dCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9f
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oPgorI2ltcG9ydCA8bWFjaC1vL2R5bGQu
aD4KKyNpbXBvcnQgPHd0Zi9PU09iamVjdFB0ci5oPgorI2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4v
WFBDU1BJLmg+CiAKICNpZiBIQVZFKFJTQV9CU1NBKQogCkBAIC0zNjAsNiArMzY1LDEzMCBAQCBU
RVNUKEV2ZW50QXR0cmlidXRpb24sIERhdGFiYXNlTG9jYXRpb24pCiAgICAgRVhQRUNUX0VRKHdl
YlZpZXdUb0tlZXBOZXR3b3JrUHJvY2Vzc0FsaXZlLmdldCgpLmNvbmZpZ3VyYXRpb24ud2Vic2l0
ZURhdGFTdG9yZS5fbmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyLCBvcmlnaW5hbE5ldHdvcmtQcm9j
ZXNzUGlkKTsKIH0KIAorLy8gRklYTUU6IEdldCB0aGlzIHdvcmtpbmcgaW4gdGhlIGlPUyBzaW11
bGF0b3IuCisjaWYgUExBVEZPUk0oTUFDKQorCitzdGF0aWMgUmV0YWluUHRyPE5TVVJMPiBjdXJy
ZW50RXhlY3V0YWJsZUxvY2F0aW9uKCkKK3sKKyAgICB1aW50MzJfdCBzaXplIHsgMCB9OworICAg
IF9OU0dldEV4ZWN1dGFibGVQYXRoKG51bGxwdHIsICZzaXplKTsKKyAgICBWZWN0b3I8Y2hhcj4g
YnVmZmVyOworICAgIGJ1ZmZlci5yZXNpemUoc2l6ZSArIDEpOworICAgIF9OU0dldEV4ZWN1dGFi
bGVQYXRoKGJ1ZmZlci5kYXRhKCksICZzaXplKTsKKyAgICBidWZmZXJbc2l6ZV0gPSAnXDAnOwor
ICAgIGF1dG8gcGF0aFN0cmluZyA9IGFkb3B0TlMoW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhV
VEY4U3RyaW5nOmJ1ZmZlci5kYXRhKCldKTsKKyAgICByZXR1cm4gYWRvcHROUyhbW05TVVJMIGFs
bG9jXSBpbml0RmlsZVVSTFdpdGhQYXRoOnBhdGhTdHJpbmcuZ2V0KCkgaXNEaXJlY3Rvcnk6Tk9d
KTsKK30KKworc3RhdGljIFJldGFpblB0cjxOU1VSTD4gY3VycmVudEV4ZWN1dGFibGVEaXJlY3Rv
cnkoKQoreworICAgIHJldHVybiBbY3VycmVudEV4ZWN1dGFibGVMb2NhdGlvbigpIFVSTEJ5RGVs
ZXRpbmdMYXN0UGF0aENvbXBvbmVudF07Cit9CisKK3N0YXRpYyBSZXRhaW5QdHI8TlNVUkw+IHRl
c3RQQ01EYWVtb25Mb2NhdGlvbigpCit7CisgICAgcmV0dXJuIFtjdXJyZW50RXhlY3V0YWJsZURp
cmVjdG9yeSgpIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIlRlc3RQQ01EYWVtb24iIGlz
RGlyZWN0b3J5Ok5PXTsKK30KKworI2lmIEhBVkUoT1NfTEFVTkNIRF9KT0IpCisKK3N0YXRpYyBP
U09iamVjdFB0cjx4cGNfb2JqZWN0X3Q+IHRlc3REYWVtb25QTGlzdChOU1VSTCAqc3RvcmFnZUxv
Y2F0aW9uKQoreworICAgIGF1dG8gcGxpc3QgPSBhZG9wdE9TT2JqZWN0KHhwY19kaWN0aW9uYXJ5
X2NyZWF0ZShudWxscHRyLCBudWxscHRyLCAwKSk7CisgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0
cmluZyhwbGlzdC5nZXQoKSwgIl9NYW5hZ2VkQnkiLCAiVGVzdFdlYktpdEFQSSIpOworICAgIHhw
Y19kaWN0aW9uYXJ5X3NldF9zdHJpbmcocGxpc3QuZ2V0KCksICJMYWJlbCIsICJvcmcud2Via2l0
LnBjbXRlc3RkYWVtb24iKTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfYm9vbChwbGlzdC5nZXQo
KSwgIkxhdW5jaE9ubHlPbmNlIiwgdHJ1ZSk7CisKKyAgICB7CisgICAgICAgIGF1dG8gZW52aXJv
bm1lbnRWYXJpYWJsZXMgPSBhZG9wdE9TT2JqZWN0KHhwY19kaWN0aW9uYXJ5X2NyZWF0ZShudWxs
cHRyLCBudWxscHRyLCAwKSk7CisgICAgICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmcoZW52
aXJvbm1lbnRWYXJpYWJsZXMuZ2V0KCksICJEWUxEX0ZSQU1FV09SS19QQVRIIiwgY3VycmVudEV4
ZWN1dGFibGVEaXJlY3RvcnkoKS5nZXQoKS5maWxlU3lzdGVtUmVwcmVzZW50YXRpb24pOworICAg
ICAgICB4cGNfZGljdGlvbmFyeV9zZXRfdmFsdWUocGxpc3QuZ2V0KCksICJFbnZpcm9ubWVudFZh
cmlhYmxlcyIsIGVudmlyb25tZW50VmFyaWFibGVzLmdldCgpKTsKKyAgICB9CisgICAgeworICAg
ICAgICBhdXRvIG1hY2hTZXJ2aWNlcyA9IGFkb3B0T1NPYmplY3QoeHBjX2RpY3Rpb25hcnlfY3Jl
YXRlKG51bGxwdHIsIG51bGxwdHIsIDApKTsKKyAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X2Jv
b2wobWFjaFNlcnZpY2VzLmdldCgpLCAib3JnLndlYmtpdC5wY210ZXN0ZGFlbW9uLnNlcnZpY2Ui
LCB0cnVlKTsKKyAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3ZhbHVlKHBsaXN0LmdldCgpLCAi
TWFjaFNlcnZpY2VzIiwgbWFjaFNlcnZpY2VzLmdldCgpKTsKKyAgICB9CisgICAgeworICAgICAg
ICBhdXRvIHByb2dyYW1Bcmd1bWVudHMgPSBhZG9wdE9TT2JqZWN0KHhwY19hcnJheV9jcmVhdGUo
bnVsbHB0ciwgMCkpOworICAgICAgICBhdXRvIGV4ZWN1dGFibGVMb2NhdGlvbiA9IHRlc3RQQ01E
YWVtb25Mb2NhdGlvbigpOworICAgICAgICB4cGNfYXJyYXlfc2V0X3N0cmluZyhwcm9ncmFtQXJn
dW1lbnRzLmdldCgpLCBYUENfQVJSQVlfQVBQRU5ELCBleGVjdXRhYmxlTG9jYXRpb24uZ2V0KCku
ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKTsKKyAgICAgICAgeHBjX2FycmF5X3NldF9zdHJpbmco
cHJvZ3JhbUFyZ3VtZW50cy5nZXQoKSwgWFBDX0FSUkFZX0FQUEVORCwgIi0tbWFjaFNlcnZpY2VO
YW1lIik7CisgICAgICAgIHhwY19hcnJheV9zZXRfc3RyaW5nKHByb2dyYW1Bcmd1bWVudHMuZ2V0
KCksIFhQQ19BUlJBWV9BUFBFTkQsICJvcmcud2Via2l0LnBjbXRlc3RkYWVtb24uc2VydmljZSIp
OworICAgICAgICB4cGNfYXJyYXlfc2V0X3N0cmluZyhwcm9ncmFtQXJndW1lbnRzLmdldCgpLCBY
UENfQVJSQVlfQVBQRU5ELCAiLS1zdG9yYWdlTG9jYXRpb24iKTsKKyAgICAgICAgeHBjX2FycmF5
X3NldF9zdHJpbmcocHJvZ3JhbUFyZ3VtZW50cy5nZXQoKSwgWFBDX0FSUkFZX0FQUEVORCwgc3Rv
cmFnZUxvY2F0aW9uLmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbik7CisgICAgICAgIHhwY19kaWN0
aW9uYXJ5X3NldF92YWx1ZShwbGlzdC5nZXQoKSwgIlByb2dyYW1Bcmd1bWVudHMiLCBwcm9ncmFt
QXJndW1lbnRzLmdldCgpKTsKKyAgICB9CisgICAgcmV0dXJuIHBsaXN0OworfQorCisjZWxzZQor
CitzdGF0aWMgUmV0YWluUHRyPE5TRGljdGlvbmFyeT4gdGVzdERhZW1vblBMaXN0KE5TVVJMICpz
dG9yYWdlTG9jYXRpb24pCit7CisgICAgcmV0dXJuIEB7CisgICAgICAgIEAiTGFiZWwiIDogQCJv
cmcud2Via2l0LnBjbXRlc3RkYWVtb24iLAorICAgICAgICBAIkxhdW5jaE9ubHlPbmNlIiA6IEBZ
RVMsCisgICAgICAgIEAiRW52aXJvbm1lbnRWYXJpYWJsZXMiIDogQHsgQCJEWUxEX0ZSQU1FV09S
S19QQVRIIiA6IGN1cnJlbnRFeGVjdXRhYmxlRGlyZWN0b3J5KCkuZ2V0KCkucGF0aCB9LAorICAg
ICAgICBAIk1hY2hTZXJ2aWNlcyIgOiBAeyBAIm9yZy53ZWJraXQucGNtdGVzdGRhZW1vbi5zZXJ2
aWNlIiA6IEBZRVMgfSwKKyAgICAgICAgQCJQcm9ncmFtQXJndW1lbnRzIiA6IEBbCisgICAgICAg
ICAgICB0ZXN0UENNRGFlbW9uTG9jYXRpb24oKS5nZXQoKS5wYXRoLAorICAgICAgICAgICAgQCIt
LW1hY2hTZXJ2aWNlTmFtZSIsCisgICAgICAgICAgICBAIm9yZy53ZWJraXQucGNtdGVzdGRhZW1v
bi5zZXJ2aWNlIiwKKyAgICAgICAgICAgIEAiLS1zdG9yYWdlTG9jYXRpb24iLAorICAgICAgICAg
ICAgc3RvcmFnZUxvY2F0aW9uLnBhdGgKKyAgICAgICAgXQorICAgIH07Cit9CisKKyNlbmRpZgor
CitURVNUKEV2ZW50QXR0cmlidXRpb24sIERhZW1vbikKK3sKKyAgICBOU0ZpbGVNYW5hZ2VyICpm
aWxlTWFuYWdlciA9IFtOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXTsKKyAgICBOU1VSTCAq
dGVtcERpciA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W05TVGVtcG9yYXJ5RGlyZWN0b3J5KCkg
c3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiRXZlbnRBdHRyaWJ1dGlvbkRhZW1vblRl
c3QiXSBpc0RpcmVjdG9yeTpZRVNdOworICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOworICAgIGlm
IChbZmlsZU1hbmFnZXIgZmlsZUV4aXN0c0F0UGF0aDp0ZW1wRGlyLnBhdGhdKQorICAgICAgICBb
ZmlsZU1hbmFnZXIgcmVtb3ZlSXRlbUF0VVJMOnRlbXBEaXIgZXJyb3I6JmVycm9yXTsKKyAgICBF
WFBFQ1RfTlVMTChlcnJvcik7CisKKyAgICBhdXRvIHBsaXN0ID0gdGVzdERhZW1vblBMaXN0KHRl
bXBEaXIpOworI2lmIEhBVkUoT1NfTEFVTkNIRF9KT0IpCisgICAgYXV0byBsYXVuY2hESm9iID0g
YWRvcHROUyhbW09TTGF1bmNoZEpvYiBhbGxvY10gaW5pdFdpdGhQbGlzdDpwbGlzdC5nZXQoKV0p
OworICAgIFtsYXVuY2hESm9iIHN1Ym1pdDomZXJyb3JdOworI2Vsc2UKKyAgICBOU1VSTCAqcGxp
c3RMb2NhdGlvbiA9IFt0ZW1wRGlyIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIkRhZW1v
bkluZm8ucGxpc3QiXTsKKyAgICBCT09MIHN1Y2Nlc3MgPSBbZmlsZU1hbmFnZXIgY3JlYXRlRGly
ZWN0b3J5QXRVUkw6dGVtcERpciB3aXRoSW50ZXJtZWRpYXRlRGlyZWN0b3JpZXM6WUVTIGF0dHJp
YnV0ZXM6bmlsIGVycm9yOiZlcnJvcl07CisgICAgRVhQRUNUX1RSVUUoc3VjY2Vzcyk7CisgICAg
RVhQRUNUX05VTEwoZXJyb3IpOworICAgIHN1Y2Nlc3MgPSBbcGxpc3Qgd3JpdGVUb1VSTDpwbGlz
dExvY2F0aW9uIGVycm9yOiZlcnJvcl07CisgICAgRVhQRUNUX1RSVUUoc3VjY2Vzcyk7CisgICAg
c3lzdGVtKFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAibGF1bmNoY3RsIGxvYWQgJUAiLCBw
bGlzdExvY2F0aW9uLnBhdGhdLlVURjhTdHJpbmcpOworI2VuZGlmCisgICAgRVhQRUNUX05VTEwo
ZXJyb3IpOworCisgICAgYXV0byBkYXRhU3RvcmVDb25maWd1cmF0aW9uID0gYWRvcHROUyhbX1dL
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAgZGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5nZXQoKS5wY21NYWNoU2VydmljZU5hbWUgPSBAIm9yZy53ZWJraXQucGNtdGVzdGRh
ZW1vbi5zZXJ2aWNlIjsKKyAgICBhdXRvIHZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKKyAgICB2aWV3Q29uZmlndXJhdGlvbi5nZXQoKS53
ZWJzaXRlRGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2lu
aXRXaXRoQ29uZmlndXJhdGlvbjpkYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSkuZ2V0KCk7
CisgICAgcnVuQmFzaWNFdmVudEF0dHJpYnV0aW9uVGVzdCh2aWV3Q29uZmlndXJhdGlvbi5nZXQo
KSwgW10oV0tXZWJWaWV3ICp3ZWJWaWV3LCBjb25zdCBIVFRQU2VydmVyJiBzZXJ2ZXIpIHsKKyAg
ICAgICAgW3dlYlZpZXcgX2FkZEV2ZW50QXR0cmlidXRpb25XaXRoU291cmNlSUQ6NDIgZGVzdGlu
YXRpb25VUkw6ZXhhbXBsZVVSTCgpIHNvdXJjZURlc2NyaXB0aW9uOkAidGVzdCBzb3VyY2UgZGVz
Y3JpcHRpb24iIHB1cmNoYXNlcjpAInRlc3QgcHVyY2hhc2VyIiByZXBvcnRFbmRwb2ludDpzZXJ2
ZXIucmVxdWVzdCgpLlVSTCBvcHRpb25hbE5vbmNlOm5pbF07CisgICAgfSk7CisKKyAgICBzeXN0
ZW0oImtpbGxhbGwgVGVzdFBDTURhZW1vbiAtOSIpOworI2lmIEhBVkUoT1NfTEFVTkNIRF9KT0Ip
CisgICAgLy8gTGF1bmNoT25seU9uY2UgdGFrZXMgY2FyZSBvZiBjbGVhbnVwIHdpdGggbGF1bmNo
ZC4KKyNlbHNlCisgICAgc3lzdGVtKFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAibGF1bmNo
Y3RsIHVubG9hZCAlQCIsIHBsaXN0TG9jYXRpb24ucGF0aF0uVVRGOFN0cmluZyk7CisjZW5kaWYK
KworICAgIEVYUEVDVF9UUlVFKFtmaWxlTWFuYWdlciBmaWxlRXhpc3RzQXRQYXRoOnRlbXBEaXIu
cGF0aF0pOworICAgIFtmaWxlTWFuYWdlciByZW1vdmVJdGVtQXRVUkw6dGVtcERpciBlcnJvcjom
ZXJyb3JdOworICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKK30KKworI2VuZGlmIC8vIFBMQVRGT1JN
KE1BQykKKwogI2lmIEhBVkUoVUlfRVZFTlRfQVRUUklCVVRJT04pCiAKIFRFU1QoRXZlbnRBdHRy
aWJ1dGlvbiwgQmFzaWNXaXRoSU9TU1BJKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9jb2NvYS9UZXN0UENNRGFlbW9uTWFpbi5jIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9U
ZXN0UENNRGFlbW9uTWFpbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkN2Q0NDUwZTJhZjc2OWRmNzgwNWM0ZGE5
NTk0ZjFhNGIyYzE5MDcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2Nv
Y29hL1Rlc3RQQ01EYWVtb25NYWluLmMKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlIDxvcy9hdmFpbGFiaWxpdHkuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tNYWluLmg+CisK
K2ludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikKK3sKKyAgICBXS1BDTURhZW1v
bk1haW4oYXJnYywgYXJndik7Cit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>