<?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>222019</bug_id>
          
          <creation_ts>2021-02-16 19:14:09 -0800</creation_ts>
          <short_desc>PCM: Generate secret token and corresponding unlinkable token</short_desc>
          <delta_ts>2021-02-19 15:18:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>221291</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>katherine_cheney</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1730084</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-16 19:14:09 -0800</bug_when>
    <thetext>Generate secret token and corresponding unlinkable token.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730085</commentid>
    <comment_count>1</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-16 19:14:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/73581412&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730086</commentid>
    <comment_count>2</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-16 19:14:47 -0800</bug_when>
    <thetext>&lt;rdar://problem/73581412&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730087</commentid>
    <comment_count>3</comment_count>
      <attachid>420582</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-16 19:26:58 -0800</bug_when>
    <thetext>Created attachment 420582
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730101</commentid>
    <comment_count>4</comment_count>
      <attachid>420585</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-16 19:58:41 -0800</bug_when>
    <thetext>Created attachment 420585
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730123</commentid>
    <comment_count>5</comment_count>
      <attachid>420592</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-16 21:21:17 -0800</bug_when>
    <thetext>Created attachment 420592
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730173</commentid>
    <comment_count>6</comment_count>
      <attachid>420605</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-16 23:56:02 -0800</bug_when>
    <thetext>Created attachment 420605
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730183</commentid>
    <comment_count>7</comment_count>
      <attachid>420609</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-17 00:38:45 -0800</bug_when>
    <thetext>Created attachment 420609
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730193</commentid>
    <comment_count>8</comment_count>
      <attachid>420615</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-17 01:14:05 -0800</bug_when>
    <thetext>Created attachment 420615
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730418</commentid>
    <comment_count>9</comment_count>
      <attachid>420615</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-02-17 11:28:26 -0800</bug_when>
    <thetext>Comment on attachment 420615
Patch

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

r=me with comments.

&gt; Source/WebCore/loader/PrivateClickMeasurement.cpp:150
&gt; +#if HAVE(RSA_BSSA)

These don&apos;t have to be behind RSA_BSSA, right? That will only make testing harder since EWS bots will be behind.

&gt; Source/WebCore/loader/PrivateClickMeasurement.h:274
&gt; +#if HAVE(RSA_BSSA)

Again, EphemeralSourceNonce doesn&apos;t have to be behind RSA_BSSA. Or am I missing something?

&gt; Source/WebCore/loader/PrivateClickMeasurement.h:319
&gt; +    BlindedToken m_blindedToken;

This should be optional too and it needs to have &quot;source&quot; be part of its name since there will eventually be a token for the attribute-on site too.

&gt; Source/WebCore/loader/cocoa/PrivateClickMeasurementCocoa.mm:58
&gt; +    blindedSecret-&gt;setString(&quot;click_nonce&quot;_s, m_ephemeralSourceNonce-&gt;nonce);

Let&apos;s call it source_nonce.

This is how I&apos;ve set it up in my patch:
    reportDetails-&gt;setString(&quot;source_engagement_type&quot;_s, &quot;click&quot;_s);
    reportDetails-&gt;setString(&quot;source_nonce&quot;_s, m_ephemeralSourceNonce-&gt;nonce);
    reportDetails-&gt;setString(&quot;unlinkable_token&quot;_s, &quot;TODO&quot;_s);
    reportDetails-&gt;setInteger(&quot;version&quot;_s, 2);

&gt; Source/WebCore/loader/cocoa/PrivateClickMeasurementCocoa.mm:59
&gt; +    blindedSecret-&gt;setString(&quot;blinded_secret&quot;_s, WTF::base64URLEncode([m_blindedToken.waitingToken blindedMessage].bytes, [m_blindedToken.waitingToken blindedMessage].length));

We should try to use unlinkable_token in any developer facing parts so that we are not tied to blinded signatures as the crypto underpinning. Could even be unlinkable_token_to_sign.

&gt; Tools/TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:150
&gt; +    EXPECT_STREQ(blindedSecret-&gt;getString(&quot;click_nonce&quot;_s).utf8().data(), &quot;ABCDEFabcdef0123456789&quot;);

source_nonce

&gt; Tools/TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:151
&gt; +    EXPECT_FALSE(blindedSecret-&gt;getString(&quot;blinded_secret&quot;_s).isEmpty());

unlinkable_token or unlinkable_token_to_sign.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730468</commentid>
    <comment_count>10</comment_count>
      <attachid>420615</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-17 13:03:41 -0800</bug_when>
    <thetext>Comment on attachment 420615
Patch

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

&gt;&gt; Source/WebCore/loader/PrivateClickMeasurement.cpp:150
&gt;&gt; +#if HAVE(RSA_BSSA)
&gt; 
&gt; These don&apos;t have to be behind RSA_BSSA, right? That will only make testing harder since EWS bots will be behind.

I think the testing concern is not that big of deal. You still have coverage from internal bots. It&apos;s more important to group the whole feature together. Otherwise, this may end up with part of it dangling on down level OS.

&gt;&gt; Source/WebCore/loader/PrivateClickMeasurement.h:319
&gt;&gt; +    BlindedToken m_blindedToken;
&gt; 
&gt; This should be optional too and it needs to have &quot;source&quot; be part of its name since there will eventually be a token for the attribute-on site too.

It doesn&apos;t matter given all the member are pointers. Will change the name.

&gt;&gt; Source/WebCore/loader/cocoa/PrivateClickMeasurementCocoa.mm:58
&gt;&gt; +    blindedSecret-&gt;setString(&quot;click_nonce&quot;_s, m_ephemeralSourceNonce-&gt;nonce);
&gt; 
&gt; Let&apos;s call it source_nonce.
&gt; 
&gt; This is how I&apos;ve set it up in my patch:
&gt;     reportDetails-&gt;setString(&quot;source_engagement_type&quot;_s, &quot;click&quot;_s);
&gt;     reportDetails-&gt;setString(&quot;source_nonce&quot;_s, m_ephemeralSourceNonce-&gt;nonce);
&gt;     reportDetails-&gt;setString(&quot;unlinkable_token&quot;_s, &quot;TODO&quot;_s);
&gt;     reportDetails-&gt;setInteger(&quot;version&quot;_s, 2);

Right, however this is not the actual token. This is the blinded message that the server needs to sign. Will change the nonce name.

&gt;&gt; Source/WebCore/loader/cocoa/PrivateClickMeasurementCocoa.mm:59
&gt;&gt; +    blindedSecret-&gt;setString(&quot;blinded_secret&quot;_s, WTF::base64URLEncode([m_blindedToken.waitingToken blindedMessage].bytes, [m_blindedToken.waitingToken blindedMessage].length));
&gt; 
&gt; We should try to use unlinkable_token in any developer facing parts so that we are not tied to blinded signatures as the crypto underpinning. Could even be unlinkable_token_to_sign.

Okay, unlinkable_token_to_sign seems good.

&gt;&gt; Tools/TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:150
&gt;&gt; +    EXPECT_STREQ(blindedSecret-&gt;getString(&quot;click_nonce&quot;_s).utf8().data(), &quot;ABCDEFabcdef0123456789&quot;);
&gt; 
&gt; source_nonce

Will fix.

&gt;&gt; Tools/TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:151
&gt;&gt; +    EXPECT_FALSE(blindedSecret-&gt;getString(&quot;blinded_secret&quot;_s).isEmpty());
&gt; 
&gt; unlinkable_token or unlinkable_token_to_sign.

Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730618</commentid>
    <comment_count>11</comment_count>
      <attachid>420748</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-17 16:07:05 -0800</bug_when>
    <thetext>Created attachment 420748
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730647</commentid>
    <comment_count>12</comment_count>
      <attachid>420760</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-17 16:50:56 -0800</bug_when>
    <thetext>Created attachment 420760
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730716</commentid>
    <comment_count>13</comment_count>
      <attachid>420786</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-17 19:46:03 -0800</bug_when>
    <thetext>Created attachment 420786
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731276</commentid>
    <comment_count>14</comment_count>
      <attachid>420942</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-19 01:43:23 -0800</bug_when>
    <thetext>Created attachment 420942
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731281</commentid>
    <comment_count>15</comment_count>
      <attachid>420945</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-19 02:29:13 -0800</bug_when>
    <thetext>Created attachment 420945
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731284</commentid>
    <comment_count>16</comment_count>
      <attachid>420946</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-19 02:36:06 -0800</bug_when>
    <thetext>Created attachment 420946
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731285</commentid>
    <comment_count>17</comment_count>
      <attachid>420947</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-19 02:39:14 -0800</bug_when>
    <thetext>Created attachment 420947
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731289</commentid>
    <comment_count>18</comment_count>
      <attachid>420948</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-19 02:59:02 -0800</bug_when>
    <thetext>Created attachment 420948
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731292</commentid>
    <comment_count>19</comment_count>
      <attachid>420949</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-19 03:02:28 -0800</bug_when>
    <thetext>Created attachment 420949
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731299</commentid>
    <comment_count>20</comment_count>
      <attachid>420952</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-19 03:29:20 -0800</bug_when>
    <thetext>Created attachment 420952
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731442</commentid>
    <comment_count>21</comment_count>
      <attachid>420994</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-19 11:09:23 -0800</bug_when>
    <thetext>Created attachment 420994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731625</commentid>
    <comment_count>22</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-19 15:17:23 -0800</bug_when>
    <thetext>Committed r273167 (234362@main): &lt;https://commits.webkit.org/234362@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420582</attachid>
            <date>2021-02-16 19:26:58 -0800</date>
            <delta_ts>2021-02-16 20:02:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222019-20210216192657.patch</filename>
            <type>text/plain</type>
            <size>24257</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDUwYzU1NmNjMjZjMjU5MjcyZWY2ZjYw
Y2I3NzVhZDBiNmU4NDA2OWYuLjU2MzQ5YTQxNTE1NzkzNGEzOWExNGQ0OTAxMzg5M2QwZjZkNjdk
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5f
dGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQg
Y29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcz
NTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd3RmL1BsYXRmb3JtSGF2ZS5oOgorICAgICAgICBBZGRzIGEgY29tcGlsZSB0aW1lIGZsYWcg
Zm9yIFJTQUJTU0EuCisKIDIwMjEtMDItMTUgIFBlciBBcm5lICA8cHZvbGxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW21hY09TXSBDbG9zZSBYUEMgY29ubmVjdGlvbnMgYmVmb3JlIGVudGVyaW5n
IHNhbmRib3gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMTU0ZDExOWE5NjJkM2M5MDkzNzM4N2Y5NzViY2VjOTFl
Mjc4ZmU1Li4yYWY2MTE1MGYxMTI2ZTI5ODk0YzZlYjI3ZDFjMzE1YmQ2OTc2MzQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQgY29y
cmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzczNTgx
NDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENv
dmVyZWQgYnkgQVBJIHRlc3RzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggdXRpbGl6ZXMgUlNBQlNT
QSB0byBnZW5lcmF0ZSBzZWNyZXQgdG9rZW4gZm9yIFBDTSBmcmF1ZCBwcmV2ZW50aW9uLgorCisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZzoKKyAgICAgICAgKiBTb3Vy
Y2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgUGFwZXJ3b3JrIHRvIGxpbmsgQ3J5cHRvS2l0Q0JyaWRnaW5nLgorCisgICAg
ICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNWYWxp
ZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c2V0
RXBoZW1lcmFsU291cmNlTm9uY2UpOgorICAgICAgICAqIGxvYWRlci9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0
dHJpYnV0ZU9uU2l0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6ZXBoZW1lcmFsU291cmNlTm9uY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmNsZWFyRXBoZW1lcmFsU291cmNlTm9uY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5v
bmNlOjpFcGhlbWVyYWxTb3VyY2VOb25jZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFsU291cmNlTm9uY2U6OmlzVmFsaWQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OnNldEVwaGVtZXJhbFNvdXJjZU5vbmNlKTogRGVsZXRlZC4KKyAgICAgICAgR3JvdXBzIGZ1bmN0
aW9uYWxpdGllcyBiZWhpbmQgSEFWRV9SU0FfQlNTQS4KKworICAgICAgICAqIGxvYWRlci9jb2Nv
YS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpibGluZGVkU2VjcmV0SnNvbik6CisgICAgICAg
IChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y2FsY3VsYXRlUGVyc2lzdGVudEJs
aW5kZWRUb2tlbik6CisgICAgICAgIEludHJvZHVjZXMgbmV3IG1ldGhvZHMgdG8gZ2VuZXJhdGUg
dGhlIGJsaW5kZWQgc2VjcmV0cyBhbmQgdW5saW5rYWJsZSB0b2tlbnMuCisKIDIwMjEtMDItMTUg
IEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgUENNOiBBZGQg
aGlnaCBlbnRyb3B5IGF0dHJpYnV0aW9uU291cmNlTm9uY2UgYXR0cmlidXRlIHRvIGFuY2hvciB0
YWdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IDA1NGY2N2U2MmE5MmMwNTY0MDQwM2Q5MDIwMTRm
MjQzMzE0NzMzZmIuLjNmNjE4NjQ1YzBkYThjYTQzMGIxZWViZDliMDk3MGZiNTNiYmE5NjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC04ODQsMyArODg0LDggQEAKICNkZWZpbmUgSEFWRV9DT1JF
X0dSQVBISUNTX1JPTU1SR0JfQ09MT1JfU1BBQ0UgMQogI2RlZmluZSBIQVZFX0NPUkVfR1JBUEhJ
Q1NfWFlaX0NPTE9SX1NQQUNFIDEKICNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDApIFwKKyAgICB8fCAoUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTUw
MDAwKQorI2RlZmluZSBIQVZFX1JTQV9CU1NBIDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3Jl
L0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWcKaW5kZXggYWVjNjVjZmQ2YTFkMzQ5NjBl
ZmFmZjcxODk3ZDFlZjY0MTgyNzIzMy4uOTMyZjhlZmFmZjEzYzU3NWM1ZDRmYmQxZjYzZTZkYTEz
NWU1MDRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29y
ZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhj
Y29uZmlnCkBAIC0xMjMsNyArMTIzLDcgQEAgV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUyA9ICQo
V0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHU18kKFdLX0hBVkVfVVJMX0ZPUk1BVFRJTkcKIFdLX1VS
TF9GT1JNQVRUSU5HX0xERkxBR1NfWUVTID0gLWZyYW1ld29yayBVUkxGb3JtYXR0aW5nOwogCiAv
LyBGSVhNRTogUmVkdWNlIHRoZSBudW1iZXIgb2YgYWxsb3dhYmxlX2NsaWVudHMgPHJkYXI6Ly9w
cm9ibGVtLzMxODIzOTY5PgotT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAkKFdLX1JFTE9D
QVRBQkxFX0ZSQU1FV09SS19MREZMQUdTKSAtbHNxbGl0ZTMgLWxvYmpjIC1sQU5HTEUgLWFsbG93
YWJsZV9jbGllbnQgV2ViQ29yZVRlc3RTdXBwb3J0IC1hbGxvd2FibGVfY2xpZW50IFdlYktpdExl
Z2FjeSAtZm9yY2VfbG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvbGliUEFMLmEgLWZyYW1ld29y
ayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlQXVkaW8gLWZyYW1ld29yayBDb3JlR3JhcGhpY3Mg
LWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29yayBJT1N1
cmZhY2UgLWZyYW1ld29yayBJbWFnZUlPIC1mcmFtZXdvcmsgTWV0YWwgJChPVEhFUl9MREZMQUdT
X1BMQVRGT1JNXyQoV0tfQ09DT0FfVE9VQ0gpKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChX
S19QTEFURk9STV9OQU1FKSkgJChXS19BUFBLSVRfTERGTEFHUykgJChXS19BUFBTVVBQT1JUX0xE
RkxBR1MpICQoV0tfQVVESU9fVU5JVF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdL
X0NPUkVfVUlfTERGTEFHUykgJChXS19EQVRBX0RFVEVDVE9SU19DT1JFX0xERkxBR1MpICQoV0tf
R1JBUEhJQ1NfU0VSVklDRVNfTERGTEFHUykgJChXS19JT1NVUkZBQ0VfQUNDRUxFUkFUT1JfTERG
TEFHUykgJChXS19MSUJXRUJSVENfTERGTEFHUykgJChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19M
REZMQUdTKSAkKFdLX01PQklMRV9HRVNUQUxUX0xERkxBR1MpICQoV0tfTkVUV09SS19FWFRFTlNJ
T05fTERfRkxBR1MpICQoV0tfU1lTVEVNX0NPTkZJR1VSQVRJT05fTERGTEFHUykgJChXS19DT1JF
X0lNQUdFX0xERkxBR1MpICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUyk7CitPVEhFUl9MREZM
QUdTID0gJChpbmhlcml0ZWQpICQoV0tfUkVMT0NBVEFCTEVfRlJBTUVXT1JLX0xERkxBR1MpIC1s
c3FsaXRlMyAtbG9iamMgLWxBTkdMRSAtYWxsb3dhYmxlX2NsaWVudCBXZWJDb3JlVGVzdFN1cHBv
cnQgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0TGVnYWN5IC1mb3JjZV9sb2FkICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9saWJQQUwuYSAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVB
dWRpbyAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0IC1mcmFtZXdv
cmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIElPU3VyZmFjZSAtZnJhbWV3b3JrIEltYWdlSU8gLWZy
YW1ld29yayBNZXRhbCAtZnJhbWV3b3JrIENyeXB0b0tpdENCcmlkZ2luZyAkKE9USEVSX0xERkxB
R1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkpICQoT1RIRVJfTERGTEFHU19QTEFURk9STV8k
KFdLX1BMQVRGT1JNX05BTUUpKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAkKFdLX0FQUFNVUFBPUlRf
TERGTEFHUykgJChXS19BVURJT19VTklUX0xERkxBR1MpICQoV0tfQ0FSQk9OX0xERkxBR1MpICQo
V0tfQ09SRV9VSV9MREZMQUdTKSAkKFdLX0RBVEFfREVURUNUT1JTX0NPUkVfTERGTEFHUykgJChX
S19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0lPU1VSRkFDRV9BQ0NFTEVSQVRPUl9M
REZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZMQUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJQ0VT
X0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RBTFRfTERGTEFHUykgJChXS19ORVRXT1JLX0VYVEVO
U0lPTl9MRF9GTEFHUykgJChXS19TWVNURU1fQ09ORklHVVJBVElPTl9MREZMQUdTKSAkKFdLX0NP
UkVfSU1BR0VfTERGTEFHUykgJChXS19VUkxfRk9STUFUVElOR19MREZMQUdTKTsKIAogT1RIRVJf
TERGTEFHU19QTEFURk9STV9jb2NvYXRvdWNoID0gLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0IC1h
bGxvd2FibGVfY2xpZW50IGlUdW5lc1UgLWFsbG93YWJsZV9jbGllbnQgQ2FzYWJsYW5jYSAtYWxs
b3dhYmxlX2NsaWVudCBSZW1vdGUgLWFsbG93YWJsZV9jbGllbnQgVFZCb29rcyAtYWxsb3dhYmxl
X2NsaWVudCBEdW1wUmVuZGVyVHJlZSAtYWxsb3dhYmxlX2NsaWVudCBXZWJLaXRUZXN0UnVubmVy
IC1hbGxvd2FibGVfY2xpZW50IFRlc3RXZWJLaXRBUEk7CiBPVEhFUl9MREZMQUdTX1BMQVRGT1JN
X21hY29zeCA9IC1zdWJfbGlicmFyeSBsaWJvYmpjIC11bWJyZWxsYSBXZWJLaXQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291
cmNlc0NvY29hLnR4dAppbmRleCAyZjBmZGVmZTkzYWVjNmVlZmNmZTg3MWNlZmVlYzlmZTQ1ODI4
NzYzLi41NWUzOTAyNmNmYjQ1MzMyYmEwNzkwNzc4MGQwNmJjZjQ2ZDlkNjAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXNDb2NvYS50eHQKQEAgLTE2Nyw2ICsxNjcsNyBAQCBpbnNwZWN0b3IvbWFjL1BhZ2VEZWJ1
Z2dlck1hYy5tbQogbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAKIGxvYWRl
ci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmVNYWMubW0KIGxvYWRlci9jb2NvYS9EaXNrQ2Fj
aGVNb25pdG9yQ29jb2EubW0KK2xvYWRlci9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
Y29hLm1tCiBsb2FkZXIvY29jb2EvU3VicmVzb3VyY2VMb2FkZXJDb2NvYS5tbQogbG9hZGVyL2lv
cy9MZWdhY3lQcmV2aWV3TG9hZGVyLm1tCiBsb2FkZXIvbWFjL0RvY3VtZW50TG9hZGVyTWFjLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDI5ZTE5YTkxN2I1YmUwNGMzY2RmMWJlM2FhZTBmYjRiN2VkZGFjYjcuLmEyYTI0N2Fm
ZTU5MjY0MTlkMzc1MzdjZGY3NDMxZGI2NTQzMDkzNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk0MDgsNiArOTQwOCw3IEBA
CiAJCTU3RUVBQTU3MUVBMEFGQkIwMDcwMTEyNCAvKiBDb21tb25DcnlwdG9ERVJVdGlsaXRpZXMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29tbW9uQ3J5cHRvREVS
VXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdFRjVFNUYxRDIw
QzgzOTAwMTcxRTYwIC8qIFRleHRDb2RlY1JlcGxhY2VtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFRleHRDb2RlY1JlcGxhY2VtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU3RUY1RTYxMUQyMEQyODcwMDE3MUU2MCAvKiBUZXh0Q29kZWNSZXBsYWNl
bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0Q29kZWNS
ZXBsYWNlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3RjFDOEUzMjVE
QzZFRTcwMEU4RjZFQSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRD
b2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGODI3MzkxREI3MkMyMjAw
OUQyQkY0IC8qIFJzYUhhc2hlZEtleUdlblBhcmFtcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUnNhSGFzaGVkS2V5R2Vu
UGFyYW1zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGRUREM0QxREI2RDQ3
RjAwRUI5NkY1IC8qIFJzYUtleUdlblBhcmFtcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUnNhS2V5R2VuUGFyYW1zLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGRUREM0UxREI2RDU5MjAwRUI5NkY1
IC8qIENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk3MTgsNyArOTcxOSw3IEBACiAJCTZBMjJFODcyMUYxMDQy
QzQwMEY1NDZDMyAvKiBJbnNwZWN0b3JDYW52YXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5z
cGVjdG9yQ2FudmFzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkE3Mjc5ODgx
RjE2QzI5QjAwM0YzOUI4IC8qIEluc3BlY3RvclNoYWRlclByb2dyYW0uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2QTcyNzk4OTFGMTZDMjlCMDAzRjM5QjggLyogSW5zcGVjdG9y
U2hhZGVyUHJvZ3JhbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NkIwQTA3RjAyMUZBNEI1QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTZCMEEwN0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjBBMDdGMTIxRkE0
QjVDMDBENTczOTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2QjFGNDgwRjIyOTg5RUM0MDBERThCODIgLyogQ3Jvc3NTaXRlTmF2aWdhdGlvbkRh
dGFUcmFuc2Zlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5z
ZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCNEQ0MTJCMjM5ODNGODgwMDI0
OTRDMiAvKiBMb2dnZWRJblN0YXR1cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2dnZWRJblN0YXR1cy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI5MjQsNiArMjI5MjUsNyBAQAogCQkJ
Y2hpbGRyZW4gPSAoCiAJCQkJN0VEQUFGQzgxOUEyQ0JEMTAwMzRERkQxIC8qIERpc2tDYWNoZU1v
bml0b3JDb2NvYS5oICovLAogCQkJCTdFNERFMTBDMTk4QjEwQjYwMDUxQ0IwMiAvKiBEaXNrQ2Fj
aGVNb25pdG9yQ29jb2EubW0gKi8sCisJCQkJNTdGMUM4RTMyNURDNkVFNzAwRThGNkVBIC8qIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gKi8sCiAJCQkJN0U4RkFEQzMxOTlBOTVCMTAw
NzE0OTY4IC8qIFN1YnJlc291cmNlTG9hZGVyQ29jb2EubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9
IGNvY29hOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC5jcHAKaW5kZXggMzIwMDQ3MGQ4N2Q1Zjg1MGNkNDVhZWVjZWM3MWQ4OWNlYmNlYzg0ZS4u
YWRjZTVkYTZkNzZiZmMyNDZlNTNkYmNhMzM2MmFjYjQwZTA5ZjRlZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCkBAIC0xNDYsNCAr
MTQ2LDI4IEBAIFJlZjxKU09OOjpPYmplY3Q+IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpqc29u
KCkgY29uc3QKICAgICByZXR1cm4gcmVwb3J0RGV0YWlsczsKIH0KIAorLy8gTUFSSzogLSBGcmF1
ZCBQcmV2ZW50aW9uCisjaWYgSEFWRShSU0FfQlNTQSkKKworc3RhdGljIGNvbnN0ZXhwciB1aW50
MzJfdCBFcGhlbWVyYWxTb3VyY2VOb25jZVJlcXVpcmVkTnVtYmVyT2ZCeXRlcyA9IDE2OworCiti
b29sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNWYWxp
ZCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IEludmVzdGlnYXRlIGlmIHdlIGNhbiBkbyB3aXRo
IGEgc2ltcGxlIGxlbmd0aCBjaGVjayBpbnN0ZWFkIG9mIGRlY29kaW5nLgorICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE5NDUKKyAgICBWZWN0b3I8dWlu
dDhfdD4gZGlnZXN0OworICAgIGlmICghYmFzZTY0VVJMRGVjb2RlKG5vbmNlLCBkaWdlc3QpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGRpZ2VzdC5zaXplKCkgPT0gRXBoZW1l
cmFsU291cmNlTm9uY2VSZXF1aXJlZE51bWJlck9mQnl0ZXM7CiB9CisKK3ZvaWQgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OnNldEVwaGVtZXJhbFNvdXJjZU5vbmNlKEVwaGVtZXJhbFNvdXJjZU5v
bmNlJiYgbm9uY2UpCit7CisgICAgaWYgKCFub25jZS5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVy
bjsKKyAgICBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlID0gV1RGTW92ZShub25jZSk7Cit9CisKKyNl
bmRpZiAvLyBIQVZFKFJTQV9CU1NBKQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oCmluZGV4IGE0Yzk2
Y2ExZTBhNGQwMGIyYWFmMWNjNTY5MzMyOTc5YTlmODI1MjAuLmE3NzQ1NGMwMjM0NmY4MDFlMDNh
YzBjYTdmNGU1M2U0NTRiYTc0MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5oCkBAIC0zNiw2ICszNiwxMCBAQAogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorT0JK
Q19DTEFTUyBSU0FCU1NBVG9rZW5SZWFkeTsKK09CSkNfQ0xBU1MgUlNBQlNTQVRva2VuV2FpdGlu
Z0FjdGl2YXRpb247CitPQkpDX0NMQVNTIFJTQUJTU0FUb2tlbkJsaW5kZXI7CisKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgewpAQCAtMjAxLDI4
ICsyMDUsNiBAQCBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBh
cmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CiAgICAgfTsKIAotICAgIHN0cnVjdCBFcGhlbWVy
YWxTb3VyY2VOb25jZSB7Ci0gICAgICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgUmVxdWly
ZWROdW1iZXJPZkJ5dGVzID0gMTY7Ci0KLSAgICAgICAgRXBoZW1lcmFsU291cmNlTm9uY2UoKSA9
IGRlZmF1bHQ7Ci0gICAgICAgIGV4cGxpY2l0IEVwaGVtZXJhbFNvdXJjZU5vbmNlKGNvbnN0IFN0
cmluZyYgbm9uY2VTdHJpbmcpCi0gICAgICAgICAgICA6IG5vbmNlIHsgbm9uY2VTdHJpbmcgfQot
ICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBGSVhNRTogSW52ZXN0aWdhdGUgaWYg
d2UgY2FuIGRvIHdpdGggYSBzaW1wbGUgbGVuZ3RoIGNoZWNrIGluc3RlYWQgb2YgZGVjb2Rpbmcu
Ci0gICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE5
NDUKLSAgICAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAg
VmVjdG9yPHVpbnQ4X3Q+IGRpZ2VzdDsKLSAgICAgICAgICAgIGlmICghYmFzZTY0VVJMRGVjb2Rl
KG5vbmNlLCBkaWdlc3QpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
ICAgIHJldHVybiBkaWdlc3Quc2l6ZSgpID09IFJlcXVpcmVkTnVtYmVyT2ZCeXRlczsKLSAgICAg
ICAgfQotCi0gICAgICAgIFN0cmluZyBub25jZTsKLSAgICB9OwotCiAgICAgc3RydWN0IFByaW9y
aXR5IHsKICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBNYXhFbnRyb3B5ID0gNjM7
CiAKQEAgLTI3OCw5ICsyNjAsNiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmPEpT
T046Ok9iamVjdD4ganNvbigpIGNvbnN0OwogICAgIGNvbnN0IFNvdXJjZVNpdGUmIHNvdXJjZVNp
dGUoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVNpdGU7IH07CiAgICAgY29uc3QgQXR0cmlidXRl
T25TaXRlJiBhdHRyaWJ1dGVPblNpdGUoKSBjb25zdCB7IHJldHVybiBtX2F0dHJpYnV0ZU9uU2l0
ZTsgfTsKLSAgICB2b2lkIHNldEVwaGVtZXJhbFNvdXJjZU5vbmNlKEVwaGVtZXJhbFNvdXJjZU5v
bmNlJiYgbm9uY2UpIHsgbV9lcGhlbWVyYWxTb3VyY2VOb25jZSA9IFdURk1vdmUobm9uY2UpOyB9
OwotICAgIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5vbmNlPiBlcGhlbWVyYWxTb3VyY2VOb25j
ZSgpIGNvbnN0IHsgcmV0dXJuICFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlID8gV1RGOjpudWxsb3B0
IDogbV9lcGhlbWVyYWxTb3VyY2VOb25jZS0+aXNWYWxpZCgpID8gbV9lcGhlbWVyYWxTb3VyY2VO
b25jZSA6IFdURjo6bnVsbG9wdDsgfTsKLSAgICB2b2lkIGNsZWFyRXBoZW1lcmFsU291cmNlTm9u
Y2UoKSB7IG1fZXBoZW1lcmFsU291cmNlTm9uY2UgID0gV1RGOjpudWxsb3B0OyB9OwogICAgIFdh
bGxUaW1lIHRpbWVPZkFkQ2xpY2soKSBjb25zdCB7IHJldHVybiBtX3RpbWVPZkFkQ2xpY2s7IH0K
ICAgICBPcHRpb25hbDxXYWxsVGltZT4gZWFybGllc3RUaW1lVG9TZW5kKCkgY29uc3QgeyByZXR1
cm4gbV9lYXJsaWVzdFRpbWVUb1NlbmQ7IH07CiAgICAgdm9pZCBzZXRFYXJsaWVzdFRpbWVUb1Nl
bmQoV2FsbFRpbWUgdGltZSkgeyBtX2VhcmxpZXN0VGltZVRvU2VuZCA9IHRpbWU7IH0KQEAgLTI5
MSw2ICsyNzAsMjggQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgc291cmNlRGVzY3JpcHRp
b24oKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZURlc2NyaXB0aW9uOyB9CiAgICAgY29uc3QgU3Ry
aW5nJiBwdXJjaGFzZXIoKSBjb25zdCB7IHJldHVybiBtX3B1cmNoYXNlcjsgfQogCisgICAgLy8g
TUFSSzogLSBGcmF1ZCBQcmV2ZW50aW9uCisjaWYgSEFWRShSU0FfQlNTQSkKKyAgICBzdHJ1Y3Qg
RXBoZW1lcmFsU291cmNlTm9uY2UgeworICAgICAgICBTdHJpbmcgbm9uY2U7CisKKyAgICAgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisgICAgfTsKKworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0RXBoZW1lcmFsU291cmNlTm9uY2UoRXBoZW1lcmFsU291cmNlTm9u
Y2UmJik7CisgICAgT3B0aW9uYWw8RXBoZW1lcmFsU291cmNlTm9uY2U+IGVwaGVtZXJhbFNvdXJj
ZU5vbmNlKCkgY29uc3QgeyByZXR1cm4gbV9lcGhlbWVyYWxTb3VyY2VOb25jZTsgfTsKKyAgICB2
b2lkIGNsZWFyRXBoZW1lcmFsU291cmNlTm9uY2UoKSB7IG1fZXBoZW1lcmFsU291cmNlTm9uY2Uu
cmVzZXQoKTsgfTsKKworICAgIHN0cnVjdCBQZXJzaXN0ZW50QmxpbmRlZFRva2VuIHsKKyAgICAg
ICAgU3RyaW5nIHRva2VuQmFzZTY0VVJMOworICAgICAgICBTdHJpbmcga2V5SURCYXNlNjRVUkw7
CisgICAgICAgIFN0cmluZyBzaWduYXR1cmVCYXNlNjRVUkw7CisgICAgfTsKKworICAgIFdFQkNP
UkVfRVhQT1JUIFJlZlB0cjxKU09OOjpPYmplY3Q+IGJsaW5kZWRTZWNyZXRKc29uKGNvbnN0IFN0
cmluZyYgc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBPcHRp
b25hbDxQZXJzaXN0ZW50QmxpbmRlZFRva2VuPiBjYWxjdWxhdGVQZXJzaXN0ZW50QmxpbmRlZFRv
a2VuKGNvbnN0IFN0cmluZyYgc2VydmVyUmVzcG9uc2VCYXNlNjRVUkwpOworI2VuZGlmIC8vIEhB
VkUoUlNBX0JTU0EpCisKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlv
bmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBkZWNvZGUoRGVjb2RlciYpOwogCkBAIC0zMDQs
OSArMzA1LDE5IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcHVyY2hhc2VyOwogICAgIFdhbGxU
aW1lIG1fdGltZU9mQWRDbGljazsKIAotICAgIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5vbmNl
PiBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlOwogICAgIE9wdGlvbmFsPEF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGE+IG1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YTsKICAgICBPcHRpb25hbDxXYWxsVGltZT4g
bV9lYXJsaWVzdFRpbWVUb1NlbmQ7CisKKyNpZiBIQVZFKFJTQV9CU1NBKQorICAgIHN0cnVjdCBC
bGluZGVkVG9rZW4geworICAgICAgICBSZXRhaW5QdHI8UlNBQlNTQVRva2VuQmxpbmRlcj4gYmxp
bmRlcjsKKyAgICAgICAgUmV0YWluUHRyPFJTQUJTU0FUb2tlbldhaXRpbmdBY3RpdmF0aW9uPiB3
YWl0aW5nVG9rZW47CisgICAgICAgIFJldGFpblB0cjxSU0FCU1NBVG9rZW5SZWFkeT4gcmVhZHlU
b2tlbjsKKyAgICB9OworCisgICAgT3B0aW9uYWw8RXBoZW1lcmFsU291cmNlTm9uY2U+IG1fZXBo
ZW1lcmFsU291cmNlTm9uY2U7CisgICAgQmxpbmRlZFRva2VuIG1fYmxpbmRlZFRva2VuOworI2Vu
ZGlmIC8vIEhBVkUoUlNBX0JTU0EpCiB9OwogCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRDb2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yY2RkMDMyN2NlNWIwM2JkYTVlYjg5MTdlYjhk
MmU3MTEwNzA3M2QyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nv
Y29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0KQEAgLTAsMCArMSw5MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQuaCIKKworI2lmIEhBVkUoUlNBX0JTU0EpCisKKyNpbXBvcnQgPENyeXB0b0tpdENCcmlk
Z2luZy9SU0FCU1NBLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmUHRyPEpTT046Ok9i
amVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmJsaW5kZWRTZWNyZXRKc29uKGNvbnN0IFN0
cmluZyYgc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKQoreworICAgIGlmICghbV9lcGhlbWVyYWxT
b3VyY2VOb25jZSB8fCAhbV9lcGhlbWVyYWxTb3VyY2VOb25jZS0+aXNWYWxpZCgpKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKworICAgIHsKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHNlcnZl
clB1YmxpY0tleURhdGE7CisgICAgICAgIGlmICghYmFzZTY0VVJMRGVjb2RlKHNlcnZlclB1Ymxp
Y0tleUJhc2U2NFVSTCwgc2VydmVyUHVibGljS2V5RGF0YSkpCisgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICAgICAgYXV0byBzZXJ2ZXJQdWJsaWNLZXkgPSBhZG9wdE5TKFtbTlNEYXRh
IGFsbG9jXSBpbml0V2l0aEJ5dGVzOnNlcnZlclB1YmxpY0tleURhdGEuZGF0YSgpIGxlbmd0aDpz
ZXJ2ZXJQdWJsaWNLZXlEYXRhLnNpemUoKV0pOworCisgICAgICAgIC8vIEZJWE1FKDIyMjAxOCk6
IENoZWNrIGVycm9yLgorICAgICAgICBtX2JsaW5kZWRUb2tlbi5ibGluZGVyID0gYWRvcHROUyhb
W1JTQUJTU0FUb2tlbkJsaW5kZXIgYWxsb2NdIGluaXRXaXRoUHVibGljS2V5OnNlcnZlclB1Ymxp
Y0tleS5nZXQoKSBlcnJvcjpudWxscHRyXSk7CisgICAgICAgIGlmICghbV9ibGluZGVkVG9rZW4u
YmxpbmRlcikKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIC8vIEZJ
WE1FKDIyMjAxOCk6IENoZWNrIGVycm9yLgorICAgIG1fYmxpbmRlZFRva2VuLndhaXRpbmdUb2tl
biA9IFttX2JsaW5kZWRUb2tlbi5ibGluZGVyIHRva2VuV2FpdGluZ0FjdGl2YXRpb25XaXRoQ29u
dGVudDpudWxscHRyIGVycm9yOm51bGxwdHJdOworICAgIGlmICghbV9ibGluZGVkVG9rZW4ud2Fp
dGluZ1Rva2VuKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8gYmxpbmRlZFNl
Y3JldCA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CisgICAgYmxpbmRlZFNlY3JldC0+c2V0U3Ry
aW5nKCJjbGlja19ub25jZSJfcywgbV9lcGhlbWVyYWxTb3VyY2VOb25jZS0+bm9uY2UpOworICAg
IGJsaW5kZWRTZWNyZXQtPnNldFN0cmluZygiYmxpbmRlZF9zZWNyZXQiX3MsIFdURjo6YmFzZTY0
VVJMRW5jb2RlKFttX2JsaW5kZWRUb2tlbi53YWl0aW5nVG9rZW4gYmxpbmRlZE1lc3NhZ2VdLmJ5
dGVzLCBbbV9ibGluZGVkVG9rZW4ud2FpdGluZ1Rva2VuIGJsaW5kZWRNZXNzYWdlXS5sZW5ndGgp
KTsKKworICAgIHJldHVybiBibGluZGVkU2VjcmV0OworfQorCithdXRvIFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpjYWxjdWxhdGVQZXJzaXN0ZW50QmxpbmRlZFRva2VuKGNvbnN0IFN0cmluZyYg
c2VydmVyUmVzcG9uc2VCYXNlNjRVUkwpIC0+IE9wdGlvbmFsPFBlcnNpc3RlbnRCbGluZGVkVG9r
ZW4+Cit7CisgICAgaWYgKCFtX2JsaW5kZWRUb2tlbi53YWl0aW5nVG9rZW4pCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICB7CisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBzZXJ2
ZXJSZXNwb25zZURhdGE7CisgICAgICAgIGlmICghYmFzZTY0VVJMRGVjb2RlKHNlcnZlclJlc3Bv
bnNlQmFzZTY0VVJMLCBzZXJ2ZXJSZXNwb25zZURhdGEpKQorICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKyAgICAgICAgYXV0byBzZXJ2ZXJSZXNwb25zZSA9IGFkb3B0TlMoW1tOU0Rh
dGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6c2VydmVyUmVzcG9uc2VEYXRhLmRhdGEoKSBsZW5ndGg6
c2VydmVyUmVzcG9uc2VEYXRhLnNpemUoKV0pOworCisgICAgICAgIC8vIEZJWE1FKDIyMjAxOCk6
IENoZWNrIGVycm9yLgorICAgICAgICBtX2JsaW5kZWRUb2tlbi5yZWFkeVRva2VuID0gW21fYmxp
bmRlZFRva2VuLndhaXRpbmdUb2tlbiBhY3RpdmF0ZVRva2VuV2l0aFNlcnZlclJlc3BvbnNlOnNl
cnZlclJlc3BvbnNlLmdldCgpIGVycm9yOm51bGxwdHJdOworICAgICAgICBpZiAoIW1fYmxpbmRl
ZFRva2VuLnJlYWR5VG9rZW4pCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAg
IH0KKworICAgIFBlcnNpc3RlbnRCbGluZGVkVG9rZW4gdG9rZW47CisgICAgdG9rZW4udG9rZW5C
YXNlNjRVUkwgPSBXVEY6OmJhc2U2NFVSTEVuY29kZShbbV9ibGluZGVkVG9rZW4ucmVhZHlUb2tl
biB0b2tlbkNvbnRlbnRdLmJ5dGVzLCBbbV9ibGluZGVkVG9rZW4ucmVhZHlUb2tlbiB0b2tlbkNv
bnRlbnRdLmxlbmd0aCk7CisgICAgdG9rZW4ua2V5SURCYXNlNjRVUkwgPSBXVEY6OmJhc2U2NFVS
TEVuY29kZShbbV9ibGluZGVkVG9rZW4ucmVhZHlUb2tlbiBrZXlJZF0uYnl0ZXMsIFttX2JsaW5k
ZWRUb2tlbi5yZWFkeVRva2VuIGtleUlkXS5sZW5ndGgpOworICAgIHRva2VuLnNpZ25hdHVyZUJh
c2U2NFVSTCA9IFdURjo6YmFzZTY0VVJMRW5jb2RlKFttX2JsaW5kZWRUb2tlbi5yZWFkeVRva2Vu
IHNpZ25hdHVyZV0uYnl0ZXMsIFttX2JsaW5kZWRUb2tlbi5yZWFkeVRva2VuIHNpZ25hdHVyZV0u
bGVuZ3RoKTsKKworICAgIHJldHVybiB0b2tlbjsKK30KKworI2VuZGlmIC8vIEhBVkUoUlNBX0JT
U0EpCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3Njk4Nzc5MTkzZDRiMzQ1NzZmZDI5N2YxYmRmZDY3
NDlkYTAyY2QxLi5lNDRjNzUyYzg5YjFjYjBkZjA3MWZkYjk1YmNlNWZhNzczYTM5NWIwIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKwor
ICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQgY29ycmVzcG9uZGluZyB1bmxp
bmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzczNTgxNDEyPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICBBZGQgdGVzdHMuCisKIDIwMjEtMDItMTUgIEpvaG4g
V2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgUENNOiBBZGQgaGlnaCBl
bnRyb3B5IGF0dHJpYnV0aW9uU291cmNlTm9uY2UgYXR0cmlidXRlIHRvIGFuY2hvciB0YWdzCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50LmNwcAppbmRleCA3Y2Q3NzViNGM2MDQyMGVmYWUxZGUxNjc0MTgx
ZDBlOTFmOWU2MmIzLi45NjNiZjk3ZTAzYjQ0MTBjYTgxZmJiNzMwMjhjMDE4MGFiNjBjMWUzIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGVzdC5oIgogCiAjaW5jbHVkZSA8V2ViQ29yZS9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KQEAgLTM5LDYg
KzQwLDkgQEAgY29uc3QgVVJMIHdlYktpdFVSTCB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZyJf
cyB9OwogY29uc3QgVVJMIGV4YW1wbGVVUkwgeyB7IH0sICJodHRwczovL2V4YW1wbGUuY29tIl9z
IH07CiBjb25zdCBVUkwgZW1wdHlVUkwgeyB9OwogCitjb25zdCBjaGFyIHNlcnZlclB1YmxpY0tl
eUJhc2U2NFVSTFtdID0KKyAgICAiTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlD
Q2dLQ0FnRUF6YjFkVGhydFl3Vmg0NlNqSW5lZ0toQXFwYkp3bTFYblRCQ3Z5YlNLOHprNTNSMEFt
MWhHMzNBVkY1SjFscVlmMzZ3cDY2M0dhc2NsSHRxenZ4RlpJdkRBMURVU0g0YVp6X2ZESENUVHhF
ZUpWUE9SUzN6Tk4yVWpXd2J0bndzaDRCbURUaS16X2NEbjBMQXoySnVaeUtseUZ0NUdnVkxBUXZM
OUgzVkxIVTlfWEhOSy11Ym95WGZjSFJUdHJEbnB1M2M2d3ZYNWRkLUFKb0xtSVFUWkJFSmZWa3hC
R3puazFxS0hqYzZuQVNBaXJLRl93SkNudXdBSzhDNkJBY2pOY3dVV0NlS3AwWUVDekNYVS0tSlhk
Mk9FVS1RaHhQQzY3ZmFpRE9oM1YwdmxmcVpMdHJsYm5hblVDS3J2aHc3R2FHT0dZb3RJcm5adHVO
ZnhDMTRkX1hOVmQxRlM4bkhqUlRIbkVnd19qbmxTc3NmZ1N0ejB1SnRjbWtmZ29KQnZPRTRtSVJw
aTdpU2xSZlhOa0tzV1gxSi1nd2NuQ1ZvNXUwdUpFVzZYNk55dkVHWUo4dzVCUGZ3c1F1Szl5LTRa
N2lrdDlJT3VjRUhZN1RoRG1pOVROTmhIQlZqMEd1NHdHb1NqcTNhNnZMNU4xMFpTSFhvcTFYZ2ZH
UHJtSGhoTDkwY2p2V29ub3lPWHNVcWxYRXpUakQyVzk4OTdRLU14OUJVTnJHUVBxbUl4OEY1TXd4
V2NPcnllOFdScDRRODhuMllTVW5WN0M4YXlsZDN2MUZoN041amVTcWVWbXREVlJZVG4yc1ZmTnFn
WHJ6Z2RpZ0pjUVI4dkZFTnU2bnpGUHdzclhQTWFDaUxVblpOVW1RMVpTTFFlUXloWVh4SHFSSnJu
dUNEV1hMa0NBd0VBQVEiOworCiAvLyBQb3NpdGl2ZSB0ZXN0IGNhc2VzLgogCiBURVNUKFByaXZh
dGVDbGlja01lYXN1cmVtZW50LCBWYWxpZE1pblZhbHVlcykKQEAgLTEyMywxMiArMTI3LDMyIEBA
IFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIFZhbGlkQ29udmVyc2lvblVSTHMpCiAgICAg
QVNTRVJUX0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+cHJpb3JpdHksICh1aW50MzJfdCkyKTsKIH0K
IAorI2lmIEhBVkUoUlNBX0JTU0EpCisKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIFZh
bGlkU291cmNlTm9uY2UpCiB7CiAgICAgYXV0byBlcGhlbWVyYWxOb25jZSA9IFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZSB7ICJBQkNERUZhYmNkZWYwMTIzNDU2
Nzg5Il9zIH07CiAgICAgQVNTRVJUX1RSVUUoZXBoZW1lcmFsTm9uY2UuaXNWYWxpZCgpKTsKIH0K
IAorVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgVmFsaWRCbGluZGVkU2VjcmV0KQorewor
ICAgIGF1dG8gZXBoZW1lcmFsTm9uY2UgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1l
cmFsU291cmNlTm9uY2UgeyAiQUJDREVGYWJjZGVmMDEyMzQ1Njc4OSJfcyB9OworICAgIEVYUEVD
VF9UUlVFKGVwaGVtZXJhbE5vbmNlLmlzVmFsaWQoKSk7CisKKyAgICBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCBwY207CisgICAgcGNtLnNldEVwaGVtZXJhbFNvdXJjZU5vbmNlKFdURk1vdmUoZXBo
ZW1lcmFsTm9uY2UpKTsKKworICAgIGF1dG8gYmxpbmRlZFNlY3JldCA9IHBjbS5ibGluZGVkU2Vj
cmV0SnNvbihzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkwpOworICAgIEVYUEVDVF9OT1RfTlVMTChi
bGluZGVkU2VjcmV0KTsKKyAgICBFWFBFQ1RfU1RSRVEoYmxpbmRlZFNlY3JldC0+Z2V0U3RyaW5n
KCJjbGlja19ub25jZSJfcykudXRmOCgpLmRhdGEoKSwgIkFCQ0RFRmFiY2RlZjAxMjM0NTY3ODki
KTsKKyAgICBFWFBFQ1RfRkFMU0UoYmxpbmRlZFNlY3JldC0+Z2V0U3RyaW5nKCJibGluZGVkX3Nl
Y3JldCJfcykuaXNFbXB0eSgpKTsKKworICAgIC8vIEZJWE1FKDIyMjAxOCk6IE1vY2sgdGhlIHNl
cnZlciByZXNwb25zZSBhbmQgY29udGludWUgdGhlIHRlc3QuCit9CisKKyNlbmRpZiAvLyBIQVZF
KFJTQV9CU1NBKQorCiAvLyBOZWdhdGl2ZSB0ZXN0IGNhc2VzLgogCiBURVNUKFByaXZhdGVDbGlj
a01lYXN1cmVtZW50LCBJbnZhbGlkU291cmNlSUQpCkBAIC0yODEsNiArMzA1LDggQEAgVEVTVChQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZENvbnZlcnNpb25XaXRoRGlzYWxsb3dlZFVS
TENvbXBvbmVudHMpCiAgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CiB9CiAK
KyNpZiBIQVZFKFJTQV9CU1NBKQorCiBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZh
bGlkU291cmNlTm9uY2UpCiB7CiAgICAgLy8gRmV3ZXIgdGhhbiB0aGUgcmVxdXJpZWQgbnVtYmVy
IG9mIGJ5dGVzLgpAQCAtMzAwLDQgKzMyNiwyMyBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVt
ZW50LCBJbnZhbGlkU291cmNlTm9uY2UpCiAgICAgQVNTRVJUX0ZBTFNFKGVwaGVtZXJhbE5vbmNl
LmlzVmFsaWQoKSk7CiB9CiAKK1RFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRC
bGluZGVkU2VjcmV0KQoreworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IHBjbTsKKyAgICBh
dXRvIGJsaW5kZWRTZWNyZXQgPSBwY20uYmxpbmRlZFNlY3JldEpzb24oc2VydmVyUHVibGljS2V5
QmFzZTY0VVJMKTsKKyAgICBFWFBFQ1RfTlVMTChibGluZGVkU2VjcmV0KTsKKworICAgIGF1dG8g
ZXBoZW1lcmFsTm9uY2UgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFsU291cmNl
Tm9uY2UgeyAiQUJDREVGYWJjZGVmMDEyMzQ1Njc4OSJfcyB9OworICAgIEVYUEVDVF9UUlVFKGVw
aGVtZXJhbE5vbmNlLmlzVmFsaWQoKSk7CisgICAgcGNtLnNldEVwaGVtZXJhbFNvdXJjZU5vbmNl
KFdURk1vdmUoZXBoZW1lcmFsTm9uY2UpKTsKKworICAgIGJsaW5kZWRTZWNyZXQgPSBwY20uYmxp
bmRlZFNlY3JldEpzb24oc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKTsKKyAgICBFWFBFQ1RfTk9U
X05VTEwoYmxpbmRlZFNlY3JldCk7CisKKyAgICBhdXRvIHBlcnNpc3RlbnRUb2tlbiA9IHBjbS5j
YWxjdWxhdGVQZXJzaXN0ZW50QmxpbmRlZFRva2VuKGVtcHR5U3RyaW5nKCkpOworICAgIEVYUEVD
VF9GQUxTRShwZXJzaXN0ZW50VG9rZW4pOworfQorCisjZW5kaWYgLy8gSEFWRShSU0FfQlNTQSkK
KwogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>
<flag name="commit-queue"
          id="439157"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420585</attachid>
            <date>2021-02-16 19:58:41 -0800</date>
            <delta_ts>2021-02-16 21:21:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222019-20210216195840.patch</filename>
            <type>text/plain</type>
            <size>25359</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDUwYzU1NmNjMjZjMjU5MjcyZWY2ZjYw
Y2I3NzVhZDBiNmU4NDA2OWYuLjU2MzQ5YTQxNTE1NzkzNGEzOWExNGQ0OTAxMzg5M2QwZjZkNjdk
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5f
dGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQg
Y29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcz
NTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd3RmL1BsYXRmb3JtSGF2ZS5oOgorICAgICAgICBBZGRzIGEgY29tcGlsZSB0aW1lIGZsYWcg
Zm9yIFJTQUJTU0EuCisKIDIwMjEtMDItMTUgIFBlciBBcm5lICA8cHZvbGxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW21hY09TXSBDbG9zZSBYUEMgY29ubmVjdGlvbnMgYmVmb3JlIGVudGVyaW5n
IHNhbmRib3gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMTU0ZDExOWE5NjJkM2M5MDkzNzM4N2Y5NzViY2VjOTFl
Mjc4ZmU1Li4yYWY2MTE1MGYxMTI2ZTI5ODk0YzZlYjI3ZDFjMzE1YmQ2OTc2MzQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQgY29y
cmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzczNTgx
NDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENv
dmVyZWQgYnkgQVBJIHRlc3RzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggdXRpbGl6ZXMgUlNBQlNT
QSB0byBnZW5lcmF0ZSBzZWNyZXQgdG9rZW4gZm9yIFBDTSBmcmF1ZCBwcmV2ZW50aW9uLgorCisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZzoKKyAgICAgICAgKiBTb3Vy
Y2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgUGFwZXJ3b3JrIHRvIGxpbmsgQ3J5cHRvS2l0Q0JyaWRnaW5nLgorCisgICAg
ICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNWYWxp
ZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c2V0
RXBoZW1lcmFsU291cmNlTm9uY2UpOgorICAgICAgICAqIGxvYWRlci9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0
dHJpYnV0ZU9uU2l0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6ZXBoZW1lcmFsU291cmNlTm9uY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmNsZWFyRXBoZW1lcmFsU291cmNlTm9uY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5v
bmNlOjpFcGhlbWVyYWxTb3VyY2VOb25jZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFsU291cmNlTm9uY2U6OmlzVmFsaWQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OnNldEVwaGVtZXJhbFNvdXJjZU5vbmNlKTogRGVsZXRlZC4KKyAgICAgICAgR3JvdXBzIGZ1bmN0
aW9uYWxpdGllcyBiZWhpbmQgSEFWRV9SU0FfQlNTQS4KKworICAgICAgICAqIGxvYWRlci9jb2Nv
YS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpibGluZGVkU2VjcmV0SnNvbik6CisgICAgICAg
IChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y2FsY3VsYXRlUGVyc2lzdGVudEJs
aW5kZWRUb2tlbik6CisgICAgICAgIEludHJvZHVjZXMgbmV3IG1ldGhvZHMgdG8gZ2VuZXJhdGUg
dGhlIGJsaW5kZWQgc2VjcmV0cyBhbmQgdW5saW5rYWJsZSB0b2tlbnMuCisKIDIwMjEtMDItMTUg
IEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgUENNOiBBZGQg
aGlnaCBlbnRyb3B5IGF0dHJpYnV0aW9uU291cmNlTm9uY2UgYXR0cmlidXRlIHRvIGFuY2hvciB0
YWdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IDA1NGY2N2U2MmE5MmMwNTY0MDQwM2Q5MDIwMTRm
MjQzMzE0NzMzZmIuLjNmNjE4NjQ1YzBkYThjYTQzMGIxZWViZDliMDk3MGZiNTNiYmE5NjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC04ODQsMyArODg0LDggQEAKICNkZWZpbmUgSEFWRV9DT1JF
X0dSQVBISUNTX1JPTU1SR0JfQ09MT1JfU1BBQ0UgMQogI2RlZmluZSBIQVZFX0NPUkVfR1JBUEhJ
Q1NfWFlaX0NPTE9SX1NQQUNFIDEKICNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDApIFwKKyAgICB8fCAoUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTUw
MDAwKQorI2RlZmluZSBIQVZFX1JTQV9CU1NBIDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3Jl
L0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWcKaW5kZXggYWVjNjVjZmQ2YTFkMzQ5NjBl
ZmFmZjcxODk3ZDFlZjY0MTgyNzIzMy4uOTMyZjhlZmFmZjEzYzU3NWM1ZDRmYmQxZjYzZTZkYTEz
NWU1MDRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29y
ZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhj
Y29uZmlnCkBAIC0xMjMsNyArMTIzLDcgQEAgV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUyA9ICQo
V0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHU18kKFdLX0hBVkVfVVJMX0ZPUk1BVFRJTkcKIFdLX1VS
TF9GT1JNQVRUSU5HX0xERkxBR1NfWUVTID0gLWZyYW1ld29yayBVUkxGb3JtYXR0aW5nOwogCiAv
LyBGSVhNRTogUmVkdWNlIHRoZSBudW1iZXIgb2YgYWxsb3dhYmxlX2NsaWVudHMgPHJkYXI6Ly9w
cm9ibGVtLzMxODIzOTY5PgotT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAkKFdLX1JFTE9D
QVRBQkxFX0ZSQU1FV09SS19MREZMQUdTKSAtbHNxbGl0ZTMgLWxvYmpjIC1sQU5HTEUgLWFsbG93
YWJsZV9jbGllbnQgV2ViQ29yZVRlc3RTdXBwb3J0IC1hbGxvd2FibGVfY2xpZW50IFdlYktpdExl
Z2FjeSAtZm9yY2VfbG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvbGliUEFMLmEgLWZyYW1ld29y
ayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlQXVkaW8gLWZyYW1ld29yayBDb3JlR3JhcGhpY3Mg
LWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29yayBJT1N1
cmZhY2UgLWZyYW1ld29yayBJbWFnZUlPIC1mcmFtZXdvcmsgTWV0YWwgJChPVEhFUl9MREZMQUdT
X1BMQVRGT1JNXyQoV0tfQ09DT0FfVE9VQ0gpKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChX
S19QTEFURk9STV9OQU1FKSkgJChXS19BUFBLSVRfTERGTEFHUykgJChXS19BUFBTVVBQT1JUX0xE
RkxBR1MpICQoV0tfQVVESU9fVU5JVF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdL
X0NPUkVfVUlfTERGTEFHUykgJChXS19EQVRBX0RFVEVDVE9SU19DT1JFX0xERkxBR1MpICQoV0tf
R1JBUEhJQ1NfU0VSVklDRVNfTERGTEFHUykgJChXS19JT1NVUkZBQ0VfQUNDRUxFUkFUT1JfTERG
TEFHUykgJChXS19MSUJXRUJSVENfTERGTEFHUykgJChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19M
REZMQUdTKSAkKFdLX01PQklMRV9HRVNUQUxUX0xERkxBR1MpICQoV0tfTkVUV09SS19FWFRFTlNJ
T05fTERfRkxBR1MpICQoV0tfU1lTVEVNX0NPTkZJR1VSQVRJT05fTERGTEFHUykgJChXS19DT1JF
X0lNQUdFX0xERkxBR1MpICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUyk7CitPVEhFUl9MREZM
QUdTID0gJChpbmhlcml0ZWQpICQoV0tfUkVMT0NBVEFCTEVfRlJBTUVXT1JLX0xERkxBR1MpIC1s
c3FsaXRlMyAtbG9iamMgLWxBTkdMRSAtYWxsb3dhYmxlX2NsaWVudCBXZWJDb3JlVGVzdFN1cHBv
cnQgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0TGVnYWN5IC1mb3JjZV9sb2FkICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9saWJQQUwuYSAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVB
dWRpbyAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0IC1mcmFtZXdv
cmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIElPU3VyZmFjZSAtZnJhbWV3b3JrIEltYWdlSU8gLWZy
YW1ld29yayBNZXRhbCAtZnJhbWV3b3JrIENyeXB0b0tpdENCcmlkZ2luZyAkKE9USEVSX0xERkxB
R1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkpICQoT1RIRVJfTERGTEFHU19QTEFURk9STV8k
KFdLX1BMQVRGT1JNX05BTUUpKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAkKFdLX0FQUFNVUFBPUlRf
TERGTEFHUykgJChXS19BVURJT19VTklUX0xERkxBR1MpICQoV0tfQ0FSQk9OX0xERkxBR1MpICQo
V0tfQ09SRV9VSV9MREZMQUdTKSAkKFdLX0RBVEFfREVURUNUT1JTX0NPUkVfTERGTEFHUykgJChX
S19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0lPU1VSRkFDRV9BQ0NFTEVSQVRPUl9M
REZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZMQUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJQ0VT
X0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RBTFRfTERGTEFHUykgJChXS19ORVRXT1JLX0VYVEVO
U0lPTl9MRF9GTEFHUykgJChXS19TWVNURU1fQ09ORklHVVJBVElPTl9MREZMQUdTKSAkKFdLX0NP
UkVfSU1BR0VfTERGTEFHUykgJChXS19VUkxfRk9STUFUVElOR19MREZMQUdTKTsKIAogT1RIRVJf
TERGTEFHU19QTEFURk9STV9jb2NvYXRvdWNoID0gLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0IC1h
bGxvd2FibGVfY2xpZW50IGlUdW5lc1UgLWFsbG93YWJsZV9jbGllbnQgQ2FzYWJsYW5jYSAtYWxs
b3dhYmxlX2NsaWVudCBSZW1vdGUgLWFsbG93YWJsZV9jbGllbnQgVFZCb29rcyAtYWxsb3dhYmxl
X2NsaWVudCBEdW1wUmVuZGVyVHJlZSAtYWxsb3dhYmxlX2NsaWVudCBXZWJLaXRUZXN0UnVubmVy
IC1hbGxvd2FibGVfY2xpZW50IFRlc3RXZWJLaXRBUEk7CiBPVEhFUl9MREZMQUdTX1BMQVRGT1JN
X21hY29zeCA9IC1zdWJfbGlicmFyeSBsaWJvYmpjIC11bWJyZWxsYSBXZWJLaXQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291
cmNlc0NvY29hLnR4dAppbmRleCAyZjBmZGVmZTkzYWVjNmVlZmNmZTg3MWNlZmVlYzlmZTQ1ODI4
NzYzLi41NWUzOTAyNmNmYjQ1MzMyYmEwNzkwNzc4MGQwNmJjZjQ2ZDlkNjAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXNDb2NvYS50eHQKQEAgLTE2Nyw2ICsxNjcsNyBAQCBpbnNwZWN0b3IvbWFjL1BhZ2VEZWJ1
Z2dlck1hYy5tbQogbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAKIGxvYWRl
ci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmVNYWMubW0KIGxvYWRlci9jb2NvYS9EaXNrQ2Fj
aGVNb25pdG9yQ29jb2EubW0KK2xvYWRlci9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
Y29hLm1tCiBsb2FkZXIvY29jb2EvU3VicmVzb3VyY2VMb2FkZXJDb2NvYS5tbQogbG9hZGVyL2lv
cy9MZWdhY3lQcmV2aWV3TG9hZGVyLm1tCiBsb2FkZXIvbWFjL0RvY3VtZW50TG9hZGVyTWFjLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDI5ZTE5YTkxN2I1YmUwNGMzY2RmMWJlM2FhZTBmYjRiN2VkZGFjYjcuLmEyYTI0N2Fm
ZTU5MjY0MTlkMzc1MzdjZGY3NDMxZGI2NTQzMDkzNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk0MDgsNiArOTQwOCw3IEBA
CiAJCTU3RUVBQTU3MUVBMEFGQkIwMDcwMTEyNCAvKiBDb21tb25DcnlwdG9ERVJVdGlsaXRpZXMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29tbW9uQ3J5cHRvREVS
VXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdFRjVFNUYxRDIw
QzgzOTAwMTcxRTYwIC8qIFRleHRDb2RlY1JlcGxhY2VtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFRleHRDb2RlY1JlcGxhY2VtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU3RUY1RTYxMUQyMEQyODcwMDE3MUU2MCAvKiBUZXh0Q29kZWNSZXBsYWNl
bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0Q29kZWNS
ZXBsYWNlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3RjFDOEUzMjVE
QzZFRTcwMEU4RjZFQSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRD
b2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGODI3MzkxREI3MkMyMjAw
OUQyQkY0IC8qIFJzYUhhc2hlZEtleUdlblBhcmFtcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUnNhSGFzaGVkS2V5R2Vu
UGFyYW1zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGRUREM0QxREI2RDQ3
RjAwRUI5NkY1IC8qIFJzYUtleUdlblBhcmFtcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUnNhS2V5R2VuUGFyYW1zLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGRUREM0UxREI2RDU5MjAwRUI5NkY1
IC8qIENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk3MTgsNyArOTcxOSw3IEBACiAJCTZBMjJFODcyMUYxMDQy
QzQwMEY1NDZDMyAvKiBJbnNwZWN0b3JDYW52YXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5z
cGVjdG9yQ2FudmFzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkE3Mjc5ODgx
RjE2QzI5QjAwM0YzOUI4IC8qIEluc3BlY3RvclNoYWRlclByb2dyYW0uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2QTcyNzk4OTFGMTZDMjlCMDAzRjM5QjggLyogSW5zcGVjdG9y
U2hhZGVyUHJvZ3JhbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NkIwQTA3RjAyMUZBNEI1QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTZCMEEwN0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjBBMDdGMTIxRkE0
QjVDMDBENTczOTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2QjFGNDgwRjIyOTg5RUM0MDBERThCODIgLyogQ3Jvc3NTaXRlTmF2aWdhdGlvbkRh
dGFUcmFuc2Zlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5z
ZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCNEQ0MTJCMjM5ODNGODgwMDI0
OTRDMiAvKiBMb2dnZWRJblN0YXR1cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2dnZWRJblN0YXR1cy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI5MjQsNiArMjI5MjUsNyBAQAogCQkJ
Y2hpbGRyZW4gPSAoCiAJCQkJN0VEQUFGQzgxOUEyQ0JEMTAwMzRERkQxIC8qIERpc2tDYWNoZU1v
bml0b3JDb2NvYS5oICovLAogCQkJCTdFNERFMTBDMTk4QjEwQjYwMDUxQ0IwMiAvKiBEaXNrQ2Fj
aGVNb25pdG9yQ29jb2EubW0gKi8sCisJCQkJNTdGMUM4RTMyNURDNkVFNzAwRThGNkVBIC8qIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gKi8sCiAJCQkJN0U4RkFEQzMxOTlBOTVCMTAw
NzE0OTY4IC8qIFN1YnJlc291cmNlTG9hZGVyQ29jb2EubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9
IGNvY29hOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCBl
YzNkOTBiZWMyOWQzMzg3ZWJjOGIyM2FkYzYyYWZiYzczMzI4ZDU0Li5jYWY4MzQwY2M3OTQxOGM0
Yzc5NzJmMDQ1MTRjYWIwMDBlMjM0NzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNo
b3JFbGVtZW50LmNwcApAQCAtNDUyLDYgKzQ1Miw3IEBAIE9wdGlvbmFsPFByaXZhdGVDbGlja01l
YXN1cmVtZW50PiBIVE1MQW5jaG9yRWxlbWVudDo6cGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
CiAKICAgICBhdXRvIHByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQgeyBTb3VyY2VJRChhdHRyaWJ1dGlvblNvdXJjZUlELnZhbHVlKCkpLCBTb3VyY2VTaXRl
KGRvY3VtZW50UmVnaXN0cmFibGVEb21haW4pLCBBdHRyaWJ1dGVPblNpdGUoYXR0cmlidXRlT25V
UkwpIH07CiAKKyNpZiBIQVZFKFJTQV9CU1NBKQogICAgIGF1dG8gYXR0cmlidXRpb25Tb3VyY2VO
b25jZUF0dHIgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGF0dHJpYnV0aW9uc291
cmNlbm9uY2VBdHRyKTsKICAgICBpZiAoIWF0dHJpYnV0aW9uU291cmNlTm9uY2VBdHRyLmlzRW1w
dHkoKSkgewogICAgICAgICBhdXRvIGVwaGVtZXJhbE5vbmNlID0gUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlIHsgYXR0cmlidXRpb25Tb3VyY2VOb25jZUF0dHIg
fTsKQEAgLTQ2MSw2ICs0NjIsNyBAQCBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4g
SFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbgogICAgICAgICB9
CiAgICAgICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50LnNldEVwaGVtZXJhbFNvdXJjZU5vbmNl
KFdURk1vdmUoZXBoZW1lcmFsTm9uY2UpKTsKICAgICB9CisjZW5kaWYKIAogICAgIHJldHVybiBw
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCmluZGV4IDMyMDA0NzBkODdkNWY4NTBjZDQ1YWVl
Y2VjNzFkODljZWJjZWM4NGUuLmFkY2U1ZGE2ZDc2YmZjMjQ2ZTUzZGJjYTMzNjJhY2I0MGUwOWY0
ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50LmNwcApAQCAtMTQ2LDQgKzE0NiwyOCBAQCBSZWY8SlNPTjo6T2JqZWN0PiBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6anNvbigpIGNvbnN0CiAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7CiB9
CiAKKy8vIE1BUks6IC0gRnJhdWQgUHJldmVudGlvbgorI2lmIEhBVkUoUlNBX0JTU0EpCisKK3N0
YXRpYyBjb25zdGV4cHIgdWludDMyX3QgRXBoZW1lcmFsU291cmNlTm9uY2VSZXF1aXJlZE51bWJl
ck9mQnl0ZXMgPSAxNjsKKworYm9vbCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFs
U291cmNlTm9uY2U6OmlzVmFsaWQoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBJbnZlc3RpZ2F0
ZSBpZiB3ZSBjYW4gZG8gd2l0aCBhIHNpbXBsZSBsZW5ndGggY2hlY2sgaW5zdGVhZCBvZiBkZWNv
ZGluZy4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIx
OTQ1CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGRpZ2VzdDsKKyAgICBpZiAoIWJhc2U2NFVSTERlY29k
ZShub25jZSwgZGlnZXN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBkaWdl
c3Quc2l6ZSgpID09IEVwaGVtZXJhbFNvdXJjZU5vbmNlUmVxdWlyZWROdW1iZXJPZkJ5dGVzOwog
fQorCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpzZXRFcGhlbWVyYWxTb3VyY2VOb25j
ZShFcGhlbWVyYWxTb3VyY2VOb25jZSYmIG5vbmNlKQoreworICAgIGlmICghbm9uY2UuaXNWYWxp
ZCgpKQorICAgICAgICByZXR1cm47CisgICAgbV9lcGhlbWVyYWxTb3VyY2VOb25jZSA9IFdURk1v
dmUobm9uY2UpOworfQorCisjZW5kaWYgLy8gSEFWRShSU0FfQlNTQSkKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQuaAppbmRleCBhNGM5NmNhMWUwYTRkMDBiMmFhZjFjYzU2OTMzMjk3OWE5ZjgyNTIwLi5h
Nzc0NTRjMDIzNDZmODAxZTAzYWMwY2E3ZjRlNTNlNDU0YmE3NDEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaApAQCAtMzYsNiArMzYsMTAg
QEAKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKK09CSkNfQ0xBU1MgUlNBQlNTQVRva2VuUmVhZHk7CitPQkpDX0NMQVNT
IFJTQUJTU0FUb2tlbldhaXRpbmdBY3RpdmF0aW9uOworT0JKQ19DTEFTUyBSU0FCU1NBVG9rZW5C
bGluZGVyOworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFByaXZhdGVDbGlja01lYXN1
cmVtZW50IHsKQEAgLTIwMSwyOCArMjA1LDYgQEAgcHVibGljOgogICAgICAgICBzdGF0aWMgY29u
c3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOwogICAgIH07CiAK
LSAgICBzdHJ1Y3QgRXBoZW1lcmFsU291cmNlTm9uY2UgewotICAgICAgICBzdGF0aWMgY29uc3Rl
eHByIHVpbnQzMl90IFJlcXVpcmVkTnVtYmVyT2ZCeXRlcyA9IDE2OwotCi0gICAgICAgIEVwaGVt
ZXJhbFNvdXJjZU5vbmNlKCkgPSBkZWZhdWx0OwotICAgICAgICBleHBsaWNpdCBFcGhlbWVyYWxT
b3VyY2VOb25jZShjb25zdCBTdHJpbmcmIG5vbmNlU3RyaW5nKQotICAgICAgICAgICAgOiBub25j
ZSB7IG5vbmNlU3RyaW5nIH0KLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgLy8gRklY
TUU6IEludmVzdGlnYXRlIGlmIHdlIGNhbiBkbyB3aXRoIGEgc2ltcGxlIGxlbmd0aCBjaGVjayBp
bnN0ZWFkIG9mIGRlY29kaW5nLgotICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIxOTQ1Ci0gICAgICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0Ci0gICAg
ICAgIHsKLSAgICAgICAgICAgIFZlY3Rvcjx1aW50OF90PiBkaWdlc3Q7Ci0gICAgICAgICAgICBp
ZiAoIWJhc2U2NFVSTERlY29kZShub25jZSwgZGlnZXN0KSkKLSAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgICAgICByZXR1cm4gZGlnZXN0LnNpemUoKSA9PSBSZXF1aXJlZE51
bWJlck9mQnl0ZXM7Ci0gICAgICAgIH0KLQotICAgICAgICBTdHJpbmcgbm9uY2U7Ci0gICAgfTsK
LQogICAgIHN0cnVjdCBQcmlvcml0eSB7CiAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMy
X3QgTWF4RW50cm9weSA9IDYzOwogCkBAIC0yNzgsOSArMjYwLDYgQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIFJlZjxKU09OOjpPYmplY3Q+IGpzb24oKSBjb25zdDsKICAgICBjb25zdCBT
b3VyY2VTaXRlJiBzb3VyY2VTaXRlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VTaXRlOyB9Owog
ICAgIGNvbnN0IEF0dHJpYnV0ZU9uU2l0ZSYgYXR0cmlidXRlT25TaXRlKCkgY29uc3QgeyByZXR1
cm4gbV9hdHRyaWJ1dGVPblNpdGU7IH07Ci0gICAgdm9pZCBzZXRFcGhlbWVyYWxTb3VyY2VOb25j
ZShFcGhlbWVyYWxTb3VyY2VOb25jZSYmIG5vbmNlKSB7IG1fZXBoZW1lcmFsU291cmNlTm9uY2Ug
PSBXVEZNb3ZlKG5vbmNlKTsgfTsKLSAgICBPcHRpb25hbDxFcGhlbWVyYWxTb3VyY2VOb25jZT4g
ZXBoZW1lcmFsU291cmNlTm9uY2UoKSBjb25zdCB7IHJldHVybiAhbV9lcGhlbWVyYWxTb3VyY2VO
b25jZSA/IFdURjo6bnVsbG9wdCA6IG1fZXBoZW1lcmFsU291cmNlTm9uY2UtPmlzVmFsaWQoKSA/
IG1fZXBoZW1lcmFsU291cmNlTm9uY2UgOiBXVEY6Om51bGxvcHQ7IH07Ci0gICAgdm9pZCBjbGVh
ckVwaGVtZXJhbFNvdXJjZU5vbmNlKCkgeyBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlICA9IFdURjo6
bnVsbG9wdDsgfTsKICAgICBXYWxsVGltZSB0aW1lT2ZBZENsaWNrKCkgY29uc3QgeyByZXR1cm4g
bV90aW1lT2ZBZENsaWNrOyB9CiAgICAgT3B0aW9uYWw8V2FsbFRpbWU+IGVhcmxpZXN0VGltZVRv
U2VuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZWFybGllc3RUaW1lVG9TZW5kOyB9OwogICAgIHZvaWQg
c2V0RWFybGllc3RUaW1lVG9TZW5kKFdhbGxUaW1lIHRpbWUpIHsgbV9lYXJsaWVzdFRpbWVUb1Nl
bmQgPSB0aW1lOyB9CkBAIC0yOTEsNiArMjcwLDI4IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJp
bmcmIHNvdXJjZURlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VEZXNjcmlwdGlv
bjsgfQogICAgIGNvbnN0IFN0cmluZyYgcHVyY2hhc2VyKCkgY29uc3QgeyByZXR1cm4gbV9wdXJj
aGFzZXI7IH0KIAorICAgIC8vIE1BUks6IC0gRnJhdWQgUHJldmVudGlvbgorI2lmIEhBVkUoUlNB
X0JTU0EpCisgICAgc3RydWN0IEVwaGVtZXJhbFNvdXJjZU5vbmNlIHsKKyAgICAgICAgU3RyaW5n
IG5vbmNlOworCisgICAgICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNWYWxpZCgpIGNvbnN0Owor
ICAgIH07CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEVwaGVtZXJhbFNvdXJjZU5vbmNl
KEVwaGVtZXJhbFNvdXJjZU5vbmNlJiYpOworICAgIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5v
bmNlPiBlcGhlbWVyYWxTb3VyY2VOb25jZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXBoZW1lcmFsU291
cmNlTm9uY2U7IH07CisgICAgdm9pZCBjbGVhckVwaGVtZXJhbFNvdXJjZU5vbmNlKCkgeyBtX2Vw
aGVtZXJhbFNvdXJjZU5vbmNlLnJlc2V0KCk7IH07CisKKyAgICBzdHJ1Y3QgUGVyc2lzdGVudEJs
aW5kZWRUb2tlbiB7CisgICAgICAgIFN0cmluZyB0b2tlbkJhc2U2NFVSTDsKKyAgICAgICAgU3Ry
aW5nIGtleUlEQmFzZTY0VVJMOworICAgICAgICBTdHJpbmcgc2lnbmF0dXJlQmFzZTY0VVJMOwor
ICAgIH07CisKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8SlNPTjo6T2JqZWN0PiBibGluZGVk
U2VjcmV0SnNvbihjb25zdCBTdHJpbmcmIHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCk7CisgICAg
V0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8UGVyc2lzdGVudEJsaW5kZWRUb2tlbj4gY2FsY3VsYXRl
UGVyc2lzdGVudEJsaW5kZWRUb2tlbihjb25zdCBTdHJpbmcmIHNlcnZlclJlc3BvbnNlQmFzZTY0
VVJMKTsKKyNlbmRpZiAvLyBIQVZFKFJTQV9CU1NBKQorCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gZGVjb2RlKERl
Y29kZXImKTsKIApAQCAtMzA0LDkgKzMwNSwxOSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3B1
cmNoYXNlcjsKICAgICBXYWxsVGltZSBtX3RpbWVPZkFkQ2xpY2s7CiAKLSAgICBPcHRpb25hbDxF
cGhlbWVyYWxTb3VyY2VOb25jZT4gbV9lcGhlbWVyYWxTb3VyY2VOb25jZTsKICAgICBPcHRpb25h
bDxBdHRyaWJ1dGlvblRyaWdnZXJEYXRhPiBtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGE7CiAgICAg
T3B0aW9uYWw8V2FsbFRpbWU+IG1fZWFybGllc3RUaW1lVG9TZW5kOworCisjaWYgSEFWRShSU0Ff
QlNTQSkKKyAgICBzdHJ1Y3QgQmxpbmRlZFRva2VuIHsKKyAgICAgICAgUmV0YWluUHRyPFJTQUJT
U0FUb2tlbkJsaW5kZXI+IGJsaW5kZXI7CisgICAgICAgIFJldGFpblB0cjxSU0FCU1NBVG9rZW5X
YWl0aW5nQWN0aXZhdGlvbj4gd2FpdGluZ1Rva2VuOworICAgICAgICBSZXRhaW5QdHI8UlNBQlNT
QVRva2VuUmVhZHk+IHJlYWR5VG9rZW47CisgICAgfTsKKworICAgIE9wdGlvbmFsPEVwaGVtZXJh
bFNvdXJjZU5vbmNlPiBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlOworICAgIEJsaW5kZWRUb2tlbiBt
X2JsaW5kZWRUb2tlbjsKKyNlbmRpZiAvLyBIQVZFKFJTQV9CU1NBKQogfTsKIAogdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nv
Y29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmNkZDAzMjdj
ZTViMDNiZGE1ZWI4OTE3ZWI4ZDJlNzExMDcwNzNkMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tCkBA
IC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQg
IlByaXZhdGVDbGlja01lYXN1cmVtZW50LmgiCisKKyNpZiBIQVZFKFJTQV9CU1NBKQorCisjaW1w
b3J0IDxDcnlwdG9LaXRDQnJpZGdpbmcvUlNBQlNTQS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1JlZlB0cjxKU09OOjpPYmplY3Q+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpibGluZGVk
U2VjcmV0SnNvbihjb25zdCBTdHJpbmcmIHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCkKK3sKKyAg
ICBpZiAoIW1fZXBoZW1lcmFsU291cmNlTm9uY2UgfHwgIW1fZXBoZW1lcmFsU291cmNlTm9uY2Ut
PmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICB7CisgICAgICAgIFZl
Y3Rvcjx1aW50OF90PiBzZXJ2ZXJQdWJsaWNLZXlEYXRhOworICAgICAgICBpZiAoIWJhc2U2NFVS
TERlY29kZShzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkwsIHNlcnZlclB1YmxpY0tleURhdGEpKQor
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIGF1dG8gc2VydmVyUHVibGljS2V5
ID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczpzZXJ2ZXJQdWJsaWNLZXlE
YXRhLmRhdGEoKSBsZW5ndGg6c2VydmVyUHVibGljS2V5RGF0YS5zaXplKCldKTsKKworICAgICAg
ICAvLyBGSVhNRSgyMjIwMTgpOiBDaGVjayBlcnJvci4KKyAgICAgICAgbV9ibGluZGVkVG9rZW4u
YmxpbmRlciA9IGFkb3B0TlMoW1tSU0FCU1NBVG9rZW5CbGluZGVyIGFsbG9jXSBpbml0V2l0aFB1
YmxpY0tleTpzZXJ2ZXJQdWJsaWNLZXkuZ2V0KCkgZXJyb3I6bnVsbHB0cl0pOworICAgICAgICBp
ZiAoIW1fYmxpbmRlZFRva2VuLmJsaW5kZXIpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICB9CisKKyAgICAvLyBGSVhNRSgyMjIwMTgpOiBDaGVjayBlcnJvci4KKyAgICBtX2JsaW5k
ZWRUb2tlbi53YWl0aW5nVG9rZW4gPSBbbV9ibGluZGVkVG9rZW4uYmxpbmRlciB0b2tlbldhaXRp
bmdBY3RpdmF0aW9uV2l0aENvbnRlbnQ6bnVsbHB0ciBlcnJvcjpudWxscHRyXTsKKyAgICBpZiAo
IW1fYmxpbmRlZFRva2VuLndhaXRpbmdUb2tlbikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisK
KyAgICBhdXRvIGJsaW5kZWRTZWNyZXQgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOworICAgIGJs
aW5kZWRTZWNyZXQtPnNldFN0cmluZygiY2xpY2tfbm9uY2UiX3MsIG1fZXBoZW1lcmFsU291cmNl
Tm9uY2UtPm5vbmNlKTsKKyAgICBibGluZGVkU2VjcmV0LT5zZXRTdHJpbmcoImJsaW5kZWRfc2Vj
cmV0Il9zLCBXVEY6OmJhc2U2NFVSTEVuY29kZShbbV9ibGluZGVkVG9rZW4ud2FpdGluZ1Rva2Vu
IGJsaW5kZWRNZXNzYWdlXS5ieXRlcywgW21fYmxpbmRlZFRva2VuLndhaXRpbmdUb2tlbiBibGlu
ZGVkTWVzc2FnZV0ubGVuZ3RoKSk7CisKKyAgICByZXR1cm4gYmxpbmRlZFNlY3JldDsKK30KKwor
YXV0byBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y2FsY3VsYXRlUGVyc2lzdGVudEJsaW5kZWRU
b2tlbihjb25zdCBTdHJpbmcmIHNlcnZlclJlc3BvbnNlQmFzZTY0VVJMKSAtPiBPcHRpb25hbDxQ
ZXJzaXN0ZW50QmxpbmRlZFRva2VuPgoreworICAgIGlmICghbV9ibGluZGVkVG9rZW4ud2FpdGlu
Z1Rva2VuKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgeworICAgICAgICBW
ZWN0b3I8dWludDhfdD4gc2VydmVyUmVzcG9uc2VEYXRhOworICAgICAgICBpZiAoIWJhc2U2NFVS
TERlY29kZShzZXJ2ZXJSZXNwb25zZUJhc2U2NFVSTCwgc2VydmVyUmVzcG9uc2VEYXRhKSkKKyAg
ICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIGF1dG8gc2VydmVyUmVzcG9u
c2UgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnNlcnZlclJlc3BvbnNl
RGF0YS5kYXRhKCkgbGVuZ3RoOnNlcnZlclJlc3BvbnNlRGF0YS5zaXplKCldKTsKKworICAgICAg
ICAvLyBGSVhNRSgyMjIwMTgpOiBDaGVjayBlcnJvci4KKyAgICAgICAgbV9ibGluZGVkVG9rZW4u
cmVhZHlUb2tlbiA9IFttX2JsaW5kZWRUb2tlbi53YWl0aW5nVG9rZW4gYWN0aXZhdGVUb2tlbldp
dGhTZXJ2ZXJSZXNwb25zZTpzZXJ2ZXJSZXNwb25zZS5nZXQoKSBlcnJvcjpudWxscHRyXTsKKyAg
ICAgICAgaWYgKCFtX2JsaW5kZWRUb2tlbi5yZWFkeVRva2VuKQorICAgICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBQZXJzaXN0ZW50QmxpbmRlZFRva2VuIHRva2Vu
OworICAgIHRva2VuLnRva2VuQmFzZTY0VVJMID0gV1RGOjpiYXNlNjRVUkxFbmNvZGUoW21fYmxp
bmRlZFRva2VuLnJlYWR5VG9rZW4gdG9rZW5Db250ZW50XS5ieXRlcywgW21fYmxpbmRlZFRva2Vu
LnJlYWR5VG9rZW4gdG9rZW5Db250ZW50XS5sZW5ndGgpOworICAgIHRva2VuLmtleUlEQmFzZTY0
VVJMID0gV1RGOjpiYXNlNjRVUkxFbmNvZGUoW21fYmxpbmRlZFRva2VuLnJlYWR5VG9rZW4ga2V5
SWRdLmJ5dGVzLCBbbV9ibGluZGVkVG9rZW4ucmVhZHlUb2tlbiBrZXlJZF0ubGVuZ3RoKTsKKyAg
ICB0b2tlbi5zaWduYXR1cmVCYXNlNjRVUkwgPSBXVEY6OmJhc2U2NFVSTEVuY29kZShbbV9ibGlu
ZGVkVG9rZW4ucmVhZHlUb2tlbiBzaWduYXR1cmVdLmJ5dGVzLCBbbV9ibGluZGVkVG9rZW4ucmVh
ZHlUb2tlbiBzaWduYXR1cmVdLmxlbmd0aCk7CisKKyAgICByZXR1cm4gdG9rZW47Cit9CisKKyNl
bmRpZiAvLyBIQVZFKFJTQV9CU1NBKQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzY5ODc3OTE5M2Q0
YjM0NTc2ZmQyOTdmMWJkZmQ2NzQ5ZGEwMmNkMS4uZTQ0Yzc1MmM4OWIxY2IwZGYwNzFmZGI5NWJj
ZTVmYTc3M2EzOTViMCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTAyLTE2ICBKaWV3ZW4gVGFuICA8amlld2Vu
X3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUENNOiBHZW5lcmF0ZSBzZWNyZXQgdG9rZW4gYW5k
IGNvcnJlc3BvbmRpbmcgdW5saW5rYWJsZSB0b2tlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMDE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
MzU4MTQxMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5j
cHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgQWRkIHRlc3RzLgor
CiAyMDIxLTAyLTE1ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIFBDTTogQWRkIGhpZ2ggZW50cm9weSBhdHRyaWJ1dGlvblNvdXJjZU5vbmNlIGF0dHJpYnV0
ZSB0byBhbmNob3IgdGFncwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKaW5kZXggN2NkNzc1YjRj
NjA0MjBlZmFlMWRlMTY3NDE4MWQwZTkxZjllNjJiMy4uOTYzYmY5N2UwM2I0NDEwY2E4MWZiYjcz
MDI4YzAxODBhYjYwYzFlMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCkBAIC0yNCw2ICsy
NCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRlc3QuaCIKIAog
I2luY2x1ZGUgPFdlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaD4KICNpbmNsdWRlIDx3
dGYvVVJMLmg+CkBAIC0zOSw2ICs0MCw5IEBAIGNvbnN0IFVSTCB3ZWJLaXRVUkwgeyB7IH0sICJo
dHRwczovL3dlYmtpdC5vcmciX3MgfTsKIGNvbnN0IFVSTCBleGFtcGxlVVJMIHsgeyB9LCAiaHR0
cHM6Ly9leGFtcGxlLmNvbSJfcyB9OwogY29uc3QgVVJMIGVtcHR5VVJMIHsgfTsKIAorY29uc3Qg
Y2hhciBzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkxbXSA9CisgICAgIk1JSUNJakFOQmdrcWhraUc5
dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBemIxZFRocnRZd1ZoNDZTakluZWdLaEFxcGJKd20x
WG5UQkN2eWJTSzh6azUzUjBBbTFoRzMzQVZGNUoxbHFZZjM2d3A2NjNHYXNjbEh0cXp2eEZaSXZE
QTFEVVNINGFael9mREhDVFR4RWVKVlBPUlMzek5OMlVqV3didG53c2g0Qm1EVGktel9jRG4wTEF6
Mkp1WnlLbHlGdDVHZ1ZMQVF2TDlIM1ZMSFU5X1hITkstdWJveVhmY0hSVHRyRG5wdTNjNnd2WDVk
ZC1BSm9MbUlRVFpCRUpmVmt4Qkd6bmsxcUtIamM2bkFTQWlyS0Zfd0pDbnV3QUs4QzZCQWNqTmN3
VVdDZUtwMFlFQ3pDWFUtLUpYZDJPRVUtUWh4UEM2N2ZhaURPaDNWMHZsZnFaTHRybGJuYW5VQ0ty
dmh3N0dhR09HWW90SXJuWnR1TmZ4QzE0ZF9YTlZkMUZTOG5IalJUSG5FZ3dfam5sU3NzZmdTdHow
dUp0Y21rZmdvSkJ2T0U0bUlScGk3aVNsUmZYTmtLc1dYMUotZ3djbkNWbzV1MHVKRVc2WDZOeXZF
R1lKOHc1QlBmd3NRdUs5eS00Wjdpa3Q5SU91Y0VIWTdUaERtaTlUTk5oSEJWajBHdTR3R29TanEz
YTZ2TDVOMTBaU0hYb3ExWGdmR1BybUhoaEw5MGNqdldvbm95T1hzVXFsWEV6VGpEMlc5ODk3US1N
eDlCVU5yR1FQcW1JeDhGNU13eFdjT3J5ZThXUnA0UTg4bjJZU1VuVjdDOGF5bGQzdjFGaDdONWpl
U3FlVm10RFZSWVRuMnNWZk5xZ1hyemdkaWdKY1FSOHZGRU51Nm56RlB3c3JYUE1hQ2lMVW5aTlVt
UTFaU0xRZVF5aFlYeEhxUkpybnVDRFdYTGtDQXdFQUFRIjsKKwogLy8gUG9zaXRpdmUgdGVzdCBj
YXNlcy4KIAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgVmFsaWRNaW5WYWx1ZXMpCkBA
IC0xMjMsMTIgKzEyNywzMiBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZENv
bnZlcnNpb25VUkxzKQogICAgIEFTU0VSVF9FUShvcHRpb25hbENvbnZlcnNpb24tPnByaW9yaXR5
LCAodWludDMyX3QpMik7CiB9CiAKKyNpZiBIQVZFKFJTQV9CU1NBKQorCiBURVNUKFByaXZhdGVD
bGlja01lYXN1cmVtZW50LCBWYWxpZFNvdXJjZU5vbmNlKQogewogICAgIGF1dG8gZXBoZW1lcmFs
Tm9uY2UgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFsU291cmNlTm9uY2UgeyAi
QUJDREVGYWJjZGVmMDEyMzQ1Njc4OSJfcyB9OwogICAgIEFTU0VSVF9UUlVFKGVwaGVtZXJhbE5v
bmNlLmlzVmFsaWQoKSk7CiB9CiAKK1RFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIFZhbGlk
QmxpbmRlZFNlY3JldCkKK3sKKyAgICBhdXRvIGVwaGVtZXJhbE5vbmNlID0gUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlIHsgIkFCQ0RFRmFiY2RlZjAxMjM0NTY3
ODkiX3MgfTsKKyAgICBFWFBFQ1RfVFJVRShlcGhlbWVyYWxOb25jZS5pc1ZhbGlkKCkpOworCisg
ICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgcGNtOworICAgIHBjbS5zZXRFcGhlbWVyYWxTb3Vy
Y2VOb25jZShXVEZNb3ZlKGVwaGVtZXJhbE5vbmNlKSk7CisKKyAgICBhdXRvIGJsaW5kZWRTZWNy
ZXQgPSBwY20uYmxpbmRlZFNlY3JldEpzb24oc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKTsKKyAg
ICBFWFBFQ1RfTk9UX05VTEwoYmxpbmRlZFNlY3JldCk7CisgICAgRVhQRUNUX1NUUkVRKGJsaW5k
ZWRTZWNyZXQtPmdldFN0cmluZygiY2xpY2tfbm9uY2UiX3MpLnV0ZjgoKS5kYXRhKCksICJBQkNE
RUZhYmNkZWYwMTIzNDU2Nzg5Iik7CisgICAgRVhQRUNUX0ZBTFNFKGJsaW5kZWRTZWNyZXQtPmdl
dFN0cmluZygiYmxpbmRlZF9zZWNyZXQiX3MpLmlzRW1wdHkoKSk7CisKKyAgICAvLyBGSVhNRSgy
MjIwMTgpOiBNb2NrIHRoZSBzZXJ2ZXIgcmVzcG9uc2UgYW5kIGNvbnRpbnVlIHRoZSB0ZXN0Lgor
fQorCisjZW5kaWYgLy8gSEFWRShSU0FfQlNTQSkKKwogLy8gTmVnYXRpdmUgdGVzdCBjYXNlcy4K
IAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZFNvdXJjZUlEKQpAQCAtMjgx
LDYgKzMwNSw4IEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRDb252ZXJz
aW9uV2l0aERpc2FsbG93ZWRVUkxDb21wb25lbnRzKQogICAgIEFTU0VSVF9GQUxTRShvcHRpb25h
bENvbnZlcnNpb24pOwogfQogCisjaWYgSEFWRShSU0FfQlNTQSkKKwogVEVTVChQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCwgSW52YWxpZFNvdXJjZU5vbmNlKQogewogICAgIC8vIEZld2VyIHRoYW4g
dGhlIHJlcXVyaWVkIG51bWJlciBvZiBieXRlcy4KQEAgLTMwMCw0ICszMjYsMjMgQEAgVEVTVChQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZFNvdXJjZU5vbmNlKQogICAgIEFTU0VSVF9G
QUxTRShlcGhlbWVyYWxOb25jZS5pc1ZhbGlkKCkpOwogfQogCitURVNUKFByaXZhdGVDbGlja01l
YXN1cmVtZW50LCBJbnZhbGlkQmxpbmRlZFNlY3JldCkKK3sKKyAgICBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCBwY207CisgICAgYXV0byBibGluZGVkU2VjcmV0ID0gcGNtLmJsaW5kZWRTZWNyZXRK
c29uKHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCk7CisgICAgRVhQRUNUX05VTEwoYmxpbmRlZFNl
Y3JldCk7CisKKyAgICBhdXRvIGVwaGVtZXJhbE5vbmNlID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlIHsgIkFCQ0RFRmFiY2RlZjAxMjM0NTY3ODkiX3MgfTsK
KyAgICBFWFBFQ1RfVFJVRShlcGhlbWVyYWxOb25jZS5pc1ZhbGlkKCkpOworICAgIHBjbS5zZXRF
cGhlbWVyYWxTb3VyY2VOb25jZShXVEZNb3ZlKGVwaGVtZXJhbE5vbmNlKSk7CisKKyAgICBibGlu
ZGVkU2VjcmV0ID0gcGNtLmJsaW5kZWRTZWNyZXRKc29uKHNlcnZlclB1YmxpY0tleUJhc2U2NFVS
TCk7CisgICAgRVhQRUNUX05PVF9OVUxMKGJsaW5kZWRTZWNyZXQpOworCisgICAgYXV0byBwZXJz
aXN0ZW50VG9rZW4gPSBwY20uY2FsY3VsYXRlUGVyc2lzdGVudEJsaW5kZWRUb2tlbihlbXB0eVN0
cmluZygpKTsKKyAgICBFWFBFQ1RfRkFMU0UocGVyc2lzdGVudFRva2VuKTsKK30KKworI2VuZGlm
IC8vIEhBVkUoUlNBX0JTU0EpCisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420592</attachid>
            <date>2021-02-16 21:21:17 -0800</date>
            <delta_ts>2021-02-16 23:56:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222019-20210216212117.patch</filename>
            <type>text/plain</type>
            <size>25359</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDUwYzU1NmNjMjZjMjU5MjcyZWY2ZjYw
Y2I3NzVhZDBiNmU4NDA2OWYuLjU2MzQ5YTQxNTE1NzkzNGEzOWExNGQ0OTAxMzg5M2QwZjZkNjdk
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5f
dGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQg
Y29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcz
NTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd3RmL1BsYXRmb3JtSGF2ZS5oOgorICAgICAgICBBZGRzIGEgY29tcGlsZSB0aW1lIGZsYWcg
Zm9yIFJTQUJTU0EuCisKIDIwMjEtMDItMTUgIFBlciBBcm5lICA8cHZvbGxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW21hY09TXSBDbG9zZSBYUEMgY29ubmVjdGlvbnMgYmVmb3JlIGVudGVyaW5n
IHNhbmRib3gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMTU0ZDExOWE5NjJkM2M5MDkzNzM4N2Y5NzViY2VjOTFl
Mjc4ZmU1Li4yYWY2MTE1MGYxMTI2ZTI5ODk0YzZlYjI3ZDFjMzE1YmQ2OTc2MzQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQgY29y
cmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzczNTgx
NDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENv
dmVyZWQgYnkgQVBJIHRlc3RzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggdXRpbGl6ZXMgUlNBQlNT
QSB0byBnZW5lcmF0ZSBzZWNyZXQgdG9rZW4gZm9yIFBDTSBmcmF1ZCBwcmV2ZW50aW9uLgorCisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZzoKKyAgICAgICAgKiBTb3Vy
Y2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgUGFwZXJ3b3JrIHRvIGxpbmsgQ3J5cHRvS2l0Q0JyaWRnaW5nLgorCisgICAg
ICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNWYWxp
ZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c2V0
RXBoZW1lcmFsU291cmNlTm9uY2UpOgorICAgICAgICAqIGxvYWRlci9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0
dHJpYnV0ZU9uU2l0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6ZXBoZW1lcmFsU291cmNlTm9uY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmNsZWFyRXBoZW1lcmFsU291cmNlTm9uY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5v
bmNlOjpFcGhlbWVyYWxTb3VyY2VOb25jZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFsU291cmNlTm9uY2U6OmlzVmFsaWQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OnNldEVwaGVtZXJhbFNvdXJjZU5vbmNlKTogRGVsZXRlZC4KKyAgICAgICAgR3JvdXBzIGZ1bmN0
aW9uYWxpdGllcyBiZWhpbmQgSEFWRV9SU0FfQlNTQS4KKworICAgICAgICAqIGxvYWRlci9jb2Nv
YS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpibGluZGVkU2VjcmV0SnNvbik6CisgICAgICAg
IChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y2FsY3VsYXRlUGVyc2lzdGVudEJs
aW5kZWRUb2tlbik6CisgICAgICAgIEludHJvZHVjZXMgbmV3IG1ldGhvZHMgdG8gZ2VuZXJhdGUg
dGhlIGJsaW5kZWQgc2VjcmV0cyBhbmQgdW5saW5rYWJsZSB0b2tlbnMuCisKIDIwMjEtMDItMTUg
IEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgUENNOiBBZGQg
aGlnaCBlbnRyb3B5IGF0dHJpYnV0aW9uU291cmNlTm9uY2UgYXR0cmlidXRlIHRvIGFuY2hvciB0
YWdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IDA1NGY2N2U2MmE5MmMwNTY0MDQwM2Q5MDIwMTRm
MjQzMzE0NzMzZmIuLjNmNjE4NjQ1YzBkYThjYTQzMGIxZWViZDliMDk3MGZiNTNiYmE5NjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC04ODQsMyArODg0LDggQEAKICNkZWZpbmUgSEFWRV9DT1JF
X0dSQVBISUNTX1JPTU1SR0JfQ09MT1JfU1BBQ0UgMQogI2RlZmluZSBIQVZFX0NPUkVfR1JBUEhJ
Q1NfWFlaX0NPTE9SX1NQQUNFIDEKICNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDApIFwKKyAgICB8fCAoUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTUw
MDAwKQorI2RlZmluZSBIQVZFX1JTQV9CU1NBIDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3Jl
L0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWcKaW5kZXggYWVjNjVjZmQ2YTFkMzQ5NjBl
ZmFmZjcxODk3ZDFlZjY0MTgyNzIzMy4uOTMyZjhlZmFmZjEzYzU3NWM1ZDRmYmQxZjYzZTZkYTEz
NWU1MDRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29y
ZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhj
Y29uZmlnCkBAIC0xMjMsNyArMTIzLDcgQEAgV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUyA9ICQo
V0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHU18kKFdLX0hBVkVfVVJMX0ZPUk1BVFRJTkcKIFdLX1VS
TF9GT1JNQVRUSU5HX0xERkxBR1NfWUVTID0gLWZyYW1ld29yayBVUkxGb3JtYXR0aW5nOwogCiAv
LyBGSVhNRTogUmVkdWNlIHRoZSBudW1iZXIgb2YgYWxsb3dhYmxlX2NsaWVudHMgPHJkYXI6Ly9w
cm9ibGVtLzMxODIzOTY5PgotT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAkKFdLX1JFTE9D
QVRBQkxFX0ZSQU1FV09SS19MREZMQUdTKSAtbHNxbGl0ZTMgLWxvYmpjIC1sQU5HTEUgLWFsbG93
YWJsZV9jbGllbnQgV2ViQ29yZVRlc3RTdXBwb3J0IC1hbGxvd2FibGVfY2xpZW50IFdlYktpdExl
Z2FjeSAtZm9yY2VfbG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvbGliUEFMLmEgLWZyYW1ld29y
ayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlQXVkaW8gLWZyYW1ld29yayBDb3JlR3JhcGhpY3Mg
LWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29yayBJT1N1
cmZhY2UgLWZyYW1ld29yayBJbWFnZUlPIC1mcmFtZXdvcmsgTWV0YWwgJChPVEhFUl9MREZMQUdT
X1BMQVRGT1JNXyQoV0tfQ09DT0FfVE9VQ0gpKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChX
S19QTEFURk9STV9OQU1FKSkgJChXS19BUFBLSVRfTERGTEFHUykgJChXS19BUFBTVVBQT1JUX0xE
RkxBR1MpICQoV0tfQVVESU9fVU5JVF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdL
X0NPUkVfVUlfTERGTEFHUykgJChXS19EQVRBX0RFVEVDVE9SU19DT1JFX0xERkxBR1MpICQoV0tf
R1JBUEhJQ1NfU0VSVklDRVNfTERGTEFHUykgJChXS19JT1NVUkZBQ0VfQUNDRUxFUkFUT1JfTERG
TEFHUykgJChXS19MSUJXRUJSVENfTERGTEFHUykgJChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19M
REZMQUdTKSAkKFdLX01PQklMRV9HRVNUQUxUX0xERkxBR1MpICQoV0tfTkVUV09SS19FWFRFTlNJ
T05fTERfRkxBR1MpICQoV0tfU1lTVEVNX0NPTkZJR1VSQVRJT05fTERGTEFHUykgJChXS19DT1JF
X0lNQUdFX0xERkxBR1MpICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUyk7CitPVEhFUl9MREZM
QUdTID0gJChpbmhlcml0ZWQpICQoV0tfUkVMT0NBVEFCTEVfRlJBTUVXT1JLX0xERkxBR1MpIC1s
c3FsaXRlMyAtbG9iamMgLWxBTkdMRSAtYWxsb3dhYmxlX2NsaWVudCBXZWJDb3JlVGVzdFN1cHBv
cnQgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0TGVnYWN5IC1mb3JjZV9sb2FkICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9saWJQQUwuYSAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVB
dWRpbyAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0IC1mcmFtZXdv
cmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIElPU3VyZmFjZSAtZnJhbWV3b3JrIEltYWdlSU8gLWZy
YW1ld29yayBNZXRhbCAtZnJhbWV3b3JrIENyeXB0b0tpdENCcmlkZ2luZyAkKE9USEVSX0xERkxB
R1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkpICQoT1RIRVJfTERGTEFHU19QTEFURk9STV8k
KFdLX1BMQVRGT1JNX05BTUUpKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAkKFdLX0FQUFNVUFBPUlRf
TERGTEFHUykgJChXS19BVURJT19VTklUX0xERkxBR1MpICQoV0tfQ0FSQk9OX0xERkxBR1MpICQo
V0tfQ09SRV9VSV9MREZMQUdTKSAkKFdLX0RBVEFfREVURUNUT1JTX0NPUkVfTERGTEFHUykgJChX
S19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0lPU1VSRkFDRV9BQ0NFTEVSQVRPUl9M
REZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZMQUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJQ0VT
X0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RBTFRfTERGTEFHUykgJChXS19ORVRXT1JLX0VYVEVO
U0lPTl9MRF9GTEFHUykgJChXS19TWVNURU1fQ09ORklHVVJBVElPTl9MREZMQUdTKSAkKFdLX0NP
UkVfSU1BR0VfTERGTEFHUykgJChXS19VUkxfRk9STUFUVElOR19MREZMQUdTKTsKIAogT1RIRVJf
TERGTEFHU19QTEFURk9STV9jb2NvYXRvdWNoID0gLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0IC1h
bGxvd2FibGVfY2xpZW50IGlUdW5lc1UgLWFsbG93YWJsZV9jbGllbnQgQ2FzYWJsYW5jYSAtYWxs
b3dhYmxlX2NsaWVudCBSZW1vdGUgLWFsbG93YWJsZV9jbGllbnQgVFZCb29rcyAtYWxsb3dhYmxl
X2NsaWVudCBEdW1wUmVuZGVyVHJlZSAtYWxsb3dhYmxlX2NsaWVudCBXZWJLaXRUZXN0UnVubmVy
IC1hbGxvd2FibGVfY2xpZW50IFRlc3RXZWJLaXRBUEk7CiBPVEhFUl9MREZMQUdTX1BMQVRGT1JN
X21hY29zeCA9IC1zdWJfbGlicmFyeSBsaWJvYmpjIC11bWJyZWxsYSBXZWJLaXQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291
cmNlc0NvY29hLnR4dAppbmRleCAyZjBmZGVmZTkzYWVjNmVlZmNmZTg3MWNlZmVlYzlmZTQ1ODI4
NzYzLi41NWUzOTAyNmNmYjQ1MzMyYmEwNzkwNzc4MGQwNmJjZjQ2ZDlkNjAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXNDb2NvYS50eHQKQEAgLTE2Nyw2ICsxNjcsNyBAQCBpbnNwZWN0b3IvbWFjL1BhZ2VEZWJ1
Z2dlck1hYy5tbQogbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAKIGxvYWRl
ci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmVNYWMubW0KIGxvYWRlci9jb2NvYS9EaXNrQ2Fj
aGVNb25pdG9yQ29jb2EubW0KK2xvYWRlci9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
Y29hLm1tCiBsb2FkZXIvY29jb2EvU3VicmVzb3VyY2VMb2FkZXJDb2NvYS5tbQogbG9hZGVyL2lv
cy9MZWdhY3lQcmV2aWV3TG9hZGVyLm1tCiBsb2FkZXIvbWFjL0RvY3VtZW50TG9hZGVyTWFjLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDI5ZTE5YTkxN2I1YmUwNGMzY2RmMWJlM2FhZTBmYjRiN2VkZGFjYjcuLmEyYTI0N2Fm
ZTU5MjY0MTlkMzc1MzdjZGY3NDMxZGI2NTQzMDkzNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk0MDgsNiArOTQwOCw3IEBA
CiAJCTU3RUVBQTU3MUVBMEFGQkIwMDcwMTEyNCAvKiBDb21tb25DcnlwdG9ERVJVdGlsaXRpZXMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29tbW9uQ3J5cHRvREVS
VXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdFRjVFNUYxRDIw
QzgzOTAwMTcxRTYwIC8qIFRleHRDb2RlY1JlcGxhY2VtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFRleHRDb2RlY1JlcGxhY2VtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU3RUY1RTYxMUQyMEQyODcwMDE3MUU2MCAvKiBUZXh0Q29kZWNSZXBsYWNl
bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0Q29kZWNS
ZXBsYWNlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3RjFDOEUzMjVE
QzZFRTcwMEU4RjZFQSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRD
b2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGODI3MzkxREI3MkMyMjAw
OUQyQkY0IC8qIFJzYUhhc2hlZEtleUdlblBhcmFtcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUnNhSGFzaGVkS2V5R2Vu
UGFyYW1zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGRUREM0QxREI2RDQ3
RjAwRUI5NkY1IC8qIFJzYUtleUdlblBhcmFtcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUnNhS2V5R2VuUGFyYW1zLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGRUREM0UxREI2RDU5MjAwRUI5NkY1
IC8qIENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk3MTgsNyArOTcxOSw3IEBACiAJCTZBMjJFODcyMUYxMDQy
QzQwMEY1NDZDMyAvKiBJbnNwZWN0b3JDYW52YXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5z
cGVjdG9yQ2FudmFzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkE3Mjc5ODgx
RjE2QzI5QjAwM0YzOUI4IC8qIEluc3BlY3RvclNoYWRlclByb2dyYW0uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2QTcyNzk4OTFGMTZDMjlCMDAzRjM5QjggLyogSW5zcGVjdG9y
U2hhZGVyUHJvZ3JhbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NkIwQTA3RjAyMUZBNEI1QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTZCMEEwN0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjBBMDdGMTIxRkE0
QjVDMDBENTczOTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2QjFGNDgwRjIyOTg5RUM0MDBERThCODIgLyogQ3Jvc3NTaXRlTmF2aWdhdGlvbkRh
dGFUcmFuc2Zlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5z
ZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCNEQ0MTJCMjM5ODNGODgwMDI0
OTRDMiAvKiBMb2dnZWRJblN0YXR1cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2dnZWRJblN0YXR1cy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI5MjQsNiArMjI5MjUsNyBAQAogCQkJ
Y2hpbGRyZW4gPSAoCiAJCQkJN0VEQUFGQzgxOUEyQ0JEMTAwMzRERkQxIC8qIERpc2tDYWNoZU1v
bml0b3JDb2NvYS5oICovLAogCQkJCTdFNERFMTBDMTk4QjEwQjYwMDUxQ0IwMiAvKiBEaXNrQ2Fj
aGVNb25pdG9yQ29jb2EubW0gKi8sCisJCQkJNTdGMUM4RTMyNURDNkVFNzAwRThGNkVBIC8qIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gKi8sCiAJCQkJN0U4RkFEQzMxOTlBOTVCMTAw
NzE0OTY4IC8qIFN1YnJlc291cmNlTG9hZGVyQ29jb2EubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9
IGNvY29hOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCBl
YzNkOTBiZWMyOWQzMzg3ZWJjOGIyM2FkYzYyYWZiYzczMzI4ZDU0Li5jYWY4MzQwY2M3OTQxOGM0
Yzc5NzJmMDQ1MTRjYWIwMDBlMjM0NzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNo
b3JFbGVtZW50LmNwcApAQCAtNDUyLDYgKzQ1Miw3IEBAIE9wdGlvbmFsPFByaXZhdGVDbGlja01l
YXN1cmVtZW50PiBIVE1MQW5jaG9yRWxlbWVudDo6cGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
CiAKICAgICBhdXRvIHByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQgeyBTb3VyY2VJRChhdHRyaWJ1dGlvblNvdXJjZUlELnZhbHVlKCkpLCBTb3VyY2VTaXRl
KGRvY3VtZW50UmVnaXN0cmFibGVEb21haW4pLCBBdHRyaWJ1dGVPblNpdGUoYXR0cmlidXRlT25V
UkwpIH07CiAKKyNpZiBIQVZFKFJTQV9CU1NBKQogICAgIGF1dG8gYXR0cmlidXRpb25Tb3VyY2VO
b25jZUF0dHIgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGF0dHJpYnV0aW9uc291
cmNlbm9uY2VBdHRyKTsKICAgICBpZiAoIWF0dHJpYnV0aW9uU291cmNlTm9uY2VBdHRyLmlzRW1w
dHkoKSkgewogICAgICAgICBhdXRvIGVwaGVtZXJhbE5vbmNlID0gUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlIHsgYXR0cmlidXRpb25Tb3VyY2VOb25jZUF0dHIg
fTsKQEAgLTQ2MSw2ICs0NjIsNyBAQCBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4g
SFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbgogICAgICAgICB9
CiAgICAgICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50LnNldEVwaGVtZXJhbFNvdXJjZU5vbmNl
KFdURk1vdmUoZXBoZW1lcmFsTm9uY2UpKTsKICAgICB9CisjZW5kaWYKIAogICAgIHJldHVybiBw
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCmluZGV4IDMyMDA0NzBkODdkNWY4NTBjZDQ1YWVl
Y2VjNzFkODljZWJjZWM4NGUuLmFkY2U1ZGE2ZDc2YmZjMjQ2ZTUzZGJjYTMzNjJhY2I0MGUwOWY0
ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50LmNwcApAQCAtMTQ2LDQgKzE0NiwyOCBAQCBSZWY8SlNPTjo6T2JqZWN0PiBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6anNvbigpIGNvbnN0CiAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7CiB9
CiAKKy8vIE1BUks6IC0gRnJhdWQgUHJldmVudGlvbgorI2lmIEhBVkUoUlNBX0JTU0EpCisKK3N0
YXRpYyBjb25zdGV4cHIgdWludDMyX3QgRXBoZW1lcmFsU291cmNlTm9uY2VSZXF1aXJlZE51bWJl
ck9mQnl0ZXMgPSAxNjsKKworYm9vbCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFs
U291cmNlTm9uY2U6OmlzVmFsaWQoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBJbnZlc3RpZ2F0
ZSBpZiB3ZSBjYW4gZG8gd2l0aCBhIHNpbXBsZSBsZW5ndGggY2hlY2sgaW5zdGVhZCBvZiBkZWNv
ZGluZy4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIx
OTQ1CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGRpZ2VzdDsKKyAgICBpZiAoIWJhc2U2NFVSTERlY29k
ZShub25jZSwgZGlnZXN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBkaWdl
c3Quc2l6ZSgpID09IEVwaGVtZXJhbFNvdXJjZU5vbmNlUmVxdWlyZWROdW1iZXJPZkJ5dGVzOwog
fQorCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpzZXRFcGhlbWVyYWxTb3VyY2VOb25j
ZShFcGhlbWVyYWxTb3VyY2VOb25jZSYmIG5vbmNlKQoreworICAgIGlmICghbm9uY2UuaXNWYWxp
ZCgpKQorICAgICAgICByZXR1cm47CisgICAgbV9lcGhlbWVyYWxTb3VyY2VOb25jZSA9IFdURk1v
dmUobm9uY2UpOworfQorCisjZW5kaWYgLy8gSEFWRShSU0FfQlNTQSkKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQuaAppbmRleCBhNGM5NmNhMWUwYTRkMDBiMmFhZjFjYzU2OTMzMjk3OWE5ZjgyNTIwLi5h
Nzc0NTRjMDIzNDZmODAxZTAzYWMwY2E3ZjRlNTNlNDU0YmE3NDEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaApAQCAtMzYsNiArMzYsMTAg
QEAKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKK09CSkNfQ0xBU1MgUlNBQlNTQVRva2VuUmVhZHk7CitPQkpDX0NMQVNT
IFJTQUJTU0FUb2tlbldhaXRpbmdBY3RpdmF0aW9uOworT0JKQ19DTEFTUyBSU0FCU1NBVG9rZW5C
bGluZGVyOworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFByaXZhdGVDbGlja01lYXN1
cmVtZW50IHsKQEAgLTIwMSwyOCArMjA1LDYgQEAgcHVibGljOgogICAgICAgICBzdGF0aWMgY29u
c3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOwogICAgIH07CiAK
LSAgICBzdHJ1Y3QgRXBoZW1lcmFsU291cmNlTm9uY2UgewotICAgICAgICBzdGF0aWMgY29uc3Rl
eHByIHVpbnQzMl90IFJlcXVpcmVkTnVtYmVyT2ZCeXRlcyA9IDE2OwotCi0gICAgICAgIEVwaGVt
ZXJhbFNvdXJjZU5vbmNlKCkgPSBkZWZhdWx0OwotICAgICAgICBleHBsaWNpdCBFcGhlbWVyYWxT
b3VyY2VOb25jZShjb25zdCBTdHJpbmcmIG5vbmNlU3RyaW5nKQotICAgICAgICAgICAgOiBub25j
ZSB7IG5vbmNlU3RyaW5nIH0KLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgLy8gRklY
TUU6IEludmVzdGlnYXRlIGlmIHdlIGNhbiBkbyB3aXRoIGEgc2ltcGxlIGxlbmd0aCBjaGVjayBp
bnN0ZWFkIG9mIGRlY29kaW5nLgotICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIxOTQ1Ci0gICAgICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0Ci0gICAg
ICAgIHsKLSAgICAgICAgICAgIFZlY3Rvcjx1aW50OF90PiBkaWdlc3Q7Ci0gICAgICAgICAgICBp
ZiAoIWJhc2U2NFVSTERlY29kZShub25jZSwgZGlnZXN0KSkKLSAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgICAgICByZXR1cm4gZGlnZXN0LnNpemUoKSA9PSBSZXF1aXJlZE51
bWJlck9mQnl0ZXM7Ci0gICAgICAgIH0KLQotICAgICAgICBTdHJpbmcgbm9uY2U7Ci0gICAgfTsK
LQogICAgIHN0cnVjdCBQcmlvcml0eSB7CiAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMy
X3QgTWF4RW50cm9weSA9IDYzOwogCkBAIC0yNzgsOSArMjYwLDYgQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIFJlZjxKU09OOjpPYmplY3Q+IGpzb24oKSBjb25zdDsKICAgICBjb25zdCBT
b3VyY2VTaXRlJiBzb3VyY2VTaXRlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VTaXRlOyB9Owog
ICAgIGNvbnN0IEF0dHJpYnV0ZU9uU2l0ZSYgYXR0cmlidXRlT25TaXRlKCkgY29uc3QgeyByZXR1
cm4gbV9hdHRyaWJ1dGVPblNpdGU7IH07Ci0gICAgdm9pZCBzZXRFcGhlbWVyYWxTb3VyY2VOb25j
ZShFcGhlbWVyYWxTb3VyY2VOb25jZSYmIG5vbmNlKSB7IG1fZXBoZW1lcmFsU291cmNlTm9uY2Ug
PSBXVEZNb3ZlKG5vbmNlKTsgfTsKLSAgICBPcHRpb25hbDxFcGhlbWVyYWxTb3VyY2VOb25jZT4g
ZXBoZW1lcmFsU291cmNlTm9uY2UoKSBjb25zdCB7IHJldHVybiAhbV9lcGhlbWVyYWxTb3VyY2VO
b25jZSA/IFdURjo6bnVsbG9wdCA6IG1fZXBoZW1lcmFsU291cmNlTm9uY2UtPmlzVmFsaWQoKSA/
IG1fZXBoZW1lcmFsU291cmNlTm9uY2UgOiBXVEY6Om51bGxvcHQ7IH07Ci0gICAgdm9pZCBjbGVh
ckVwaGVtZXJhbFNvdXJjZU5vbmNlKCkgeyBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlICA9IFdURjo6
bnVsbG9wdDsgfTsKICAgICBXYWxsVGltZSB0aW1lT2ZBZENsaWNrKCkgY29uc3QgeyByZXR1cm4g
bV90aW1lT2ZBZENsaWNrOyB9CiAgICAgT3B0aW9uYWw8V2FsbFRpbWU+IGVhcmxpZXN0VGltZVRv
U2VuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZWFybGllc3RUaW1lVG9TZW5kOyB9OwogICAgIHZvaWQg
c2V0RWFybGllc3RUaW1lVG9TZW5kKFdhbGxUaW1lIHRpbWUpIHsgbV9lYXJsaWVzdFRpbWVUb1Nl
bmQgPSB0aW1lOyB9CkBAIC0yOTEsNiArMjcwLDI4IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJp
bmcmIHNvdXJjZURlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VEZXNjcmlwdGlv
bjsgfQogICAgIGNvbnN0IFN0cmluZyYgcHVyY2hhc2VyKCkgY29uc3QgeyByZXR1cm4gbV9wdXJj
aGFzZXI7IH0KIAorICAgIC8vIE1BUks6IC0gRnJhdWQgUHJldmVudGlvbgorI2lmIEhBVkUoUlNB
X0JTU0EpCisgICAgc3RydWN0IEVwaGVtZXJhbFNvdXJjZU5vbmNlIHsKKyAgICAgICAgU3RyaW5n
IG5vbmNlOworCisgICAgICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNWYWxpZCgpIGNvbnN0Owor
ICAgIH07CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEVwaGVtZXJhbFNvdXJjZU5vbmNl
KEVwaGVtZXJhbFNvdXJjZU5vbmNlJiYpOworICAgIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5v
bmNlPiBlcGhlbWVyYWxTb3VyY2VOb25jZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXBoZW1lcmFsU291
cmNlTm9uY2U7IH07CisgICAgdm9pZCBjbGVhckVwaGVtZXJhbFNvdXJjZU5vbmNlKCkgeyBtX2Vw
aGVtZXJhbFNvdXJjZU5vbmNlLnJlc2V0KCk7IH07CisKKyAgICBzdHJ1Y3QgUGVyc2lzdGVudEJs
aW5kZWRUb2tlbiB7CisgICAgICAgIFN0cmluZyB0b2tlbkJhc2U2NFVSTDsKKyAgICAgICAgU3Ry
aW5nIGtleUlEQmFzZTY0VVJMOworICAgICAgICBTdHJpbmcgc2lnbmF0dXJlQmFzZTY0VVJMOwor
ICAgIH07CisKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8SlNPTjo6T2JqZWN0PiBibGluZGVk
U2VjcmV0SnNvbihjb25zdCBTdHJpbmcmIHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCk7CisgICAg
V0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8UGVyc2lzdGVudEJsaW5kZWRUb2tlbj4gY2FsY3VsYXRl
UGVyc2lzdGVudEJsaW5kZWRUb2tlbihjb25zdCBTdHJpbmcmIHNlcnZlclJlc3BvbnNlQmFzZTY0
VVJMKTsKKyNlbmRpZiAvLyBIQVZFKFJTQV9CU1NBKQorCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gZGVjb2RlKERl
Y29kZXImKTsKIApAQCAtMzA0LDkgKzMwNSwxOSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3B1
cmNoYXNlcjsKICAgICBXYWxsVGltZSBtX3RpbWVPZkFkQ2xpY2s7CiAKLSAgICBPcHRpb25hbDxF
cGhlbWVyYWxTb3VyY2VOb25jZT4gbV9lcGhlbWVyYWxTb3VyY2VOb25jZTsKICAgICBPcHRpb25h
bDxBdHRyaWJ1dGlvblRyaWdnZXJEYXRhPiBtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGE7CiAgICAg
T3B0aW9uYWw8V2FsbFRpbWU+IG1fZWFybGllc3RUaW1lVG9TZW5kOworCisjaWYgSEFWRShSU0Ff
QlNTQSkKKyAgICBzdHJ1Y3QgQmxpbmRlZFRva2VuIHsKKyAgICAgICAgUmV0YWluUHRyPFJTQUJT
U0FUb2tlbkJsaW5kZXI+IGJsaW5kZXI7CisgICAgICAgIFJldGFpblB0cjxSU0FCU1NBVG9rZW5X
YWl0aW5nQWN0aXZhdGlvbj4gd2FpdGluZ1Rva2VuOworICAgICAgICBSZXRhaW5QdHI8UlNBQlNT
QVRva2VuUmVhZHk+IHJlYWR5VG9rZW47CisgICAgfTsKKworICAgIE9wdGlvbmFsPEVwaGVtZXJh
bFNvdXJjZU5vbmNlPiBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlOworICAgIEJsaW5kZWRUb2tlbiBt
X2JsaW5kZWRUb2tlbjsKKyNlbmRpZiAvLyBIQVZFKFJTQV9CU1NBKQogfTsKIAogdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nv
Y29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY5NGUwYThh
YWQyMzAwNzU4OGIxZTRiMmJhZmM5YTRmZDM5MzViNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tCkBA
IC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQg
IlByaXZhdGVDbGlja01lYXN1cmVtZW50LmgiCisKKyNpZiBIQVZFKFJTQV9CU1NBKQorCisjaW1w
b3J0IDxDcnlwdG9LaXRDQnJpZGdpbmcvUlNBQlNTQS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1JlZlB0cjxKU09OOjpPYmplY3Q+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpibGluZGVk
U2VjcmV0SnNvbihjb25zdCBTdHJpbmcmIHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCkKK3sKKyAg
ICBpZiAoIW1fZXBoZW1lcmFsU291cmNlTm9uY2UgfHwgIW1fZXBoZW1lcmFsU291cmNlTm9uY2Ut
PmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICB7CisgICAgICAgIFZl
Y3Rvcjx1aW50OF90PiBzZXJ2ZXJQdWJsaWNLZXlEYXRhOworICAgICAgICBpZiAoIWJhc2U2NFVS
TERlY29kZShzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkwsIHNlcnZlclB1YmxpY0tleURhdGEpKQor
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIGF1dG8gc2VydmVyUHVibGljS2V5
ID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczpzZXJ2ZXJQdWJsaWNLZXlE
YXRhLmRhdGEoKSBsZW5ndGg6c2VydmVyUHVibGljS2V5RGF0YS5zaXplKCldKTsKKworICAgICAg
ICAvLyBGSVhNRSgyMjIwMTgpOiBDaGVjayBlcnJvci4KKyAgICAgICAgbV9ibGluZGVkVG9rZW4u
YmxpbmRlciA9IGFkb3B0TlMoW1tSU0FCU1NBVG9rZW5CbGluZGVyIGFsbG9jXSBpbml0V2l0aFB1
YmxpY0tleTpzZXJ2ZXJQdWJsaWNLZXkuZ2V0KCkgZXJyb3I6bnVsbHB0cl0pOworICAgICAgICBp
ZiAoIW1fYmxpbmRlZFRva2VuLmJsaW5kZXIpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICB9CisKKyAgICAvLyBGSVhNRSgyMjIwMTgpOiBDaGVjayBlcnJvci4KKyAgICBtX2JsaW5k
ZWRUb2tlbi53YWl0aW5nVG9rZW4gPSBbbV9ibGluZGVkVG9rZW4uYmxpbmRlciB0b2tlbldhaXRp
bmdBY3RpdmF0aW9uV2l0aENvbnRlbnQ6bnVsbHB0ciBlcnJvcjpudWxscHRyXTsKKyAgICBpZiAo
IW1fYmxpbmRlZFRva2VuLndhaXRpbmdUb2tlbikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisK
KyAgICBhdXRvIGJsaW5kZWRTZWNyZXQgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOworICAgIGJs
aW5kZWRTZWNyZXQtPnNldFN0cmluZygiY2xpY2tfbm9uY2UiX3MsIG1fZXBoZW1lcmFsU291cmNl
Tm9uY2UtPm5vbmNlKTsKKyAgICBibGluZGVkU2VjcmV0LT5zZXRTdHJpbmcoImJsaW5kZWRfc2Vj
cmV0Il9zLCBXVEY6OmJhc2U2NFVSTEVuY29kZShbbV9ibGluZGVkVG9rZW4ud2FpdGluZ1Rva2Vu
IGJsaW5kZWRNZXNzYWdlXS5ieXRlcywgW21fYmxpbmRlZFRva2VuLndhaXRpbmdUb2tlbiBibGlu
ZGVkTWVzc2FnZV0ubGVuZ3RoKSk7CisKKyAgICByZXR1cm4gYmxpbmRlZFNlY3JldDsKK30KKwor
YXV0byBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y2FsY3VsYXRlUGVyc2lzdGVudEJsaW5kZWRU
b2tlbihjb25zdCBTdHJpbmcmIHNlcnZlclJlc3BvbnNlQmFzZTY0VVJMKSAtPiBPcHRpb25hbDxQ
ZXJzaXN0ZW50QmxpbmRlZFRva2VuPgoreworICAgIGlmICghbV9ibGluZGVkVG9rZW4ud2FpdGlu
Z1Rva2VuKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgeworICAgICAgICBW
ZWN0b3I8dWludDhfdD4gc2VydmVyUmVzcG9uc2VEYXRhOworICAgICAgICBpZiAoIWJhc2U2NFVS
TERlY29kZShzZXJ2ZXJSZXNwb25zZUJhc2U2NFVSTCwgc2VydmVyUmVzcG9uc2VEYXRhKSkKKyAg
ICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIGF1dG8gc2VydmVyUmVzcG9u
c2UgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnNlcnZlclJlc3BvbnNl
RGF0YS5kYXRhKCkgbGVuZ3RoOnNlcnZlclJlc3BvbnNlRGF0YS5zaXplKCldKTsKKworICAgICAg
ICAvLyBGSVhNRSgyMjIwMTgpOiBDaGVjayBlcnJvci4KKyAgICAgICAgbV9ibGluZGVkVG9rZW4u
cmVhZHlUb2tlbiA9IFttX2JsaW5kZWRUb2tlbi53YWl0aW5nVG9rZW4gYWN0aXZhdGVUb2tlbldp
dGhTZXJ2ZXJSZXNwb25zZTpzZXJ2ZXJSZXNwb25zZS5nZXQoKSBlcnJvcjpudWxscHRyXTsKKyAg
ICAgICAgaWYgKCFtX2JsaW5kZWRUb2tlbi5yZWFkeVRva2VuKQorICAgICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBQZXJzaXN0ZW50QmxpbmRlZFRva2VuIHRva2Vu
OworICAgIHRva2VuLnRva2VuQmFzZTY0VVJMID0gV1RGOjpiYXNlNjRVUkxFbmNvZGUoW21fYmxp
bmRlZFRva2VuLnJlYWR5VG9rZW4gdG9rZW5Db250ZW50XS5ieXRlcywgW21fYmxpbmRlZFRva2Vu
LnJlYWR5VG9rZW4gdG9rZW5Db250ZW50XS5sZW5ndGgpOworICAgIHRva2VuLmtleUlEQmFzZTY0
VVJMID0gV1RGOjpiYXNlNjRVUkxFbmNvZGUoW21fYmxpbmRlZFRva2VuLnJlYWR5VG9rZW4ga2V5
SWRdLmJ5dGVzLCBbbV9ibGluZGVkVG9rZW4ucmVhZHlUb2tlbiBrZXlJZF0ubGVuZ3RoKTsKKyAg
ICB0b2tlbi5zaWduYXR1cmVCYXNlNjRVUkwgPSBXVEY6OmJhc2U2NFVSTEVuY29kZShbbV9ibGlu
ZGVkVG9rZW4ucmVhZHlUb2tlbiBzaWduYXR1cmVdLmJ5dGVzLCBbbV9ibGluZGVkVG9rZW4ucmVh
ZHlUb2tlbiBzaWduYXR1cmVdLmxlbmd0aCk7CisKKyAgICByZXR1cm4gdG9rZW47Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEhBVkUoUlNBX0JTU0EpCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzY5ODc3OTE5M2Q0
YjM0NTc2ZmQyOTdmMWJkZmQ2NzQ5ZGEwMmNkMS4uZTQ0Yzc1MmM4OWIxY2IwZGYwNzFmZGI5NWJj
ZTVmYTc3M2EzOTViMCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTAyLTE2ICBKaWV3ZW4gVGFuICA8amlld2Vu
X3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUENNOiBHZW5lcmF0ZSBzZWNyZXQgdG9rZW4gYW5k
IGNvcnJlc3BvbmRpbmcgdW5saW5rYWJsZSB0b2tlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMDE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
MzU4MTQxMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5j
cHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgQWRkIHRlc3RzLgor
CiAyMDIxLTAyLTE1ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIFBDTTogQWRkIGhpZ2ggZW50cm9weSBhdHRyaWJ1dGlvblNvdXJjZU5vbmNlIGF0dHJpYnV0
ZSB0byBhbmNob3IgdGFncwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKaW5kZXggN2NkNzc1YjRj
NjA0MjBlZmFlMWRlMTY3NDE4MWQwZTkxZjllNjJiMy4uOTYzYmY5N2UwM2I0NDEwY2E4MWZiYjcz
MDI4YzAxODBhYjYwYzFlMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCkBAIC0yNCw2ICsy
NCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRlc3QuaCIKIAog
I2luY2x1ZGUgPFdlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaD4KICNpbmNsdWRlIDx3
dGYvVVJMLmg+CkBAIC0zOSw2ICs0MCw5IEBAIGNvbnN0IFVSTCB3ZWJLaXRVUkwgeyB7IH0sICJo
dHRwczovL3dlYmtpdC5vcmciX3MgfTsKIGNvbnN0IFVSTCBleGFtcGxlVVJMIHsgeyB9LCAiaHR0
cHM6Ly9leGFtcGxlLmNvbSJfcyB9OwogY29uc3QgVVJMIGVtcHR5VVJMIHsgfTsKIAorY29uc3Qg
Y2hhciBzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkxbXSA9CisgICAgIk1JSUNJakFOQmdrcWhraUc5
dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBemIxZFRocnRZd1ZoNDZTakluZWdLaEFxcGJKd20x
WG5UQkN2eWJTSzh6azUzUjBBbTFoRzMzQVZGNUoxbHFZZjM2d3A2NjNHYXNjbEh0cXp2eEZaSXZE
QTFEVVNINGFael9mREhDVFR4RWVKVlBPUlMzek5OMlVqV3didG53c2g0Qm1EVGktel9jRG4wTEF6
Mkp1WnlLbHlGdDVHZ1ZMQVF2TDlIM1ZMSFU5X1hITkstdWJveVhmY0hSVHRyRG5wdTNjNnd2WDVk
ZC1BSm9MbUlRVFpCRUpmVmt4Qkd6bmsxcUtIamM2bkFTQWlyS0Zfd0pDbnV3QUs4QzZCQWNqTmN3
VVdDZUtwMFlFQ3pDWFUtLUpYZDJPRVUtUWh4UEM2N2ZhaURPaDNWMHZsZnFaTHRybGJuYW5VQ0ty
dmh3N0dhR09HWW90SXJuWnR1TmZ4QzE0ZF9YTlZkMUZTOG5IalJUSG5FZ3dfam5sU3NzZmdTdHow
dUp0Y21rZmdvSkJ2T0U0bUlScGk3aVNsUmZYTmtLc1dYMUotZ3djbkNWbzV1MHVKRVc2WDZOeXZF
R1lKOHc1QlBmd3NRdUs5eS00Wjdpa3Q5SU91Y0VIWTdUaERtaTlUTk5oSEJWajBHdTR3R29TanEz
YTZ2TDVOMTBaU0hYb3ExWGdmR1BybUhoaEw5MGNqdldvbm95T1hzVXFsWEV6VGpEMlc5ODk3US1N
eDlCVU5yR1FQcW1JeDhGNU13eFdjT3J5ZThXUnA0UTg4bjJZU1VuVjdDOGF5bGQzdjFGaDdONWpl
U3FlVm10RFZSWVRuMnNWZk5xZ1hyemdkaWdKY1FSOHZGRU51Nm56RlB3c3JYUE1hQ2lMVW5aTlVt
UTFaU0xRZVF5aFlYeEhxUkpybnVDRFdYTGtDQXdFQUFRIjsKKwogLy8gUG9zaXRpdmUgdGVzdCBj
YXNlcy4KIAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgVmFsaWRNaW5WYWx1ZXMpCkBA
IC0xMjMsMTIgKzEyNywzMiBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZENv
bnZlcnNpb25VUkxzKQogICAgIEFTU0VSVF9FUShvcHRpb25hbENvbnZlcnNpb24tPnByaW9yaXR5
LCAodWludDMyX3QpMik7CiB9CiAKKyNpZiBIQVZFKFJTQV9CU1NBKQorCiBURVNUKFByaXZhdGVD
bGlja01lYXN1cmVtZW50LCBWYWxpZFNvdXJjZU5vbmNlKQogewogICAgIGF1dG8gZXBoZW1lcmFs
Tm9uY2UgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFsU291cmNlTm9uY2UgeyAi
QUJDREVGYWJjZGVmMDEyMzQ1Njc4OSJfcyB9OwogICAgIEFTU0VSVF9UUlVFKGVwaGVtZXJhbE5v
bmNlLmlzVmFsaWQoKSk7CiB9CiAKK1RFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIFZhbGlk
QmxpbmRlZFNlY3JldCkKK3sKKyAgICBhdXRvIGVwaGVtZXJhbE5vbmNlID0gUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlIHsgIkFCQ0RFRmFiY2RlZjAxMjM0NTY3
ODkiX3MgfTsKKyAgICBFWFBFQ1RfVFJVRShlcGhlbWVyYWxOb25jZS5pc1ZhbGlkKCkpOworCisg
ICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgcGNtOworICAgIHBjbS5zZXRFcGhlbWVyYWxTb3Vy
Y2VOb25jZShXVEZNb3ZlKGVwaGVtZXJhbE5vbmNlKSk7CisKKyAgICBhdXRvIGJsaW5kZWRTZWNy
ZXQgPSBwY20uYmxpbmRlZFNlY3JldEpzb24oc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKTsKKyAg
ICBFWFBFQ1RfTk9UX05VTEwoYmxpbmRlZFNlY3JldCk7CisgICAgRVhQRUNUX1NUUkVRKGJsaW5k
ZWRTZWNyZXQtPmdldFN0cmluZygiY2xpY2tfbm9uY2UiX3MpLnV0ZjgoKS5kYXRhKCksICJBQkNE
RUZhYmNkZWYwMTIzNDU2Nzg5Iik7CisgICAgRVhQRUNUX0ZBTFNFKGJsaW5kZWRTZWNyZXQtPmdl
dFN0cmluZygiYmxpbmRlZF9zZWNyZXQiX3MpLmlzRW1wdHkoKSk7CisKKyAgICAvLyBGSVhNRSgy
MjIwMTgpOiBNb2NrIHRoZSBzZXJ2ZXIgcmVzcG9uc2UgYW5kIGNvbnRpbnVlIHRoZSB0ZXN0Lgor
fQorCisjZW5kaWYgLy8gSEFWRShSU0FfQlNTQSkKKwogLy8gTmVnYXRpdmUgdGVzdCBjYXNlcy4K
IAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZFNvdXJjZUlEKQpAQCAtMjgx
LDYgKzMwNSw4IEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRDb252ZXJz
aW9uV2l0aERpc2FsbG93ZWRVUkxDb21wb25lbnRzKQogICAgIEFTU0VSVF9GQUxTRShvcHRpb25h
bENvbnZlcnNpb24pOwogfQogCisjaWYgSEFWRShSU0FfQlNTQSkKKwogVEVTVChQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCwgSW52YWxpZFNvdXJjZU5vbmNlKQogewogICAgIC8vIEZld2VyIHRoYW4g
dGhlIHJlcXVyaWVkIG51bWJlciBvZiBieXRlcy4KQEAgLTMwMCw0ICszMjYsMjMgQEAgVEVTVChQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZFNvdXJjZU5vbmNlKQogICAgIEFTU0VSVF9G
QUxTRShlcGhlbWVyYWxOb25jZS5pc1ZhbGlkKCkpOwogfQogCitURVNUKFByaXZhdGVDbGlja01l
YXN1cmVtZW50LCBJbnZhbGlkQmxpbmRlZFNlY3JldCkKK3sKKyAgICBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCBwY207CisgICAgYXV0byBibGluZGVkU2VjcmV0ID0gcGNtLmJsaW5kZWRTZWNyZXRK
c29uKHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCk7CisgICAgRVhQRUNUX05VTEwoYmxpbmRlZFNl
Y3JldCk7CisKKyAgICBhdXRvIGVwaGVtZXJhbE5vbmNlID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlIHsgIkFCQ0RFRmFiY2RlZjAxMjM0NTY3ODkiX3MgfTsK
KyAgICBFWFBFQ1RfVFJVRShlcGhlbWVyYWxOb25jZS5pc1ZhbGlkKCkpOworICAgIHBjbS5zZXRF
cGhlbWVyYWxTb3VyY2VOb25jZShXVEZNb3ZlKGVwaGVtZXJhbE5vbmNlKSk7CisKKyAgICBibGlu
ZGVkU2VjcmV0ID0gcGNtLmJsaW5kZWRTZWNyZXRKc29uKHNlcnZlclB1YmxpY0tleUJhc2U2NFVS
TCk7CisgICAgRVhQRUNUX05PVF9OVUxMKGJsaW5kZWRTZWNyZXQpOworCisgICAgYXV0byBwZXJz
aXN0ZW50VG9rZW4gPSBwY20uY2FsY3VsYXRlUGVyc2lzdGVudEJsaW5kZWRUb2tlbihlbXB0eVN0
cmluZygpKTsKKyAgICBFWFBFQ1RfRkFMU0UocGVyc2lzdGVudFRva2VuKTsKK30KKworI2VuZGlm
IC8vIEhBVkUoUlNBX0JTU0EpCisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420605</attachid>
            <date>2021-02-16 23:56:02 -0800</date>
            <delta_ts>2021-02-17 00:48:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222019-20210216235601.patch</filename>
            <type>text/plain</type>
            <size>33913</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDUwYzU1NmNjMjZjMjU5MjcyZWY2ZjYw
Y2I3NzVhZDBiNmU4NDA2OWYuLjU2MzQ5YTQxNTE1NzkzNGEzOWExNGQ0OTAxMzg5M2QwZjZkNjdk
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5f
dGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQg
Y29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcz
NTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd3RmL1BsYXRmb3JtSGF2ZS5oOgorICAgICAgICBBZGRzIGEgY29tcGlsZSB0aW1lIGZsYWcg
Zm9yIFJTQUJTU0EuCisKIDIwMjEtMDItMTUgIFBlciBBcm5lICA8cHZvbGxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW21hY09TXSBDbG9zZSBYUEMgY29ubmVjdGlvbnMgYmVmb3JlIGVudGVyaW5n
IHNhbmRib3gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMTU0ZDExOWE5NjJkM2M5MDkzNzM4N2Y5NzViY2VjOTFl
Mjc4ZmU1Li4yYWY2MTE1MGYxMTI2ZTI5ODk0YzZlYjI3ZDFjMzE1YmQ2OTc2MzQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQgY29y
cmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzczNTgx
NDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENv
dmVyZWQgYnkgQVBJIHRlc3RzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggdXRpbGl6ZXMgUlNBQlNT
QSB0byBnZW5lcmF0ZSBzZWNyZXQgdG9rZW4gZm9yIFBDTSBmcmF1ZCBwcmV2ZW50aW9uLgorCisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZzoKKyAgICAgICAgKiBTb3Vy
Y2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgUGFwZXJ3b3JrIHRvIGxpbmsgQ3J5cHRvS2l0Q0JyaWRnaW5nLgorCisgICAg
ICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNWYWxp
ZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c2V0
RXBoZW1lcmFsU291cmNlTm9uY2UpOgorICAgICAgICAqIGxvYWRlci9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0
dHJpYnV0ZU9uU2l0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6ZXBoZW1lcmFsU291cmNlTm9uY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmNsZWFyRXBoZW1lcmFsU291cmNlTm9uY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5v
bmNlOjpFcGhlbWVyYWxTb3VyY2VOb25jZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFsU291cmNlTm9uY2U6OmlzVmFsaWQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OnNldEVwaGVtZXJhbFNvdXJjZU5vbmNlKTogRGVsZXRlZC4KKyAgICAgICAgR3JvdXBzIGZ1bmN0
aW9uYWxpdGllcyBiZWhpbmQgSEFWRV9SU0FfQlNTQS4KKworICAgICAgICAqIGxvYWRlci9jb2Nv
YS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpibGluZGVkU2VjcmV0SnNvbik6CisgICAgICAg
IChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y2FsY3VsYXRlUGVyc2lzdGVudEJs
aW5kZWRUb2tlbik6CisgICAgICAgIEludHJvZHVjZXMgbmV3IG1ldGhvZHMgdG8gZ2VuZXJhdGUg
dGhlIGJsaW5kZWQgc2VjcmV0cyBhbmQgdW5saW5rYWJsZSB0b2tlbnMuCisKIDIwMjEtMDItMTUg
IEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgUENNOiBBZGQg
aGlnaCBlbnRyb3B5IGF0dHJpYnV0aW9uU291cmNlTm9uY2UgYXR0cmlidXRlIHRvIGFuY2hvciB0
YWdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IDA1NGY2N2U2MmE5MmMwNTY0MDQwM2Q5MDIwMTRm
MjQzMzE0NzMzZmIuLjNmNjE4NjQ1YzBkYThjYTQzMGIxZWViZDliMDk3MGZiNTNiYmE5NjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC04ODQsMyArODg0LDggQEAKICNkZWZpbmUgSEFWRV9DT1JF
X0dSQVBISUNTX1JPTU1SR0JfQ09MT1JfU1BBQ0UgMQogI2RlZmluZSBIQVZFX0NPUkVfR1JBUEhJ
Q1NfWFlaX0NPTE9SX1NQQUNFIDEKICNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDApIFwKKyAgICB8fCAoUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTUw
MDAwKQorI2RlZmluZSBIQVZFX1JTQV9CU1NBIDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3Jl
L0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWcKaW5kZXggYWVjNjVjZmQ2YTFkMzQ5NjBl
ZmFmZjcxODk3ZDFlZjY0MTgyNzIzMy4uOTMyZjhlZmFmZjEzYzU3NWM1ZDRmYmQxZjYzZTZkYTEz
NWU1MDRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29y
ZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhj
Y29uZmlnCkBAIC0xMjMsNyArMTIzLDcgQEAgV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUyA9ICQo
V0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHU18kKFdLX0hBVkVfVVJMX0ZPUk1BVFRJTkcKIFdLX1VS
TF9GT1JNQVRUSU5HX0xERkxBR1NfWUVTID0gLWZyYW1ld29yayBVUkxGb3JtYXR0aW5nOwogCiAv
LyBGSVhNRTogUmVkdWNlIHRoZSBudW1iZXIgb2YgYWxsb3dhYmxlX2NsaWVudHMgPHJkYXI6Ly9w
cm9ibGVtLzMxODIzOTY5PgotT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAkKFdLX1JFTE9D
QVRBQkxFX0ZSQU1FV09SS19MREZMQUdTKSAtbHNxbGl0ZTMgLWxvYmpjIC1sQU5HTEUgLWFsbG93
YWJsZV9jbGllbnQgV2ViQ29yZVRlc3RTdXBwb3J0IC1hbGxvd2FibGVfY2xpZW50IFdlYktpdExl
Z2FjeSAtZm9yY2VfbG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvbGliUEFMLmEgLWZyYW1ld29y
ayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlQXVkaW8gLWZyYW1ld29yayBDb3JlR3JhcGhpY3Mg
LWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29yayBJT1N1
cmZhY2UgLWZyYW1ld29yayBJbWFnZUlPIC1mcmFtZXdvcmsgTWV0YWwgJChPVEhFUl9MREZMQUdT
X1BMQVRGT1JNXyQoV0tfQ09DT0FfVE9VQ0gpKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChX
S19QTEFURk9STV9OQU1FKSkgJChXS19BUFBLSVRfTERGTEFHUykgJChXS19BUFBTVVBQT1JUX0xE
RkxBR1MpICQoV0tfQVVESU9fVU5JVF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdL
X0NPUkVfVUlfTERGTEFHUykgJChXS19EQVRBX0RFVEVDVE9SU19DT1JFX0xERkxBR1MpICQoV0tf
R1JBUEhJQ1NfU0VSVklDRVNfTERGTEFHUykgJChXS19JT1NVUkZBQ0VfQUNDRUxFUkFUT1JfTERG
TEFHUykgJChXS19MSUJXRUJSVENfTERGTEFHUykgJChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19M
REZMQUdTKSAkKFdLX01PQklMRV9HRVNUQUxUX0xERkxBR1MpICQoV0tfTkVUV09SS19FWFRFTlNJ
T05fTERfRkxBR1MpICQoV0tfU1lTVEVNX0NPTkZJR1VSQVRJT05fTERGTEFHUykgJChXS19DT1JF
X0lNQUdFX0xERkxBR1MpICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUyk7CitPVEhFUl9MREZM
QUdTID0gJChpbmhlcml0ZWQpICQoV0tfUkVMT0NBVEFCTEVfRlJBTUVXT1JLX0xERkxBR1MpIC1s
c3FsaXRlMyAtbG9iamMgLWxBTkdMRSAtYWxsb3dhYmxlX2NsaWVudCBXZWJDb3JlVGVzdFN1cHBv
cnQgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0TGVnYWN5IC1mb3JjZV9sb2FkICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9saWJQQUwuYSAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVB
dWRpbyAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0IC1mcmFtZXdv
cmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIElPU3VyZmFjZSAtZnJhbWV3b3JrIEltYWdlSU8gLWZy
YW1ld29yayBNZXRhbCAtZnJhbWV3b3JrIENyeXB0b0tpdENCcmlkZ2luZyAkKE9USEVSX0xERkxB
R1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkpICQoT1RIRVJfTERGTEFHU19QTEFURk9STV8k
KFdLX1BMQVRGT1JNX05BTUUpKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAkKFdLX0FQUFNVUFBPUlRf
TERGTEFHUykgJChXS19BVURJT19VTklUX0xERkxBR1MpICQoV0tfQ0FSQk9OX0xERkxBR1MpICQo
V0tfQ09SRV9VSV9MREZMQUdTKSAkKFdLX0RBVEFfREVURUNUT1JTX0NPUkVfTERGTEFHUykgJChX
S19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0lPU1VSRkFDRV9BQ0NFTEVSQVRPUl9M
REZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZMQUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJQ0VT
X0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RBTFRfTERGTEFHUykgJChXS19ORVRXT1JLX0VYVEVO
U0lPTl9MRF9GTEFHUykgJChXS19TWVNURU1fQ09ORklHVVJBVElPTl9MREZMQUdTKSAkKFdLX0NP
UkVfSU1BR0VfTERGTEFHUykgJChXS19VUkxfRk9STUFUVElOR19MREZMQUdTKTsKIAogT1RIRVJf
TERGTEFHU19QTEFURk9STV9jb2NvYXRvdWNoID0gLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0IC1h
bGxvd2FibGVfY2xpZW50IGlUdW5lc1UgLWFsbG93YWJsZV9jbGllbnQgQ2FzYWJsYW5jYSAtYWxs
b3dhYmxlX2NsaWVudCBSZW1vdGUgLWFsbG93YWJsZV9jbGllbnQgVFZCb29rcyAtYWxsb3dhYmxl
X2NsaWVudCBEdW1wUmVuZGVyVHJlZSAtYWxsb3dhYmxlX2NsaWVudCBXZWJLaXRUZXN0UnVubmVy
IC1hbGxvd2FibGVfY2xpZW50IFRlc3RXZWJLaXRBUEk7CiBPVEhFUl9MREZMQUdTX1BMQVRGT1JN
X21hY29zeCA9IC1zdWJfbGlicmFyeSBsaWJvYmpjIC11bWJyZWxsYSBXZWJLaXQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTcw
ZTdlMTg0ZWMyNWYwNGI1ZmRhOWU5Yjg0M2QwNjA4NDRjZGY3NS4uMThkNzY0N2QwNzgzNzBlMmE2
NzI0NjVhZDU2NTk4MjZjY2NjMTliOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML1BB
TC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM2LDYgKzEzNiw4IEBACiAJCTU3MEFCOEY5
MjBBRjZFM0QwMEI4QkU4NyAvKiBOU1hQQ0Nvbm5lY3Rpb25TUEkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MEFCOEY4MjBBRjZFM0QwMEI4QkU4NyAv
KiBOU1hQQ0Nvbm5lY3Rpb25TUEkuaCAqLzsgfTsKIAkJNTcyQTEwNzgyMkI0NTZGNTAwRjQxMEM4
IC8qIEF1dGhLaXRTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU3MkExMDc3MjJCNDU2RjUwMEY0MTBDOCAvKiBBdXRoS2l0U1BJLmggKi87IH07CiAJ
CTU3NkNBOUQ2MjJCODU0QUIwMDMwMTQzQyAvKiBBcHBTU09TUEkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NkNBOUQ1MjJCODU0QUIwMDMwMTQzQyAv
KiBBcHBTU09TUEkuaCAqLzsgfTsKKwkJNTdGMUM5MDkyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0
b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1N0YxQzkwNzI1RENGMENGMDBFOEY2RUEgLyogQ3J5cHRvS2l0Q0JyaWRn
aW5nU29mdExpbmsuaCAqLzsgfTsKKwkJNTdGMUM5MEEyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0
b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTdGMUM5MDgyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlk
Z2luZ1NvZnRMaW5rLm1tICovOyB9OwogCQk1N0ZEMzE4QTIyQjM1OTNFMDA4RDBFOEIgLyogQXBw
U1NPU29mdExpbmsubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1N0ZEMzE4OTIyQjM1OTNFMDA4RDBFOEIgLyogQXBwU1NPU29mdExpbmsubW0gKi87IH07
CiAJCTU3RkQzMThCMjJCMzU5ODkwMDhEMEU4QiAvKiBBcHBTU09Tb2Z0TGluay5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGRDMxODgyMkIzNTkyRjAw
OEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLmggKi87IH07CiAJCTVDN0M3ODczMjNBQzNFNzcwMDY1
RjQ3RSAvKiBNYW5hZ2VkQ29uZmlndXJhdGlvblNvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzdDNzg3MTIzQUMzRTc3MDA2NUY0N0UgLyog
TWFuYWdlZENvbmZpZ3VyYXRpb25Tb2Z0TGluay5oICovOyB9OwpAQCAtMzM1LDYgKzMzNyw4IEBA
CiAJCTU3MEFCOEY4MjBBRjZFM0QwMEI4QkU4NyAvKiBOU1hQQ0Nvbm5lY3Rpb25TUEkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTlNYUENDb25uZWN0aW9uU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU3MkExMDc3MjJCNDU2RjUwMEY0MTBDOCAvKiBBdXRoS2l0U1BJLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEF1dGhLaXRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc2Q0E5
RDUyMkI4NTRBQjAwMzAxNDNDIC8qIEFwcFNTT1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBTU09T
UEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTdGMUM5MDcyNURDRjBDRjAwRThG
NkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0
b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3
RjFDOTA4MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0ZEMzE4ODIyQjM1OTJGMDA4RDBFOEIgLyogQXBw
U1NPU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwU1NPU29m
dExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGRDMxODkyMkIzNTkzRTAw
OEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gQXBwU1NPU29mdExpbmsubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTVDN0M3ODcxMjNBQzNFNzcwMDY1RjQ3RSAvKiBNYW5hZ2VkQ29uZmlndXJhdGlvblNvZnRM
aW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hbmFnZWRDb25maWd1cmF0
aW9uU29mdExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY4MSw2ICs2ODUs
OCBAQAogCQkJCTU3RkQzMTg5MjJCMzU5M0UwMDhEMEU4QiAvKiBBcHBTU09Tb2Z0TGluay5tbSAq
LywKIAkJCQkwNzdFODdCMDIyNkE0NjAyMDBBMkFGRjAgLyogQVZGb3VuZGF0aW9uU29mdExpbmsu
aCAqLywKIAkJCQkwNzdFODdBRjIyNkE0NjAyMDBBMkFGRjAgLyogQVZGb3VuZGF0aW9uU29mdExp
bmsubW0gKi8sCisJCQkJNTdGMUM5MDcyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlk
Z2luZ1NvZnRMaW5rLmggKi8sCisJCQkJNTdGMUM5MDgyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0
b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1tICovLAogCQkJCUY0NDI5MTY2MUZBNTI3MDUwMDJDQzkz
RSAvKiBGaWxlU2l6ZUZvcm1hdHRlckNvY29hLm1tICovLAogCQkJCTFDMDIyRUZDMjJDRkU4RTAw
MDZERjAxQiAvKiBHdW56aXAuY3BwICovLAogCQkJCUNEQUNCMzVFMjM4NzNFNDgwMDE4RDdDRSAv
KiBNZWRpYVRvb2xib3hTb2Z0TGluay5jcHAgKi8sCkBAIC04MTgsNiArODI0LDcgQEAKIAkJCQkx
Q0NFRTRGNTIwRDg3MTkzMDA0N0IwOTcgLyogQ29yZVVJU1BJLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwQzVBRjkxOTFGNDNBNEM3MDAyRUFDMDIgLyogQ29yZVVJU1BJLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQzA5RDA1MzFFMzFDNDQxMDA3MjVGMTggLyogQ3J5cHRvRGlnZXN0LmggaW4gSGVhZGVy
cyAqLywKKwkJCQk1N0YxQzkwOTI1RENGMENGMDBFOEY2RUEgLyogQ3J5cHRvS2l0Q0JyaWRnaW5n
U29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTQxMUYzQkVCNDkwMERCQzMxNyAv
KiBEYXRhRGV0ZWN0b3JzQ29yZVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM3Nzg1OEExRjQ1
MTMwRjAwRjRFQkI2IC8qIERhdGFEZXRlY3RvcnNTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBD
NUFGOTFBMUY0M0E0QzcwMDJFQUMwMiAvKiBEYXRhRGV0ZWN0b3JzVUlTUEkuaCBpbiBIZWFkZXJz
ICovLApAQCAtMTAyNiw2ICsxMDMzLDcgQEAKIAkJCQkwQzVGRkYwRjFGNzhEOURBMDA5RUZGMUEg
LyogQ2xvY2tDTS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBDRjk5Q0E4MUY3Mzg0MzcwMDdFRTc5
MyAvKiBDb3JlTWVkaWFTb2Z0TGluay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQzA5RDA1NjFF
MzFDNDY1MDA3MjVGMTggLyogQ3J5cHRvRGlnZXN0Q29tbW9uQ3J5cHRvLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTU3RjFDOTBBMjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdT
b2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExMTc1QjU4MUY2QjQ3MDUwMEM0QjlGMCAv
KiBEZWZhdWx0U2VhcmNoUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ0MjkxNjQx
RkE1MjY3MDAwMkNDOTNFIC8qIEZpbGVTaXplRm9ybWF0dGVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUY0NDI5MTY4MUZBNTI3MDUwMDJDQzkzRSAvKiBGaWxlU2l6ZUZvcm1hdHRlckNvY29hLm1t
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29h
L0NyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Nv
Y29hL0NyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjk5MGQ0ZmU1ZjNh
ZWUzYTYzOGFiZTAxNTJjNDY1MDMzOTMwOWY2OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsuaApAQCAtMCww
ICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBIQVZFKFJTQV9CU1NB
KQorCisjaW1wb3J0IDxDcnlwdG9LaXRDQnJpZGdpbmcvUlNBQlNTQS5oPgorI2ltcG9ydCA8d3Rm
L1NvZnRMaW5raW5nLmg+CisKK1NPRlRfTElOS19GUkFNRVdPUktfRk9SX0hFQURFUihQQUwsIENy
eXB0b0tpdENCcmlkZ2luZyk7CisKK1NPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgUlNB
QlNTQVRva2VuQmxpbmRlcik7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbSBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsubW0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmViYzc1YWNjM2RkNzQ0OGQwYTEwOTU3OGRiZjMwMjI0ZDcyYjQ5YQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRvS2l0Q0JyaWRnaW5nU29m
dExpbmsubW0KQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2lmIEhBVkUoUlNBX0JTU0EpCisKKyNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgor
CitTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUktfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENyeXB0b0tpdENCcmlkZ2luZywgUEFMX0VYUE9SVCk7CisKK1NPRlRfTElOS19DTEFTU19GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ3J5cHRvS2l0Q0JyaWRnaW5nLCBSU0FCU1NBVG9rZW5C
bGluZGVyLCBQQUxfRVhQT1JUKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRl
eCAyZjBmZGVmZTkzYWVjNmVlZmNmZTg3MWNlZmVlYzlmZTQ1ODI4NzYzLi41NWUzOTAyNmNmYjQ1
MzMyYmEwNzkwNzc4MGQwNmJjZjQ2ZDlkNjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAg
LTE2Nyw2ICsxNjcsNyBAQCBpbnNwZWN0b3IvbWFjL1BhZ2VEZWJ1Z2dlck1hYy5tbQogbG9hZGVy
L2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAKIGxvYWRlci9hcmNoaXZlL2NmL0xlZ2Fj
eVdlYkFyY2hpdmVNYWMubW0KIGxvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0K
K2xvYWRlci9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tCiBsb2FkZXIvY29j
b2EvU3VicmVzb3VyY2VMb2FkZXJDb2NvYS5tbQogbG9hZGVyL2lvcy9MZWdhY3lQcmV2aWV3TG9h
ZGVyLm1tCiBsb2FkZXIvbWFjL0RvY3VtZW50TG9hZGVyTWFjLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI5ZTE5YTkxN2I1
YmUwNGMzY2RmMWJlM2FhZTBmYjRiN2VkZGFjYjcuLmEyYTI0N2FmZTU5MjY0MTlkMzc1MzdjZGY3
NDMxZGI2NTQzMDkzNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTk0MDgsNiArOTQwOCw3IEBACiAJCTU3RUVBQTU3MUVBMEFG
QkIwMDcwMTEyNCAvKiBDb21tb25DcnlwdG9ERVJVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29tbW9uQ3J5cHRvREVSVXRpbGl0aWVzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdFRjVFNUYxRDIwQzgzOTAwMTcxRTYwIC8qIFRl
eHRDb2RlY1JlcGxhY2VtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRl
eHRDb2RlY1JlcGxhY2VtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RUY1
RTYxMUQyMEQyODcwMDE3MUU2MCAvKiBUZXh0Q29kZWNSZXBsYWNlbWVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0Q29kZWNSZXBsYWNlbWVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3RjFDOEUzMjVEQzZFRTcwMEU4RjZFQSAvKiBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGODI3MzkxREI3MkMyMjAwOUQyQkY0IC8qIFJzYUhhc2hl
ZEtleUdlblBhcmFtcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUnNhSGFzaGVkS2V5R2VuUGFyYW1zLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGRUREM0QxREI2RDQ3RjAwRUI5NkY1IC8qIFJzYUtl
eUdlblBhcmFtcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gUnNhS2V5R2VuUGFyYW1zLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTdGRUREM0UxREI2RDU5MjAwRUI5NkY1IC8qIENyeXB0b0FsZ29yaXRo
bVJzYUtleUdlblBhcmFtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlw
dG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTk3MTgsNyArOTcxOSw3IEBACiAJCTZBMjJFODcyMUYxMDQyQzQwMEY1NDZDMyAvKiBJbnNw
ZWN0b3JDYW52YXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yQ2FudmFzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkE3Mjc5ODgxRjE2QzI5QjAwM0YzOUI4IC8q
IEluc3BlY3RvclNoYWRlclByb2dyYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk2QTcyNzk4OTFGMTZDMjlCMDAzRjM5QjggLyogSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JTaGFkZXJQcm9n
cmFtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkIwQTA3RjAyMUZBNEI1QzAw
RDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByaXZh
dGVDbGlja01lYXN1cmVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZCMEEw
N0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjBBMDdGMTIxRkE0QjVDMDBENTczOTEgLyogUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjFGNDgwRjIy
OTg5RUM0MDBERThCODIgLyogQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTZCNEQ0MTJCMjM5ODNGODgwMDI0OTRDMiAvKiBMb2dnZWRJblN0
YXR1cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBMb2dnZWRJblN0YXR1cy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjI5MjQsNiArMjI5MjUsNyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJ
N0VEQUFGQzgxOUEyQ0JEMTAwMzRERkQxIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5oICovLAog
CQkJCTdFNERFMTBDMTk4QjEwQjYwMDUxQ0IwMiAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0g
Ki8sCisJCQkJNTdGMUM4RTMyNURDNkVFNzAwRThGNkVBIC8qIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q29jb2EubW0gKi8sCiAJCQkJN0U4RkFEQzMxOTlBOTVCMTAwNzE0OTY4IC8qIFN1YnJlc291
cmNlTG9hZGVyQ29jb2EubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNvY29hOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCBlYzNkOTBiZWMyOWQzMzg3ZWJj
OGIyM2FkYzYyYWZiYzczMzI4ZDU0Li5jYWY4MzQwY2M3OTQxOGM0Yzc5NzJmMDQ1MTRjYWIwMDBl
MjM0NzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApAQCAt
NDUyLDYgKzQ1Miw3IEBAIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBIVE1MQW5j
aG9yRWxlbWVudDo6cGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVuCiAKICAgICBhdXRvIHByaXZh
dGVDbGlja01lYXN1cmVtZW50ID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgeyBTb3VyY2VJRChh
dHRyaWJ1dGlvblNvdXJjZUlELnZhbHVlKCkpLCBTb3VyY2VTaXRlKGRvY3VtZW50UmVnaXN0cmFi
bGVEb21haW4pLCBBdHRyaWJ1dGVPblNpdGUoYXR0cmlidXRlT25VUkwpIH07CiAKKyNpZiBIQVZF
KFJTQV9CU1NBKQogICAgIGF1dG8gYXR0cmlidXRpb25Tb3VyY2VOb25jZUF0dHIgPSBhdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGF0dHJpYnV0aW9uc291cmNlbm9uY2VBdHRyKTsKICAg
ICBpZiAoIWF0dHJpYnV0aW9uU291cmNlTm9uY2VBdHRyLmlzRW1wdHkoKSkgewogICAgICAgICBh
dXRvIGVwaGVtZXJhbE5vbmNlID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNv
dXJjZU5vbmNlIHsgYXR0cmlidXRpb25Tb3VyY2VOb25jZUF0dHIgfTsKQEAgLTQ2MSw2ICs0NjIs
NyBAQCBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gSFRNTEFuY2hvckVsZW1lbnQ6
OnBhcnNlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbgogICAgICAgICB9CiAgICAgICAgIHByaXZhdGVD
bGlja01lYXN1cmVtZW50LnNldEVwaGVtZXJhbFNvdXJjZU5vbmNlKFdURk1vdmUoZXBoZW1lcmFs
Tm9uY2UpKTsKICAgICB9CisjZW5kaWYKIAogICAgIHJldHVybiBwcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQuY3BwCmluZGV4IDMyMDA0NzBkODdkNWY4NTBjZDQ1YWVlY2VjNzFkODljZWJjZWM4NGUu
LmFkY2U1ZGE2ZDc2YmZjMjQ2ZTUzZGJjYTMzNjJhY2I0MGUwOWY0ZWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcApAQCAtMTQ2LDQg
KzE0NiwyOCBAQCBSZWY8SlNPTjo6T2JqZWN0PiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6anNv
bigpIGNvbnN0CiAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7CiB9CiAKKy8vIE1BUks6IC0gRnJh
dWQgUHJldmVudGlvbgorI2lmIEhBVkUoUlNBX0JTU0EpCisKK3N0YXRpYyBjb25zdGV4cHIgdWlu
dDMyX3QgRXBoZW1lcmFsU291cmNlTm9uY2VSZXF1aXJlZE51bWJlck9mQnl0ZXMgPSAxNjsKKwor
Ym9vbCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFsU291cmNlTm9uY2U6OmlzVmFs
aWQoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBJbnZlc3RpZ2F0ZSBpZiB3ZSBjYW4gZG8gd2l0
aCBhIHNpbXBsZSBsZW5ndGggY2hlY2sgaW5zdGVhZCBvZiBkZWNvZGluZy4KKyAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxOTQ1CisgICAgVmVjdG9yPHVp
bnQ4X3Q+IGRpZ2VzdDsKKyAgICBpZiAoIWJhc2U2NFVSTERlY29kZShub25jZSwgZGlnZXN0KSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBkaWdlc3Quc2l6ZSgpID09IEVwaGVt
ZXJhbFNvdXJjZU5vbmNlUmVxdWlyZWROdW1iZXJPZkJ5dGVzOwogfQorCit2b2lkIFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpzZXRFcGhlbWVyYWxTb3VyY2VOb25jZShFcGhlbWVyYWxTb3VyY2VO
b25jZSYmIG5vbmNlKQoreworICAgIGlmICghbm9uY2UuaXNWYWxpZCgpKQorICAgICAgICByZXR1
cm47CisgICAgbV9lcGhlbWVyYWxTb3VyY2VOb25jZSA9IFdURk1vdmUobm9uY2UpOworfQorCisj
ZW5kaWYgLy8gSEFWRShSU0FfQlNTQSkKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaAppbmRleCBhNGM5
NmNhMWUwYTRkMDBiMmFhZjFjYzU2OTMzMjk3OWE5ZjgyNTIwLi5hNzc0NTRjMDIzNDZmODAxZTAz
YWMwY2E3ZjRlNTNlNDU0YmE3NDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQuaApAQCAtMzYsNiArMzYsMTAgQEAKICNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKK09C
SkNfQ0xBU1MgUlNBQlNTQVRva2VuUmVhZHk7CitPQkpDX0NMQVNTIFJTQUJTU0FUb2tlbldhaXRp
bmdBY3RpdmF0aW9uOworT0JKQ19DTEFTUyBSU0FCU1NBVG9rZW5CbGluZGVyOworCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFByaXZhdGVDbGlja01lYXN1cmVtZW50IHsKQEAgLTIwMSwy
OCArMjA1LDYgQEAgcHVibGljOgogICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21w
YXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOwogICAgIH07CiAKLSAgICBzdHJ1Y3QgRXBoZW1l
cmFsU291cmNlTm9uY2UgewotICAgICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IFJlcXVp
cmVkTnVtYmVyT2ZCeXRlcyA9IDE2OwotCi0gICAgICAgIEVwaGVtZXJhbFNvdXJjZU5vbmNlKCkg
PSBkZWZhdWx0OwotICAgICAgICBleHBsaWNpdCBFcGhlbWVyYWxTb3VyY2VOb25jZShjb25zdCBT
dHJpbmcmIG5vbmNlU3RyaW5nKQotICAgICAgICAgICAgOiBub25jZSB7IG5vbmNlU3RyaW5nIH0K
LSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgLy8gRklYTUU6IEludmVzdGlnYXRlIGlm
IHdlIGNhbiBkbyB3aXRoIGEgc2ltcGxlIGxlbmd0aCBjaGVjayBpbnN0ZWFkIG9mIGRlY29kaW5n
LgotICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIx
OTQ1Ci0gICAgICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAg
IFZlY3Rvcjx1aW50OF90PiBkaWdlc3Q7Ci0gICAgICAgICAgICBpZiAoIWJhc2U2NFVSTERlY29k
ZShub25jZSwgZGlnZXN0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAg
ICAgICByZXR1cm4gZGlnZXN0LnNpemUoKSA9PSBSZXF1aXJlZE51bWJlck9mQnl0ZXM7Ci0gICAg
ICAgIH0KLQotICAgICAgICBTdHJpbmcgbm9uY2U7Ci0gICAgfTsKLQogICAgIHN0cnVjdCBQcmlv
cml0eSB7CiAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgTWF4RW50cm9weSA9IDYz
OwogCkBAIC0yNzgsOSArMjYwLDYgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxK
U09OOjpPYmplY3Q+IGpzb24oKSBjb25zdDsKICAgICBjb25zdCBTb3VyY2VTaXRlJiBzb3VyY2VT
aXRlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VTaXRlOyB9OwogICAgIGNvbnN0IEF0dHJpYnV0
ZU9uU2l0ZSYgYXR0cmlidXRlT25TaXRlKCkgY29uc3QgeyByZXR1cm4gbV9hdHRyaWJ1dGVPblNp
dGU7IH07Ci0gICAgdm9pZCBzZXRFcGhlbWVyYWxTb3VyY2VOb25jZShFcGhlbWVyYWxTb3VyY2VO
b25jZSYmIG5vbmNlKSB7IG1fZXBoZW1lcmFsU291cmNlTm9uY2UgPSBXVEZNb3ZlKG5vbmNlKTsg
fTsKLSAgICBPcHRpb25hbDxFcGhlbWVyYWxTb3VyY2VOb25jZT4gZXBoZW1lcmFsU291cmNlTm9u
Y2UoKSBjb25zdCB7IHJldHVybiAhbV9lcGhlbWVyYWxTb3VyY2VOb25jZSA/IFdURjo6bnVsbG9w
dCA6IG1fZXBoZW1lcmFsU291cmNlTm9uY2UtPmlzVmFsaWQoKSA/IG1fZXBoZW1lcmFsU291cmNl
Tm9uY2UgOiBXVEY6Om51bGxvcHQ7IH07Ci0gICAgdm9pZCBjbGVhckVwaGVtZXJhbFNvdXJjZU5v
bmNlKCkgeyBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlICA9IFdURjo6bnVsbG9wdDsgfTsKICAgICBX
YWxsVGltZSB0aW1lT2ZBZENsaWNrKCkgY29uc3QgeyByZXR1cm4gbV90aW1lT2ZBZENsaWNrOyB9
CiAgICAgT3B0aW9uYWw8V2FsbFRpbWU+IGVhcmxpZXN0VGltZVRvU2VuZCgpIGNvbnN0IHsgcmV0
dXJuIG1fZWFybGllc3RUaW1lVG9TZW5kOyB9OwogICAgIHZvaWQgc2V0RWFybGllc3RUaW1lVG9T
ZW5kKFdhbGxUaW1lIHRpbWUpIHsgbV9lYXJsaWVzdFRpbWVUb1NlbmQgPSB0aW1lOyB9CkBAIC0y
OTEsNiArMjcwLDI4IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZURlc2NyaXB0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VEZXNjcmlwdGlvbjsgfQogICAgIGNvbnN0IFN0
cmluZyYgcHVyY2hhc2VyKCkgY29uc3QgeyByZXR1cm4gbV9wdXJjaGFzZXI7IH0KIAorICAgIC8v
IE1BUks6IC0gRnJhdWQgUHJldmVudGlvbgorI2lmIEhBVkUoUlNBX0JTU0EpCisgICAgc3RydWN0
IEVwaGVtZXJhbFNvdXJjZU5vbmNlIHsKKyAgICAgICAgU3RyaW5nIG5vbmNlOworCisgICAgICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNWYWxpZCgpIGNvbnN0OworICAgIH07CisKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldEVwaGVtZXJhbFNvdXJjZU5vbmNlKEVwaGVtZXJhbFNvdXJjZU5v
bmNlJiYpOworICAgIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5vbmNlPiBlcGhlbWVyYWxTb3Vy
Y2VOb25jZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXBoZW1lcmFsU291cmNlTm9uY2U7IH07CisgICAg
dm9pZCBjbGVhckVwaGVtZXJhbFNvdXJjZU5vbmNlKCkgeyBtX2VwaGVtZXJhbFNvdXJjZU5vbmNl
LnJlc2V0KCk7IH07CisKKyAgICBzdHJ1Y3QgUGVyc2lzdGVudEJsaW5kZWRUb2tlbiB7CisgICAg
ICAgIFN0cmluZyB0b2tlbkJhc2U2NFVSTDsKKyAgICAgICAgU3RyaW5nIGtleUlEQmFzZTY0VVJM
OworICAgICAgICBTdHJpbmcgc2lnbmF0dXJlQmFzZTY0VVJMOworICAgIH07CisKKyAgICBXRUJD
T1JFX0VYUE9SVCBSZWZQdHI8SlNPTjo6T2JqZWN0PiBibGluZGVkU2VjcmV0SnNvbihjb25zdCBT
dHJpbmcmIHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCk7CisgICAgV0VCQ09SRV9FWFBPUlQgT3B0
aW9uYWw8UGVyc2lzdGVudEJsaW5kZWRUb2tlbj4gY2FsY3VsYXRlUGVyc2lzdGVudEJsaW5kZWRU
b2tlbihjb25zdCBTdHJpbmcmIHNlcnZlclJlc3BvbnNlQmFzZTY0VVJMKTsKKyNlbmRpZiAvLyBI
QVZFKFJTQV9CU1NBKQorCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUo
RW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRp
b25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gZGVjb2RlKERlY29kZXImKTsKIApAQCAtMzA0
LDkgKzMwNSwxOSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3B1cmNoYXNlcjsKICAgICBXYWxs
VGltZSBtX3RpbWVPZkFkQ2xpY2s7CiAKLSAgICBPcHRpb25hbDxFcGhlbWVyYWxTb3VyY2VOb25j
ZT4gbV9lcGhlbWVyYWxTb3VyY2VOb25jZTsKICAgICBPcHRpb25hbDxBdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhPiBtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGE7CiAgICAgT3B0aW9uYWw8V2FsbFRpbWU+
IG1fZWFybGllc3RUaW1lVG9TZW5kOworCisjaWYgSEFWRShSU0FfQlNTQSkKKyAgICBzdHJ1Y3Qg
QmxpbmRlZFRva2VuIHsKKyAgICAgICAgUmV0YWluUHRyPFJTQUJTU0FUb2tlbkJsaW5kZXI+IGJs
aW5kZXI7CisgICAgICAgIFJldGFpblB0cjxSU0FCU1NBVG9rZW5XYWl0aW5nQWN0aXZhdGlvbj4g
d2FpdGluZ1Rva2VuOworICAgICAgICBSZXRhaW5QdHI8UlNBQlNTQVRva2VuUmVhZHk+IHJlYWR5
VG9rZW47CisgICAgfTsKKworICAgIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5vbmNlPiBtX2Vw
aGVtZXJhbFNvdXJjZU5vbmNlOworICAgIEJsaW5kZWRUb2tlbiBtX2JsaW5kZWRUb2tlbjsKKyNl
bmRpZiAvLyBIQVZFKFJTQV9CU1NBKQogfTsKIAogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50Q29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTU1ZjM1ODZhZmU5MDdkYzNmZDA0OTUzY2U1
ZGY1N2YzZjhmYTMyNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
b2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tCkBAIC0wLDAgKzEsOTEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlByaXZhdGVDbGlja01lYXN1
cmVtZW50LmgiCisKKyNpZiBIQVZFKFJTQV9CU1NBKQorCisjaW1wb3J0IDxwYWwvY29jb2EvQ3J5
cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWZQ
dHI8SlNPTjo6T2JqZWN0PiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6YmxpbmRlZFNlY3JldEpz
b24oY29uc3QgU3RyaW5nJiBzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkwpCit7CisgICAgaWYgKCFt
X2VwaGVtZXJhbFNvdXJjZU5vbmNlIHx8ICFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5pc1ZhbGlk
KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgeworICAgICAgICBWZWN0b3I8dWlu
dDhfdD4gc2VydmVyUHVibGljS2V5RGF0YTsKKyAgICAgICAgaWYgKCFiYXNlNjRVUkxEZWNvZGUo
c2VydmVyUHVibGljS2V5QmFzZTY0VVJMLCBzZXJ2ZXJQdWJsaWNLZXlEYXRhKSkKKyAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgICAgICBhdXRvIHNlcnZlclB1YmxpY0tleSA9IGFkb3B0
TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6c2VydmVyUHVibGljS2V5RGF0YS5kYXRh
KCkgbGVuZ3RoOnNlcnZlclB1YmxpY0tleURhdGEuc2l6ZSgpXSk7CisKKyAgICAgICAgLy8gRklY
TUUoMjIyMDE4KTogQ2hlY2sgZXJyb3IuCisgICAgICAgIG1fYmxpbmRlZFRva2VuLmJsaW5kZXIg
PSBhZG9wdE5TKFtQQUw6OmFsbG9jUlNBQlNTQVRva2VuQmxpbmRlckluc3RhbmNlKCkgaW5pdFdp
dGhQdWJsaWNLZXk6c2VydmVyUHVibGljS2V5LmdldCgpIGVycm9yOm51bGxwdHJdKTsKKyAgICAg
ICAgaWYgKCFtX2JsaW5kZWRUb2tlbi5ibGluZGVyKQorICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgfQorCisgICAgLy8gRklYTUUoMjIyMDE4KTogQ2hlY2sgZXJyb3IuCisgICAgbV9i
bGluZGVkVG9rZW4ud2FpdGluZ1Rva2VuID0gW21fYmxpbmRlZFRva2VuLmJsaW5kZXIgdG9rZW5X
YWl0aW5nQWN0aXZhdGlvbldpdGhDb250ZW50Om51bGxwdHIgZXJyb3I6bnVsbHB0cl07CisgICAg
aWYgKCFtX2JsaW5kZWRUb2tlbi53YWl0aW5nVG9rZW4pCisgICAgICAgIHJldHVybiBudWxscHRy
OworCisgICAgYXV0byBibGluZGVkU2VjcmV0ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKKyAg
ICBibGluZGVkU2VjcmV0LT5zZXRTdHJpbmcoImNsaWNrX25vbmNlIl9zLCBtX2VwaGVtZXJhbFNv
dXJjZU5vbmNlLT5ub25jZSk7CisgICAgYmxpbmRlZFNlY3JldC0+c2V0U3RyaW5nKCJibGluZGVk
X3NlY3JldCJfcywgV1RGOjpiYXNlNjRVUkxFbmNvZGUoW21fYmxpbmRlZFRva2VuLndhaXRpbmdU
b2tlbiBibGluZGVkTWVzc2FnZV0uYnl0ZXMsIFttX2JsaW5kZWRUb2tlbi53YWl0aW5nVG9rZW4g
YmxpbmRlZE1lc3NhZ2VdLmxlbmd0aCkpOworCisgICAgcmV0dXJuIGJsaW5kZWRTZWNyZXQ7Cit9
CisKK2F1dG8gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmNhbGN1bGF0ZVBlcnNpc3RlbnRCbGlu
ZGVkVG9rZW4oY29uc3QgU3RyaW5nJiBzZXJ2ZXJSZXNwb25zZUJhc2U2NFVSTCkgLT4gT3B0aW9u
YWw8UGVyc2lzdGVudEJsaW5kZWRUb2tlbj4KK3sKKyAgICBpZiAoIW1fYmxpbmRlZFRva2VuLndh
aXRpbmdUb2tlbikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHsKKyAgICAg
ICAgVmVjdG9yPHVpbnQ4X3Q+IHNlcnZlclJlc3BvbnNlRGF0YTsKKyAgICAgICAgaWYgKCFiYXNl
NjRVUkxEZWNvZGUoc2VydmVyUmVzcG9uc2VCYXNlNjRVUkwsIHNlcnZlclJlc3BvbnNlRGF0YSkp
CisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgICAgICBhdXRvIHNlcnZlclJl
c3BvbnNlID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczpzZXJ2ZXJSZXNw
b25zZURhdGEuZGF0YSgpIGxlbmd0aDpzZXJ2ZXJSZXNwb25zZURhdGEuc2l6ZSgpXSk7CisKKyAg
ICAgICAgLy8gRklYTUUoMjIyMDE4KTogQ2hlY2sgZXJyb3IuCisgICAgICAgIG1fYmxpbmRlZFRv
a2VuLnJlYWR5VG9rZW4gPSBbbV9ibGluZGVkVG9rZW4ud2FpdGluZ1Rva2VuIGFjdGl2YXRlVG9r
ZW5XaXRoU2VydmVyUmVzcG9uc2U6c2VydmVyUmVzcG9uc2UuZ2V0KCkgZXJyb3I6bnVsbHB0cl07
CisgICAgICAgIGlmICghbV9ibGluZGVkVG9rZW4ucmVhZHlUb2tlbikKKyAgICAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisgICAgfQorCisgICAgUGVyc2lzdGVudEJsaW5kZWRUb2tlbiB0
b2tlbjsKKyAgICB0b2tlbi50b2tlbkJhc2U2NFVSTCA9IFdURjo6YmFzZTY0VVJMRW5jb2RlKFtt
X2JsaW5kZWRUb2tlbi5yZWFkeVRva2VuIHRva2VuQ29udGVudF0uYnl0ZXMsIFttX2JsaW5kZWRU
b2tlbi5yZWFkeVRva2VuIHRva2VuQ29udGVudF0ubGVuZ3RoKTsKKyAgICB0b2tlbi5rZXlJREJh
c2U2NFVSTCA9IFdURjo6YmFzZTY0VVJMRW5jb2RlKFttX2JsaW5kZWRUb2tlbi5yZWFkeVRva2Vu
IGtleUlkXS5ieXRlcywgW21fYmxpbmRlZFRva2VuLnJlYWR5VG9rZW4ga2V5SWRdLmxlbmd0aCk7
CisgICAgdG9rZW4uc2lnbmF0dXJlQmFzZTY0VVJMID0gV1RGOjpiYXNlNjRVUkxFbmNvZGUoW21f
YmxpbmRlZFRva2VuLnJlYWR5VG9rZW4gc2lnbmF0dXJlXS5ieXRlcywgW21fYmxpbmRlZFRva2Vu
LnJlYWR5VG9rZW4gc2lnbmF0dXJlXS5sZW5ndGgpOworCisgICAgcmV0dXJuIHRva2VuOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBIQVZFKFJTQV9CU1NBKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc2OTg3Nzkx
OTNkNGIzNDU3NmZkMjk3ZjFiZGZkNjc0OWRhMDJjZDEuLmU0NGM3NTJjODliMWNiMGRmMDcxZmRi
OTViY2U1ZmE3NzNhMzk1YjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wMi0xNiAgSmlld2VuIFRhbiAgPGpp
ZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogR2VuZXJhdGUgc2VjcmV0IHRva2Vu
IGFuZCBjb3JyZXNwb25kaW5nIHVubGlua2FibGUgdG9rZW4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjAxOQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzM1ODE0MTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgIEFkZCB0ZXN0
cy4KKwogMjAyMS0wMi0xNSAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBQQ006IEFkZCBoaWdoIGVudHJvcHkgYXR0cmlidXRpb25Tb3VyY2VOb25jZSBhdHRy
aWJ1dGUgdG8gYW5jaG9yIHRhZ3MKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCmluZGV4IDdjZDc3
NWI0YzYwNDIwZWZhZTFkZTE2NzQxODFkMGU5MWY5ZTYyYjMuLjk2M2JmOTdlMDNiNDQxMGNhODFm
YmI3MzAyOGMwMTgwYWI2MGMxZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcApAQCAtMjQs
NiArMjQsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXN0Lmgi
CiAKICNpbmNsdWRlIDxXZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg+CiAjaW5jbHVk
ZSA8d3RmL1VSTC5oPgpAQCAtMzksNiArNDAsOSBAQCBjb25zdCBVUkwgd2ViS2l0VVJMIHsgeyB9
LCAiaHR0cHM6Ly93ZWJraXQub3JnIl9zIH07CiBjb25zdCBVUkwgZXhhbXBsZVVSTCB7IHsgfSwg
Imh0dHBzOi8vZXhhbXBsZS5jb20iX3MgfTsKIGNvbnN0IFVSTCBlbXB0eVVSTCB7IH07CiAKK2Nv
bnN0IGNoYXIgc2VydmVyUHVibGljS2V5QmFzZTY0VVJMW10gPQorICAgICJNSUlDSWpBTkJna3Fo
a2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXpiMWRUaHJ0WXdWaDQ2U2pJbmVnS2hBcXBi
SndtMVhuVEJDdnliU0s4ems1M1IwQW0xaEczM0FWRjVKMWxxWWYzNndwNjYzR2FzY2xIdHF6dnhG
Wkl2REExRFVTSDRhWnpfZkRIQ1RUeEVlSlZQT1JTM3pOTjJVald3YnRud3NoNEJtRFRpLXpfY0Ru
MExBejJKdVp5S2x5RnQ1R2dWTEFRdkw5SDNWTEhVOV9YSE5LLXVib3lYZmNIUlR0ckRucHUzYzZ3
dlg1ZGQtQUpvTG1JUVRaQkVKZlZreEJHem5rMXFLSGpjNm5BU0FpcktGX3dKQ251d0FLOEM2QkFj
ak5jd1VXQ2VLcDBZRUN6Q1hVLS1KWGQyT0VVLVFoeFBDNjdmYWlET2gzVjB2bGZxWkx0cmxibmFu
VUNLcnZodzdHYUdPR1lvdElyblp0dU5meEMxNGRfWE5WZDFGUzhuSGpSVEhuRWd3X2pubFNzc2Zn
U3R6MHVKdGNta2Znb0pCdk9FNG1JUnBpN2lTbFJmWE5rS3NXWDFKLWd3Y25DVm81dTB1SkVXNlg2
Tnl2RUdZSjh3NUJQZndzUXVLOXktNFo3aWt0OUlPdWNFSFk3VGhEbWk5VE5OaEhCVmowR3U0d0dv
U2pxM2E2dkw1TjEwWlNIWG9xMVhnZkdQcm1IaGhMOTBjanZXb25veU9Yc1VxbFhFelRqRDJXOTg5
N1EtTXg5QlVOckdRUHFtSXg4RjVNd3hXY09yeWU4V1JwNFE4OG4yWVNVblY3QzhheWxkM3YxRmg3
TjVqZVNxZVZtdERWUllUbjJzVmZOcWdYcnpnZGlnSmNRUjh2RkVOdTZuekZQd3NyWFBNYUNpTFVu
Wk5VbVExWlNMUWVReWhZWHhIcVJKcm51Q0RXWExrQ0F3RUFBUSI7CisKIC8vIFBvc2l0aXZlIHRl
c3QgY2FzZXMuCiAKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIFZhbGlkTWluVmFsdWVz
KQpAQCAtMTIzLDEyICsxMjcsMzIgQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgVmFs
aWRDb252ZXJzaW9uVVJMcykKICAgICBBU1NFUlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5wcmlv
cml0eSwgKHVpbnQzMl90KTIpOwogfQogCisjaWYgSEFWRShSU0FfQlNTQSkKKwogVEVTVChQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCwgVmFsaWRTb3VyY2VOb25jZSkKIHsKICAgICBhdXRvIGVwaGVt
ZXJhbE5vbmNlID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNl
IHsgIkFCQ0RFRmFiY2RlZjAxMjM0NTY3ODkiX3MgfTsKICAgICBBU1NFUlRfVFJVRShlcGhlbWVy
YWxOb25jZS5pc1ZhbGlkKCkpOwogfQogCitURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBW
YWxpZEJsaW5kZWRTZWNyZXQpCit7CisgICAgYXV0byBlcGhlbWVyYWxOb25jZSA9IFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZSB7ICJBQkNERUZhYmNkZWYwMTIz
NDU2Nzg5Il9zIH07CisgICAgRVhQRUNUX1RSVUUoZXBoZW1lcmFsTm9uY2UuaXNWYWxpZCgpKTsK
KworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IHBjbTsKKyAgICBwY20uc2V0RXBoZW1lcmFs
U291cmNlTm9uY2UoV1RGTW92ZShlcGhlbWVyYWxOb25jZSkpOworCisgICAgYXV0byBibGluZGVk
U2VjcmV0ID0gcGNtLmJsaW5kZWRTZWNyZXRKc29uKHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCk7
CisgICAgRVhQRUNUX05PVF9OVUxMKGJsaW5kZWRTZWNyZXQpOworICAgIEVYUEVDVF9TVFJFUShi
bGluZGVkU2VjcmV0LT5nZXRTdHJpbmcoImNsaWNrX25vbmNlIl9zKS51dGY4KCkuZGF0YSgpLCAi
QUJDREVGYWJjZGVmMDEyMzQ1Njc4OSIpOworICAgIEVYUEVDVF9GQUxTRShibGluZGVkU2VjcmV0
LT5nZXRTdHJpbmcoImJsaW5kZWRfc2VjcmV0Il9zKS5pc0VtcHR5KCkpOworCisgICAgLy8gRklY
TUUoMjIyMDE4KTogTW9jayB0aGUgc2VydmVyIHJlc3BvbnNlIGFuZCBjb250aW51ZSB0aGUgdGVz
dC4KK30KKworI2VuZGlmIC8vIEhBVkUoUlNBX0JTU0EpCisKIC8vIE5lZ2F0aXZlIHRlc3QgY2Fz
ZXMuCiAKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRTb3VyY2VJRCkKQEAg
LTI4MSw2ICszMDUsOCBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkQ29u
dmVyc2lvbldpdGhEaXNhbGxvd2VkVVJMQ29tcG9uZW50cykKICAgICBBU1NFUlRfRkFMU0Uob3B0
aW9uYWxDb252ZXJzaW9uKTsKIH0KIAorI2lmIEhBVkUoUlNBX0JTU0EpCisKIFRFU1QoUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRTb3VyY2VOb25jZSkKIHsKICAgICAvLyBGZXdlciB0
aGFuIHRoZSByZXF1cmllZCBudW1iZXIgb2YgYnl0ZXMuCkBAIC0zMDAsNCArMzI2LDIzIEBAIFRF
U1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRTb3VyY2VOb25jZSkKICAgICBBU1NF
UlRfRkFMU0UoZXBoZW1lcmFsTm9uY2UuaXNWYWxpZCgpKTsKIH0KIAorVEVTVChQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCwgSW52YWxpZEJsaW5kZWRTZWNyZXQpCit7CisgICAgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQgcGNtOworICAgIGF1dG8gYmxpbmRlZFNlY3JldCA9IHBjbS5ibGluZGVkU2Vj
cmV0SnNvbihzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkwpOworICAgIEVYUEVDVF9OVUxMKGJsaW5k
ZWRTZWNyZXQpOworCisgICAgYXV0byBlcGhlbWVyYWxOb25jZSA9IFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZSB7ICJBQkNERUZhYmNkZWYwMTIzNDU2Nzg5Il9z
IH07CisgICAgRVhQRUNUX1RSVUUoZXBoZW1lcmFsTm9uY2UuaXNWYWxpZCgpKTsKKyAgICBwY20u
c2V0RXBoZW1lcmFsU291cmNlTm9uY2UoV1RGTW92ZShlcGhlbWVyYWxOb25jZSkpOworCisgICAg
YmxpbmRlZFNlY3JldCA9IHBjbS5ibGluZGVkU2VjcmV0SnNvbihzZXJ2ZXJQdWJsaWNLZXlCYXNl
NjRVUkwpOworICAgIEVYUEVDVF9OT1RfTlVMTChibGluZGVkU2VjcmV0KTsKKworICAgIGF1dG8g
cGVyc2lzdGVudFRva2VuID0gcGNtLmNhbGN1bGF0ZVBlcnNpc3RlbnRCbGluZGVkVG9rZW4oZW1w
dHlTdHJpbmcoKSk7CisgICAgRVhQRUNUX0ZBTFNFKHBlcnNpc3RlbnRUb2tlbik7Cit9CisKKyNl
bmRpZiAvLyBIQVZFKFJTQV9CU1NBKQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>
<flag name="commit-queue"
          id="439186"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420609</attachid>
            <date>2021-02-17 00:38:45 -0800</date>
            <delta_ts>2021-02-17 01:17:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222019-20210217003845.patch</filename>
            <type>text/plain</type>
            <size>31223</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDUwYzU1NmNjMjZjMjU5MjcyZWY2ZjYw
Y2I3NzVhZDBiNmU4NDA2OWYuLjU2MzQ5YTQxNTE1NzkzNGEzOWExNGQ0OTAxMzg5M2QwZjZkNjdk
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5f
dGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQg
Y29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcz
NTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd3RmL1BsYXRmb3JtSGF2ZS5oOgorICAgICAgICBBZGRzIGEgY29tcGlsZSB0aW1lIGZsYWcg
Zm9yIFJTQUJTU0EuCisKIDIwMjEtMDItMTUgIFBlciBBcm5lICA8cHZvbGxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW21hY09TXSBDbG9zZSBYUEMgY29ubmVjdGlvbnMgYmVmb3JlIGVudGVyaW5n
IHNhbmRib3gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMTU0ZDExOWE5NjJkM2M5MDkzNzM4N2Y5NzViY2VjOTFl
Mjc4ZmU1Li4yYWY2MTE1MGYxMTI2ZTI5ODk0YzZlYjI3ZDFjMzE1YmQ2OTc2MzQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQgY29y
cmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzczNTgx
NDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENv
dmVyZWQgYnkgQVBJIHRlc3RzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggdXRpbGl6ZXMgUlNBQlNT
QSB0byBnZW5lcmF0ZSBzZWNyZXQgdG9rZW4gZm9yIFBDTSBmcmF1ZCBwcmV2ZW50aW9uLgorCisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZzoKKyAgICAgICAgKiBTb3Vy
Y2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgUGFwZXJ3b3JrIHRvIGxpbmsgQ3J5cHRvS2l0Q0JyaWRnaW5nLgorCisgICAg
ICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNWYWxp
ZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c2V0
RXBoZW1lcmFsU291cmNlTm9uY2UpOgorICAgICAgICAqIGxvYWRlci9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0
dHJpYnV0ZU9uU2l0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6ZXBoZW1lcmFsU291cmNlTm9uY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmNsZWFyRXBoZW1lcmFsU291cmNlTm9uY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5v
bmNlOjpFcGhlbWVyYWxTb3VyY2VOb25jZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFsU291cmNlTm9uY2U6OmlzVmFsaWQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OnNldEVwaGVtZXJhbFNvdXJjZU5vbmNlKTogRGVsZXRlZC4KKyAgICAgICAgR3JvdXBzIGZ1bmN0
aW9uYWxpdGllcyBiZWhpbmQgSEFWRV9SU0FfQlNTQS4KKworICAgICAgICAqIGxvYWRlci9jb2Nv
YS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpibGluZGVkU2VjcmV0SnNvbik6CisgICAgICAg
IChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y2FsY3VsYXRlUGVyc2lzdGVudEJs
aW5kZWRUb2tlbik6CisgICAgICAgIEludHJvZHVjZXMgbmV3IG1ldGhvZHMgdG8gZ2VuZXJhdGUg
dGhlIGJsaW5kZWQgc2VjcmV0cyBhbmQgdW5saW5rYWJsZSB0b2tlbnMuCisKIDIwMjEtMDItMTUg
IEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgUENNOiBBZGQg
aGlnaCBlbnRyb3B5IGF0dHJpYnV0aW9uU291cmNlTm9uY2UgYXR0cmlidXRlIHRvIGFuY2hvciB0
YWdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IDA1NGY2N2U2MmE5MmMwNTY0MDQwM2Q5MDIwMTRm
MjQzMzE0NzMzZmIuLjNmNjE4NjQ1YzBkYThjYTQzMGIxZWViZDliMDk3MGZiNTNiYmE5NjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC04ODQsMyArODg0LDggQEAKICNkZWZpbmUgSEFWRV9DT1JF
X0dSQVBISUNTX1JPTU1SR0JfQ09MT1JfU1BBQ0UgMQogI2RlZmluZSBIQVZFX0NPUkVfR1JBUEhJ
Q1NfWFlaX0NPTE9SX1NQQUNFIDEKICNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDApIFwKKyAgICB8fCAoUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTUw
MDAwKQorI2RlZmluZSBIQVZFX1JTQV9CU1NBIDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk3MGU3ZTE4NGVjMjVm
MDRiNWZkYTllOWI4NDNkMDYwODQ0Y2RmNzUuLjE4ZDc2NDdkMDc4MzcwZTJhNjcyNDY1YWQ1NjU5
ODI2Y2NjYzE5YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTEzNiw2ICsxMzYsOCBAQAogCQk1NzBBQjhGOTIwQUY2RTNEMDBC
OEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBBQjhGODIwQUY2RTNEMDBCOEJFODcgLyogTlNYUENDb25u
ZWN0aW9uU1BJLmggKi87IH07CiAJCTU3MkExMDc4MjJCNDU2RjUwMEY0MTBDOCAvKiBBdXRoS2l0
U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJB
MTA3NzIyQjQ1NkY1MDBGNDEwQzggLyogQXV0aEtpdFNQSS5oICovOyB9OwogCQk1NzZDQTlENjIy
Qjg1NEFCMDAzMDE0M0MgLyogQXBwU1NPU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NzZDQTlENTIyQjg1NEFCMDAzMDE0M0MgLyogQXBwU1NPU1BJ
LmggKi87IH07CisJCTU3RjFDOTA5MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdp
bmdTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTdGMUM5MDcyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5r
LmggKi87IH07CisJCTU3RjFDOTBBMjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdp
bmdTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU3RjFDOTA4MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5tbSAqLzsgfTsKIAkJNTdGRDMxOEEyMkIzNTkzRTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5r
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGRDMx
ODkyMkIzNTkzRTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLm1tICovOyB9OwogCQk1N0ZEMzE4
QjIyQjM1OTg5MDA4RDBFOEIgLyogQXBwU1NPU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RkQzMTg4MjJCMzU5MkYwMDhEMEU4QiAvKiBB
cHBTU09Tb2Z0TGluay5oICovOyB9OwogCQk1QzdDNzg3MzIzQUMzRTc3MDA2NUY0N0UgLyogTWFu
YWdlZENvbmZpZ3VyYXRpb25Tb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNUM3Qzc4NzEyM0FDM0U3NzAwNjVGNDdFIC8qIE1hbmFnZWRDb25m
aWd1cmF0aW9uU29mdExpbmsuaCAqLzsgfTsKQEAgLTMzNSw2ICszMzcsOCBAQAogCQk1NzBBQjhG
ODIwQUY2RTNEMDBCOEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE5TWFBDQ29ubmVjdGlvblNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJB
MTA3NzIyQjQ1NkY1MDBGNDEwQzggLyogQXV0aEtpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRo
S2l0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NkNBOUQ1MjJCODU0QUIw
MDMwMTQzQyAvKiBBcHBTU09TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwU1NPU1BJLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3RjFDOTA3MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlw
dG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9LaXRDQnJpZGdp
bmdTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0YxQzkwODI1RENG
MENGMDBFOEY2RUEgLyogQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTdGRDMxODgyMkIzNTkyRjAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5r
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcFNTT1NvZnRMaW5rLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RkQzMTg5MjJCMzU5M0UwMDhEMEU4QiAvKiBB
cHBTU09Tb2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IEFwcFNTT1NvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzdDNzg3
MTIzQUMzRTc3MDA2NUY0N0UgLyogTWFuYWdlZENvbmZpZ3VyYXRpb25Tb2Z0TGluay5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYW5hZ2VkQ29uZmlndXJhdGlvblNvZnRMaW5r
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02ODEsNiArNjg1LDggQEAKIAkJCQk1
N0ZEMzE4OTIyQjM1OTNFMDA4RDBFOEIgLyogQXBwU1NPU29mdExpbmsubW0gKi8sCiAJCQkJMDc3
RTg3QjAyMjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLmggKi8sCiAJCQkJ
MDc3RTg3QUYyMjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLm1tICovLAor
CQkJCTU3RjFDOTA3MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5oICovLAorCQkJCTU3RjFDOTA4MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdp
bmdTb2Z0TGluay5tbSAqLywKIAkJCQlGNDQyOTE2NjFGQTUyNzA1MDAyQ0M5M0UgLyogRmlsZVNp
emVGb3JtYXR0ZXJDb2NvYS5tbSAqLywKIAkJCQkxQzAyMkVGQzIyQ0ZFOEUwMDA2REYwMUIgLyog
R3VuemlwLmNwcCAqLywKIAkJCQlDREFDQjM1RTIzODczRTQ4MDAxOEQ3Q0UgLyogTWVkaWFUb29s
Ym94U29mdExpbmsuY3BwICovLApAQCAtODE4LDYgKzgyNCw3IEBACiAJCQkJMUNDRUU0RjUyMEQ4
NzE5MzAwNDdCMDk3IC8qIENvcmVVSVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MTkx
RjQzQTRDNzAwMkVBQzAyIC8qIENvcmVVSVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUMwOUQw
NTMxRTMxQzQ0MTAwNzI1RjE4IC8qIENyeXB0b0RpZ2VzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NTdGMUM5MDkyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE0MTFGM0JFQjQ5MDBEQkMzMTcgLyogRGF0YURldGVj
dG9yc0NvcmVTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NThBMUY0NTEzMEYwMEY0RUJC
NiAvKiBEYXRhRGV0ZWN0b3JzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzVBRjkxQTFGNDNB
NEM3MDAyRUFDMDIgLyogRGF0YURldGVjdG9yc1VJU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTEw
MjYsNiArMTAzMyw3IEBACiAJCQkJMEM1RkZGMEYxRjc4RDlEQTAwOUVGRjFBIC8qIENsb2NrQ00u
bW0gaW4gU291cmNlcyAqLywKIAkJCQkwQ0Y5OUNBODFGNzM4NDM3MDA3RUU3OTMgLyogQ29yZU1l
ZGlhU29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMwOUQwNTYxRTMxQzQ2NTAwNzI1
RjE4IC8qIENyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1
N0YxQzkwQTI1RENGMENGMDBFOEY2RUEgLyogQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsubW0g
aW4gU291cmNlcyAqLywKIAkJCQlBMTE3NUI1ODFGNkI0NzA1MDBDNEI5RjAgLyogRGVmYXVsdFNl
YXJjaFByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0NDI5MTY0MUZBNTI2NzAwMDJD
QzkzRSAvKiBGaWxlU2l6ZUZvcm1hdHRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNDQyOTE2
ODFGQTUyNzA1MDAyQ0M5M0UgLyogRmlsZVNpemVGb3JtYXR0ZXJDb2NvYS5tbSBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9DcnlwdG9LaXRD
QnJpZGdpbmdTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9DcnlwdG9L
aXRDQnJpZGdpbmdTb2Z0TGluay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5OTBkNGZlNWYzYWVlM2E2MzhhYmUw
MTUyYzQ2NTAzMzkzMDlmNjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NvY29hL0NyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmgKQEAgLTAsMCArMSwzNyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgSEFWRShSU0FfQlNTQSkKKworI2ltcG9y
dCA8Q3J5cHRvS2l0Q0JyaWRnaW5nL1JTQUJTU0EuaD4KKyNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2lu
Zy5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFMLCBDcnlwdG9LaXRDQnJp
ZGdpbmcpOworCitTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIFJTQUJTU0FUb2tlbkJs
aW5kZXIpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29j
b2EvQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2NvY29hL0NyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlYmM3NWFj
YzNkZDc0NDhkMGExMDk1NzhkYmYzMDIyNGQ3MmI0OWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0NyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1tCkBA
IC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBI
QVZFKFJTQV9CU1NBKQorCisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5L
X1BSSVZBVEVfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDcnlwdG9LaXRD
QnJpZGdpbmcsIFBBTF9FWFBPUlQpOworCitTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENyeXB0b0tpdENCcmlkZ2luZywgUlNBQlNTQVRva2VuQmxpbmRlciwgUEFM
X0VYUE9SVCk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0Nv
Y29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMmYwZmRlZmU5
M2FlYzZlZWZjZmU4NzFjZWZlZWM5ZmU0NTgyODc2My4uNTVlMzkwMjZjZmI0NTMzMmJhMDc5MDc3
ODBkMDZiY2Y0NmQ5ZDYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29h
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0xNjcsNiArMTY3
LDcgQEAgaW5zcGVjdG9yL21hYy9QYWdlRGVidWdnZXJNYWMubW0KIGxvYWRlci9hcmNoaXZlL2Nm
L0xlZ2FjeVdlYkFyY2hpdmUuY3BwCiBsb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZl
TWFjLm1tCiBsb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLm1tCitsb2FkZXIvY29j
b2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbQogbG9hZGVyL2NvY29hL1N1YnJlc291
cmNlTG9hZGVyQ29jb2EubW0KIGxvYWRlci9pb3MvTGVnYWN5UHJldmlld0xvYWRlci5tbQogbG9h
ZGVyL21hYy9Eb2N1bWVudExvYWRlck1hYy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyOWUxOWE5MTdiNWJlMDRjM2NkZjFi
ZTNhYWUwZmI0YjdlZGRhY2I3Li5hMmEyNDdhZmU1OTI2NDE5ZDM3NTM3Y2RmNzQzMWRiNjU0MzA5
Mzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC05NDA4LDYgKzk0MDgsNyBAQAogCQk1N0VFQUE1NzFFQTBBRkJCMDA3MDExMjQg
LyogQ29tbW9uQ3J5cHRvREVSVXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENvbW1vbkNyeXB0b0RFUlV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTU3RUY1RTVGMUQyMEM4MzkwMDE3MUU2MCAvKiBUZXh0Q29kZWNSZXBs
YWNlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0Q29kZWNSZXBs
YWNlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0VGNUU2MTFEMjBEMjg3
MDAxNzFFNjAgLyogVGV4dENvZGVjUmVwbGFjZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gVGV4dENvZGVjUmVwbGFjZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1N0YxQzhFMzI1REM2RUU3MDBFOEY2RUEgLyogUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU3RjgyNzM5MURCNzJDMjIwMDlEMkJGNCAvKiBSc2FIYXNoZWRLZXlHZW5QYXJh
bXMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFJzYUhhc2hlZEtleUdlblBhcmFtcy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU3RkVERDNEMURCNkQ0N0YwMEVCOTZGNSAvKiBSc2FLZXlHZW5QYXJhbXMu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFJzYUtleUdlblBhcmFtcy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU3RkVERDNFMURCNkQ1OTIwMEVCOTZGNSAvKiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5Q
YXJhbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGht
UnNhS2V5R2VuUGFyYW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NzE4LDcg
Kzk3MTksNyBAQAogCQk2QTIyRTg3MjFGMTA0MkM0MDBGNTQ2QzMgLyogSW5zcGVjdG9yQ2FudmFz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckNhbnZhcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTZBNzI3OTg4MUYxNkMyOUIwMDNGMzlCOCAvKiBJbnNwZWN0b3JT
aGFkZXJQcm9ncmFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rv
clNoYWRlclByb2dyYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkE3Mjc5ODkx
RjE2QzI5QjAwM0YzOUI4IC8qIEluc3BlY3RvclNoYWRlclByb2dyYW0uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZCMEEwN0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2QjBBMDdGMDIxRkE0QjVD
MDBENTczOTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNkIwQTA3RjEyMUZBNEI1QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01l
YXN1cmVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkIxRjQ4MEYyMjk4OUVDNDAwREU4
QjgyIC8qIENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2QjRENDEyQjIzOTgzRjg4MDAyNDk0QzIgLyogTG9nZ2VkSW5TdGF0dXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTG9nZ2VkSW5TdGF0dXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIyOTI0LDYgKzIyOTI1LDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTdFREFBRkM4MTlB
MkNCRDEwMDM0REZEMSAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EuaCAqLywKIAkJCQk3RTRERTEw
QzE5OEIxMEI2MDA1MUNCMDIgLyogRGlza0NhY2hlTW9uaXRvckNvY29hLm1tICovLAorCQkJCTU3
RjFDOEUzMjVEQzZFRTcwMEU4RjZFQSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1t
ICovLAogCQkJCTdFOEZBREMzMTk5QTk1QjEwMDcxNDk2OCAvKiBTdWJyZXNvdXJjZUxvYWRlckNv
Y29hLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBjb2NvYTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQW5jaG9yRWxlbWVudC5jcHAKaW5kZXggZWMzZDkwYmVjMjlkMzM4N2ViYzhiMjNhZGM2MmFm
YmM3MzMyOGQ1NC4uY2FmODM0MGNjNzk0MThjNGM3OTcyZjA0NTE0Y2FiMDAwZTIzNDc1MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTQ1Miw2ICs0NTIs
NyBAQCBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gSFRNTEFuY2hvckVsZW1lbnQ6
OnBhcnNlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbgogCiAgICAgYXV0byBwcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50IHsgU291cmNlSUQoYXR0cmlidXRpb25T
b3VyY2VJRC52YWx1ZSgpKSwgU291cmNlU2l0ZShkb2N1bWVudFJlZ2lzdHJhYmxlRG9tYWluKSwg
QXR0cmlidXRlT25TaXRlKGF0dHJpYnV0ZU9uVVJMKSB9OwogCisjaWYgSEFWRShSU0FfQlNTQSkK
ICAgICBhdXRvIGF0dHJpYnV0aW9uU291cmNlTm9uY2VBdHRyID0gYXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihhdHRyaWJ1dGlvbnNvdXJjZW5vbmNlQXR0cik7CiAgICAgaWYgKCFhdHRy
aWJ1dGlvblNvdXJjZU5vbmNlQXR0ci5pc0VtcHR5KCkpIHsKICAgICAgICAgYXV0byBlcGhlbWVy
YWxOb25jZSA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZSB7
IGF0dHJpYnV0aW9uU291cmNlTm9uY2VBdHRyIH07CkBAIC00NjEsNiArNDYyLDcgQEAgT3B0aW9u
YWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IEhUTUxBbmNob3JFbGVtZW50OjpwYXJzZVByaXZh
dGVDbGlja01lYXN1cmVtZW4KICAgICAgICAgfQogICAgICAgICBwcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC5zZXRFcGhlbWVyYWxTb3VyY2VOb25jZShXVEZNb3ZlKGVwaGVtZXJhbE5vbmNlKSk7CiAg
ICAgfQorI2VuZGlmCiAKICAgICByZXR1cm4gcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcApp
bmRleCAzMjAwNDcwZDg3ZDVmODUwY2Q0NWFlZWNlYzcxZDg5Y2ViY2VjODRlLi5hZGNlNWRhNmQ3
NmJmYzI0NmU1M2RiY2EzMzYyYWNiNDBlMDlmNGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAgLTE0Niw0ICsxNDYsMjggQEAg
UmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ompzb24oKSBjb25zdAog
ICAgIHJldHVybiByZXBvcnREZXRhaWxzOwogfQogCisvLyBNQVJLOiAtIEZyYXVkIFByZXZlbnRp
b24KKyNpZiBIQVZFKFJTQV9CU1NBKQorCitzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IEVwaGVt
ZXJhbFNvdXJjZU5vbmNlUmVxdWlyZWROdW1iZXJPZkJ5dGVzID0gMTY7CisKK2Jvb2wgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlOjppc1ZhbGlkKCkgY29uc3QK
K3sKKyAgICAvLyBGSVhNRTogSW52ZXN0aWdhdGUgaWYgd2UgY2FuIGRvIHdpdGggYSBzaW1wbGUg
bGVuZ3RoIGNoZWNrIGluc3RlYWQgb2YgZGVjb2RpbmcuCisgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTk0NQorICAgIFZlY3Rvcjx1aW50OF90PiBkaWdl
c3Q7CisgICAgaWYgKCFiYXNlNjRVUkxEZWNvZGUobm9uY2UsIGRpZ2VzdCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICByZXR1cm4gZGlnZXN0LnNpemUoKSA9PSBFcGhlbWVyYWxTb3VyY2VO
b25jZVJlcXVpcmVkTnVtYmVyT2ZCeXRlczsKIH0KKwordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6c2V0RXBoZW1lcmFsU291cmNlTm9uY2UoRXBoZW1lcmFsU291cmNlTm9uY2UmJiBub25j
ZSkKK3sKKyAgICBpZiAoIW5vbmNlLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1f
ZXBoZW1lcmFsU291cmNlTm9uY2UgPSBXVEZNb3ZlKG5vbmNlKTsKK30KKworI2VuZGlmIC8vIEhB
VkUoUlNBX0JTU0EpCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKaW5kZXggYTRjOTZjYTFlMGE0ZDAw
YjJhYWYxY2M1NjkzMzI5NzlhOWY4MjUyMC4uYTc3NDU0YzAyMzQ2ZjgwMWUwM2FjMGNhN2Y0ZTUz
ZTQ1NGJhNzQxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50LmgKQEAgLTM2LDYgKzM2LDEwIEBACiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
SGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCitPQkpDX0NMQVNTIFJT
QUJTU0FUb2tlblJlYWR5OworT0JKQ19DTEFTUyBSU0FCU1NBVG9rZW5XYWl0aW5nQWN0aXZhdGlv
bjsKK09CSkNfQ0xBU1MgUlNBQlNTQVRva2VuQmxpbmRlcjsKKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB7CkBAIC0yMDEsMjggKzIwNSw2IEBA
IHB1YmxpYzoKICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlP
ckRlbGV0ZWQgPSBmYWxzZTsKICAgICB9OwogCi0gICAgc3RydWN0IEVwaGVtZXJhbFNvdXJjZU5v
bmNlIHsKLSAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBSZXF1aXJlZE51bWJlck9m
Qnl0ZXMgPSAxNjsKLQotICAgICAgICBFcGhlbWVyYWxTb3VyY2VOb25jZSgpID0gZGVmYXVsdDsK
LSAgICAgICAgZXhwbGljaXQgRXBoZW1lcmFsU291cmNlTm9uY2UoY29uc3QgU3RyaW5nJiBub25j
ZVN0cmluZykKLSAgICAgICAgICAgIDogbm9uY2UgeyBub25jZVN0cmluZyB9Ci0gICAgICAgIHsK
LSAgICAgICAgfQotCi0gICAgICAgIC8vIEZJWE1FOiBJbnZlc3RpZ2F0ZSBpZiB3ZSBjYW4gZG8g
d2l0aCBhIHNpbXBsZSBsZW5ndGggY2hlY2sgaW5zdGVhZCBvZiBkZWNvZGluZy4KLSAgICAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTk0NQotICAgICAg
ICBib29sIGlzVmFsaWQoKSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICBWZWN0b3I8dWlu
dDhfdD4gZGlnZXN0OwotICAgICAgICAgICAgaWYgKCFiYXNlNjRVUkxEZWNvZGUobm9uY2UsIGRp
Z2VzdCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgcmV0dXJu
IGRpZ2VzdC5zaXplKCkgPT0gUmVxdWlyZWROdW1iZXJPZkJ5dGVzOwotICAgICAgICB9Ci0KLSAg
ICAgICAgU3RyaW5nIG5vbmNlOwotICAgIH07Ci0KICAgICBzdHJ1Y3QgUHJpb3JpdHkgewogICAg
ICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IE1heEVudHJvcHkgPSA2MzsKIApAQCAtMjc4
LDkgKzI2MCw2IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBSZWY8SlNPTjo6T2JqZWN0
PiBqc29uKCkgY29uc3Q7CiAgICAgY29uc3QgU291cmNlU2l0ZSYgc291cmNlU2l0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fc291cmNlU2l0ZTsgfTsKICAgICBjb25zdCBBdHRyaWJ1dGVPblNpdGUmIGF0
dHJpYnV0ZU9uU2l0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmlidXRlT25TaXRlOyB9OwotICAg
IHZvaWQgc2V0RXBoZW1lcmFsU291cmNlTm9uY2UoRXBoZW1lcmFsU291cmNlTm9uY2UmJiBub25j
ZSkgeyBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlID0gV1RGTW92ZShub25jZSk7IH07Ci0gICAgT3B0
aW9uYWw8RXBoZW1lcmFsU291cmNlTm9uY2U+IGVwaGVtZXJhbFNvdXJjZU5vbmNlKCkgY29uc3Qg
eyByZXR1cm4gIW1fZXBoZW1lcmFsU291cmNlTm9uY2UgPyBXVEY6Om51bGxvcHQgOiBtX2VwaGVt
ZXJhbFNvdXJjZU5vbmNlLT5pc1ZhbGlkKCkgPyBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlIDogV1RG
OjpudWxsb3B0OyB9OwotICAgIHZvaWQgY2xlYXJFcGhlbWVyYWxTb3VyY2VOb25jZSgpIHsgbV9l
cGhlbWVyYWxTb3VyY2VOb25jZSAgPSBXVEY6Om51bGxvcHQ7IH07CiAgICAgV2FsbFRpbWUgdGlt
ZU9mQWRDbGljaygpIGNvbnN0IHsgcmV0dXJuIG1fdGltZU9mQWRDbGljazsgfQogICAgIE9wdGlv
bmFsPFdhbGxUaW1lPiBlYXJsaWVzdFRpbWVUb1NlbmQoKSBjb25zdCB7IHJldHVybiBtX2Vhcmxp
ZXN0VGltZVRvU2VuZDsgfTsKICAgICB2b2lkIHNldEVhcmxpZXN0VGltZVRvU2VuZChXYWxsVGlt
ZSB0aW1lKSB7IG1fZWFybGllc3RUaW1lVG9TZW5kID0gdGltZTsgfQpAQCAtMjkxLDYgKzI3MCwy
OCBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2VEZXNjcmlwdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fc291cmNlRGVzY3JpcHRpb247IH0KICAgICBjb25zdCBTdHJpbmcmIHB1cmNo
YXNlcigpIGNvbnN0IHsgcmV0dXJuIG1fcHVyY2hhc2VyOyB9CiAKKyAgICAvLyBNQVJLOiAtIEZy
YXVkIFByZXZlbnRpb24KKyNpZiBIQVZFKFJTQV9CU1NBKQorICAgIHN0cnVjdCBFcGhlbWVyYWxT
b3VyY2VOb25jZSB7CisgICAgICAgIFN0cmluZyBub25jZTsKKworICAgICAgICBXRUJDT1JFX0VY
UE9SVCBib29sIGlzVmFsaWQoKSBjb25zdDsKKyAgICB9OworCisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRFcGhlbWVyYWxTb3VyY2VOb25jZShFcGhlbWVyYWxTb3VyY2VOb25jZSYmKTsKKyAg
ICBPcHRpb25hbDxFcGhlbWVyYWxTb3VyY2VOb25jZT4gZXBoZW1lcmFsU291cmNlTm9uY2UoKSBj
b25zdCB7IHJldHVybiBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlOyB9OworICAgIHZvaWQgY2xlYXJF
cGhlbWVyYWxTb3VyY2VOb25jZSgpIHsgbV9lcGhlbWVyYWxTb3VyY2VOb25jZS5yZXNldCgpOyB9
OworCisgICAgc3RydWN0IFBlcnNpc3RlbnRCbGluZGVkVG9rZW4geworICAgICAgICBTdHJpbmcg
dG9rZW5CYXNlNjRVUkw7CisgICAgICAgIFN0cmluZyBrZXlJREJhc2U2NFVSTDsKKyAgICAgICAg
U3RyaW5nIHNpZ25hdHVyZUJhc2U2NFVSTDsKKyAgICB9OworCisgICAgV0VCQ09SRV9FWFBPUlQg
UmVmUHRyPEpTT046Ok9iamVjdD4gYmxpbmRlZFNlY3JldEpzb24oY29uc3QgU3RyaW5nJiBzZXJ2
ZXJQdWJsaWNLZXlCYXNlNjRVUkwpOworICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPFBlcnNp
c3RlbnRCbGluZGVkVG9rZW4+IGNhbGN1bGF0ZVBlcnNpc3RlbnRCbGluZGVkVG9rZW4oY29uc3Qg
U3RyaW5nJiBzZXJ2ZXJSZXNwb25zZUJhc2U2NFVSTCk7CisjZW5kaWYgLy8gSEFWRShSU0FfQlNT
QSkKKwogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBj
b25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ+IGRlY29kZShEZWNvZGVyJik7CiAKQEAgLTMwNCw5ICszMDUsMTkg
QEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9wdXJjaGFzZXI7CiAgICAgV2FsbFRpbWUgbV90aW1l
T2ZBZENsaWNrOwogCi0gICAgT3B0aW9uYWw8RXBoZW1lcmFsU291cmNlTm9uY2U+IG1fZXBoZW1l
cmFsU291cmNlTm9uY2U7CiAgICAgT3B0aW9uYWw8QXR0cmlidXRpb25UcmlnZ2VyRGF0YT4gbV9h
dHRyaWJ1dGlvblRyaWdnZXJEYXRhOwogICAgIE9wdGlvbmFsPFdhbGxUaW1lPiBtX2VhcmxpZXN0
VGltZVRvU2VuZDsKKworI2lmIEhBVkUoUlNBX0JTU0EpCisgICAgc3RydWN0IEJsaW5kZWRUb2tl
biB7CisgICAgICAgIFJldGFpblB0cjxSU0FCU1NBVG9rZW5CbGluZGVyPiBibGluZGVyOworICAg
ICAgICBSZXRhaW5QdHI8UlNBQlNTQVRva2VuV2FpdGluZ0FjdGl2YXRpb24+IHdhaXRpbmdUb2tl
bjsKKyAgICAgICAgUmV0YWluUHRyPFJTQUJTU0FUb2tlblJlYWR5PiByZWFkeVRva2VuOworICAg
IH07CisKKyAgICBPcHRpb25hbDxFcGhlbWVyYWxTb3VyY2VOb25jZT4gbV9lcGhlbWVyYWxTb3Vy
Y2VOb25jZTsKKyAgICBCbGluZGVkVG9rZW4gbV9ibGluZGVkVG9rZW47CisjZW5kaWYgLy8gSEFW
RShSU0FfQlNTQSkKIH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5t
bSBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
Y29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE1NWYzNTg2YWZlOTA3ZGMzZmQwNDk1M2NlNWRmNTdmM2Y4ZmEz
MjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbQpAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIgor
CisjaWYgSEFWRShSU0FfQlNTQSkKKworI2ltcG9ydCA8cGFsL2NvY29hL0NyeXB0b0tpdENCcmlk
Z2luZ1NvZnRMaW5rLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmUHRyPEpTT046Ok9i
amVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmJsaW5kZWRTZWNyZXRKc29uKGNvbnN0IFN0
cmluZyYgc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKQoreworICAgIGlmICghbV9lcGhlbWVyYWxT
b3VyY2VOb25jZSB8fCAhbV9lcGhlbWVyYWxTb3VyY2VOb25jZS0+aXNWYWxpZCgpKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKworICAgIHsKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHNlcnZl
clB1YmxpY0tleURhdGE7CisgICAgICAgIGlmICghYmFzZTY0VVJMRGVjb2RlKHNlcnZlclB1Ymxp
Y0tleUJhc2U2NFVSTCwgc2VydmVyUHVibGljS2V5RGF0YSkpCisgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICAgICAgYXV0byBzZXJ2ZXJQdWJsaWNLZXkgPSBhZG9wdE5TKFtbTlNEYXRh
IGFsbG9jXSBpbml0V2l0aEJ5dGVzOnNlcnZlclB1YmxpY0tleURhdGEuZGF0YSgpIGxlbmd0aDpz
ZXJ2ZXJQdWJsaWNLZXlEYXRhLnNpemUoKV0pOworCisgICAgICAgIC8vIEZJWE1FKDIyMjAxOCk6
IENoZWNrIGVycm9yLgorICAgICAgICBtX2JsaW5kZWRUb2tlbi5ibGluZGVyID0gYWRvcHROUyhb
UEFMOjphbGxvY1JTQUJTU0FUb2tlbkJsaW5kZXJJbnN0YW5jZSgpIGluaXRXaXRoUHVibGljS2V5
OnNlcnZlclB1YmxpY0tleS5nZXQoKSBlcnJvcjpudWxscHRyXSk7CisgICAgICAgIGlmICghbV9i
bGluZGVkVG9rZW4uYmxpbmRlcikKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0K
KworICAgIC8vIEZJWE1FKDIyMjAxOCk6IENoZWNrIGVycm9yLgorICAgIG1fYmxpbmRlZFRva2Vu
LndhaXRpbmdUb2tlbiA9IFttX2JsaW5kZWRUb2tlbi5ibGluZGVyIHRva2VuV2FpdGluZ0FjdGl2
YXRpb25XaXRoQ29udGVudDpudWxscHRyIGVycm9yOm51bGxwdHJdOworICAgIGlmICghbV9ibGlu
ZGVkVG9rZW4ud2FpdGluZ1Rva2VuKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1
dG8gYmxpbmRlZFNlY3JldCA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CisgICAgYmxpbmRlZFNl
Y3JldC0+c2V0U3RyaW5nKCJjbGlja19ub25jZSJfcywgbV9lcGhlbWVyYWxTb3VyY2VOb25jZS0+
bm9uY2UpOworICAgIGJsaW5kZWRTZWNyZXQtPnNldFN0cmluZygiYmxpbmRlZF9zZWNyZXQiX3Ms
IFdURjo6YmFzZTY0VVJMRW5jb2RlKFttX2JsaW5kZWRUb2tlbi53YWl0aW5nVG9rZW4gYmxpbmRl
ZE1lc3NhZ2VdLmJ5dGVzLCBbbV9ibGluZGVkVG9rZW4ud2FpdGluZ1Rva2VuIGJsaW5kZWRNZXNz
YWdlXS5sZW5ndGgpKTsKKworICAgIHJldHVybiBibGluZGVkU2VjcmV0OworfQorCithdXRvIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpjYWxjdWxhdGVQZXJzaXN0ZW50QmxpbmRlZFRva2VuKGNv
bnN0IFN0cmluZyYgc2VydmVyUmVzcG9uc2VCYXNlNjRVUkwpIC0+IE9wdGlvbmFsPFBlcnNpc3Rl
bnRCbGluZGVkVG9rZW4+Cit7CisgICAgaWYgKCFtX2JsaW5kZWRUb2tlbi53YWl0aW5nVG9rZW4p
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICB7CisgICAgICAgIFZlY3Rvcjx1
aW50OF90PiBzZXJ2ZXJSZXNwb25zZURhdGE7CisgICAgICAgIGlmICghYmFzZTY0VVJMRGVjb2Rl
KHNlcnZlclJlc3BvbnNlQmFzZTY0VVJMLCBzZXJ2ZXJSZXNwb25zZURhdGEpKQorICAgICAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgYXV0byBzZXJ2ZXJSZXNwb25zZSA9IGFk
b3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6c2VydmVyUmVzcG9uc2VEYXRhLmRh
dGEoKSBsZW5ndGg6c2VydmVyUmVzcG9uc2VEYXRhLnNpemUoKV0pOworCisgICAgICAgIC8vIEZJ
WE1FKDIyMjAxOCk6IENoZWNrIGVycm9yLgorICAgICAgICBtX2JsaW5kZWRUb2tlbi5yZWFkeVRv
a2VuID0gW21fYmxpbmRlZFRva2VuLndhaXRpbmdUb2tlbiBhY3RpdmF0ZVRva2VuV2l0aFNlcnZl
clJlc3BvbnNlOnNlcnZlclJlc3BvbnNlLmdldCgpIGVycm9yOm51bGxwdHJdOworICAgICAgICBp
ZiAoIW1fYmxpbmRlZFRva2VuLnJlYWR5VG9rZW4pCisgICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworICAgIH0KKworICAgIFBlcnNpc3RlbnRCbGluZGVkVG9rZW4gdG9rZW47CisgICAg
dG9rZW4udG9rZW5CYXNlNjRVUkwgPSBXVEY6OmJhc2U2NFVSTEVuY29kZShbbV9ibGluZGVkVG9r
ZW4ucmVhZHlUb2tlbiB0b2tlbkNvbnRlbnRdLmJ5dGVzLCBbbV9ibGluZGVkVG9rZW4ucmVhZHlU
b2tlbiB0b2tlbkNvbnRlbnRdLmxlbmd0aCk7CisgICAgdG9rZW4ua2V5SURCYXNlNjRVUkwgPSBX
VEY6OmJhc2U2NFVSTEVuY29kZShbbV9ibGluZGVkVG9rZW4ucmVhZHlUb2tlbiBrZXlJZF0uYnl0
ZXMsIFttX2JsaW5kZWRUb2tlbi5yZWFkeVRva2VuIGtleUlkXS5sZW5ndGgpOworICAgIHRva2Vu
LnNpZ25hdHVyZUJhc2U2NFVSTCA9IFdURjo6YmFzZTY0VVJMRW5jb2RlKFttX2JsaW5kZWRUb2tl
bi5yZWFkeVRva2VuIHNpZ25hdHVyZV0uYnl0ZXMsIFttX2JsaW5kZWRUb2tlbi5yZWFkeVRva2Vu
IHNpZ25hdHVyZV0ubGVuZ3RoKTsKKworICAgIHJldHVybiB0b2tlbjsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSEFWRShSU0FfQlNTQSkKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3Njk4Nzc5MTkzZDRiMzQ1NzZm
ZDI5N2YxYmRmZDY3NDlkYTAyY2QxLi5lNDRjNzUyYzg5YjFjYjBkZjA3MWZkYjk1YmNlNWZhNzcz
YTM5NWIwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFw
cGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQgY29ycmVz
cG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzczNTgxNDEy
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICBBZGQgdGVzdHMuCisKIDIwMjEt
MDItMTUgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgUENN
OiBBZGQgaGlnaCBlbnRyb3B5IGF0dHJpYnV0aW9uU291cmNlTm9uY2UgYXR0cmlidXRlIHRvIGFu
Y2hvciB0YWdzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAppbmRleCA3Y2Q3NzViNGM2MDQyMGVm
YWUxZGUxNjc0MTgxZDBlOTFmOWU2MmIzLi45NjNiZjk3ZTAzYjQ0MTBjYTgxZmJiNzMwMjhjMDE4
MGFiNjBjMWUzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAgLTI0LDYgKzI0LDcgQEAK
ICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGVzdC5oIgogCiAjaW5jbHVk
ZSA8V2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oPgogI2luY2x1ZGUgPHd0Zi9VUkwu
aD4KQEAgLTM5LDYgKzQwLDkgQEAgY29uc3QgVVJMIHdlYktpdFVSTCB7IHsgfSwgImh0dHBzOi8v
d2Via2l0Lm9yZyJfcyB9OwogY29uc3QgVVJMIGV4YW1wbGVVUkwgeyB7IH0sICJodHRwczovL2V4
YW1wbGUuY29tIl9zIH07CiBjb25zdCBVUkwgZW1wdHlVUkwgeyB9OwogCitjb25zdCBjaGFyIHNl
cnZlclB1YmxpY0tleUJhc2U2NFVSTFtdID0KKyAgICAiTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVG
QUFPQ0FnOEFNSUlDQ2dLQ0FnRUF6YjFkVGhydFl3Vmg0NlNqSW5lZ0toQXFwYkp3bTFYblRCQ3Z5
YlNLOHprNTNSMEFtMWhHMzNBVkY1SjFscVlmMzZ3cDY2M0dhc2NsSHRxenZ4RlpJdkRBMURVU0g0
YVp6X2ZESENUVHhFZUpWUE9SUzN6Tk4yVWpXd2J0bndzaDRCbURUaS16X2NEbjBMQXoySnVaeUts
eUZ0NUdnVkxBUXZMOUgzVkxIVTlfWEhOSy11Ym95WGZjSFJUdHJEbnB1M2M2d3ZYNWRkLUFKb0xt
SVFUWkJFSmZWa3hCR3puazFxS0hqYzZuQVNBaXJLRl93SkNudXdBSzhDNkJBY2pOY3dVV0NlS3Aw
WUVDekNYVS0tSlhkMk9FVS1RaHhQQzY3ZmFpRE9oM1YwdmxmcVpMdHJsYm5hblVDS3J2aHc3R2FH
T0dZb3RJcm5adHVOZnhDMTRkX1hOVmQxRlM4bkhqUlRIbkVnd19qbmxTc3NmZ1N0ejB1SnRjbWtm
Z29KQnZPRTRtSVJwaTdpU2xSZlhOa0tzV1gxSi1nd2NuQ1ZvNXUwdUpFVzZYNk55dkVHWUo4dzVC
UGZ3c1F1Szl5LTRaN2lrdDlJT3VjRUhZN1RoRG1pOVROTmhIQlZqMEd1NHdHb1NqcTNhNnZMNU4x
MFpTSFhvcTFYZ2ZHUHJtSGhoTDkwY2p2V29ub3lPWHNVcWxYRXpUakQyVzk4OTdRLU14OUJVTnJH
UVBxbUl4OEY1TXd4V2NPcnllOFdScDRRODhuMllTVW5WN0M4YXlsZDN2MUZoN041amVTcWVWbXRE
VlJZVG4yc1ZmTnFnWHJ6Z2RpZ0pjUVI4dkZFTnU2bnpGUHdzclhQTWFDaUxVblpOVW1RMVpTTFFl
UXloWVh4SHFSSnJudUNEV1hMa0NBd0VBQVEiOworCiAvLyBQb3NpdGl2ZSB0ZXN0IGNhc2VzLgog
CiBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZE1pblZhbHVlcykKQEAgLTEyMywx
MiArMTI3LDMyIEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIFZhbGlkQ29udmVyc2lv
blVSTHMpCiAgICAgQVNTRVJUX0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+cHJpb3JpdHksICh1aW50
MzJfdCkyKTsKIH0KIAorI2lmIEhBVkUoUlNBX0JTU0EpCisKIFRFU1QoUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQsIFZhbGlkU291cmNlTm9uY2UpCiB7CiAgICAgYXV0byBlcGhlbWVyYWxOb25jZSA9
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZSB7ICJBQkNERUZh
YmNkZWYwMTIzNDU2Nzg5Il9zIH07CiAgICAgQVNTRVJUX1RSVUUoZXBoZW1lcmFsTm9uY2UuaXNW
YWxpZCgpKTsKIH0KIAorVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgVmFsaWRCbGluZGVk
U2VjcmV0KQoreworICAgIGF1dG8gZXBoZW1lcmFsTm9uY2UgPSBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6RXBoZW1lcmFsU291cmNlTm9uY2UgeyAiQUJDREVGYWJjZGVmMDEyMzQ1Njc4OSJfcyB9
OworICAgIEVYUEVDVF9UUlVFKGVwaGVtZXJhbE5vbmNlLmlzVmFsaWQoKSk7CisKKyAgICBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCBwY207CisgICAgcGNtLnNldEVwaGVtZXJhbFNvdXJjZU5vbmNl
KFdURk1vdmUoZXBoZW1lcmFsTm9uY2UpKTsKKworICAgIGF1dG8gYmxpbmRlZFNlY3JldCA9IHBj
bS5ibGluZGVkU2VjcmV0SnNvbihzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkwpOworICAgIEVYUEVD
VF9OT1RfTlVMTChibGluZGVkU2VjcmV0KTsKKyAgICBFWFBFQ1RfU1RSRVEoYmxpbmRlZFNlY3Jl
dC0+Z2V0U3RyaW5nKCJjbGlja19ub25jZSJfcykudXRmOCgpLmRhdGEoKSwgIkFCQ0RFRmFiY2Rl
ZjAxMjM0NTY3ODkiKTsKKyAgICBFWFBFQ1RfRkFMU0UoYmxpbmRlZFNlY3JldC0+Z2V0U3RyaW5n
KCJibGluZGVkX3NlY3JldCJfcykuaXNFbXB0eSgpKTsKKworICAgIC8vIEZJWE1FKDIyMjAxOCk6
IE1vY2sgdGhlIHNlcnZlciByZXNwb25zZSBhbmQgY29udGludWUgdGhlIHRlc3QuCit9CisKKyNl
bmRpZiAvLyBIQVZFKFJTQV9CU1NBKQorCiAvLyBOZWdhdGl2ZSB0ZXN0IGNhc2VzLgogCiBURVNU
KFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkU291cmNlSUQpCkBAIC0yODEsNiArMzA1
LDggQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZENvbnZlcnNpb25XaXRo
RGlzYWxsb3dlZFVSTENvbXBvbmVudHMpCiAgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVy
c2lvbik7CiB9CiAKKyNpZiBIQVZFKFJTQV9CU1NBKQorCiBURVNUKFByaXZhdGVDbGlja01lYXN1
cmVtZW50LCBJbnZhbGlkU291cmNlTm9uY2UpCiB7CiAgICAgLy8gRmV3ZXIgdGhhbiB0aGUgcmVx
dXJpZWQgbnVtYmVyIG9mIGJ5dGVzLgpAQCAtMzAwLDQgKzMyNiwyMyBAQCBURVNUKFByaXZhdGVD
bGlja01lYXN1cmVtZW50LCBJbnZhbGlkU291cmNlTm9uY2UpCiAgICAgQVNTRVJUX0ZBTFNFKGVw
aGVtZXJhbE5vbmNlLmlzVmFsaWQoKSk7CiB9CiAKK1RFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQsIEludmFsaWRCbGluZGVkU2VjcmV0KQoreworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50
IHBjbTsKKyAgICBhdXRvIGJsaW5kZWRTZWNyZXQgPSBwY20uYmxpbmRlZFNlY3JldEpzb24oc2Vy
dmVyUHVibGljS2V5QmFzZTY0VVJMKTsKKyAgICBFWFBFQ1RfTlVMTChibGluZGVkU2VjcmV0KTsK
KworICAgIGF1dG8gZXBoZW1lcmFsTm9uY2UgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBo
ZW1lcmFsU291cmNlTm9uY2UgeyAiQUJDREVGYWJjZGVmMDEyMzQ1Njc4OSJfcyB9OworICAgIEVY
UEVDVF9UUlVFKGVwaGVtZXJhbE5vbmNlLmlzVmFsaWQoKSk7CisgICAgcGNtLnNldEVwaGVtZXJh
bFNvdXJjZU5vbmNlKFdURk1vdmUoZXBoZW1lcmFsTm9uY2UpKTsKKworICAgIGJsaW5kZWRTZWNy
ZXQgPSBwY20uYmxpbmRlZFNlY3JldEpzb24oc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKTsKKyAg
ICBFWFBFQ1RfTk9UX05VTEwoYmxpbmRlZFNlY3JldCk7CisKKyAgICBhdXRvIHBlcnNpc3RlbnRU
b2tlbiA9IHBjbS5jYWxjdWxhdGVQZXJzaXN0ZW50QmxpbmRlZFRva2VuKGVtcHR5U3RyaW5nKCkp
OworICAgIEVYUEVDVF9GQUxTRShwZXJzaXN0ZW50VG9rZW4pOworfQorCisjZW5kaWYgLy8gSEFW
RShSU0FfQlNTQSkKKwogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>
<flag name="commit-queue"
          id="439195"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420615</attachid>
            <date>2021-02-17 01:14:05 -0800</date>
            <delta_ts>2021-02-17 16:07:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222019-20210217011405.patch</filename>
            <type>text/plain</type>
            <size>31252</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDUwYzU1NmNjMjZjMjU5MjcyZWY2ZjYw
Y2I3NzVhZDBiNmU4NDA2OWYuLjU2MzQ5YTQxNTE1NzkzNGEzOWExNGQ0OTAxMzg5M2QwZjZkNjdk
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5f
dGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQg
Y29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcz
NTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd3RmL1BsYXRmb3JtSGF2ZS5oOgorICAgICAgICBBZGRzIGEgY29tcGlsZSB0aW1lIGZsYWcg
Zm9yIFJTQUJTU0EuCisKIDIwMjEtMDItMTUgIFBlciBBcm5lICA8cHZvbGxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW21hY09TXSBDbG9zZSBYUEMgY29ubmVjdGlvbnMgYmVmb3JlIGVudGVyaW5n
IHNhbmRib3gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMTU0ZDExOWE5NjJkM2M5MDkzNzM4N2Y5NzViY2VjOTFl
Mjc4ZmU1Li4yYWY2MTE1MGYxMTI2ZTI5ODk0YzZlYjI3ZDFjMzE1YmQ2OTc2MzQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQgY29y
cmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzczNTgx
NDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENv
dmVyZWQgYnkgQVBJIHRlc3RzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggdXRpbGl6ZXMgUlNBQlNT
QSB0byBnZW5lcmF0ZSBzZWNyZXQgdG9rZW4gZm9yIFBDTSBmcmF1ZCBwcmV2ZW50aW9uLgorCisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZzoKKyAgICAgICAgKiBTb3Vy
Y2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgUGFwZXJ3b3JrIHRvIGxpbmsgQ3J5cHRvS2l0Q0JyaWRnaW5nLgorCisgICAg
ICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNWYWxp
ZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c2V0
RXBoZW1lcmFsU291cmNlTm9uY2UpOgorICAgICAgICAqIGxvYWRlci9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0
dHJpYnV0ZU9uU2l0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6ZXBoZW1lcmFsU291cmNlTm9uY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmNsZWFyRXBoZW1lcmFsU291cmNlTm9uY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5v
bmNlOjpFcGhlbWVyYWxTb3VyY2VOb25jZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFsU291cmNlTm9uY2U6OmlzVmFsaWQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OnNldEVwaGVtZXJhbFNvdXJjZU5vbmNlKTogRGVsZXRlZC4KKyAgICAgICAgR3JvdXBzIGZ1bmN0
aW9uYWxpdGllcyBiZWhpbmQgSEFWRV9SU0FfQlNTQS4KKworICAgICAgICAqIGxvYWRlci9jb2Nv
YS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpibGluZGVkU2VjcmV0SnNvbik6CisgICAgICAg
IChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y2FsY3VsYXRlUGVyc2lzdGVudEJs
aW5kZWRUb2tlbik6CisgICAgICAgIEludHJvZHVjZXMgbmV3IG1ldGhvZHMgdG8gZ2VuZXJhdGUg
dGhlIGJsaW5kZWQgc2VjcmV0cyBhbmQgdW5saW5rYWJsZSB0b2tlbnMuCisKIDIwMjEtMDItMTUg
IEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgUENNOiBBZGQg
aGlnaCBlbnRyb3B5IGF0dHJpYnV0aW9uU291cmNlTm9uY2UgYXR0cmlidXRlIHRvIGFuY2hvciB0
YWdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IDA1NGY2N2U2MmE5MmMwNTY0MDQwM2Q5MDIwMTRm
MjQzMzE0NzMzZmIuLjNmNjE4NjQ1YzBkYThjYTQzMGIxZWViZDliMDk3MGZiNTNiYmE5NjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC04ODQsMyArODg0LDggQEAKICNkZWZpbmUgSEFWRV9DT1JF
X0dSQVBISUNTX1JPTU1SR0JfQ09MT1JfU1BBQ0UgMQogI2RlZmluZSBIQVZFX0NPUkVfR1JBUEhJ
Q1NfWFlaX0NPTE9SX1NQQUNFIDEKICNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDApIFwKKyAgICB8fCAoUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTUw
MDAwKQorI2RlZmluZSBIQVZFX1JTQV9CU1NBIDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk3MGU3ZTE4NGVjMjVm
MDRiNWZkYTllOWI4NDNkMDYwODQ0Y2RmNzUuLjE4ZDc2NDdkMDc4MzcwZTJhNjcyNDY1YWQ1NjU5
ODI2Y2NjYzE5YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTEzNiw2ICsxMzYsOCBAQAogCQk1NzBBQjhGOTIwQUY2RTNEMDBC
OEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBBQjhGODIwQUY2RTNEMDBCOEJFODcgLyogTlNYUENDb25u
ZWN0aW9uU1BJLmggKi87IH07CiAJCTU3MkExMDc4MjJCNDU2RjUwMEY0MTBDOCAvKiBBdXRoS2l0
U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJB
MTA3NzIyQjQ1NkY1MDBGNDEwQzggLyogQXV0aEtpdFNQSS5oICovOyB9OwogCQk1NzZDQTlENjIy
Qjg1NEFCMDAzMDE0M0MgLyogQXBwU1NPU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NzZDQTlENTIyQjg1NEFCMDAzMDE0M0MgLyogQXBwU1NPU1BJ
LmggKi87IH07CisJCTU3RjFDOTA5MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdp
bmdTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTdGMUM5MDcyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5r
LmggKi87IH07CisJCTU3RjFDOTBBMjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdp
bmdTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU3RjFDOTA4MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5tbSAqLzsgfTsKIAkJNTdGRDMxOEEyMkIzNTkzRTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5r
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGRDMx
ODkyMkIzNTkzRTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLm1tICovOyB9OwogCQk1N0ZEMzE4
QjIyQjM1OTg5MDA4RDBFOEIgLyogQXBwU1NPU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RkQzMTg4MjJCMzU5MkYwMDhEMEU4QiAvKiBB
cHBTU09Tb2Z0TGluay5oICovOyB9OwogCQk1QzdDNzg3MzIzQUMzRTc3MDA2NUY0N0UgLyogTWFu
YWdlZENvbmZpZ3VyYXRpb25Tb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNUM3Qzc4NzEyM0FDM0U3NzAwNjVGNDdFIC8qIE1hbmFnZWRDb25m
aWd1cmF0aW9uU29mdExpbmsuaCAqLzsgfTsKQEAgLTMzNSw2ICszMzcsOCBAQAogCQk1NzBBQjhG
ODIwQUY2RTNEMDBCOEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE5TWFBDQ29ubmVjdGlvblNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJB
MTA3NzIyQjQ1NkY1MDBGNDEwQzggLyogQXV0aEtpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRo
S2l0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NkNBOUQ1MjJCODU0QUIw
MDMwMTQzQyAvKiBBcHBTU09TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwU1NPU1BJLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3RjFDOTA3MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlw
dG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9LaXRDQnJpZGdp
bmdTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0YxQzkwODI1RENG
MENGMDBFOEY2RUEgLyogQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTdGRDMxODgyMkIzNTkyRjAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5r
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcFNTT1NvZnRMaW5rLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RkQzMTg5MjJCMzU5M0UwMDhEMEU4QiAvKiBB
cHBTU09Tb2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IEFwcFNTT1NvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzdDNzg3
MTIzQUMzRTc3MDA2NUY0N0UgLyogTWFuYWdlZENvbmZpZ3VyYXRpb25Tb2Z0TGluay5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYW5hZ2VkQ29uZmlndXJhdGlvblNvZnRMaW5r
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02ODEsNiArNjg1LDggQEAKIAkJCQk1
N0ZEMzE4OTIyQjM1OTNFMDA4RDBFOEIgLyogQXBwU1NPU29mdExpbmsubW0gKi8sCiAJCQkJMDc3
RTg3QjAyMjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLmggKi8sCiAJCQkJ
MDc3RTg3QUYyMjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLm1tICovLAor
CQkJCTU3RjFDOTA3MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5oICovLAorCQkJCTU3RjFDOTA4MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdp
bmdTb2Z0TGluay5tbSAqLywKIAkJCQlGNDQyOTE2NjFGQTUyNzA1MDAyQ0M5M0UgLyogRmlsZVNp
emVGb3JtYXR0ZXJDb2NvYS5tbSAqLywKIAkJCQkxQzAyMkVGQzIyQ0ZFOEUwMDA2REYwMUIgLyog
R3VuemlwLmNwcCAqLywKIAkJCQlDREFDQjM1RTIzODczRTQ4MDAxOEQ3Q0UgLyogTWVkaWFUb29s
Ym94U29mdExpbmsuY3BwICovLApAQCAtODE4LDYgKzgyNCw3IEBACiAJCQkJMUNDRUU0RjUyMEQ4
NzE5MzAwNDdCMDk3IC8qIENvcmVVSVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MTkx
RjQzQTRDNzAwMkVBQzAyIC8qIENvcmVVSVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUMwOUQw
NTMxRTMxQzQ0MTAwNzI1RjE4IC8qIENyeXB0b0RpZ2VzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NTdGMUM5MDkyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE0MTFGM0JFQjQ5MDBEQkMzMTcgLyogRGF0YURldGVj
dG9yc0NvcmVTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NThBMUY0NTEzMEYwMEY0RUJC
NiAvKiBEYXRhRGV0ZWN0b3JzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzVBRjkxQTFGNDNB
NEM3MDAyRUFDMDIgLyogRGF0YURldGVjdG9yc1VJU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTEw
MjYsNiArMTAzMyw3IEBACiAJCQkJMEM1RkZGMEYxRjc4RDlEQTAwOUVGRjFBIC8qIENsb2NrQ00u
bW0gaW4gU291cmNlcyAqLywKIAkJCQkwQ0Y5OUNBODFGNzM4NDM3MDA3RUU3OTMgLyogQ29yZU1l
ZGlhU29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMwOUQwNTYxRTMxQzQ2NTAwNzI1
RjE4IC8qIENyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1
N0YxQzkwQTI1RENGMENGMDBFOEY2RUEgLyogQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsubW0g
aW4gU291cmNlcyAqLywKIAkJCQlBMTE3NUI1ODFGNkI0NzA1MDBDNEI5RjAgLyogRGVmYXVsdFNl
YXJjaFByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0NDI5MTY0MUZBNTI2NzAwMDJD
QzkzRSAvKiBGaWxlU2l6ZUZvcm1hdHRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNDQyOTE2
ODFGQTUyNzA1MDAyQ0M5M0UgLyogRmlsZVNpemVGb3JtYXR0ZXJDb2NvYS5tbSBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9DcnlwdG9LaXRD
QnJpZGdpbmdTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9DcnlwdG9L
aXRDQnJpZGdpbmdTb2Z0TGluay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5OTBkNGZlNWYzYWVlM2E2MzhhYmUw
MTUyYzQ2NTAzMzkzMDlmNjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NvY29hL0NyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmgKQEAgLTAsMCArMSwzNyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgSEFWRShSU0FfQlNTQSkKKworI2ltcG9y
dCA8Q3J5cHRvS2l0Q0JyaWRnaW5nL1JTQUJTU0EuaD4KKyNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2lu
Zy5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFMLCBDcnlwdG9LaXRDQnJp
ZGdpbmcpOworCitTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIFJTQUJTU0FUb2tlbkJs
aW5kZXIpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29j
b2EvQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2NvY29hL0NyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlYmM3NWFj
YzNkZDc0NDhkMGExMDk1NzhkYmYzMDIyNGQ3MmI0OWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0NyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1tCkBA
IC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBI
QVZFKFJTQV9CU1NBKQorCisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5L
X1BSSVZBVEVfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDcnlwdG9LaXRD
QnJpZGdpbmcsIFBBTF9FWFBPUlQpOworCitTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENyeXB0b0tpdENCcmlkZ2luZywgUlNBQlNTQVRva2VuQmxpbmRlciwgUEFM
X0VYUE9SVCk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0Nv
Y29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMmYwZmRlZmU5
M2FlYzZlZWZjZmU4NzFjZWZlZWM5ZmU0NTgyODc2My4uNTVlMzkwMjZjZmI0NTMzMmJhMDc5MDc3
ODBkMDZiY2Y0NmQ5ZDYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29h
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0xNjcsNiArMTY3
LDcgQEAgaW5zcGVjdG9yL21hYy9QYWdlRGVidWdnZXJNYWMubW0KIGxvYWRlci9hcmNoaXZlL2Nm
L0xlZ2FjeVdlYkFyY2hpdmUuY3BwCiBsb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZl
TWFjLm1tCiBsb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLm1tCitsb2FkZXIvY29j
b2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbQogbG9hZGVyL2NvY29hL1N1YnJlc291
cmNlTG9hZGVyQ29jb2EubW0KIGxvYWRlci9pb3MvTGVnYWN5UHJldmlld0xvYWRlci5tbQogbG9h
ZGVyL21hYy9Eb2N1bWVudExvYWRlck1hYy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyOWUxOWE5MTdiNWJlMDRjM2NkZjFi
ZTNhYWUwZmI0YjdlZGRhY2I3Li5hMmEyNDdhZmU1OTI2NDE5ZDM3NTM3Y2RmNzQzMWRiNjU0MzA5
Mzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC05NDA4LDYgKzk0MDgsNyBAQAogCQk1N0VFQUE1NzFFQTBBRkJCMDA3MDExMjQg
LyogQ29tbW9uQ3J5cHRvREVSVXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENvbW1vbkNyeXB0b0RFUlV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTU3RUY1RTVGMUQyMEM4MzkwMDE3MUU2MCAvKiBUZXh0Q29kZWNSZXBs
YWNlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0Q29kZWNSZXBs
YWNlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0VGNUU2MTFEMjBEMjg3
MDAxNzFFNjAgLyogVGV4dENvZGVjUmVwbGFjZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gVGV4dENvZGVjUmVwbGFjZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1N0YxQzhFMzI1REM2RUU3MDBFOEY2RUEgLyogUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU3RjgyNzM5MURCNzJDMjIwMDlEMkJGNCAvKiBSc2FIYXNoZWRLZXlHZW5QYXJh
bXMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFJzYUhhc2hlZEtleUdlblBhcmFtcy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU3RkVERDNEMURCNkQ0N0YwMEVCOTZGNSAvKiBSc2FLZXlHZW5QYXJhbXMu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFJzYUtleUdlblBhcmFtcy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU3RkVERDNFMURCNkQ1OTIwMEVCOTZGNSAvKiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5Q
YXJhbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGht
UnNhS2V5R2VuUGFyYW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NzE4LDcg
Kzk3MTksNyBAQAogCQk2QTIyRTg3MjFGMTA0MkM0MDBGNTQ2QzMgLyogSW5zcGVjdG9yQ2FudmFz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckNhbnZhcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTZBNzI3OTg4MUYxNkMyOUIwMDNGMzlCOCAvKiBJbnNwZWN0b3JT
aGFkZXJQcm9ncmFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rv
clNoYWRlclByb2dyYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkE3Mjc5ODkx
RjE2QzI5QjAwM0YzOUI4IC8qIEluc3BlY3RvclNoYWRlclByb2dyYW0uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZCMEEwN0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2QjBBMDdGMDIxRkE0QjVD
MDBENTczOTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNkIwQTA3RjEyMUZBNEI1QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01l
YXN1cmVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkIxRjQ4MEYyMjk4OUVDNDAwREU4
QjgyIC8qIENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2QjRENDEyQjIzOTgzRjg4MDAyNDk0QzIgLyogTG9nZ2VkSW5TdGF0dXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTG9nZ2VkSW5TdGF0dXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIyOTI0LDYgKzIyOTI1LDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTdFREFBRkM4MTlB
MkNCRDEwMDM0REZEMSAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EuaCAqLywKIAkJCQk3RTRERTEw
QzE5OEIxMEI2MDA1MUNCMDIgLyogRGlza0NhY2hlTW9uaXRvckNvY29hLm1tICovLAorCQkJCTU3
RjFDOEUzMjVEQzZFRTcwMEU4RjZFQSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1t
ICovLAogCQkJCTdFOEZBREMzMTk5QTk1QjEwMDcxNDk2OCAvKiBTdWJyZXNvdXJjZUxvYWRlckNv
Y29hLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBjb2NvYTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQW5jaG9yRWxlbWVudC5jcHAKaW5kZXggZWMzZDkwYmVjMjlkMzM4N2ViYzhiMjNhZGM2MmFm
YmM3MzMyOGQ1NC4uY2FmODM0MGNjNzk0MThjNGM3OTcyZjA0NTE0Y2FiMDAwZTIzNDc1MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTQ1Miw2ICs0NTIs
NyBAQCBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gSFRNTEFuY2hvckVsZW1lbnQ6
OnBhcnNlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbgogCiAgICAgYXV0byBwcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50IHsgU291cmNlSUQoYXR0cmlidXRpb25T
b3VyY2VJRC52YWx1ZSgpKSwgU291cmNlU2l0ZShkb2N1bWVudFJlZ2lzdHJhYmxlRG9tYWluKSwg
QXR0cmlidXRlT25TaXRlKGF0dHJpYnV0ZU9uVVJMKSB9OwogCisjaWYgSEFWRShSU0FfQlNTQSkK
ICAgICBhdXRvIGF0dHJpYnV0aW9uU291cmNlTm9uY2VBdHRyID0gYXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihhdHRyaWJ1dGlvbnNvdXJjZW5vbmNlQXR0cik7CiAgICAgaWYgKCFhdHRy
aWJ1dGlvblNvdXJjZU5vbmNlQXR0ci5pc0VtcHR5KCkpIHsKICAgICAgICAgYXV0byBlcGhlbWVy
YWxOb25jZSA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZSB7
IGF0dHJpYnV0aW9uU291cmNlTm9uY2VBdHRyIH07CkBAIC00NjEsNiArNDYyLDcgQEAgT3B0aW9u
YWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IEhUTUxBbmNob3JFbGVtZW50OjpwYXJzZVByaXZh
dGVDbGlja01lYXN1cmVtZW4KICAgICAgICAgfQogICAgICAgICBwcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC5zZXRFcGhlbWVyYWxTb3VyY2VOb25jZShXVEZNb3ZlKGVwaGVtZXJhbE5vbmNlKSk7CiAg
ICAgfQorI2VuZGlmCiAKICAgICByZXR1cm4gcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcApp
bmRleCAzMjAwNDcwZDg3ZDVmODUwY2Q0NWFlZWNlYzcxZDg5Y2ViY2VjODRlLi5hZGNlNWRhNmQ3
NmJmYzI0NmU1M2RiY2EzMzYyYWNiNDBlMDlmNGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAgLTE0Niw0ICsxNDYsMjggQEAg
UmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ompzb24oKSBjb25zdAog
ICAgIHJldHVybiByZXBvcnREZXRhaWxzOwogfQogCisvLyBNQVJLOiAtIEZyYXVkIFByZXZlbnRp
b24KKyNpZiBIQVZFKFJTQV9CU1NBKQorCitzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IEVwaGVt
ZXJhbFNvdXJjZU5vbmNlUmVxdWlyZWROdW1iZXJPZkJ5dGVzID0gMTY7CisKK2Jvb2wgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlOjppc1ZhbGlkKCkgY29uc3QK
K3sKKyAgICAvLyBGSVhNRTogSW52ZXN0aWdhdGUgaWYgd2UgY2FuIGRvIHdpdGggYSBzaW1wbGUg
bGVuZ3RoIGNoZWNrIGluc3RlYWQgb2YgZGVjb2RpbmcuCisgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTk0NQorICAgIFZlY3Rvcjx1aW50OF90PiBkaWdl
c3Q7CisgICAgaWYgKCFiYXNlNjRVUkxEZWNvZGUobm9uY2UsIGRpZ2VzdCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICByZXR1cm4gZGlnZXN0LnNpemUoKSA9PSBFcGhlbWVyYWxTb3VyY2VO
b25jZVJlcXVpcmVkTnVtYmVyT2ZCeXRlczsKIH0KKwordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6c2V0RXBoZW1lcmFsU291cmNlTm9uY2UoRXBoZW1lcmFsU291cmNlTm9uY2UmJiBub25j
ZSkKK3sKKyAgICBpZiAoIW5vbmNlLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1f
ZXBoZW1lcmFsU291cmNlTm9uY2UgPSBXVEZNb3ZlKG5vbmNlKTsKK30KKworI2VuZGlmIC8vIEhB
VkUoUlNBX0JTU0EpCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKaW5kZXggYTRjOTZjYTFlMGE0ZDAw
YjJhYWYxY2M1NjkzMzI5NzlhOWY4MjUyMC4uYTc3NDU0YzAyMzQ2ZjgwMWUwM2FjMGNhN2Y0ZTUz
ZTQ1NGJhNzQxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50LmgKQEAgLTM2LDYgKzM2LDEwIEBACiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
SGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCitPQkpDX0NMQVNTIFJT
QUJTU0FUb2tlblJlYWR5OworT0JKQ19DTEFTUyBSU0FCU1NBVG9rZW5XYWl0aW5nQWN0aXZhdGlv
bjsKK09CSkNfQ0xBU1MgUlNBQlNTQVRva2VuQmxpbmRlcjsKKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB7CkBAIC0yMDEsMjggKzIwNSw2IEBA
IHB1YmxpYzoKICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlP
ckRlbGV0ZWQgPSBmYWxzZTsKICAgICB9OwogCi0gICAgc3RydWN0IEVwaGVtZXJhbFNvdXJjZU5v
bmNlIHsKLSAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBSZXF1aXJlZE51bWJlck9m
Qnl0ZXMgPSAxNjsKLQotICAgICAgICBFcGhlbWVyYWxTb3VyY2VOb25jZSgpID0gZGVmYXVsdDsK
LSAgICAgICAgZXhwbGljaXQgRXBoZW1lcmFsU291cmNlTm9uY2UoY29uc3QgU3RyaW5nJiBub25j
ZVN0cmluZykKLSAgICAgICAgICAgIDogbm9uY2UgeyBub25jZVN0cmluZyB9Ci0gICAgICAgIHsK
LSAgICAgICAgfQotCi0gICAgICAgIC8vIEZJWE1FOiBJbnZlc3RpZ2F0ZSBpZiB3ZSBjYW4gZG8g
d2l0aCBhIHNpbXBsZSBsZW5ndGggY2hlY2sgaW5zdGVhZCBvZiBkZWNvZGluZy4KLSAgICAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTk0NQotICAgICAg
ICBib29sIGlzVmFsaWQoKSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICBWZWN0b3I8dWlu
dDhfdD4gZGlnZXN0OwotICAgICAgICAgICAgaWYgKCFiYXNlNjRVUkxEZWNvZGUobm9uY2UsIGRp
Z2VzdCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgcmV0dXJu
IGRpZ2VzdC5zaXplKCkgPT0gUmVxdWlyZWROdW1iZXJPZkJ5dGVzOwotICAgICAgICB9Ci0KLSAg
ICAgICAgU3RyaW5nIG5vbmNlOwotICAgIH07Ci0KICAgICBzdHJ1Y3QgUHJpb3JpdHkgewogICAg
ICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IE1heEVudHJvcHkgPSA2MzsKIApAQCAtMjc4
LDkgKzI2MCw2IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBSZWY8SlNPTjo6T2JqZWN0
PiBqc29uKCkgY29uc3Q7CiAgICAgY29uc3QgU291cmNlU2l0ZSYgc291cmNlU2l0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fc291cmNlU2l0ZTsgfTsKICAgICBjb25zdCBBdHRyaWJ1dGVPblNpdGUmIGF0
dHJpYnV0ZU9uU2l0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmlidXRlT25TaXRlOyB9OwotICAg
IHZvaWQgc2V0RXBoZW1lcmFsU291cmNlTm9uY2UoRXBoZW1lcmFsU291cmNlTm9uY2UmJiBub25j
ZSkgeyBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlID0gV1RGTW92ZShub25jZSk7IH07Ci0gICAgT3B0
aW9uYWw8RXBoZW1lcmFsU291cmNlTm9uY2U+IGVwaGVtZXJhbFNvdXJjZU5vbmNlKCkgY29uc3Qg
eyByZXR1cm4gIW1fZXBoZW1lcmFsU291cmNlTm9uY2UgPyBXVEY6Om51bGxvcHQgOiBtX2VwaGVt
ZXJhbFNvdXJjZU5vbmNlLT5pc1ZhbGlkKCkgPyBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlIDogV1RG
OjpudWxsb3B0OyB9OwotICAgIHZvaWQgY2xlYXJFcGhlbWVyYWxTb3VyY2VOb25jZSgpIHsgbV9l
cGhlbWVyYWxTb3VyY2VOb25jZSAgPSBXVEY6Om51bGxvcHQ7IH07CiAgICAgV2FsbFRpbWUgdGlt
ZU9mQWRDbGljaygpIGNvbnN0IHsgcmV0dXJuIG1fdGltZU9mQWRDbGljazsgfQogICAgIE9wdGlv
bmFsPFdhbGxUaW1lPiBlYXJsaWVzdFRpbWVUb1NlbmQoKSBjb25zdCB7IHJldHVybiBtX2Vhcmxp
ZXN0VGltZVRvU2VuZDsgfTsKICAgICB2b2lkIHNldEVhcmxpZXN0VGltZVRvU2VuZChXYWxsVGlt
ZSB0aW1lKSB7IG1fZWFybGllc3RUaW1lVG9TZW5kID0gdGltZTsgfQpAQCAtMjkxLDYgKzI3MCwy
OCBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2VEZXNjcmlwdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fc291cmNlRGVzY3JpcHRpb247IH0KICAgICBjb25zdCBTdHJpbmcmIHB1cmNo
YXNlcigpIGNvbnN0IHsgcmV0dXJuIG1fcHVyY2hhc2VyOyB9CiAKKyAgICAvLyBNQVJLOiAtIEZy
YXVkIFByZXZlbnRpb24KKyNpZiBIQVZFKFJTQV9CU1NBKQorICAgIHN0cnVjdCBFcGhlbWVyYWxT
b3VyY2VOb25jZSB7CisgICAgICAgIFN0cmluZyBub25jZTsKKworICAgICAgICBXRUJDT1JFX0VY
UE9SVCBib29sIGlzVmFsaWQoKSBjb25zdDsKKyAgICB9OworCisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRFcGhlbWVyYWxTb3VyY2VOb25jZShFcGhlbWVyYWxTb3VyY2VOb25jZSYmKTsKKyAg
ICBPcHRpb25hbDxFcGhlbWVyYWxTb3VyY2VOb25jZT4gZXBoZW1lcmFsU291cmNlTm9uY2UoKSBj
b25zdCB7IHJldHVybiBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlOyB9OworICAgIHZvaWQgY2xlYXJF
cGhlbWVyYWxTb3VyY2VOb25jZSgpIHsgbV9lcGhlbWVyYWxTb3VyY2VOb25jZS5yZXNldCgpOyB9
OworCisgICAgc3RydWN0IFBlcnNpc3RlbnRCbGluZGVkVG9rZW4geworICAgICAgICBTdHJpbmcg
dG9rZW5CYXNlNjRVUkw7CisgICAgICAgIFN0cmluZyBrZXlJREJhc2U2NFVSTDsKKyAgICAgICAg
U3RyaW5nIHNpZ25hdHVyZUJhc2U2NFVSTDsKKyAgICB9OworCisgICAgV0VCQ09SRV9FWFBPUlQg
UmVmUHRyPEpTT046Ok9iamVjdD4gYmxpbmRlZFNlY3JldEpzb24oY29uc3QgU3RyaW5nJiBzZXJ2
ZXJQdWJsaWNLZXlCYXNlNjRVUkwpOworICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPFBlcnNp
c3RlbnRCbGluZGVkVG9rZW4+IGNhbGN1bGF0ZVBlcnNpc3RlbnRCbGluZGVkVG9rZW4oY29uc3Qg
U3RyaW5nJiBzZXJ2ZXJSZXNwb25zZUJhc2U2NFVSTCk7CisjZW5kaWYgLy8gSEFWRShSU0FfQlNT
QSkKKwogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBj
b25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ+IGRlY29kZShEZWNvZGVyJik7CiAKQEAgLTMwNCw5ICszMDUsMTkg
QEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9wdXJjaGFzZXI7CiAgICAgV2FsbFRpbWUgbV90aW1l
T2ZBZENsaWNrOwogCi0gICAgT3B0aW9uYWw8RXBoZW1lcmFsU291cmNlTm9uY2U+IG1fZXBoZW1l
cmFsU291cmNlTm9uY2U7CiAgICAgT3B0aW9uYWw8QXR0cmlidXRpb25UcmlnZ2VyRGF0YT4gbV9h
dHRyaWJ1dGlvblRyaWdnZXJEYXRhOwogICAgIE9wdGlvbmFsPFdhbGxUaW1lPiBtX2VhcmxpZXN0
VGltZVRvU2VuZDsKKworI2lmIEhBVkUoUlNBX0JTU0EpCisgICAgc3RydWN0IEJsaW5kZWRUb2tl
biB7CisgICAgICAgIFJldGFpblB0cjxSU0FCU1NBVG9rZW5CbGluZGVyPiBibGluZGVyOworICAg
ICAgICBSZXRhaW5QdHI8UlNBQlNTQVRva2VuV2FpdGluZ0FjdGl2YXRpb24+IHdhaXRpbmdUb2tl
bjsKKyAgICAgICAgUmV0YWluUHRyPFJTQUJTU0FUb2tlblJlYWR5PiByZWFkeVRva2VuOworICAg
IH07CisKKyAgICBPcHRpb25hbDxFcGhlbWVyYWxTb3VyY2VOb25jZT4gbV9lcGhlbWVyYWxTb3Vy
Y2VOb25jZTsKKyAgICBCbGluZGVkVG9rZW4gbV9ibGluZGVkVG9rZW47CisjZW5kaWYgLy8gSEFW
RShSU0FfQlNTQSkKIH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5t
bSBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
Y29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE1NWYzNTg2YWZlOTA3ZGMzZmQwNDk1M2NlNWRmNTdmM2Y4ZmEz
MjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbQpAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIgor
CisjaWYgSEFWRShSU0FfQlNTQSkKKworI2ltcG9ydCA8cGFsL2NvY29hL0NyeXB0b0tpdENCcmlk
Z2luZ1NvZnRMaW5rLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmUHRyPEpTT046Ok9i
amVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmJsaW5kZWRTZWNyZXRKc29uKGNvbnN0IFN0
cmluZyYgc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKQoreworICAgIGlmICghbV9lcGhlbWVyYWxT
b3VyY2VOb25jZSB8fCAhbV9lcGhlbWVyYWxTb3VyY2VOb25jZS0+aXNWYWxpZCgpKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKworICAgIHsKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHNlcnZl
clB1YmxpY0tleURhdGE7CisgICAgICAgIGlmICghYmFzZTY0VVJMRGVjb2RlKHNlcnZlclB1Ymxp
Y0tleUJhc2U2NFVSTCwgc2VydmVyUHVibGljS2V5RGF0YSkpCisgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICAgICAgYXV0byBzZXJ2ZXJQdWJsaWNLZXkgPSBhZG9wdE5TKFtbTlNEYXRh
IGFsbG9jXSBpbml0V2l0aEJ5dGVzOnNlcnZlclB1YmxpY0tleURhdGEuZGF0YSgpIGxlbmd0aDpz
ZXJ2ZXJQdWJsaWNLZXlEYXRhLnNpemUoKV0pOworCisgICAgICAgIC8vIEZJWE1FKDIyMjAxOCk6
IENoZWNrIGVycm9yLgorICAgICAgICBtX2JsaW5kZWRUb2tlbi5ibGluZGVyID0gYWRvcHROUyhb
UEFMOjphbGxvY1JTQUJTU0FUb2tlbkJsaW5kZXJJbnN0YW5jZSgpIGluaXRXaXRoUHVibGljS2V5
OnNlcnZlclB1YmxpY0tleS5nZXQoKSBlcnJvcjpudWxscHRyXSk7CisgICAgICAgIGlmICghbV9i
bGluZGVkVG9rZW4uYmxpbmRlcikKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0K
KworICAgIC8vIEZJWE1FKDIyMjAxOCk6IENoZWNrIGVycm9yLgorICAgIG1fYmxpbmRlZFRva2Vu
LndhaXRpbmdUb2tlbiA9IFttX2JsaW5kZWRUb2tlbi5ibGluZGVyIHRva2VuV2FpdGluZ0FjdGl2
YXRpb25XaXRoQ29udGVudDpudWxscHRyIGVycm9yOm51bGxwdHJdOworICAgIGlmICghbV9ibGlu
ZGVkVG9rZW4ud2FpdGluZ1Rva2VuKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1
dG8gYmxpbmRlZFNlY3JldCA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CisgICAgYmxpbmRlZFNl
Y3JldC0+c2V0U3RyaW5nKCJjbGlja19ub25jZSJfcywgbV9lcGhlbWVyYWxTb3VyY2VOb25jZS0+
bm9uY2UpOworICAgIGJsaW5kZWRTZWNyZXQtPnNldFN0cmluZygiYmxpbmRlZF9zZWNyZXQiX3Ms
IFdURjo6YmFzZTY0VVJMRW5jb2RlKFttX2JsaW5kZWRUb2tlbi53YWl0aW5nVG9rZW4gYmxpbmRl
ZE1lc3NhZ2VdLmJ5dGVzLCBbbV9ibGluZGVkVG9rZW4ud2FpdGluZ1Rva2VuIGJsaW5kZWRNZXNz
YWdlXS5sZW5ndGgpKTsKKworICAgIHJldHVybiBibGluZGVkU2VjcmV0OworfQorCithdXRvIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpjYWxjdWxhdGVQZXJzaXN0ZW50QmxpbmRlZFRva2VuKGNv
bnN0IFN0cmluZyYgc2VydmVyUmVzcG9uc2VCYXNlNjRVUkwpIC0+IE9wdGlvbmFsPFBlcnNpc3Rl
bnRCbGluZGVkVG9rZW4+Cit7CisgICAgaWYgKCFtX2JsaW5kZWRUb2tlbi53YWl0aW5nVG9rZW4p
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICB7CisgICAgICAgIFZlY3Rvcjx1
aW50OF90PiBzZXJ2ZXJSZXNwb25zZURhdGE7CisgICAgICAgIGlmICghYmFzZTY0VVJMRGVjb2Rl
KHNlcnZlclJlc3BvbnNlQmFzZTY0VVJMLCBzZXJ2ZXJSZXNwb25zZURhdGEpKQorICAgICAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgYXV0byBzZXJ2ZXJSZXNwb25zZSA9IGFk
b3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6c2VydmVyUmVzcG9uc2VEYXRhLmRh
dGEoKSBsZW5ndGg6c2VydmVyUmVzcG9uc2VEYXRhLnNpemUoKV0pOworCisgICAgICAgIC8vIEZJ
WE1FKDIyMjAxOCk6IENoZWNrIGVycm9yLgorICAgICAgICBtX2JsaW5kZWRUb2tlbi5yZWFkeVRv
a2VuID0gW21fYmxpbmRlZFRva2VuLndhaXRpbmdUb2tlbiBhY3RpdmF0ZVRva2VuV2l0aFNlcnZl
clJlc3BvbnNlOnNlcnZlclJlc3BvbnNlLmdldCgpIGVycm9yOm51bGxwdHJdOworICAgICAgICBp
ZiAoIW1fYmxpbmRlZFRva2VuLnJlYWR5VG9rZW4pCisgICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworICAgIH0KKworICAgIFBlcnNpc3RlbnRCbGluZGVkVG9rZW4gdG9rZW47CisgICAg
dG9rZW4udG9rZW5CYXNlNjRVUkwgPSBXVEY6OmJhc2U2NFVSTEVuY29kZShbbV9ibGluZGVkVG9r
ZW4ucmVhZHlUb2tlbiB0b2tlbkNvbnRlbnRdLmJ5dGVzLCBbbV9ibGluZGVkVG9rZW4ucmVhZHlU
b2tlbiB0b2tlbkNvbnRlbnRdLmxlbmd0aCk7CisgICAgdG9rZW4ua2V5SURCYXNlNjRVUkwgPSBX
VEY6OmJhc2U2NFVSTEVuY29kZShbbV9ibGluZGVkVG9rZW4ucmVhZHlUb2tlbiBrZXlJZF0uYnl0
ZXMsIFttX2JsaW5kZWRUb2tlbi5yZWFkeVRva2VuIGtleUlkXS5sZW5ndGgpOworICAgIHRva2Vu
LnNpZ25hdHVyZUJhc2U2NFVSTCA9IFdURjo6YmFzZTY0VVJMRW5jb2RlKFttX2JsaW5kZWRUb2tl
bi5yZWFkeVRva2VuIHNpZ25hdHVyZV0uYnl0ZXMsIFttX2JsaW5kZWRUb2tlbi5yZWFkeVRva2Vu
IHNpZ25hdHVyZV0ubGVuZ3RoKTsKKworICAgIHJldHVybiB0b2tlbjsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSEFWRShSU0FfQlNTQSkKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3Njk4Nzc5MTkzZDRiMzQ1NzZm
ZDI5N2YxYmRmZDY3NDlkYTAyY2QxLi5lNDRjNzUyYzg5YjFjYjBkZjA3MWZkYjk1YmNlNWZhNzcz
YTM5NWIwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFw
cGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQgY29ycmVz
cG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzczNTgxNDEy
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICBBZGQgdGVzdHMuCisKIDIwMjEt
MDItMTUgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgUENN
OiBBZGQgaGlnaCBlbnRyb3B5IGF0dHJpYnV0aW9uU291cmNlTm9uY2UgYXR0cmlidXRlIHRvIGFu
Y2hvciB0YWdzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAppbmRleCA3Y2Q3NzViNGM2MDQyMGVm
YWUxZGUxNjc0MTgxZDBlOTFmOWU2MmIzLi41Mjk3NmI1Y2RiYzRlNDVjNmU3YjE4M2YzZThhYzdh
OWNkOTQ4YTE1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAgLTI0LDYgKzI0LDcgQEAK
ICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGVzdC5oIgogCiAjaW5jbHVk
ZSA8V2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oPgogI2luY2x1ZGUgPHd0Zi9VUkwu
aD4KQEAgLTM5LDYgKzQwLDExIEBAIGNvbnN0IFVSTCB3ZWJLaXRVUkwgeyB7IH0sICJodHRwczov
L3dlYmtpdC5vcmciX3MgfTsKIGNvbnN0IFVSTCBleGFtcGxlVVJMIHsgeyB9LCAiaHR0cHM6Ly9l
eGFtcGxlLmNvbSJfcyB9OwogY29uc3QgVVJMIGVtcHR5VVJMIHsgfTsKIAorI2lmIEhBVkUoUlNB
X0JTU0EpCitjb25zdCBjaGFyIHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTFtdID0KKyAgICAiTUlJ
Q0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF6YjFkVGhydFl3Vmg0NlNq
SW5lZ0toQXFwYkp3bTFYblRCQ3Z5YlNLOHprNTNSMEFtMWhHMzNBVkY1SjFscVlmMzZ3cDY2M0dh
c2NsSHRxenZ4RlpJdkRBMURVU0g0YVp6X2ZESENUVHhFZUpWUE9SUzN6Tk4yVWpXd2J0bndzaDRC
bURUaS16X2NEbjBMQXoySnVaeUtseUZ0NUdnVkxBUXZMOUgzVkxIVTlfWEhOSy11Ym95WGZjSFJU
dHJEbnB1M2M2d3ZYNWRkLUFKb0xtSVFUWkJFSmZWa3hCR3puazFxS0hqYzZuQVNBaXJLRl93SkNu
dXdBSzhDNkJBY2pOY3dVV0NlS3AwWUVDekNYVS0tSlhkMk9FVS1RaHhQQzY3ZmFpRE9oM1Ywdmxm
cVpMdHJsYm5hblVDS3J2aHc3R2FHT0dZb3RJcm5adHVOZnhDMTRkX1hOVmQxRlM4bkhqUlRIbkVn
d19qbmxTc3NmZ1N0ejB1SnRjbWtmZ29KQnZPRTRtSVJwaTdpU2xSZlhOa0tzV1gxSi1nd2NuQ1Zv
NXUwdUpFVzZYNk55dkVHWUo4dzVCUGZ3c1F1Szl5LTRaN2lrdDlJT3VjRUhZN1RoRG1pOVROTmhI
QlZqMEd1NHdHb1NqcTNhNnZMNU4xMFpTSFhvcTFYZ2ZHUHJtSGhoTDkwY2p2V29ub3lPWHNVcWxY
RXpUakQyVzk4OTdRLU14OUJVTnJHUVBxbUl4OEY1TXd4V2NPcnllOFdScDRRODhuMllTVW5WN0M4
YXlsZDN2MUZoN041amVTcWVWbXREVlJZVG4yc1ZmTnFnWHJ6Z2RpZ0pjUVI4dkZFTnU2bnpGUHdz
clhQTWFDaUxVblpOVW1RMVpTTFFlUXloWVh4SHFSSnJudUNEV1hMa0NBd0VBQVEiOworI2VuZGlm
CisKIC8vIFBvc2l0aXZlIHRlc3QgY2FzZXMuCiAKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQsIFZhbGlkTWluVmFsdWVzKQpAQCAtMTIzLDEyICsxMjksMzIgQEAgVEVTVChQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCwgVmFsaWRDb252ZXJzaW9uVVJMcykKICAgICBBU1NFUlRfRVEob3B0aW9u
YWxDb252ZXJzaW9uLT5wcmlvcml0eSwgKHVpbnQzMl90KTIpOwogfQogCisjaWYgSEFWRShSU0Ff
QlNTQSkKKwogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgVmFsaWRTb3VyY2VOb25jZSkK
IHsKICAgICBhdXRvIGVwaGVtZXJhbE5vbmNlID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVw
aGVtZXJhbFNvdXJjZU5vbmNlIHsgIkFCQ0RFRmFiY2RlZjAxMjM0NTY3ODkiX3MgfTsKICAgICBB
U1NFUlRfVFJVRShlcGhlbWVyYWxOb25jZS5pc1ZhbGlkKCkpOwogfQogCitURVNUKFByaXZhdGVD
bGlja01lYXN1cmVtZW50LCBWYWxpZEJsaW5kZWRTZWNyZXQpCit7CisgICAgYXV0byBlcGhlbWVy
YWxOb25jZSA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZSB7
ICJBQkNERUZhYmNkZWYwMTIzNDU2Nzg5Il9zIH07CisgICAgRVhQRUNUX1RSVUUoZXBoZW1lcmFs
Tm9uY2UuaXNWYWxpZCgpKTsKKworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IHBjbTsKKyAg
ICBwY20uc2V0RXBoZW1lcmFsU291cmNlTm9uY2UoV1RGTW92ZShlcGhlbWVyYWxOb25jZSkpOwor
CisgICAgYXV0byBibGluZGVkU2VjcmV0ID0gcGNtLmJsaW5kZWRTZWNyZXRKc29uKHNlcnZlclB1
YmxpY0tleUJhc2U2NFVSTCk7CisgICAgRVhQRUNUX05PVF9OVUxMKGJsaW5kZWRTZWNyZXQpOwor
ICAgIEVYUEVDVF9TVFJFUShibGluZGVkU2VjcmV0LT5nZXRTdHJpbmcoImNsaWNrX25vbmNlIl9z
KS51dGY4KCkuZGF0YSgpLCAiQUJDREVGYWJjZGVmMDEyMzQ1Njc4OSIpOworICAgIEVYUEVDVF9G
QUxTRShibGluZGVkU2VjcmV0LT5nZXRTdHJpbmcoImJsaW5kZWRfc2VjcmV0Il9zKS5pc0VtcHR5
KCkpOworCisgICAgLy8gRklYTUUoMjIyMDE4KTogTW9jayB0aGUgc2VydmVyIHJlc3BvbnNlIGFu
ZCBjb250aW51ZSB0aGUgdGVzdC4KK30KKworI2VuZGlmIC8vIEhBVkUoUlNBX0JTU0EpCisKIC8v
IE5lZ2F0aXZlIHRlc3QgY2FzZXMuCiAKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIElu
dmFsaWRTb3VyY2VJRCkKQEAgLTI4MSw2ICszMDcsOCBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1
cmVtZW50LCBJbnZhbGlkQ29udmVyc2lvbldpdGhEaXNhbGxvd2VkVVJMQ29tcG9uZW50cykKICAg
ICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKIH0KIAorI2lmIEhBVkUoUlNBX0JT
U0EpCisKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRTb3VyY2VOb25jZSkK
IHsKICAgICAvLyBGZXdlciB0aGFuIHRoZSByZXF1cmllZCBudW1iZXIgb2YgYnl0ZXMuCkBAIC0z
MDAsNCArMzI4LDIzIEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRTb3Vy
Y2VOb25jZSkKICAgICBBU1NFUlRfRkFMU0UoZXBoZW1lcmFsTm9uY2UuaXNWYWxpZCgpKTsKIH0K
IAorVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZEJsaW5kZWRTZWNyZXQpCit7
CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgcGNtOworICAgIGF1dG8gYmxpbmRlZFNlY3Jl
dCA9IHBjbS5ibGluZGVkU2VjcmV0SnNvbihzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkwpOworICAg
IEVYUEVDVF9OVUxMKGJsaW5kZWRTZWNyZXQpOworCisgICAgYXV0byBlcGhlbWVyYWxOb25jZSA9
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZSB7ICJBQkNERUZh
YmNkZWYwMTIzNDU2Nzg5Il9zIH07CisgICAgRVhQRUNUX1RSVUUoZXBoZW1lcmFsTm9uY2UuaXNW
YWxpZCgpKTsKKyAgICBwY20uc2V0RXBoZW1lcmFsU291cmNlTm9uY2UoV1RGTW92ZShlcGhlbWVy
YWxOb25jZSkpOworCisgICAgYmxpbmRlZFNlY3JldCA9IHBjbS5ibGluZGVkU2VjcmV0SnNvbihz
ZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkwpOworICAgIEVYUEVDVF9OT1RfTlVMTChibGluZGVkU2Vj
cmV0KTsKKworICAgIGF1dG8gcGVyc2lzdGVudFRva2VuID0gcGNtLmNhbGN1bGF0ZVBlcnNpc3Rl
bnRCbGluZGVkVG9rZW4oZW1wdHlTdHJpbmcoKSk7CisgICAgRVhQRUNUX0ZBTFNFKHBlcnNpc3Rl
bnRUb2tlbik7Cit9CisKKyNlbmRpZiAvLyBIQVZFKFJTQV9CU1NBKQorCiB9IC8vIG5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420748</attachid>
            <date>2021-02-17 16:07:05 -0800</date>
            <delta_ts>2021-02-17 17:03:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222019-20210217160704.patch</filename>
            <type>text/plain</type>
            <size>41298</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDUwYzU1NmNjMjZjMjU5MjcyZWY2ZjYw
Y2I3NzVhZDBiNmU4NDA2OWYuLjU2MzQ5YTQxNTE1NzkzNGEzOWExNGQ0OTAxMzg5M2QwZjZkNjdk
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5f
dGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQg
Y29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcz
NTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd3RmL1BsYXRmb3JtSGF2ZS5oOgorICAgICAgICBBZGRzIGEgY29tcGlsZSB0aW1lIGZsYWcg
Zm9yIFJTQUJTU0EuCisKIDIwMjEtMDItMTUgIFBlciBBcm5lICA8cHZvbGxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW21hY09TXSBDbG9zZSBYUEMgY29ubmVjdGlvbnMgYmVmb3JlIGVudGVyaW5n
IHNhbmRib3gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMTU0ZDExOWE5NjJkM2M5MDkzNzM4N2Y5NzViY2VjOTFl
Mjc4ZmU1Li4yYWY2MTE1MGYxMTI2ZTI5ODk0YzZlYjI3ZDFjMzE1YmQ2OTc2MzQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQgY29y
cmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzczNTgx
NDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENv
dmVyZWQgYnkgQVBJIHRlc3RzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggdXRpbGl6ZXMgUlNBQlNT
QSB0byBnZW5lcmF0ZSBzZWNyZXQgdG9rZW4gZm9yIFBDTSBmcmF1ZCBwcmV2ZW50aW9uLgorCisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZzoKKyAgICAgICAgKiBTb3Vy
Y2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgUGFwZXJ3b3JrIHRvIGxpbmsgQ3J5cHRvS2l0Q0JyaWRnaW5nLgorCisgICAg
ICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNWYWxp
ZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c2V0
RXBoZW1lcmFsU291cmNlTm9uY2UpOgorICAgICAgICAqIGxvYWRlci9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0
dHJpYnV0ZU9uU2l0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6ZXBoZW1lcmFsU291cmNlTm9uY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmNsZWFyRXBoZW1lcmFsU291cmNlTm9uY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5v
bmNlOjpFcGhlbWVyYWxTb3VyY2VOb25jZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFsU291cmNlTm9uY2U6OmlzVmFsaWQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OnNldEVwaGVtZXJhbFNvdXJjZU5vbmNlKTogRGVsZXRlZC4KKyAgICAgICAgR3JvdXBzIGZ1bmN0
aW9uYWxpdGllcyBiZWhpbmQgSEFWRV9SU0FfQlNTQS4KKworICAgICAgICAqIGxvYWRlci9jb2Nv
YS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpibGluZGVkU2VjcmV0SnNvbik6CisgICAgICAg
IChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y2FsY3VsYXRlUGVyc2lzdGVudEJs
aW5kZWRUb2tlbik6CisgICAgICAgIEludHJvZHVjZXMgbmV3IG1ldGhvZHMgdG8gZ2VuZXJhdGUg
dGhlIGJsaW5kZWQgc2VjcmV0cyBhbmQgdW5saW5rYWJsZSB0b2tlbnMuCisKIDIwMjEtMDItMTUg
IEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgUENNOiBBZGQg
aGlnaCBlbnRyb3B5IGF0dHJpYnV0aW9uU291cmNlTm9uY2UgYXR0cmlidXRlIHRvIGFuY2hvciB0
YWdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IDA1NGY2N2U2MmE5MmMwNTY0MDQwM2Q5MDIwMTRm
MjQzMzE0NzMzZmIuLjFmNjBhNzhlZmMwODk0ZmU5ZTAyOGExNjMyOWZiMGVlN2VlMjAzOTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC04ODQsMyArODg0LDggQEAKICNkZWZpbmUgSEFWRV9DT1JF
X0dSQVBISUNTX1JPTU1SR0JfQ09MT1JfU1BBQ0UgMQogI2RlZmluZSBIQVZFX0NPUkVfR1JBUEhJ
Q1NfWFlaX0NPTE9SX1NQQUNFIDEKICNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDApIFwKKyAgICB8fCAoUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTUw
MDAwKQorI2RlZmluZSBIQVZFX1BDTV9GUkFVRF9QUkVWRU5USU9OIDEKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk3
MGU3ZTE4NGVjMjVmMDRiNWZkYTllOWI4NDNkMDYwODQ0Y2RmNzUuLjE4ZDc2NDdkMDc4MzcwZTJh
NjcyNDY1YWQ1NjU5ODI2Y2NjYzE5YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9Q
QUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFM
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNiw2ICsxMzYsOCBAQAogCQk1NzBBQjhG
OTIwQUY2RTNEMDBCOEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBBQjhGODIwQUY2RTNEMDBCOEJFODcg
LyogTlNYUENDb25uZWN0aW9uU1BJLmggKi87IH07CiAJCTU3MkExMDc4MjJCNDU2RjUwMEY0MTBD
OCAvKiBBdXRoS2l0U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NzJBMTA3NzIyQjQ1NkY1MDBGNDEwQzggLyogQXV0aEtpdFNQSS5oICovOyB9Owog
CQk1NzZDQTlENjIyQjg1NEFCMDAzMDE0M0MgLyogQXBwU1NPU1BJLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzZDQTlENTIyQjg1NEFCMDAzMDE0M0Mg
LyogQXBwU1NPU1BJLmggKi87IH07CisJCTU3RjFDOTA5MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlw
dG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTdGMUM5MDcyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlk
Z2luZ1NvZnRMaW5rLmggKi87IH07CisJCTU3RjFDOTBBMjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlw
dG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3RjFDOTA4MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJp
ZGdpbmdTb2Z0TGluay5tbSAqLzsgfTsKIAkJNTdGRDMxOEEyMkIzNTkzRTAwOEQwRThCIC8qIEFw
cFNTT1NvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTdGRDMxODkyMkIzNTkzRTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLm1tICovOyB9
OwogCQk1N0ZEMzE4QjIyQjM1OTg5MDA4RDBFOEIgLyogQXBwU1NPU29mdExpbmsuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RkQzMTg4MjJCMzU5MkYw
MDhEMEU4QiAvKiBBcHBTU09Tb2Z0TGluay5oICovOyB9OwogCQk1QzdDNzg3MzIzQUMzRTc3MDA2
NUY0N0UgLyogTWFuYWdlZENvbmZpZ3VyYXRpb25Tb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM3Qzc4NzEyM0FDM0U3NzAwNjVGNDdFIC8q
IE1hbmFnZWRDb25maWd1cmF0aW9uU29mdExpbmsuaCAqLzsgfTsKQEAgLTMzNSw2ICszMzcsOCBA
QAogCQk1NzBBQjhGODIwQUY2RTNEMDBCOEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE5TWFBDQ29ubmVjdGlvblNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1NzJBMTA3NzIyQjQ1NkY1MDBGNDEwQzggLyogQXV0aEtpdFNQSS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBdXRoS2l0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NkNB
OUQ1MjJCODU0QUIwMDMwMTQzQyAvKiBBcHBTU09TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwU1NP
U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3RjFDOTA3MjVEQ0YwQ0YwMEU4
RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlw
dG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
N0YxQzkwODI1RENGMENGMDBFOEY2RUEgLyogQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGRDMxODgyMkIzNTkyRjAwOEQwRThCIC8qIEFw
cFNTT1NvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcFNTT1Nv
ZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RkQzMTg5MjJCMzU5M0Uw
MDhEMEU4QiAvKiBBcHBTU09Tb2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IEFwcFNTT1NvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1QzdDNzg3MTIzQUMzRTc3MDA2NUY0N0UgLyogTWFuYWdlZENvbmZpZ3VyYXRpb25Tb2Z0
TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYW5hZ2VkQ29uZmlndXJh
dGlvblNvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02ODEsNiArNjg1
LDggQEAKIAkJCQk1N0ZEMzE4OTIyQjM1OTNFMDA4RDBFOEIgLyogQXBwU1NPU29mdExpbmsubW0g
Ki8sCiAJCQkJMDc3RTg3QjAyMjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5r
LmggKi8sCiAJCQkJMDc3RTg3QUYyMjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRM
aW5rLm1tICovLAorCQkJCTU3RjFDOTA3MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJp
ZGdpbmdTb2Z0TGluay5oICovLAorCQkJCTU3RjFDOTA4MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlw
dG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbSAqLywKIAkJCQlGNDQyOTE2NjFGQTUyNzA1MDAyQ0M5
M0UgLyogRmlsZVNpemVGb3JtYXR0ZXJDb2NvYS5tbSAqLywKIAkJCQkxQzAyMkVGQzIyQ0ZFOEUw
MDA2REYwMUIgLyogR3VuemlwLmNwcCAqLywKIAkJCQlDREFDQjM1RTIzODczRTQ4MDAxOEQ3Q0Ug
LyogTWVkaWFUb29sYm94U29mdExpbmsuY3BwICovLApAQCAtODE4LDYgKzgyNCw3IEBACiAJCQkJ
MUNDRUU0RjUyMEQ4NzE5MzAwNDdCMDk3IC8qIENvcmVVSVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEM1QUY5MTkxRjQzQTRDNzAwMkVBQzAyIC8qIENvcmVVSVNQSS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUMwOUQwNTMxRTMxQzQ0MTAwNzI1RjE4IC8qIENyeXB0b0RpZ2VzdC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNTdGMUM5MDkyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2lu
Z1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE0MTFGM0JFQjQ5MDBEQkMzMTcg
LyogRGF0YURldGVjdG9yc0NvcmVTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NThBMUY0
NTEzMEYwMEY0RUJCNiAvKiBEYXRhRGV0ZWN0b3JzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
QzVBRjkxQTFGNDNBNEM3MDAyRUFDMDIgLyogRGF0YURldGVjdG9yc1VJU1BJLmggaW4gSGVhZGVy
cyAqLywKQEAgLTEwMjYsNiArMTAzMyw3IEBACiAJCQkJMEM1RkZGMEYxRjc4RDlEQTAwOUVGRjFB
IC8qIENsb2NrQ00ubW0gaW4gU291cmNlcyAqLywKIAkJCQkwQ0Y5OUNBODFGNzM4NDM3MDA3RUU3
OTMgLyogQ29yZU1lZGlhU29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMwOUQwNTYx
RTMxQzQ2NTAwNzI1RjE4IC8qIENyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk1N0YxQzkwQTI1RENGMENGMDBFOEY2RUEgLyogQ3J5cHRvS2l0Q0JyaWRnaW5n
U29mdExpbmsubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTE3NUI1ODFGNkI0NzA1MDBDNEI5RjAg
LyogRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0NDI5MTY0
MUZBNTI2NzAwMDJDQzkzRSAvKiBGaWxlU2l6ZUZvcm1hdHRlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGNDQyOTE2ODFGQTUyNzA1MDAyQ0M5M0UgLyogRmlsZVNpemVGb3JtYXR0ZXJDb2NvYS5t
bSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2Nv
YS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9j
b2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkYmJlODA2ZmM3
Mzc4NmM0OTJjOTVhMDBhODZlMjZlNjZkMTA2Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2NvY29hL0NyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmgKQEAgLTAs
MCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgSEFWRShQQ01fRlJB
VURfUFJFVkVOVElPTikKKworI2ltcG9ydCA8Q3J5cHRvS2l0Q0JyaWRnaW5nL1JTQUJTU0EuaD4K
KyNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9I
RUFERVIoUEFMLCBDcnlwdG9LaXRDQnJpZGdpbmcpOworCitTT0ZUX0xJTktfQ0xBU1NfRk9SX0hF
QURFUihQQUwsIFJTQUJTU0FUb2tlbkJsaW5kZXIpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0NyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5r
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjc1Y2NlY2FmNjRkYjE0OGNjODQ2OWM0YTZkOTMwZGQ3NDE1MzQwOGEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0NyeXB0b0tp
dENCcmlkZ2luZ1NvZnRMaW5rLm1tCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisKKyNpZiBIQVZFKFBDTV9GUkFVRF9QUkVWRU5USU9OKQorCisjaW1w
b3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDcnlwdG9LaXRDQnJpZGdpbmcsIFBBTF9FWFBPUlQp
OworCitTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENyeXB0b0tp
dENCcmlkZ2luZywgUlNBQlNTQVRva2VuQmxpbmRlciwgUEFMX0VYUE9SVCk7CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMmYwZmRlZmU5M2FlYzZlZWZjZmU4NzFjZWZlZWM5
ZmU0NTgyODc2My4uNTVlMzkwMjZjZmI0NTMzMmJhMDc5MDc3ODBkMDZiY2Y0NmQ5ZDYwMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0xNjcsNiArMTY3LDcgQEAgaW5zcGVjdG9yL21hYy9Q
YWdlRGVidWdnZXJNYWMubW0KIGxvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3Bw
CiBsb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlTWFjLm1tCiBsb2FkZXIvY29jb2Ev
RGlza0NhY2hlTW9uaXRvckNvY29hLm1tCitsb2FkZXIvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDb2NvYS5tbQogbG9hZGVyL2NvY29hL1N1YnJlc291cmNlTG9hZGVyQ29jb2EubW0KIGxv
YWRlci9pb3MvTGVnYWN5UHJldmlld0xvYWRlci5tbQogbG9hZGVyL21hYy9Eb2N1bWVudExvYWRl
ck1hYy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAyOWUxOWE5MTdiNWJlMDRjM2NkZjFiZTNhYWUwZmI0YjdlZGRhY2I3Li5h
MmEyNDdhZmU1OTI2NDE5ZDM3NTM3Y2RmNzQzMWRiNjU0MzA5Mzc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05NDA4LDYgKzk0
MDgsNyBAQAogCQk1N0VFQUE1NzFFQTBBRkJCMDA3MDExMjQgLyogQ29tbW9uQ3J5cHRvREVSVXRp
bGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbW1vbkNy
eXB0b0RFUlV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RUY1
RTVGMUQyMEM4MzkwMDE3MUU2MCAvKiBUZXh0Q29kZWNSZXBsYWNlbWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0Q29kZWNSZXBsYWNlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1N0VGNUU2MTFEMjBEMjg3MDAxNzFFNjAgLyogVGV4dENvZGVj
UmVwbGFjZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4
dENvZGVjUmVwbGFjZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0Yx
QzhFMzI1REM2RUU3MDBFOEY2RUEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1
cmVtZW50Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RjgyNzM5MURC
NzJDMjIwMDlEMkJGNCAvKiBSc2FIYXNoZWRLZXlHZW5QYXJhbXMuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJzYUhhc2hl
ZEtleUdlblBhcmFtcy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RkVERDNE
MURCNkQ0N0YwMEVCOTZGNSAvKiBSc2FLZXlHZW5QYXJhbXMuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJzYUtleUdlblBh
cmFtcy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RkVERDNFMURCNkQ1OTIw
MEVCOTZGNSAvKiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NzE4LDcgKzk3MTksNyBAQAogCQk2QTIyRTg3
MjFGMTA0MkM0MDBGNTQ2QzMgLyogSW5zcGVjdG9yQ2FudmFzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluc3BlY3RvckNhbnZhcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZB
NzI3OTg4MUYxNkMyOUIwMDNGMzlCOCAvKiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvclNoYWRlclByb2dyYW0uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkE3Mjc5ODkxRjE2QzI5QjAwM0YzOUI4IC8qIElu
c3BlY3RvclNoYWRlclByb2dyYW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTZCMEEwN0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk2QjBBMDdGMDIxRkE0QjVDMDBENTczOTEgLyogUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkIwQTA3
RjEyMUZBNEI1QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNkIxRjQ4MEYyMjk4OUVDNDAwREU4QjgyIC8qIENyb3NzU2l0ZU5hdmln
YXRpb25EYXRhVHJhbnNmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3Jvc3NTaXRlTmF2aWdhdGlvbkRh
dGFUcmFuc2Zlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjRENDEyQjIzOTgz
Rjg4MDAyNDk0QzIgLyogTG9nZ2VkSW5TdGF0dXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9nZ2VkSW5T
dGF0dXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyOTI0LDYgKzIyOTI1LDcg
QEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTdFREFBRkM4MTlBMkNCRDEwMDM0REZEMSAvKiBEaXNr
Q2FjaGVNb25pdG9yQ29jb2EuaCAqLywKIAkJCQk3RTRERTEwQzE5OEIxMEI2MDA1MUNCMDIgLyog
RGlza0NhY2hlTW9uaXRvckNvY29hLm1tICovLAorCQkJCTU3RjFDOEUzMjVEQzZFRTcwMEU4RjZF
QSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tICovLAogCQkJCTdFOEZBREMzMTk5
QTk1QjEwMDcxNDk2OCAvKiBTdWJyZXNvdXJjZUxvYWRlckNvY29hLm1tICovLAogCQkJKTsKIAkJ
CXBhdGggPSBjb2NvYTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hv
ckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAK
aW5kZXggZWMzZDkwYmVjMjlkMzM4N2ViYzhiMjNhZGM2MmFmYmM3MzMyOGQ1NC4uMDVkYTMxZDcz
MWM3N2EyMzAzODFlNjI5MjEzZDc0Yjg5YzA4NWM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTQ1Miw2ICs0NTIsNyBAQCBPcHRpb25hbDxQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudD4gSFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbgogCiAgICAgYXV0byBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9IFByaXZhdGVDbGlj
a01lYXN1cmVtZW50IHsgU291cmNlSUQoYXR0cmlidXRpb25Tb3VyY2VJRC52YWx1ZSgpKSwgU291
cmNlU2l0ZShkb2N1bWVudFJlZ2lzdHJhYmxlRG9tYWluKSwgQXR0cmlidXRlT25TaXRlKGF0dHJp
YnV0ZU9uVVJMKSB9OwogCisjaWYgSEFWRShQQ01fRlJBVURfUFJFVkVOVElPTikKICAgICBhdXRv
IGF0dHJpYnV0aW9uU291cmNlTm9uY2VBdHRyID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihhdHRyaWJ1dGlvbnNvdXJjZW5vbmNlQXR0cik7CiAgICAgaWYgKCFhdHRyaWJ1dGlvblNv
dXJjZU5vbmNlQXR0ci5pc0VtcHR5KCkpIHsKICAgICAgICAgYXV0byBlcGhlbWVyYWxOb25jZSA9
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZSB7IGF0dHJpYnV0
aW9uU291cmNlTm9uY2VBdHRyIH07CkBAIC00NjEsNiArNDYyLDcgQEAgT3B0aW9uYWw8UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ+IEhUTUxBbmNob3JFbGVtZW50OjpwYXJzZVByaXZhdGVDbGlja01l
YXN1cmVtZW4KICAgICAgICAgfQogICAgICAgICBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5zZXRF
cGhlbWVyYWxTb3VyY2VOb25jZShXVEZNb3ZlKGVwaGVtZXJhbE5vbmNlKSk7CiAgICAgfQorI2Vu
ZGlmCiAKICAgICByZXR1cm4gcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAppbmRleCAzMjAw
NDcwZDg3ZDVmODUwY2Q0NWFlZWNlYzcxZDg5Y2ViY2VjODRlLi4zY2ZhODJlN2E5ZTFkNDNlNDA1
N2QwMzM1NmM3Y2UxMTU3Y2RiYWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAgLTE0Niw0ICsxNDYsMjggQEAgUmVmPEpTT046
Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ompzb24oKSBjb25zdAogICAgIHJldHVy
biByZXBvcnREZXRhaWxzOwogfQogCisvLyBNQVJLOiAtIEZyYXVkIFByZXZlbnRpb24KKyNpZiBI
QVZFKFBDTV9GUkFVRF9QUkVWRU5USU9OKQorCitzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IEVw
aGVtZXJhbFNvdXJjZU5vbmNlUmVxdWlyZWROdW1iZXJPZkJ5dGVzID0gMTY7CisKK2Jvb2wgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlOjppc1ZhbGlkKCkgY29u
c3QKK3sKKyAgICAvLyBGSVhNRTogSW52ZXN0aWdhdGUgaWYgd2UgY2FuIGRvIHdpdGggYSBzaW1w
bGUgbGVuZ3RoIGNoZWNrIGluc3RlYWQgb2YgZGVjb2RpbmcuCisgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTk0NQorICAgIFZlY3Rvcjx1aW50OF90PiBk
aWdlc3Q7CisgICAgaWYgKCFiYXNlNjRVUkxEZWNvZGUobm9uY2UsIGRpZ2VzdCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gZGlnZXN0LnNpemUoKSA9PSBFcGhlbWVyYWxTb3Vy
Y2VOb25jZVJlcXVpcmVkTnVtYmVyT2ZCeXRlczsKIH0KKwordm9pZCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6c2V0RXBoZW1lcmFsU291cmNlTm9uY2UoRXBoZW1lcmFsU291cmNlTm9uY2UmJiBu
b25jZSkKK3sKKyAgICBpZiAoIW5vbmNlLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworICAg
IG1fZXBoZW1lcmFsU291cmNlTm9uY2UgPSBXVEZNb3ZlKG5vbmNlKTsKK30KKworI2VuZGlmIC8v
IEhBVkUoUENNX0ZSQVVEX1BSRVZFTlRJT04pCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKaW5kZXgg
YTRjOTZjYTFlMGE0ZDAwYjJhYWYxY2M1NjkzMzI5NzlhOWY4MjUyMC4uNjc1NDk0NTNhMzZlYzcw
NTUxOTJkNzc4M2Q1MDc3YzI3ODZlZTBiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKQEAgLTM2LDYgKzM2LDEwIEBACiAjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CitPQkpDX0NMQVNTIFJTQUJTU0FUb2tlblJlYWR5OworT0JKQ19DTEFTUyBSU0FCU1NBVG9rZW5X
YWl0aW5nQWN0aXZhdGlvbjsKK09CSkNfQ0xBU1MgUlNBQlNTQVRva2VuQmxpbmRlcjsKKwogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB7CkBAIC0y
MDEsMjggKzIwNSw2IEBAIHB1YmxpYzoKICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRv
Q29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKICAgICB9OwogCi0gICAgc3RydWN0IEVw
aGVtZXJhbFNvdXJjZU5vbmNlIHsKLSAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBS
ZXF1aXJlZE51bWJlck9mQnl0ZXMgPSAxNjsKLQotICAgICAgICBFcGhlbWVyYWxTb3VyY2VOb25j
ZSgpID0gZGVmYXVsdDsKLSAgICAgICAgZXhwbGljaXQgRXBoZW1lcmFsU291cmNlTm9uY2UoY29u
c3QgU3RyaW5nJiBub25jZVN0cmluZykKLSAgICAgICAgICAgIDogbm9uY2UgeyBub25jZVN0cmlu
ZyB9Ci0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIEZJWE1FOiBJbnZlc3RpZ2F0
ZSBpZiB3ZSBjYW4gZG8gd2l0aCBhIHNpbXBsZSBsZW5ndGggY2hlY2sgaW5zdGVhZCBvZiBkZWNv
ZGluZy4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMTk0NQotICAgICAgICBib29sIGlzVmFsaWQoKSBjb25zdAotICAgICAgICB7Ci0gICAgICAg
ICAgICBWZWN0b3I8dWludDhfdD4gZGlnZXN0OwotICAgICAgICAgICAgaWYgKCFiYXNlNjRVUkxE
ZWNvZGUobm9uY2UsIGRpZ2VzdCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICAgICAgcmV0dXJuIGRpZ2VzdC5zaXplKCkgPT0gUmVxdWlyZWROdW1iZXJPZkJ5dGVzOwot
ICAgICAgICB9Ci0KLSAgICAgICAgU3RyaW5nIG5vbmNlOwotICAgIH07Ci0KICAgICBzdHJ1Y3Qg
UHJpb3JpdHkgewogICAgICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IE1heEVudHJvcHkg
PSA2MzsKIApAQCAtMjc4LDkgKzI2MCw2IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBS
ZWY8SlNPTjo6T2JqZWN0PiBqc29uKCkgY29uc3Q7CiAgICAgY29uc3QgU291cmNlU2l0ZSYgc291
cmNlU2l0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlU2l0ZTsgfTsKICAgICBjb25zdCBBdHRy
aWJ1dGVPblNpdGUmIGF0dHJpYnV0ZU9uU2l0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmlidXRl
T25TaXRlOyB9OwotICAgIHZvaWQgc2V0RXBoZW1lcmFsU291cmNlTm9uY2UoRXBoZW1lcmFsU291
cmNlTm9uY2UmJiBub25jZSkgeyBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlID0gV1RGTW92ZShub25j
ZSk7IH07Ci0gICAgT3B0aW9uYWw8RXBoZW1lcmFsU291cmNlTm9uY2U+IGVwaGVtZXJhbFNvdXJj
ZU5vbmNlKCkgY29uc3QgeyByZXR1cm4gIW1fZXBoZW1lcmFsU291cmNlTm9uY2UgPyBXVEY6Om51
bGxvcHQgOiBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5pc1ZhbGlkKCkgPyBtX2VwaGVtZXJhbFNv
dXJjZU5vbmNlIDogV1RGOjpudWxsb3B0OyB9OwotICAgIHZvaWQgY2xlYXJFcGhlbWVyYWxTb3Vy
Y2VOb25jZSgpIHsgbV9lcGhlbWVyYWxTb3VyY2VOb25jZSAgPSBXVEY6Om51bGxvcHQ7IH07CiAg
ICAgV2FsbFRpbWUgdGltZU9mQWRDbGljaygpIGNvbnN0IHsgcmV0dXJuIG1fdGltZU9mQWRDbGlj
azsgfQogICAgIE9wdGlvbmFsPFdhbGxUaW1lPiBlYXJsaWVzdFRpbWVUb1NlbmQoKSBjb25zdCB7
IHJldHVybiBtX2VhcmxpZXN0VGltZVRvU2VuZDsgfTsKICAgICB2b2lkIHNldEVhcmxpZXN0VGlt
ZVRvU2VuZChXYWxsVGltZSB0aW1lKSB7IG1fZWFybGllc3RUaW1lVG9TZW5kID0gdGltZTsgfQpA
QCAtMjkxLDYgKzI3MCwyOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2VEZXNj
cmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlRGVzY3JpcHRpb247IH0KICAgICBjb25z
dCBTdHJpbmcmIHB1cmNoYXNlcigpIGNvbnN0IHsgcmV0dXJuIG1fcHVyY2hhc2VyOyB9CiAKKyAg
ICAvLyBNQVJLOiAtIEZyYXVkIFByZXZlbnRpb24KKyNpZiBIQVZFKFBDTV9GUkFVRF9QUkVWRU5U
SU9OKQorICAgIHN0cnVjdCBFcGhlbWVyYWxTb3VyY2VOb25jZSB7CisgICAgICAgIFN0cmluZyBu
b25jZTsKKworICAgICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzVmFsaWQoKSBjb25zdDsKKyAg
ICB9OworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRFcGhlbWVyYWxTb3VyY2VOb25jZShF
cGhlbWVyYWxTb3VyY2VOb25jZSYmKTsKKyAgICBPcHRpb25hbDxFcGhlbWVyYWxTb3VyY2VOb25j
ZT4gZXBoZW1lcmFsU291cmNlTm9uY2UoKSBjb25zdCB7IHJldHVybiBtX2VwaGVtZXJhbFNvdXJj
ZU5vbmNlOyB9OworICAgIHZvaWQgY2xlYXJFcGhlbWVyYWxTb3VyY2VOb25jZSgpIHsgbV9lcGhl
bWVyYWxTb3VyY2VOb25jZS5yZXNldCgpOyB9OworCisgICAgc3RydWN0IFNvdXJjZVVubGlua2Fi
bGVUb2tlbiB7CisgICAgICAgIFN0cmluZyB0b2tlbkJhc2U2NFVSTDsKKyAgICAgICAgU3RyaW5n
IGtleUlEQmFzZTY0VVJMOworICAgICAgICBTdHJpbmcgc2lnbmF0dXJlQmFzZTY0VVJMOworICAg
IH07CisKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8SlNPTjo6T2JqZWN0PiBzb3VyY2VTZWNy
ZXRUb2tlbkpzb24oY29uc3QgU3RyaW5nJiBzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkwpOworICAg
IFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPFNvdXJjZVVubGlua2FibGVUb2tlbj4gY2FsY3VsYXRl
U291cmNlVW5saW5rYWJsZVRva2VuKGNvbnN0IFN0cmluZyYgc2VydmVyUmVzcG9uc2VCYXNlNjRV
UkwpOworI2VuZGlmIC8vIEhBVkUoUENNX0ZSQVVEX1BSRVZFTlRJT04pCisKICAgICB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50
PiBkZWNvZGUoRGVjb2RlciYpOwogCkBAIC0zMDQsOSArMzA1LDE5IEBAIHByaXZhdGU6CiAgICAg
U3RyaW5nIG1fcHVyY2hhc2VyOwogICAgIFdhbGxUaW1lIG1fdGltZU9mQWRDbGljazsKIAotICAg
IE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5vbmNlPiBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlOwog
ICAgIE9wdGlvbmFsPEF0dHJpYnV0aW9uVHJpZ2dlckRhdGE+IG1fYXR0cmlidXRpb25UcmlnZ2Vy
RGF0YTsKICAgICBPcHRpb25hbDxXYWxsVGltZT4gbV9lYXJsaWVzdFRpbWVUb1NlbmQ7CisKKyNp
ZiBIQVZFKFBDTV9GUkFVRF9QUkVWRU5USU9OKQorICAgIHN0cnVjdCBTb3VyY2VTZWNyZXRUb2tl
biB7CisgICAgICAgIFJldGFpblB0cjxSU0FCU1NBVG9rZW5CbGluZGVyPiBibGluZGVyOworICAg
ICAgICBSZXRhaW5QdHI8UlNBQlNTQVRva2VuV2FpdGluZ0FjdGl2YXRpb24+IHdhaXRpbmdUb2tl
bjsKKyAgICAgICAgUmV0YWluUHRyPFJTQUJTU0FUb2tlblJlYWR5PiByZWFkeVRva2VuOworICAg
IH07CisKKyAgICBPcHRpb25hbDxFcGhlbWVyYWxTb3VyY2VOb25jZT4gbV9lcGhlbWVyYWxTb3Vy
Y2VOb25jZTsKKyAgICBTb3VyY2VTZWNyZXRUb2tlbiBtX3NvdXJjZVNlY3JldFRva2VuOworI2Vu
ZGlmIC8vIEhBVkUoUENNX0ZSQVVEX1BSRVZFTlRJT04pCiB9OwogCiB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YWU1ODRiNGE3MmNmN2Jj
NTRjMDBkZDljMzY0ZjA1ZWU3YjRkYzNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0KQEAgLTAsMCAr
MSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQuaCIKKworI2lmIEhBVkUoUENNX0ZSQVVEX1BSRVZFTlRJT04pCisK
KyNpbXBvcnQgPHBhbC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1JlZlB0cjxKU09OOjpPYmplY3Q+IFByaXZhdGVDbGlja01lYXN1
cmVtZW50Ojpzb3VyY2VTZWNyZXRUb2tlbkpzb24oY29uc3QgU3RyaW5nJiBzZXJ2ZXJQdWJsaWNL
ZXlCYXNlNjRVUkwpCit7CisgICAgaWYgKCFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlIHx8ICFtX2Vw
aGVtZXJhbFNvdXJjZU5vbmNlLT5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
CisgICAgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gc2VydmVyUHVibGljS2V5RGF0YTsKKyAg
ICAgICAgaWYgKCFiYXNlNjRVUkxEZWNvZGUoc2VydmVyUHVibGljS2V5QmFzZTY0VVJMLCBzZXJ2
ZXJQdWJsaWNLZXlEYXRhKSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBh
dXRvIHNlcnZlclB1YmxpY0tleSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0
ZXM6c2VydmVyUHVibGljS2V5RGF0YS5kYXRhKCkgbGVuZ3RoOnNlcnZlclB1YmxpY0tleURhdGEu
c2l6ZSgpXSk7CisKKyAgICAgICAgLy8gRklYTUUoMjIyMDE4KTogQ2hlY2sgZXJyb3IuCisgICAg
ICAgIG1fc291cmNlU2VjcmV0VG9rZW4uYmxpbmRlciA9IGFkb3B0TlMoW1BBTDo6YWxsb2NSU0FC
U1NBVG9rZW5CbGluZGVySW5zdGFuY2UoKSBpbml0V2l0aFB1YmxpY0tleTpzZXJ2ZXJQdWJsaWNL
ZXkuZ2V0KCkgZXJyb3I6bnVsbHB0cl0pOworICAgICAgICBpZiAoIW1fc291cmNlU2VjcmV0VG9r
ZW4uYmxpbmRlcikKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIC8v
IEZJWE1FKDIyMjAxOCk6IENoZWNrIGVycm9yLgorICAgIG1fc291cmNlU2VjcmV0VG9rZW4ud2Fp
dGluZ1Rva2VuID0gW21fc291cmNlU2VjcmV0VG9rZW4uYmxpbmRlciB0b2tlbldhaXRpbmdBY3Rp
dmF0aW9uV2l0aENvbnRlbnQ6bnVsbHB0ciBlcnJvcjpudWxscHRyXTsKKyAgICBpZiAoIW1fc291
cmNlU2VjcmV0VG9rZW4ud2FpdGluZ1Rva2VuKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwor
ICAgIGF1dG8gYmxpbmRlZFNlY3JldCA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CisgICAgYmxp
bmRlZFNlY3JldC0+c2V0U3RyaW5nKCJzb3VyY2Vfbm9uY2UiX3MsIG1fZXBoZW1lcmFsU291cmNl
Tm9uY2UtPm5vbmNlKTsKKyAgICBibGluZGVkU2VjcmV0LT5zZXRTdHJpbmcoInNvdXJjZV9zZWNy
ZXRfdG9rZW4iX3MsIFdURjo6YmFzZTY0VVJMRW5jb2RlKFttX3NvdXJjZVNlY3JldFRva2VuLndh
aXRpbmdUb2tlbiBibGluZGVkTWVzc2FnZV0uYnl0ZXMsIFttX3NvdXJjZVNlY3JldFRva2VuLndh
aXRpbmdUb2tlbiBibGluZGVkTWVzc2FnZV0ubGVuZ3RoKSk7CisKKyAgICByZXR1cm4gYmxpbmRl
ZFNlY3JldDsKK30KKworYXV0byBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y2FsY3VsYXRlU291
cmNlVW5saW5rYWJsZVRva2VuKGNvbnN0IFN0cmluZyYgc2VydmVyUmVzcG9uc2VCYXNlNjRVUkwp
IC0+IE9wdGlvbmFsPFNvdXJjZVVubGlua2FibGVUb2tlbj4KK3sKKyAgICBpZiAoIW1fc291cmNl
U2VjcmV0VG9rZW4ud2FpdGluZ1Rva2VuKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gc2VydmVyUmVzcG9uc2VEYXRhOworICAg
ICAgICBpZiAoIWJhc2U2NFVSTERlY29kZShzZXJ2ZXJSZXNwb25zZUJhc2U2NFVSTCwgc2VydmVy
UmVzcG9uc2VEYXRhKSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAg
IGF1dG8gc2VydmVyUmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5
dGVzOnNlcnZlclJlc3BvbnNlRGF0YS5kYXRhKCkgbGVuZ3RoOnNlcnZlclJlc3BvbnNlRGF0YS5z
aXplKCldKTsKKworICAgICAgICAvLyBGSVhNRSgyMjIwMTgpOiBDaGVjayBlcnJvci4KKyAgICAg
ICAgbV9zb3VyY2VTZWNyZXRUb2tlbi5yZWFkeVRva2VuID0gW21fc291cmNlU2VjcmV0VG9rZW4u
d2FpdGluZ1Rva2VuIGFjdGl2YXRlVG9rZW5XaXRoU2VydmVyUmVzcG9uc2U6c2VydmVyUmVzcG9u
c2UuZ2V0KCkgZXJyb3I6bnVsbHB0cl07CisgICAgICAgIGlmICghbV9zb3VyY2VTZWNyZXRUb2tl
bi5yZWFkeVRva2VuKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICB9CisK
KyAgICBTb3VyY2VVbmxpbmthYmxlVG9rZW4gdG9rZW47CisgICAgdG9rZW4udG9rZW5CYXNlNjRV
UkwgPSBXVEY6OmJhc2U2NFVSTEVuY29kZShbbV9zb3VyY2VTZWNyZXRUb2tlbi5yZWFkeVRva2Vu
IHRva2VuQ29udGVudF0uYnl0ZXMsIFttX3NvdXJjZVNlY3JldFRva2VuLnJlYWR5VG9rZW4gdG9r
ZW5Db250ZW50XS5sZW5ndGgpOworICAgIHRva2VuLmtleUlEQmFzZTY0VVJMID0gV1RGOjpiYXNl
NjRVUkxFbmNvZGUoW21fc291cmNlU2VjcmV0VG9rZW4ucmVhZHlUb2tlbiBrZXlJZF0uYnl0ZXMs
IFttX3NvdXJjZVNlY3JldFRva2VuLnJlYWR5VG9rZW4ga2V5SWRdLmxlbmd0aCk7CisgICAgdG9r
ZW4uc2lnbmF0dXJlQmFzZTY0VVJMID0gV1RGOjpiYXNlNjRVUkxFbmNvZGUoW21fc291cmNlU2Vj
cmV0VG9rZW4ucmVhZHlUb2tlbiBzaWduYXR1cmVdLmJ5dGVzLCBbbV9zb3VyY2VTZWNyZXRUb2tl
bi5yZWFkeVRva2VuIHNpZ25hdHVyZV0ubGVuZ3RoKTsKKworICAgIHJldHVybiB0b2tlbjsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSEFWRShQQ01fRlJBVURfUFJF
VkVOVElPTikKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCA3Njk4Nzc5MTkzZDRiMzQ1NzZmZDI5N2YxYmRmZDY3NDlkYTAyY2QxLi5lNDRjNzUyYzg5
YjFjYjBkZjA3MWZkYjk1YmNlNWZhNzczYTM5NWIwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDItMTYgIEpp
ZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRl
IHNlY3JldCB0b2tlbiBhbmQgY29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzczNTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICBBZGQgdGVzdHMuCisKIDIwMjEtMDItMTUgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBh
cHBsZS5jb20+CiAKICAgICAgICAgUENNOiBBZGQgaGlnaCBlbnRyb3B5IGF0dHJpYnV0aW9uU291
cmNlTm9uY2UgYXR0cmlidXRlIHRvIGFuY2hvciB0YWdzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25maWcgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25maWcKaW5kZXgg
NzBiZThhYTc3MDQzYjc0MTc3ZDQwNmQwM2MzMTQ5NjM4YTk5ZjFlOS4uNWUzOTE4MDkxZDcwMzNh
NWUxNzMyOGMyMzMxMzU3NzVkNmRjZjA0MiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLnhjY29uZmlnCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS54Y2NvbmZpZwpAQCAtNzEsNyAr
NzEsNyBAQCBXS19PUEVOR0xfTERGTEFHU19hcHBsZXR2b3MgPSAkKFdLX09QRU5HTF9MREZMQUdT
X2lwaG9uZW9zKTsKIFdLX09QRU5HTF9MREZMQUdTX2FwcGxldHZzaW11bGF0b3IgPSAkKFdLX09Q
RU5HTF9MREZMQUdTX2lwaG9uZXNpbXVsYXRvcik7CiBXS19PUEVOR0xfTERGTEFHU19tYWNvc3gg
PSAtZnJhbWV3b3JrIE9wZW5HTDsKIAotT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAkKFVO
RVhQT1JURURfU1lNQk9MX0xERkxBR1MpIC1sZ3Rlc3QgLWZvcmNlX2xvYWQgJChCVUlMVF9QUk9E
VUNUU19ESVIpL2xpYlRlc3RXZWJLaXRBUEkuYSAtZnJhbWV3b3JrIEphdmFTY3JpcHRDb3JlIC1m
cmFtZXdvcmsgV2ViS2l0IC1sV2ViQ29yZVRlc3RTdXBwb3J0ICQoV0tfQVVUSEtJVF9MREZMQUdT
KSAtZnJhbWV3b3JrIE5ldHdvcmsgJChXS19QREZLSVRfTERGTEFHUykgJChXS19ISURfTERGTEFH
UykgJChXS19PUEVOR0xfTERGTEFHUykgJChPVEhFUl9MREZMQUdTX1BMQVRGT1JNXyQoV0tfQ09D
T0FfVE9VQ0gpKTsKK09USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChVTkVYUE9SVEVEX1NZ
TUJPTF9MREZMQUdTKSAtbGd0ZXN0IC1mb3JjZV9sb2FkICQoQlVJTFRfUFJPRFVDVFNfRElSKS9s
aWJUZXN0V2ViS2l0QVBJLmEgLWZyYW1ld29yayBKYXZhU2NyaXB0Q29yZSAtZnJhbWV3b3JrIFdl
YktpdCAtbFdlYkNvcmVUZXN0U3VwcG9ydCAkKFdLX0FVVEhLSVRfTERGTEFHUykgLWZyYW1ld29y
ayBOZXR3b3JrIC1mcmFtZXdvcmsgU3lzdGVtICQoV0tfUERGS0lUX0xERkxBR1MpICQoV0tfSElE
X0xERkxBR1MpICQoV0tfT1BFTkdMX0xERkxBR1MpICQoT1RIRVJfTERGTEFHU19QTEFURk9STV8k
KFdLX0NPQ09BX1RPVUNIKSk7CiBPVEhFUl9MREZMQUdTX1BMQVRGT1JNXyA9IC1mcmFtZXdvcmsg
Q29jb2EgLWZyYW1ld29yayBDYXJib247CiAKIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBub3QgYmUg
YnVpbHQgb24gaU9TLiBJbnN0ZWFkIHdlIHNob3VsZCBjcmVhdGUgYW5kIHVzZSBhIFRlc3RXZWJL
aXRBUEkgYXBwbGljYXRpb24uCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJkMmY5ZTYyNzY5
MDZlNWY1NDBhZjQ5MTI4ODU2MzYzMjY1YjVjOWUuLjdlMDFkNjg1YjM2YTI3YjRhOGZkODBiYjcw
YjU0YTMwMGYzNTc5OGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NDEsNiArNDQxLDcg
QEAKIAkJNTdDNjI0NTAyMzQ2QzIxRTAwMzgzRkU3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQt
YXNzZXJ0aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTdDNjI0NEYyMzQ2QzFFQzAwMzgzRkU3IC8qIHdlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLmh0bWwgKi87IH07CiAJCTU3RURGQzVDMjQ1QTFBM0YwMDk1OTUyMSAv
KiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhLW5vLW1vY2suaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0VERkM1
QjI0NUExOEY1MDA5NTk1MjEgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1s
YS1uby1tb2NrLmh0bWwgKi87IH07CiAJCTU3RURGQzYwMjQ1QTI5OUMwMDk1OTUyMSAvKiB3ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1sYS1uby1tb2NrLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdFREZDNUYyNDVBMjc5
OTAwOTU5NTIxIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWxhLW5vLW1vY2su
aHRtbCAqLzsgfTsKKwkJNTdGMUM5MTEyNURERDUxOTAwRThGNkVBIC8qIFByaXZhdGVDbGlja01l
YXN1cmVtZW50Q29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1N0YxQzkxMDI1RERENTE5MDBFOEY2RUEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRDb2NvYS5tbSAqLzsgfTsKIAkJNTdGNEFBQTAyMDhGQUVGMDAwQTY4RTlFIC8qIFNTTEtleUdl
bmVyYXRvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU3RjRBQTlGMjA4RkE4M0QwMEE2OEU5RSAvKiBTU0xLZXlHZW5lcmF0b3IubW0gKi87IH07CiAJ
CTU3RjU2QTVDMUM3RjhDQzEwMEYzMUQ3RSAvKiBJc05hdmlnYXRpb25BY3Rpb25UcnVzdGVkLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTdGNTZBNUIxQzdGOEE0MDAwRjMxRDdFIC8qIElzTmF2aWdhdGlvbkFjdGlvblRydXN0ZWQuaHRt
bCAqLzsgfTsKIAkJNUMwMTYwQzEyMUExMzI0NjAwNzdGQTMyIC8qIEpJVEVuYWJsZWQubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzAxNjBDMDIxQTEz
MjMyMDA3N0ZBMzIgLyogSklURW5hYmxlZC5tbSAqLzsgfTsKQEAgLTIyMjgsNiArMjIyOSw3IEBA
CiAJCTU3RURGQzVCMjQ1QTE4RjUwMDk1OTUyMSAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1j
cmVkZW50aWFsLWxhLW5vLW1vY2suaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ3ZWItYXV0aGVudGljYXRpb24t
bWFrZS1jcmVkZW50aWFsLWxhLW5vLW1vY2suaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU3RURGQzVGMjQ1QTI3OTkwMDk1OTUyMSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0
LWFzc2VydGlvbi1sYS1uby1tb2NrLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9u
LWdldC1hc3NlcnRpb24tbGEtbm8tbW9jay5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTdGMTBEOTIxQzdFN0IzODAwRUNERjMwIC8qIElzTmF2aWdhdGlvbkFjdGlvblRydXN0
ZWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJc05hdmlnYXRp
b25BY3Rpb25UcnVzdGVkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0YxQzkx
MDI1RERENTE5MDBFOEY2RUEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RjRBQTlGMjA4RkE4M0QwMEE2OEU5RSAvKiBTU0xL
ZXlHZW5lcmF0b3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTU0xLZXlHZW5lcmF0b3IubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RjU2QTVCMUM3RjhBNDAwMEYzMUQ3RSAv
KiBJc05hdmlnYXRpb25BY3Rpb25UcnVzdGVkLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBh
dGggPSBJc05hdmlnYXRpb25BY3Rpb25UcnVzdGVkLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTVDMDE2MEMwMjFBMTMyMzIwMDc3RkEzMiAvKiBKSVRFbmFibGVkLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSklURW5hYmxlZC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ2OTgsNiArNDcwMCw3IEBACiAJCQljaGlsZHJlbiA9
ICgKIAkJCQkwNzExREY1MTIyNkE5NUZCMDAzREQyRjcgLyogQVZGb3VuZGF0aW9uU29mdExpbmtU
ZXN0Lm1tICovLAogCQkJCTc1MUIwNUQ1MUY4RUFDMUEwMDI4QTA5RSAvKiBEYXRhYmFzZVRyYWNr
ZXJUZXN0Lm1tICovLAorCQkJCTU3RjFDOTEwMjVEREQ1MTkwMEU4RjZFQSAvKiBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudENvY29hLm1tICovLAogCQkJCTU3NjlDNTBBMUQ5QjAwMDEwMDA4NDdGQiAv
KiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbSAqLywKIAkJCQlBMTc5OTE4NjFFMUM5OTRFMDBB
NTA1RUQgLyogU2hhcmVkQnVmZmVyLm1tICovLAogCQkJCUNEODlEMDM4MUM0RURCMkEwMDA0MEEw
NCAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLm1tICovLApAQCAtNTQ3Miw2ICs1NDc1LDcgQEAKIAkJ
CQlBMUVDMTE4ODFGNDI1NDEyMDBEMDE0NkUgLyogUHJldmlld0NvbnZlcnRlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3Q0NFN0YwQzFBNDExQUU2MDA0NDdDNEMgLyogUHJpdmF0ZUJyb3dzaW5n
UHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkIwQTA3
RjcyMUZBOUMyQjAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTU3RjFDOTExMjVEREQ1MTkwMEU4RjZFQSAvKiBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudENvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDY0N0IxMjYxRUJBM0I4NTAwNDFE
N0VGIC8qIFByb2Nlc3NEaWRUZXJtaW5hdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE4ODJG
MDMyMTAxMEMwRDAwMkZGMjg4IC8qIFByb2Nlc3NQcmVXYXJtaW5nLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQ0RBNDQzOEUyMUY3QTQ3NzAwMzc5NDg5IC8qIFByb2Nlc3NTdXNwZW5kTWVkaWFCdWZm
ZXJpbmcubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCmluZGV4IDdj
ZDc3NWI0YzYwNDIwZWZhZTFkZTE2NzQxODFkMGU5MWY5ZTYyYjMuLmUwMGYzODFhYTA1MjE2ZDQ3
NzgzZWRlZGU1YTYyZTlhMjQ1MzZiMDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcApAQCAt
MjQsNiArMjQsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXN0
LmgiCiAKICNpbmNsdWRlIDxXZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg+CiAjaW5j
bHVkZSA8d3RmL1VSTC5oPgpAQCAtMTIzLDEyICsxMjQsMTYgQEAgVEVTVChQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCwgVmFsaWRDb252ZXJzaW9uVVJMcykKICAgICBBU1NFUlRfRVEob3B0aW9uYWxD
b252ZXJzaW9uLT5wcmlvcml0eSwgKHVpbnQzMl90KTIpOwogfQogCisjaWYgSEFWRShQQ01fRlJB
VURfUFJFVkVOVElPTikKKwogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgVmFsaWRTb3Vy
Y2VOb25jZSkKIHsKICAgICBhdXRvIGVwaGVtZXJhbE5vbmNlID0gUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlIHsgIkFCQ0RFRmFiY2RlZjAxMjM0NTY3ODkiX3Mg
fTsKICAgICBBU1NFUlRfVFJVRShlcGhlbWVyYWxOb25jZS5pc1ZhbGlkKCkpOwogfQogCisjZW5k
aWYgLy8gSEFWRShQQ01fRlJBVURfUFJFVkVOVElPTikKKwogLy8gTmVnYXRpdmUgdGVzdCBjYXNl
cy4KIAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZFNvdXJjZUlEKQpAQCAt
MjgxLDYgKzI4Niw4IEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRDb252
ZXJzaW9uV2l0aERpc2FsbG93ZWRVUkxDb21wb25lbnRzKQogICAgIEFTU0VSVF9GQUxTRShvcHRp
b25hbENvbnZlcnNpb24pOwogfQogCisjaWYgSEFWRShQQ01fRlJBVURfUFJFVkVOVElPTikKKwog
VEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZFNvdXJjZU5vbmNlKQogewogICAg
IC8vIEZld2VyIHRoYW4gdGhlIHJlcXVyaWVkIG51bWJlciBvZiBieXRlcy4KQEAgLTMwMCw0ICsz
MDcsMjUgQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZFNvdXJjZU5vbmNl
KQogICAgIEFTU0VSVF9GQUxTRShlcGhlbWVyYWxOb25jZS5pc1ZhbGlkKCkpOwogfQogCitURVNU
KFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkQmxpbmRlZFNlY3JldCkKK3sKKyAgICBj
b25zdCBjaGFyIHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTFtdID0gIk1JSUNJakFOQmdrcWhraUc5
dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBemIxZFRocnRZd1ZoNDZTakluZWdLaEFxcGJKd20x
WG5UQkN2eWJTSzh6azUzUjBBbTFoRzMzQVZGNUoxbHFZZjM2d3A2NjNHYXNjbEh0cXp2eEZaSXZE
QTFEVVNINGFael9mREhDVFR4RWVKVlBPUlMzek5OMlVqV3didG53c2g0Qm1EVGktel9jRG4wTEF6
Mkp1WnlLbHlGdDVHZ1ZMQVF2TDlIM1ZMSFU5X1hITkstdWJveVhmY0hSVHRyRG5wdTNjNnd2WDVk
ZC1BSm9MbUlRVFpCRUpmVmt4Qkd6bmsxcUtIamM2bkFTQWlyS0Zfd0pDbnV3QUs4QzZCQWNqTmN3
VVdDZUtwMFlFQ3pDWFUtLUpYZDJPRVUtUWh4UEM2N2ZhaURPaDNWMHZsZnFaTHRybGJuYW5VQ0ty
dmh3N0dhR09HWW90SXJuWnR1TmZ4QzE0ZF9YTlZkMUZTOG5IalJUSG5FZ3dfam5sU3NzZmdTdHow
dUp0Y21rZmdvSkJ2T0U0bUlScGk3aVNsUmZYTmtLc1dYMUotZ3djbkNWbzV1MHVKRVc2WDZOeXZF
R1lKOHc1QlBmd3NRdUs5eS00Wjdpa3Q5SU91Y0VIWTdUaERtaTlUTk5oSEJWajBHdTR3R29TanEz
YTZ2TDVOMTBaU0hYb3ExWGdmR1BybUhoaEw5MGNqdldvbm95T1hzVXFsWEV6VGpEMlc5ODk3US1N
eDlCVU5yR1FQcW1JeDhGNU13eFdjT3J5ZThXUnA0UTg4bjJZU1VuVjdDOGF5bGQzdjFGaDdONWpl
U3FlVm10RFZSWVRuMnNWZk5xZ1hyemdkaWdKY1FSOHZGRU51Nm56RlB3c3JYUE1hQ2lMVW5aTlVt
UTFaU0xRZVF5aFlYeEhxUkpybnVDRFdYTGtDQXdFQUFRIjsKKworICAgIFByaXZhdGVDbGlja01l
YXN1cmVtZW50IHBjbTsKKyAgICBhdXRvIHNvdXJjZVNlY3JldFRva2VuID0gcGNtLnNvdXJjZVNl
Y3JldFRva2VuSnNvbihzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkwpOworICAgIEVYUEVDVF9OVUxM
KHNvdXJjZVNlY3JldFRva2VuKTsKKworICAgIGF1dG8gZXBoZW1lcmFsTm9uY2UgPSBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFsU291cmNlTm9uY2UgeyAiQUJDREVGYWJjZGVmMDEy
MzQ1Njc4OSJfcyB9OworICAgIEVYUEVDVF9UUlVFKGVwaGVtZXJhbE5vbmNlLmlzVmFsaWQoKSk7
CisgICAgcGNtLnNldEVwaGVtZXJhbFNvdXJjZU5vbmNlKFdURk1vdmUoZXBoZW1lcmFsTm9uY2Up
KTsKKworICAgIHNvdXJjZVNlY3JldFRva2VuID0gcGNtLnNvdXJjZVNlY3JldFRva2VuSnNvbihz
ZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkwpOworICAgIEVYUEVDVF9OT1RfTlVMTChzb3VyY2VTZWNy
ZXRUb2tlbik7CisKKyAgICBhdXRvIHBlcnNpc3RlbnRUb2tlbiA9IHBjbS5jYWxjdWxhdGVTb3Vy
Y2VVbmxpbmthYmxlVG9rZW4oZW1wdHlTdHJpbmcoKSk7CisgICAgRVhQRUNUX0ZBTFNFKHBlcnNp
c3RlbnRUb2tlbik7Cit9CisKKyNlbmRpZiAvLyBIQVZFKFBDTV9GUkFVRF9QUkVWRU5USU9OKQor
CiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1NTViMjUxMzJkZjVlODYxODJkZTFlNjNi
YzYzNzNjMGNhOTlhYTQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbQpAQCAtMCww
ICsxLDEwNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJU
ZXN0LmgiCisKKyNpZiBIQVZFKFBDTV9GUkFVRF9QUkVWRU5USU9OKQorCisjaW5jbHVkZSA8U2Vj
dXJpdHkvU2VjS2V5UHJpdi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQuaD4KKworZXh0ZXJuICJDIiB7CisjaW5jbHVkZSA8Y29yZWNyeXB0by9jY19wcml2Lmg+
CisjaW5jbHVkZSA8Y29yZWNyeXB0by9jY3JuZy5oPgorI2luY2x1ZGUgPGNvcmVjcnlwdG8vY2Ny
c2EuaD4KKyNpbmNsdWRlIDxjb3JlY3J5cHRvL2NjcnNhYnNzYS5oPgorfQorCit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKFByaXZh
dGVDbGlja01lYXN1cmVtZW50LCBWYWxpZEJsaW5kZWRTZWNyZXQpCit7CisgICAgYXV0byBlcGhl
bWVyYWxOb25jZSA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25j
ZSB7ICJBQkNERUZhYmNkZWYwMTIzNDU2Nzg5Il9zIH07CisgICAgRVhQRUNUX1RSVUUoZXBoZW1l
cmFsTm9uY2UuaXNWYWxpZCgpKTsKKworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IHBjbTsK
KyAgICBwY20uc2V0RXBoZW1lcmFsU291cmNlTm9uY2UoV1RGTW92ZShlcGhlbWVyYWxOb25jZSkp
OworCisgICAgLy8gR2VuZXJhdGUgdGhlIHNlcnZlciBrZXkgcGFpci4KKyAgICBzaXplX3QgbW9k
dWx1c05CaXRzID0gNDA5NjsKKyAgICBpbnQgZXJyb3IgPSAwOworCisgICAgc3RydWN0IGNjcm5n
X3N0YXRlKiBybmcgPSBjY3JuZygmZXJyb3IpOworICAgIEVYUEVDVF9FUShlcnJvciwgQ0NFUlJf
T0spOworCisgICAgY29uc3QgdWludDhfdCBlW10gPSB7IDB4MSwgMHgwMCwgMHgwMSB9OworICAg
IGNjcnNhX2Z1bGxfY3R4X2RlY2woY2NuX3NpemVvZihtb2R1bHVzTkJpdHMpLCByc2FQcml2YXRl
S2V5KTsKKyAgICBlcnJvciA9IGNjcnNhX2dlbmVyYXRlX2tleShtb2R1bHVzTkJpdHMsIHJzYVBy
aXZhdGVLZXksIHNpemVvZihlKSwgZSwgcm5nKTsKKyAgICBFWFBFQ1RfRVEoZXJyb3IsIENDRVJS
X09LKTsKKworICAgIGNjcnNhX3B1Yl9jdHhfdCByc2FQdWJsaWNLZXkgPSBjY3JzYV9jdHhfcHVi
bGljKHJzYVByaXZhdGVLZXkpOworICAgIHNpemVfdCBtb2R1bHVzTkJ5dGVzID0gY2NfY2VpbGlu
ZyhjY3JzYV9wdWJrZXlsZW5ndGgocnNhUHVibGljS2V5KSwgOCk7CisKKyAgICBjb25zdCBzdHJ1
Y3QgY2Nyc2Fic3NhX2NpcGhlcnN1aXRlICpjaXBoZXJzdWl0ZSA9ICZjY3JzYWJzc2FfY2lwaGVy
c3VpdGVfcnNhNDA5Nl9zaGEzODQ7CisKKyAgICBzaXplX3QgZXhwb3J0U2l6ZSA9IGNjZGVyX2Vu
Y29kZV9yc2FfcHViX3NpemUocnNhUHVibGljS2V5KTsKKyAgICBhdXRvIHB1YmxpY0tleSA9IGFk
b3B0TlMoW1tOU011dGFibGVEYXRhIGFsbG9jXSBpbml0V2l0aExlbmd0aDpleHBvcnRTaXplXSk7
CisgICAgY2NkZXJfZW5jb2RlX3JzYV9wdWIocnNhUHVibGljS2V5LCBzdGF0aWNfY2FzdDx1aW50
OF90Kj4oW3B1YmxpY0tleSBtdXRhYmxlQnl0ZXNdKSwgc3RhdGljX2Nhc3Q8dWludDhfdCo+KFtw
dWJsaWNLZXkgbXV0YWJsZUJ5dGVzXSkgKyBbcHVibGljS2V5IGxlbmd0aF0pOworCisgICAgYXV0
byBzZWNLZXkgPSBhZG9wdENGKFNlY0tleUNyZWF0ZVdpdGhEYXRhKChfX2JyaWRnZSBDRkRhdGFS
ZWYpcHVibGljS2V5LmdldCgpLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKUB7CisgICAgICAg
IChfX2JyaWRnZSBpZClrU2VjQXR0cktleVR5cGU6IChfX2JyaWRnZSBpZClrU2VjQXR0cktleVR5
cGVSU0EsCisgICAgICAgIChfX2JyaWRnZSBpZClrU2VjQXR0cktleUNsYXNzOiAoX19icmlkZ2Ug
aWQpa1NlY0F0dHJLZXlDbGFzc1B1YmxpYworICAgIH0sIG5pbCkpOworICAgIEVYUEVDVF9OT1Rf
TlVMTChzZWNLZXkpOworCisgICAgYXV0byBzcGtpRGF0YSA9IGFkb3B0Q0YoU2VjS2V5Q29weVN1
YmplY3RQdWJsaWNLZXlJbmZvKHNlY0tleS5nZXQoKSkpOworICAgIGF1dG8gKm5zU3BraURhdGEg
PSAoX19icmlkZ2UgTlNEYXRhICopc3BraURhdGEuZ2V0KCk7CisKKyAgICAvLyBDb250aW51ZSB0
aGUgdGVzdC4KKyAgICBhdXRvIHNvdXJjZVNlY3JldFRva2VuID0gcGNtLnNvdXJjZVNlY3JldFRv
a2VuSnNvbihXVEY6OmJhc2U2NFVSTEVuY29kZShuc1Nwa2lEYXRhLmJ5dGVzLCBuc1Nwa2lEYXRh
Lmxlbmd0aCkpOworICAgIEVYUEVDVF9OT1RfTlVMTChzb3VyY2VTZWNyZXRUb2tlbik7CisgICAg
RVhQRUNUX1NUUkVRKHNvdXJjZVNlY3JldFRva2VuLT5nZXRTdHJpbmcoInNvdXJjZV9ub25jZSJf
cykudXRmOCgpLmRhdGEoKSwgIkFCQ0RFRmFiY2RlZjAxMjM0NTY3ODkiKTsKKyAgICBFWFBFQ1Rf
RkFMU0Uoc291cmNlU2VjcmV0VG9rZW4tPmdldFN0cmluZygic291cmNlX3NlY3JldF90b2tlbiJf
cykuaXNFbXB0eSgpKTsKKworICAgIC8vIEdlbmVyYXRlIHRoZSBzaWduYXR1cmUuCisgICAgVmVj
dG9yPHVpbnQ4X3Q+IGJsaW5kZWRNZXNzYWdlOworICAgIGJhc2U2NFVSTERlY29kZShzb3VyY2VT
ZWNyZXRUb2tlbi0+Z2V0U3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIl9zKSwgYmxpbmRlZE1l
c3NhZ2UpOworCisgICAgYXV0byBibGluZGVkU2lnbmF0dXJlID0gYWRvcHROUyhbW05TTXV0YWJs
ZURhdGEgYWxsb2NdIGluaXRXaXRoTGVuZ3RoOiBtb2R1bHVzTkJ5dGVzXSk7CisgICAgY2Nyc2Fi
c3NhX3NpZ25fYmxpbmRlZF9tZXNzYWdlKGNpcGhlcnN1aXRlLCByc2FQcml2YXRlS2V5LCBibGlu
ZGVkTWVzc2FnZS5kYXRhKCksIGJsaW5kZWRNZXNzYWdlLnNpemUoKSwgc3RhdGljX2Nhc3Q8dWlu
dDhfdCAqPihbYmxpbmRlZFNpZ25hdHVyZSBtdXRhYmxlQnl0ZXNdKSwgW2JsaW5kZWRTaWduYXR1
cmUgbGVuZ3RoXSwgcm5nKTsKKworICAgIC8vIENvbnRpbnVlIHRoZSB0ZXN0LgorICAgIGF1dG8g
cGVyc2lzdGVudFRva2VuID0gcGNtLmNhbGN1bGF0ZVNvdXJjZVVubGlua2FibGVUb2tlbihXVEY6
OmJhc2U2NFVSTEVuY29kZShbYmxpbmRlZFNpZ25hdHVyZSBieXRlc10sIFtibGluZGVkU2lnbmF0
dXJlIGxlbmd0aF0pKTsKKyAgICBFWFBFQ1RfVFJVRShwZXJzaXN0ZW50VG9rZW4pOworICAgIEVY
UEVDVF9GQUxTRShwZXJzaXN0ZW50VG9rZW4tPnRva2VuQmFzZTY0VVJMLmlzRW1wdHkoKSk7Cisg
ICAgRVhQRUNUX0ZBTFNFKHBlcnNpc3RlbnRUb2tlbi0+a2V5SURCYXNlNjRVUkwuaXNFbXB0eSgp
KTsKKyAgICBFWFBFQ1RfRkFMU0UocGVyc2lzdGVudFRva2VuLT5zaWduYXR1cmVCYXNlNjRVUkwu
aXNFbXB0eSgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYg
Ly8gSEFWRShQQ01fRlJBVURfUFJFVkVOVElPTikK
</data>
<flag name="commit-queue"
          id="439390"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420760</attachid>
            <date>2021-02-17 16:50:56 -0800</date>
            <delta_ts>2021-02-17 19:46:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222019-20210217165056.patch</filename>
            <type>text/plain</type>
            <size>42394</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDUwYzU1NmNjMjZjMjU5MjcyZWY2ZjYw
Y2I3NzVhZDBiNmU4NDA2OWYuLjU2MzQ5YTQxNTE1NzkzNGEzOWExNGQ0OTAxMzg5M2QwZjZkNjdk
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5f
dGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQg
Y29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcz
NTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd3RmL1BsYXRmb3JtSGF2ZS5oOgorICAgICAgICBBZGRzIGEgY29tcGlsZSB0aW1lIGZsYWcg
Zm9yIFJTQUJTU0EuCisKIDIwMjEtMDItMTUgIFBlciBBcm5lICA8cHZvbGxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW21hY09TXSBDbG9zZSBYUEMgY29ubmVjdGlvbnMgYmVmb3JlIGVudGVyaW5n
IHNhbmRib3gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMTU0ZDExOWE5NjJkM2M5MDkzNzM4N2Y5NzViY2VjOTFl
Mjc4ZmU1Li4yYWY2MTE1MGYxMTI2ZTI5ODk0YzZlYjI3ZDFjMzE1YmQ2OTc2MzQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQgY29y
cmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzczNTgx
NDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENv
dmVyZWQgYnkgQVBJIHRlc3RzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggdXRpbGl6ZXMgUlNBQlNT
QSB0byBnZW5lcmF0ZSBzZWNyZXQgdG9rZW4gZm9yIFBDTSBmcmF1ZCBwcmV2ZW50aW9uLgorCisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZzoKKyAgICAgICAgKiBTb3Vy
Y2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgUGFwZXJ3b3JrIHRvIGxpbmsgQ3J5cHRvS2l0Q0JyaWRnaW5nLgorCisgICAg
ICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNWYWxp
ZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c2V0
RXBoZW1lcmFsU291cmNlTm9uY2UpOgorICAgICAgICAqIGxvYWRlci9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0
dHJpYnV0ZU9uU2l0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6ZXBoZW1lcmFsU291cmNlTm9uY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmNsZWFyRXBoZW1lcmFsU291cmNlTm9uY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5v
bmNlOjpFcGhlbWVyYWxTb3VyY2VOb25jZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFsU291cmNlTm9uY2U6OmlzVmFsaWQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OnNldEVwaGVtZXJhbFNvdXJjZU5vbmNlKTogRGVsZXRlZC4KKyAgICAgICAgR3JvdXBzIGZ1bmN0
aW9uYWxpdGllcyBiZWhpbmQgSEFWRV9SU0FfQlNTQS4KKworICAgICAgICAqIGxvYWRlci9jb2Nv
YS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpibGluZGVkU2VjcmV0SnNvbik6CisgICAgICAg
IChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y2FsY3VsYXRlUGVyc2lzdGVudEJs
aW5kZWRUb2tlbik6CisgICAgICAgIEludHJvZHVjZXMgbmV3IG1ldGhvZHMgdG8gZ2VuZXJhdGUg
dGhlIGJsaW5kZWQgc2VjcmV0cyBhbmQgdW5saW5rYWJsZSB0b2tlbnMuCisKIDIwMjEtMDItMTUg
IEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgUENNOiBBZGQg
aGlnaCBlbnRyb3B5IGF0dHJpYnV0aW9uU291cmNlTm9uY2UgYXR0cmlidXRlIHRvIGFuY2hvciB0
YWdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAppbmRleCAxOTExNjkyYzU3ZGQwMTYzODkzZGMwYWRh
NWRhNTNkZTA5OWU4MGMxLi43NmIyZjIyNDIyNDVjMzVkYTFkZjZiZGE5MjIzYTNjMzJhN2YxYzRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKQEAgLTg5NCwzICs4OTQsNyBAQAogI2lmIE9TKERB
UldJTikgJiYgQ1BVKEFERFJFU1M2NCkgJiYgRU5BQkxFKEpJVCkgJiYgKEVOQUJMRShKSVRfQ0FH
RSkgfHwgQVNTRVJUX0VOQUJMRUQpCiAjZGVmaW5lIEVOQUJMRV9KSVRfT1BFUkFUSU9OX1ZBTElE
QVRJT04gMQogI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUENNX0ZSQVVEX1BSRVZFTlRJ
T04pICYmIEhBVkUoUlNBX0JTU0EpCisjZGVmaW5lIEVOQUJMRV9QQ01fRlJBVURfUFJFVkVOVElP
TiAxCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oIGIv
U291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKaW5kZXggMDU0ZjY3ZTYyYTkyYzA1NjQwNDAz
ZDkwMjAxNGYyNDMzMTQ3MzNmYi4uODNmYTllNGRjNGUzZWM5ODNmN2EyMTlkMTk5NjBiNjZjMDhi
NzVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKKysrIGIvU291
cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKQEAgLTg4NCwzICs4ODQsOCBAQAogI2RlZmluZSBI
QVZFX0NPUkVfR1JBUEhJQ1NfUk9NTVJHQl9DT0xPUl9TUEFDRSAxCiAjZGVmaW5lIEhBVkVfQ09S
RV9HUkFQSElDU19YWVpfQ09MT1JfU1BBQ0UgMQogI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEyMDAwMCkgXAorICAgIHx8
IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE1
MDAwMCkKKyNkZWZpbmUgSEFWRV9SU0FfQlNTQSAxCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5NzBlN2UxODRlYzI1
ZjA0YjVmZGE5ZTliODQzZDA2MDg0NGNkZjc1Li4xOGQ3NjQ3ZDA3ODM3MGUyYTY3MjQ2NWFkNTY1
OTgyNmNjY2MxOWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xMzYsNiArMTM2LDggQEAKIAkJNTcwQUI4RjkyMEFGNkUzRDAw
QjhCRTg3IC8qIE5TWFBDQ29ubmVjdGlvblNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwQUI4RjgyMEFGNkUzRDAwQjhCRTg3IC8qIE5TWFBDQ29u
bmVjdGlvblNQSS5oICovOyB9OwogCQk1NzJBMTA3ODIyQjQ1NkY1MDBGNDEwQzggLyogQXV0aEtp
dFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcy
QTEwNzcyMkI0NTZGNTAwRjQxMEM4IC8qIEF1dGhLaXRTUEkuaCAqLzsgfTsKIAkJNTc2Q0E5RDYy
MkI4NTRBQjAwMzAxNDNDIC8qIEFwcFNTT1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTc2Q0E5RDUyMkI4NTRBQjAwMzAxNDNDIC8qIEFwcFNTT1NQ
SS5oICovOyB9OworCQk1N0YxQzkwOTI1RENGMENGMDBFOEY2RUEgLyogQ3J5cHRvS2l0Q0JyaWRn
aW5nU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU3RjFDOTA3MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5oICovOyB9OworCQk1N0YxQzkwQTI1RENGMENGMDBFOEY2RUEgLyogQ3J5cHRvS2l0Q0JyaWRn
aW5nU29mdExpbmsubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1N0YxQzkwODI1RENGMENGMDBFOEY2RUEgLyogQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExp
bmsubW0gKi87IH07CiAJCTU3RkQzMThBMjJCMzU5M0UwMDhEMEU4QiAvKiBBcHBTU09Tb2Z0TGlu
ay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RkQz
MTg5MjJCMzU5M0UwMDhEMEU4QiAvKiBBcHBTU09Tb2Z0TGluay5tbSAqLzsgfTsKIAkJNTdGRDMx
OEIyMkIzNTk4OTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0ZEMzE4ODIyQjM1OTJGMDA4RDBFOEIgLyog
QXBwU1NPU29mdExpbmsuaCAqLzsgfTsKIAkJNUM3Qzc4NzMyM0FDM0U3NzAwNjVGNDdFIC8qIE1h
bmFnZWRDb25maWd1cmF0aW9uU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDVDN0M3ODcxMjNBQzNFNzcwMDY1RjQ3RSAvKiBNYW5hZ2VkQ29u
ZmlndXJhdGlvblNvZnRMaW5rLmggKi87IH07CkBAIC0zMzUsNiArMzM3LDggQEAKIAkJNTcwQUI4
RjgyMEFGNkUzRDAwQjhCRTg3IC8qIE5TWFBDQ29ubmVjdGlvblNQSS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBOU1hQQ0Nvbm5lY3Rpb25TUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcy
QTEwNzcyMkI0NTZGNTAwRjQxMEM4IC8qIEF1dGhLaXRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0
aEtpdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzZDQTlENTIyQjg1NEFC
MDAzMDE0M0MgLyogQXBwU1NPU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcFNTT1NQSS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0YxQzkwNzI1RENGMENGMDBFOEY2RUEgLyogQ3J5
cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvS2l0Q0JyaWRn
aW5nU29mdExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTdGMUM5MDgyNURD
RjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTU3RkQzMTg4MjJCMzU5MkYwMDhEMEU4QiAvKiBBcHBTU09Tb2Z0TGlu
ay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBTU09Tb2Z0TGluay5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0ZEMzE4OTIyQjM1OTNFMDA4RDBFOEIgLyog
QXBwU1NPU29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBBcHBTU09Tb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM3Qzc4
NzEyM0FDM0U3NzAwNjVGNDdFIC8qIE1hbmFnZWRDb25maWd1cmF0aW9uU29mdExpbmsuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFuYWdlZENvbmZpZ3VyYXRpb25Tb2Z0TGlu
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjgxLDYgKzY4NSw4IEBACiAJCQkJ
NTdGRDMxODkyMkIzNTkzRTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLm1tICovLAogCQkJCTA3
N0U4N0IwMjI2QTQ2MDIwMEEyQUZGMCAvKiBBVkZvdW5kYXRpb25Tb2Z0TGluay5oICovLAogCQkJ
CTA3N0U4N0FGMjI2QTQ2MDIwMEEyQUZGMCAvKiBBVkZvdW5kYXRpb25Tb2Z0TGluay5tbSAqLywK
KwkJCQk1N0YxQzkwNzI1RENGMENGMDBFOEY2RUEgLyogQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExp
bmsuaCAqLywKKwkJCQk1N0YxQzkwODI1RENGMENGMDBFOEY2RUEgLyogQ3J5cHRvS2l0Q0JyaWRn
aW5nU29mdExpbmsubW0gKi8sCiAJCQkJRjQ0MjkxNjYxRkE1MjcwNTAwMkNDOTNFIC8qIEZpbGVT
aXplRm9ybWF0dGVyQ29jb2EubW0gKi8sCiAJCQkJMUMwMjJFRkMyMkNGRThFMDAwNkRGMDFCIC8q
IEd1bnppcC5jcHAgKi8sCiAJCQkJQ0RBQ0IzNUUyMzg3M0U0ODAwMThEN0NFIC8qIE1lZGlhVG9v
bGJveFNvZnRMaW5rLmNwcCAqLywKQEAgLTgxOCw2ICs4MjQsNyBAQAogCQkJCTFDQ0VFNEY1MjBE
ODcxOTMwMDQ3QjA5NyAvKiBDb3JlVUlTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTE5
MUY0M0E0QzcwMDJFQUMwMiAvKiBDb3JlVUlTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDMDlE
MDUzMUUzMUM0NDEwMDcyNUYxOCAvKiBDcnlwdG9EaWdlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTU3RjFDOTA5MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNDExRjNCRUI0OTAwREJDMzE3IC8qIERhdGFEZXRl
Y3RvcnNDb3JlU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU4QTFGNDUxMzBGMDBGNEVC
QjYgLyogRGF0YURldGVjdG9yc1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MUExRjQz
QTRDNzAwMkVBQzAyIC8qIERhdGFEZXRlY3RvcnNVSVNQSS5oIGluIEhlYWRlcnMgKi8sCkBAIC0x
MDI2LDYgKzEwMzMsNyBAQAogCQkJCTBDNUZGRjBGMUY3OEQ5REEwMDlFRkYxQSAvKiBDbG9ja0NN
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMENGOTlDQTgxRjczODQzNzAwN0VFNzkzIC8qIENvcmVN
ZWRpYVNvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDMDlEMDU2MUUzMUM0NjUwMDcy
NUYxOCAvKiBDcnlwdG9EaWdlc3RDb21tb25DcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTdGMUM5MEEyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTExNzVCNTgxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRT
ZWFyY2hQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNDQyOTE2NDFGQTUyNjcwMDAy
Q0M5M0UgLyogRmlsZVNpemVGb3JtYXR0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ0Mjkx
NjgxRkE1MjcwNTAwMkNDOTNFIC8qIEZpbGVTaXplRm9ybWF0dGVyQ29jb2EubW0gaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRvS2l0
Q0JyaWRnaW5nU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRv
S2l0Q0JyaWRnaW5nU29mdExpbmsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzIwM2QyZjVjMTY4MTA5NzJlNmEz
ODhlNDI3YTdhOGVhNDUwMWRlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oCkBAIC0wLDAgKzEsMzcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShQQ01fRlJBVURfUFJFVkVO
VElPTikKKworI2ltcG9ydCA8Q3J5cHRvS2l0Q0JyaWRnaW5nL1JTQUJTU0EuaD4KKyNpbXBvcnQg
PHd0Zi9Tb2Z0TGlua2luZy5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFM
LCBDcnlwdG9LaXRDQnJpZGdpbmcpOworCitTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUws
IFJTQUJTU0FUb2tlbkJsaW5kZXIpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2NvY29hL0NyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjllYTZhNDgwYzM2NzE2ODc2NmZmOWMyNDQyOGFhN2FiYjI0Y2UwZTIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0NyeXB0b0tpdENCcmlkZ2lu
Z1NvZnRMaW5rLm1tCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpZiBFTkFCTEUoUENNX0ZSQVVEX1BSRVZFTlRJT04pCisKKyNpbXBvcnQgPHd0
Zi9Tb2Z0TGlua2luZy5oPgorCitTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUktfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENyeXB0b0tpdENCcmlkZ2luZywgUEFMX0VYUE9SVCk7CisKK1NP
RlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ3J5cHRvS2l0Q0JyaWRn
aW5nLCBSU0FCU1NBVG9rZW5CbGluZGVyLCBQQUxfRVhQT1JUKTsKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291
cmNlc0NvY29hLnR4dAppbmRleCAyZjBmZGVmZTkzYWVjNmVlZmNmZTg3MWNlZmVlYzlmZTQ1ODI4
NzYzLi41NWUzOTAyNmNmYjQ1MzMyYmEwNzkwNzc4MGQwNmJjZjQ2ZDlkNjAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXNDb2NvYS50eHQKQEAgLTE2Nyw2ICsxNjcsNyBAQCBpbnNwZWN0b3IvbWFjL1BhZ2VEZWJ1
Z2dlck1hYy5tbQogbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAKIGxvYWRl
ci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmVNYWMubW0KIGxvYWRlci9jb2NvYS9EaXNrQ2Fj
aGVNb25pdG9yQ29jb2EubW0KK2xvYWRlci9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
Y29hLm1tCiBsb2FkZXIvY29jb2EvU3VicmVzb3VyY2VMb2FkZXJDb2NvYS5tbQogbG9hZGVyL2lv
cy9MZWdhY3lQcmV2aWV3TG9hZGVyLm1tCiBsb2FkZXIvbWFjL0RvY3VtZW50TG9hZGVyTWFjLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDI5ZTE5YTkxN2I1YmUwNGMzY2RmMWJlM2FhZTBmYjRiN2VkZGFjYjcuLmEyYTI0N2Fm
ZTU5MjY0MTlkMzc1MzdjZGY3NDMxZGI2NTQzMDkzNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk0MDgsNiArOTQwOCw3IEBA
CiAJCTU3RUVBQTU3MUVBMEFGQkIwMDcwMTEyNCAvKiBDb21tb25DcnlwdG9ERVJVdGlsaXRpZXMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29tbW9uQ3J5cHRvREVS
VXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdFRjVFNUYxRDIw
QzgzOTAwMTcxRTYwIC8qIFRleHRDb2RlY1JlcGxhY2VtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFRleHRDb2RlY1JlcGxhY2VtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU3RUY1RTYxMUQyMEQyODcwMDE3MUU2MCAvKiBUZXh0Q29kZWNSZXBsYWNl
bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0Q29kZWNS
ZXBsYWNlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3RjFDOEUzMjVE
QzZFRTcwMEU4RjZFQSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRD
b2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGODI3MzkxREI3MkMyMjAw
OUQyQkY0IC8qIFJzYUhhc2hlZEtleUdlblBhcmFtcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUnNhSGFzaGVkS2V5R2Vu
UGFyYW1zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGRUREM0QxREI2RDQ3
RjAwRUI5NkY1IC8qIFJzYUtleUdlblBhcmFtcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUnNhS2V5R2VuUGFyYW1zLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGRUREM0UxREI2RDU5MjAwRUI5NkY1
IC8qIENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk3MTgsNyArOTcxOSw3IEBACiAJCTZBMjJFODcyMUYxMDQy
QzQwMEY1NDZDMyAvKiBJbnNwZWN0b3JDYW52YXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5z
cGVjdG9yQ2FudmFzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkE3Mjc5ODgx
RjE2QzI5QjAwM0YzOUI4IC8qIEluc3BlY3RvclNoYWRlclByb2dyYW0uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2QTcyNzk4OTFGMTZDMjlCMDAzRjM5QjggLyogSW5zcGVjdG9y
U2hhZGVyUHJvZ3JhbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NkIwQTA3RjAyMUZBNEI1QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTZCMEEwN0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjBBMDdGMTIxRkE0
QjVDMDBENTczOTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2QjFGNDgwRjIyOTg5RUM0MDBERThCODIgLyogQ3Jvc3NTaXRlTmF2aWdhdGlvbkRh
dGFUcmFuc2Zlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5z
ZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCNEQ0MTJCMjM5ODNGODgwMDI0
OTRDMiAvKiBMb2dnZWRJblN0YXR1cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2dnZWRJblN0YXR1cy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI5MjQsNiArMjI5MjUsNyBAQAogCQkJ
Y2hpbGRyZW4gPSAoCiAJCQkJN0VEQUFGQzgxOUEyQ0JEMTAwMzRERkQxIC8qIERpc2tDYWNoZU1v
bml0b3JDb2NvYS5oICovLAogCQkJCTdFNERFMTBDMTk4QjEwQjYwMDUxQ0IwMiAvKiBEaXNrQ2Fj
aGVNb25pdG9yQ29jb2EubW0gKi8sCisJCQkJNTdGMUM4RTMyNURDNkVFNzAwRThGNkVBIC8qIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gKi8sCiAJCQkJN0U4RkFEQzMxOTlBOTVCMTAw
NzE0OTY4IC8qIFN1YnJlc291cmNlTG9hZGVyQ29jb2EubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9
IGNvY29hOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCBl
YzNkOTBiZWMyOWQzMzg3ZWJjOGIyM2FkYzYyYWZiYzczMzI4ZDU0Li45NmM0ZDVkODNiNmEwNDY1
M2JhMjM4NTE0YzEyOTJlYmIzNjRhMTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNo
b3JFbGVtZW50LmNwcApAQCAtNDUyLDYgKzQ1Miw3IEBAIE9wdGlvbmFsPFByaXZhdGVDbGlja01l
YXN1cmVtZW50PiBIVE1MQW5jaG9yRWxlbWVudDo6cGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
CiAKICAgICBhdXRvIHByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQgeyBTb3VyY2VJRChhdHRyaWJ1dGlvblNvdXJjZUlELnZhbHVlKCkpLCBTb3VyY2VTaXRl
KGRvY3VtZW50UmVnaXN0cmFibGVEb21haW4pLCBBdHRyaWJ1dGVPblNpdGUoYXR0cmlidXRlT25V
UkwpIH07CiAKKyNpZiBFTkFCTEUoUENNX0ZSQVVEX1BSRVZFTlRJT04pCiAgICAgYXV0byBhdHRy
aWJ1dGlvblNvdXJjZU5vbmNlQXR0ciA9IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
YXR0cmlidXRpb25zb3VyY2Vub25jZUF0dHIpOwogICAgIGlmICghYXR0cmlidXRpb25Tb3VyY2VO
b25jZUF0dHIuaXNFbXB0eSgpKSB7CiAgICAgICAgIGF1dG8gZXBoZW1lcmFsTm9uY2UgPSBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFsU291cmNlTm9uY2UgeyBhdHRyaWJ1dGlvblNv
dXJjZU5vbmNlQXR0ciB9OwpAQCAtNDYxLDYgKzQ2Miw3IEBAIE9wdGlvbmFsPFByaXZhdGVDbGlj
a01lYXN1cmVtZW50PiBIVE1MQW5jaG9yRWxlbWVudDo6cGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJl
bWVuCiAgICAgICAgIH0KICAgICAgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuc2V0RXBoZW1l
cmFsU291cmNlTm9uY2UoV1RGTW92ZShlcGhlbWVyYWxOb25jZSkpOwogICAgIH0KKyNlbmRpZgog
CiAgICAgcmV0dXJuIHByaXZhdGVDbGlja01lYXN1cmVtZW50OwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKaW5kZXggMzIwMDQ3MGQ4
N2Q1Zjg1MGNkNDVhZWVjZWM3MWQ4OWNlYmNlYzg0ZS4uZmY4NmFhNGQxYmQyNmY1NzNiYjRiZmNh
Y2MxNGNiYTA2ZjU2MjYzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCkBAIC0xNDYsNCArMTQ2LDI4IEBAIFJlZjxKU09OOjpPYmpl
Y3Q+IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpqc29uKCkgY29uc3QKICAgICByZXR1cm4gcmVw
b3J0RGV0YWlsczsKIH0KIAorLy8gTUFSSzogLSBGcmF1ZCBQcmV2ZW50aW9uCisjaWYgRU5BQkxF
KFBDTV9GUkFVRF9QUkVWRU5USU9OKQorCitzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IEVwaGVt
ZXJhbFNvdXJjZU5vbmNlUmVxdWlyZWROdW1iZXJPZkJ5dGVzID0gMTY7CisKK2Jvb2wgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlOjppc1ZhbGlkKCkgY29uc3QK
K3sKKyAgICAvLyBGSVhNRTogSW52ZXN0aWdhdGUgaWYgd2UgY2FuIGRvIHdpdGggYSBzaW1wbGUg
bGVuZ3RoIGNoZWNrIGluc3RlYWQgb2YgZGVjb2RpbmcuCisgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTk0NQorICAgIFZlY3Rvcjx1aW50OF90PiBkaWdl
c3Q7CisgICAgaWYgKCFiYXNlNjRVUkxEZWNvZGUobm9uY2UsIGRpZ2VzdCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICByZXR1cm4gZGlnZXN0LnNpemUoKSA9PSBFcGhlbWVyYWxTb3VyY2VO
b25jZVJlcXVpcmVkTnVtYmVyT2ZCeXRlczsKIH0KKwordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6c2V0RXBoZW1lcmFsU291cmNlTm9uY2UoRXBoZW1lcmFsU291cmNlTm9uY2UmJiBub25j
ZSkKK3sKKyAgICBpZiAoIW5vbmNlLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1f
ZXBoZW1lcmFsU291cmNlTm9uY2UgPSBXVEZNb3ZlKG5vbmNlKTsKK30KKworI2VuZGlmIC8vIEVO
QUJMRShQQ01fRlJBVURfUFJFVkVOVElPTikKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaAppbmRleCBh
NGM5NmNhMWUwYTRkMDBiMmFhZjFjYzU2OTMzMjk3OWE5ZjgyNTIwLi5kNjMyMjYwY2E3MjllNTM2
OTQxM2RlY2YxYTU1MjM3NmRhNDFlM2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaApAQCAtMzYsNiArMzYsMTAgQEAKICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
K09CSkNfQ0xBU1MgUlNBQlNTQVRva2VuUmVhZHk7CitPQkpDX0NMQVNTIFJTQUJTU0FUb2tlbldh
aXRpbmdBY3RpdmF0aW9uOworT0JKQ19DTEFTUyBSU0FCU1NBVG9rZW5CbGluZGVyOworCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFByaXZhdGVDbGlja01lYXN1cmVtZW50IHsKQEAgLTIw
MSwyOCArMjA1LDYgQEAgcHVibGljOgogICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9D
b21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOwogICAgIH07CiAKLSAgICBzdHJ1Y3QgRXBo
ZW1lcmFsU291cmNlTm9uY2UgewotICAgICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IFJl
cXVpcmVkTnVtYmVyT2ZCeXRlcyA9IDE2OwotCi0gICAgICAgIEVwaGVtZXJhbFNvdXJjZU5vbmNl
KCkgPSBkZWZhdWx0OwotICAgICAgICBleHBsaWNpdCBFcGhlbWVyYWxTb3VyY2VOb25jZShjb25z
dCBTdHJpbmcmIG5vbmNlU3RyaW5nKQotICAgICAgICAgICAgOiBub25jZSB7IG5vbmNlU3RyaW5n
IH0KLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgLy8gRklYTUU6IEludmVzdGlnYXRl
IGlmIHdlIGNhbiBkbyB3aXRoIGEgc2ltcGxlIGxlbmd0aCBjaGVjayBpbnN0ZWFkIG9mIGRlY29k
aW5nLgotICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjIxOTQ1Ci0gICAgICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAg
ICAgIFZlY3Rvcjx1aW50OF90PiBkaWdlc3Q7Ci0gICAgICAgICAgICBpZiAoIWJhc2U2NFVSTERl
Y29kZShub25jZSwgZGlnZXN0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgICAgICByZXR1cm4gZGlnZXN0LnNpemUoKSA9PSBSZXF1aXJlZE51bWJlck9mQnl0ZXM7Ci0g
ICAgICAgIH0KLQotICAgICAgICBTdHJpbmcgbm9uY2U7Ci0gICAgfTsKLQogICAgIHN0cnVjdCBQ
cmlvcml0eSB7CiAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgTWF4RW50cm9weSA9
IDYzOwogCkBAIC0yNzgsOSArMjYwLDYgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFJl
ZjxKU09OOjpPYmplY3Q+IGpzb24oKSBjb25zdDsKICAgICBjb25zdCBTb3VyY2VTaXRlJiBzb3Vy
Y2VTaXRlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VTaXRlOyB9OwogICAgIGNvbnN0IEF0dHJp
YnV0ZU9uU2l0ZSYgYXR0cmlidXRlT25TaXRlKCkgY29uc3QgeyByZXR1cm4gbV9hdHRyaWJ1dGVP
blNpdGU7IH07Ci0gICAgdm9pZCBzZXRFcGhlbWVyYWxTb3VyY2VOb25jZShFcGhlbWVyYWxTb3Vy
Y2VOb25jZSYmIG5vbmNlKSB7IG1fZXBoZW1lcmFsU291cmNlTm9uY2UgPSBXVEZNb3ZlKG5vbmNl
KTsgfTsKLSAgICBPcHRpb25hbDxFcGhlbWVyYWxTb3VyY2VOb25jZT4gZXBoZW1lcmFsU291cmNl
Tm9uY2UoKSBjb25zdCB7IHJldHVybiAhbV9lcGhlbWVyYWxTb3VyY2VOb25jZSA/IFdURjo6bnVs
bG9wdCA6IG1fZXBoZW1lcmFsU291cmNlTm9uY2UtPmlzVmFsaWQoKSA/IG1fZXBoZW1lcmFsU291
cmNlTm9uY2UgOiBXVEY6Om51bGxvcHQ7IH07Ci0gICAgdm9pZCBjbGVhckVwaGVtZXJhbFNvdXJj
ZU5vbmNlKCkgeyBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlICA9IFdURjo6bnVsbG9wdDsgfTsKICAg
ICBXYWxsVGltZSB0aW1lT2ZBZENsaWNrKCkgY29uc3QgeyByZXR1cm4gbV90aW1lT2ZBZENsaWNr
OyB9CiAgICAgT3B0aW9uYWw8V2FsbFRpbWU+IGVhcmxpZXN0VGltZVRvU2VuZCgpIGNvbnN0IHsg
cmV0dXJuIG1fZWFybGllc3RUaW1lVG9TZW5kOyB9OwogICAgIHZvaWQgc2V0RWFybGllc3RUaW1l
VG9TZW5kKFdhbGxUaW1lIHRpbWUpIHsgbV9lYXJsaWVzdFRpbWVUb1NlbmQgPSB0aW1lOyB9CkBA
IC0yOTEsNiArMjcwLDI4IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZURlc2Ny
aXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VEZXNjcmlwdGlvbjsgfQogICAgIGNvbnN0
IFN0cmluZyYgcHVyY2hhc2VyKCkgY29uc3QgeyByZXR1cm4gbV9wdXJjaGFzZXI7IH0KIAorICAg
IC8vIE1BUks6IC0gRnJhdWQgUHJldmVudGlvbgorI2lmIEVOQUJMRShQQ01fRlJBVURfUFJFVkVO
VElPTikKKyAgICBzdHJ1Y3QgRXBoZW1lcmFsU291cmNlTm9uY2UgeworICAgICAgICBTdHJpbmcg
bm9uY2U7CisKKyAgICAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7Cisg
ICAgfTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RXBoZW1lcmFsU291cmNlTm9uY2Uo
RXBoZW1lcmFsU291cmNlTm9uY2UmJik7CisgICAgT3B0aW9uYWw8RXBoZW1lcmFsU291cmNlTm9u
Y2U+IGVwaGVtZXJhbFNvdXJjZU5vbmNlKCkgY29uc3QgeyByZXR1cm4gbV9lcGhlbWVyYWxTb3Vy
Y2VOb25jZTsgfTsKKyAgICB2b2lkIGNsZWFyRXBoZW1lcmFsU291cmNlTm9uY2UoKSB7IG1fZXBo
ZW1lcmFsU291cmNlTm9uY2UucmVzZXQoKTsgfTsKKworICAgIHN0cnVjdCBTb3VyY2VVbmxpbmth
YmxlVG9rZW4geworICAgICAgICBTdHJpbmcgdG9rZW5CYXNlNjRVUkw7CisgICAgICAgIFN0cmlu
ZyBrZXlJREJhc2U2NFVSTDsKKyAgICAgICAgU3RyaW5nIHNpZ25hdHVyZUJhc2U2NFVSTDsKKyAg
ICB9OworCisgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPEpTT046Ok9iamVjdD4gc291cmNlU2Vj
cmV0VG9rZW5Kc29uKGNvbnN0IFN0cmluZyYgc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxTb3VyY2VVbmxpbmthYmxlVG9rZW4+IGNhbGN1bGF0
ZVNvdXJjZVVubGlua2FibGVUb2tlbihjb25zdCBTdHJpbmcmIHNlcnZlclJlc3BvbnNlQmFzZTY0
VVJMKTsKKyNlbmRpZiAvLyBFTkFCTEUoUENNX0ZSQVVEX1BSRVZFTlRJT04pCisKICAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVt
ZW50PiBkZWNvZGUoRGVjb2RlciYpOwogCkBAIC0zMDQsOSArMzA1LDE5IEBAIHByaXZhdGU6CiAg
ICAgU3RyaW5nIG1fcHVyY2hhc2VyOwogICAgIFdhbGxUaW1lIG1fdGltZU9mQWRDbGljazsKIAot
ICAgIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5vbmNlPiBtX2VwaGVtZXJhbFNvdXJjZU5vbmNl
OwogICAgIE9wdGlvbmFsPEF0dHJpYnV0aW9uVHJpZ2dlckRhdGE+IG1fYXR0cmlidXRpb25Ucmln
Z2VyRGF0YTsKICAgICBPcHRpb25hbDxXYWxsVGltZT4gbV9lYXJsaWVzdFRpbWVUb1NlbmQ7CisK
KyNpZiBFTkFCTEUoUENNX0ZSQVVEX1BSRVZFTlRJT04pCisgICAgc3RydWN0IFNvdXJjZVNlY3Jl
dFRva2VuIHsKKyAgICAgICAgUmV0YWluUHRyPFJTQUJTU0FUb2tlbkJsaW5kZXI+IGJsaW5kZXI7
CisgICAgICAgIFJldGFpblB0cjxSU0FCU1NBVG9rZW5XYWl0aW5nQWN0aXZhdGlvbj4gd2FpdGlu
Z1Rva2VuOworICAgICAgICBSZXRhaW5QdHI8UlNBQlNTQVRva2VuUmVhZHk+IHJlYWR5VG9rZW47
CisgICAgfTsKKworICAgIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5vbmNlPiBtX2VwaGVtZXJh
bFNvdXJjZU5vbmNlOworICAgIFNvdXJjZVNlY3JldFRva2VuIG1fc291cmNlU2VjcmV0VG9rZW47
CisjZW5kaWYgLy8gRU5BQkxFKFBDTV9GUkFVRF9QUkVWRU5USU9OKQogfTsKIAogdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nv
Y29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTZiMzVlYTA2
NmNhZDQ4NjQ4ZWNmMDAzNTE1MzcyMmM0ZWI1ZDAzYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tCkBA
IC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQg
IlByaXZhdGVDbGlja01lYXN1cmVtZW50LmgiCisKKyNpZiBFTkFCTEUoUENNX0ZSQVVEX1BSRVZF
TlRJT04pCisKKyNpbXBvcnQgPHBhbC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZlB0cjxKU09OOjpPYmplY3Q+IFByaXZhdGVD
bGlja01lYXN1cmVtZW50Ojpzb3VyY2VTZWNyZXRUb2tlbkpzb24oY29uc3QgU3RyaW5nJiBzZXJ2
ZXJQdWJsaWNLZXlCYXNlNjRVUkwpCit7CisgICAgaWYgKCFtX2VwaGVtZXJhbFNvdXJjZU5vbmNl
IHx8ICFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gc2VydmVyUHVibGljS2V5
RGF0YTsKKyAgICAgICAgaWYgKCFiYXNlNjRVUkxEZWNvZGUoc2VydmVyUHVibGljS2V5QmFzZTY0
VVJMLCBzZXJ2ZXJQdWJsaWNLZXlEYXRhKSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgICAgICBhdXRvIHNlcnZlclB1YmxpY0tleSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGlu
aXRXaXRoQnl0ZXM6c2VydmVyUHVibGljS2V5RGF0YS5kYXRhKCkgbGVuZ3RoOnNlcnZlclB1Ymxp
Y0tleURhdGEuc2l6ZSgpXSk7CisKKyAgICAgICAgLy8gRklYTUUoMjIyMDE4KTogQ2hlY2sgZXJy
b3IuCisgICAgICAgIG1fc291cmNlU2VjcmV0VG9rZW4uYmxpbmRlciA9IGFkb3B0TlMoW1BBTDo6
YWxsb2NSU0FCU1NBVG9rZW5CbGluZGVySW5zdGFuY2UoKSBpbml0V2l0aFB1YmxpY0tleTpzZXJ2
ZXJQdWJsaWNLZXkuZ2V0KCkgZXJyb3I6bnVsbHB0cl0pOworICAgICAgICBpZiAoIW1fc291cmNl
U2VjcmV0VG9rZW4uYmxpbmRlcikKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0K
KworICAgIC8vIEZJWE1FKDIyMjAxOCk6IENoZWNrIGVycm9yLgorICAgIG1fc291cmNlU2VjcmV0
VG9rZW4ud2FpdGluZ1Rva2VuID0gW21fc291cmNlU2VjcmV0VG9rZW4uYmxpbmRlciB0b2tlbldh
aXRpbmdBY3RpdmF0aW9uV2l0aENvbnRlbnQ6bnVsbHB0ciBlcnJvcjpudWxscHRyXTsKKyAgICBp
ZiAoIW1fc291cmNlU2VjcmV0VG9rZW4ud2FpdGluZ1Rva2VuKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKworICAgIGF1dG8gYmxpbmRlZFNlY3JldCA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7
CisgICAgYmxpbmRlZFNlY3JldC0+c2V0U3RyaW5nKCJzb3VyY2Vfbm9uY2UiX3MsIG1fZXBoZW1l
cmFsU291cmNlTm9uY2UtPm5vbmNlKTsKKyAgICBibGluZGVkU2VjcmV0LT5zZXRTdHJpbmcoInNv
dXJjZV9zZWNyZXRfdG9rZW4iX3MsIFdURjo6YmFzZTY0VVJMRW5jb2RlKFttX3NvdXJjZVNlY3Jl
dFRva2VuLndhaXRpbmdUb2tlbiBibGluZGVkTWVzc2FnZV0uYnl0ZXMsIFttX3NvdXJjZVNlY3Jl
dFRva2VuLndhaXRpbmdUb2tlbiBibGluZGVkTWVzc2FnZV0ubGVuZ3RoKSk7CisKKyAgICByZXR1
cm4gYmxpbmRlZFNlY3JldDsKK30KKworYXV0byBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y2Fs
Y3VsYXRlU291cmNlVW5saW5rYWJsZVRva2VuKGNvbnN0IFN0cmluZyYgc2VydmVyUmVzcG9uc2VC
YXNlNjRVUkwpIC0+IE9wdGlvbmFsPFNvdXJjZVVubGlua2FibGVUb2tlbj4KK3sKKyAgICBpZiAo
IW1fc291cmNlU2VjcmV0VG9rZW4ud2FpdGluZ1Rva2VuKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gc2VydmVyUmVzcG9uc2VE
YXRhOworICAgICAgICBpZiAoIWJhc2U2NFVSTERlY29kZShzZXJ2ZXJSZXNwb25zZUJhc2U2NFVS
TCwgc2VydmVyUmVzcG9uc2VEYXRhKSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisgICAgICAgIGF1dG8gc2VydmVyUmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBp
bml0V2l0aEJ5dGVzOnNlcnZlclJlc3BvbnNlRGF0YS5kYXRhKCkgbGVuZ3RoOnNlcnZlclJlc3Bv
bnNlRGF0YS5zaXplKCldKTsKKworICAgICAgICAvLyBGSVhNRSgyMjIwMTgpOiBDaGVjayBlcnJv
ci4KKyAgICAgICAgbV9zb3VyY2VTZWNyZXRUb2tlbi5yZWFkeVRva2VuID0gW21fc291cmNlU2Vj
cmV0VG9rZW4ud2FpdGluZ1Rva2VuIGFjdGl2YXRlVG9rZW5XaXRoU2VydmVyUmVzcG9uc2U6c2Vy
dmVyUmVzcG9uc2UuZ2V0KCkgZXJyb3I6bnVsbHB0cl07CisgICAgICAgIGlmICghbV9zb3VyY2VT
ZWNyZXRUb2tlbi5yZWFkeVRva2VuKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KyAgICB9CisKKyAgICBTb3VyY2VVbmxpbmthYmxlVG9rZW4gdG9rZW47CisgICAgdG9rZW4udG9r
ZW5CYXNlNjRVUkwgPSBXVEY6OmJhc2U2NFVSTEVuY29kZShbbV9zb3VyY2VTZWNyZXRUb2tlbi5y
ZWFkeVRva2VuIHRva2VuQ29udGVudF0uYnl0ZXMsIFttX3NvdXJjZVNlY3JldFRva2VuLnJlYWR5
VG9rZW4gdG9rZW5Db250ZW50XS5sZW5ndGgpOworICAgIHRva2VuLmtleUlEQmFzZTY0VVJMID0g
V1RGOjpiYXNlNjRVUkxFbmNvZGUoW21fc291cmNlU2VjcmV0VG9rZW4ucmVhZHlUb2tlbiBrZXlJ
ZF0uYnl0ZXMsIFttX3NvdXJjZVNlY3JldFRva2VuLnJlYWR5VG9rZW4ga2V5SWRdLmxlbmd0aCk7
CisgICAgdG9rZW4uc2lnbmF0dXJlQmFzZTY0VVJMID0gV1RGOjpiYXNlNjRVUkxFbmNvZGUoW21f
c291cmNlU2VjcmV0VG9rZW4ucmVhZHlUb2tlbiBzaWduYXR1cmVdLmJ5dGVzLCBbbV9zb3VyY2VT
ZWNyZXRUb2tlbi5yZWFkeVRva2VuIHNpZ25hdHVyZV0ubGVuZ3RoKTsKKworICAgIHJldHVybiB0
b2tlbjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFBD
TV9GUkFVRF9QUkVWRU5USU9OKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDc2OTg3NzkxOTNkNGIzNDU3NmZkMjk3ZjFiZGZkNjc0OWRhMDJjZDEu
LmU0NGM3NTJjODliMWNiMGRmMDcxZmRiOTViY2U1ZmE3NzNhMzk1YjAgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAy
MS0wMi0xNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFBD
TTogR2VuZXJhdGUgc2VjcmV0IHRva2VuIGFuZCBjb3JyZXNwb25kaW5nIHVubGlua2FibGUgdG9r
ZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjAx
OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzM1ODE0MTI+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgIEFkZCB0ZXN0cy4KKwogMjAyMS0wMi0xNSAgSm9obiBXaWxhbmRlciAg
PHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBQQ006IEFkZCBoaWdoIGVudHJvcHkgYXR0
cmlidXRpb25Tb3VyY2VOb25jZSBhdHRyaWJ1dGUgdG8gYW5jaG9yIHRhZ3MKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS54Y2NvbmZp
ZyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS54Y2Nv
bmZpZwppbmRleCA3MGJlOGFhNzcwNDNiNzQxNzdkNDA2ZDAzYzMxNDk2MzhhOTlmMWU5Li5lMWZl
NjRhOGM5ZjMyYzcyZTlmOTA0ZmI1NTIwOGVlNTEwY2UxMGIxIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25maWcKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLnhjY29uZmln
CkBAIC01NSw2ICs1NSwxMSBAQCBXS19QREZLSVRfTERGTEFHU19tYWNvc3ggPSAtZnJhbWV3b3Jr
IFBERktpdDsKIFdLX1BERktJVF9MREZMQUdTX2lwaG9uZW9zID0gLWZyYW1ld29yayBQREZLaXQ7
CiBXS19QREZLSVRfTERGTEFHU19pcGhvbmVzaW11bGF0b3IgPSAtZnJhbWV3b3JrIFBERktpdDsK
IAorV0tfU1lTVEVNX0xERkxBR1MgPSAkKFdLX1NZU1RFTV9MREZMQUdTXyQoV0tfUExBVEZPUk1f
TkFNRSkpOworV0tfU1lTVEVNX0xERkxBR1NfbWFjb3N4ID0gLWZyYW1ld29yayBTeXN0ZW07CitX
S19TWVNURU1fTERGTEFHU19pcGhvbmVvcyA9IC1mcmFtZXdvcmsgU3lzdGVtOworV0tfU1lTVEVN
X0xERkxBR1NfaXBob25lc2ltdWxhdG9yID0gLWZyYW1ld29yayBTeXN0ZW07CisKIFdLX0hJRF9M
REZMQUdTID0gJChXS19ISURfTERGTEFHU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIFdLX0hJRF9M
REZMQUdTX21hY29zeCA9ICQoV0tfSElEX0xERkxBR1MkKFdLX01BQ09TXzEwMTUpKTsKIFdLX0hJ
RF9MREZMQUdTX01BQ09TX1NJTkNFXzEwMTUgPSAtZnJhbWV3b3JrIEhJRDsKQEAgLTcxLDcgKzc2
LDcgQEAgV0tfT1BFTkdMX0xERkxBR1NfYXBwbGV0dm9zID0gJChXS19PUEVOR0xfTERGTEFHU19p
cGhvbmVvcyk7CiBXS19PUEVOR0xfTERGTEFHU19hcHBsZXR2c2ltdWxhdG9yID0gJChXS19PUEVO
R0xfTERGTEFHU19pcGhvbmVzaW11bGF0b3IpOwogV0tfT1BFTkdMX0xERkxBR1NfbWFjb3N4ID0g
LWZyYW1ld29yayBPcGVuR0w7CiAKLU9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChVTkVY
UE9SVEVEX1NZTUJPTF9MREZMQUdTKSAtbGd0ZXN0IC1mb3JjZV9sb2FkICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9saWJUZXN0V2ViS2l0QVBJLmEgLWZyYW1ld29yayBKYXZhU2NyaXB0Q29yZSAtZnJh
bWV3b3JrIFdlYktpdCAtbFdlYkNvcmVUZXN0U3VwcG9ydCAkKFdLX0FVVEhLSVRfTERGTEFHUykg
LWZyYW1ld29yayBOZXR3b3JrICQoV0tfUERGS0lUX0xERkxBR1MpICQoV0tfSElEX0xERkxBR1Mp
ICQoV0tfT1BFTkdMX0xERkxBR1MpICQoT1RIRVJfTERGTEFHU19QTEFURk9STV8kKFdLX0NPQ09B
X1RPVUNIKSk7CitPVEhFUl9MREZMQUdTID0gJChpbmhlcml0ZWQpICQoVU5FWFBPUlRFRF9TWU1C
T0xfTERGTEFHUykgLWxndGVzdCAtZm9yY2VfbG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvbGli
VGVzdFdlYktpdEFQSS5hIC1mcmFtZXdvcmsgSmF2YVNjcmlwdENvcmUgLWZyYW1ld29yayBXZWJL
aXQgLWxXZWJDb3JlVGVzdFN1cHBvcnQgJChXS19BVVRIS0lUX0xERkxBR1MpIC1mcmFtZXdvcmsg
TmV0d29yayAkKFdLX1NZU1RFTV9MREZMQUdTKSAkKFdLX1BERktJVF9MREZMQUdTKSAkKFdLX0hJ
RF9MREZMQUdTKSAkKFdLX09QRU5HTF9MREZMQUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1f
JChXS19DT0NPQV9UT1VDSCkpOwogT1RIRVJfTERGTEFHU19QTEFURk9STV8gPSAtZnJhbWV3b3Jr
IENvY29hIC1mcmFtZXdvcmsgQ2FyYm9uOwogCiAvLyBGSVhNRTogVGhpcyBzaG91bGQgbm90IGJl
IGJ1aWx0IG9uIGlPUy4gSW5zdGVhZCB3ZSBzaG91bGQgY3JlYXRlIGFuZCB1c2UgYSBUZXN0V2Vi
S2l0QVBJIGFwcGxpY2F0aW9uLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZDJmOWU2Mjc2
OTA2ZTVmNTQwYWY0OTEyODg1NjM2MzI2NWI1YzllLi43ZTAxZDY4NWIzNmEyN2I0YThmZDgwYmI3
MGI1NGEzMDBmMzU3OThjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDQxLDYgKzQ0MSw3
IEBACiAJCTU3QzYyNDUwMjM0NkMyMUUwMDM4M0ZFNyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0
LWFzc2VydGlvbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU3QzYyNDRGMjM0NkMxRUMwMDM4M0ZFNyAvKiB3ZWItYXV0aGVudGljYXRp
b24tZ2V0LWFzc2VydGlvbi5odG1sICovOyB9OwogCQk1N0VERkM1QzI0NUExQTNGMDA5NTk1MjEg
Lyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYS1uby1tb2NrLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdFREZD
NUIyNDVBMThGNTAwOTU5NTIxIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwt
bGEtbm8tbW9jay5odG1sICovOyB9OwogCQk1N0VERkM2MDI0NUEyOTlDMDA5NTk1MjEgLyogd2Vi
LWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbGEtbm8tbW9jay5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RURGQzVGMjQ1QTI3
OTkwMDk1OTUyMSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1sYS1uby1tb2Nr
Lmh0bWwgKi87IH07CisJCTU3RjFDOTExMjVEREQ1MTkwMEU4RjZFQSAvKiBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTdGMUM5MTAyNURERDUxOTAwRThGNkVBIC8qIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q29jb2EubW0gKi87IH07CiAJCTU3RjRBQUEwMjA4RkFFRjAwMEE2OEU5RSAvKiBTU0xLZXlH
ZW5lcmF0b3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1N0Y0QUE5RjIwOEZBODNEMDBBNjhFOUUgLyogU1NMS2V5R2VuZXJhdG9yLm1tICovOyB9Owog
CQk1N0Y1NkE1QzFDN0Y4Q0MxMDBGMzFEN0UgLyogSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU3RjU2QTVCMUM3RjhBNDAwMEYzMUQ3RSAvKiBJc05hdmlnYXRpb25BY3Rpb25UcnVzdGVkLmh0
bWwgKi87IH07CiAJCTVDMDE2MEMxMjFBMTMyNDYwMDc3RkEzMiAvKiBKSVRFbmFibGVkLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMwMTYwQzAyMUEx
MzIzMjAwNzdGQTMyIC8qIEpJVEVuYWJsZWQubW0gKi87IH07CkBAIC0yMjI4LDYgKzIyMjksNyBA
QAogCQk1N0VERkM1QjI0NUExOEY1MDA5NTk1MjEgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2Ut
Y3JlZGVudGlhbC1sYS1uby1tb2NrLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9u
LW1ha2UtY3JlZGVudGlhbC1sYS1uby1tb2NrLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1N0VERkM1RjI0NUEyNzk5MDA5NTk1MjEgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdl
dC1hc3NlcnRpb24tbGEtbm8tbW9jay5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIndlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLWxhLW5vLW1vY2suaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU3RjEwRDkyMUM3RTdCMzgwMEVDREYzMCAvKiBJc05hdmlnYXRpb25BY3Rpb25UcnVz
dGVkLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSXNOYXZpZ2F0
aW9uQWN0aW9uVHJ1c3RlZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTdGMUM5
MTAyNURERDUxOTAwRThGNkVBIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0Y0QUE5RjIwOEZBODNEMDBBNjhFOUUgLyogU1NM
S2V5R2VuZXJhdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU1NMS2V5R2VuZXJhdG9yLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0Y1NkE1QjFDN0Y4QTQwMDBGMzFEN0Ug
LyogSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBw
YXRoID0gSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1QzAxNjBDMDIxQTEzMjMyMDA3N0ZBMzIgLyogSklURW5hYmxlZC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEpJVEVuYWJsZWQubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00Njk4LDYgKzQ3MDAsNyBAQAogCQkJY2hpbGRyZW4g
PSAoCiAJCQkJMDcxMURGNTEyMjZBOTVGQjAwM0REMkY3IC8qIEFWRm91bmRhdGlvblNvZnRMaW5r
VGVzdC5tbSAqLywKIAkJCQk3NTFCMDVENTFGOEVBQzFBMDAyOEEwOUUgLyogRGF0YWJhc2VUcmFj
a2VyVGVzdC5tbSAqLywKKwkJCQk1N0YxQzkxMDI1RERENTE5MDBFOEY2RUEgLyogUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRDb2NvYS5tbSAqLywKIAkJCQk1NzY5QzUwQTFEOUIwMDAxMDAwODQ3RkIg
LyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAubW0gKi8sCiAJCQkJQTE3OTkxODYxRTFDOTk0RTAw
QTUwNUVEIC8qIFNoYXJlZEJ1ZmZlci5tbSAqLywKIAkJCQlDRDg5RDAzODFDNEVEQjJBMDAwNDBB
MDQgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSAqLywKQEAgLTU0NzIsNiArNTQ3NSw3IEBACiAJ
CQkJQTFFQzExODgxRjQyNTQxMjAwRDAxNDZFIC8qIFByZXZpZXdDb252ZXJ0ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0NDRTdGMEMxQTQxMUFFNjAwNDQ3QzRDIC8qIFByaXZhdGVCcm93c2lu
Z1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZCMEEw
N0Y3MjFGQTlDMkIwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk1N0YxQzkxMTI1RERENTE5MDBFOEY2RUEgLyogUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQ2NDdCMTI2MUVCQTNCODUwMDQx
RDdFRiAvKiBQcm9jZXNzRGlkVGVybWluYXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxODgy
RjAzMjEwMTBDMEQwMDJGRjI4OCAvKiBQcm9jZXNzUHJlV2FybWluZy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUNEQTQ0MzhFMjFGN0E0NzcwMDM3OTQ4OSAvKiBQcm9jZXNzU3VzcGVuZE1lZGlhQnVm
ZmVyaW5nLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAppbmRleCA3
Y2Q3NzViNGM2MDQyMGVmYWUxZGUxNjc0MTgxZDBlOTFmOWU2MmIzLi5mNGFkNDUyZjZkYWZjOWE4
ZmU1OGNjZTgwMzE2N2MwMzIwNWZhMTgzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAg
LTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGVz
dC5oIgogCiAjaW5jbHVkZSA8V2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oPgogI2lu
Y2x1ZGUgPHd0Zi9VUkwuaD4KQEAgLTEyMywxMiArMTI0LDE2IEBAIFRFU1QoUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQsIFZhbGlkQ29udmVyc2lvblVSTHMpCiAgICAgQVNTRVJUX0VRKG9wdGlvbmFs
Q29udmVyc2lvbi0+cHJpb3JpdHksICh1aW50MzJfdCkyKTsKIH0KIAorI2lmIEVOQUJMRShQQ01f
RlJBVURfUFJFVkVOVElPTikKKwogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgVmFsaWRT
b3VyY2VOb25jZSkKIHsKICAgICBhdXRvIGVwaGVtZXJhbE5vbmNlID0gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlIHsgIkFCQ0RFRmFiY2RlZjAxMjM0NTY3ODki
X3MgfTsKICAgICBBU1NFUlRfVFJVRShlcGhlbWVyYWxOb25jZS5pc1ZhbGlkKCkpOwogfQogCisj
ZW5kaWYgLy8gRU5BQkxFKFBDTV9GUkFVRF9QUkVWRU5USU9OKQorCiAvLyBOZWdhdGl2ZSB0ZXN0
IGNhc2VzLgogCiBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkU291cmNlSUQp
CkBAIC0yODEsNiArMjg2LDggQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxp
ZENvbnZlcnNpb25XaXRoRGlzYWxsb3dlZFVSTENvbXBvbmVudHMpCiAgICAgQVNTRVJUX0ZBTFNF
KG9wdGlvbmFsQ29udmVyc2lvbik7CiB9CiAKKyNpZiBFTkFCTEUoUENNX0ZSQVVEX1BSRVZFTlRJ
T04pCisKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRTb3VyY2VOb25jZSkK
IHsKICAgICAvLyBGZXdlciB0aGFuIHRoZSByZXF1cmllZCBudW1iZXIgb2YgYnl0ZXMuCkBAIC0z
MDAsNCArMzA3LDI1IEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRTb3Vy
Y2VOb25jZSkKICAgICBBU1NFUlRfRkFMU0UoZXBoZW1lcmFsTm9uY2UuaXNWYWxpZCgpKTsKIH0K
IAorVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZEJsaW5kZWRTZWNyZXQpCit7
CisgICAgY29uc3QgY2hhciBzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkxbXSA9ICJNSUlDSWpBTkJn
a3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXpiMWRUaHJ0WXdWaDQ2U2pJbmVnS2hB
cXBiSndtMVhuVEJDdnliU0s4ems1M1IwQW0xaEczM0FWRjVKMWxxWWYzNndwNjYzR2FzY2xIdHF6
dnhGWkl2REExRFVTSDRhWnpfZkRIQ1RUeEVlSlZQT1JTM3pOTjJVald3YnRud3NoNEJtRFRpLXpf
Y0RuMExBejJKdVp5S2x5RnQ1R2dWTEFRdkw5SDNWTEhVOV9YSE5LLXVib3lYZmNIUlR0ckRucHUz
YzZ3dlg1ZGQtQUpvTG1JUVRaQkVKZlZreEJHem5rMXFLSGpjNm5BU0FpcktGX3dKQ251d0FLOEM2
QkFjak5jd1VXQ2VLcDBZRUN6Q1hVLS1KWGQyT0VVLVFoeFBDNjdmYWlET2gzVjB2bGZxWkx0cmxi
bmFuVUNLcnZodzdHYUdPR1lvdElyblp0dU5meEMxNGRfWE5WZDFGUzhuSGpSVEhuRWd3X2pubFNz
c2ZnU3R6MHVKdGNta2Znb0pCdk9FNG1JUnBpN2lTbFJmWE5rS3NXWDFKLWd3Y25DVm81dTB1SkVX
Nlg2Tnl2RUdZSjh3NUJQZndzUXVLOXktNFo3aWt0OUlPdWNFSFk3VGhEbWk5VE5OaEhCVmowR3U0
d0dvU2pxM2E2dkw1TjEwWlNIWG9xMVhnZkdQcm1IaGhMOTBjanZXb25veU9Yc1VxbFhFelRqRDJX
OTg5N1EtTXg5QlVOckdRUHFtSXg4RjVNd3hXY09yeWU4V1JwNFE4OG4yWVNVblY3QzhheWxkM3Yx
Rmg3TjVqZVNxZVZtdERWUllUbjJzVmZOcWdYcnpnZGlnSmNRUjh2RkVOdTZuekZQd3NyWFBNYUNp
TFVuWk5VbVExWlNMUWVReWhZWHhIcVJKcm51Q0RXWExrQ0F3RUFBUSI7CisKKyAgICBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCBwY207CisgICAgYXV0byBzb3VyY2VTZWNyZXRUb2tlbiA9IHBjbS5z
b3VyY2VTZWNyZXRUb2tlbkpzb24oc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKTsKKyAgICBFWFBF
Q1RfTlVMTChzb3VyY2VTZWNyZXRUb2tlbik7CisKKyAgICBhdXRvIGVwaGVtZXJhbE5vbmNlID0g
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlIHsgIkFCQ0RFRmFi
Y2RlZjAxMjM0NTY3ODkiX3MgfTsKKyAgICBFWFBFQ1RfVFJVRShlcGhlbWVyYWxOb25jZS5pc1Zh
bGlkKCkpOworICAgIHBjbS5zZXRFcGhlbWVyYWxTb3VyY2VOb25jZShXVEZNb3ZlKGVwaGVtZXJh
bE5vbmNlKSk7CisKKyAgICBzb3VyY2VTZWNyZXRUb2tlbiA9IHBjbS5zb3VyY2VTZWNyZXRUb2tl
bkpzb24oc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKTsKKyAgICBFWFBFQ1RfTk9UX05VTEwoc291
cmNlU2VjcmV0VG9rZW4pOworCisgICAgYXV0byBwZXJzaXN0ZW50VG9rZW4gPSBwY20uY2FsY3Vs
YXRlU291cmNlVW5saW5rYWJsZVRva2VuKGVtcHR5U3RyaW5nKCkpOworICAgIEVYUEVDVF9GQUxT
RShwZXJzaXN0ZW50VG9rZW4pOworfQorCisjZW5kaWYgLy8gRU5BQkxFKFBDTV9GUkFVRF9QUkVW
RU5USU9OKQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRDb2NvYS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0ZDdlNmFlOTA4OGZiODMw
Yjk0NzkwMGM0ZDAwNzE1YjIxMjNiZGUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5t
bQpAQCAtMCwwICsxLDEwNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJUZXN0LmgiCisKKyNpZiBFTkFCTEUoUENNX0ZSQVVEX1BSRVZFTlRJT04pCisKKyNp
bmNsdWRlIDxTZWN1cml0eS9TZWNLZXlQcml2Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC5oPgorCitleHRlcm4gIkMiIHsKKyNpbmNsdWRlIDxjb3JlY3J5cHRv
L2NjX3ByaXYuaD4KKyNpbmNsdWRlIDxjb3JlY3J5cHRvL2Njcm5nLmg+CisjaW5jbHVkZSA8Y29y
ZWNyeXB0by9jY3JzYS5oPgorI2luY2x1ZGUgPGNvcmVjcnlwdG8vY2Nyc2Fic3NhLmg+Cit9CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisK
K1RFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIFZhbGlkQmxpbmRlZFNlY3JldCkKK3sKKyAg
ICBhdXRvIGVwaGVtZXJhbE5vbmNlID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJh
bFNvdXJjZU5vbmNlIHsgIkFCQ0RFRmFiY2RlZjAxMjM0NTY3ODkiX3MgfTsKKyAgICBFWFBFQ1Rf
VFJVRShlcGhlbWVyYWxOb25jZS5pc1ZhbGlkKCkpOworCisgICAgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQgcGNtOworICAgIHBjbS5zZXRFcGhlbWVyYWxTb3VyY2VOb25jZShXVEZNb3ZlKGVwaGVt
ZXJhbE5vbmNlKSk7CisKKyAgICAvLyBHZW5lcmF0ZSB0aGUgc2VydmVyIGtleSBwYWlyLgorICAg
IHNpemVfdCBtb2R1bHVzTkJpdHMgPSA0MDk2OworICAgIGludCBlcnJvciA9IDA7CisKKyAgICBz
dHJ1Y3QgY2Nybmdfc3RhdGUqIHJuZyA9IGNjcm5nKCZlcnJvcik7CisgICAgRVhQRUNUX0VRKGVy
cm9yLCBDQ0VSUl9PSyk7CisKKyAgICBjb25zdCB1aW50OF90IGVbXSA9IHsgMHgxLCAweDAwLCAw
eDAxIH07CisgICAgY2Nyc2FfZnVsbF9jdHhfZGVjbChjY25fc2l6ZW9mKG1vZHVsdXNOQml0cyks
IHJzYVByaXZhdGVLZXkpOworICAgIGVycm9yID0gY2Nyc2FfZ2VuZXJhdGVfa2V5KG1vZHVsdXNO
Qml0cywgcnNhUHJpdmF0ZUtleSwgc2l6ZW9mKGUpLCBlLCBybmcpOworICAgIEVYUEVDVF9FUShl
cnJvciwgQ0NFUlJfT0spOworCisgICAgY2Nyc2FfcHViX2N0eF90IHJzYVB1YmxpY0tleSA9IGNj
cnNhX2N0eF9wdWJsaWMocnNhUHJpdmF0ZUtleSk7CisgICAgc2l6ZV90IG1vZHVsdXNOQnl0ZXMg
PSBjY19jZWlsaW5nKGNjcnNhX3B1YmtleWxlbmd0aChyc2FQdWJsaWNLZXkpLCA4KTsKKworICAg
IGNvbnN0IHN0cnVjdCBjY3JzYWJzc2FfY2lwaGVyc3VpdGUgKmNpcGhlcnN1aXRlID0gJmNjcnNh
YnNzYV9jaXBoZXJzdWl0ZV9yc2E0MDk2X3NoYTM4NDsKKworICAgIHNpemVfdCBleHBvcnRTaXpl
ID0gY2NkZXJfZW5jb2RlX3JzYV9wdWJfc2l6ZShyc2FQdWJsaWNLZXkpOworICAgIGF1dG8gcHVi
bGljS2V5ID0gYWRvcHROUyhbW05TTXV0YWJsZURhdGEgYWxsb2NdIGluaXRXaXRoTGVuZ3RoOmV4
cG9ydFNpemVdKTsKKyAgICBjY2Rlcl9lbmNvZGVfcnNhX3B1Yihyc2FQdWJsaWNLZXksIHN0YXRp
Y19jYXN0PHVpbnQ4X3QqPihbcHVibGljS2V5IG11dGFibGVCeXRlc10pLCBzdGF0aWNfY2FzdDx1
aW50OF90Kj4oW3B1YmxpY0tleSBtdXRhYmxlQnl0ZXNdKSArIFtwdWJsaWNLZXkgbGVuZ3RoXSk7
CisKKyAgICBhdXRvIHNlY0tleSA9IGFkb3B0Q0YoU2VjS2V5Q3JlYXRlV2l0aERhdGEoKF9fYnJp
ZGdlIENGRGF0YVJlZilwdWJsaWNLZXkuZ2V0KCksIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYp
QHsKKyAgICAgICAgKF9fYnJpZGdlIGlkKWtTZWNBdHRyS2V5VHlwZTogKF9fYnJpZGdlIGlkKWtT
ZWNBdHRyS2V5VHlwZVJTQSwKKyAgICAgICAgKF9fYnJpZGdlIGlkKWtTZWNBdHRyS2V5Q2xhc3M6
IChfX2JyaWRnZSBpZClrU2VjQXR0cktleUNsYXNzUHVibGljCisgICAgfSwgbmlsKSk7CisgICAg
RVhQRUNUX05PVF9OVUxMKHNlY0tleSk7CisKKyAgICBhdXRvIHNwa2lEYXRhID0gYWRvcHRDRihT
ZWNLZXlDb3B5U3ViamVjdFB1YmxpY0tleUluZm8oc2VjS2V5LmdldCgpKSk7CisgICAgYXV0byAq
bnNTcGtpRGF0YSA9IChfX2JyaWRnZSBOU0RhdGEgKilzcGtpRGF0YS5nZXQoKTsKKworICAgIC8v
IENvbnRpbnVlIHRoZSB0ZXN0LgorICAgIGF1dG8gc291cmNlU2VjcmV0VG9rZW4gPSBwY20uc291
cmNlU2VjcmV0VG9rZW5Kc29uKFdURjo6YmFzZTY0VVJMRW5jb2RlKG5zU3BraURhdGEuYnl0ZXMs
IG5zU3BraURhdGEubGVuZ3RoKSk7CisgICAgRVhQRUNUX05PVF9OVUxMKHNvdXJjZVNlY3JldFRv
a2VuKTsKKyAgICBFWFBFQ1RfU1RSRVEoc291cmNlU2VjcmV0VG9rZW4tPmdldFN0cmluZygic291
cmNlX25vbmNlIl9zKS51dGY4KCkuZGF0YSgpLCAiQUJDREVGYWJjZGVmMDEyMzQ1Njc4OSIpOwor
ICAgIEVYUEVDVF9GQUxTRShzb3VyY2VTZWNyZXRUb2tlbi0+Z2V0U3RyaW5nKCJzb3VyY2Vfc2Vj
cmV0X3Rva2VuIl9zKS5pc0VtcHR5KCkpOworCisgICAgLy8gR2VuZXJhdGUgdGhlIHNpZ25hdHVy
ZS4KKyAgICBWZWN0b3I8dWludDhfdD4gYmxpbmRlZE1lc3NhZ2U7CisgICAgYmFzZTY0VVJMRGVj
b2RlKHNvdXJjZVNlY3JldFRva2VuLT5nZXRTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW4iX3Mp
LCBibGluZGVkTWVzc2FnZSk7CisKKyAgICBhdXRvIGJsaW5kZWRTaWduYXR1cmUgPSBhZG9wdE5T
KFtbTlNNdXRhYmxlRGF0YSBhbGxvY10gaW5pdFdpdGhMZW5ndGg6IG1vZHVsdXNOQnl0ZXNdKTsK
KyAgICBjY3JzYWJzc2Ffc2lnbl9ibGluZGVkX21lc3NhZ2UoY2lwaGVyc3VpdGUsIHJzYVByaXZh
dGVLZXksIGJsaW5kZWRNZXNzYWdlLmRhdGEoKSwgYmxpbmRlZE1lc3NhZ2Uuc2l6ZSgpLCBzdGF0
aWNfY2FzdDx1aW50OF90ICo+KFtibGluZGVkU2lnbmF0dXJlIG11dGFibGVCeXRlc10pLCBbYmxp
bmRlZFNpZ25hdHVyZSBsZW5ndGhdLCBybmcpOworCisgICAgLy8gQ29udGludWUgdGhlIHRlc3Qu
CisgICAgYXV0byBwZXJzaXN0ZW50VG9rZW4gPSBwY20uY2FsY3VsYXRlU291cmNlVW5saW5rYWJs
ZVRva2VuKFdURjo6YmFzZTY0VVJMRW5jb2RlKFtibGluZGVkU2lnbmF0dXJlIGJ5dGVzXSwgW2Js
aW5kZWRTaWduYXR1cmUgbGVuZ3RoXSkpOworICAgIEVYUEVDVF9UUlVFKHBlcnNpc3RlbnRUb2tl
bik7CisgICAgRVhQRUNUX0ZBTFNFKHBlcnNpc3RlbnRUb2tlbi0+dG9rZW5CYXNlNjRVUkwuaXNF
bXB0eSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UocGVyc2lzdGVudFRva2VuLT5rZXlJREJhc2U2NFVS
TC5pc0VtcHR5KCkpOworICAgIEVYUEVDVF9GQUxTRShwZXJzaXN0ZW50VG9rZW4tPnNpZ25hdHVy
ZUJhc2U2NFVSTC5pc0VtcHR5KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
CisKKyNlbmRpZiAvLyBFTkFCTEUoUENNX0ZSQVVEX1BSRVZFTlRJT04pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420786</attachid>
            <date>2021-02-17 19:46:03 -0800</date>
            <delta_ts>2021-02-19 01:43:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222019-20210217194602.patch</filename>
            <type>text/plain</type>
            <size>42479</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDUwYzU1NmNjMjZjMjU5MjcyZWY2ZjYw
Y2I3NzVhZDBiNmU4NDA2OWYuLjU2MzQ5YTQxNTE1NzkzNGEzOWExNGQ0OTAxMzg5M2QwZjZkNjdk
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5f
dGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQg
Y29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcz
NTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd3RmL1BsYXRmb3JtSGF2ZS5oOgorICAgICAgICBBZGRzIGEgY29tcGlsZSB0aW1lIGZsYWcg
Zm9yIFJTQUJTU0EuCisKIDIwMjEtMDItMTUgIFBlciBBcm5lICA8cHZvbGxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW21hY09TXSBDbG9zZSBYUEMgY29ubmVjdGlvbnMgYmVmb3JlIGVudGVyaW5n
IHNhbmRib3gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMTU0ZDExOWE5NjJkM2M5MDkzNzM4N2Y5NzViY2VjOTFl
Mjc4ZmU1Li4yYWY2MTE1MGYxMTI2ZTI5ODk0YzZlYjI3ZDFjMzE1YmQ2OTc2MzQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQgY29y
cmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzczNTgx
NDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENv
dmVyZWQgYnkgQVBJIHRlc3RzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggdXRpbGl6ZXMgUlNBQlNT
QSB0byBnZW5lcmF0ZSBzZWNyZXQgdG9rZW4gZm9yIFBDTSBmcmF1ZCBwcmV2ZW50aW9uLgorCisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZzoKKyAgICAgICAgKiBTb3Vy
Y2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgUGFwZXJ3b3JrIHRvIGxpbmsgQ3J5cHRvS2l0Q0JyaWRnaW5nLgorCisgICAg
ICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNWYWxp
ZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c2V0
RXBoZW1lcmFsU291cmNlTm9uY2UpOgorICAgICAgICAqIGxvYWRlci9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0
dHJpYnV0ZU9uU2l0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6ZXBoZW1lcmFsU291cmNlTm9uY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmNsZWFyRXBoZW1lcmFsU291cmNlTm9uY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5v
bmNlOjpFcGhlbWVyYWxTb3VyY2VOb25jZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFsU291cmNlTm9uY2U6OmlzVmFsaWQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OnNldEVwaGVtZXJhbFNvdXJjZU5vbmNlKTogRGVsZXRlZC4KKyAgICAgICAgR3JvdXBzIGZ1bmN0
aW9uYWxpdGllcyBiZWhpbmQgSEFWRV9SU0FfQlNTQS4KKworICAgICAgICAqIGxvYWRlci9jb2Nv
YS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpibGluZGVkU2VjcmV0SnNvbik6CisgICAgICAg
IChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y2FsY3VsYXRlUGVyc2lzdGVudEJs
aW5kZWRUb2tlbik6CisgICAgICAgIEludHJvZHVjZXMgbmV3IG1ldGhvZHMgdG8gZ2VuZXJhdGUg
dGhlIGJsaW5kZWQgc2VjcmV0cyBhbmQgdW5saW5rYWJsZSB0b2tlbnMuCisKIDIwMjEtMDItMTUg
IEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgUENNOiBBZGQg
aGlnaCBlbnRyb3B5IGF0dHJpYnV0aW9uU291cmNlTm9uY2UgYXR0cmlidXRlIHRvIGFuY2hvciB0
YWdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAppbmRleCAxOTExNjkyYzU3ZGQwMTYzODkzZGMwYWRh
NWRhNTNkZTA5OWU4MGMxLi43NmIyZjIyNDIyNDVjMzVkYTFkZjZiZGE5MjIzYTNjMzJhN2YxYzRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKQEAgLTg5NCwzICs4OTQsNyBAQAogI2lmIE9TKERB
UldJTikgJiYgQ1BVKEFERFJFU1M2NCkgJiYgRU5BQkxFKEpJVCkgJiYgKEVOQUJMRShKSVRfQ0FH
RSkgfHwgQVNTRVJUX0VOQUJMRUQpCiAjZGVmaW5lIEVOQUJMRV9KSVRfT1BFUkFUSU9OX1ZBTElE
QVRJT04gMQogI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfUENNX0ZSQVVEX1BSRVZFTlRJ
T04pICYmIEhBVkUoUlNBX0JTU0EpCisjZGVmaW5lIEVOQUJMRV9QQ01fRlJBVURfUFJFVkVOVElP
TiAxCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oIGIv
U291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKaW5kZXggMDU0ZjY3ZTYyYTkyYzA1NjQwNDAz
ZDkwMjAxNGYyNDMzMTQ3MzNmYi4uODNmYTllNGRjNGUzZWM5ODNmN2EyMTlkMTk5NjBiNjZjMDhi
NzVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKKysrIGIvU291
cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKQEAgLTg4NCwzICs4ODQsOCBAQAogI2RlZmluZSBI
QVZFX0NPUkVfR1JBUEhJQ1NfUk9NTVJHQl9DT0xPUl9TUEFDRSAxCiAjZGVmaW5lIEhBVkVfQ09S
RV9HUkFQSElDU19YWVpfQ09MT1JfU1BBQ0UgMQogI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEyMDAwMCkgXAorICAgIHx8
IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE1
MDAwMCkKKyNkZWZpbmUgSEFWRV9SU0FfQlNTQSAxCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5NzBlN2UxODRlYzI1
ZjA0YjVmZGE5ZTliODQzZDA2MDg0NGNkZjc1Li4xOGQ3NjQ3ZDA3ODM3MGUyYTY3MjQ2NWFkNTY1
OTgyNmNjY2MxOWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xMzYsNiArMTM2LDggQEAKIAkJNTcwQUI4RjkyMEFGNkUzRDAw
QjhCRTg3IC8qIE5TWFBDQ29ubmVjdGlvblNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwQUI4RjgyMEFGNkUzRDAwQjhCRTg3IC8qIE5TWFBDQ29u
bmVjdGlvblNQSS5oICovOyB9OwogCQk1NzJBMTA3ODIyQjQ1NkY1MDBGNDEwQzggLyogQXV0aEtp
dFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcy
QTEwNzcyMkI0NTZGNTAwRjQxMEM4IC8qIEF1dGhLaXRTUEkuaCAqLzsgfTsKIAkJNTc2Q0E5RDYy
MkI4NTRBQjAwMzAxNDNDIC8qIEFwcFNTT1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTc2Q0E5RDUyMkI4NTRBQjAwMzAxNDNDIC8qIEFwcFNTT1NQ
SS5oICovOyB9OworCQk1N0YxQzkwOTI1RENGMENGMDBFOEY2RUEgLyogQ3J5cHRvS2l0Q0JyaWRn
aW5nU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU3RjFDOTA3MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5oICovOyB9OworCQk1N0YxQzkwQTI1RENGMENGMDBFOEY2RUEgLyogQ3J5cHRvS2l0Q0JyaWRn
aW5nU29mdExpbmsubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1N0YxQzkwODI1RENGMENGMDBFOEY2RUEgLyogQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExp
bmsubW0gKi87IH07CiAJCTU3RkQzMThBMjJCMzU5M0UwMDhEMEU4QiAvKiBBcHBTU09Tb2Z0TGlu
ay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RkQz
MTg5MjJCMzU5M0UwMDhEMEU4QiAvKiBBcHBTU09Tb2Z0TGluay5tbSAqLzsgfTsKIAkJNTdGRDMx
OEIyMkIzNTk4OTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0ZEMzE4ODIyQjM1OTJGMDA4RDBFOEIgLyog
QXBwU1NPU29mdExpbmsuaCAqLzsgfTsKIAkJNUM3Qzc4NzMyM0FDM0U3NzAwNjVGNDdFIC8qIE1h
bmFnZWRDb25maWd1cmF0aW9uU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDVDN0M3ODcxMjNBQzNFNzcwMDY1RjQ3RSAvKiBNYW5hZ2VkQ29u
ZmlndXJhdGlvblNvZnRMaW5rLmggKi87IH07CkBAIC0zMzUsNiArMzM3LDggQEAKIAkJNTcwQUI4
RjgyMEFGNkUzRDAwQjhCRTg3IC8qIE5TWFBDQ29ubmVjdGlvblNQSS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBOU1hQQ0Nvbm5lY3Rpb25TUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcy
QTEwNzcyMkI0NTZGNTAwRjQxMEM4IC8qIEF1dGhLaXRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0
aEtpdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzZDQTlENTIyQjg1NEFC
MDAzMDE0M0MgLyogQXBwU1NPU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcFNTT1NQSS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0YxQzkwNzI1RENGMENGMDBFOEY2RUEgLyogQ3J5
cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvS2l0Q0JyaWRn
aW5nU29mdExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTdGMUM5MDgyNURD
RjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTU3RkQzMTg4MjJCMzU5MkYwMDhEMEU4QiAvKiBBcHBTU09Tb2Z0TGlu
ay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBTU09Tb2Z0TGluay5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0ZEMzE4OTIyQjM1OTNFMDA4RDBFOEIgLyog
QXBwU1NPU29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBBcHBTU09Tb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM3Qzc4
NzEyM0FDM0U3NzAwNjVGNDdFIC8qIE1hbmFnZWRDb25maWd1cmF0aW9uU29mdExpbmsuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFuYWdlZENvbmZpZ3VyYXRpb25Tb2Z0TGlu
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjgxLDYgKzY4NSw4IEBACiAJCQkJ
NTdGRDMxODkyMkIzNTkzRTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLm1tICovLAogCQkJCTA3
N0U4N0IwMjI2QTQ2MDIwMEEyQUZGMCAvKiBBVkZvdW5kYXRpb25Tb2Z0TGluay5oICovLAogCQkJ
CTA3N0U4N0FGMjI2QTQ2MDIwMEEyQUZGMCAvKiBBVkZvdW5kYXRpb25Tb2Z0TGluay5tbSAqLywK
KwkJCQk1N0YxQzkwNzI1RENGMENGMDBFOEY2RUEgLyogQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExp
bmsuaCAqLywKKwkJCQk1N0YxQzkwODI1RENGMENGMDBFOEY2RUEgLyogQ3J5cHRvS2l0Q0JyaWRn
aW5nU29mdExpbmsubW0gKi8sCiAJCQkJRjQ0MjkxNjYxRkE1MjcwNTAwMkNDOTNFIC8qIEZpbGVT
aXplRm9ybWF0dGVyQ29jb2EubW0gKi8sCiAJCQkJMUMwMjJFRkMyMkNGRThFMDAwNkRGMDFCIC8q
IEd1bnppcC5jcHAgKi8sCiAJCQkJQ0RBQ0IzNUUyMzg3M0U0ODAwMThEN0NFIC8qIE1lZGlhVG9v
bGJveFNvZnRMaW5rLmNwcCAqLywKQEAgLTgxOCw2ICs4MjQsNyBAQAogCQkJCTFDQ0VFNEY1MjBE
ODcxOTMwMDQ3QjA5NyAvKiBDb3JlVUlTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTE5
MUY0M0E0QzcwMDJFQUMwMiAvKiBDb3JlVUlTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDMDlE
MDUzMUUzMUM0NDEwMDcyNUYxOCAvKiBDcnlwdG9EaWdlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTU3RjFDOTA5MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNDExRjNCRUI0OTAwREJDMzE3IC8qIERhdGFEZXRl
Y3RvcnNDb3JlU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzc3ODU4QTFGNDUxMzBGMDBGNEVC
QjYgLyogRGF0YURldGVjdG9yc1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MUExRjQz
QTRDNzAwMkVBQzAyIC8qIERhdGFEZXRlY3RvcnNVSVNQSS5oIGluIEhlYWRlcnMgKi8sCkBAIC0x
MDI2LDYgKzEwMzMsNyBAQAogCQkJCTBDNUZGRjBGMUY3OEQ5REEwMDlFRkYxQSAvKiBDbG9ja0NN
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMENGOTlDQTgxRjczODQzNzAwN0VFNzkzIC8qIENvcmVN
ZWRpYVNvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDMDlEMDU2MUUzMUM0NjUwMDcy
NUYxOCAvKiBDcnlwdG9EaWdlc3RDb21tb25DcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTdGMUM5MEEyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTExNzVCNTgxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRT
ZWFyY2hQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNDQyOTE2NDFGQTUyNjcwMDAy
Q0M5M0UgLyogRmlsZVNpemVGb3JtYXR0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ0Mjkx
NjgxRkE1MjcwNTAwMkNDOTNFIC8qIEZpbGVTaXplRm9ybWF0dGVyQ29jb2EubW0gaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRvS2l0
Q0JyaWRnaW5nU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRv
S2l0Q0JyaWRnaW5nU29mdExpbmsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzIwM2QyZjVjMTY4MTA5NzJlNmEz
ODhlNDI3YTdhOGVhNDUwMWRlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oCkBAIC0wLDAgKzEsMzcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShQQ01fRlJBVURfUFJFVkVO
VElPTikKKworI2ltcG9ydCA8Q3J5cHRvS2l0Q0JyaWRnaW5nL1JTQUJTU0EuaD4KKyNpbXBvcnQg
PHd0Zi9Tb2Z0TGlua2luZy5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFM
LCBDcnlwdG9LaXRDQnJpZGdpbmcpOworCitTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUws
IFJTQUJTU0FUb2tlbkJsaW5kZXIpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2NvY29hL0NyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjllYTZhNDgwYzM2NzE2ODc2NmZmOWMyNDQyOGFhN2FiYjI0Y2UwZTIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0NyeXB0b0tpdENCcmlkZ2lu
Z1NvZnRMaW5rLm1tCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpZiBFTkFCTEUoUENNX0ZSQVVEX1BSRVZFTlRJT04pCisKKyNpbXBvcnQgPHd0
Zi9Tb2Z0TGlua2luZy5oPgorCitTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUktfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENyeXB0b0tpdENCcmlkZ2luZywgUEFMX0VYUE9SVCk7CisKK1NP
RlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ3J5cHRvS2l0Q0JyaWRn
aW5nLCBSU0FCU1NBVG9rZW5CbGluZGVyLCBQQUxfRVhQT1JUKTsKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291
cmNlc0NvY29hLnR4dAppbmRleCAyZjBmZGVmZTkzYWVjNmVlZmNmZTg3MWNlZmVlYzlmZTQ1ODI4
NzYzLi41NWUzOTAyNmNmYjQ1MzMyYmEwNzkwNzc4MGQwNmJjZjQ2ZDlkNjAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXNDb2NvYS50eHQKQEAgLTE2Nyw2ICsxNjcsNyBAQCBpbnNwZWN0b3IvbWFjL1BhZ2VEZWJ1
Z2dlck1hYy5tbQogbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAKIGxvYWRl
ci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmVNYWMubW0KIGxvYWRlci9jb2NvYS9EaXNrQ2Fj
aGVNb25pdG9yQ29jb2EubW0KK2xvYWRlci9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
Y29hLm1tCiBsb2FkZXIvY29jb2EvU3VicmVzb3VyY2VMb2FkZXJDb2NvYS5tbQogbG9hZGVyL2lv
cy9MZWdhY3lQcmV2aWV3TG9hZGVyLm1tCiBsb2FkZXIvbWFjL0RvY3VtZW50TG9hZGVyTWFjLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDI5ZTE5YTkxN2I1YmUwNGMzY2RmMWJlM2FhZTBmYjRiN2VkZGFjYjcuLmEyYTI0N2Fm
ZTU5MjY0MTlkMzc1MzdjZGY3NDMxZGI2NTQzMDkzNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk0MDgsNiArOTQwOCw3IEBA
CiAJCTU3RUVBQTU3MUVBMEFGQkIwMDcwMTEyNCAvKiBDb21tb25DcnlwdG9ERVJVdGlsaXRpZXMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29tbW9uQ3J5cHRvREVS
VXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdFRjVFNUYxRDIw
QzgzOTAwMTcxRTYwIC8qIFRleHRDb2RlY1JlcGxhY2VtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFRleHRDb2RlY1JlcGxhY2VtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU3RUY1RTYxMUQyMEQyODcwMDE3MUU2MCAvKiBUZXh0Q29kZWNSZXBsYWNl
bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0Q29kZWNS
ZXBsYWNlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3RjFDOEUzMjVE
QzZFRTcwMEU4RjZFQSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRD
b2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGODI3MzkxREI3MkMyMjAw
OUQyQkY0IC8qIFJzYUhhc2hlZEtleUdlblBhcmFtcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUnNhSGFzaGVkS2V5R2Vu
UGFyYW1zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGRUREM0QxREI2RDQ3
RjAwRUI5NkY1IC8qIFJzYUtleUdlblBhcmFtcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUnNhS2V5R2VuUGFyYW1zLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGRUREM0UxREI2RDU5MjAwRUI5NkY1
IC8qIENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk3MTgsNyArOTcxOSw3IEBACiAJCTZBMjJFODcyMUYxMDQy
QzQwMEY1NDZDMyAvKiBJbnNwZWN0b3JDYW52YXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5z
cGVjdG9yQ2FudmFzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkE3Mjc5ODgx
RjE2QzI5QjAwM0YzOUI4IC8qIEluc3BlY3RvclNoYWRlclByb2dyYW0uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2QTcyNzk4OTFGMTZDMjlCMDAzRjM5QjggLyogSW5zcGVjdG9y
U2hhZGVyUHJvZ3JhbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NkIwQTA3RjAyMUZBNEI1QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTZCMEEwN0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjBBMDdGMTIxRkE0
QjVDMDBENTczOTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2QjFGNDgwRjIyOTg5RUM0MDBERThCODIgLyogQ3Jvc3NTaXRlTmF2aWdhdGlvbkRh
dGFUcmFuc2Zlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5z
ZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCNEQ0MTJCMjM5ODNGODgwMDI0
OTRDMiAvKiBMb2dnZWRJblN0YXR1cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2dnZWRJblN0YXR1cy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI5MjQsNiArMjI5MjUsNyBAQAogCQkJ
Y2hpbGRyZW4gPSAoCiAJCQkJN0VEQUFGQzgxOUEyQ0JEMTAwMzRERkQxIC8qIERpc2tDYWNoZU1v
bml0b3JDb2NvYS5oICovLAogCQkJCTdFNERFMTBDMTk4QjEwQjYwMDUxQ0IwMiAvKiBEaXNrQ2Fj
aGVNb25pdG9yQ29jb2EubW0gKi8sCisJCQkJNTdGMUM4RTMyNURDNkVFNzAwRThGNkVBIC8qIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gKi8sCiAJCQkJN0U4RkFEQzMxOTlBOTVCMTAw
NzE0OTY4IC8qIFN1YnJlc291cmNlTG9hZGVyQ29jb2EubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9
IGNvY29hOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCBl
YzNkOTBiZWMyOWQzMzg3ZWJjOGIyM2FkYzYyYWZiYzczMzI4ZDU0Li45NmM0ZDVkODNiNmEwNDY1
M2JhMjM4NTE0YzEyOTJlYmIzNjRhMTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNo
b3JFbGVtZW50LmNwcApAQCAtNDUyLDYgKzQ1Miw3IEBAIE9wdGlvbmFsPFByaXZhdGVDbGlja01l
YXN1cmVtZW50PiBIVE1MQW5jaG9yRWxlbWVudDo6cGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
CiAKICAgICBhdXRvIHByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQgeyBTb3VyY2VJRChhdHRyaWJ1dGlvblNvdXJjZUlELnZhbHVlKCkpLCBTb3VyY2VTaXRl
KGRvY3VtZW50UmVnaXN0cmFibGVEb21haW4pLCBBdHRyaWJ1dGVPblNpdGUoYXR0cmlidXRlT25V
UkwpIH07CiAKKyNpZiBFTkFCTEUoUENNX0ZSQVVEX1BSRVZFTlRJT04pCiAgICAgYXV0byBhdHRy
aWJ1dGlvblNvdXJjZU5vbmNlQXR0ciA9IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
YXR0cmlidXRpb25zb3VyY2Vub25jZUF0dHIpOwogICAgIGlmICghYXR0cmlidXRpb25Tb3VyY2VO
b25jZUF0dHIuaXNFbXB0eSgpKSB7CiAgICAgICAgIGF1dG8gZXBoZW1lcmFsTm9uY2UgPSBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFsU291cmNlTm9uY2UgeyBhdHRyaWJ1dGlvblNv
dXJjZU5vbmNlQXR0ciB9OwpAQCAtNDYxLDYgKzQ2Miw3IEBAIE9wdGlvbmFsPFByaXZhdGVDbGlj
a01lYXN1cmVtZW50PiBIVE1MQW5jaG9yRWxlbWVudDo6cGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJl
bWVuCiAgICAgICAgIH0KICAgICAgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuc2V0RXBoZW1l
cmFsU291cmNlTm9uY2UoV1RGTW92ZShlcGhlbWVyYWxOb25jZSkpOwogICAgIH0KKyNlbmRpZgog
CiAgICAgcmV0dXJuIHByaXZhdGVDbGlja01lYXN1cmVtZW50OwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKaW5kZXggMzIwMDQ3MGQ4
N2Q1Zjg1MGNkNDVhZWVjZWM3MWQ4OWNlYmNlYzg0ZS4uZmY4NmFhNGQxYmQyNmY1NzNiYjRiZmNh
Y2MxNGNiYTA2ZjU2MjYzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCkBAIC0xNDYsNCArMTQ2LDI4IEBAIFJlZjxKU09OOjpPYmpl
Y3Q+IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpqc29uKCkgY29uc3QKICAgICByZXR1cm4gcmVw
b3J0RGV0YWlsczsKIH0KIAorLy8gTUFSSzogLSBGcmF1ZCBQcmV2ZW50aW9uCisjaWYgRU5BQkxF
KFBDTV9GUkFVRF9QUkVWRU5USU9OKQorCitzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IEVwaGVt
ZXJhbFNvdXJjZU5vbmNlUmVxdWlyZWROdW1iZXJPZkJ5dGVzID0gMTY7CisKK2Jvb2wgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlOjppc1ZhbGlkKCkgY29uc3QK
K3sKKyAgICAvLyBGSVhNRTogSW52ZXN0aWdhdGUgaWYgd2UgY2FuIGRvIHdpdGggYSBzaW1wbGUg
bGVuZ3RoIGNoZWNrIGluc3RlYWQgb2YgZGVjb2RpbmcuCisgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTk0NQorICAgIFZlY3Rvcjx1aW50OF90PiBkaWdl
c3Q7CisgICAgaWYgKCFiYXNlNjRVUkxEZWNvZGUobm9uY2UsIGRpZ2VzdCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICByZXR1cm4gZGlnZXN0LnNpemUoKSA9PSBFcGhlbWVyYWxTb3VyY2VO
b25jZVJlcXVpcmVkTnVtYmVyT2ZCeXRlczsKIH0KKwordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6c2V0RXBoZW1lcmFsU291cmNlTm9uY2UoRXBoZW1lcmFsU291cmNlTm9uY2UmJiBub25j
ZSkKK3sKKyAgICBpZiAoIW5vbmNlLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1f
ZXBoZW1lcmFsU291cmNlTm9uY2UgPSBXVEZNb3ZlKG5vbmNlKTsKK30KKworI2VuZGlmIC8vIEVO
QUJMRShQQ01fRlJBVURfUFJFVkVOVElPTikKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaAppbmRleCBh
NGM5NmNhMWUwYTRkMDBiMmFhZjFjYzU2OTMzMjk3OWE5ZjgyNTIwLi5kNjMyMjYwY2E3MjllNTM2
OTQxM2RlY2YxYTU1MjM3NmRhNDFlM2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaApAQCAtMzYsNiArMzYsMTAgQEAKICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
K09CSkNfQ0xBU1MgUlNBQlNTQVRva2VuUmVhZHk7CitPQkpDX0NMQVNTIFJTQUJTU0FUb2tlbldh
aXRpbmdBY3RpdmF0aW9uOworT0JKQ19DTEFTUyBSU0FCU1NBVG9rZW5CbGluZGVyOworCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFByaXZhdGVDbGlja01lYXN1cmVtZW50IHsKQEAgLTIw
MSwyOCArMjA1LDYgQEAgcHVibGljOgogICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9D
b21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOwogICAgIH07CiAKLSAgICBzdHJ1Y3QgRXBo
ZW1lcmFsU291cmNlTm9uY2UgewotICAgICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IFJl
cXVpcmVkTnVtYmVyT2ZCeXRlcyA9IDE2OwotCi0gICAgICAgIEVwaGVtZXJhbFNvdXJjZU5vbmNl
KCkgPSBkZWZhdWx0OwotICAgICAgICBleHBsaWNpdCBFcGhlbWVyYWxTb3VyY2VOb25jZShjb25z
dCBTdHJpbmcmIG5vbmNlU3RyaW5nKQotICAgICAgICAgICAgOiBub25jZSB7IG5vbmNlU3RyaW5n
IH0KLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgLy8gRklYTUU6IEludmVzdGlnYXRl
IGlmIHdlIGNhbiBkbyB3aXRoIGEgc2ltcGxlIGxlbmd0aCBjaGVjayBpbnN0ZWFkIG9mIGRlY29k
aW5nLgotICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjIxOTQ1Ci0gICAgICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAg
ICAgIFZlY3Rvcjx1aW50OF90PiBkaWdlc3Q7Ci0gICAgICAgICAgICBpZiAoIWJhc2U2NFVSTERl
Y29kZShub25jZSwgZGlnZXN0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgICAgICByZXR1cm4gZGlnZXN0LnNpemUoKSA9PSBSZXF1aXJlZE51bWJlck9mQnl0ZXM7Ci0g
ICAgICAgIH0KLQotICAgICAgICBTdHJpbmcgbm9uY2U7Ci0gICAgfTsKLQogICAgIHN0cnVjdCBQ
cmlvcml0eSB7CiAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgTWF4RW50cm9weSA9
IDYzOwogCkBAIC0yNzgsOSArMjYwLDYgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFJl
ZjxKU09OOjpPYmplY3Q+IGpzb24oKSBjb25zdDsKICAgICBjb25zdCBTb3VyY2VTaXRlJiBzb3Vy
Y2VTaXRlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VTaXRlOyB9OwogICAgIGNvbnN0IEF0dHJp
YnV0ZU9uU2l0ZSYgYXR0cmlidXRlT25TaXRlKCkgY29uc3QgeyByZXR1cm4gbV9hdHRyaWJ1dGVP
blNpdGU7IH07Ci0gICAgdm9pZCBzZXRFcGhlbWVyYWxTb3VyY2VOb25jZShFcGhlbWVyYWxTb3Vy
Y2VOb25jZSYmIG5vbmNlKSB7IG1fZXBoZW1lcmFsU291cmNlTm9uY2UgPSBXVEZNb3ZlKG5vbmNl
KTsgfTsKLSAgICBPcHRpb25hbDxFcGhlbWVyYWxTb3VyY2VOb25jZT4gZXBoZW1lcmFsU291cmNl
Tm9uY2UoKSBjb25zdCB7IHJldHVybiAhbV9lcGhlbWVyYWxTb3VyY2VOb25jZSA/IFdURjo6bnVs
bG9wdCA6IG1fZXBoZW1lcmFsU291cmNlTm9uY2UtPmlzVmFsaWQoKSA/IG1fZXBoZW1lcmFsU291
cmNlTm9uY2UgOiBXVEY6Om51bGxvcHQ7IH07Ci0gICAgdm9pZCBjbGVhckVwaGVtZXJhbFNvdXJj
ZU5vbmNlKCkgeyBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlICA9IFdURjo6bnVsbG9wdDsgfTsKICAg
ICBXYWxsVGltZSB0aW1lT2ZBZENsaWNrKCkgY29uc3QgeyByZXR1cm4gbV90aW1lT2ZBZENsaWNr
OyB9CiAgICAgT3B0aW9uYWw8V2FsbFRpbWU+IGVhcmxpZXN0VGltZVRvU2VuZCgpIGNvbnN0IHsg
cmV0dXJuIG1fZWFybGllc3RUaW1lVG9TZW5kOyB9OwogICAgIHZvaWQgc2V0RWFybGllc3RUaW1l
VG9TZW5kKFdhbGxUaW1lIHRpbWUpIHsgbV9lYXJsaWVzdFRpbWVUb1NlbmQgPSB0aW1lOyB9CkBA
IC0yOTEsNiArMjcwLDI4IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZURlc2Ny
aXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VEZXNjcmlwdGlvbjsgfQogICAgIGNvbnN0
IFN0cmluZyYgcHVyY2hhc2VyKCkgY29uc3QgeyByZXR1cm4gbV9wdXJjaGFzZXI7IH0KIAorICAg
IC8vIE1BUks6IC0gRnJhdWQgUHJldmVudGlvbgorI2lmIEVOQUJMRShQQ01fRlJBVURfUFJFVkVO
VElPTikKKyAgICBzdHJ1Y3QgRXBoZW1lcmFsU291cmNlTm9uY2UgeworICAgICAgICBTdHJpbmcg
bm9uY2U7CisKKyAgICAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7Cisg
ICAgfTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RXBoZW1lcmFsU291cmNlTm9uY2Uo
RXBoZW1lcmFsU291cmNlTm9uY2UmJik7CisgICAgT3B0aW9uYWw8RXBoZW1lcmFsU291cmNlTm9u
Y2U+IGVwaGVtZXJhbFNvdXJjZU5vbmNlKCkgY29uc3QgeyByZXR1cm4gbV9lcGhlbWVyYWxTb3Vy
Y2VOb25jZTsgfTsKKyAgICB2b2lkIGNsZWFyRXBoZW1lcmFsU291cmNlTm9uY2UoKSB7IG1fZXBo
ZW1lcmFsU291cmNlTm9uY2UucmVzZXQoKTsgfTsKKworICAgIHN0cnVjdCBTb3VyY2VVbmxpbmth
YmxlVG9rZW4geworICAgICAgICBTdHJpbmcgdG9rZW5CYXNlNjRVUkw7CisgICAgICAgIFN0cmlu
ZyBrZXlJREJhc2U2NFVSTDsKKyAgICAgICAgU3RyaW5nIHNpZ25hdHVyZUJhc2U2NFVSTDsKKyAg
ICB9OworCisgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPEpTT046Ok9iamVjdD4gc291cmNlU2Vj
cmV0VG9rZW5Kc29uKGNvbnN0IFN0cmluZyYgc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxTb3VyY2VVbmxpbmthYmxlVG9rZW4+IGNhbGN1bGF0
ZVNvdXJjZVVubGlua2FibGVUb2tlbihjb25zdCBTdHJpbmcmIHNlcnZlclJlc3BvbnNlQmFzZTY0
VVJMKTsKKyNlbmRpZiAvLyBFTkFCTEUoUENNX0ZSQVVEX1BSRVZFTlRJT04pCisKICAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVt
ZW50PiBkZWNvZGUoRGVjb2RlciYpOwogCkBAIC0zMDQsOSArMzA1LDE5IEBAIHByaXZhdGU6CiAg
ICAgU3RyaW5nIG1fcHVyY2hhc2VyOwogICAgIFdhbGxUaW1lIG1fdGltZU9mQWRDbGljazsKIAot
ICAgIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5vbmNlPiBtX2VwaGVtZXJhbFNvdXJjZU5vbmNl
OwogICAgIE9wdGlvbmFsPEF0dHJpYnV0aW9uVHJpZ2dlckRhdGE+IG1fYXR0cmlidXRpb25Ucmln
Z2VyRGF0YTsKICAgICBPcHRpb25hbDxXYWxsVGltZT4gbV9lYXJsaWVzdFRpbWVUb1NlbmQ7CisK
KyNpZiBFTkFCTEUoUENNX0ZSQVVEX1BSRVZFTlRJT04pCisgICAgc3RydWN0IFNvdXJjZVNlY3Jl
dFRva2VuIHsKKyAgICAgICAgUmV0YWluUHRyPFJTQUJTU0FUb2tlbkJsaW5kZXI+IGJsaW5kZXI7
CisgICAgICAgIFJldGFpblB0cjxSU0FCU1NBVG9rZW5XYWl0aW5nQWN0aXZhdGlvbj4gd2FpdGlu
Z1Rva2VuOworICAgICAgICBSZXRhaW5QdHI8UlNBQlNTQVRva2VuUmVhZHk+IHJlYWR5VG9rZW47
CisgICAgfTsKKworICAgIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5vbmNlPiBtX2VwaGVtZXJh
bFNvdXJjZU5vbmNlOworICAgIFNvdXJjZVNlY3JldFRva2VuIG1fc291cmNlU2VjcmV0VG9rZW47
CisjZW5kaWYgLy8gRU5BQkxFKFBDTV9GUkFVRF9QUkVWRU5USU9OKQogfTsKIAogdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nv
Y29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTZiMzVlYTA2
NmNhZDQ4NjQ4ZWNmMDAzNTE1MzcyMmM0ZWI1ZDAzYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tCkBA
IC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQg
IlByaXZhdGVDbGlja01lYXN1cmVtZW50LmgiCisKKyNpZiBFTkFCTEUoUENNX0ZSQVVEX1BSRVZF
TlRJT04pCisKKyNpbXBvcnQgPHBhbC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZlB0cjxKU09OOjpPYmplY3Q+IFByaXZhdGVD
bGlja01lYXN1cmVtZW50Ojpzb3VyY2VTZWNyZXRUb2tlbkpzb24oY29uc3QgU3RyaW5nJiBzZXJ2
ZXJQdWJsaWNLZXlCYXNlNjRVUkwpCit7CisgICAgaWYgKCFtX2VwaGVtZXJhbFNvdXJjZU5vbmNl
IHx8ICFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gc2VydmVyUHVibGljS2V5
RGF0YTsKKyAgICAgICAgaWYgKCFiYXNlNjRVUkxEZWNvZGUoc2VydmVyUHVibGljS2V5QmFzZTY0
VVJMLCBzZXJ2ZXJQdWJsaWNLZXlEYXRhKSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgICAgICBhdXRvIHNlcnZlclB1YmxpY0tleSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGlu
aXRXaXRoQnl0ZXM6c2VydmVyUHVibGljS2V5RGF0YS5kYXRhKCkgbGVuZ3RoOnNlcnZlclB1Ymxp
Y0tleURhdGEuc2l6ZSgpXSk7CisKKyAgICAgICAgLy8gRklYTUUoMjIyMDE4KTogQ2hlY2sgZXJy
b3IuCisgICAgICAgIG1fc291cmNlU2VjcmV0VG9rZW4uYmxpbmRlciA9IGFkb3B0TlMoW1BBTDo6
YWxsb2NSU0FCU1NBVG9rZW5CbGluZGVySW5zdGFuY2UoKSBpbml0V2l0aFB1YmxpY0tleTpzZXJ2
ZXJQdWJsaWNLZXkuZ2V0KCkgZXJyb3I6bnVsbHB0cl0pOworICAgICAgICBpZiAoIW1fc291cmNl
U2VjcmV0VG9rZW4uYmxpbmRlcikKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0K
KworICAgIC8vIEZJWE1FKDIyMjAxOCk6IENoZWNrIGVycm9yLgorICAgIG1fc291cmNlU2VjcmV0
VG9rZW4ud2FpdGluZ1Rva2VuID0gW21fc291cmNlU2VjcmV0VG9rZW4uYmxpbmRlciB0b2tlbldh
aXRpbmdBY3RpdmF0aW9uV2l0aENvbnRlbnQ6bnVsbHB0ciBlcnJvcjpudWxscHRyXTsKKyAgICBp
ZiAoIW1fc291cmNlU2VjcmV0VG9rZW4ud2FpdGluZ1Rva2VuKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKworICAgIGF1dG8gYmxpbmRlZFNlY3JldCA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7
CisgICAgYmxpbmRlZFNlY3JldC0+c2V0U3RyaW5nKCJzb3VyY2Vfbm9uY2UiX3MsIG1fZXBoZW1l
cmFsU291cmNlTm9uY2UtPm5vbmNlKTsKKyAgICBibGluZGVkU2VjcmV0LT5zZXRTdHJpbmcoInNv
dXJjZV9zZWNyZXRfdG9rZW4iX3MsIFdURjo6YmFzZTY0VVJMRW5jb2RlKFttX3NvdXJjZVNlY3Jl
dFRva2VuLndhaXRpbmdUb2tlbiBibGluZGVkTWVzc2FnZV0uYnl0ZXMsIFttX3NvdXJjZVNlY3Jl
dFRva2VuLndhaXRpbmdUb2tlbiBibGluZGVkTWVzc2FnZV0ubGVuZ3RoKSk7CisKKyAgICByZXR1
cm4gYmxpbmRlZFNlY3JldDsKK30KKworYXV0byBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y2Fs
Y3VsYXRlU291cmNlVW5saW5rYWJsZVRva2VuKGNvbnN0IFN0cmluZyYgc2VydmVyUmVzcG9uc2VC
YXNlNjRVUkwpIC0+IE9wdGlvbmFsPFNvdXJjZVVubGlua2FibGVUb2tlbj4KK3sKKyAgICBpZiAo
IW1fc291cmNlU2VjcmV0VG9rZW4ud2FpdGluZ1Rva2VuKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gc2VydmVyUmVzcG9uc2VE
YXRhOworICAgICAgICBpZiAoIWJhc2U2NFVSTERlY29kZShzZXJ2ZXJSZXNwb25zZUJhc2U2NFVS
TCwgc2VydmVyUmVzcG9uc2VEYXRhKSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisgICAgICAgIGF1dG8gc2VydmVyUmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBp
bml0V2l0aEJ5dGVzOnNlcnZlclJlc3BvbnNlRGF0YS5kYXRhKCkgbGVuZ3RoOnNlcnZlclJlc3Bv
bnNlRGF0YS5zaXplKCldKTsKKworICAgICAgICAvLyBGSVhNRSgyMjIwMTgpOiBDaGVjayBlcnJv
ci4KKyAgICAgICAgbV9zb3VyY2VTZWNyZXRUb2tlbi5yZWFkeVRva2VuID0gW21fc291cmNlU2Vj
cmV0VG9rZW4ud2FpdGluZ1Rva2VuIGFjdGl2YXRlVG9rZW5XaXRoU2VydmVyUmVzcG9uc2U6c2Vy
dmVyUmVzcG9uc2UuZ2V0KCkgZXJyb3I6bnVsbHB0cl07CisgICAgICAgIGlmICghbV9zb3VyY2VT
ZWNyZXRUb2tlbi5yZWFkeVRva2VuKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KyAgICB9CisKKyAgICBTb3VyY2VVbmxpbmthYmxlVG9rZW4gdG9rZW47CisgICAgdG9rZW4udG9r
ZW5CYXNlNjRVUkwgPSBXVEY6OmJhc2U2NFVSTEVuY29kZShbbV9zb3VyY2VTZWNyZXRUb2tlbi5y
ZWFkeVRva2VuIHRva2VuQ29udGVudF0uYnl0ZXMsIFttX3NvdXJjZVNlY3JldFRva2VuLnJlYWR5
VG9rZW4gdG9rZW5Db250ZW50XS5sZW5ndGgpOworICAgIHRva2VuLmtleUlEQmFzZTY0VVJMID0g
V1RGOjpiYXNlNjRVUkxFbmNvZGUoW21fc291cmNlU2VjcmV0VG9rZW4ucmVhZHlUb2tlbiBrZXlJ
ZF0uYnl0ZXMsIFttX3NvdXJjZVNlY3JldFRva2VuLnJlYWR5VG9rZW4ga2V5SWRdLmxlbmd0aCk7
CisgICAgdG9rZW4uc2lnbmF0dXJlQmFzZTY0VVJMID0gV1RGOjpiYXNlNjRVUkxFbmNvZGUoW21f
c291cmNlU2VjcmV0VG9rZW4ucmVhZHlUb2tlbiBzaWduYXR1cmVdLmJ5dGVzLCBbbV9zb3VyY2VT
ZWNyZXRUb2tlbi5yZWFkeVRva2VuIHNpZ25hdHVyZV0ubGVuZ3RoKTsKKworICAgIHJldHVybiB0
b2tlbjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFBD
TV9GUkFVRF9QUkVWRU5USU9OKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDc2OTg3NzkxOTNkNGIzNDU3NmZkMjk3ZjFiZGZkNjc0OWRhMDJjZDEu
LmU0NGM3NTJjODliMWNiMGRmMDcxZmRiOTViY2U1ZmE3NzNhMzk1YjAgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAy
MS0wMi0xNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFBD
TTogR2VuZXJhdGUgc2VjcmV0IHRva2VuIGFuZCBjb3JyZXNwb25kaW5nIHVubGlua2FibGUgdG9r
ZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjAx
OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzM1ODE0MTI+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgIEFkZCB0ZXN0cy4KKwogMjAyMS0wMi0xNSAgSm9obiBXaWxhbmRlciAg
PHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBQQ006IEFkZCBoaWdoIGVudHJvcHkgYXR0
cmlidXRpb25Tb3VyY2VOb25jZSBhdHRyaWJ1dGUgdG8gYW5jaG9yIHRhZ3MKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS54Y2NvbmZp
ZyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS54Y2Nv
bmZpZwppbmRleCA3MGJlOGFhNzcwNDNiNzQxNzdkNDA2ZDAzYzMxNDk2MzhhOTlmMWU5Li5kM2E0
NGE4YWM1N2QwNzYwZDNjNTJkMGVkMTg5OTA1YjcyNWRiMThiIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25maWcKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLnhjY29uZmln
CkBAIC01NSw2ICs1NSwxMiBAQCBXS19QREZLSVRfTERGTEFHU19tYWNvc3ggPSAtZnJhbWV3b3Jr
IFBERktpdDsKIFdLX1BERktJVF9MREZMQUdTX2lwaG9uZW9zID0gLWZyYW1ld29yayBQREZLaXQ7
CiBXS19QREZLSVRfTERGTEFHU19pcGhvbmVzaW11bGF0b3IgPSAtZnJhbWV3b3JrIFBERktpdDsK
IAorV0tfU1lTVEVNX0xERkxBR1MgPSAkKFdLX1NZU1RFTV9MREZMQUdTXyQoV0tfUExBVEZPUk1f
TkFNRSkpOworV0tfU1lTVEVNX0xERkxBR1NfbWFjb3N4ID0gLWZyYW1ld29yayBTeXN0ZW07CitX
S19TWVNURU1fTERGTEFHU19pcGhvbmVvcyA9ICQoV0tfU1lTVEVNX0xERkxBR1NfJChXS19JT1Nf
MTUpKTsKK1dLX1NZU1RFTV9MREZMQUdTX2lwaG9uZXNpbXVsYXRvciA9ICQoV0tfU1lTVEVNX0xE
RkxBR1NfJChXS19JT1NfMTUpKTsKK1dLX1NZU1RFTV9MREZMQUdTX0lPU19TSU5DRV8xNSA9IC1m
cmFtZXdvcmsgU3lzdGVtOworCiBXS19ISURfTERGTEFHUyA9ICQoV0tfSElEX0xERkxBR1NfJChX
S19QTEFURk9STV9OQU1FKSk7CiBXS19ISURfTERGTEFHU19tYWNvc3ggPSAkKFdLX0hJRF9MREZM
QUdTJChXS19NQUNPU18xMDE1KSk7CiBXS19ISURfTERGTEFHU19NQUNPU19TSU5DRV8xMDE1ID0g
LWZyYW1ld29yayBISUQ7CkBAIC03MSw3ICs3Nyw3IEBAIFdLX09QRU5HTF9MREZMQUdTX2FwcGxl
dHZvcyA9ICQoV0tfT1BFTkdMX0xERkxBR1NfaXBob25lb3MpOwogV0tfT1BFTkdMX0xERkxBR1Nf
YXBwbGV0dnNpbXVsYXRvciA9ICQoV0tfT1BFTkdMX0xERkxBR1NfaXBob25lc2ltdWxhdG9yKTsK
IFdLX09QRU5HTF9MREZMQUdTX21hY29zeCA9IC1mcmFtZXdvcmsgT3BlbkdMOwogCi1PVEhFUl9M
REZMQUdTID0gJChpbmhlcml0ZWQpICQoVU5FWFBPUlRFRF9TWU1CT0xfTERGTEFHUykgLWxndGVz
dCAtZm9yY2VfbG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvbGliVGVzdFdlYktpdEFQSS5hIC1m
cmFtZXdvcmsgSmF2YVNjcmlwdENvcmUgLWZyYW1ld29yayBXZWJLaXQgLWxXZWJDb3JlVGVzdFN1
cHBvcnQgJChXS19BVVRIS0lUX0xERkxBR1MpIC1mcmFtZXdvcmsgTmV0d29yayAkKFdLX1BERktJ
VF9MREZMQUdTKSAkKFdLX0hJRF9MREZMQUdTKSAkKFdLX09QRU5HTF9MREZMQUdTKSAkKE9USEVS
X0xERkxBR1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkpOworT1RIRVJfTERGTEFHUyA9ICQo
aW5oZXJpdGVkKSAkKFVORVhQT1JURURfU1lNQk9MX0xERkxBR1MpIC1sZ3Rlc3QgLWZvcmNlX2xv
YWQgJChCVUlMVF9QUk9EVUNUU19ESVIpL2xpYlRlc3RXZWJLaXRBUEkuYSAtZnJhbWV3b3JrIEph
dmFTY3JpcHRDb3JlIC1mcmFtZXdvcmsgV2ViS2l0IC1sV2ViQ29yZVRlc3RTdXBwb3J0ICQoV0tf
QVVUSEtJVF9MREZMQUdTKSAtZnJhbWV3b3JrIE5ldHdvcmsgJChXS19TWVNURU1fTERGTEFHUykg
JChXS19QREZLSVRfTERGTEFHUykgJChXS19ISURfTERGTEFHUykgJChXS19PUEVOR0xfTERGTEFH
UykgJChPVEhFUl9MREZMQUdTX1BMQVRGT1JNXyQoV0tfQ09DT0FfVE9VQ0gpKTsKIE9USEVSX0xE
RkxBR1NfUExBVEZPUk1fID0gLWZyYW1ld29yayBDb2NvYSAtZnJhbWV3b3JrIENhcmJvbjsKIAog
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCBiZSBidWlsdCBvbiBpT1MuIEluc3RlYWQgd2Ugc2hv
dWxkIGNyZWF0ZSBhbmQgdXNlIGEgVGVzdFdlYktpdEFQSSBhcHBsaWNhdGlvbi4KZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggMmQyZjllNjI3NjkwNmU1ZjU0MGFmNDkxMjg4NTYzNjMyNjViNWM5
ZS4uN2UwMWQ2ODViMzZhMjdiNGE4ZmQ4MGJiNzBiNTRhMzAwZjM1Nzk4YyAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTQ0MSw2ICs0NDEsNyBAQAogCQk1N0M2MjQ1MDIzNDZDMjFFMDAzODNG
RTcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24uaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0M2MjQ0RjIzNDZDMUVD
MDAzODNGRTcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24uaHRtbCAqLzsgfTsK
IAkJNTdFREZDNUMyNDVBMUEzRjAwOTU5NTIxIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNy
ZWRlbnRpYWwtbGEtbm8tbW9jay5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RURGQzVCMjQ1QTE4RjUwMDk1OTUyMSAvKiB3ZWItYXV0
aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhLW5vLW1vY2suaHRtbCAqLzsgfTsKIAkJNTdF
REZDNjAyNDVBMjk5QzAwOTU5NTIxIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9u
LWxhLW5vLW1vY2suaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1N0VERkM1RjI0NUEyNzk5MDA5NTk1MjEgLyogd2ViLWF1dGhlbnRpY2F0
aW9uLWdldC1hc3NlcnRpb24tbGEtbm8tbW9jay5odG1sICovOyB9OworCQk1N0YxQzkxMTI1RERE
NTE5MDBFOEY2RUEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RjFDOTEwMjVEREQ1MTkwMEU4
RjZFQSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tICovOyB9OwogCQk1N0Y0QUFB
MDIwOEZBRUYwMDBBNjhFOUUgLyogU1NMS2V5R2VuZXJhdG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGNEFBOUYyMDhGQTgzRDAwQTY4RTlFIC8q
IFNTTEtleUdlbmVyYXRvci5tbSAqLzsgfTsKIAkJNTdGNTZBNUMxQzdGOENDMTAwRjMxRDdFIC8q
IElzTmF2aWdhdGlvbkFjdGlvblRydXN0ZWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0Y1NkE1QjFDN0Y4QTQwMDBGMzFEN0UgLyog
SXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5odG1sICovOyB9OwogCQk1QzAxNjBDMTIxQTEzMjQ2
MDA3N0ZBMzIgLyogSklURW5hYmxlZC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDVDMDE2MEMwMjFBMTMyMzIwMDc3RkEzMiAvKiBKSVRFbmFibGVkLm1t
ICovOyB9OwpAQCAtMjIyOCw2ICsyMjI5LDcgQEAKIAkJNTdFREZDNUIyNDVBMThGNTAwOTU5NTIx
IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEtbm8tbW9jay5odG1sICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1s
OyBwYXRoID0gIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEtbm8tbW9jay5o
dG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdFREZDNUYyNDVBMjc5OTAwOTU5
NTIxIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWxhLW5vLW1vY2suaHRtbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgcGF0aCA9ICJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1sYS1uby1tb2NrLmh0
bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0YxMEQ5MjFDN0U3QjM4MDBFQ0RG
MzAgLyogSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IElzTmF2aWdhdGlvbkFjdGlvblRydXN0ZWQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3RjFDOTEwMjVEREQ1MTkwMEU4RjZFQSAvKiBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudENvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdG
NEFBOUYyMDhGQTgzRDAwQTY4RTlFIC8qIFNTTEtleUdlbmVyYXRvci5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFNTTEtleUdlbmVyYXRvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTdGNTZBNUIxQzdGOEE0MDAwRjMxRDdFIC8qIElzTmF2aWdhdGlvbkFjdGlvblRydXN0ZWQu
aHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IElzTmF2aWdhdGlvbkFjdGlvblRydXN0
ZWQuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMwMTYwQzAyMUExMzIzMjAw
NzdGQTMyIC8qIEpJVEVuYWJsZWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBKSVRFbmFibGVkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDY5
OCw2ICs0NzAwLDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTA3MTFERjUxMjI2QTk1RkIwMDNE
RDJGNyAvKiBBVkZvdW5kYXRpb25Tb2Z0TGlua1Rlc3QubW0gKi8sCiAJCQkJNzUxQjA1RDUxRjhF
QUMxQTAwMjhBMDlFIC8qIERhdGFiYXNlVHJhY2tlclRlc3QubW0gKi8sCisJCQkJNTdGMUM5MTAy
NURERDUxOTAwRThGNkVBIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gKi8sCiAJ
CQkJNTc2OUM1MEExRDlCMDAwMTAwMDg0N0ZCIC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLm1t
ICovLAogCQkJCUExNzk5MTg2MUUxQzk5NEUwMEE1MDVFRCAvKiBTaGFyZWRCdWZmZXIubW0gKi8s
CiAJCQkJQ0Q4OUQwMzgxQzRFREIyQTAwMDQwQTA0IC8qIFdlYkNvcmVOU1VSTFNlc3Npb24ubW0g
Ki8sCkBAIC01NDcyLDYgKzU0NzUsNyBAQAogCQkJCUExRUMxMTg4MUY0MjU0MTIwMEQwMTQ2RSAv
KiBQcmV2aWV3Q29udmVydGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjBDMUE0MTFB
RTYwMDQ0N0M0QyAvKiBQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk2QjBBMDdGNzIxRkE5QzJCMDBENTczOTEgLyogUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTdGMUM5MTEyNURERDUx
OTAwRThGNkVBIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gaW4gU291cmNlcyAq
LywKIAkJCQk0NjQ3QjEyNjFFQkEzQjg1MDA0MUQ3RUYgLyogUHJvY2Vzc0RpZFRlcm1pbmF0ZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTg4MkYwMzIxMDEwQzBEMDAyRkYyODggLyogUHJvY2Vz
c1ByZVdhcm1pbmcubW0gaW4gU291cmNlcyAqLywKIAkJCQlDREE0NDM4RTIxRjdBNDc3MDAzNzk0
ODkgLyogUHJvY2Vzc1N1c3BlbmRNZWRpYUJ1ZmZlcmluZy5tbSBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC5jcHAKaW5kZXggN2NkNzc1YjRjNjA0MjBlZmFlMWRlMTY3NDE4MWQw
ZTkxZjllNjJiMy4uZjRhZDQ1MmY2ZGFmYzlhOGZlNThjY2U4MDMxNjdjMDMyMDVmYTE4MyAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRlc3QuaCIKIAogI2luY2x1ZGUgPFdlYkNvcmUvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQuaD4KICNpbmNsdWRlIDx3dGYvVVJMLmg+CkBAIC0xMjMsMTIg
KzEyNCwxNiBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZENvbnZlcnNpb25V
UkxzKQogICAgIEFTU0VSVF9FUShvcHRpb25hbENvbnZlcnNpb24tPnByaW9yaXR5LCAodWludDMy
X3QpMik7CiB9CiAKKyNpZiBFTkFCTEUoUENNX0ZSQVVEX1BSRVZFTlRJT04pCisKIFRFU1QoUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQsIFZhbGlkU291cmNlTm9uY2UpCiB7CiAgICAgYXV0byBlcGhl
bWVyYWxOb25jZSA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25j
ZSB7ICJBQkNERUZhYmNkZWYwMTIzNDU2Nzg5Il9zIH07CiAgICAgQVNTRVJUX1RSVUUoZXBoZW1l
cmFsTm9uY2UuaXNWYWxpZCgpKTsKIH0KIAorI2VuZGlmIC8vIEVOQUJMRShQQ01fRlJBVURfUFJF
VkVOVElPTikKKwogLy8gTmVnYXRpdmUgdGVzdCBjYXNlcy4KIAogVEVTVChQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCwgSW52YWxpZFNvdXJjZUlEKQpAQCAtMjgxLDYgKzI4Niw4IEBAIFRFU1QoUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRDb252ZXJzaW9uV2l0aERpc2FsbG93ZWRVUkxD
b21wb25lbnRzKQogICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwogfQogCisj
aWYgRU5BQkxFKFBDTV9GUkFVRF9QUkVWRU5USU9OKQorCiBURVNUKFByaXZhdGVDbGlja01lYXN1
cmVtZW50LCBJbnZhbGlkU291cmNlTm9uY2UpCiB7CiAgICAgLy8gRmV3ZXIgdGhhbiB0aGUgcmVx
dXJpZWQgbnVtYmVyIG9mIGJ5dGVzLgpAQCAtMzAwLDQgKzMwNywyNSBAQCBURVNUKFByaXZhdGVD
bGlja01lYXN1cmVtZW50LCBJbnZhbGlkU291cmNlTm9uY2UpCiAgICAgQVNTRVJUX0ZBTFNFKGVw
aGVtZXJhbE5vbmNlLmlzVmFsaWQoKSk7CiB9CiAKK1RFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQsIEludmFsaWRCbGluZGVkU2VjcmV0KQoreworICAgIGNvbnN0IGNoYXIgc2VydmVyUHVibGlj
S2V5QmFzZTY0VVJMW10gPSAiTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dL
Q0FnRUF6YjFkVGhydFl3Vmg0NlNqSW5lZ0toQXFwYkp3bTFYblRCQ3Z5YlNLOHprNTNSMEFtMWhH
MzNBVkY1SjFscVlmMzZ3cDY2M0dhc2NsSHRxenZ4RlpJdkRBMURVU0g0YVp6X2ZESENUVHhFZUpW
UE9SUzN6Tk4yVWpXd2J0bndzaDRCbURUaS16X2NEbjBMQXoySnVaeUtseUZ0NUdnVkxBUXZMOUgz
VkxIVTlfWEhOSy11Ym95WGZjSFJUdHJEbnB1M2M2d3ZYNWRkLUFKb0xtSVFUWkJFSmZWa3hCR3pu
azFxS0hqYzZuQVNBaXJLRl93SkNudXdBSzhDNkJBY2pOY3dVV0NlS3AwWUVDekNYVS0tSlhkMk9F
VS1RaHhQQzY3ZmFpRE9oM1YwdmxmcVpMdHJsYm5hblVDS3J2aHc3R2FHT0dZb3RJcm5adHVOZnhD
MTRkX1hOVmQxRlM4bkhqUlRIbkVnd19qbmxTc3NmZ1N0ejB1SnRjbWtmZ29KQnZPRTRtSVJwaTdp
U2xSZlhOa0tzV1gxSi1nd2NuQ1ZvNXUwdUpFVzZYNk55dkVHWUo4dzVCUGZ3c1F1Szl5LTRaN2lr
dDlJT3VjRUhZN1RoRG1pOVROTmhIQlZqMEd1NHdHb1NqcTNhNnZMNU4xMFpTSFhvcTFYZ2ZHUHJt
SGhoTDkwY2p2V29ub3lPWHNVcWxYRXpUakQyVzk4OTdRLU14OUJVTnJHUVBxbUl4OEY1TXd4V2NP
cnllOFdScDRRODhuMllTVW5WN0M4YXlsZDN2MUZoN041amVTcWVWbXREVlJZVG4yc1ZmTnFnWHJ6
Z2RpZ0pjUVI4dkZFTnU2bnpGUHdzclhQTWFDaUxVblpOVW1RMVpTTFFlUXloWVh4SHFSSnJudUNE
V1hMa0NBd0VBQVEiOworCisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgcGNtOworICAgIGF1
dG8gc291cmNlU2VjcmV0VG9rZW4gPSBwY20uc291cmNlU2VjcmV0VG9rZW5Kc29uKHNlcnZlclB1
YmxpY0tleUJhc2U2NFVSTCk7CisgICAgRVhQRUNUX05VTEwoc291cmNlU2VjcmV0VG9rZW4pOwor
CisgICAgYXV0byBlcGhlbWVyYWxOb25jZSA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhl
bWVyYWxTb3VyY2VOb25jZSB7ICJBQkNERUZhYmNkZWYwMTIzNDU2Nzg5Il9zIH07CisgICAgRVhQ
RUNUX1RSVUUoZXBoZW1lcmFsTm9uY2UuaXNWYWxpZCgpKTsKKyAgICBwY20uc2V0RXBoZW1lcmFs
U291cmNlTm9uY2UoV1RGTW92ZShlcGhlbWVyYWxOb25jZSkpOworCisgICAgc291cmNlU2VjcmV0
VG9rZW4gPSBwY20uc291cmNlU2VjcmV0VG9rZW5Kc29uKHNlcnZlclB1YmxpY0tleUJhc2U2NFVS
TCk7CisgICAgRVhQRUNUX05PVF9OVUxMKHNvdXJjZVNlY3JldFRva2VuKTsKKworICAgIGF1dG8g
cGVyc2lzdGVudFRva2VuID0gcGNtLmNhbGN1bGF0ZVNvdXJjZVVubGlua2FibGVUb2tlbihlbXB0
eVN0cmluZygpKTsKKyAgICBFWFBFQ1RfRkFMU0UocGVyc2lzdGVudFRva2VuKTsKK30KKworI2Vu
ZGlmIC8vIEVOQUJMRShQQ01fRlJBVURfUFJFVkVOVElPTikKKwogfSAvLyBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jNGQ3ZTZhZTkwODhmYjgzMGI5NDc5MDBjNGQwMDcxNWIyMTIzYmRlCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1By
aXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0KQEAgLTAsMCArMSwxMDYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGVzdC5oIgorCisjaWYgRU5BQkxF
KFBDTV9GUkFVRF9QUkVWRU5USU9OKQorCisjaW5jbHVkZSA8U2VjdXJpdHkvU2VjS2V5UHJpdi5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaD4KKworZXh0ZXJu
ICJDIiB7CisjaW5jbHVkZSA8Y29yZWNyeXB0by9jY19wcml2Lmg+CisjaW5jbHVkZSA8Y29yZWNy
eXB0by9jY3JuZy5oPgorI2luY2x1ZGUgPGNvcmVjcnlwdG8vY2Nyc2EuaD4KKyNpbmNsdWRlIDxj
b3JlY3J5cHRvL2NjcnNhYnNzYS5oPgorfQorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50
LCBWYWxpZEJsaW5kZWRTZWNyZXQpCit7CisgICAgYXV0byBlcGhlbWVyYWxOb25jZSA9IFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZSB7ICJBQkNERUZhYmNkZWYw
MTIzNDU2Nzg5Il9zIH07CisgICAgRVhQRUNUX1RSVUUoZXBoZW1lcmFsTm9uY2UuaXNWYWxpZCgp
KTsKKworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IHBjbTsKKyAgICBwY20uc2V0RXBoZW1l
cmFsU291cmNlTm9uY2UoV1RGTW92ZShlcGhlbWVyYWxOb25jZSkpOworCisgICAgLy8gR2VuZXJh
dGUgdGhlIHNlcnZlciBrZXkgcGFpci4KKyAgICBzaXplX3QgbW9kdWx1c05CaXRzID0gNDA5NjsK
KyAgICBpbnQgZXJyb3IgPSAwOworCisgICAgc3RydWN0IGNjcm5nX3N0YXRlKiBybmcgPSBjY3Ju
ZygmZXJyb3IpOworICAgIEVYUEVDVF9FUShlcnJvciwgQ0NFUlJfT0spOworCisgICAgY29uc3Qg
dWludDhfdCBlW10gPSB7IDB4MSwgMHgwMCwgMHgwMSB9OworICAgIGNjcnNhX2Z1bGxfY3R4X2Rl
Y2woY2NuX3NpemVvZihtb2R1bHVzTkJpdHMpLCByc2FQcml2YXRlS2V5KTsKKyAgICBlcnJvciA9
IGNjcnNhX2dlbmVyYXRlX2tleShtb2R1bHVzTkJpdHMsIHJzYVByaXZhdGVLZXksIHNpemVvZihl
KSwgZSwgcm5nKTsKKyAgICBFWFBFQ1RfRVEoZXJyb3IsIENDRVJSX09LKTsKKworICAgIGNjcnNh
X3B1Yl9jdHhfdCByc2FQdWJsaWNLZXkgPSBjY3JzYV9jdHhfcHVibGljKHJzYVByaXZhdGVLZXkp
OworICAgIHNpemVfdCBtb2R1bHVzTkJ5dGVzID0gY2NfY2VpbGluZyhjY3JzYV9wdWJrZXlsZW5n
dGgocnNhUHVibGljS2V5KSwgOCk7CisKKyAgICBjb25zdCBzdHJ1Y3QgY2Nyc2Fic3NhX2NpcGhl
cnN1aXRlICpjaXBoZXJzdWl0ZSA9ICZjY3JzYWJzc2FfY2lwaGVyc3VpdGVfcnNhNDA5Nl9zaGEz
ODQ7CisKKyAgICBzaXplX3QgZXhwb3J0U2l6ZSA9IGNjZGVyX2VuY29kZV9yc2FfcHViX3NpemUo
cnNhUHVibGljS2V5KTsKKyAgICBhdXRvIHB1YmxpY0tleSA9IGFkb3B0TlMoW1tOU011dGFibGVE
YXRhIGFsbG9jXSBpbml0V2l0aExlbmd0aDpleHBvcnRTaXplXSk7CisgICAgY2NkZXJfZW5jb2Rl
X3JzYV9wdWIocnNhUHVibGljS2V5LCBzdGF0aWNfY2FzdDx1aW50OF90Kj4oW3B1YmxpY0tleSBt
dXRhYmxlQnl0ZXNdKSwgc3RhdGljX2Nhc3Q8dWludDhfdCo+KFtwdWJsaWNLZXkgbXV0YWJsZUJ5
dGVzXSkgKyBbcHVibGljS2V5IGxlbmd0aF0pOworCisgICAgYXV0byBzZWNLZXkgPSBhZG9wdENG
KFNlY0tleUNyZWF0ZVdpdGhEYXRhKChfX2JyaWRnZSBDRkRhdGFSZWYpcHVibGljS2V5LmdldCgp
LCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKUB7CisgICAgICAgIChfX2JyaWRnZSBpZClrU2Vj
QXR0cktleVR5cGU6IChfX2JyaWRnZSBpZClrU2VjQXR0cktleVR5cGVSU0EsCisgICAgICAgIChf
X2JyaWRnZSBpZClrU2VjQXR0cktleUNsYXNzOiAoX19icmlkZ2UgaWQpa1NlY0F0dHJLZXlDbGFz
c1B1YmxpYworICAgIH0sIG5pbCkpOworICAgIEVYUEVDVF9OT1RfTlVMTChzZWNLZXkpOworCisg
ICAgYXV0byBzcGtpRGF0YSA9IGFkb3B0Q0YoU2VjS2V5Q29weVN1YmplY3RQdWJsaWNLZXlJbmZv
KHNlY0tleS5nZXQoKSkpOworICAgIGF1dG8gKm5zU3BraURhdGEgPSAoX19icmlkZ2UgTlNEYXRh
ICopc3BraURhdGEuZ2V0KCk7CisKKyAgICAvLyBDb250aW51ZSB0aGUgdGVzdC4KKyAgICBhdXRv
IHNvdXJjZVNlY3JldFRva2VuID0gcGNtLnNvdXJjZVNlY3JldFRva2VuSnNvbihXVEY6OmJhc2U2
NFVSTEVuY29kZShuc1Nwa2lEYXRhLmJ5dGVzLCBuc1Nwa2lEYXRhLmxlbmd0aCkpOworICAgIEVY
UEVDVF9OT1RfTlVMTChzb3VyY2VTZWNyZXRUb2tlbik7CisgICAgRVhQRUNUX1NUUkVRKHNvdXJj
ZVNlY3JldFRva2VuLT5nZXRTdHJpbmcoInNvdXJjZV9ub25jZSJfcykudXRmOCgpLmRhdGEoKSwg
IkFCQ0RFRmFiY2RlZjAxMjM0NTY3ODkiKTsKKyAgICBFWFBFQ1RfRkFMU0Uoc291cmNlU2VjcmV0
VG9rZW4tPmdldFN0cmluZygic291cmNlX3NlY3JldF90b2tlbiJfcykuaXNFbXB0eSgpKTsKKwor
ICAgIC8vIEdlbmVyYXRlIHRoZSBzaWduYXR1cmUuCisgICAgVmVjdG9yPHVpbnQ4X3Q+IGJsaW5k
ZWRNZXNzYWdlOworICAgIGJhc2U2NFVSTERlY29kZShzb3VyY2VTZWNyZXRUb2tlbi0+Z2V0U3Ry
aW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIl9zKSwgYmxpbmRlZE1lc3NhZ2UpOworCisgICAgYXV0
byBibGluZGVkU2lnbmF0dXJlID0gYWRvcHROUyhbW05TTXV0YWJsZURhdGEgYWxsb2NdIGluaXRX
aXRoTGVuZ3RoOiBtb2R1bHVzTkJ5dGVzXSk7CisgICAgY2Nyc2Fic3NhX3NpZ25fYmxpbmRlZF9t
ZXNzYWdlKGNpcGhlcnN1aXRlLCByc2FQcml2YXRlS2V5LCBibGluZGVkTWVzc2FnZS5kYXRhKCks
IGJsaW5kZWRNZXNzYWdlLnNpemUoKSwgc3RhdGljX2Nhc3Q8dWludDhfdCAqPihbYmxpbmRlZFNp
Z25hdHVyZSBtdXRhYmxlQnl0ZXNdKSwgW2JsaW5kZWRTaWduYXR1cmUgbGVuZ3RoXSwgcm5nKTsK
KworICAgIC8vIENvbnRpbnVlIHRoZSB0ZXN0LgorICAgIGF1dG8gcGVyc2lzdGVudFRva2VuID0g
cGNtLmNhbGN1bGF0ZVNvdXJjZVVubGlua2FibGVUb2tlbihXVEY6OmJhc2U2NFVSTEVuY29kZShb
YmxpbmRlZFNpZ25hdHVyZSBieXRlc10sIFtibGluZGVkU2lnbmF0dXJlIGxlbmd0aF0pKTsKKyAg
ICBFWFBFQ1RfVFJVRShwZXJzaXN0ZW50VG9rZW4pOworICAgIEVYUEVDVF9GQUxTRShwZXJzaXN0
ZW50VG9rZW4tPnRva2VuQmFzZTY0VVJMLmlzRW1wdHkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKHBl
cnNpc3RlbnRUb2tlbi0+a2V5SURCYXNlNjRVUkwuaXNFbXB0eSgpKTsKKyAgICBFWFBFQ1RfRkFM
U0UocGVyc2lzdGVudFRva2VuLT5zaWduYXR1cmVCYXNlNjRVUkwuaXNFbXB0eSgpKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYgLy8gRU5BQkxFKFBDTV9GUkFV
RF9QUkVWRU5USU9OKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420942</attachid>
            <date>2021-02-19 01:43:23 -0800</date>
            <delta_ts>2021-02-19 02:37:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222019-20210219014322.patch</filename>
            <type>text/plain</type>
            <size>50067</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJmZDcxYjc4YzVmNThiMjMwZjYwOTg4
N2E1MDM4ZjRmYjk5NTdkZjIuLjdkMzYxMzZlYjI0YmRiYTc3NTc2ODlmZjM2YTdjNGY0NzRmNTUz
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5f
dGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQg
Y29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcz
NTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2lsYW5kZXIuCisKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1IYXZlLmg6CisgICAgICAgIEFkZHMgYSBjb21waWxlIHRpbWUgZmxhZyBm
b3IgUlNBQlNTQS4KKwogMjAyMS0wMi0xOCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIGV4cGVyaW1lbnRhbCBzdXBwb3J0IGZvciBDU1MgQ29sb3IgNSBSZWxh
dGl2ZSBDb2xvciBTeW50YXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3Njk4MGM0NGM5ZmIwNjAzZTAyZWY3NGY0
NDk1OTU1NDYyY2ZlMWYwLi45YmNhNDE5Y2MwNmVkYjc0ZmQwMmNkMDY1ZGI0ZjRhNzRhZDQyZWNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxq
aWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tl
biBhbmQgY29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzczNTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2lsYW5kZXIuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBBUEkgdGVzdHMuCisKKyAgICAgICAgVGhpcyBwYXRjaCB1dGlsaXpl
cyBSU0FCU1NBIHRvIGdlbmVyYXRlIHNlY3JldCB0b2tlbiBmb3IgUENNIGZyYXVkIHByZXZlbnRp
b24uCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnOgorICAgICAg
ICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICBQYXBlcndvcmsgdG8gbGluayBDcnlwdG9LaXRDQnJpZGdpbmcu
CisKKyAgICAgICAgKiBsb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNl
Ojppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpzZXRFcGhlbWVyYWxTb3VyY2VOb25jZSk6CisgICAgICAgICogbG9hZGVyL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6YXR0cmlidXRlT25TaXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjplcGhlbWVyYWxTb3VyY2VOb25jZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y2xlYXJFcGhlbWVyYWxTb3VyY2VOb25j
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFs
U291cmNlTm9uY2U6OkVwaGVtZXJhbFNvdXJjZU5vbmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNW
YWxpZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6c2V0RXBoZW1lcmFsU291cmNlTm9uY2UpOiBEZWxldGVkLgorICAgICAgICBHcm91
cHMgZnVuY3Rpb25hbGl0aWVzIGJlaGluZCBIQVZFX1JTQV9CU1NBLgorCisgICAgICAgICogbG9h
ZGVyL2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW06IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmJsaW5kZWRTZWNyZXRKc29uKToK
KyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpjYWxjdWxhdGVQZXJz
aXN0ZW50QmxpbmRlZFRva2VuKToKKyAgICAgICAgSW50cm9kdWNlcyBuZXcgbWV0aG9kcyB0byBn
ZW5lcmF0ZSB0aGUgYmxpbmRlZCBzZWNyZXRzIGFuZCB1bmxpbmthYmxlIHRva2Vucy4KKwogMjAy
MS0wMi0xOSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFBD
TTogUmVxdWVzdCBzZXJ2ZXIgcHVibGljIGtleSB0byBnZW5lcmF0ZSBzZWNyZXQgdG9rZW4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1IYXZlLmgKaW5kZXggMDQ4NmZjZTJjNDE4NmQyZDhiZjI1OTEyNTU5NmU4NjM5Y2Qz
NDUxMS4uZGExNWZkN2RlN2VlNWM4YWFmMDM0OWZmMTAyOGY3MmU1Njk1NGFmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxh
dGZvcm1IYXZlLmgKQEAgLTg4OCwzICs4ODgsOCBAQAogI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDAKICNkZWZpbmUgSEFWRV9TVEFU
SUNfRk9OVF9SRUdJU1RSWSAxCiAjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwKSBcCisgICAgfHwgKFBMQVRGT1JN
KElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTUwMDAwKQorI2Rl
ZmluZSBIQVZFX1JTQV9CU1NBIDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BB
TC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJlZGJjYzljMDM4ODc1ZWFlNDAyY2E1
ZDU3OTU0OGRhMDdjZTc0NmUuLjg4NDkwZTBkOTk3MjdhODc5NjVlYjVjYTBhOGU2MjBiMGE0ZjFk
ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTEzOCw2ICsxMzgsOCBAQAogCQk1NzBBQjhGOTIwQUY2RTNEMDBCOEJFODcgLyog
TlNYUENDb25uZWN0aW9uU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzBBQjhGODIwQUY2RTNEMDBCOEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJ
LmggKi87IH07CiAJCTU3MkExMDc4MjJCNDU2RjUwMEY0MTBDOCAvKiBBdXRoS2l0U1BJLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJBMTA3NzIyQjQ1
NkY1MDBGNDEwQzggLyogQXV0aEtpdFNQSS5oICovOyB9OwogCQk1NzZDQTlENjIyQjg1NEFCMDAz
MDE0M0MgLyogQXBwU1NPU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzZDQTlENTIyQjg1NEFCMDAzMDE0M0MgLyogQXBwU1NPU1BJLmggKi87IH07
CisJCTU3RjFDOTA5MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGMUM5
MDcyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmggKi87IH07
CisJCTU3RjFDOTBBMjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RjFD
OTA4MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbSAqLzsg
fTsKIAkJNTdGRDMxOEEyMkIzNTkzRTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGRDMxODkyMkIzNTkz
RTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLm1tICovOyB9OwogCQk1N0ZEMzE4QjIyQjM1OTg5
MDA4RDBFOEIgLyogQXBwU1NPU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3RkQzMTg4MjJCMzU5MkYwMDhEMEU4QiAvKiBBcHBTU09Tb2Z0
TGluay5oICovOyB9OwogCQk1QzdDNzg3MzIzQUMzRTc3MDA2NUY0N0UgLyogTWFuYWdlZENvbmZp
Z3VyYXRpb25Tb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUM3Qzc4NzEyM0FDM0U3NzAwNjVGNDdFIC8qIE1hbmFnZWRDb25maWd1cmF0aW9u
U29mdExpbmsuaCAqLzsgfTsKQEAgLTM0MSw2ICszNDMsOCBAQAogCQk1NzBBQjhGODIwQUY2RTNE
MDBCOEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TWFBDQ29u
bmVjdGlvblNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJBMTA3NzIyQjQ1
NkY1MDBGNDEwQzggLyogQXV0aEtpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoS2l0U1BJLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NkNBOUQ1MjJCODU0QUIwMDMwMTQzQyAv
KiBBcHBTU09TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwU1NPU1BJLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTU3RjFDOTA3MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJp
ZGdpbmdTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0YxQzkwODI1RENGMENGMDBFOEY2
RUEgLyogQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTdGRDMxODgyMkIzNTkyRjAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcFNTT1NvZnRMaW5rLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU3RkQzMTg5MjJCMzU5M0UwMDhEMEU4QiAvKiBBcHBTU09Tb2Z0
TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFwcFNTT1Nv
ZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzdDNzg3MTIzQUMzRTc3
MDA2NUY0N0UgLyogTWFuYWdlZENvbmZpZ3VyYXRpb25Tb2Z0TGluay5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNYW5hZ2VkQ29uZmlndXJhdGlvblNvZnRMaW5rLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02OTEsNiArNjk1LDggQEAKIAkJCQk1N0ZEMzE4OTIy
QjM1OTNFMDA4RDBFOEIgLyogQXBwU1NPU29mdExpbmsubW0gKi8sCiAJCQkJMDc3RTg3QjAyMjZB
NDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLmggKi8sCiAJCQkJMDc3RTg3QUYy
MjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLm1tICovLAorCQkJCTU3RjFD
OTA3MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oICovLAor
CQkJCTU3RjFDOTA4MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5tbSAqLywKIAkJCQlGNDQyOTE2NjFGQTUyNzA1MDAyQ0M5M0UgLyogRmlsZVNpemVGb3JtYXR0
ZXJDb2NvYS5tbSAqLywKIAkJCQkxQzAyMkVGQzIyQ0ZFOEUwMDA2REYwMUIgLyogR3VuemlwLmNw
cCAqLywKIAkJCQlDREFDQjM1RTIzODczRTQ4MDAxOEQ3Q0UgLyogTWVkaWFUb29sYm94U29mdExp
bmsuY3BwICovLApAQCAtODI4LDYgKzgzNCw3IEBACiAJCQkJMUNDRUU0RjUyMEQ4NzE5MzAwNDdC
MDk3IC8qIENvcmVVSVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MTkxRjQzQTRDNzAw
MkVBQzAyIC8qIENvcmVVSVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUMwOUQwNTMxRTMxQzQ0
MTAwNzI1RjE4IC8qIENyeXB0b0RpZ2VzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTdGMUM5MDky
NURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwQzJEQTE0MTFGM0JFQjQ5MDBEQkMzMTcgLyogRGF0YURldGVjdG9yc0NvcmVT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NThBMUY0NTEzMEYwMEY0RUJCNiAvKiBEYXRh
RGV0ZWN0b3JzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzVBRjkxQTFGNDNBNEM3MDAyRUFD
MDIgLyogRGF0YURldGVjdG9yc1VJU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTEwMzcsNiArMTA0
NCw3IEBACiAJCQkJMENGOTlDQTgxRjczODQzNzAwN0VFNzkzIC8qIENvcmVNZWRpYVNvZnRMaW5r
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDNzdDOEM5MjVENzk3MjAwMDYzNUUwQyAvKiBDb3Jl
VGV4dFNvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDMDlEMDU2MUUzMUM0NjUwMDcy
NUYxOCAvKiBDcnlwdG9EaWdlc3RDb21tb25DcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTdGMUM5MEEyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTExNzVCNTgxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRT
ZWFyY2hQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNDQyOTE2NDFGQTUyNjcwMDAy
Q0M5M0UgLyogRmlsZVNpemVGb3JtYXR0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ0Mjkx
NjgxRkE1MjcwNTAwMkNDOTNFIC8qIEZpbGVTaXplRm9ybWF0dGVyQ29jb2EubW0gaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRvS2l0
Q0JyaWRnaW5nU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRv
S2l0Q0JyaWRnaW5nU29mdExpbmsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTkwZDRmZTVmM2FlZTNhNjM4YWJl
MDE1MmM0NjUwMzM5MzA5ZjY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oCkBAIC0wLDAgKzEsMzcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEhBVkUoUlNBX0JTU0EpCisKKyNpbXBv
cnQgPENyeXB0b0tpdENCcmlkZ2luZy9SU0FCU1NBLmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtp
bmcuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfSEVBREVSKFBBTCwgQ3J5cHRvS2l0Q0Jy
aWRnaW5nKTsKKworU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBSU0FCU1NBVG9rZW5C
bGluZGVyKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Nv
Y29hL0NyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWJjNzVh
Y2MzZGQ3NDQ4ZDBhMTA5NTc4ZGJmMzAyMjRkNzJiNDlhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbQpA
QCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYg
SEFWRShSU0FfQlNTQSkKKworI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisKK1NPRlRfTElO
S19QUklWQVRFX0ZSQU1FV09SS19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ3J5cHRvS2l0
Q0JyaWRnaW5nLCBQQUxfRVhQT1JUKTsKKworU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDcnlwdG9LaXRDQnJpZGdpbmcsIFJTQUJTU0FUb2tlbkJsaW5kZXIsIFBB
TF9FWFBPUlQpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXND
b2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGJmNmFlMTYx
ODdhYmEwNzE1NzJkYTA3OTIzYWMzMzBiMjI4ZjY5YzUuLjlkYTUyMWE3YTVkNDY0YTg0MjA5YzNj
YjAwOWRkOWExYWVhNjBmMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2Nv
YS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMTY4LDYgKzE2
OCw3IEBAIGluc3BlY3Rvci9tYWMvUGFnZURlYnVnZ2VyTWFjLm1tCiBsb2FkZXIvYXJjaGl2ZS9j
Zi9MZWdhY3lXZWJBcmNoaXZlLmNwcAogbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2
ZU1hYy5tbQogbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5tbQorbG9hZGVyL2Nv
Y29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0KIGxvYWRlci9jb2NvYS9TdWJyZXNv
dXJjZUxvYWRlckNvY29hLm1tCiBsb2FkZXIvaW9zL0xlZ2FjeVByZXZpZXdMb2FkZXIubW0KIGxv
YWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGQxZmZmZWJlZmVmMjBjNjBjOTA1
MDliYWM3MWY0MjNiNDNhNmM0Ni4uMjI0OGU3N2M4Y2M3NDY5ZmI3MGE1YmYxYzljOWRlYzkzZDZh
NDhmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtOTQxNiw2ICs5NDE2LDcgQEAKIAkJNTdFRUFBNTcxRUEwQUZCQjAwNzAxMTI0
IC8qIENvbW1vbkNyeXB0b0RFUlV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDb21tb25DcnlwdG9ERVJVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1N0VGNUU1RjFEMjBDODM5MDAxNzFFNjAgLyogVGV4dENvZGVjUmVw
bGFjZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENvZGVjUmVw
bGFjZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdFRjVFNjExRDIwRDI4
NzAwMTcxRTYwIC8qIFRleHRDb2RlY1JlcGxhY2VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRDb2RlY1JlcGxhY2VtZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTdGMUM4RTMyNURDNkVFNzAwRThGNkVBIC8qIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1N0Y4MjczOTFEQjcyQzIyMDA5RDJCRjQgLyogUnNhSGFzaGVkS2V5R2VuUGFy
YW1zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBSc2FIYXNoZWRLZXlHZW5QYXJhbXMuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1N0ZFREQzRDFEQjZENDdGMDBFQjk2RjUgLyogUnNhS2V5R2VuUGFyYW1z
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBSc2FLZXlHZW5QYXJhbXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1N0ZFREQzRTFEQjZENTkyMDBFQjk2RjUgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2Vu
UGFyYW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRo
bVJzYUtleUdlblBhcmFtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTczMSw3
ICs5NzMyLDcgQEAKIAkJNkEyMkU4NzIxRjEwNDJDNDAwRjU0NkMzIC8qIEluc3BlY3RvckNhbnZh
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JDYW52YXMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2QTcyNzk4ODFGMTZDMjlCMDAzRjM5QjggLyogSW5zcGVjdG9y
U2hhZGVyUHJvZ3JhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0
b3JTaGFkZXJQcm9ncmFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZBNzI3OTg5
MUYxNkMyOUIwMDNGMzlCOCAvKiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvclNoYWRlclByb2dyYW0uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QjBBMDdGMDIxRkE0QjVDMDBENTczOTEgLyog
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkIwQTA3RjAyMUZBNEI1
QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTZCMEEwN0YxMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCMUY0ODBGMjI5ODlFQzQwMERF
OEI4MiAvKiBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNkI0RDQxMkIyMzk4M0Y4ODAwMjQ5NEMyIC8qIExvZ2dlZEluU3RhdHVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IExvZ2dlZEluU3RhdHVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yMjk0OSw2ICsyMjk1MCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk3RURBQUZDODE5
QTJDQkQxMDAzNERGRDEgLyogRGlza0NhY2hlTW9uaXRvckNvY29hLmggKi8sCiAJCQkJN0U0REUx
MEMxOThCMTBCNjAwNTFDQjAyIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSAqLywKKwkJCQk1
N0YxQzhFMzI1REM2RUU3MDBFOEY2RUEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5t
bSAqLywKIAkJCQk3RThGQURDMzE5OUE5NUIxMDA3MTQ5NjggLyogU3VicmVzb3VyY2VMb2FkZXJD
b2NvYS5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gY29jb2E7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAppbmRleCA4YTk3M2YwMzQ1NDQ1
NDc1NGQwMTk1NGFmM2ZhZjhiOGZhZGI1OGNkLi5lNTZjOTQ1MjI5YTU5Njk3M2RiNWE3YjUwZWEy
MTQwZGUxNWE4ZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUcmlnZ2VyQXR0cmli
dXRpb25QYXRoW10gPSAiLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvdHJp
Z2dlci1hdHRyaWJ1dGlvbi8iOwotc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRUb2tlblNpZ25hdHVyZVBhdGhbXSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC9zaWduLXVubGlua2FibGUtdG9rZW4vIjsKK3N0YXRpYyBjb25zdCBjaGFyIHBy
aXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVQYXRoW10gPSAiLy53ZWxsLWtub3du
L3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvc2lnbi1zZWNyZXQtdG9rZW4vIjsKIHN0YXRpYyBj
b25zdCBjaGFyIHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlQYXRoW10gPSAi
Ly53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvZ2V0LXVubGlua2FibGUtdG9r
ZW4tcHVibGljLWtleS8iOwogc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRSZXBvcnRBdHRyaWJ1dGlvblBhdGhbXSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC9yZXBvcnQtYXR0cmlidXRpb24vIjsKIGNvbnN0IHNpemVfdCBwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHJpZ2dlckRhdGFQYXRoU2VnbWVudFNpemUgPSAyOwpA
QCAtMTE2LDE1ICsxMTYsMTUgQEAgYm9vbCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6aGFzSGln
aGVyUHJpb3JpdHlUaGFuKGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW4KICAgICByZXR1cm4g
bV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhLT5wcmlvcml0eSA+IG90aGVyLm1fYXR0cmlidXRpb25U
cmlnZ2VyRGF0YS0+cHJpb3JpdHk7CiB9CiAKLVVSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
dG9rZW5TaWduYXR1cmVVUkwoKSBjb25zdAorVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojph
dHRyaWJ1dGlvblJlcG9ydFVSTCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2VwaGVtZXJhbFNvdXJj
ZU5vbmNlIHx8ICFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5pc1ZhbGlkKCkpCisgICAgaWYgKCFp
c1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBVUkwoKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImh0dHBzOi8vIik7CiAgICAgYnVpbGRl
ci5hcHBlbmQobV9zb3VyY2VTaXRlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKLSAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVy
ZVBhdGgpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbChwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFJlcG9ydEF0dHJpYnV0aW9uUGF0aCk7CiAKICAgICBVUkwgdXJsIHsgVVJMKCksIGJ1aWxkZXIu
dG9TdHJpbmcoKSB9OwogICAgIGlmICh1cmwuaXNWYWxpZCgpKQpAQCAtMTMzLDEyICsxMzMsNTEg
QEAgVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojp0b2tlblNpZ25hdHVyZVVSTCgpIGNvbnN0
CiAgICAgcmV0dXJuIFVSTCgpOwogfQogCi1VUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRv
a2VuUHVibGljS2V5VVJMKCkgY29uc3QKK1JlZjxKU09OOjpPYmplY3Q+IFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydEpTT04oKSBjb25zdAoreworICAgIGF1dG8gcmVw
b3J0RGV0YWlscyA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CisgICAgaWYgKCFtX2F0dHJpYnV0
aW9uVHJpZ2dlckRhdGEgfHwgIWlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIHJlcG9ydERldGFp
bHM7CisKKyAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5
cGUiX3MsICJjbGljayJfcyk7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vf
c2l0ZSJfcywgbV9zb3VyY2VTaXRlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKKyAgICBy
ZXBvcnREZXRhaWxzLT5zZXRJbnRlZ2VyKCJzb3VyY2VfaWQiX3MsIG1fc291cmNlSUQuaWQpOwor
ICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygiYXR0cmlidXRlZF9vbl9zaXRlIl9zLCBtX2F0
dHJpYnV0ZU9uU2l0ZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7CisgICAgcmVwb3J0RGV0
YWlscy0+c2V0SW50ZWdlcigidHJpZ2dlcl9kYXRhIl9zLCBtX2F0dHJpYnV0aW9uVHJpZ2dlckRh
dGEtPmRhdGEpOworICAgIHJlcG9ydERldGFpbHMtPnNldEludGVnZXIoInZlcnNpb24iX3MsIDEp
OworICAgIHJldHVybiByZXBvcnREZXRhaWxzOworfQorCisvLyBNQVJLOiAtIEZyYXVkIFByZXZl
bnRpb24KKworc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBFcGhlbWVyYWxTb3VyY2VOb25jZVJl
cXVpcmVkTnVtYmVyT2ZCeXRlcyA9IDE2OworCitib29sIFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNWYWxpZCgpIGNvbnN0CiB7CisgICAgLy8gRklYTUU6
IEludmVzdGlnYXRlIGlmIHdlIGNhbiBkbyB3aXRoIGEgc2ltcGxlIGxlbmd0aCBjaGVjayBpbnN0
ZWFkIG9mIGRlY29kaW5nLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjE5NDUKKyAgICBWZWN0b3I8dWludDhfdD4gZGlnZXN0OworICAgIGlmICghYmFz
ZTY0VVJMRGVjb2RlKG5vbmNlLCBkaWdlc3QpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIGRpZ2VzdC5zaXplKCkgPT0gRXBoZW1lcmFsU291cmNlTm9uY2VSZXF1aXJlZE51bWJl
ck9mQnl0ZXM7Cit9CisKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNldEVwaGVtZXJh
bFNvdXJjZU5vbmNlKEVwaGVtZXJhbFNvdXJjZU5vbmNlJiYgbm9uY2UpCit7CisgICAgaWYgKCFu
b25jZS5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBtX2VwaGVtZXJhbFNvdXJjZU5v
bmNlID0gV1RGTW92ZShub25jZSk7Cit9CisKK1VSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
dG9rZW5TaWduYXR1cmVVUkwoKSBjb25zdAoreworICAgIGlmICghbV9lcGhlbWVyYWxTb3VyY2VO
b25jZSB8fCAhbV9lcGhlbWVyYWxTb3VyY2VOb25jZS0+aXNWYWxpZCgpKQorICAgICAgICByZXR1
cm4gVVJMKCk7CisKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJodHRwczovLyIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1fc291cmNlU2l0ZS5y
ZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKHBy
aXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlQYXRoKTsKKyAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVBhdGgpOwog
CiAgICAgVVJMIHVybCB7IFVSTCgpLCBidWlsZGVyLnRvU3RyaW5nKCkgfTsKICAgICBpZiAodXJs
LmlzVmFsaWQoKSkKQEAgLTE0NywyOCArMTg2LDEyIEBAIFVSTCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6dG9rZW5QdWJsaWNLZXlVUkwoKSBjb25zdAogICAgIHJldHVybiBVUkwoKTsKIH0KIAot
UmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRva2VuU2lnbmF0dXJl
SlNPTigpIGNvbnN0Ci17Ci0gICAgYXV0byByZXBvcnREZXRhaWxzID0gSlNPTjo6T2JqZWN0Ojpj
cmVhdGUoKTsKLSAgICBpZiAoIW1fZXBoZW1lcmFsU291cmNlTm9uY2UgfHwgIW1fZXBoZW1lcmFs
U291cmNlTm9uY2UtPmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7Ci0K
LSAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5cGUiX3Ms
ICJjbGljayJfcyk7Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vfbm9uY2Ui
X3MsIG1fZXBoZW1lcmFsU291cmNlTm9uY2UtPm5vbmNlKTsKLSAgICByZXBvcnREZXRhaWxzLT5z
ZXRTdHJpbmcoInVubGlua2FibGVfdG9rZW4iX3MsICJUT0RPIl9zKTsKLSAgICByZXBvcnREZXRh
aWxzLT5zZXRJbnRlZ2VyKCJ2ZXJzaW9uIl9zLCAyKTsKLSAgICByZXR1cm4gcmVwb3J0RGV0YWls
czsKLX0KLQotVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydFVS
TCgpIGNvbnN0CitVUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRva2VuUHVibGljS2V5VVJM
KCkgY29uc3QKIHsKLSAgICBpZiAoIWlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIFVSTCgpOwot
CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
aHR0cHM6Ly8iKTsKICAgICBidWlsZGVyLmFwcGVuZChtX3NvdXJjZVNpdGUucmVnaXN0cmFibGVE
b21haW4uc3RyaW5nKCkpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbChwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFJlcG9ydEF0dHJpYnV0aW9uUGF0aCk7CisgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlQYXRoKTsKIAogICAgIFVS
TCB1cmwgeyBVUkwoKSwgYnVpbGRlci50b1N0cmluZygpIH07CiAgICAgaWYgKHVybC5pc1ZhbGlk
KCkpCkBAIC0xNzcsMTkgKzIwMCwyMSBAQCBVUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0
dHJpYnV0aW9uUmVwb3J0VVJMKCkgY29uc3QKICAgICByZXR1cm4gVVJMKCk7CiB9CiAKLVJlZjxK
U09OOjpPYmplY3Q+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydEpT
T04oKSBjb25zdAorUmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRv
a2VuU2lnbmF0dXJlSlNPTihjb25zdCBTdHJpbmcmIHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCkK
IHsKICAgICBhdXRvIHJlcG9ydERldGFpbHMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwotICAg
IGlmICghbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhIHx8ICFpc1ZhbGlkKCkpCisgICAgaWYgKCFt
X2VwaGVtZXJhbFNvdXJjZU5vbmNlIHx8ICFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5pc1ZhbGlk
KCkpCisgICAgICAgIHJldHVybiByZXBvcnREZXRhaWxzOworCisgICAgYXV0byB0b2tlbiA9IHNv
dXJjZVNlY3JldFRva2VuKHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCk7CisgICAgaWYgKHRva2Vu
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7CiAKICAgICByZXBvcnRE
ZXRhaWxzLT5zZXRTdHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5cGUiX3MsICJjbGljayJfcyk7
Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vfc2l0ZSJfcywgbV9zb3VyY2VT
aXRlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKLSAgICByZXBvcnREZXRhaWxzLT5zZXRJ
bnRlZ2VyKCJzb3VyY2VfaWQiX3MsIG1fc291cmNlSUQuaWQpOwotICAgIHJlcG9ydERldGFpbHMt
PnNldFN0cmluZygiYXR0cmlidXRlZF9vbl9zaXRlIl9zLCBtX2F0dHJpYnV0ZU9uU2l0ZS5yZWdp
c3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigi
dHJpZ2dlcl9kYXRhIl9zLCBtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEtPmRhdGEpOwotICAgIHJl
cG9ydERldGFpbHMtPnNldEludGVnZXIoInZlcnNpb24iX3MsIDEpOworICAgIHJlcG9ydERldGFp
bHMtPnNldFN0cmluZygic291cmNlX25vbmNlIl9zLCBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5u
b25jZSk7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2Vu
Il9zLCB0b2tlbik7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigidmVyc2lvbiJfcywg
Mik7CiAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7CiB9CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
LmgKaW5kZXggYzhkOTk0ZjgxNDYzODk3YWM1MWIyY2EwZjQ4ZjEwODI4NWMyMmU4Zi4uNjBlOGY0
Y2FmN2NlYmU4OWI4OTNhZDgxNjJmZWJiZGRiMjgyY2M1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKQEAgLTM2LDYgKzM2LDEwIEBACiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCitPQkpDX0NMQVNTIFJTQUJTU0FUb2tlblJlYWR5OworT0JKQ19DTEFTUyBSU0FC
U1NBVG9rZW5XYWl0aW5nQWN0aXZhdGlvbjsKK09CSkNfQ0xBU1MgUlNBQlNTQVRva2VuQmxpbmRl
cjsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCB7CkBAIC0yMDEsMzEgKzIwNSw2IEBAIHB1YmxpYzoKICAgICAgICAgc3RhdGljIGNvbnN0IGJv
b2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKICAgICB9OwogCi0gICAg
c3RydWN0IEVwaGVtZXJhbFNvdXJjZU5vbmNlIHsKLSAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1
aW50MzJfdCBSZXF1aXJlZE51bWJlck9mQnl0ZXMgPSAxNjsKLQotICAgICAgICBFcGhlbWVyYWxT
b3VyY2VOb25jZSgpID0gZGVmYXVsdDsKLSAgICAgICAgZXhwbGljaXQgRXBoZW1lcmFsU291cmNl
Tm9uY2UoY29uc3QgU3RyaW5nJiBub25jZVN0cmluZykKLSAgICAgICAgICAgIDogbm9uY2UgeyBu
b25jZVN0cmluZyB9Ci0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIEZJWE1FOiBJ
bnZlc3RpZ2F0ZSBpZiB3ZSBjYW4gZG8gd2l0aCBhIHNpbXBsZSBsZW5ndGggY2hlY2sgaW5zdGVh
ZCBvZiBkZWNvZGluZy4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyMTk0NQotICAgICAgICBib29sIGlzVmFsaWQoKSBjb25zdAotICAgICAgICB7
Ci0gICAgICAgICAgICBWZWN0b3I8dWludDhfdD4gZGlnZXN0OwotICAgICAgICAgICAgaWYgKCFi
YXNlNjRVUkxEZWNvZGUobm9uY2UsIGRpZ2VzdCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICAgICAgcmV0dXJuIGRpZ2VzdC5zaXplKCkgPT0gUmVxdWlyZWROdW1iZXJP
ZkJ5dGVzOwotICAgICAgICB9Ci0KLSAgICAgICAgU3RyaW5nIG5vbmNlOwotCi0gICAgICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICAg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJj
ZU5vbmNlPiBkZWNvZGUoRGVjb2RlciYpOwotICAgIH07Ci0KICAgICBzdHJ1Y3QgUHJpb3JpdHkg
ewogICAgICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IE1heEVudHJvcHkgPSA2MzsKIApA
QCAtMjc3LDE2ICsyNTYsMTAgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBF
eHBlY3RlZDxBdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBTdHJpbmc+IHBhcnNlQXR0cmlidXRpb25S
ZXF1ZXN0KGNvbnN0IFVSTCYgcmVkaXJlY3RVUkwpOwogICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlv
bmFsPFNlY29uZHM+IGF0dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChBdHRyaWJ1dGlv
blRyaWdnZXJEYXRhJiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzSGlnaGVyUHJpb3Jp
dHlUaGFuKGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW50JikgY29uc3Q7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgVVJMIHRva2VuUHVibGljS2V5VVJMKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgVVJMIHRva2VuU2lnbmF0dXJlVVJMKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgUmVm
PEpTT046Ok9iamVjdD4gdG9rZW5TaWduYXR1cmVKU09OKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9F
WFBPUlQgVVJMIGF0dHJpYnV0aW9uUmVwb3J0VVJMKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBP
UlQgUmVmPEpTT046Ok9iamVjdD4gYXR0cmlidXRpb25SZXBvcnRKU09OKCkgY29uc3Q7CiAgICAg
Y29uc3QgU291cmNlU2l0ZSYgc291cmNlU2l0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlU2l0
ZTsgfTsKICAgICBjb25zdCBBdHRyaWJ1dGVPblNpdGUmIGF0dHJpYnV0ZU9uU2l0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYXR0cmlidXRlT25TaXRlOyB9OwotICAgIHZvaWQgc2V0RXBoZW1lcmFsU291
cmNlTm9uY2UoRXBoZW1lcmFsU291cmNlTm9uY2UmJiBub25jZSkgeyBtX2VwaGVtZXJhbFNvdXJj
ZU5vbmNlID0gV1RGTW92ZShub25jZSk7IH07Ci0gICAgT3B0aW9uYWw8RXBoZW1lcmFsU291cmNl
Tm9uY2U+IGVwaGVtZXJhbFNvdXJjZU5vbmNlKCkgY29uc3QgeyByZXR1cm4gIW1fZXBoZW1lcmFs
U291cmNlTm9uY2UgPyBXVEY6Om51bGxvcHQgOiBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5pc1Zh
bGlkKCkgPyBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlIDogV1RGOjpudWxsb3B0OyB9OwotICAgIHZv
aWQgY2xlYXJFcGhlbWVyYWxTb3VyY2VOb25jZSgpIHsgbV9lcGhlbWVyYWxTb3VyY2VOb25jZSAg
PSBXVEY6Om51bGxvcHQ7IH07CiAgICAgV2FsbFRpbWUgdGltZU9mQWRDbGljaygpIGNvbnN0IHsg
cmV0dXJuIG1fdGltZU9mQWRDbGljazsgfQogICAgIE9wdGlvbmFsPFdhbGxUaW1lPiBlYXJsaWVz
dFRpbWVUb1NlbmQoKSBjb25zdCB7IHJldHVybiBtX2VhcmxpZXN0VGltZVRvU2VuZDsgfTsKICAg
ICB2b2lkIHNldEVhcmxpZXN0VGltZVRvU2VuZChXYWxsVGltZSB0aW1lKSB7IG1fZWFybGllc3RU
aW1lVG9TZW5kID0gdGltZTsgfQpAQCAtMjk3LDExICsyNzAsMzggQEAgcHVibGljOgogICAgIGNv
bnN0IFN0cmluZyYgc291cmNlRGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZURl
c2NyaXB0aW9uOyB9CiAgICAgY29uc3QgU3RyaW5nJiBwdXJjaGFzZXIoKSBjb25zdCB7IHJldHVy
biBtX3B1cmNoYXNlcjsgfQogCisgICAgLy8gTUFSSzogLSBGcmF1ZCBQcmV2ZW50aW9uCisgICAg
c3RydWN0IEVwaGVtZXJhbFNvdXJjZU5vbmNlIHsKKyAgICAgICAgU3RyaW5nIG5vbmNlOworCisg
ICAgICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNWYWxpZCgpIGNvbnN0OworCisgICAgICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICAg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJj
ZU5vbmNlPiBkZWNvZGUoRGVjb2RlciYpOworICAgIH07CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldEVwaGVtZXJhbFNvdXJjZU5vbmNlKEVwaGVtZXJhbFNvdXJjZU5vbmNlJiYpOworICAg
IE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5vbmNlPiBlcGhlbWVyYWxTb3VyY2VOb25jZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZXBoZW1lcmFsU291cmNlTm9uY2U7IH07CisgICAgdm9pZCBjbGVhckVw
aGVtZXJhbFNvdXJjZU5vbmNlKCkgeyBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLnJlc2V0KCk7IH07
CisKKyAgICBzdHJ1Y3QgU291cmNlVW5saW5rYWJsZVRva2VuIHsKKyAgICAgICAgU3RyaW5nIHRv
a2VuQmFzZTY0VVJMOworICAgICAgICBTdHJpbmcga2V5SURCYXNlNjRVUkw7CisgICAgICAgIFN0
cmluZyBzaWduYXR1cmVCYXNlNjRVUkw7CisgICAgfTsKKworICAgIFdFQkNPUkVfRVhQT1JUIFVS
TCB0b2tlblB1YmxpY0tleVVSTCgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFVSTCB0b2tl
blNpZ25hdHVyZVVSTCgpIGNvbnN0OworCisgICAgV0VCQ09SRV9FWFBPUlQgUmVmPEpTT046Ok9i
amVjdD4gdG9rZW5TaWduYXR1cmVKU09OKGNvbnN0IFN0cmluZyYgc2VydmVyUHVibGljS2V5QmFz
ZTY0VVJMKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxTb3VyY2VVbmxpbmthYmxlVG9r
ZW4+IGNhbGN1bGF0ZVNvdXJjZVVubGlua2FibGVUb2tlbihjb25zdCBTdHJpbmcmIHNlcnZlclJl
c3BvbnNlQmFzZTY0VVJMKTsKKwogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
T3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IGRlY29kZShEZWNvZGVyJik7CiAKIHBy
aXZhdGU6CiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisgICAgU3RyaW5nIHNvdXJjZVNlY3Jl
dFRva2VuKGNvbnN0IFN0cmluZyYgc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKTsKIAogICAgIFNv
dXJjZUlEIG1fc291cmNlSUQ7CiAgICAgU291cmNlU2l0ZSBtX3NvdXJjZVNpdGU7CkBAIC0zMTAs
OSArMzEwLDE3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcHVyY2hhc2VyOwogICAgIFdhbGxU
aW1lIG1fdGltZU9mQWRDbGljazsKIAotICAgIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5vbmNl
PiBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlOwogICAgIE9wdGlvbmFsPEF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGE+IG1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YTsKICAgICBPcHRpb25hbDxXYWxsVGltZT4g
bV9lYXJsaWVzdFRpbWVUb1NlbmQ7CisKKyAgICBzdHJ1Y3QgU291cmNlU2VjcmV0VG9rZW4gewor
ICAgICAgICBSZXRhaW5QdHI8UlNBQlNTQVRva2VuQmxpbmRlcj4gYmxpbmRlcjsKKyAgICAgICAg
UmV0YWluUHRyPFJTQUJTU0FUb2tlbldhaXRpbmdBY3RpdmF0aW9uPiB3YWl0aW5nVG9rZW47Cisg
ICAgICAgIFJldGFpblB0cjxSU0FCU1NBVG9rZW5SZWFkeT4gcmVhZHlUb2tlbjsKKyAgICB9Owor
CisgICAgT3B0aW9uYWw8RXBoZW1lcmFsU291cmNlTm9uY2U+IG1fZXBoZW1lcmFsU291cmNlTm9u
Y2U7CisgICAgU291cmNlU2VjcmV0VG9rZW4gbV9zb3VyY2VTZWNyZXRUb2tlbjsKIH07CiAKIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNh
ZGNlZjAyNWZiYTg0OTMyY2FhNzQwMzJiZjJjODk5NjMzM2I3MTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2Nv
YS5tbQpAQCAtMCwwICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisj
aW1wb3J0ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIgorCisjaW1wb3J0IDxwYWwvY29jb2Ev
Q3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitT
dHJpbmcgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNvdXJjZVNlY3JldFRva2VuKGNvbnN0IFN0
cmluZyYgc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKQoreworI2lmIEhBVkUoUlNBX0JTU0EpCisg
ICAgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gc2VydmVyUHVibGljS2V5RGF0YTsKKyAgICAg
ICAgaWYgKCFiYXNlNjRVUkxEZWNvZGUoc2VydmVyUHVibGljS2V5QmFzZTY0VVJMLCBzZXJ2ZXJQ
dWJsaWNLZXlEYXRhKSkKKyAgICAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOworICAgICAg
ICBhdXRvIHNlcnZlclB1YmxpY0tleSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRo
Qnl0ZXM6c2VydmVyUHVibGljS2V5RGF0YS5kYXRhKCkgbGVuZ3RoOnNlcnZlclB1YmxpY0tleURh
dGEuc2l6ZSgpXSk7CisKKyAgICAgICAgLy8gRklYTUUoMjIyMDE4KTogQ2hlY2sgZXJyb3IuCisg
ICAgICAgIG1fc291cmNlU2VjcmV0VG9rZW4uYmxpbmRlciA9IGFkb3B0TlMoW1BBTDo6YWxsb2NS
U0FCU1NBVG9rZW5CbGluZGVySW5zdGFuY2UoKSBpbml0V2l0aFB1YmxpY0tleTpzZXJ2ZXJQdWJs
aWNLZXkuZ2V0KCkgZXJyb3I6bnVsbHB0cl0pOworICAgICAgICBpZiAoIW1fc291cmNlU2VjcmV0
VG9rZW4uYmxpbmRlcikKKyAgICAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOworICAgIH0K
KworICAgIC8vIEZJWE1FKDIyMjAxOCk6IENoZWNrIGVycm9yLgorICAgIG1fc291cmNlU2VjcmV0
VG9rZW4ud2FpdGluZ1Rva2VuID0gW21fc291cmNlU2VjcmV0VG9rZW4uYmxpbmRlciB0b2tlbldh
aXRpbmdBY3RpdmF0aW9uV2l0aENvbnRlbnQ6bnVsbHB0ciBlcnJvcjpudWxscHRyXTsKKyAgICBp
ZiAoIW1fc291cmNlU2VjcmV0VG9rZW4ud2FpdGluZ1Rva2VuKQorICAgICAgICByZXR1cm4gZW1w
dHlTdHJpbmcoKTsKKworICAgIHJldHVybiBXVEY6OmJhc2U2NFVSTEVuY29kZShbbV9zb3VyY2VT
ZWNyZXRUb2tlbi53YWl0aW5nVG9rZW4gYmxpbmRlZE1lc3NhZ2VdLmJ5dGVzLCBbbV9zb3VyY2VT
ZWNyZXRUb2tlbi53YWl0aW5nVG9rZW4gYmxpbmRlZE1lc3NhZ2VdLmxlbmd0aCk7CisjZWxzZQor
ICAgIHJldHVybiBlbXB0eVN0cmluZygpOworI2VuZGlmIC8vIEhBVkUoUlNBX0JTU0EpCit9CisK
K2F1dG8gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmNhbGN1bGF0ZVNvdXJjZVVubGlua2FibGVU
b2tlbihjb25zdCBTdHJpbmcmIHNlcnZlclJlc3BvbnNlQmFzZTY0VVJMKSAtPiBPcHRpb25hbDxT
b3VyY2VVbmxpbmthYmxlVG9rZW4+Cit7CisjaWYgSEFWRShSU0FfQlNTQSkKKyAgICBpZiAoIW1f
c291cmNlU2VjcmV0VG9rZW4ud2FpdGluZ1Rva2VuKQorICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworCisgICAgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gc2VydmVyUmVzcG9uc2VEYXRh
OworICAgICAgICBpZiAoIWJhc2U2NFVSTERlY29kZShzZXJ2ZXJSZXNwb25zZUJhc2U2NFVSTCwg
c2VydmVyUmVzcG9uc2VEYXRhKSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cisg
ICAgICAgIGF1dG8gc2VydmVyUmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0
V2l0aEJ5dGVzOnNlcnZlclJlc3BvbnNlRGF0YS5kYXRhKCkgbGVuZ3RoOnNlcnZlclJlc3BvbnNl
RGF0YS5zaXplKCldKTsKKworICAgICAgICAvLyBGSVhNRSgyMjIwMTgpOiBDaGVjayBlcnJvci4K
KyAgICAgICAgbV9zb3VyY2VTZWNyZXRUb2tlbi5yZWFkeVRva2VuID0gW21fc291cmNlU2VjcmV0
VG9rZW4ud2FpdGluZ1Rva2VuIGFjdGl2YXRlVG9rZW5XaXRoU2VydmVyUmVzcG9uc2U6c2VydmVy
UmVzcG9uc2UuZ2V0KCkgZXJyb3I6bnVsbHB0cl07CisgICAgICAgIGlmICghbV9zb3VyY2VTZWNy
ZXRUb2tlbi5yZWFkeVRva2VuKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAg
ICB9CisKKyAgICBTb3VyY2VVbmxpbmthYmxlVG9rZW4gdG9rZW47CisgICAgdG9rZW4udG9rZW5C
YXNlNjRVUkwgPSBXVEY6OmJhc2U2NFVSTEVuY29kZShbbV9zb3VyY2VTZWNyZXRUb2tlbi5yZWFk
eVRva2VuIHRva2VuQ29udGVudF0uYnl0ZXMsIFttX3NvdXJjZVNlY3JldFRva2VuLnJlYWR5VG9r
ZW4gdG9rZW5Db250ZW50XS5sZW5ndGgpOworICAgIHRva2VuLmtleUlEQmFzZTY0VVJMID0gV1RG
OjpiYXNlNjRVUkxFbmNvZGUoW21fc291cmNlU2VjcmV0VG9rZW4ucmVhZHlUb2tlbiBrZXlJZF0u
Ynl0ZXMsIFttX3NvdXJjZVNlY3JldFRva2VuLnJlYWR5VG9rZW4ga2V5SWRdLmxlbmd0aCk7Cisg
ICAgdG9rZW4uc2lnbmF0dXJlQmFzZTY0VVJMID0gV1RGOjpiYXNlNjRVUkxFbmNvZGUoW21fc291
cmNlU2VjcmV0VG9rZW4ucmVhZHlUb2tlbiBzaWduYXR1cmVdLmJ5dGVzLCBbbV9zb3VyY2VTZWNy
ZXRUb2tlbi5yZWFkeVRva2VuIHNpZ25hdHVyZV0ubGVuZ3RoKTsKKworICAgIHJldHVybiB0b2tl
bjsKKyNlbHNlCisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyNlbmRpZiAvLyBIQVZFKFJTQV9C
U1NBKQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
ci5jcHAKaW5kZXggNzI5YmJiNzY4ODljYTZiMmI3NDZhNTUyNzExNzE3YzI4NjYxZmUwMS4uYWU2
ZTQwZjI2NzJkNGE0MTQ5MzJlYjRhMGQ4MTc2MjBkOWQ1MmE0YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VyLmNwcApAQCAtMTU3LDEyICsxNTcsMTIgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXI6OmdldFRva2VuUHVibGljS2V5KFByaXZhdGVDbGlja01lYXN1cmVtZW50
JiYKICAgICAgICAgfQogCiAgICAgICAgIC8vIEZJWE1FOiBSZWNlaXZlIGFuZCBleHRyYSB0aGUg
c2VydmVyIHB1YmxpYyBrZXksIHJkYXI6Ly83MzU4MjAzMi4KLSAgICAgICAgZ2V0U2lnbmVkVW5s
aW5rYWJsZVRva2VuKFdURk1vdmUoYXR0cmlidXRpb24pKTsKKyAgICAgICAgZ2V0U2lnbmVkU2Vj
cmV0VG9rZW4oV1RGTW92ZShhdHRyaWJ1dGlvbiksIGVtcHR5U3RyaW5nKCkpOwogICAgIH0pOwog
CiB9CiAKLXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpnZXRTaWduZWRVbmxp
bmthYmxlVG9rZW4oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBhdHRyaWJ1dGlvbikKK3ZvaWQg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpnZXRTaWduZWRTZWNyZXRUb2tlbihQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCYmIGF0dHJpYnV0aW9uLCBjb25zdCBTdHJpbmcmIHRva2VuUHVi
bGljS2V5QmFzZTY0VVJMKQogewogICAgIGlmICghZmVhdHVyZUVuYWJsZWQoKSkKICAgICAgICAg
cmV0dXJuOwpAQCAtMTc4LDIxICsxNzgsMjEgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXI6OmdldFNpZ25lZFVubGlua2FibGVUb2tlbihQcml2YXRlQ2xpY2tNZWFzdXIKICAg
ICBpZiAodG9rZW5TaWduYXR1cmVVUkwuaXNFbXB0eSgpIHx8ICF0b2tlblNpZ25hdHVyZVVSTC5p
c1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gbG9hZFBhcmFtZXRlcnMgPSBn
ZW5lcmF0ZU5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzRm9ySHR0cFBvc3QoV1RGTW92ZSh0
b2tlblNpZ25hdHVyZVVSTCksIGF0dHJpYnV0aW9uLnRva2VuU2lnbmF0dXJlSlNPTigpLCBwY21E
YXRhQ2FycmllZCk7CisgICAgYXV0byBsb2FkUGFyYW1ldGVycyA9IGdlbmVyYXRlTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnNGb3JIdHRwUG9zdChXVEZNb3ZlKHRva2VuU2lnbmF0dXJlVVJM
KSwgYXR0cmlidXRpb24udG9rZW5TaWduYXR1cmVKU09OKHRva2VuUHVibGljS2V5QmFzZTY0VVJM
KSwgcGNtRGF0YUNhcnJpZWQpOwogCi0gICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCwgIkFib3V0IHRvIGZpcmUgYSB1bmxpbmthYmxlIHRva2VuIHNpZ25pbmcgcmVx
dWVzdC4iKTsKLSAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZSht
X3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3Nh
Z2VMZXZlbDo6TG9nLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIEFib3V0IHRvIGZpcmUg
YSB1bmxpbmthYmxlIHRva2VuIHNpZ25pbmcgcmVxdWVzdC4iX3MpOworICAgIFJFTEVBU0VfTE9H
X0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJBYm91dCB0byBmaXJlIGEgc2VjcmV0IHRv
a2VuIHNpZ25pbmcgcmVxdWVzdC4iKTsKKyAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RD
b25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6TG9nLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRd
IEFib3V0IHRvIGZpcmUgYSBzZWNyZXQgdG9rZW4gc2lnbmluZyByZXF1ZXN0LiJfcyk7CiAKICAg
ICBtX3BpbmdMb2FkRnVuY3Rpb24oV1RGTW92ZShsb2FkUGFyYW1ldGVycyksIFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKCp0aGlzKV0oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3Is
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKSB7CiAgICAgICAgIGlm
ICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKCFlcnJvci5p
c051bGwoKSkgewotICAgICAgICAgICAgd2Vha1RoaXMtPm1fbmV0d29ya1Byb2Nlc3MtPmJyb2Fk
Y2FzdENvbnNvbGVNZXNzYWdlKHdlYWtUaGlzLT5tX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1ha2VTdHJpbmco
IltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBSZWNlaXZlZCBlcnJvcjogJyJfcywgZXJyb3Iu
bG9jYWxpemVkRGVzY3JpcHRpb24oKSwgIicgZm9yIHVubGlua2FibGUgdG9rZW4gc2lnbmluZyBy
ZXF1ZXN0LiJfcykpOworICAgICAgICAgICAgd2Vha1RoaXMtPm1fbmV0d29ya1Byb2Nlc3MtPmJy
b2FkY2FzdENvbnNvbGVNZXNzYWdlKHdlYWtUaGlzLT5tX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJj
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1ha2VTdHJp
bmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBSZWNlaXZlZCBlcnJvcjogJyJfcywgZXJy
b3IubG9jYWxpemVkRGVzY3JpcHRpb24oKSwgIicgZm9yIHNlY3JldCB0b2tlbiBzaWduaW5nIHJl
cXVlc3QuIl9zKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCi0g
ICAgICAgIC8vIEZJWE1FOiBSZWNlaXZlIGFuZCBzdG9yZSB0aGUgc2lnbmVkIHVubGlua2FibGUg
dG9rZW4sIHJkYXI6Ly83MzU4MjAzMi4KKyAgICAgICAgLy8gRklYTUU6IFJlY2VpdmUgYW5kIHN0
b3JlIHRoZSBzaWduZWQgc2VjcmV0IHRva2VuLCByZGFyOi8vNzM1ODIwMzIuCiAgICAgfSk7CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oCmluZGV4IDU3M2YzM2NlMmMzNTYzOGM2MGRlZWE3
ZTRmOWE3OTY5MWNmMGM4NDIuLjBiYWY5YjQwNmYxMjllNDNjZDIxZWZhMjQxYTM2OWVhZjc2YWRi
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAgICAgdm9pZCBnZXRUb2tlblB1YmxpY0tleShQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCYmKTsKLSAgICB2b2lkIGdldFNpZ25lZFVubGlua2FibGVUb2tlbihQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCYmKTsKKyAgICB2b2lkIGdldFNpZ25lZFNlY3JldFRva2VuKFByaXZhdGVD
bGlja01lYXN1cmVtZW50JiYsIGNvbnN0IFN0cmluZyYgdG9rZW5QdWJsaWNLZXlCYXNlNjRVUkwp
OwogICAgIHZvaWQgY2xlYXJTZW50QXR0cmlidXRpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQm
Jik7CiAgICAgdm9pZCBhdHRyaWJ1dGUoY29uc3QgU291cmNlU2l0ZSYsIGNvbnN0IEF0dHJpYnV0
ZU9uU2l0ZSYsIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJik7CiAgICAgdm9pZCBmaXJlQ29udmVy
c2lvblJlcXVlc3QoY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3NGU2ZTdmOTVjYmFkNDg2
MGM1MTFmY2Y0N2QyODY2Y2I5NzgwOTQ2Li4wNjM1OGJlODFiZGRjYzY4Y2I2ZDUzMTMyZTU3NGNk
ODRmZjNmYjI1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQgY29y
cmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzczNTgx
NDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2lsYW5kZXIuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgIEFkZCB0ZXN0cy4KKwogMjAy
MS0wMi0xOSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFBD
TTogUmVxdWVzdCBzZXJ2ZXIgcHVibGljIGtleSB0byBnZW5lcmF0ZSBzZWNyZXQgdG9rZW4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQ
SS54Y2NvbmZpZyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktp
dEFQSS54Y2NvbmZpZwppbmRleCA3MGJlOGFhNzcwNDNiNzQxNzdkNDA2ZDAzYzMxNDk2MzhhOTlm
MWU5Li5kM2E0NGE4YWM1N2QwNzYwZDNjNTJkMGVkMTg5OTA1YjcyNWRiMThiIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25m
aWcKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJ
LnhjY29uZmlnCkBAIC01NSw2ICs1NSwxMiBAQCBXS19QREZLSVRfTERGTEFHU19tYWNvc3ggPSAt
ZnJhbWV3b3JrIFBERktpdDsKIFdLX1BERktJVF9MREZMQUdTX2lwaG9uZW9zID0gLWZyYW1ld29y
ayBQREZLaXQ7CiBXS19QREZLSVRfTERGTEFHU19pcGhvbmVzaW11bGF0b3IgPSAtZnJhbWV3b3Jr
IFBERktpdDsKIAorV0tfU1lTVEVNX0xERkxBR1MgPSAkKFdLX1NZU1RFTV9MREZMQUdTXyQoV0tf
UExBVEZPUk1fTkFNRSkpOworV0tfU1lTVEVNX0xERkxBR1NfbWFjb3N4ID0gLWZyYW1ld29yayBT
eXN0ZW07CitXS19TWVNURU1fTERGTEFHU19pcGhvbmVvcyA9ICQoV0tfU1lTVEVNX0xERkxBR1Nf
JChXS19JT1NfMTUpKTsKK1dLX1NZU1RFTV9MREZMQUdTX2lwaG9uZXNpbXVsYXRvciA9ICQoV0tf
U1lTVEVNX0xERkxBR1NfJChXS19JT1NfMTUpKTsKK1dLX1NZU1RFTV9MREZMQUdTX0lPU19TSU5D
RV8xNSA9IC1mcmFtZXdvcmsgU3lzdGVtOworCiBXS19ISURfTERGTEFHUyA9ICQoV0tfSElEX0xE
RkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CiBXS19ISURfTERGTEFHU19tYWNvc3ggPSAkKFdL
X0hJRF9MREZMQUdTJChXS19NQUNPU18xMDE1KSk7CiBXS19ISURfTERGTEFHU19NQUNPU19TSU5D
RV8xMDE1ID0gLWZyYW1ld29yayBISUQ7CkBAIC03MSw3ICs3Nyw3IEBAIFdLX09QRU5HTF9MREZM
QUdTX2FwcGxldHZvcyA9ICQoV0tfT1BFTkdMX0xERkxBR1NfaXBob25lb3MpOwogV0tfT1BFTkdM
X0xERkxBR1NfYXBwbGV0dnNpbXVsYXRvciA9ICQoV0tfT1BFTkdMX0xERkxBR1NfaXBob25lc2lt
dWxhdG9yKTsKIFdLX09QRU5HTF9MREZMQUdTX21hY29zeCA9IC1mcmFtZXdvcmsgT3BlbkdMOwog
Ci1PVEhFUl9MREZMQUdTID0gJChpbmhlcml0ZWQpICQoVU5FWFBPUlRFRF9TWU1CT0xfTERGTEFH
UykgLWxndGVzdCAtZm9yY2VfbG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvbGliVGVzdFdlYktp
dEFQSS5hIC1mcmFtZXdvcmsgSmF2YVNjcmlwdENvcmUgLWZyYW1ld29yayBXZWJLaXQgLWxXZWJD
b3JlVGVzdFN1cHBvcnQgJChXS19BVVRIS0lUX0xERkxBR1MpIC1mcmFtZXdvcmsgTmV0d29yayAk
KFdLX1BERktJVF9MREZMQUdTKSAkKFdLX0hJRF9MREZMQUdTKSAkKFdLX09QRU5HTF9MREZMQUdT
KSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkpOworT1RIRVJfTERG
TEFHUyA9ICQoaW5oZXJpdGVkKSAkKFVORVhQT1JURURfU1lNQk9MX0xERkxBR1MpIC1sZ3Rlc3Qg
LWZvcmNlX2xvYWQgJChCVUlMVF9QUk9EVUNUU19ESVIpL2xpYlRlc3RXZWJLaXRBUEkuYSAtZnJh
bWV3b3JrIEphdmFTY3JpcHRDb3JlIC1mcmFtZXdvcmsgV2ViS2l0IC1sV2ViQ29yZVRlc3RTdXBw
b3J0ICQoV0tfQVVUSEtJVF9MREZMQUdTKSAtZnJhbWV3b3JrIE5ldHdvcmsgJChXS19TWVNURU1f
TERGTEFHUykgJChXS19QREZLSVRfTERGTEFHUykgJChXS19ISURfTERGTEFHUykgJChXS19PUEVO
R0xfTERGTEFHUykgJChPVEhFUl9MREZMQUdTX1BMQVRGT1JNXyQoV0tfQ09DT0FfVE9VQ0gpKTsK
IE9USEVSX0xERkxBR1NfUExBVEZPUk1fID0gLWZyYW1ld29yayBDb2NvYSAtZnJhbWV3b3JrIENh
cmJvbjsKIAogLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCBiZSBidWlsdCBvbiBpT1MuIEluc3Rl
YWQgd2Ugc2hvdWxkIGNyZWF0ZSBhbmQgdXNlIGEgVGVzdFdlYktpdEFQSSBhcHBsaWNhdGlvbi4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2MyZjA2OGUxZDA4ZjkwYWNiMWVjM2YwZGNmMzFj
ZmNiZmZkNjg5Zi4uNzljYWIyM2Q5ODRhM2EzMDhjOTA3MDQ3ODQ2NzNjYjRjNjY4NjY1YyAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ0MSw2ICs0NDEsNyBAQAogCQk1N0M2MjQ1MDIzNDZD
MjFFMDAzODNGRTcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24uaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0M2MjQ0
RjIzNDZDMUVDMDAzODNGRTcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24uaHRt
bCAqLzsgfTsKIAkJNTdFREZDNUMyNDVBMUEzRjAwOTU5NTIxIC8qIHdlYi1hdXRoZW50aWNhdGlv
bi1tYWtlLWNyZWRlbnRpYWwtbGEtbm8tbW9jay5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RURGQzVCMjQ1QTE4RjUwMDk1OTUyMSAv
KiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhLW5vLW1vY2suaHRtbCAqLzsg
fTsKIAkJNTdFREZDNjAyNDVBMjk5QzAwOTU5NTIxIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQt
YXNzZXJ0aW9uLWxhLW5vLW1vY2suaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0VERkM1RjI0NUEyNzk5MDA5NTk1MjEgLyogd2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbGEtbm8tbW9jay5odG1sICovOyB9OworCQk1N0Yx
QzkxMTI1RERENTE5MDBFOEY2RUEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RjFDOTEwMjVE
REQ1MTkwMEU4RjZFQSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tICovOyB9Owog
CQk1N0Y0QUFBMDIwOEZBRUYwMDBBNjhFOUUgLyogU1NMS2V5R2VuZXJhdG9yLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGNEFBOUYyMDhGQTgzRDAw
QTY4RTlFIC8qIFNTTEtleUdlbmVyYXRvci5tbSAqLzsgfTsKIAkJNTdGNTZBNUMxQzdGOENDMTAw
RjMxRDdFIC8qIElzTmF2aWdhdGlvbkFjdGlvblRydXN0ZWQuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0Y1NkE1QjFDN0Y4QTQwMDBG
MzFEN0UgLyogSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5odG1sICovOyB9OwogCQk1QzAxNjBD
MTIxQTEzMjQ2MDA3N0ZBMzIgLyogSklURW5hYmxlZC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMDE2MEMwMjFBMTMyMzIwMDc3RkEzMiAvKiBKSVRF
bmFibGVkLm1tICovOyB9OwpAQCAtMjIzMyw2ICsyMjM0LDcgQEAKIAkJNTdFREZDNUIyNDVBMThG
NTAwOTU5NTIxIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEtbm8tbW9j
ay5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEt
bm8tbW9jay5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdFREZDNUYyNDVB
Mjc5OTAwOTU5NTIxIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWxhLW5vLW1v
Y2suaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQuaHRtbDsgcGF0aCA9ICJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1sYS1u
by1tb2NrLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0YxMEQ5MjFDN0U3
QjM4MDBFQ0RGMzAgLyogSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IElzTmF2aWdhdGlvbkFjdGlvblRydXN0ZWQubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3RjFDOTEwMjVEREQ1MTkwMEU4RjZFQSAv
KiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTdGNEFBOUYyMDhGQTgzRDAwQTY4RTlFIC8qIFNTTEtleUdlbmVyYXRvci5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFNTTEtleUdlbmVyYXRvci5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTdGNTZBNUIxQzdGOEE0MDAwRjMxRDdFIC8qIElzTmF2aWdhdGlvbkFjdGlv
blRydXN0ZWQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IElzTmF2aWdhdGlvbkFj
dGlvblRydXN0ZWQuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMwMTYwQzAy
MUExMzIzMjAwNzdGQTMyIC8qIEpJVEVuYWJsZWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBKSVRFbmFibGVkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNDcxMSw2ICs0NzEzLDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTA3MTFERjUxMjI2
QTk1RkIwMDNERDJGNyAvKiBBVkZvdW5kYXRpb25Tb2Z0TGlua1Rlc3QubW0gKi8sCiAJCQkJNzUx
QjA1RDUxRjhFQUMxQTAwMjhBMDlFIC8qIERhdGFiYXNlVHJhY2tlclRlc3QubW0gKi8sCisJCQkJ
NTdGMUM5MTAyNURERDUxOTAwRThGNkVBIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2Eu
bW0gKi8sCiAJCQkJNTc2OUM1MEExRDlCMDAwMTAwMDg0N0ZCIC8qIFNlcmlhbGl6ZWRDcnlwdG9L
ZXlXcmFwLm1tICovLAogCQkJCUExNzk5MTg2MUUxQzk5NEUwMEE1MDVFRCAvKiBTaGFyZWRCdWZm
ZXIubW0gKi8sCiAJCQkJQ0Q4OUQwMzgxQzRFREIyQTAwMDQwQTA0IC8qIFdlYkNvcmVOU1VSTFNl
c3Npb24ubW0gKi8sCkBAIC01NDg2LDYgKzU0ODksNyBAQAogCQkJCUExRUMxMTg4MUY0MjU0MTIw
MEQwMTQ2RSAvKiBQcmV2aWV3Q29udmVydGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3
RjBDMUE0MTFBRTYwMDQ0N0M0QyAvKiBQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlD
YWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2QjBBMDdGNzIxRkE5QzJCMDBENTczOTEg
LyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTdGMUM5
MTEyNURERDUxOTAwRThGNkVBIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gaW4g
U291cmNlcyAqLywKIAkJCQk0NjQ3QjEyNjFFQkEzQjg1MDA0MUQ3RUYgLyogUHJvY2Vzc0RpZFRl
cm1pbmF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTg4MkYwMzIxMDEwQzBEMDAyRkYyODgg
LyogUHJvY2Vzc1ByZVdhcm1pbmcubW0gaW4gU291cmNlcyAqLywKIAkJCQlDREE0NDM4RTIxRjdB
NDc3MDAzNzk0ODkgLyogUHJvY2Vzc1N1c3BlbmRNZWRpYUJ1ZmZlcmluZy5tbSBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKaW5kZXggYjczMjYzMzQ0ZmUxZjZlOWViMGU0
MmEyNmU3MmM0ZmIyZjM5MGYzNi4uMjYwMzAzN2QwMjhiOTk1YzgyZmViYmMzYWE3YzdkYmIyYTQw
NTAyZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8K
IAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRlc3QuaCIKIAogI2luY2x1ZGUgPFdl
YkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaD4KICNpbmNsdWRlIDx3dGYvVVJMLmg+CkBA
IC0zMDAsNCArMzAxLDIzIEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRT
b3VyY2VOb25jZSkKICAgICBBU1NFUlRfRkFMU0UoZXBoZW1lcmFsTm9uY2UuaXNWYWxpZCgpKTsK
IH0KIAorVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZEJsaW5kZWRTZWNyZXQp
Cit7CisgICAgY29uc3QgY2hhciBzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkxbXSA9ICJNSUlDSWpB
TkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXpiMWRUaHJ0WXdWaDQ2U2pJbmVn
S2hBcXBiSndtMVhuVEJDdnliU0s4ems1M1IwQW0xaEczM0FWRjVKMWxxWWYzNndwNjYzR2FzY2xI
dHF6dnhGWkl2REExRFVTSDRhWnpfZkRIQ1RUeEVlSlZQT1JTM3pOTjJVald3YnRud3NoNEJtRFRp
LXpfY0RuMExBejJKdVp5S2x5RnQ1R2dWTEFRdkw5SDNWTEhVOV9YSE5LLXVib3lYZmNIUlR0ckRu
cHUzYzZ3dlg1ZGQtQUpvTG1JUVRaQkVKZlZreEJHem5rMXFLSGpjNm5BU0FpcktGX3dKQ251d0FL
OEM2QkFjak5jd1VXQ2VLcDBZRUN6Q1hVLS1KWGQyT0VVLVFoeFBDNjdmYWlET2gzVjB2bGZxWkx0
cmxibmFuVUNLcnZodzdHYUdPR1lvdElyblp0dU5meEMxNGRfWE5WZDFGUzhuSGpSVEhuRWd3X2pu
bFNzc2ZnU3R6MHVKdGNta2Znb0pCdk9FNG1JUnBpN2lTbFJmWE5rS3NXWDFKLWd3Y25DVm81dTB1
SkVXNlg2Tnl2RUdZSjh3NUJQZndzUXVLOXktNFo3aWt0OUlPdWNFSFk3VGhEbWk5VE5OaEhCVmow
R3U0d0dvU2pxM2E2dkw1TjEwWlNIWG9xMVhnZkdQcm1IaGhMOTBjanZXb25veU9Yc1VxbFhFelRq
RDJXOTg5N1EtTXg5QlVOckdRUHFtSXg4RjVNd3hXY09yeWU4V1JwNFE4OG4yWVNVblY3QzhheWxk
M3YxRmg3TjVqZVNxZVZtdERWUllUbjJzVmZOcWdYcnpnZGlnSmNRUjh2RkVOdTZuekZQd3NyWFBN
YUNpTFVuWk5VbVExWlNMUWVReWhZWHhIcVJKcm51Q0RXWExrQ0F3RUFBUSI7CisKKyAgICBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCBwY207CisgICAgYXV0byBzb3VyY2VTZWNyZXRUb2tlbiA9IHBj
bS50b2tlblNpZ25hdHVyZUpTT04oc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKTsKKyAgICBFWFBF
Q1RfRVEoc291cmNlU2VjcmV0VG9rZW4tPmFzT2JqZWN0KCktPnNpemUoKSwgMHVsKTsKKworICAg
IGF1dG8gZXBoZW1lcmFsTm9uY2UgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFs
U291cmNlTm9uY2UgeyAiQUJDREVGYWJjZGVmMDEyMzQ1Njc4OSJfcyB9OworICAgIEVYUEVDVF9U
UlVFKGVwaGVtZXJhbE5vbmNlLmlzVmFsaWQoKSk7CisgICAgcGNtLnNldEVwaGVtZXJhbFNvdXJj
ZU5vbmNlKFdURk1vdmUoZXBoZW1lcmFsTm9uY2UpKTsKKworICAgIHNvdXJjZVNlY3JldFRva2Vu
ID0gcGNtLnRva2VuU2lnbmF0dXJlSlNPTihzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkwpOworICAg
IEVYUEVDVF9FUShzb3VyY2VTZWNyZXRUb2tlbi0+YXNPYmplY3QoKS0+c2l6ZSgpLCA0dWwpOwor
CisgICAgYXV0byBwZXJzaXN0ZW50VG9rZW4gPSBwY20uY2FsY3VsYXRlU291cmNlVW5saW5rYWJs
ZVRva2VuKGVtcHR5U3RyaW5nKCkpOworICAgIEVYUEVDVF9GQUxTRShwZXJzaXN0ZW50VG9rZW4p
OworfQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRD
b2NvYS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudENvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlNWQ1ZmI2ZDE4MjE3NTk4MDcw
NTg3MjhhZmI4NWRjYjAyYmJmMTYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbQpA
QCAtMCwwICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJUZXN0LmgiCisKKyNpZiBIQVZFKFJTQV9CU1NBKQorCisjaW5jbHVkZSA8U2VjdXJpdHkv
U2VjS2V5UHJpdi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQu
aD4KKworZXh0ZXJuICJDIiB7CisjaW5jbHVkZSA8Y29yZWNyeXB0by9jY19wcml2Lmg+CisjaW5j
bHVkZSA8Y29yZWNyeXB0by9jY3JuZy5oPgorI2luY2x1ZGUgPGNvcmVjcnlwdG8vY2Nyc2EuaD4K
KyNpbmNsdWRlIDxjb3JlY3J5cHRvL2NjcnNhYnNzYS5oPgorfQorCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKFByaXZhdGVDbGlj
a01lYXN1cmVtZW50LCBWYWxpZEJsaW5kZWRTZWNyZXQpCit7CisgICAgYXV0byBlcGhlbWVyYWxO
b25jZSA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZSB7ICJB
QkNERUZhYmNkZWYwMTIzNDU2Nzg5Il9zIH07CisgICAgRVhQRUNUX1RSVUUoZXBoZW1lcmFsTm9u
Y2UuaXNWYWxpZCgpKTsKKworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IHBjbTsKKyAgICBw
Y20uc2V0RXBoZW1lcmFsU291cmNlTm9uY2UoV1RGTW92ZShlcGhlbWVyYWxOb25jZSkpOworCisg
ICAgLy8gR2VuZXJhdGUgdGhlIHNlcnZlciBrZXkgcGFpci4KKyAgICBzaXplX3QgbW9kdWx1c05C
aXRzID0gNDA5NjsKKyAgICBpbnQgZXJyb3IgPSAwOworCisgICAgc3RydWN0IGNjcm5nX3N0YXRl
KiBybmcgPSBjY3JuZygmZXJyb3IpOworICAgIEVYUEVDVF9FUShlcnJvciwgQ0NFUlJfT0spOwor
CisgICAgY29uc3QgdWludDhfdCBlW10gPSB7IDB4MSwgMHgwMCwgMHgwMSB9OworICAgIGNjcnNh
X2Z1bGxfY3R4X2RlY2woY2NuX3NpemVvZihtb2R1bHVzTkJpdHMpLCByc2FQcml2YXRlS2V5KTsK
KyAgICBlcnJvciA9IGNjcnNhX2dlbmVyYXRlX2tleShtb2R1bHVzTkJpdHMsIHJzYVByaXZhdGVL
ZXksIHNpemVvZihlKSwgZSwgcm5nKTsKKyAgICBFWFBFQ1RfRVEoZXJyb3IsIENDRVJSX09LKTsK
KworICAgIGNjcnNhX3B1Yl9jdHhfdCByc2FQdWJsaWNLZXkgPSBjY3JzYV9jdHhfcHVibGljKHJz
YVByaXZhdGVLZXkpOworICAgIHNpemVfdCBtb2R1bHVzTkJ5dGVzID0gY2NfY2VpbGluZyhjY3Jz
YV9wdWJrZXlsZW5ndGgocnNhUHVibGljS2V5KSwgOCk7CisKKyAgICBjb25zdCBzdHJ1Y3QgY2Ny
c2Fic3NhX2NpcGhlcnN1aXRlICpjaXBoZXJzdWl0ZSA9ICZjY3JzYWJzc2FfY2lwaGVyc3VpdGVf
cnNhNDA5Nl9zaGEzODQ7CisKKyAgICBzaXplX3QgZXhwb3J0U2l6ZSA9IGNjZGVyX2VuY29kZV9y
c2FfcHViX3NpemUocnNhUHVibGljS2V5KTsKKyAgICBhdXRvIHB1YmxpY0tleSA9IGFkb3B0TlMo
W1tOU011dGFibGVEYXRhIGFsbG9jXSBpbml0V2l0aExlbmd0aDpleHBvcnRTaXplXSk7CisgICAg
Y2NkZXJfZW5jb2RlX3JzYV9wdWIocnNhUHVibGljS2V5LCBzdGF0aWNfY2FzdDx1aW50OF90Kj4o
W3B1YmxpY0tleSBtdXRhYmxlQnl0ZXNdKSwgc3RhdGljX2Nhc3Q8dWludDhfdCo+KFtwdWJsaWNL
ZXkgbXV0YWJsZUJ5dGVzXSkgKyBbcHVibGljS2V5IGxlbmd0aF0pOworCisgICAgYXV0byBzZWNL
ZXkgPSBhZG9wdENGKFNlY0tleUNyZWF0ZVdpdGhEYXRhKChfX2JyaWRnZSBDRkRhdGFSZWYpcHVi
bGljS2V5LmdldCgpLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKUB7CisgICAgICAgIChfX2Jy
aWRnZSBpZClrU2VjQXR0cktleVR5cGU6IChfX2JyaWRnZSBpZClrU2VjQXR0cktleVR5cGVSU0Es
CisgICAgICAgIChfX2JyaWRnZSBpZClrU2VjQXR0cktleUNsYXNzOiAoX19icmlkZ2UgaWQpa1Nl
Y0F0dHJLZXlDbGFzc1B1YmxpYworICAgIH0sIG5pbCkpOworICAgIEVYUEVDVF9OT1RfTlVMTChz
ZWNLZXkpOworCisgICAgYXV0byBzcGtpRGF0YSA9IGFkb3B0Q0YoU2VjS2V5Q29weVN1YmplY3RQ
dWJsaWNLZXlJbmZvKHNlY0tleS5nZXQoKSkpOworICAgIGF1dG8gKm5zU3BraURhdGEgPSAoX19i
cmlkZ2UgTlNEYXRhICopc3BraURhdGEuZ2V0KCk7CisKKyAgICAvLyBDb250aW51ZSB0aGUgdGVz
dC4KKyAgICBhdXRvIHNvdXJjZVNlY3JldFRva2VuID0gcGNtLnRva2VuU2lnbmF0dXJlSlNPTihX
VEY6OmJhc2U2NFVSTEVuY29kZShuc1Nwa2lEYXRhLmJ5dGVzLCBuc1Nwa2lEYXRhLmxlbmd0aCkp
OworICAgIEVYUEVDVF9FUShzb3VyY2VTZWNyZXRUb2tlbi0+YXNPYmplY3QoKS0+c2l6ZSgpLCA0
dWwpOworICAgIEVYUEVDVF9TVFJFUShzb3VyY2VTZWNyZXRUb2tlbi0+Z2V0U3RyaW5nKCJzb3Vy
Y2VfZW5nYWdlbWVudF90eXBlIl9zKS51dGY4KCkuZGF0YSgpLCAiY2xpY2siKTsKKyAgICBFWFBF
Q1RfU1RSRVEoc291cmNlU2VjcmV0VG9rZW4tPmdldFN0cmluZygic291cmNlX25vbmNlIl9zKS51
dGY4KCkuZGF0YSgpLCAiQUJDREVGYWJjZGVmMDEyMzQ1Njc4OSIpOworICAgIEVYUEVDVF9GQUxT
RShzb3VyY2VTZWNyZXRUb2tlbi0+Z2V0U3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIl9zKS5p
c0VtcHR5KCkpOworICAgIEVYUEVDVF9FUShzb3VyY2VTZWNyZXRUb2tlbi0+Z2V0SW50ZWdlcigi
dmVyc2lvbiJfcyksIDIpOworCisgICAgLy8gR2VuZXJhdGUgdGhlIHNpZ25hdHVyZS4KKyAgICBW
ZWN0b3I8dWludDhfdD4gYmxpbmRlZE1lc3NhZ2U7CisgICAgYmFzZTY0VVJMRGVjb2RlKHNvdXJj
ZVNlY3JldFRva2VuLT5nZXRTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW4iX3MpLCBibGluZGVk
TWVzc2FnZSk7CisKKyAgICBhdXRvIGJsaW5kZWRTaWduYXR1cmUgPSBhZG9wdE5TKFtbTlNNdXRh
YmxlRGF0YSBhbGxvY10gaW5pdFdpdGhMZW5ndGg6IG1vZHVsdXNOQnl0ZXNdKTsKKyAgICBjY3Jz
YWJzc2Ffc2lnbl9ibGluZGVkX21lc3NhZ2UoY2lwaGVyc3VpdGUsIHJzYVByaXZhdGVLZXksIGJs
aW5kZWRNZXNzYWdlLmRhdGEoKSwgYmxpbmRlZE1lc3NhZ2Uuc2l6ZSgpLCBzdGF0aWNfY2FzdDx1
aW50OF90ICo+KFtibGluZGVkU2lnbmF0dXJlIG11dGFibGVCeXRlc10pLCBbYmxpbmRlZFNpZ25h
dHVyZSBsZW5ndGhdLCBybmcpOworCisgICAgLy8gQ29udGludWUgdGhlIHRlc3QuCisgICAgYXV0
byBwZXJzaXN0ZW50VG9rZW4gPSBwY20uY2FsY3VsYXRlU291cmNlVW5saW5rYWJsZVRva2VuKFdU
Rjo6YmFzZTY0VVJMRW5jb2RlKFtibGluZGVkU2lnbmF0dXJlIGJ5dGVzXSwgW2JsaW5kZWRTaWdu
YXR1cmUgbGVuZ3RoXSkpOworICAgIEVYUEVDVF9UUlVFKHBlcnNpc3RlbnRUb2tlbik7CisgICAg
RVhQRUNUX0ZBTFNFKHBlcnNpc3RlbnRUb2tlbi0+dG9rZW5CYXNlNjRVUkwuaXNFbXB0eSgpKTsK
KyAgICBFWFBFQ1RfRkFMU0UocGVyc2lzdGVudFRva2VuLT5rZXlJREJhc2U2NFVSTC5pc0VtcHR5
KCkpOworICAgIEVYUEVDVF9GQUxTRShwZXJzaXN0ZW50VG9rZW4tPnNpZ25hdHVyZUJhc2U2NFVS
TC5pc0VtcHR5KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRp
ZiAvLyBFSEFWRShSU0FfQlNTQSkK
</data>
<flag name="commit-queue"
          id="439653"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420945</attachid>
            <date>2021-02-19 02:29:13 -0800</date>
            <delta_ts>2021-02-19 02:38:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222019-20210219022913.patch</filename>
            <type>text/plain</type>
            <size>50158</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJmZDcxYjc4YzVmNThiMjMwZjYwOTg4
N2E1MDM4ZjRmYjk5NTdkZjIuLjdkMzYxMzZlYjI0YmRiYTc3NTc2ODlmZjM2YTdjNGY0NzRmNTUz
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5f
dGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQg
Y29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcz
NTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2lsYW5kZXIuCisKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1IYXZlLmg6CisgICAgICAgIEFkZHMgYSBjb21waWxlIHRpbWUgZmxhZyBm
b3IgUlNBQlNTQS4KKwogMjAyMS0wMi0xOCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIGV4cGVyaW1lbnRhbCBzdXBwb3J0IGZvciBDU1MgQ29sb3IgNSBSZWxh
dGl2ZSBDb2xvciBTeW50YXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3Njk4MGM0NGM5ZmIwNjAzZTAyZWY3NGY0
NDk1OTU1NDYyY2ZlMWYwLi45YmNhNDE5Y2MwNmVkYjc0ZmQwMmNkMDY1ZGI0ZjRhNzRhZDQyZWNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxq
aWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tl
biBhbmQgY29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzczNTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2lsYW5kZXIuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBBUEkgdGVzdHMuCisKKyAgICAgICAgVGhpcyBwYXRjaCB1dGlsaXpl
cyBSU0FCU1NBIHRvIGdlbmVyYXRlIHNlY3JldCB0b2tlbiBmb3IgUENNIGZyYXVkIHByZXZlbnRp
b24uCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnOgorICAgICAg
ICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICBQYXBlcndvcmsgdG8gbGluayBDcnlwdG9LaXRDQnJpZGdpbmcu
CisKKyAgICAgICAgKiBsb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNl
Ojppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpzZXRFcGhlbWVyYWxTb3VyY2VOb25jZSk6CisgICAgICAgICogbG9hZGVyL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6YXR0cmlidXRlT25TaXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjplcGhlbWVyYWxTb3VyY2VOb25jZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y2xlYXJFcGhlbWVyYWxTb3VyY2VOb25j
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFs
U291cmNlTm9uY2U6OkVwaGVtZXJhbFNvdXJjZU5vbmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNW
YWxpZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6c2V0RXBoZW1lcmFsU291cmNlTm9uY2UpOiBEZWxldGVkLgorICAgICAgICBHcm91
cHMgZnVuY3Rpb25hbGl0aWVzIGJlaGluZCBIQVZFX1JTQV9CU1NBLgorCisgICAgICAgICogbG9h
ZGVyL2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW06IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmJsaW5kZWRTZWNyZXRKc29uKToK
KyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpjYWxjdWxhdGVQZXJz
aXN0ZW50QmxpbmRlZFRva2VuKToKKyAgICAgICAgSW50cm9kdWNlcyBuZXcgbWV0aG9kcyB0byBn
ZW5lcmF0ZSB0aGUgYmxpbmRlZCBzZWNyZXRzIGFuZCB1bmxpbmthYmxlIHRva2Vucy4KKwogMjAy
MS0wMi0xOSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFBD
TTogUmVxdWVzdCBzZXJ2ZXIgcHVibGljIGtleSB0byBnZW5lcmF0ZSBzZWNyZXQgdG9rZW4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1IYXZlLmgKaW5kZXggMDQ4NmZjZTJjNDE4NmQyZDhiZjI1OTEyNTU5NmU4NjM5Y2Qz
NDUxMS4uZGExNWZkN2RlN2VlNWM4YWFmMDM0OWZmMTAyOGY3MmU1Njk1NGFmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxh
dGZvcm1IYXZlLmgKQEAgLTg4OCwzICs4ODgsOCBAQAogI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDAKICNkZWZpbmUgSEFWRV9TVEFU
SUNfRk9OVF9SRUdJU1RSWSAxCiAjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwKSBcCisgICAgfHwgKFBMQVRGT1JN
KElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTUwMDAwKQorI2Rl
ZmluZSBIQVZFX1JTQV9CU1NBIDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BB
TC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJlZGJjYzljMDM4ODc1ZWFlNDAyY2E1
ZDU3OTU0OGRhMDdjZTc0NmUuLjg4NDkwZTBkOTk3MjdhODc5NjVlYjVjYTBhOGU2MjBiMGE0ZjFk
ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTEzOCw2ICsxMzgsOCBAQAogCQk1NzBBQjhGOTIwQUY2RTNEMDBCOEJFODcgLyog
TlNYUENDb25uZWN0aW9uU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzBBQjhGODIwQUY2RTNEMDBCOEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJ
LmggKi87IH07CiAJCTU3MkExMDc4MjJCNDU2RjUwMEY0MTBDOCAvKiBBdXRoS2l0U1BJLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJBMTA3NzIyQjQ1
NkY1MDBGNDEwQzggLyogQXV0aEtpdFNQSS5oICovOyB9OwogCQk1NzZDQTlENjIyQjg1NEFCMDAz
MDE0M0MgLyogQXBwU1NPU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzZDQTlENTIyQjg1NEFCMDAzMDE0M0MgLyogQXBwU1NPU1BJLmggKi87IH07
CisJCTU3RjFDOTA5MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGMUM5
MDcyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmggKi87IH07
CisJCTU3RjFDOTBBMjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RjFD
OTA4MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbSAqLzsg
fTsKIAkJNTdGRDMxOEEyMkIzNTkzRTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGRDMxODkyMkIzNTkz
RTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLm1tICovOyB9OwogCQk1N0ZEMzE4QjIyQjM1OTg5
MDA4RDBFOEIgLyogQXBwU1NPU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3RkQzMTg4MjJCMzU5MkYwMDhEMEU4QiAvKiBBcHBTU09Tb2Z0
TGluay5oICovOyB9OwogCQk1QzdDNzg3MzIzQUMzRTc3MDA2NUY0N0UgLyogTWFuYWdlZENvbmZp
Z3VyYXRpb25Tb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUM3Qzc4NzEyM0FDM0U3NzAwNjVGNDdFIC8qIE1hbmFnZWRDb25maWd1cmF0aW9u
U29mdExpbmsuaCAqLzsgfTsKQEAgLTM0MSw2ICszNDMsOCBAQAogCQk1NzBBQjhGODIwQUY2RTNE
MDBCOEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TWFBDQ29u
bmVjdGlvblNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJBMTA3NzIyQjQ1
NkY1MDBGNDEwQzggLyogQXV0aEtpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoS2l0U1BJLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NkNBOUQ1MjJCODU0QUIwMDMwMTQzQyAv
KiBBcHBTU09TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwU1NPU1BJLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTU3RjFDOTA3MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJp
ZGdpbmdTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0YxQzkwODI1RENGMENGMDBFOEY2
RUEgLyogQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTdGRDMxODgyMkIzNTkyRjAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcFNTT1NvZnRMaW5rLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU3RkQzMTg5MjJCMzU5M0UwMDhEMEU4QiAvKiBBcHBTU09Tb2Z0
TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFwcFNTT1Nv
ZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzdDNzg3MTIzQUMzRTc3
MDA2NUY0N0UgLyogTWFuYWdlZENvbmZpZ3VyYXRpb25Tb2Z0TGluay5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNYW5hZ2VkQ29uZmlndXJhdGlvblNvZnRMaW5rLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02OTEsNiArNjk1LDggQEAKIAkJCQk1N0ZEMzE4OTIy
QjM1OTNFMDA4RDBFOEIgLyogQXBwU1NPU29mdExpbmsubW0gKi8sCiAJCQkJMDc3RTg3QjAyMjZB
NDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLmggKi8sCiAJCQkJMDc3RTg3QUYy
MjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLm1tICovLAorCQkJCTU3RjFD
OTA3MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oICovLAor
CQkJCTU3RjFDOTA4MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5tbSAqLywKIAkJCQlGNDQyOTE2NjFGQTUyNzA1MDAyQ0M5M0UgLyogRmlsZVNpemVGb3JtYXR0
ZXJDb2NvYS5tbSAqLywKIAkJCQkxQzAyMkVGQzIyQ0ZFOEUwMDA2REYwMUIgLyogR3VuemlwLmNw
cCAqLywKIAkJCQlDREFDQjM1RTIzODczRTQ4MDAxOEQ3Q0UgLyogTWVkaWFUb29sYm94U29mdExp
bmsuY3BwICovLApAQCAtODI4LDYgKzgzNCw3IEBACiAJCQkJMUNDRUU0RjUyMEQ4NzE5MzAwNDdC
MDk3IC8qIENvcmVVSVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MTkxRjQzQTRDNzAw
MkVBQzAyIC8qIENvcmVVSVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUMwOUQwNTMxRTMxQzQ0
MTAwNzI1RjE4IC8qIENyeXB0b0RpZ2VzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTdGMUM5MDky
NURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwQzJEQTE0MTFGM0JFQjQ5MDBEQkMzMTcgLyogRGF0YURldGVjdG9yc0NvcmVT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NThBMUY0NTEzMEYwMEY0RUJCNiAvKiBEYXRh
RGV0ZWN0b3JzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzVBRjkxQTFGNDNBNEM3MDAyRUFD
MDIgLyogRGF0YURldGVjdG9yc1VJU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTEwMzcsNiArMTA0
NCw3IEBACiAJCQkJMENGOTlDQTgxRjczODQzNzAwN0VFNzkzIC8qIENvcmVNZWRpYVNvZnRMaW5r
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDNzdDOEM5MjVENzk3MjAwMDYzNUUwQyAvKiBDb3Jl
VGV4dFNvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDMDlEMDU2MUUzMUM0NjUwMDcy
NUYxOCAvKiBDcnlwdG9EaWdlc3RDb21tb25DcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTdGMUM5MEEyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTExNzVCNTgxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRT
ZWFyY2hQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNDQyOTE2NDFGQTUyNjcwMDAy
Q0M5M0UgLyogRmlsZVNpemVGb3JtYXR0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ0Mjkx
NjgxRkE1MjcwNTAwMkNDOTNFIC8qIEZpbGVTaXplRm9ybWF0dGVyQ29jb2EubW0gaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRvS2l0
Q0JyaWRnaW5nU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRv
S2l0Q0JyaWRnaW5nU29mdExpbmsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTkwZDRmZTVmM2FlZTNhNjM4YWJl
MDE1MmM0NjUwMzM5MzA5ZjY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oCkBAIC0wLDAgKzEsMzcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEhBVkUoUlNBX0JTU0EpCisKKyNpbXBv
cnQgPENyeXB0b0tpdENCcmlkZ2luZy9SU0FCU1NBLmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtp
bmcuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfSEVBREVSKFBBTCwgQ3J5cHRvS2l0Q0Jy
aWRnaW5nKTsKKworU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBSU0FCU1NBVG9rZW5C
bGluZGVyKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Nv
Y29hL0NyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWJjNzVh
Y2MzZGQ3NDQ4ZDBhMTA5NTc4ZGJmMzAyMjRkNzJiNDlhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbQpA
QCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYg
SEFWRShSU0FfQlNTQSkKKworI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisKK1NPRlRfTElO
S19QUklWQVRFX0ZSQU1FV09SS19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ3J5cHRvS2l0
Q0JyaWRnaW5nLCBQQUxfRVhQT1JUKTsKKworU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDcnlwdG9LaXRDQnJpZGdpbmcsIFJTQUJTU0FUb2tlbkJsaW5kZXIsIFBB
TF9FWFBPUlQpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXND
b2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGJmNmFlMTYx
ODdhYmEwNzE1NzJkYTA3OTIzYWMzMzBiMjI4ZjY5YzUuLjlkYTUyMWE3YTVkNDY0YTg0MjA5YzNj
YjAwOWRkOWExYWVhNjBmMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2Nv
YS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMTY4LDYgKzE2
OCw3IEBAIGluc3BlY3Rvci9tYWMvUGFnZURlYnVnZ2VyTWFjLm1tCiBsb2FkZXIvYXJjaGl2ZS9j
Zi9MZWdhY3lXZWJBcmNoaXZlLmNwcAogbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2
ZU1hYy5tbQogbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5tbQorbG9hZGVyL2Nv
Y29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0KIGxvYWRlci9jb2NvYS9TdWJyZXNv
dXJjZUxvYWRlckNvY29hLm1tCiBsb2FkZXIvaW9zL0xlZ2FjeVByZXZpZXdMb2FkZXIubW0KIGxv
YWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGQxZmZmZWJlZmVmMjBjNjBjOTA1
MDliYWM3MWY0MjNiNDNhNmM0Ni4uMjI0OGU3N2M4Y2M3NDY5ZmI3MGE1YmYxYzljOWRlYzkzZDZh
NDhmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtOTQxNiw2ICs5NDE2LDcgQEAKIAkJNTdFRUFBNTcxRUEwQUZCQjAwNzAxMTI0
IC8qIENvbW1vbkNyeXB0b0RFUlV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDb21tb25DcnlwdG9ERVJVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1N0VGNUU1RjFEMjBDODM5MDAxNzFFNjAgLyogVGV4dENvZGVjUmVw
bGFjZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENvZGVjUmVw
bGFjZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdFRjVFNjExRDIwRDI4
NzAwMTcxRTYwIC8qIFRleHRDb2RlY1JlcGxhY2VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRDb2RlY1JlcGxhY2VtZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTdGMUM4RTMyNURDNkVFNzAwRThGNkVBIC8qIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1N0Y4MjczOTFEQjcyQzIyMDA5RDJCRjQgLyogUnNhSGFzaGVkS2V5R2VuUGFy
YW1zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBSc2FIYXNoZWRLZXlHZW5QYXJhbXMuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1N0ZFREQzRDFEQjZENDdGMDBFQjk2RjUgLyogUnNhS2V5R2VuUGFyYW1z
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBSc2FLZXlHZW5QYXJhbXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1N0ZFREQzRTFEQjZENTkyMDBFQjk2RjUgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2Vu
UGFyYW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRo
bVJzYUtleUdlblBhcmFtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTczMSw3
ICs5NzMyLDcgQEAKIAkJNkEyMkU4NzIxRjEwNDJDNDAwRjU0NkMzIC8qIEluc3BlY3RvckNhbnZh
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JDYW52YXMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2QTcyNzk4ODFGMTZDMjlCMDAzRjM5QjggLyogSW5zcGVjdG9y
U2hhZGVyUHJvZ3JhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0
b3JTaGFkZXJQcm9ncmFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZBNzI3OTg5
MUYxNkMyOUIwMDNGMzlCOCAvKiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvclNoYWRlclByb2dyYW0uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QjBBMDdGMDIxRkE0QjVDMDBENTczOTEgLyog
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkIwQTA3RjAyMUZBNEI1
QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTZCMEEwN0YxMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCMUY0ODBGMjI5ODlFQzQwMERF
OEI4MiAvKiBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNkI0RDQxMkIyMzk4M0Y4ODAwMjQ5NEMyIC8qIExvZ2dlZEluU3RhdHVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IExvZ2dlZEluU3RhdHVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yMjk0OSw2ICsyMjk1MCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk3RURBQUZDODE5
QTJDQkQxMDAzNERGRDEgLyogRGlza0NhY2hlTW9uaXRvckNvY29hLmggKi8sCiAJCQkJN0U0REUx
MEMxOThCMTBCNjAwNTFDQjAyIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSAqLywKKwkJCQk1
N0YxQzhFMzI1REM2RUU3MDBFOEY2RUEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5t
bSAqLywKIAkJCQk3RThGQURDMzE5OUE5NUIxMDA3MTQ5NjggLyogU3VicmVzb3VyY2VMb2FkZXJD
b2NvYS5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gY29jb2E7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAppbmRleCA4YTk3M2YwMzQ1NDQ1
NDc1NGQwMTk1NGFmM2ZhZjhiOGZhZGI1OGNkLi5lNTZjOTQ1MjI5YTU5Njk3M2RiNWE3YjUwZWEy
MTQwZGUxNWE4ZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUcmlnZ2VyQXR0cmli
dXRpb25QYXRoW10gPSAiLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvdHJp
Z2dlci1hdHRyaWJ1dGlvbi8iOwotc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRUb2tlblNpZ25hdHVyZVBhdGhbXSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC9zaWduLXVubGlua2FibGUtdG9rZW4vIjsKK3N0YXRpYyBjb25zdCBjaGFyIHBy
aXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVQYXRoW10gPSAiLy53ZWxsLWtub3du
L3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvc2lnbi1zZWNyZXQtdG9rZW4vIjsKIHN0YXRpYyBj
b25zdCBjaGFyIHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlQYXRoW10gPSAi
Ly53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvZ2V0LXVubGlua2FibGUtdG9r
ZW4tcHVibGljLWtleS8iOwogc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRSZXBvcnRBdHRyaWJ1dGlvblBhdGhbXSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC9yZXBvcnQtYXR0cmlidXRpb24vIjsKIGNvbnN0IHNpemVfdCBwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHJpZ2dlckRhdGFQYXRoU2VnbWVudFNpemUgPSAyOwpA
QCAtMTE2LDE1ICsxMTYsMTUgQEAgYm9vbCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6aGFzSGln
aGVyUHJpb3JpdHlUaGFuKGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW4KICAgICByZXR1cm4g
bV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhLT5wcmlvcml0eSA+IG90aGVyLm1fYXR0cmlidXRpb25U
cmlnZ2VyRGF0YS0+cHJpb3JpdHk7CiB9CiAKLVVSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
dG9rZW5TaWduYXR1cmVVUkwoKSBjb25zdAorVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojph
dHRyaWJ1dGlvblJlcG9ydFVSTCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2VwaGVtZXJhbFNvdXJj
ZU5vbmNlIHx8ICFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5pc1ZhbGlkKCkpCisgICAgaWYgKCFp
c1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBVUkwoKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImh0dHBzOi8vIik7CiAgICAgYnVpbGRl
ci5hcHBlbmQobV9zb3VyY2VTaXRlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKLSAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVy
ZVBhdGgpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbChwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFJlcG9ydEF0dHJpYnV0aW9uUGF0aCk7CiAKICAgICBVUkwgdXJsIHsgVVJMKCksIGJ1aWxkZXIu
dG9TdHJpbmcoKSB9OwogICAgIGlmICh1cmwuaXNWYWxpZCgpKQpAQCAtMTMzLDEyICsxMzMsNTEg
QEAgVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojp0b2tlblNpZ25hdHVyZVVSTCgpIGNvbnN0
CiAgICAgcmV0dXJuIFVSTCgpOwogfQogCi1VUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRv
a2VuUHVibGljS2V5VVJMKCkgY29uc3QKK1JlZjxKU09OOjpPYmplY3Q+IFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydEpTT04oKSBjb25zdAoreworICAgIGF1dG8gcmVw
b3J0RGV0YWlscyA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CisgICAgaWYgKCFtX2F0dHJpYnV0
aW9uVHJpZ2dlckRhdGEgfHwgIWlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIHJlcG9ydERldGFp
bHM7CisKKyAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5
cGUiX3MsICJjbGljayJfcyk7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vf
c2l0ZSJfcywgbV9zb3VyY2VTaXRlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKKyAgICBy
ZXBvcnREZXRhaWxzLT5zZXRJbnRlZ2VyKCJzb3VyY2VfaWQiX3MsIG1fc291cmNlSUQuaWQpOwor
ICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygiYXR0cmlidXRlZF9vbl9zaXRlIl9zLCBtX2F0
dHJpYnV0ZU9uU2l0ZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7CisgICAgcmVwb3J0RGV0
YWlscy0+c2V0SW50ZWdlcigidHJpZ2dlcl9kYXRhIl9zLCBtX2F0dHJpYnV0aW9uVHJpZ2dlckRh
dGEtPmRhdGEpOworICAgIHJlcG9ydERldGFpbHMtPnNldEludGVnZXIoInZlcnNpb24iX3MsIDEp
OworICAgIHJldHVybiByZXBvcnREZXRhaWxzOworfQorCisvLyBNQVJLOiAtIEZyYXVkIFByZXZl
bnRpb24KKworc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBFcGhlbWVyYWxTb3VyY2VOb25jZVJl
cXVpcmVkTnVtYmVyT2ZCeXRlcyA9IDE2OworCitib29sIFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNWYWxpZCgpIGNvbnN0CiB7CisgICAgLy8gRklYTUU6
IEludmVzdGlnYXRlIGlmIHdlIGNhbiBkbyB3aXRoIGEgc2ltcGxlIGxlbmd0aCBjaGVjayBpbnN0
ZWFkIG9mIGRlY29kaW5nLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjE5NDUKKyAgICBWZWN0b3I8dWludDhfdD4gZGlnZXN0OworICAgIGlmICghYmFz
ZTY0VVJMRGVjb2RlKG5vbmNlLCBkaWdlc3QpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIGRpZ2VzdC5zaXplKCkgPT0gRXBoZW1lcmFsU291cmNlTm9uY2VSZXF1aXJlZE51bWJl
ck9mQnl0ZXM7Cit9CisKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNldEVwaGVtZXJh
bFNvdXJjZU5vbmNlKEVwaGVtZXJhbFNvdXJjZU5vbmNlJiYgbm9uY2UpCit7CisgICAgaWYgKCFu
b25jZS5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBtX2VwaGVtZXJhbFNvdXJjZU5v
bmNlID0gV1RGTW92ZShub25jZSk7Cit9CisKK1VSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
dG9rZW5TaWduYXR1cmVVUkwoKSBjb25zdAoreworICAgIGlmICghbV9lcGhlbWVyYWxTb3VyY2VO
b25jZSB8fCAhbV9lcGhlbWVyYWxTb3VyY2VOb25jZS0+aXNWYWxpZCgpKQorICAgICAgICByZXR1
cm4gVVJMKCk7CisKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJodHRwczovLyIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1fc291cmNlU2l0ZS5y
ZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKHBy
aXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlQYXRoKTsKKyAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVBhdGgpOwog
CiAgICAgVVJMIHVybCB7IFVSTCgpLCBidWlsZGVyLnRvU3RyaW5nKCkgfTsKICAgICBpZiAodXJs
LmlzVmFsaWQoKSkKQEAgLTE0NywyOCArMTg2LDEyIEBAIFVSTCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6dG9rZW5QdWJsaWNLZXlVUkwoKSBjb25zdAogICAgIHJldHVybiBVUkwoKTsKIH0KIAot
UmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRva2VuU2lnbmF0dXJl
SlNPTigpIGNvbnN0Ci17Ci0gICAgYXV0byByZXBvcnREZXRhaWxzID0gSlNPTjo6T2JqZWN0Ojpj
cmVhdGUoKTsKLSAgICBpZiAoIW1fZXBoZW1lcmFsU291cmNlTm9uY2UgfHwgIW1fZXBoZW1lcmFs
U291cmNlTm9uY2UtPmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7Ci0K
LSAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5cGUiX3Ms
ICJjbGljayJfcyk7Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vfbm9uY2Ui
X3MsIG1fZXBoZW1lcmFsU291cmNlTm9uY2UtPm5vbmNlKTsKLSAgICByZXBvcnREZXRhaWxzLT5z
ZXRTdHJpbmcoInVubGlua2FibGVfdG9rZW4iX3MsICJUT0RPIl9zKTsKLSAgICByZXBvcnREZXRh
aWxzLT5zZXRJbnRlZ2VyKCJ2ZXJzaW9uIl9zLCAyKTsKLSAgICByZXR1cm4gcmVwb3J0RGV0YWls
czsKLX0KLQotVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydFVS
TCgpIGNvbnN0CitVUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRva2VuUHVibGljS2V5VVJM
KCkgY29uc3QKIHsKLSAgICBpZiAoIWlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIFVSTCgpOwot
CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
aHR0cHM6Ly8iKTsKICAgICBidWlsZGVyLmFwcGVuZChtX3NvdXJjZVNpdGUucmVnaXN0cmFibGVE
b21haW4uc3RyaW5nKCkpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbChwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFJlcG9ydEF0dHJpYnV0aW9uUGF0aCk7CisgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlQYXRoKTsKIAogICAgIFVS
TCB1cmwgeyBVUkwoKSwgYnVpbGRlci50b1N0cmluZygpIH07CiAgICAgaWYgKHVybC5pc1ZhbGlk
KCkpCkBAIC0xNzcsMTkgKzIwMCwyMSBAQCBVUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0
dHJpYnV0aW9uUmVwb3J0VVJMKCkgY29uc3QKICAgICByZXR1cm4gVVJMKCk7CiB9CiAKLVJlZjxK
U09OOjpPYmplY3Q+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydEpT
T04oKSBjb25zdAorUmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRv
a2VuU2lnbmF0dXJlSlNPTihjb25zdCBTdHJpbmcmIHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCkK
IHsKICAgICBhdXRvIHJlcG9ydERldGFpbHMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwotICAg
IGlmICghbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhIHx8ICFpc1ZhbGlkKCkpCisgICAgaWYgKCFt
X2VwaGVtZXJhbFNvdXJjZU5vbmNlIHx8ICFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5pc1ZhbGlk
KCkpCisgICAgICAgIHJldHVybiByZXBvcnREZXRhaWxzOworCisgICAgYXV0byB0b2tlbiA9IHNv
dXJjZVNlY3JldFRva2VuKHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCk7CisgICAgaWYgKHRva2Vu
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7CiAKICAgICByZXBvcnRE
ZXRhaWxzLT5zZXRTdHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5cGUiX3MsICJjbGljayJfcyk7
Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vfc2l0ZSJfcywgbV9zb3VyY2VT
aXRlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKLSAgICByZXBvcnREZXRhaWxzLT5zZXRJ
bnRlZ2VyKCJzb3VyY2VfaWQiX3MsIG1fc291cmNlSUQuaWQpOwotICAgIHJlcG9ydERldGFpbHMt
PnNldFN0cmluZygiYXR0cmlidXRlZF9vbl9zaXRlIl9zLCBtX2F0dHJpYnV0ZU9uU2l0ZS5yZWdp
c3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigi
dHJpZ2dlcl9kYXRhIl9zLCBtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEtPmRhdGEpOwotICAgIHJl
cG9ydERldGFpbHMtPnNldEludGVnZXIoInZlcnNpb24iX3MsIDEpOworICAgIHJlcG9ydERldGFp
bHMtPnNldFN0cmluZygic291cmNlX25vbmNlIl9zLCBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5u
b25jZSk7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2Vu
Il9zLCB0b2tlbik7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigidmVyc2lvbiJfcywg
Mik7CiAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7CiB9CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
LmgKaW5kZXggYzhkOTk0ZjgxNDYzODk3YWM1MWIyY2EwZjQ4ZjEwODI4NWMyMmU4Zi4uNjBlOGY0
Y2FmN2NlYmU4OWI4OTNhZDgxNjJmZWJiZGRiMjgyY2M1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKQEAgLTM2LDYgKzM2LDEwIEBACiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCitPQkpDX0NMQVNTIFJTQUJTU0FUb2tlblJlYWR5OworT0JKQ19DTEFTUyBSU0FC
U1NBVG9rZW5XYWl0aW5nQWN0aXZhdGlvbjsKK09CSkNfQ0xBU1MgUlNBQlNTQVRva2VuQmxpbmRl
cjsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCB7CkBAIC0yMDEsMzEgKzIwNSw2IEBAIHB1YmxpYzoKICAgICAgICAgc3RhdGljIGNvbnN0IGJv
b2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKICAgICB9OwogCi0gICAg
c3RydWN0IEVwaGVtZXJhbFNvdXJjZU5vbmNlIHsKLSAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1
aW50MzJfdCBSZXF1aXJlZE51bWJlck9mQnl0ZXMgPSAxNjsKLQotICAgICAgICBFcGhlbWVyYWxT
b3VyY2VOb25jZSgpID0gZGVmYXVsdDsKLSAgICAgICAgZXhwbGljaXQgRXBoZW1lcmFsU291cmNl
Tm9uY2UoY29uc3QgU3RyaW5nJiBub25jZVN0cmluZykKLSAgICAgICAgICAgIDogbm9uY2UgeyBu
b25jZVN0cmluZyB9Ci0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIEZJWE1FOiBJ
bnZlc3RpZ2F0ZSBpZiB3ZSBjYW4gZG8gd2l0aCBhIHNpbXBsZSBsZW5ndGggY2hlY2sgaW5zdGVh
ZCBvZiBkZWNvZGluZy4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyMTk0NQotICAgICAgICBib29sIGlzVmFsaWQoKSBjb25zdAotICAgICAgICB7
Ci0gICAgICAgICAgICBWZWN0b3I8dWludDhfdD4gZGlnZXN0OwotICAgICAgICAgICAgaWYgKCFi
YXNlNjRVUkxEZWNvZGUobm9uY2UsIGRpZ2VzdCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICAgICAgcmV0dXJuIGRpZ2VzdC5zaXplKCkgPT0gUmVxdWlyZWROdW1iZXJP
ZkJ5dGVzOwotICAgICAgICB9Ci0KLSAgICAgICAgU3RyaW5nIG5vbmNlOwotCi0gICAgICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICAg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJj
ZU5vbmNlPiBkZWNvZGUoRGVjb2RlciYpOwotICAgIH07Ci0KICAgICBzdHJ1Y3QgUHJpb3JpdHkg
ewogICAgICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IE1heEVudHJvcHkgPSA2MzsKIApA
QCAtMjc3LDE2ICsyNTYsMTAgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBF
eHBlY3RlZDxBdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBTdHJpbmc+IHBhcnNlQXR0cmlidXRpb25S
ZXF1ZXN0KGNvbnN0IFVSTCYgcmVkaXJlY3RVUkwpOwogICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlv
bmFsPFNlY29uZHM+IGF0dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChBdHRyaWJ1dGlv
blRyaWdnZXJEYXRhJiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzSGlnaGVyUHJpb3Jp
dHlUaGFuKGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW50JikgY29uc3Q7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgVVJMIHRva2VuUHVibGljS2V5VVJMKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgVVJMIHRva2VuU2lnbmF0dXJlVVJMKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgUmVm
PEpTT046Ok9iamVjdD4gdG9rZW5TaWduYXR1cmVKU09OKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9F
WFBPUlQgVVJMIGF0dHJpYnV0aW9uUmVwb3J0VVJMKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBP
UlQgUmVmPEpTT046Ok9iamVjdD4gYXR0cmlidXRpb25SZXBvcnRKU09OKCkgY29uc3Q7CiAgICAg
Y29uc3QgU291cmNlU2l0ZSYgc291cmNlU2l0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlU2l0
ZTsgfTsKICAgICBjb25zdCBBdHRyaWJ1dGVPblNpdGUmIGF0dHJpYnV0ZU9uU2l0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYXR0cmlidXRlT25TaXRlOyB9OwotICAgIHZvaWQgc2V0RXBoZW1lcmFsU291
cmNlTm9uY2UoRXBoZW1lcmFsU291cmNlTm9uY2UmJiBub25jZSkgeyBtX2VwaGVtZXJhbFNvdXJj
ZU5vbmNlID0gV1RGTW92ZShub25jZSk7IH07Ci0gICAgT3B0aW9uYWw8RXBoZW1lcmFsU291cmNl
Tm9uY2U+IGVwaGVtZXJhbFNvdXJjZU5vbmNlKCkgY29uc3QgeyByZXR1cm4gIW1fZXBoZW1lcmFs
U291cmNlTm9uY2UgPyBXVEY6Om51bGxvcHQgOiBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5pc1Zh
bGlkKCkgPyBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlIDogV1RGOjpudWxsb3B0OyB9OwotICAgIHZv
aWQgY2xlYXJFcGhlbWVyYWxTb3VyY2VOb25jZSgpIHsgbV9lcGhlbWVyYWxTb3VyY2VOb25jZSAg
PSBXVEY6Om51bGxvcHQ7IH07CiAgICAgV2FsbFRpbWUgdGltZU9mQWRDbGljaygpIGNvbnN0IHsg
cmV0dXJuIG1fdGltZU9mQWRDbGljazsgfQogICAgIE9wdGlvbmFsPFdhbGxUaW1lPiBlYXJsaWVz
dFRpbWVUb1NlbmQoKSBjb25zdCB7IHJldHVybiBtX2VhcmxpZXN0VGltZVRvU2VuZDsgfTsKICAg
ICB2b2lkIHNldEVhcmxpZXN0VGltZVRvU2VuZChXYWxsVGltZSB0aW1lKSB7IG1fZWFybGllc3RU
aW1lVG9TZW5kID0gdGltZTsgfQpAQCAtMjk3LDExICsyNzAsMzggQEAgcHVibGljOgogICAgIGNv
bnN0IFN0cmluZyYgc291cmNlRGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZURl
c2NyaXB0aW9uOyB9CiAgICAgY29uc3QgU3RyaW5nJiBwdXJjaGFzZXIoKSBjb25zdCB7IHJldHVy
biBtX3B1cmNoYXNlcjsgfQogCisgICAgLy8gTUFSSzogLSBGcmF1ZCBQcmV2ZW50aW9uCisgICAg
c3RydWN0IEVwaGVtZXJhbFNvdXJjZU5vbmNlIHsKKyAgICAgICAgU3RyaW5nIG5vbmNlOworCisg
ICAgICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNWYWxpZCgpIGNvbnN0OworCisgICAgICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICAg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJj
ZU5vbmNlPiBkZWNvZGUoRGVjb2RlciYpOworICAgIH07CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldEVwaGVtZXJhbFNvdXJjZU5vbmNlKEVwaGVtZXJhbFNvdXJjZU5vbmNlJiYpOworICAg
IE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5vbmNlPiBlcGhlbWVyYWxTb3VyY2VOb25jZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZXBoZW1lcmFsU291cmNlTm9uY2U7IH07CisgICAgdm9pZCBjbGVhckVw
aGVtZXJhbFNvdXJjZU5vbmNlKCkgeyBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLnJlc2V0KCk7IH07
CisKKyAgICBzdHJ1Y3QgU291cmNlVW5saW5rYWJsZVRva2VuIHsKKyAgICAgICAgU3RyaW5nIHRv
a2VuQmFzZTY0VVJMOworICAgICAgICBTdHJpbmcga2V5SURCYXNlNjRVUkw7CisgICAgICAgIFN0
cmluZyBzaWduYXR1cmVCYXNlNjRVUkw7CisgICAgfTsKKworICAgIFdFQkNPUkVfRVhQT1JUIFVS
TCB0b2tlblB1YmxpY0tleVVSTCgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFVSTCB0b2tl
blNpZ25hdHVyZVVSTCgpIGNvbnN0OworCisgICAgV0VCQ09SRV9FWFBPUlQgUmVmPEpTT046Ok9i
amVjdD4gdG9rZW5TaWduYXR1cmVKU09OKGNvbnN0IFN0cmluZyYgc2VydmVyUHVibGljS2V5QmFz
ZTY0VVJMKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxTb3VyY2VVbmxpbmthYmxlVG9r
ZW4+IGNhbGN1bGF0ZVNvdXJjZVVubGlua2FibGVUb2tlbihjb25zdCBTdHJpbmcmIHNlcnZlclJl
c3BvbnNlQmFzZTY0VVJMKTsKKwogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
T3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IGRlY29kZShEZWNvZGVyJik7CiAKIHBy
aXZhdGU6CiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisgICAgU3RyaW5nIHNvdXJjZVNlY3Jl
dFRva2VuKGNvbnN0IFN0cmluZyYgc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKTsKIAogICAgIFNv
dXJjZUlEIG1fc291cmNlSUQ7CiAgICAgU291cmNlU2l0ZSBtX3NvdXJjZVNpdGU7CkBAIC0zMTAs
OSArMzEwLDE3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcHVyY2hhc2VyOwogICAgIFdhbGxU
aW1lIG1fdGltZU9mQWRDbGljazsKIAotICAgIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5vbmNl
PiBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlOwogICAgIE9wdGlvbmFsPEF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGE+IG1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YTsKICAgICBPcHRpb25hbDxXYWxsVGltZT4g
bV9lYXJsaWVzdFRpbWVUb1NlbmQ7CisKKyAgICBzdHJ1Y3QgU291cmNlU2VjcmV0VG9rZW4gewor
ICAgICAgICBSZXRhaW5QdHI8UlNBQlNTQVRva2VuQmxpbmRlcj4gYmxpbmRlcjsKKyAgICAgICAg
UmV0YWluUHRyPFJTQUJTU0FUb2tlbldhaXRpbmdBY3RpdmF0aW9uPiB3YWl0aW5nVG9rZW47Cisg
ICAgICAgIFJldGFpblB0cjxSU0FCU1NBVG9rZW5SZWFkeT4gcmVhZHlUb2tlbjsKKyAgICB9Owor
CisgICAgT3B0aW9uYWw8RXBoZW1lcmFsU291cmNlTm9uY2U+IG1fZXBoZW1lcmFsU291cmNlTm9u
Y2U7CisgICAgU291cmNlU2VjcmV0VG9rZW4gbV9zb3VyY2VTZWNyZXRUb2tlbjsKIH07CiAKIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhk
ZDk1MDkxNzRkNDEwMDlhNTc4NWM2NTZkMmI2N2E1ZmY1YmFmZDIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2Nv
YS5tbQpAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisj
aW1wb3J0ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIgorCisjaW1wb3J0IDxwYWwvY29jb2Ev
Q3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitT
dHJpbmcgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNvdXJjZVNlY3JldFRva2VuKGNvbnN0IFN0
cmluZyYgc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKQoreworI2lmIEhBVkUoUlNBX0JTU0EpCisg
ICAgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gc2VydmVyUHVibGljS2V5RGF0YTsKKyAgICAg
ICAgaWYgKCFiYXNlNjRVUkxEZWNvZGUoc2VydmVyUHVibGljS2V5QmFzZTY0VVJMLCBzZXJ2ZXJQ
dWJsaWNLZXlEYXRhKSkKKyAgICAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOworICAgICAg
ICBhdXRvIHNlcnZlclB1YmxpY0tleSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRo
Qnl0ZXM6c2VydmVyUHVibGljS2V5RGF0YS5kYXRhKCkgbGVuZ3RoOnNlcnZlclB1YmxpY0tleURh
dGEuc2l6ZSgpXSk7CisKKyAgICAgICAgLy8gRklYTUUoMjIyMDE4KTogQ2hlY2sgZXJyb3IuCisg
ICAgICAgIG1fc291cmNlU2VjcmV0VG9rZW4uYmxpbmRlciA9IGFkb3B0TlMoW1BBTDo6YWxsb2NS
U0FCU1NBVG9rZW5CbGluZGVySW5zdGFuY2UoKSBpbml0V2l0aFB1YmxpY0tleTpzZXJ2ZXJQdWJs
aWNLZXkuZ2V0KCkgZXJyb3I6bnVsbHB0cl0pOworICAgICAgICBpZiAoIW1fc291cmNlU2VjcmV0
VG9rZW4uYmxpbmRlcikKKyAgICAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOworICAgIH0K
KworICAgIC8vIEZJWE1FKDIyMjAxOCk6IENoZWNrIGVycm9yLgorICAgIG1fc291cmNlU2VjcmV0
VG9rZW4ud2FpdGluZ1Rva2VuID0gW21fc291cmNlU2VjcmV0VG9rZW4uYmxpbmRlciB0b2tlbldh
aXRpbmdBY3RpdmF0aW9uV2l0aENvbnRlbnQ6bnVsbHB0ciBlcnJvcjpudWxscHRyXTsKKyAgICBp
ZiAoIW1fc291cmNlU2VjcmV0VG9rZW4ud2FpdGluZ1Rva2VuKQorICAgICAgICByZXR1cm4gZW1w
dHlTdHJpbmcoKTsKKworICAgIHJldHVybiBXVEY6OmJhc2U2NFVSTEVuY29kZShbbV9zb3VyY2VT
ZWNyZXRUb2tlbi53YWl0aW5nVG9rZW4gYmxpbmRlZE1lc3NhZ2VdLmJ5dGVzLCBbbV9zb3VyY2VT
ZWNyZXRUb2tlbi53YWl0aW5nVG9rZW4gYmxpbmRlZE1lc3NhZ2VdLmxlbmd0aCk7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTVMoc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKTsKKyAgICByZXR1cm4g
ZW1wdHlTdHJpbmcoKTsKKyNlbmRpZiAvLyBIQVZFKFJTQV9CU1NBKQorfQorCithdXRvIFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpjYWxjdWxhdGVTb3VyY2VVbmxpbmthYmxlVG9rZW4oY29uc3Qg
U3RyaW5nJiBzZXJ2ZXJSZXNwb25zZUJhc2U2NFVSTCkgLT4gT3B0aW9uYWw8U291cmNlVW5saW5r
YWJsZVRva2VuPgoreworI2lmIEhBVkUoUlNBX0JTU0EpCisgICAgaWYgKCFtX3NvdXJjZVNlY3Jl
dFRva2VuLndhaXRpbmdUb2tlbikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAg
IHsKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHNlcnZlclJlc3BvbnNlRGF0YTsKKyAgICAgICAg
aWYgKCFiYXNlNjRVUkxEZWNvZGUoc2VydmVyUmVzcG9uc2VCYXNlNjRVUkwsIHNlcnZlclJlc3Bv
bnNlRGF0YSkpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgICAgICBhdXRv
IHNlcnZlclJlc3BvbnNlID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczpz
ZXJ2ZXJSZXNwb25zZURhdGEuZGF0YSgpIGxlbmd0aDpzZXJ2ZXJSZXNwb25zZURhdGEuc2l6ZSgp
XSk7CisKKyAgICAgICAgLy8gRklYTUUoMjIyMDE4KTogQ2hlY2sgZXJyb3IuCisgICAgICAgIG1f
c291cmNlU2VjcmV0VG9rZW4ucmVhZHlUb2tlbiA9IFttX3NvdXJjZVNlY3JldFRva2VuLndhaXRp
bmdUb2tlbiBhY3RpdmF0ZVRva2VuV2l0aFNlcnZlclJlc3BvbnNlOnNlcnZlclJlc3BvbnNlLmdl
dCgpIGVycm9yOm51bGxwdHJdOworICAgICAgICBpZiAoIW1fc291cmNlU2VjcmV0VG9rZW4ucmVh
ZHlUb2tlbikKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgfQorCisgICAg
U291cmNlVW5saW5rYWJsZVRva2VuIHRva2VuOworICAgIHRva2VuLnRva2VuQmFzZTY0VVJMID0g
V1RGOjpiYXNlNjRVUkxFbmNvZGUoW21fc291cmNlU2VjcmV0VG9rZW4ucmVhZHlUb2tlbiB0b2tl
bkNvbnRlbnRdLmJ5dGVzLCBbbV9zb3VyY2VTZWNyZXRUb2tlbi5yZWFkeVRva2VuIHRva2VuQ29u
dGVudF0ubGVuZ3RoKTsKKyAgICB0b2tlbi5rZXlJREJhc2U2NFVSTCA9IFdURjo6YmFzZTY0VVJM
RW5jb2RlKFttX3NvdXJjZVNlY3JldFRva2VuLnJlYWR5VG9rZW4ga2V5SWRdLmJ5dGVzLCBbbV9z
b3VyY2VTZWNyZXRUb2tlbi5yZWFkeVRva2VuIGtleUlkXS5sZW5ndGgpOworICAgIHRva2VuLnNp
Z25hdHVyZUJhc2U2NFVSTCA9IFdURjo6YmFzZTY0VVJMRW5jb2RlKFttX3NvdXJjZVNlY3JldFRv
a2VuLnJlYWR5VG9rZW4gc2lnbmF0dXJlXS5ieXRlcywgW21fc291cmNlU2VjcmV0VG9rZW4ucmVh
ZHlUb2tlbiBzaWduYXR1cmVdLmxlbmd0aCk7CisKKyAgICByZXR1cm4gdG9rZW47CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTVMoc2VydmVyUmVzcG9uc2VCYXNlNjRVUkwpOworICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisjZW5kaWYgLy8gSEFWRShSU0FfQlNTQSkKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwCmluZGV4IDcyOWJiYjc2ODg5
Y2E2YjJiNzQ2YTU1MjcxMTcxN2MyODY2MWZlMDEuLmFlNmU0MGYyNjcyZDRhNDE0OTMyZWI0YTBk
ODE3NjIwZDlkNTJhNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKQEAgLTE1Nywx
MiArMTU3LDEyIEBAIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpnZXRUb2tl
blB1YmxpY0tleShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmCiAgICAgICAgIH0KIAogICAgICAg
ICAvLyBGSVhNRTogUmVjZWl2ZSBhbmQgZXh0cmEgdGhlIHNlcnZlciBwdWJsaWMga2V5LCByZGFy
Oi8vNzM1ODIwMzIuCi0gICAgICAgIGdldFNpZ25lZFVubGlua2FibGVUb2tlbihXVEZNb3ZlKGF0
dHJpYnV0aW9uKSk7CisgICAgICAgIGdldFNpZ25lZFNlY3JldFRva2VuKFdURk1vdmUoYXR0cmli
dXRpb24pLCBlbXB0eVN0cmluZygpKTsKICAgICB9KTsKIAogfQogCi12b2lkIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6Z2V0U2lnbmVkVW5saW5rYWJsZVRva2VuKFByaXZhdGVDbGlj
a01lYXN1cmVtZW50JiYgYXR0cmlidXRpb24pCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlcjo6Z2V0U2lnbmVkU2VjcmV0VG9rZW4oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBh
dHRyaWJ1dGlvbiwgY29uc3QgU3RyaW5nJiB0b2tlblB1YmxpY0tleUJhc2U2NFVSTCkKIHsKICAg
ICBpZiAoIWZlYXR1cmVFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTE3OCwyMSArMTc4
LDIxIEBAIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpnZXRTaWduZWRVbmxp
bmthYmxlVG9rZW4oUHJpdmF0ZUNsaWNrTWVhc3VyCiAgICAgaWYgKHRva2VuU2lnbmF0dXJlVVJM
LmlzRW1wdHkoKSB8fCAhdG9rZW5TaWduYXR1cmVVUkwuaXNWYWxpZCgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBhdXRvIGxvYWRQYXJhbWV0ZXJzID0gZ2VuZXJhdGVOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVyc0Zvckh0dHBQb3N0KFdURk1vdmUodG9rZW5TaWduYXR1cmVVUkwpLCBhdHRy
aWJ1dGlvbi50b2tlblNpZ25hdHVyZUpTT04oKSwgcGNtRGF0YUNhcnJpZWQpOworICAgIGF1dG8g
bG9hZFBhcmFtZXRlcnMgPSBnZW5lcmF0ZU5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzRm9y
SHR0cFBvc3QoV1RGTW92ZSh0b2tlblNpZ25hdHVyZVVSTCksIGF0dHJpYnV0aW9uLnRva2VuU2ln
bmF0dXJlSlNPTih0b2tlblB1YmxpY0tleUJhc2U2NFVSTCksIHBjbURhdGFDYXJyaWVkKTsKIAot
ICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJBYm91dCB0byBm
aXJlIGEgdW5saW5rYWJsZSB0b2tlbiBzaWduaW5nIHJlcXVlc3QuIik7Ci0gICAgbV9uZXR3b3Jr
UHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3Vy
Y2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkxvZywgIltQcml2YXRl
IENsaWNrIE1lYXN1cmVtZW50XSBBYm91dCB0byBmaXJlIGEgdW5saW5rYWJsZSB0b2tlbiBzaWdu
aW5nIHJlcXVlc3QuIl9zKTsKKyAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1
cmVtZW50LCAiQWJvdXQgdG8gZmlyZSBhIHNlY3JldCB0b2tlbiBzaWduaW5nIHJlcXVlc3QuIik7
CisgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9u
SUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6
OkxvZywgIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBBYm91dCB0byBmaXJlIGEgc2VjcmV0
IHRva2VuIHNpZ25pbmcgcmVxdWVzdC4iX3MpOwogCiAgICAgbV9waW5nTG9hZEZ1bmN0aW9uKFdU
Rk1vdmUobG9hZFBhcmFtZXRlcnMpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAg
ICAgcmV0dXJuOwogCiAgICAgICAgIGlmICghZXJyb3IuaXNOdWxsKCkpIHsKLSAgICAgICAgICAg
IHdlYWtUaGlzLT5tX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZSh3ZWFr
VGhpcy0+bV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtYWtlU3RyaW5nKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJl
bWVudF0gUmVjZWl2ZWQgZXJyb3I6ICciX3MsIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCks
ICInIGZvciB1bmxpbmthYmxlIHRva2VuIHNpZ25pbmcgcmVxdWVzdC4iX3MpKTsKKyAgICAgICAg
ICAgIHdlYWtUaGlzLT5tX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZSh3
ZWFrVGhpcy0+bV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtYWtlU3RyaW5nKCJbUHJpdmF0ZSBDbGljayBNZWFz
dXJlbWVudF0gUmVjZWl2ZWQgZXJyb3I6ICciX3MsIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9u
KCksICInIGZvciBzZWNyZXQgdG9rZW4gc2lnbmluZyByZXF1ZXN0LiJfcykpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICAvLyBGSVhNRTogUmVjZWl2
ZSBhbmQgc3RvcmUgdGhlIHNpZ25lZCB1bmxpbmthYmxlIHRva2VuLCByZGFyOi8vNzM1ODIwMzIu
CisgICAgICAgIC8vIEZJWE1FOiBSZWNlaXZlIGFuZCBzdG9yZSB0aGUgc2lnbmVkIHNlY3JldCB0
b2tlbiwgcmRhcjovLzczNTgyMDMyLgogICAgIH0pOwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXIuaAppbmRleCA1NzNmMzNjZTJjMzU2MzhjNjBkZWVhN2U0ZjlhNzk2OTFjZjBjODQyLi4wYmFm
OWI0MDZmMTI5ZTQzY2QyMWVmYTI0MWEzNjllYWY3NmFkYjkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyLmgKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHZvaWQg
Z2V0VG9rZW5QdWJsaWNLZXkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJik7Ci0gICAgdm9pZCBn
ZXRTaWduZWRVbmxpbmthYmxlVG9rZW4oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJik7CisgICAg
dm9pZCBnZXRTaWduZWRTZWNyZXRUb2tlbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmLCBjb25z
dCBTdHJpbmcmIHRva2VuUHVibGljS2V5QmFzZTY0VVJMKTsKICAgICB2b2lkIGNsZWFyU2VudEF0
dHJpYnV0aW9uKFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYpOwogICAgIHZvaWQgYXR0cmlidXRl
KGNvbnN0IFNvdXJjZVNpdGUmLCBjb25zdCBBdHRyaWJ1dGVPblNpdGUmLCBBdHRyaWJ1dGlvblRy
aWdnZXJEYXRhJiYpOwogICAgIHZvaWQgZmlyZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnN0IFByaXZh
dGVDbGlja01lYXN1cmVtZW50Jik7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggNzRlNmU3Zjk1Y2JhZDQ4NjBjNTExZmNmNDdkMjg2NmNiOTc4MDk0
Ni4uMDYzNThiZTgxYmRkY2M2OGNiNmQ1MzEzMmU1NzRjZDg0ZmYzZmIyNSAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDIxLTAyLTE2ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAg
UENNOiBHZW5lcmF0ZSBzZWNyZXQgdG9rZW4gYW5kIGNvcnJlc3BvbmRpbmcgdW5saW5rYWJsZSB0
b2tlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIy
MDE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MzU4MTQxMj4KKworICAgICAgICBSZXZpZXdl
ZCBieSBKb2huIFdpbGFuZGVyLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICBBZGQgdGVzdHMuCisKIDIwMjEtMDItMTkgIEppZXdlbiBUYW4gIDxq
aWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBQQ006IFJlcXVlc3Qgc2VydmVyIHB1Ymxp
YyBrZXkgdG8gZ2VuZXJhdGUgc2VjcmV0IHRva2VuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25maWcgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25maWcKaW5kZXggNzBi
ZThhYTc3MDQzYjc0MTc3ZDQwNmQwM2MzMTQ5NjM4YTk5ZjFlOS4uZDNhNDRhOGFjNTdkMDc2MGQz
YzUyZDBlZDE4OTkwNWI3MjVkYjE4YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9D
b25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLnhjY29uZmlnCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS54Y2NvbmZpZwpAQCAtNTUsNiArNTUs
MTIgQEAgV0tfUERGS0lUX0xERkxBR1NfbWFjb3N4ID0gLWZyYW1ld29yayBQREZLaXQ7CiBXS19Q
REZLSVRfTERGTEFHU19pcGhvbmVvcyA9IC1mcmFtZXdvcmsgUERGS2l0OwogV0tfUERGS0lUX0xE
RkxBR1NfaXBob25lc2ltdWxhdG9yID0gLWZyYW1ld29yayBQREZLaXQ7CiAKK1dLX1NZU1RFTV9M
REZMQUdTID0gJChXS19TWVNURU1fTERGTEFHU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKK1dLX1NZ
U1RFTV9MREZMQUdTX21hY29zeCA9IC1mcmFtZXdvcmsgU3lzdGVtOworV0tfU1lTVEVNX0xERkxB
R1NfaXBob25lb3MgPSAkKFdLX1NZU1RFTV9MREZMQUdTXyQoV0tfSU9TXzE1KSk7CitXS19TWVNU
RU1fTERGTEFHU19pcGhvbmVzaW11bGF0b3IgPSAkKFdLX1NZU1RFTV9MREZMQUdTXyQoV0tfSU9T
XzE1KSk7CitXS19TWVNURU1fTERGTEFHU19JT1NfU0lOQ0VfMTUgPSAtZnJhbWV3b3JrIFN5c3Rl
bTsKKwogV0tfSElEX0xERkxBR1MgPSAkKFdLX0hJRF9MREZMQUdTXyQoV0tfUExBVEZPUk1fTkFN
RSkpOwogV0tfSElEX0xERkxBR1NfbWFjb3N4ID0gJChXS19ISURfTERGTEFHUyQoV0tfTUFDT1Nf
MTAxNSkpOwogV0tfSElEX0xERkxBR1NfTUFDT1NfU0lOQ0VfMTAxNSA9IC1mcmFtZXdvcmsgSElE
OwpAQCAtNzEsNyArNzcsNyBAQCBXS19PUEVOR0xfTERGTEFHU19hcHBsZXR2b3MgPSAkKFdLX09Q
RU5HTF9MREZMQUdTX2lwaG9uZW9zKTsKIFdLX09QRU5HTF9MREZMQUdTX2FwcGxldHZzaW11bGF0
b3IgPSAkKFdLX09QRU5HTF9MREZMQUdTX2lwaG9uZXNpbXVsYXRvcik7CiBXS19PUEVOR0xfTERG
TEFHU19tYWNvc3ggPSAtZnJhbWV3b3JrIE9wZW5HTDsKIAotT1RIRVJfTERGTEFHUyA9ICQoaW5o
ZXJpdGVkKSAkKFVORVhQT1JURURfU1lNQk9MX0xERkxBR1MpIC1sZ3Rlc3QgLWZvcmNlX2xvYWQg
JChCVUlMVF9QUk9EVUNUU19ESVIpL2xpYlRlc3RXZWJLaXRBUEkuYSAtZnJhbWV3b3JrIEphdmFT
Y3JpcHRDb3JlIC1mcmFtZXdvcmsgV2ViS2l0IC1sV2ViQ29yZVRlc3RTdXBwb3J0ICQoV0tfQVVU
SEtJVF9MREZMQUdTKSAtZnJhbWV3b3JrIE5ldHdvcmsgJChXS19QREZLSVRfTERGTEFHUykgJChX
S19ISURfTERGTEFHUykgJChXS19PUEVOR0xfTERGTEFHUykgJChPVEhFUl9MREZMQUdTX1BMQVRG
T1JNXyQoV0tfQ09DT0FfVE9VQ0gpKTsKK09USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChV
TkVYUE9SVEVEX1NZTUJPTF9MREZMQUdTKSAtbGd0ZXN0IC1mb3JjZV9sb2FkICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9saWJUZXN0V2ViS2l0QVBJLmEgLWZyYW1ld29yayBKYXZhU2NyaXB0Q29yZSAt
ZnJhbWV3b3JrIFdlYktpdCAtbFdlYkNvcmVUZXN0U3VwcG9ydCAkKFdLX0FVVEhLSVRfTERGTEFH
UykgLWZyYW1ld29yayBOZXR3b3JrICQoV0tfU1lTVEVNX0xERkxBR1MpICQoV0tfUERGS0lUX0xE
RkxBR1MpICQoV0tfSElEX0xERkxBR1MpICQoV0tfT1BFTkdMX0xERkxBR1MpICQoT1RIRVJfTERG
TEFHU19QTEFURk9STV8kKFdLX0NPQ09BX1RPVUNIKSk7CiBPVEhFUl9MREZMQUdTX1BMQVRGT1JN
XyA9IC1mcmFtZXdvcmsgQ29jb2EgLWZyYW1ld29yayBDYXJib247CiAKIC8vIEZJWE1FOiBUaGlz
IHNob3VsZCBub3QgYmUgYnVpbHQgb24gaU9TLiBJbnN0ZWFkIHdlIHNob3VsZCBjcmVhdGUgYW5k
IHVzZSBhIFRlc3RXZWJLaXRBUEkgYXBwbGljYXRpb24uCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDNjMmYwNjhlMWQwOGY5MGFjYjFlYzNmMGRjZjMxY2ZjYmZmZDY4OWYuLjc5Y2FiMjNkOTg0
YTNhMzA4YzkwNzA0Nzg0NjczY2I0YzY2ODY2NWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC00NDEsNiArNDQxLDcgQEAKIAkJNTdDNjI0NTAyMzQ2QzIxRTAwMzgzRkU3IC8qIHdlYi1hdXRo
ZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdDNjI0NEYyMzQ2QzFFQzAwMzgzRkU3IC8qIHdl
Yi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLmh0bWwgKi87IH07CiAJCTU3RURGQzVDMjQ1
QTFBM0YwMDk1OTUyMSAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhLW5v
LW1vY2suaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1N0VERkM1QjI0NUExOEY1MDA5NTk1MjEgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1h
a2UtY3JlZGVudGlhbC1sYS1uby1tb2NrLmh0bWwgKi87IH07CiAJCTU3RURGQzYwMjQ1QTI5OUMw
MDk1OTUyMSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1sYS1uby1tb2NrLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTdFREZDNUYyNDVBMjc5OTAwOTU5NTIxIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0
aW9uLWxhLW5vLW1vY2suaHRtbCAqLzsgfTsKKwkJNTdGMUM5MTEyNURERDUxOTAwRThGNkVBIC8q
IFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0YxQzkxMDI1RERENTE5MDBFOEY2RUEgLyogUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbSAqLzsgfTsKIAkJNTdGNEFBQTAyMDhGQUVGMDAwQTY4
RTlFIC8qIFNTTEtleUdlbmVyYXRvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3RjRBQTlGMjA4RkE4M0QwMEE2OEU5RSAvKiBTU0xLZXlHZW5lcmF0
b3IubW0gKi87IH07CiAJCTU3RjU2QTVDMUM3RjhDQzEwMEYzMUQ3RSAvKiBJc05hdmlnYXRpb25B
Y3Rpb25UcnVzdGVkLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTdGNTZBNUIxQzdGOEE0MDAwRjMxRDdFIC8qIElzTmF2aWdhdGlvbkFj
dGlvblRydXN0ZWQuaHRtbCAqLzsgfTsKIAkJNUMwMTYwQzEyMUExMzI0NjAwNzdGQTMyIC8qIEpJ
VEVuYWJsZWQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1QzAxNjBDMDIxQTEzMjMyMDA3N0ZBMzIgLyogSklURW5hYmxlZC5tbSAqLzsgfTsKQEAgLTIy
MzMsNiArMjIzNCw3IEBACiAJCTU3RURGQzVCMjQ1QTE4RjUwMDk1OTUyMSAvKiB3ZWItYXV0aGVu
dGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhLW5vLW1vY2suaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ3ZWIt
YXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhLW5vLW1vY2suaHRtbCI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RURGQzVGMjQ1QTI3OTkwMDk1OTUyMSAvKiB3ZWItYXV0
aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1sYS1uby1tb2NrLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAid2Vi
LWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbGEtbm8tbW9jay5odG1sIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGMTBEOTIxQzdFN0IzODAwRUNERjMwIC8qIElzTmF2aWdh
dGlvbkFjdGlvblRydXN0ZWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBJc05hdmlnYXRpb25BY3Rpb25UcnVzdGVkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1N0YxQzkxMDI1RERENTE5MDBFOEY2RUEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RjRBQTlGMjA4RkE4M0Qw
MEE2OEU5RSAvKiBTU0xLZXlHZW5lcmF0b3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTU0xL
ZXlHZW5lcmF0b3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RjU2QTVCMUM3
RjhBNDAwMEYzMUQ3RSAvKiBJc05hdmlnYXRpb25BY3Rpb25UcnVzdGVkLmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSBJc05hdmlnYXRpb25BY3Rpb25UcnVzdGVkLmh0bWw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMDE2MEMwMjFBMTMyMzIwMDc3RkEzMiAvKiBKSVRF
bmFibGVkLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSklURW5h
YmxlZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ3MTEsNiArNDcxMyw3IEBA
CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwNzExREY1MTIyNkE5NUZCMDAzREQyRjcgLyogQVZGb3Vu
ZGF0aW9uU29mdExpbmtUZXN0Lm1tICovLAogCQkJCTc1MUIwNUQ1MUY4RUFDMUEwMDI4QTA5RSAv
KiBEYXRhYmFzZVRyYWNrZXJUZXN0Lm1tICovLAorCQkJCTU3RjFDOTEwMjVEREQ1MTkwMEU4RjZF
QSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tICovLAogCQkJCTU3NjlDNTBBMUQ5
QjAwMDEwMDA4NDdGQiAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbSAqLywKIAkJCQlBMTc5
OTE4NjFFMUM5OTRFMDBBNTA1RUQgLyogU2hhcmVkQnVmZmVyLm1tICovLAogCQkJCUNEODlEMDM4
MUM0RURCMkEwMDA0MEEwNCAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLm1tICovLApAQCAtNTQ4Niw2
ICs1NDg5LDcgQEAKIAkJCQlBMUVDMTE4ODFGNDI1NDEyMDBEMDE0NkUgLyogUHJldmlld0NvbnZl
cnRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YwQzFBNDExQUU2MDA0NDdDNEMgLyog
UHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNkIwQTA3RjcyMUZBOUMyQjAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTU3RjFDOTExMjVEREQ1MTkwMEU4RjZFQSAvKiBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDY0N0Ix
MjYxRUJBM0I4NTAwNDFEN0VGIC8qIFByb2Nlc3NEaWRUZXJtaW5hdGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDE4ODJGMDMyMTAxMEMwRDAwMkZGMjg4IC8qIFByb2Nlc3NQcmVXYXJtaW5nLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBNDQzOEUyMUY3QTQ3NzAwMzc5NDg5IC8qIFByb2Nlc3NT
dXNwZW5kTWVkaWFCdWZmZXJpbmcubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQuY3BwCmluZGV4IGI3MzI2MzM0NGZlMWY2ZTllYjBlNDJhMjZlNzJjNGZiMmYzOTBmMzYuLjI2
MDMwMzdkMDI4Yjk5NWM4MmZlYmJjM2FhN2M3ZGJiMmE0MDUwMmQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50LmNwcApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJUZXN0LmgiCiAKICNpbmNsdWRlIDxXZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50Lmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgpAQCAtMzAwLDQgKzMwMSwyMyBAQCBURVNU
KFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkU291cmNlTm9uY2UpCiAgICAgQVNTRVJU
X0ZBTFNFKGVwaGVtZXJhbE5vbmNlLmlzVmFsaWQoKSk7CiB9CiAKK1RFU1QoUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQsIEludmFsaWRCbGluZGVkU2VjcmV0KQoreworICAgIGNvbnN0IGNoYXIgc2Vy
dmVyUHVibGljS2V5QmFzZTY0VVJMW10gPSAiTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0Fn
OEFNSUlDQ2dLQ0FnRUF6YjFkVGhydFl3Vmg0NlNqSW5lZ0toQXFwYkp3bTFYblRCQ3Z5YlNLOHpr
NTNSMEFtMWhHMzNBVkY1SjFscVlmMzZ3cDY2M0dhc2NsSHRxenZ4RlpJdkRBMURVU0g0YVp6X2ZE
SENUVHhFZUpWUE9SUzN6Tk4yVWpXd2J0bndzaDRCbURUaS16X2NEbjBMQXoySnVaeUtseUZ0NUdn
VkxBUXZMOUgzVkxIVTlfWEhOSy11Ym95WGZjSFJUdHJEbnB1M2M2d3ZYNWRkLUFKb0xtSVFUWkJF
SmZWa3hCR3puazFxS0hqYzZuQVNBaXJLRl93SkNudXdBSzhDNkJBY2pOY3dVV0NlS3AwWUVDekNY
VS0tSlhkMk9FVS1RaHhQQzY3ZmFpRE9oM1YwdmxmcVpMdHJsYm5hblVDS3J2aHc3R2FHT0dZb3RJ
cm5adHVOZnhDMTRkX1hOVmQxRlM4bkhqUlRIbkVnd19qbmxTc3NmZ1N0ejB1SnRjbWtmZ29KQnZP
RTRtSVJwaTdpU2xSZlhOa0tzV1gxSi1nd2NuQ1ZvNXUwdUpFVzZYNk55dkVHWUo4dzVCUGZ3c1F1
Szl5LTRaN2lrdDlJT3VjRUhZN1RoRG1pOVROTmhIQlZqMEd1NHdHb1NqcTNhNnZMNU4xMFpTSFhv
cTFYZ2ZHUHJtSGhoTDkwY2p2V29ub3lPWHNVcWxYRXpUakQyVzk4OTdRLU14OUJVTnJHUVBxbUl4
OEY1TXd4V2NPcnllOFdScDRRODhuMllTVW5WN0M4YXlsZDN2MUZoN041amVTcWVWbXREVlJZVG4y
c1ZmTnFnWHJ6Z2RpZ0pjUVI4dkZFTnU2bnpGUHdzclhQTWFDaUxVblpOVW1RMVpTTFFlUXloWVh4
SHFSSnJudUNEV1hMa0NBd0VBQVEiOworCisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgcGNt
OworICAgIGF1dG8gc291cmNlU2VjcmV0VG9rZW4gPSBwY20udG9rZW5TaWduYXR1cmVKU09OKHNl
cnZlclB1YmxpY0tleUJhc2U2NFVSTCk7CisgICAgRVhQRUNUX0VRKHNvdXJjZVNlY3JldFRva2Vu
LT5hc09iamVjdCgpLT5zaXplKCksIDB1bCk7CisKKyAgICBhdXRvIGVwaGVtZXJhbE5vbmNlID0g
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlIHsgIkFCQ0RFRmFi
Y2RlZjAxMjM0NTY3ODkiX3MgfTsKKyAgICBFWFBFQ1RfVFJVRShlcGhlbWVyYWxOb25jZS5pc1Zh
bGlkKCkpOworICAgIHBjbS5zZXRFcGhlbWVyYWxTb3VyY2VOb25jZShXVEZNb3ZlKGVwaGVtZXJh
bE5vbmNlKSk7CisKKyAgICBzb3VyY2VTZWNyZXRUb2tlbiA9IHBjbS50b2tlblNpZ25hdHVyZUpT
T04oc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKTsKKyAgICBFWFBFQ1RfRVEoc291cmNlU2VjcmV0
VG9rZW4tPmFzT2JqZWN0KCktPnNpemUoKSwgNHVsKTsKKworICAgIGF1dG8gcGVyc2lzdGVudFRv
a2VuID0gcGNtLmNhbGN1bGF0ZVNvdXJjZVVubGlua2FibGVUb2tlbihlbXB0eVN0cmluZygpKTsK
KyAgICBFWFBFQ1RfRkFMU0UocGVyc2lzdGVudFRva2VuKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40ZTVkNWZiNmQxODIxNzU5ODA3MDU4NzI4YWZiODVkY2IwMmJiZjE2Ci0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29h
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0KQEAgLTAsMCArMSwxMDggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGVzdC5oIgorCisjaWYgSEFW
RShSU0FfQlNTQSkKKworI2luY2x1ZGUgPFNlY3VyaXR5L1NlY0tleVByaXYuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg+CisKK2V4dGVybiAiQyIgeworI2lu
Y2x1ZGUgPGNvcmVjcnlwdG8vY2NfcHJpdi5oPgorI2luY2x1ZGUgPGNvcmVjcnlwdG8vY2Nybmcu
aD4KKyNpbmNsdWRlIDxjb3JlY3J5cHRvL2NjcnNhLmg+CisjaW5jbHVkZSA8Y29yZWNyeXB0by9j
Y3JzYWJzc2EuaD4KK30KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJIHsKKworVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgVmFsaWRCbGlu
ZGVkU2VjcmV0KQoreworICAgIGF1dG8gZXBoZW1lcmFsTm9uY2UgPSBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6RXBoZW1lcmFsU291cmNlTm9uY2UgeyAiQUJDREVGYWJjZGVmMDEyMzQ1Njc4OSJf
cyB9OworICAgIEVYUEVDVF9UUlVFKGVwaGVtZXJhbE5vbmNlLmlzVmFsaWQoKSk7CisKKyAgICBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCBwY207CisgICAgcGNtLnNldEVwaGVtZXJhbFNvdXJjZU5v
bmNlKFdURk1vdmUoZXBoZW1lcmFsTm9uY2UpKTsKKworICAgIC8vIEdlbmVyYXRlIHRoZSBzZXJ2
ZXIga2V5IHBhaXIuCisgICAgc2l6ZV90IG1vZHVsdXNOQml0cyA9IDQwOTY7CisgICAgaW50IGVy
cm9yID0gMDsKKworICAgIHN0cnVjdCBjY3JuZ19zdGF0ZSogcm5nID0gY2NybmcoJmVycm9yKTsK
KyAgICBFWFBFQ1RfRVEoZXJyb3IsIENDRVJSX09LKTsKKworICAgIGNvbnN0IHVpbnQ4X3QgZVtd
ID0geyAweDEsIDB4MDAsIDB4MDEgfTsKKyAgICBjY3JzYV9mdWxsX2N0eF9kZWNsKGNjbl9zaXpl
b2YobW9kdWx1c05CaXRzKSwgcnNhUHJpdmF0ZUtleSk7CisgICAgZXJyb3IgPSBjY3JzYV9nZW5l
cmF0ZV9rZXkobW9kdWx1c05CaXRzLCByc2FQcml2YXRlS2V5LCBzaXplb2YoZSksIGUsIHJuZyk7
CisgICAgRVhQRUNUX0VRKGVycm9yLCBDQ0VSUl9PSyk7CisKKyAgICBjY3JzYV9wdWJfY3R4X3Qg
cnNhUHVibGljS2V5ID0gY2Nyc2FfY3R4X3B1YmxpYyhyc2FQcml2YXRlS2V5KTsKKyAgICBzaXpl
X3QgbW9kdWx1c05CeXRlcyA9IGNjX2NlaWxpbmcoY2Nyc2FfcHVia2V5bGVuZ3RoKHJzYVB1Ymxp
Y0tleSksIDgpOworCisgICAgY29uc3Qgc3RydWN0IGNjcnNhYnNzYV9jaXBoZXJzdWl0ZSAqY2lw
aGVyc3VpdGUgPSAmY2Nyc2Fic3NhX2NpcGhlcnN1aXRlX3JzYTQwOTZfc2hhMzg0OworCisgICAg
c2l6ZV90IGV4cG9ydFNpemUgPSBjY2Rlcl9lbmNvZGVfcnNhX3B1Yl9zaXplKHJzYVB1YmxpY0tl
eSk7CisgICAgYXV0byBwdWJsaWNLZXkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGF0YSBhbGxvY10g
aW5pdFdpdGhMZW5ndGg6ZXhwb3J0U2l6ZV0pOworICAgIGNjZGVyX2VuY29kZV9yc2FfcHViKHJz
YVB1YmxpY0tleSwgc3RhdGljX2Nhc3Q8dWludDhfdCo+KFtwdWJsaWNLZXkgbXV0YWJsZUJ5dGVz
XSksIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihbcHVibGljS2V5IG11dGFibGVCeXRlc10pICsgW3B1
YmxpY0tleSBsZW5ndGhdKTsKKworICAgIGF1dG8gc2VjS2V5ID0gYWRvcHRDRihTZWNLZXlDcmVh
dGVXaXRoRGF0YSgoX19icmlkZ2UgQ0ZEYXRhUmVmKXB1YmxpY0tleS5nZXQoKSwgKF9fYnJpZGdl
IENGRGljdGlvbmFyeVJlZilAeworICAgICAgICAoX19icmlkZ2UgaWQpa1NlY0F0dHJLZXlUeXBl
OiAoX19icmlkZ2UgaWQpa1NlY0F0dHJLZXlUeXBlUlNBLAorICAgICAgICAoX19icmlkZ2UgaWQp
a1NlY0F0dHJLZXlDbGFzczogKF9fYnJpZGdlIGlkKWtTZWNBdHRyS2V5Q2xhc3NQdWJsaWMKKyAg
ICB9LCBuaWwpKTsKKyAgICBFWFBFQ1RfTk9UX05VTEwoc2VjS2V5KTsKKworICAgIGF1dG8gc3Br
aURhdGEgPSBhZG9wdENGKFNlY0tleUNvcHlTdWJqZWN0UHVibGljS2V5SW5mbyhzZWNLZXkuZ2V0
KCkpKTsKKyAgICBhdXRvICpuc1Nwa2lEYXRhID0gKF9fYnJpZGdlIE5TRGF0YSAqKXNwa2lEYXRh
LmdldCgpOworCisgICAgLy8gQ29udGludWUgdGhlIHRlc3QuCisgICAgYXV0byBzb3VyY2VTZWNy
ZXRUb2tlbiA9IHBjbS50b2tlblNpZ25hdHVyZUpTT04oV1RGOjpiYXNlNjRVUkxFbmNvZGUobnNT
cGtpRGF0YS5ieXRlcywgbnNTcGtpRGF0YS5sZW5ndGgpKTsKKyAgICBFWFBFQ1RfRVEoc291cmNl
U2VjcmV0VG9rZW4tPmFzT2JqZWN0KCktPnNpemUoKSwgNHVsKTsKKyAgICBFWFBFQ1RfU1RSRVEo
c291cmNlU2VjcmV0VG9rZW4tPmdldFN0cmluZygic291cmNlX2VuZ2FnZW1lbnRfdHlwZSJfcyku
dXRmOCgpLmRhdGEoKSwgImNsaWNrIik7CisgICAgRVhQRUNUX1NUUkVRKHNvdXJjZVNlY3JldFRv
a2VuLT5nZXRTdHJpbmcoInNvdXJjZV9ub25jZSJfcykudXRmOCgpLmRhdGEoKSwgIkFCQ0RFRmFi
Y2RlZjAxMjM0NTY3ODkiKTsKKyAgICBFWFBFQ1RfRkFMU0Uoc291cmNlU2VjcmV0VG9rZW4tPmdl
dFN0cmluZygic291cmNlX3NlY3JldF90b2tlbiJfcykuaXNFbXB0eSgpKTsKKyAgICBFWFBFQ1Rf
RVEoc291cmNlU2VjcmV0VG9rZW4tPmdldEludGVnZXIoInZlcnNpb24iX3MpLCAyKTsKKworICAg
IC8vIEdlbmVyYXRlIHRoZSBzaWduYXR1cmUuCisgICAgVmVjdG9yPHVpbnQ4X3Q+IGJsaW5kZWRN
ZXNzYWdlOworICAgIGJhc2U2NFVSTERlY29kZShzb3VyY2VTZWNyZXRUb2tlbi0+Z2V0U3RyaW5n
KCJzb3VyY2Vfc2VjcmV0X3Rva2VuIl9zKSwgYmxpbmRlZE1lc3NhZ2UpOworCisgICAgYXV0byBi
bGluZGVkU2lnbmF0dXJlID0gYWRvcHROUyhbW05TTXV0YWJsZURhdGEgYWxsb2NdIGluaXRXaXRo
TGVuZ3RoOiBtb2R1bHVzTkJ5dGVzXSk7CisgICAgY2Nyc2Fic3NhX3NpZ25fYmxpbmRlZF9tZXNz
YWdlKGNpcGhlcnN1aXRlLCByc2FQcml2YXRlS2V5LCBibGluZGVkTWVzc2FnZS5kYXRhKCksIGJs
aW5kZWRNZXNzYWdlLnNpemUoKSwgc3RhdGljX2Nhc3Q8dWludDhfdCAqPihbYmxpbmRlZFNpZ25h
dHVyZSBtdXRhYmxlQnl0ZXNdKSwgW2JsaW5kZWRTaWduYXR1cmUgbGVuZ3RoXSwgcm5nKTsKKwor
ICAgIC8vIENvbnRpbnVlIHRoZSB0ZXN0LgorICAgIGF1dG8gcGVyc2lzdGVudFRva2VuID0gcGNt
LmNhbGN1bGF0ZVNvdXJjZVVubGlua2FibGVUb2tlbihXVEY6OmJhc2U2NFVSTEVuY29kZShbYmxp
bmRlZFNpZ25hdHVyZSBieXRlc10sIFtibGluZGVkU2lnbmF0dXJlIGxlbmd0aF0pKTsKKyAgICBF
WFBFQ1RfVFJVRShwZXJzaXN0ZW50VG9rZW4pOworICAgIEVYUEVDVF9GQUxTRShwZXJzaXN0ZW50
VG9rZW4tPnRva2VuQmFzZTY0VVJMLmlzRW1wdHkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKHBlcnNp
c3RlbnRUb2tlbi0+a2V5SURCYXNlNjRVUkwuaXNFbXB0eSgpKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
cGVyc2lzdGVudFRva2VuLT5zaWduYXR1cmVCYXNlNjRVUkwuaXNFbXB0eSgpKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYgLy8gRUhBVkUoUlNBX0JTU0EpCg==
</data>
<flag name="commit-queue"
          id="439654"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420946</attachid>
            <date>2021-02-19 02:36:06 -0800</date>
            <delta_ts>2021-02-19 02:39:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222019-20210219023605.patch</filename>
            <type>text/plain</type>
            <size>50702</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJmZDcxYjc4YzVmNThiMjMwZjYwOTg4
N2E1MDM4ZjRmYjk5NTdkZjIuLjdkMzYxMzZlYjI0YmRiYTc3NTc2ODlmZjM2YTdjNGY0NzRmNTUz
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5f
dGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQg
Y29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcz
NTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2lsYW5kZXIuCisKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1IYXZlLmg6CisgICAgICAgIEFkZHMgYSBjb21waWxlIHRpbWUgZmxhZyBm
b3IgUlNBQlNTQS4KKwogMjAyMS0wMi0xOCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIGV4cGVyaW1lbnRhbCBzdXBwb3J0IGZvciBDU1MgQ29sb3IgNSBSZWxh
dGl2ZSBDb2xvciBTeW50YXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3Njk4MGM0NGM5ZmIwNjAzZTAyZWY3NGY0
NDk1OTU1NDYyY2ZlMWYwLi45YmNhNDE5Y2MwNmVkYjc0ZmQwMmNkMDY1ZGI0ZjRhNzRhZDQyZWNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxq
aWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tl
biBhbmQgY29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzczNTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2lsYW5kZXIuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBBUEkgdGVzdHMuCisKKyAgICAgICAgVGhpcyBwYXRjaCB1dGlsaXpl
cyBSU0FCU1NBIHRvIGdlbmVyYXRlIHNlY3JldCB0b2tlbiBmb3IgUENNIGZyYXVkIHByZXZlbnRp
b24uCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnOgorICAgICAg
ICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICBQYXBlcndvcmsgdG8gbGluayBDcnlwdG9LaXRDQnJpZGdpbmcu
CisKKyAgICAgICAgKiBsb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNl
Ojppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpzZXRFcGhlbWVyYWxTb3VyY2VOb25jZSk6CisgICAgICAgICogbG9hZGVyL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6YXR0cmlidXRlT25TaXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjplcGhlbWVyYWxTb3VyY2VOb25jZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y2xlYXJFcGhlbWVyYWxTb3VyY2VOb25j
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFs
U291cmNlTm9uY2U6OkVwaGVtZXJhbFNvdXJjZU5vbmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNW
YWxpZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6c2V0RXBoZW1lcmFsU291cmNlTm9uY2UpOiBEZWxldGVkLgorICAgICAgICBHcm91
cHMgZnVuY3Rpb25hbGl0aWVzIGJlaGluZCBIQVZFX1JTQV9CU1NBLgorCisgICAgICAgICogbG9h
ZGVyL2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW06IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmJsaW5kZWRTZWNyZXRKc29uKToK
KyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpjYWxjdWxhdGVQZXJz
aXN0ZW50QmxpbmRlZFRva2VuKToKKyAgICAgICAgSW50cm9kdWNlcyBuZXcgbWV0aG9kcyB0byBn
ZW5lcmF0ZSB0aGUgYmxpbmRlZCBzZWNyZXRzIGFuZCB1bmxpbmthYmxlIHRva2Vucy4KKwogMjAy
MS0wMi0xOSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFBD
TTogUmVxdWVzdCBzZXJ2ZXIgcHVibGljIGtleSB0byBnZW5lcmF0ZSBzZWNyZXQgdG9rZW4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaCBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCBhNmNiMTFmYmJlYjJmYjMwNjljNmZm
MDgyMDk4YjRiYTYzNmUyYTQxLi5kZWRkM2FlM2FjNDYyOGRhYmUxMDI3ZmVmMTQzMzBlMGVkZmM2
NWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKKysr
IGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCkBAIC01ODcsNyArNTg3LDcg
QEAKICNlbmRpZgogCiAjaWYgIWRlZmluZWQoRU5BQkxFX1dFQlhSKSAmJiAoSEFWRShXRUJYUl9J
TlRFUk5BTFMpIHx8IChVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiBQTEFURk9STShNQUMpICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwKSkKLSNkZWZpbmUgRU5B
QkxFX1dFQlhSIDEKKyNkZWZpbmUgRU5BQkxFX1dFQlhSIDAKICNlbmRpZgogCiAjaWYgIWRlZmlu
ZWQoRU5BQkxFX1dFQl9BUElfU1RBVElTVElDUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKaW5kZXggMDQ4
NmZjZTJjNDE4NmQyZDhiZjI1OTEyNTU5NmU4NjM5Y2QzNDUxMS4uZGExNWZkN2RlN2VlNWM4YWFm
MDM0OWZmMTAyOGY3MmU1Njk1NGFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZv
cm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKQEAgLTg4OCwzICs4
ODgsOCBAQAogI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMjAwMDAKICNkZWZpbmUgSEFWRV9TVEFUSUNfRk9OVF9SRUdJU1RSWSAxCiAjZW5k
aWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTIwMDAwKSBcCisgICAgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTUwMDAwKQorI2RlZmluZSBIQVZFX1JTQV9CU1NBIDEKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDJlZGJjYzljMDM4ODc1ZWFlNDAyY2E1ZDU3OTU0OGRhMDdjZTc0NmUuLjg4NDkw
ZTBkOTk3MjdhODc5NjVlYjVjYTBhOGU2MjBiMGE0ZjFkZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzOCw2ICsxMzgsOCBA
QAogCQk1NzBBQjhGOTIwQUY2RTNEMDBCOEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBBQjhGODIwQUY2
RTNEMDBCOEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJLmggKi87IH07CiAJCTU3MkExMDc4MjJC
NDU2RjUwMEY0MTBDOCAvKiBBdXRoS2l0U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJBMTA3NzIyQjQ1NkY1MDBGNDEwQzggLyogQXV0aEtpdFNQ
SS5oICovOyB9OwogCQk1NzZDQTlENjIyQjg1NEFCMDAzMDE0M0MgLyogQXBwU1NPU1BJLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzZDQTlENTIyQjg1
NEFCMDAzMDE0M0MgLyogQXBwU1NPU1BJLmggKi87IH07CisJCTU3RjFDOTA5MjVEQ0YwQ0YwMEU4
RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGMUM5MDcyNURDRjBDRjAwRThGNkVBIC8qIENy
eXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmggKi87IH07CisJCTU3RjFDOTBBMjVEQ0YwQ0YwMEU4
RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RjFDOTA4MjVEQ0YwQ0YwMEU4RjZFQSAvKiBD
cnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbSAqLzsgfTsKIAkJNTdGRDMxOEEyMkIzNTkzRTAw
OEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTdGRDMxODkyMkIzNTkzRTAwOEQwRThCIC8qIEFwcFNTT1NvZnRM
aW5rLm1tICovOyB9OwogCQk1N0ZEMzE4QjIyQjM1OTg5MDA4RDBFOEIgLyogQXBwU1NPU29mdExp
bmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RkQz
MTg4MjJCMzU5MkYwMDhEMEU4QiAvKiBBcHBTU09Tb2Z0TGluay5oICovOyB9OwogCQk1QzdDNzg3
MzIzQUMzRTc3MDA2NUY0N0UgLyogTWFuYWdlZENvbmZpZ3VyYXRpb25Tb2Z0TGluay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM3Qzc4NzEyM0FDM0U3
NzAwNjVGNDdFIC8qIE1hbmFnZWRDb25maWd1cmF0aW9uU29mdExpbmsuaCAqLzsgfTsKQEAgLTM0
MSw2ICszNDMsOCBAQAogCQk1NzBBQjhGODIwQUY2RTNEMDBCOEJFODcgLyogTlNYUENDb25uZWN0
aW9uU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TWFBDQ29ubmVjdGlvblNQSS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1NzJBMTA3NzIyQjQ1NkY1MDBGNDEwQzggLyogQXV0aEtpdFNQ
SS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoS2l0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU3NkNBOUQ1MjJCODU0QUIwMDMwMTQzQyAvKiBBcHBTU09TUEkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQXBwU1NPU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3RjFDOTA3
MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1N0YxQzkwODI1RENGMENGMDBFOEY2RUEgLyogQ3J5cHRvS2l0Q0JyaWRnaW5n
U29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0
TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGRDMxODgyMkIzNTkyRjAw
OEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFwcFNTT1NvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RkQz
MTg5MjJCMzU5M0UwMDhEMEU4QiAvKiBBcHBTU09Tb2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFwcFNTT1NvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1QzdDNzg3MTIzQUMzRTc3MDA2NUY0N0UgLyogTWFuYWdlZENvbmZp
Z3VyYXRpb25Tb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYW5h
Z2VkQ29uZmlndXJhdGlvblNvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC02OTEsNiArNjk1LDggQEAKIAkJCQk1N0ZEMzE4OTIyQjM1OTNFMDA4RDBFOEIgLyogQXBwU1NP
U29mdExpbmsubW0gKi8sCiAJCQkJMDc3RTg3QjAyMjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91bmRh
dGlvblNvZnRMaW5rLmggKi8sCiAJCQkJMDc3RTg3QUYyMjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91
bmRhdGlvblNvZnRMaW5rLm1tICovLAorCQkJCTU3RjFDOTA3MjVEQ0YwQ0YwMEU4RjZFQSAvKiBD
cnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oICovLAorCQkJCTU3RjFDOTA4MjVEQ0YwQ0YwMEU4
RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbSAqLywKIAkJCQlGNDQyOTE2NjFG
QTUyNzA1MDAyQ0M5M0UgLyogRmlsZVNpemVGb3JtYXR0ZXJDb2NvYS5tbSAqLywKIAkJCQkxQzAy
MkVGQzIyQ0ZFOEUwMDA2REYwMUIgLyogR3VuemlwLmNwcCAqLywKIAkJCQlDREFDQjM1RTIzODcz
RTQ4MDAxOEQ3Q0UgLyogTWVkaWFUb29sYm94U29mdExpbmsuY3BwICovLApAQCAtODI4LDYgKzgz
NCw3IEBACiAJCQkJMUNDRUU0RjUyMEQ4NzE5MzAwNDdCMDk3IC8qIENvcmVVSVNQSS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEM1QUY5MTkxRjQzQTRDNzAwMkVBQzAyIC8qIENvcmVVSVNQSS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUMwOUQwNTMxRTMxQzQ0MTAwNzI1RjE4IC8qIENyeXB0b0RpZ2Vz
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTdGMUM5MDkyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0
b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE0MTFGM0JF
QjQ5MDBEQkMzMTcgLyogRGF0YURldGVjdG9yc0NvcmVTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBDNzc4NThBMUY0NTEzMEYwMEY0RUJCNiAvKiBEYXRhRGV0ZWN0b3JzU1BJLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwQzVBRjkxQTFGNDNBNEM3MDAyRUFDMDIgLyogRGF0YURldGVjdG9yc1VJU1BJ
LmggaW4gSGVhZGVycyAqLywKQEAgLTEwMzcsNiArMTA0NCw3IEBACiAJCQkJMENGOTlDQTgxRjcz
ODQzNzAwN0VFNzkzIC8qIENvcmVNZWRpYVNvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFDNzdDOEM5MjVENzk3MjAwMDYzNUUwQyAvKiBDb3JlVGV4dFNvZnRMaW5rLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFDMDlEMDU2MUUzMUM0NjUwMDcyNUYxOCAvKiBDcnlwdG9EaWdlc3RDb21t
b25DcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTdGMUM5MEEyNURDRjBDRjAwRThGNkVB
IC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTEx
NzVCNTgxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGNDQyOTE2NDFGQTUyNjcwMDAyQ0M5M0UgLyogRmlsZVNpemVGb3JtYXR0
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ0MjkxNjgxRkE1MjcwNTAwMkNDOTNFIC8qIEZp
bGVTaXplRm9ybWF0dGVyQ29jb2EubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsuaCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yOTkwZDRmZTVmM2FlZTNhNjM4YWJlMDE1MmM0NjUwMzM5MzA5ZjY4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9DcnlwdG9LaXRDQnJp
ZGdpbmdTb2Z0TGluay5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEhBVkUoUlNBX0JTU0EpCisKKyNpbXBvcnQgPENyeXB0b0tpdENCcmlkZ2luZy9S
U0FCU1NBLmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX0ZSQU1F
V09SS19GT1JfSEVBREVSKFBBTCwgQ3J5cHRvS2l0Q0JyaWRnaW5nKTsKKworU09GVF9MSU5LX0NM
QVNTX0ZPUl9IRUFERVIoUEFMLCBSU0FCU1NBVG9rZW5CbGluZGVyKTsKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0NyeXB0b0tpdENCcmlkZ2luZ1Nv
ZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdp
bmdTb2Z0TGluay5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWJjNzVhY2MzZGQ3NDQ4ZDBhMTA5NTc4ZGJmMzAy
MjRkNzJiNDlhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2Nv
YS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbQpAQCAtMCwwICsxLDM2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgSEFWRShSU0FfQlNTQSkKKworI2ltcG9y
dCA8d3RmL1NvZnRMaW5raW5nLmg+CisKK1NPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ3J5cHRvS2l0Q0JyaWRnaW5nLCBQQUxfRVhQT1JUKTsK
KworU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDcnlwdG9LaXRD
QnJpZGdpbmcsIFJTQUJTU0FUb2tlbkJsaW5kZXIsIFBBTF9FWFBPUlQpOworCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGJmNmFlMTYxODdhYmEwNzE1NzJkYTA3OTIzYWMzMzBi
MjI4ZjY5YzUuLjlkYTUyMWE3YTVkNDY0YTg0MjA5YzNjYjAwOWRkOWExYWVhNjBmMDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlc0NvY29hLnR4dApAQCAtMTY4LDYgKzE2OCw3IEBAIGluc3BlY3Rvci9tYWMvUGFn
ZURlYnVnZ2VyTWFjLm1tCiBsb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcAog
bG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZU1hYy5tbQogbG9hZGVyL2NvY29hL0Rp
c2tDYWNoZU1vbml0b3JDb2NvYS5tbQorbG9hZGVyL2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q29jb2EubW0KIGxvYWRlci9jb2NvYS9TdWJyZXNvdXJjZUxvYWRlckNvY29hLm1tCiBsb2Fk
ZXIvaW9zL0xlZ2FjeVByZXZpZXdMb2FkZXIubW0KIGxvYWRlci9tYWMvRG9jdW1lbnRMb2FkZXJN
YWMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggOGQxZmZmZWJlZmVmMjBjNjBjOTA1MDliYWM3MWY0MjNiNDNhNmM0Ni4uMjI0
OGU3N2M4Y2M3NDY5ZmI3MGE1YmYxYzljOWRlYzkzZDZhNDhmYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTQxNiw2ICs5NDE2
LDcgQEAKIAkJNTdFRUFBNTcxRUEwQUZCQjAwNzAxMTI0IC8qIENvbW1vbkNyeXB0b0RFUlV0aWxp
dGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb21tb25Dcnlw
dG9ERVJVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0VGNUU1
RjFEMjBDODM5MDAxNzFFNjAgLyogVGV4dENvZGVjUmVwbGFjZW1lbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENvZGVjUmVwbGFjZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTdFRjVFNjExRDIwRDI4NzAwMTcxRTYwIC8qIFRleHRDb2RlY1Jl
cGxhY2VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRD
b2RlY1JlcGxhY2VtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTdGMUM4
RTMyNURDNkVFNzAwRThGNkVBIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudENvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0Y4MjczOTFEQjcy
QzIyMDA5RDJCRjQgLyogUnNhSGFzaGVkS2V5R2VuUGFyYW1zLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSc2FIYXNoZWRL
ZXlHZW5QYXJhbXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0ZFREQzRDFE
QjZENDdGMDBFQjk2RjUgLyogUnNhS2V5R2VuUGFyYW1zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSc2FLZXlHZW5QYXJh
bXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0ZFREQzRTFEQjZENTkyMDBF
Qjk2RjUgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTczMSw3ICs5NzMyLDcgQEAKIAkJNkEyMkU4NzIx
RjEwNDJDNDAwRjU0NkMzIC8qIEluc3BlY3RvckNhbnZhcy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBJbnNwZWN0b3JDYW52YXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QTcy
Nzk4ODFGMTZDMjlCMDAzRjM5QjggLyogSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZBNzI3OTg5MUYxNkMyOUIwMDNGMzlCOCAvKiBJbnNw
ZWN0b3JTaGFkZXJQcm9ncmFtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluc3BlY3RvclNoYWRlclByb2dyYW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk2QjBBMDdGMDIxRkE0QjVDMDBENTczOTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNkIwQTA3RjAyMUZBNEI1QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByaXZhdGVD
bGlja01lYXN1cmVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCMEEwN0Yx
MjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTZCMUY0ODBGMjI5ODlFQzQwMERFOEI4MiAvKiBDcm9zc1NpdGVOYXZpZ2F0
aW9uRGF0YVRyYW5zZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyb3NzU2l0ZU5hdmlnYXRpb25EYXRh
VHJhbnNmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkI0RDQxMkIyMzk4M0Y4
ODAwMjQ5NEMyIC8qIExvZ2dlZEluU3RhdHVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvZ2dlZEluU3Rh
dHVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjk0OSw2ICsyMjk1MCw3IEBA
CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk3RURBQUZDODE5QTJDQkQxMDAzNERGRDEgLyogRGlza0Nh
Y2hlTW9uaXRvckNvY29hLmggKi8sCiAJCQkJN0U0REUxMEMxOThCMTBCNjAwNTFDQjAyIC8qIERp
c2tDYWNoZU1vbml0b3JDb2NvYS5tbSAqLywKKwkJCQk1N0YxQzhFMzI1REM2RUU3MDBFOEY2RUEg
LyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbSAqLywKIAkJCQk3RThGQURDMzE5OUE5
NUIxMDA3MTQ5NjggLyogU3VicmVzb3VyY2VMb2FkZXJDb2NvYS5tbSAqLywKIAkJCSk7CiAJCQlw
YXRoID0gY29jb2E7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50LmNwcAppbmRleCA4YTk3M2YwMzQ1NDQ1NDc1NGQwMTk1NGFmM2ZhZjhiOGZhZGI1
OGNkLi5lNTZjOTQ1MjI5YTU5Njk3M2RiNWE3YjUwZWEyMTQwZGUxNWE4ZDQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAgLTM3
LDcgKzM3LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IGNoYXIgcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRUcmlnZ2VyQXR0cmlidXRpb25QYXRoW10gPSAiLy53ZWxsLWtu
b3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvdHJpZ2dlci1hdHRyaWJ1dGlvbi8iOwotc3Rh
dGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVBhdGhb
XSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC9zaWduLXVubGlua2Fi
bGUtdG9rZW4vIjsKK3N0YXRpYyBjb25zdCBjaGFyIHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9r
ZW5TaWduYXR1cmVQYXRoW10gPSAiLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1l
bnQvc2lnbi1zZWNyZXQtdG9rZW4vIjsKIHN0YXRpYyBjb25zdCBjaGFyIHByaXZhdGVDbGlja01l
YXN1cmVtZW50VG9rZW5QdWJsaWNLZXlQYXRoW10gPSAiLy53ZWxsLWtub3duL3ByaXZhdGUtY2xp
Y2stbWVhc3VyZW1lbnQvZ2V0LXVubGlua2FibGUtdG9rZW4tcHVibGljLWtleS8iOwogc3RhdGlj
IGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRSZXBvcnRBdHRyaWJ1dGlvblBhdGhb
XSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC9yZXBvcnQtYXR0cmli
dXRpb24vIjsKIGNvbnN0IHNpemVfdCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9u
VHJpZ2dlckRhdGFQYXRoU2VnbWVudFNpemUgPSAyOwpAQCAtMTE2LDE1ICsxMTYsMTUgQEAgYm9v
bCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6aGFzSGlnaGVyUHJpb3JpdHlUaGFuKGNvbnN0IFBy
aXZhdGVDbGlja01lYXN1cmVtZW4KICAgICByZXR1cm4gbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRh
LT5wcmlvcml0eSA+IG90aGVyLm1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YS0+cHJpb3JpdHk7CiB9
CiAKLVVSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6dG9rZW5TaWduYXR1cmVVUkwoKSBjb25z
dAorVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydFVSTCgpIGNv
bnN0CiB7Ci0gICAgaWYgKCFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlIHx8ICFtX2VwaGVtZXJhbFNv
dXJjZU5vbmNlLT5pc1ZhbGlkKCkpCisgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVy
biBVUkwoKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoImh0dHBzOi8vIik7CiAgICAgYnVpbGRlci5hcHBlbmQobV9zb3VyY2VTaXRlLnJl
Z2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKLSAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwocHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVBhdGgpOworICAgIGJ1aWxkZXIuYXBw
ZW5kTGl0ZXJhbChwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFJlcG9ydEF0dHJpYnV0aW9uUGF0aCk7
CiAKICAgICBVUkwgdXJsIHsgVVJMKCksIGJ1aWxkZXIudG9TdHJpbmcoKSB9OwogICAgIGlmICh1
cmwuaXNWYWxpZCgpKQpAQCAtMTMzLDEyICsxMzMsNTEgQEAgVVJMIFByaXZhdGVDbGlja01lYXN1
cmVtZW50Ojp0b2tlblNpZ25hdHVyZVVSTCgpIGNvbnN0CiAgICAgcmV0dXJuIFVSTCgpOwogfQog
Ci1VUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRva2VuUHVibGljS2V5VVJMKCkgY29uc3QK
K1JlZjxKU09OOjpPYmplY3Q+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJl
cG9ydEpTT04oKSBjb25zdAoreworICAgIGF1dG8gcmVwb3J0RGV0YWlscyA9IEpTT046Ok9iamVj
dDo6Y3JlYXRlKCk7CisgICAgaWYgKCFtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEgfHwgIWlzVmFs
aWQoKSkKKyAgICAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7CisKKyAgICByZXBvcnREZXRhaWxz
LT5zZXRTdHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5cGUiX3MsICJjbGljayJfcyk7CisgICAg
cmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vfc2l0ZSJfcywgbV9zb3VyY2VTaXRlLnJl
Z2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKKyAgICByZXBvcnREZXRhaWxzLT5zZXRJbnRlZ2Vy
KCJzb3VyY2VfaWQiX3MsIG1fc291cmNlSUQuaWQpOworICAgIHJlcG9ydERldGFpbHMtPnNldFN0
cmluZygiYXR0cmlidXRlZF9vbl9zaXRlIl9zLCBtX2F0dHJpYnV0ZU9uU2l0ZS5yZWdpc3RyYWJs
ZURvbWFpbi5zdHJpbmcoKSk7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigidHJpZ2dl
cl9kYXRhIl9zLCBtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEtPmRhdGEpOworICAgIHJlcG9ydERl
dGFpbHMtPnNldEludGVnZXIoInZlcnNpb24iX3MsIDEpOworICAgIHJldHVybiByZXBvcnREZXRh
aWxzOworfQorCisvLyBNQVJLOiAtIEZyYXVkIFByZXZlbnRpb24KKworc3RhdGljIGNvbnN0ZXhw
ciB1aW50MzJfdCBFcGhlbWVyYWxTb3VyY2VOb25jZVJlcXVpcmVkTnVtYmVyT2ZCeXRlcyA9IDE2
OworCitib29sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6
aXNWYWxpZCgpIGNvbnN0CiB7CisgICAgLy8gRklYTUU6IEludmVzdGlnYXRlIGlmIHdlIGNhbiBk
byB3aXRoIGEgc2ltcGxlIGxlbmd0aCBjaGVjayBpbnN0ZWFkIG9mIGRlY29kaW5nLgorICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE5NDUKKyAgICBWZWN0
b3I8dWludDhfdD4gZGlnZXN0OworICAgIGlmICghYmFzZTY0VVJMRGVjb2RlKG5vbmNlLCBkaWdl
c3QpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGRpZ2VzdC5zaXplKCkgPT0g
RXBoZW1lcmFsU291cmNlTm9uY2VSZXF1aXJlZE51bWJlck9mQnl0ZXM7Cit9CisKK3ZvaWQgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNldEVwaGVtZXJhbFNvdXJjZU5vbmNlKEVwaGVtZXJhbFNv
dXJjZU5vbmNlJiYgbm9uY2UpCit7CisgICAgaWYgKCFub25jZS5pc1ZhbGlkKCkpCisgICAgICAg
IHJldHVybjsKKyAgICBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlID0gV1RGTW92ZShub25jZSk7Cit9
CisKK1VSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6dG9rZW5TaWduYXR1cmVVUkwoKSBjb25z
dAoreworICAgIGlmICghbV9lcGhlbWVyYWxTb3VyY2VOb25jZSB8fCAhbV9lcGhlbWVyYWxTb3Vy
Y2VOb25jZS0+aXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gVVJMKCk7CisKICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJodHRwczovLyIpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kKG1fc291cmNlU2l0ZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmco
KSk7Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9r
ZW5QdWJsaWNLZXlQYXRoKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwocHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVBhdGgpOwogCiAgICAgVVJMIHVybCB7IFVSTCgpLCBi
dWlsZGVyLnRvU3RyaW5nKCkgfTsKICAgICBpZiAodXJsLmlzVmFsaWQoKSkKQEAgLTE0NywyOCAr
MTg2LDEyIEBAIFVSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6dG9rZW5QdWJsaWNLZXlVUkwo
KSBjb25zdAogICAgIHJldHVybiBVUkwoKTsKIH0KIAotUmVmPEpTT046Ok9iamVjdD4gUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OnRva2VuU2lnbmF0dXJlSlNPTigpIGNvbnN0Ci17Ci0gICAgYXV0
byByZXBvcnREZXRhaWxzID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKLSAgICBpZiAoIW1fZXBo
ZW1lcmFsU291cmNlTm9uY2UgfHwgIW1fZXBoZW1lcmFsU291cmNlTm9uY2UtPmlzVmFsaWQoKSkK
LSAgICAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7Ci0KLSAgICByZXBvcnREZXRhaWxzLT5zZXRT
dHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5cGUiX3MsICJjbGljayJfcyk7Ci0gICAgcmVwb3J0
RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vfbm9uY2UiX3MsIG1fZXBoZW1lcmFsU291cmNlTm9u
Y2UtPm5vbmNlKTsKLSAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoInVubGlua2FibGVfdG9r
ZW4iX3MsICJUT0RPIl9zKTsKLSAgICByZXBvcnREZXRhaWxzLT5zZXRJbnRlZ2VyKCJ2ZXJzaW9u
Il9zLCAyKTsKLSAgICByZXR1cm4gcmVwb3J0RGV0YWlsczsKLX0KLQotVVJMIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydFVSTCgpIGNvbnN0CitVUkwgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OnRva2VuUHVibGljS2V5VVJMKCkgY29uc3QKIHsKLSAgICBpZiAoIWlz
VmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIFVSTCgpOwotCiAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiaHR0cHM6Ly8iKTsKICAgICBidWlsZGVy
LmFwcGVuZChtX3NvdXJjZVNpdGUucmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCkpOwotICAgIGJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbChwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFJlcG9ydEF0dHJpYnV0
aW9uUGF0aCk7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKHByaXZhdGVDbGlja01lYXN1cmVt
ZW50VG9rZW5QdWJsaWNLZXlQYXRoKTsKIAogICAgIFVSTCB1cmwgeyBVUkwoKSwgYnVpbGRlci50
b1N0cmluZygpIH07CiAgICAgaWYgKHVybC5pc1ZhbGlkKCkpCkBAIC0xNzcsMTkgKzIwMCwyMSBA
QCBVUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0dHJpYnV0aW9uUmVwb3J0VVJMKCkgY29u
c3QKICAgICByZXR1cm4gVVJMKCk7CiB9CiAKLVJlZjxKU09OOjpPYmplY3Q+IFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydEpTT04oKSBjb25zdAorUmVmPEpTT046Ok9i
amVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRva2VuU2lnbmF0dXJlSlNPTihjb25zdCBT
dHJpbmcmIHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCkKIHsKICAgICBhdXRvIHJlcG9ydERldGFp
bHMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwotICAgIGlmICghbV9hdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhIHx8ICFpc1ZhbGlkKCkpCisgICAgaWYgKCFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlIHx8
ICFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiByZXBv
cnREZXRhaWxzOworCisgICAgYXV0byB0b2tlbiA9IHNvdXJjZVNlY3JldFRva2VuKHNlcnZlclB1
YmxpY0tleUJhc2U2NFVSTCk7CisgICAgaWYgKHRva2VuLmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuIHJlcG9ydERldGFpbHM7CiAKICAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoInNvdXJj
ZV9lbmdhZ2VtZW50X3R5cGUiX3MsICJjbGljayJfcyk7Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0
U3RyaW5nKCJzb3VyY2Vfc2l0ZSJfcywgbV9zb3VyY2VTaXRlLnJlZ2lzdHJhYmxlRG9tYWluLnN0
cmluZygpKTsKLSAgICByZXBvcnREZXRhaWxzLT5zZXRJbnRlZ2VyKCJzb3VyY2VfaWQiX3MsIG1f
c291cmNlSUQuaWQpOwotICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygiYXR0cmlidXRlZF9v
bl9zaXRlIl9zLCBtX2F0dHJpYnV0ZU9uU2l0ZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7
Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigidHJpZ2dlcl9kYXRhIl9zLCBtX2F0dHJp
YnV0aW9uVHJpZ2dlckRhdGEtPmRhdGEpOwotICAgIHJlcG9ydERldGFpbHMtPnNldEludGVnZXIo
InZlcnNpb24iX3MsIDEpOworICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygic291cmNlX25v
bmNlIl9zLCBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5ub25jZSk7CisgICAgcmVwb3J0RGV0YWls
cy0+c2V0U3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIl9zLCB0b2tlbik7CisgICAgcmVwb3J0
RGV0YWlscy0+c2V0SW50ZWdlcigidmVyc2lvbiJfcywgMik7CiAgICAgcmV0dXJuIHJlcG9ydERl
dGFpbHM7CiB9CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKaW5kZXggYzhkOTk0ZjgxNDYzODk3
YWM1MWIyY2EwZjQ4ZjEwODI4NWMyMmU4Zi4uNjBlOGY0Y2FmN2NlYmU4OWI4OTNhZDgxNjJmZWJi
ZGRiMjgyY2M1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50LmgKQEAgLTM2LDYgKzM2LDEwIEBACiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
SGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCitPQkpDX0NMQVNTIFJT
QUJTU0FUb2tlblJlYWR5OworT0JKQ19DTEFTUyBSU0FCU1NBVG9rZW5XYWl0aW5nQWN0aXZhdGlv
bjsKK09CSkNfQ0xBU1MgUlNBQlNTQVRva2VuQmxpbmRlcjsKKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB7CkBAIC0yMDEsMzEgKzIwNSw2IEBA
IHB1YmxpYzoKICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlP
ckRlbGV0ZWQgPSBmYWxzZTsKICAgICB9OwogCi0gICAgc3RydWN0IEVwaGVtZXJhbFNvdXJjZU5v
bmNlIHsKLSAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBSZXF1aXJlZE51bWJlck9m
Qnl0ZXMgPSAxNjsKLQotICAgICAgICBFcGhlbWVyYWxTb3VyY2VOb25jZSgpID0gZGVmYXVsdDsK
LSAgICAgICAgZXhwbGljaXQgRXBoZW1lcmFsU291cmNlTm9uY2UoY29uc3QgU3RyaW5nJiBub25j
ZVN0cmluZykKLSAgICAgICAgICAgIDogbm9uY2UgeyBub25jZVN0cmluZyB9Ci0gICAgICAgIHsK
LSAgICAgICAgfQotCi0gICAgICAgIC8vIEZJWE1FOiBJbnZlc3RpZ2F0ZSBpZiB3ZSBjYW4gZG8g
d2l0aCBhIHNpbXBsZSBsZW5ndGggY2hlY2sgaW5zdGVhZCBvZiBkZWNvZGluZy4KLSAgICAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTk0NQotICAgICAg
ICBib29sIGlzVmFsaWQoKSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICBWZWN0b3I8dWlu
dDhfdD4gZGlnZXN0OwotICAgICAgICAgICAgaWYgKCFiYXNlNjRVUkxEZWNvZGUobm9uY2UsIGRp
Z2VzdCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgcmV0dXJu
IGRpZ2VzdC5zaXplKCkgPT0gUmVxdWlyZWROdW1iZXJPZkJ5dGVzOwotICAgICAgICB9Ci0KLSAg
ICAgICAgU3RyaW5nIG5vbmNlOwotCi0gICAgICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZv
aWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4gc3RhdGljIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5vbmNlPiBkZWNvZGUoRGVjb2RlciYp
OwotICAgIH07Ci0KICAgICBzdHJ1Y3QgUHJpb3JpdHkgewogICAgICAgICBzdGF0aWMgY29uc3Rl
eHByIHVpbnQzMl90IE1heEVudHJvcHkgPSA2MzsKIApAQCAtMjc3LDE2ICsyNTYsMTAgQEAgcHVi
bGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBFeHBlY3RlZDxBdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhLCBTdHJpbmc+IHBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnN0IFVSTCYgcmVkaXJl
Y3RVUkwpOwogICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPFNlY29uZHM+IGF0dHJpYnV0ZUFu
ZEdldEVhcmxpZXN0VGltZVRvU2VuZChBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYpOwogICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgaGFzSGlnaGVyUHJpb3JpdHlUaGFuKGNvbnN0IFByaXZhdGVDbGlj
a01lYXN1cmVtZW50JikgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgVVJMIHRva2VuUHVibGlj
S2V5VVJMKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgVVJMIHRva2VuU2lnbmF0dXJlVVJM
KCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgUmVmPEpTT046Ok9iamVjdD4gdG9rZW5TaWdu
YXR1cmVKU09OKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgVVJMIGF0dHJpYnV0aW9uUmVw
b3J0VVJMKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmPEpTT046Ok9iamVjdD4gYXR0
cmlidXRpb25SZXBvcnRKU09OKCkgY29uc3Q7CiAgICAgY29uc3QgU291cmNlU2l0ZSYgc291cmNl
U2l0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlU2l0ZTsgfTsKICAgICBjb25zdCBBdHRyaWJ1
dGVPblNpdGUmIGF0dHJpYnV0ZU9uU2l0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmlidXRlT25T
aXRlOyB9OwotICAgIHZvaWQgc2V0RXBoZW1lcmFsU291cmNlTm9uY2UoRXBoZW1lcmFsU291cmNl
Tm9uY2UmJiBub25jZSkgeyBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlID0gV1RGTW92ZShub25jZSk7
IH07Ci0gICAgT3B0aW9uYWw8RXBoZW1lcmFsU291cmNlTm9uY2U+IGVwaGVtZXJhbFNvdXJjZU5v
bmNlKCkgY29uc3QgeyByZXR1cm4gIW1fZXBoZW1lcmFsU291cmNlTm9uY2UgPyBXVEY6Om51bGxv
cHQgOiBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5pc1ZhbGlkKCkgPyBtX2VwaGVtZXJhbFNvdXJj
ZU5vbmNlIDogV1RGOjpudWxsb3B0OyB9OwotICAgIHZvaWQgY2xlYXJFcGhlbWVyYWxTb3VyY2VO
b25jZSgpIHsgbV9lcGhlbWVyYWxTb3VyY2VOb25jZSAgPSBXVEY6Om51bGxvcHQ7IH07CiAgICAg
V2FsbFRpbWUgdGltZU9mQWRDbGljaygpIGNvbnN0IHsgcmV0dXJuIG1fdGltZU9mQWRDbGljazsg
fQogICAgIE9wdGlvbmFsPFdhbGxUaW1lPiBlYXJsaWVzdFRpbWVUb1NlbmQoKSBjb25zdCB7IHJl
dHVybiBtX2VhcmxpZXN0VGltZVRvU2VuZDsgfTsKICAgICB2b2lkIHNldEVhcmxpZXN0VGltZVRv
U2VuZChXYWxsVGltZSB0aW1lKSB7IG1fZWFybGllc3RUaW1lVG9TZW5kID0gdGltZTsgfQpAQCAt
Mjk3LDExICsyNzAsMzggQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgc291cmNlRGVzY3Jp
cHRpb24oKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZURlc2NyaXB0aW9uOyB9CiAgICAgY29uc3Qg
U3RyaW5nJiBwdXJjaGFzZXIoKSBjb25zdCB7IHJldHVybiBtX3B1cmNoYXNlcjsgfQogCisgICAg
Ly8gTUFSSzogLSBGcmF1ZCBQcmV2ZW50aW9uCisgICAgc3RydWN0IEVwaGVtZXJhbFNvdXJjZU5v
bmNlIHsKKyAgICAgICAgU3RyaW5nIG5vbmNlOworCisgICAgICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgaXNWYWxpZCgpIGNvbnN0OworCisgICAgICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZv
aWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4gc3RhdGljIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5vbmNlPiBkZWNvZGUoRGVjb2RlciYp
OworICAgIH07CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEVwaGVtZXJhbFNvdXJjZU5v
bmNlKEVwaGVtZXJhbFNvdXJjZU5vbmNlJiYpOworICAgIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJj
ZU5vbmNlPiBlcGhlbWVyYWxTb3VyY2VOb25jZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXBoZW1lcmFs
U291cmNlTm9uY2U7IH07CisgICAgdm9pZCBjbGVhckVwaGVtZXJhbFNvdXJjZU5vbmNlKCkgeyBt
X2VwaGVtZXJhbFNvdXJjZU5vbmNlLnJlc2V0KCk7IH07CisKKyAgICBzdHJ1Y3QgU291cmNlVW5s
aW5rYWJsZVRva2VuIHsKKyAgICAgICAgU3RyaW5nIHRva2VuQmFzZTY0VVJMOworICAgICAgICBT
dHJpbmcga2V5SURCYXNlNjRVUkw7CisgICAgICAgIFN0cmluZyBzaWduYXR1cmVCYXNlNjRVUkw7
CisgICAgfTsKKworICAgIFdFQkNPUkVfRVhQT1JUIFVSTCB0b2tlblB1YmxpY0tleVVSTCgpIGNv
bnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFVSTCB0b2tlblNpZ25hdHVyZVVSTCgpIGNvbnN0Owor
CisgICAgV0VCQ09SRV9FWFBPUlQgUmVmPEpTT046Ok9iamVjdD4gdG9rZW5TaWduYXR1cmVKU09O
KGNvbnN0IFN0cmluZyYgc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBPcHRpb25hbDxTb3VyY2VVbmxpbmthYmxlVG9rZW4+IGNhbGN1bGF0ZVNvdXJjZVVubGlu
a2FibGVUb2tlbihjb25zdCBTdHJpbmcmIHNlcnZlclJlc3BvbnNlQmFzZTY0VVJMKTsKKwogICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAg
ICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ+IGRlY29kZShEZWNvZGVyJik7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBpc1ZhbGlk
KCkgY29uc3Q7CisgICAgU3RyaW5nIHNvdXJjZVNlY3JldFRva2VuKGNvbnN0IFN0cmluZyYgc2Vy
dmVyUHVibGljS2V5QmFzZTY0VVJMKTsKIAogICAgIFNvdXJjZUlEIG1fc291cmNlSUQ7CiAgICAg
U291cmNlU2l0ZSBtX3NvdXJjZVNpdGU7CkBAIC0zMTAsOSArMzEwLDE3IEBAIHByaXZhdGU6CiAg
ICAgU3RyaW5nIG1fcHVyY2hhc2VyOwogICAgIFdhbGxUaW1lIG1fdGltZU9mQWRDbGljazsKIAot
ICAgIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5vbmNlPiBtX2VwaGVtZXJhbFNvdXJjZU5vbmNl
OwogICAgIE9wdGlvbmFsPEF0dHJpYnV0aW9uVHJpZ2dlckRhdGE+IG1fYXR0cmlidXRpb25Ucmln
Z2VyRGF0YTsKICAgICBPcHRpb25hbDxXYWxsVGltZT4gbV9lYXJsaWVzdFRpbWVUb1NlbmQ7CisK
KyAgICBzdHJ1Y3QgU291cmNlU2VjcmV0VG9rZW4geworICAgICAgICBSZXRhaW5QdHI8UlNBQlNT
QVRva2VuQmxpbmRlcj4gYmxpbmRlcjsKKyAgICAgICAgUmV0YWluUHRyPFJTQUJTU0FUb2tlbldh
aXRpbmdBY3RpdmF0aW9uPiB3YWl0aW5nVG9rZW47CisgICAgICAgIFJldGFpblB0cjxSU0FCU1NB
VG9rZW5SZWFkeT4gcmVhZHlUb2tlbjsKKyAgICB9OworCisgICAgT3B0aW9uYWw8RXBoZW1lcmFs
U291cmNlTm9uY2U+IG1fZXBoZW1lcmFsU291cmNlTm9uY2U7CisgICAgU291cmNlU2VjcmV0VG9r
ZW4gbV9zb3VyY2VTZWNyZXRUb2tlbjsKIH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxZTY2NmFhMmYwZGU4MzEzYTZhYzQwYWJk
MDM3OWNlYmYzNjNlYWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbQpAQCAtMCwwICsxLDkwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oIgorCisjaW1wb3J0IDxwYWwvY29jb2EvQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExp
bmsuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OnNvdXJjZVNlY3JldFRva2VuKGNvbnN0IFN0cmluZyYgc2VydmVyUHVibGljS2V5QmFz
ZTY0VVJMKQoreworI2lmIEhBVkUoUlNBX0JTU0EpCisgICAgeworICAgICAgICBWZWN0b3I8dWlu
dDhfdD4gc2VydmVyUHVibGljS2V5RGF0YTsKKyAgICAgICAgaWYgKCFiYXNlNjRVUkxEZWNvZGUo
c2VydmVyUHVibGljS2V5QmFzZTY0VVJMLCBzZXJ2ZXJQdWJsaWNLZXlEYXRhKSkKKyAgICAgICAg
ICAgIHJldHVybiBlbXB0eVN0cmluZygpOworICAgICAgICBhdXRvIHNlcnZlclB1YmxpY0tleSA9
IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6c2VydmVyUHVibGljS2V5RGF0
YS5kYXRhKCkgbGVuZ3RoOnNlcnZlclB1YmxpY0tleURhdGEuc2l6ZSgpXSk7CisKKyAgICAgICAg
Ly8gRklYTUUoMjIyMDE4KTogQ2hlY2sgZXJyb3IuCisgICAgICAgIG1fc291cmNlU2VjcmV0VG9r
ZW4uYmxpbmRlciA9IGFkb3B0TlMoW1BBTDo6YWxsb2NSU0FCU1NBVG9rZW5CbGluZGVySW5zdGFu
Y2UoKSBpbml0V2l0aFB1YmxpY0tleTpzZXJ2ZXJQdWJsaWNLZXkuZ2V0KCkgZXJyb3I6bnVsbHB0
cl0pOworICAgICAgICBpZiAoIW1fc291cmNlU2VjcmV0VG9rZW4uYmxpbmRlcikKKyAgICAgICAg
ICAgIHJldHVybiBlbXB0eVN0cmluZygpOworICAgIH0KKworICAgIC8vIEZJWE1FKDIyMjAxOCk6
IENoZWNrIGVycm9yLgorICAgIG1fc291cmNlU2VjcmV0VG9rZW4ud2FpdGluZ1Rva2VuID0gW21f
c291cmNlU2VjcmV0VG9rZW4uYmxpbmRlciB0b2tlbldhaXRpbmdBY3RpdmF0aW9uV2l0aENvbnRl
bnQ6bnVsbHB0ciBlcnJvcjpudWxscHRyXTsKKyAgICBpZiAoIW1fc291cmNlU2VjcmV0VG9rZW4u
d2FpdGluZ1Rva2VuKQorICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKworICAgIHJldHVy
biBXVEY6OmJhc2U2NFVSTEVuY29kZShbbV9zb3VyY2VTZWNyZXRUb2tlbi53YWl0aW5nVG9rZW4g
YmxpbmRlZE1lc3NhZ2VdLmJ5dGVzLCBbbV9zb3VyY2VTZWNyZXRUb2tlbi53YWl0aW5nVG9rZW4g
YmxpbmRlZE1lc3NhZ2VdLmxlbmd0aCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzZXJ2ZXJQ
dWJsaWNLZXlCYXNlNjRVUkwpOworICAgIHJldHVybiBlbXB0eVN0cmluZygpOworI2VuZGlmIC8v
IEhBVkUoUlNBX0JTU0EpCit9CisKK2F1dG8gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmNhbGN1
bGF0ZVNvdXJjZVVubGlua2FibGVUb2tlbihjb25zdCBTdHJpbmcmIHNlcnZlclJlc3BvbnNlQmFz
ZTY0VVJMKSAtPiBPcHRpb25hbDxTb3VyY2VVbmxpbmthYmxlVG9rZW4+Cit7CisjaWYgSEFWRShS
U0FfQlNTQSkKKyAgICBpZiAoIW1fc291cmNlU2VjcmV0VG9rZW4ud2FpdGluZ1Rva2VuKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgeworICAgICAgICBWZWN0b3I8dWludDhf
dD4gc2VydmVyUmVzcG9uc2VEYXRhOworICAgICAgICBpZiAoIWJhc2U2NFVSTERlY29kZShzZXJ2
ZXJSZXNwb25zZUJhc2U2NFVSTCwgc2VydmVyUmVzcG9uc2VEYXRhKSkKKyAgICAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIGF1dG8gc2VydmVyUmVzcG9uc2UgPSBhZG9wdE5T
KFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnNlcnZlclJlc3BvbnNlRGF0YS5kYXRhKCkg
bGVuZ3RoOnNlcnZlclJlc3BvbnNlRGF0YS5zaXplKCldKTsKKworICAgICAgICAvLyBGSVhNRSgy
MjIwMTgpOiBDaGVjayBlcnJvci4KKyAgICAgICAgbV9zb3VyY2VTZWNyZXRUb2tlbi5yZWFkeVRv
a2VuID0gW21fc291cmNlU2VjcmV0VG9rZW4ud2FpdGluZ1Rva2VuIGFjdGl2YXRlVG9rZW5XaXRo
U2VydmVyUmVzcG9uc2U6c2VydmVyUmVzcG9uc2UuZ2V0KCkgZXJyb3I6bnVsbHB0cl07CisgICAg
ICAgIGlmICghbV9zb3VyY2VTZWNyZXRUb2tlbi5yZWFkeVRva2VuKQorICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBTb3VyY2VVbmxpbmthYmxlVG9rZW4gdG9r
ZW47CisgICAgdG9rZW4udG9rZW5CYXNlNjRVUkwgPSBXVEY6OmJhc2U2NFVSTEVuY29kZShbbV9z
b3VyY2VTZWNyZXRUb2tlbi5yZWFkeVRva2VuIHRva2VuQ29udGVudF0uYnl0ZXMsIFttX3NvdXJj
ZVNlY3JldFRva2VuLnJlYWR5VG9rZW4gdG9rZW5Db250ZW50XS5sZW5ndGgpOworICAgIHRva2Vu
LmtleUlEQmFzZTY0VVJMID0gV1RGOjpiYXNlNjRVUkxFbmNvZGUoW21fc291cmNlU2VjcmV0VG9r
ZW4ucmVhZHlUb2tlbiBrZXlJZF0uYnl0ZXMsIFttX3NvdXJjZVNlY3JldFRva2VuLnJlYWR5VG9r
ZW4ga2V5SWRdLmxlbmd0aCk7CisgICAgdG9rZW4uc2lnbmF0dXJlQmFzZTY0VVJMID0gV1RGOjpi
YXNlNjRVUkxFbmNvZGUoW21fc291cmNlU2VjcmV0VG9rZW4ucmVhZHlUb2tlbiBzaWduYXR1cmVd
LmJ5dGVzLCBbbV9zb3VyY2VTZWNyZXRUb2tlbi5yZWFkeVRva2VuIHNpZ25hdHVyZV0ubGVuZ3Ro
KTsKKworICAgIHJldHVybiB0b2tlbjsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHNlcnZlclJl
c3BvbnNlQmFzZTY0VVJMKTsKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworI2VuZGlmIC8vIEhB
VkUoUlNBX0JTU0EpCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VyLmNwcAppbmRleCA3MjliYmI3Njg4OWNhNmIyYjc0NmE1NTI3MTE3MTdjMjg2NjFm
ZTAxLi5hZTZlNDBmMjY3MmQ0YTQxNDkzMmViNGEwZDgxNzYyMGQ5ZDUyYTRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXIuY3BwCkBAIC0xNTcsMTIgKzE1NywxMiBAQCB2b2lkIFByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlcjo6Z2V0VG9rZW5QdWJsaWNLZXkoUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQmJgogICAgICAgICB9CiAKICAgICAgICAgLy8gRklYTUU6IFJlY2VpdmUgYW5kIGV4
dHJhIHRoZSBzZXJ2ZXIgcHVibGljIGtleSwgcmRhcjovLzczNTgyMDMyLgotICAgICAgICBnZXRT
aWduZWRVbmxpbmthYmxlVG9rZW4oV1RGTW92ZShhdHRyaWJ1dGlvbikpOworICAgICAgICBnZXRT
aWduZWRTZWNyZXRUb2tlbihXVEZNb3ZlKGF0dHJpYnV0aW9uKSwgZW1wdHlTdHJpbmcoKSk7CiAg
ICAgfSk7CiAKIH0KIAotdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmdldFNp
Z25lZFVubGlua2FibGVUb2tlbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmIGF0dHJpYnV0aW9u
KQordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmdldFNpZ25lZFNlY3JldFRv
a2VuKFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYgYXR0cmlidXRpb24sIGNvbnN0IFN0cmluZyYg
dG9rZW5QdWJsaWNLZXlCYXNlNjRVUkwpCiB7CiAgICAgaWYgKCFmZWF0dXJlRW5hYmxlZCgpKQog
ICAgICAgICByZXR1cm47CkBAIC0xNzgsMjEgKzE3OCwyMSBAQCB2b2lkIFByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlcjo6Z2V0U2lnbmVkVW5saW5rYWJsZVRva2VuKFByaXZhdGVDbGlja01l
YXN1cgogICAgIGlmICh0b2tlblNpZ25hdHVyZVVSTC5pc0VtcHR5KCkgfHwgIXRva2VuU2lnbmF0
dXJlVVJMLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBsb2FkUGFyYW1l
dGVycyA9IGdlbmVyYXRlTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnNGb3JIdHRwUG9zdChX
VEZNb3ZlKHRva2VuU2lnbmF0dXJlVVJMKSwgYXR0cmlidXRpb24udG9rZW5TaWduYXR1cmVKU09O
KCksIHBjbURhdGFDYXJyaWVkKTsKKyAgICBhdXRvIGxvYWRQYXJhbWV0ZXJzID0gZ2VuZXJhdGVO
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyc0Zvckh0dHBQb3N0KFdURk1vdmUodG9rZW5TaWdu
YXR1cmVVUkwpLCBhdHRyaWJ1dGlvbi50b2tlblNpZ25hdHVyZUpTT04odG9rZW5QdWJsaWNLZXlC
YXNlNjRVUkwpLCBwY21EYXRhQ2FycmllZCk7CiAKLSAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZh
dGVDbGlja01lYXN1cmVtZW50LCAiQWJvdXQgdG8gZmlyZSBhIHVubGlua2FibGUgdG9rZW4gc2ln
bmluZyByZXF1ZXN0LiIpOwotICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVN
ZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCwgTWVzc2FnZUxldmVsOjpMb2csICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQWJvdXQg
dG8gZmlyZSBhIHVubGlua2FibGUgdG9rZW4gc2lnbmluZyByZXF1ZXN0LiJfcyk7CisgICAgUkVM
RUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkFib3V0IHRvIGZpcmUgYSBz
ZWNyZXQgdG9rZW4gc2lnbmluZyByZXF1ZXN0LiIpOworICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJy
b2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpMb2csICJbUHJpdmF0ZSBDbGljayBNZWFz
dXJlbWVudF0gQWJvdXQgdG8gZmlyZSBhIHNlY3JldCB0b2tlbiBzaWduaW5nIHJlcXVlc3QuIl9z
KTsKIAogICAgIG1fcGluZ0xvYWRGdW5jdGlvbihXVEZNb3ZlKGxvYWRQYXJhbWV0ZXJzKSwgW3dl
YWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
JiBlcnJvciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpIHsKICAg
ICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBpZiAo
IWVycm9yLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICB3ZWFrVGhpcy0+bV9uZXR3b3JrUHJvY2Vz
cy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2Uod2Vha1RoaXMtPm1fc2Vzc2lvbklELCBNZXNzYWdl
U291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpFcnJvciwgbWFr
ZVN0cmluZygiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIFJlY2VpdmVkIGVycm9yOiAnIl9z
LCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLCAiJyBmb3IgdW5saW5rYWJsZSB0b2tlbiBz
aWduaW5nIHJlcXVlc3QuIl9zKSk7CisgICAgICAgICAgICB3ZWFrVGhpcy0+bV9uZXR3b3JrUHJv
Y2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2Uod2Vha1RoaXMtPm1fc2Vzc2lvbklELCBNZXNz
YWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpFcnJvciwg
bWFrZVN0cmluZygiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIFJlY2VpdmVkIGVycm9yOiAn
Il9zLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLCAiJyBmb3Igc2VjcmV0IHRva2VuIHNp
Z25pbmcgcmVxdWVzdC4iX3MpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAg
ICAgICAKLSAgICAgICAgLy8gRklYTUU6IFJlY2VpdmUgYW5kIHN0b3JlIHRoZSBzaWduZWQgdW5s
aW5rYWJsZSB0b2tlbiwgcmRhcjovLzczNTgyMDMyLgorICAgICAgICAvLyBGSVhNRTogUmVjZWl2
ZSBhbmQgc3RvcmUgdGhlIHNpZ25lZCBzZWNyZXQgdG9rZW4sIHJkYXI6Ly83MzU4MjAzMi4KICAg
ICB9KTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgKaW5kZXggNTczZjMzY2UyYzM1NjM4
YzYwZGVlYTdlNGY5YTc5NjkxY2YwYzg0Mi4uMGJhZjliNDA2ZjEyOWU0M2NkMjFlZmEyNDFhMzY5
ZWFmNzZhZGI5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oCkBAIC03MCw3ICs3MCw3IEBA
IHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2b2lkIGdldFRva2VuUHVibGljS2V5KFByaXZhdGVD
bGlja01lYXN1cmVtZW50JiYpOwotICAgIHZvaWQgZ2V0U2lnbmVkVW5saW5rYWJsZVRva2VuKFBy
aXZhdGVDbGlja01lYXN1cmVtZW50JiYpOworICAgIHZvaWQgZ2V0U2lnbmVkU2VjcmV0VG9rZW4o
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiwgY29uc3QgU3RyaW5nJiB0b2tlblB1YmxpY0tleUJh
c2U2NFVSTCk7CiAgICAgdm9pZCBjbGVhclNlbnRBdHRyaWJ1dGlvbihQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCYmKTsKICAgICB2b2lkIGF0dHJpYnV0ZShjb25zdCBTb3VyY2VTaXRlJiwgY29uc3Qg
QXR0cmlidXRlT25TaXRlJiwgQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmKTsKICAgICB2b2lkIGZp
cmVDb252ZXJzaW9uUmVxdWVzdChjb25zdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc0ZTZlN2Y5
NWNiYWQ0ODYwYzUxMWZjZjQ3ZDI4NjZjYjk3ODA5NDYuLjA2MzU4YmU4MWJkZGNjNjhjYjZkNTMx
MzJlNTc0Y2Q4NGZmM2ZiMjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wMi0xNiAgSmlld2VuIFRhbiAgPGpp
ZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogR2VuZXJhdGUgc2VjcmV0IHRva2Vu
IGFuZCBjb3JyZXNwb25kaW5nIHVubGlua2FibGUgdG9rZW4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjAxOQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzM1ODE0MTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9obiBXaWxhbmRlci4KKworICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgQWRkIHRlc3Rz
LgorCiAyMDIxLTAyLTE5ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUENNOiBSZXF1ZXN0IHNlcnZlciBwdWJsaWMga2V5IHRvIGdlbmVyYXRlIHNlY3JldCB0
b2tlbgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0
V2ViS2l0QVBJLnhjY29uZmlnIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9U
ZXN0V2ViS2l0QVBJLnhjY29uZmlnCmluZGV4IDcwYmU4YWE3NzA0M2I3NDE3N2Q0MDZkMDNjMzE0
OTYzOGE5OWYxZTkuLmQzYTQ0YThhYzU3ZDA3NjBkM2M1MmQwZWQxODk5MDViNzI1ZGIxOGIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQ
SS54Y2NvbmZpZworKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RX
ZWJLaXRBUEkueGNjb25maWcKQEAgLTU1LDYgKzU1LDEyIEBAIFdLX1BERktJVF9MREZMQUdTX21h
Y29zeCA9IC1mcmFtZXdvcmsgUERGS2l0OwogV0tfUERGS0lUX0xERkxBR1NfaXBob25lb3MgPSAt
ZnJhbWV3b3JrIFBERktpdDsKIFdLX1BERktJVF9MREZMQUdTX2lwaG9uZXNpbXVsYXRvciA9IC1m
cmFtZXdvcmsgUERGS2l0OwogCitXS19TWVNURU1fTERGTEFHUyA9ICQoV0tfU1lTVEVNX0xERkxB
R1NfJChXS19QTEFURk9STV9OQU1FKSk7CitXS19TWVNURU1fTERGTEFHU19tYWNvc3ggPSAtZnJh
bWV3b3JrIFN5c3RlbTsKK1dLX1NZU1RFTV9MREZMQUdTX2lwaG9uZW9zID0gJChXS19TWVNURU1f
TERGTEFHU18kKFdLX0lPU18xNSkpOworV0tfU1lTVEVNX0xERkxBR1NfaXBob25lc2ltdWxhdG9y
ID0gJChXS19TWVNURU1fTERGTEFHU18kKFdLX0lPU18xNSkpOworV0tfU1lTVEVNX0xERkxBR1Nf
SU9TX1NJTkNFXzE1ID0gLWZyYW1ld29yayBTeXN0ZW07CisKIFdLX0hJRF9MREZMQUdTID0gJChX
S19ISURfTERGTEFHU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIFdLX0hJRF9MREZMQUdTX21hY29z
eCA9ICQoV0tfSElEX0xERkxBR1MkKFdLX01BQ09TXzEwMTUpKTsKIFdLX0hJRF9MREZMQUdTX01B
Q09TX1NJTkNFXzEwMTUgPSAtZnJhbWV3b3JrIEhJRDsKQEAgLTcxLDcgKzc3LDcgQEAgV0tfT1BF
TkdMX0xERkxBR1NfYXBwbGV0dm9zID0gJChXS19PUEVOR0xfTERGTEFHU19pcGhvbmVvcyk7CiBX
S19PUEVOR0xfTERGTEFHU19hcHBsZXR2c2ltdWxhdG9yID0gJChXS19PUEVOR0xfTERGTEFHU19p
cGhvbmVzaW11bGF0b3IpOwogV0tfT1BFTkdMX0xERkxBR1NfbWFjb3N4ID0gLWZyYW1ld29yayBP
cGVuR0w7CiAKLU9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChVTkVYUE9SVEVEX1NZTUJP
TF9MREZMQUdTKSAtbGd0ZXN0IC1mb3JjZV9sb2FkICQoQlVJTFRfUFJPRFVDVFNfRElSKS9saWJU
ZXN0V2ViS2l0QVBJLmEgLWZyYW1ld29yayBKYXZhU2NyaXB0Q29yZSAtZnJhbWV3b3JrIFdlYktp
dCAtbFdlYkNvcmVUZXN0U3VwcG9ydCAkKFdLX0FVVEhLSVRfTERGTEFHUykgLWZyYW1ld29yayBO
ZXR3b3JrICQoV0tfUERGS0lUX0xERkxBR1MpICQoV0tfSElEX0xERkxBR1MpICQoV0tfT1BFTkdM
X0xERkxBR1MpICQoT1RIRVJfTERGTEFHU19QTEFURk9STV8kKFdLX0NPQ09BX1RPVUNIKSk7CitP
VEhFUl9MREZMQUdTID0gJChpbmhlcml0ZWQpICQoVU5FWFBPUlRFRF9TWU1CT0xfTERGTEFHUykg
LWxndGVzdCAtZm9yY2VfbG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvbGliVGVzdFdlYktpdEFQ
SS5hIC1mcmFtZXdvcmsgSmF2YVNjcmlwdENvcmUgLWZyYW1ld29yayBXZWJLaXQgLWxXZWJDb3Jl
VGVzdFN1cHBvcnQgJChXS19BVVRIS0lUX0xERkxBR1MpIC1mcmFtZXdvcmsgTmV0d29yayAkKFdL
X1NZU1RFTV9MREZMQUdTKSAkKFdLX1BERktJVF9MREZMQUdTKSAkKFdLX0hJRF9MREZMQUdTKSAk
KFdLX09QRU5HTF9MREZMQUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChXS19DT0NPQV9U
T1VDSCkpOwogT1RIRVJfTERGTEFHU19QTEFURk9STV8gPSAtZnJhbWV3b3JrIENvY29hIC1mcmFt
ZXdvcmsgQ2FyYm9uOwogCiAvLyBGSVhNRTogVGhpcyBzaG91bGQgbm90IGJlIGJ1aWx0IG9uIGlP
Uy4gSW5zdGVhZCB3ZSBzaG91bGQgY3JlYXRlIGFuZCB1c2UgYSBUZXN0V2ViS2l0QVBJIGFwcGxp
Y2F0aW9uLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzYzJmMDY4ZTFkMDhmOTBhY2IxZWMz
ZjBkY2YzMWNmY2JmZmQ2ODlmLi43OWNhYjIzZDk4NGEzYTMwOGM5MDcwNDc4NDY3M2NiNGM2Njg2
NjVjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDQxLDYgKzQ0MSw3IEBACiAJCTU3QzYy
NDUwMjM0NkMyMUUwMDM4M0ZFNyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU3QzYyNDRGMjM0NkMxRUMwMDM4M0ZFNyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2Vy
dGlvbi5odG1sICovOyB9OwogCQk1N0VERkM1QzI0NUExQTNGMDA5NTk1MjEgLyogd2ViLWF1dGhl
bnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYS1uby1tb2NrLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdFREZDNUIyNDVBMThGNTAw
OTU5NTIxIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEtbm8tbW9jay5o
dG1sICovOyB9OwogCQk1N0VERkM2MDI0NUEyOTlDMDA5NTk1MjEgLyogd2ViLWF1dGhlbnRpY2F0
aW9uLWdldC1hc3NlcnRpb24tbGEtbm8tbW9jay5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RURGQzVGMjQ1QTI3OTkwMDk1OTUyMSAv
KiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1sYS1uby1tb2NrLmh0bWwgKi87IH07
CisJCTU3RjFDOTExMjVEREQ1MTkwMEU4RjZFQSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
Y29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdG
MUM5MTAyNURERDUxOTAwRThGNkVBIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0g
Ki87IH07CiAJCTU3RjRBQUEwMjA4RkFFRjAwMEE2OEU5RSAvKiBTU0xLZXlHZW5lcmF0b3IubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0Y0QUE5RjIw
OEZBODNEMDBBNjhFOUUgLyogU1NMS2V5R2VuZXJhdG9yLm1tICovOyB9OwogCQk1N0Y1NkE1QzFD
N0Y4Q0MxMDBGMzFEN0UgLyogSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RjU2QTVCMUM3
RjhBNDAwMEYzMUQ3RSAvKiBJc05hdmlnYXRpb25BY3Rpb25UcnVzdGVkLmh0bWwgKi87IH07CiAJ
CTVDMDE2MEMxMjFBMTMyNDYwMDc3RkEzMiAvKiBKSVRFbmFibGVkLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMwMTYwQzAyMUExMzIzMjAwNzdGQTMy
IC8qIEpJVEVuYWJsZWQubW0gKi87IH07CkBAIC0yMjMzLDYgKzIyMzQsNyBAQAogCQk1N0VERkM1
QjI0NUExOEY1MDA5NTk1MjEgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1s
YS1uby1tb2NrLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVu
dGlhbC1sYS1uby1tb2NrLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0VE
RkM1RjI0NUEyNzk5MDA5NTk1MjEgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24t
bGEtbm8tbW9jay5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0
aW9uLWxhLW5vLW1vY2suaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RjEw
RDkyMUM3RTdCMzgwMEVDREYzMCAvKiBJc05hdmlnYXRpb25BY3Rpb25UcnVzdGVkLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1
c3RlZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTdGMUM5MTAyNURERDUxOTAw
RThGNkVBIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1N0Y0QUE5RjIwOEZBODNEMDBBNjhFOUUgLyogU1NMS2V5R2VuZXJhdG9y
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU1NMS2V5R2VuZXJhdG9yLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1N0Y1NkE1QjFDN0Y4QTQwMDBGMzFEN0UgLyogSXNOYXZpZ2F0
aW9uQWN0aW9uVHJ1c3RlZC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gSXNOYXZp
Z2F0aW9uQWN0aW9uVHJ1c3RlZC5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
QzAxNjBDMDIxQTEzMjMyMDA3N0ZBMzIgLyogSklURW5hYmxlZC5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEpJVEVuYWJsZWQubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC00NzExLDYgKzQ3MTMsNyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMDcx
MURGNTEyMjZBOTVGQjAwM0REMkY3IC8qIEFWRm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbSAqLywK
IAkJCQk3NTFCMDVENTFGOEVBQzFBMDAyOEEwOUUgLyogRGF0YWJhc2VUcmFja2VyVGVzdC5tbSAq
LywKKwkJCQk1N0YxQzkxMDI1RERENTE5MDBFOEY2RUEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRDb2NvYS5tbSAqLywKIAkJCQk1NzY5QzUwQTFEOUIwMDAxMDAwODQ3RkIgLyogU2VyaWFsaXpl
ZENyeXB0b0tleVdyYXAubW0gKi8sCiAJCQkJQTE3OTkxODYxRTFDOTk0RTAwQTUwNUVEIC8qIFNo
YXJlZEJ1ZmZlci5tbSAqLywKIAkJCQlDRDg5RDAzODFDNEVEQjJBMDAwNDBBMDQgLyogV2ViQ29y
ZU5TVVJMU2Vzc2lvbi5tbSAqLywKQEAgLTU0ODYsNiArNTQ4OSw3IEBACiAJCQkJQTFFQzExODgx
RjQyNTQxMjAwRDAxNDZFIC8qIFByZXZpZXdDb252ZXJ0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0NDRTdGMEMxQTQxMUFFNjAwNDQ3QzRDIC8qIFByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5v
SGlzdG9yeUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZCMEEwN0Y3MjFGQTlDMkIw
MEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk1N0YxQzkxMTI1RERENTE5MDBFOEY2RUEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2Nv
YS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQ2NDdCMTI2MUVCQTNCODUwMDQxRDdFRiAvKiBQcm9j
ZXNzRGlkVGVybWluYXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxODgyRjAzMjEwMTBDMEQw
MDJGRjI4OCAvKiBQcm9jZXNzUHJlV2FybWluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEQTQ0
MzhFMjFGN0E0NzcwMDM3OTQ4OSAvKiBQcm9jZXNzU3VzcGVuZE1lZGlhQnVmZmVyaW5nLm1tIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAppbmRleCBiNzMyNjMzNDRmZTFm
NmU5ZWIwZTQyYTI2ZTcyYzRmYjJmMzkwZjM2Li4yNjAzMDM3ZDAyOGI5OTVjODJmZWJiYzNhYTdj
N2RiYjJhNDA1MDJkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAgLTI0LDYgKzI0LDcg
QEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGVzdC5oIgogCiAjaW5j
bHVkZSA8V2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oPgogI2luY2x1ZGUgPHd0Zi9V
UkwuaD4KQEAgLTMwMCw0ICszMDEsMjMgQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwg
SW52YWxpZFNvdXJjZU5vbmNlKQogICAgIEFTU0VSVF9GQUxTRShlcGhlbWVyYWxOb25jZS5pc1Zh
bGlkKCkpOwogfQogCitURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkQmxpbmRl
ZFNlY3JldCkKK3sKKyAgICBjb25zdCBjaGFyIHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTFtdID0g
Ik1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBemIxZFRocnRZd1Zo
NDZTakluZWdLaEFxcGJKd20xWG5UQkN2eWJTSzh6azUzUjBBbTFoRzMzQVZGNUoxbHFZZjM2d3A2
NjNHYXNjbEh0cXp2eEZaSXZEQTFEVVNINGFael9mREhDVFR4RWVKVlBPUlMzek5OMlVqV3didG53
c2g0Qm1EVGktel9jRG4wTEF6Mkp1WnlLbHlGdDVHZ1ZMQVF2TDlIM1ZMSFU5X1hITkstdWJveVhm
Y0hSVHRyRG5wdTNjNnd2WDVkZC1BSm9MbUlRVFpCRUpmVmt4Qkd6bmsxcUtIamM2bkFTQWlyS0Zf
d0pDbnV3QUs4QzZCQWNqTmN3VVdDZUtwMFlFQ3pDWFUtLUpYZDJPRVUtUWh4UEM2N2ZhaURPaDNW
MHZsZnFaTHRybGJuYW5VQ0tydmh3N0dhR09HWW90SXJuWnR1TmZ4QzE0ZF9YTlZkMUZTOG5IalJU
SG5FZ3dfam5sU3NzZmdTdHowdUp0Y21rZmdvSkJ2T0U0bUlScGk3aVNsUmZYTmtLc1dYMUotZ3dj
bkNWbzV1MHVKRVc2WDZOeXZFR1lKOHc1QlBmd3NRdUs5eS00Wjdpa3Q5SU91Y0VIWTdUaERtaTlU
Tk5oSEJWajBHdTR3R29TanEzYTZ2TDVOMTBaU0hYb3ExWGdmR1BybUhoaEw5MGNqdldvbm95T1hz
VXFsWEV6VGpEMlc5ODk3US1NeDlCVU5yR1FQcW1JeDhGNU13eFdjT3J5ZThXUnA0UTg4bjJZU1Vu
VjdDOGF5bGQzdjFGaDdONWplU3FlVm10RFZSWVRuMnNWZk5xZ1hyemdkaWdKY1FSOHZGRU51Nm56
RlB3c3JYUE1hQ2lMVW5aTlVtUTFaU0xRZVF5aFlYeEhxUkpybnVDRFdYTGtDQXdFQUFRIjsKKwor
ICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IHBjbTsKKyAgICBhdXRvIHNvdXJjZVNlY3JldFRv
a2VuID0gcGNtLnRva2VuU2lnbmF0dXJlSlNPTihzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkwpOwor
ICAgIEVYUEVDVF9FUShzb3VyY2VTZWNyZXRUb2tlbi0+YXNPYmplY3QoKS0+c2l6ZSgpLCAwdWwp
OworCisgICAgYXV0byBlcGhlbWVyYWxOb25jZSA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpF
cGhlbWVyYWxTb3VyY2VOb25jZSB7ICJBQkNERUZhYmNkZWYwMTIzNDU2Nzg5Il9zIH07CisgICAg
RVhQRUNUX1RSVUUoZXBoZW1lcmFsTm9uY2UuaXNWYWxpZCgpKTsKKyAgICBwY20uc2V0RXBoZW1l
cmFsU291cmNlTm9uY2UoV1RGTW92ZShlcGhlbWVyYWxOb25jZSkpOworCisgICAgc291cmNlU2Vj
cmV0VG9rZW4gPSBwY20udG9rZW5TaWduYXR1cmVKU09OKHNlcnZlclB1YmxpY0tleUJhc2U2NFVS
TCk7CisgICAgRVhQRUNUX0VRKHNvdXJjZVNlY3JldFRva2VuLT5hc09iamVjdCgpLT5zaXplKCks
IDR1bCk7CisKKyAgICBhdXRvIHBlcnNpc3RlbnRUb2tlbiA9IHBjbS5jYWxjdWxhdGVTb3VyY2VV
bmxpbmthYmxlVG9rZW4oZW1wdHlTdHJpbmcoKSk7CisgICAgRVhQRUNUX0ZBTFNFKHBlcnNpc3Rl
bnRUb2tlbik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudENvY29hLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29h
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGU1ZDVmYjZkMTgy
MTc1OTgwNzA1ODcyOGFmYjg1ZGNiMDJiYmYxNgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
Y29hLm1tCkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlRlc3QuaCIKKworI2lmIEhBVkUoUlNBX0JTU0EpCisKKyNpbmNsdWRlIDxT
ZWN1cml0eS9TZWNLZXlQcml2Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oPgorCitleHRlcm4gIkMiIHsKKyNpbmNsdWRlIDxjb3JlY3J5cHRvL2NjX3ByaXYu
aD4KKyNpbmNsdWRlIDxjb3JlY3J5cHRvL2Njcm5nLmg+CisjaW5jbHVkZSA8Y29yZWNyeXB0by9j
Y3JzYS5oPgorI2luY2x1ZGUgPGNvcmVjcnlwdG8vY2Nyc2Fic3NhLmg+Cit9CisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK1RFU1QoUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQsIFZhbGlkQmxpbmRlZFNlY3JldCkKK3sKKyAgICBhdXRvIGVw
aGVtZXJhbE5vbmNlID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5v
bmNlIHsgIkFCQ0RFRmFiY2RlZjAxMjM0NTY3ODkiX3MgfTsKKyAgICBFWFBFQ1RfVFJVRShlcGhl
bWVyYWxOb25jZS5pc1ZhbGlkKCkpOworCisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgcGNt
OworICAgIHBjbS5zZXRFcGhlbWVyYWxTb3VyY2VOb25jZShXVEZNb3ZlKGVwaGVtZXJhbE5vbmNl
KSk7CisKKyAgICAvLyBHZW5lcmF0ZSB0aGUgc2VydmVyIGtleSBwYWlyLgorICAgIHNpemVfdCBt
b2R1bHVzTkJpdHMgPSA0MDk2OworICAgIGludCBlcnJvciA9IDA7CisKKyAgICBzdHJ1Y3QgY2Ny
bmdfc3RhdGUqIHJuZyA9IGNjcm5nKCZlcnJvcik7CisgICAgRVhQRUNUX0VRKGVycm9yLCBDQ0VS
Ul9PSyk7CisKKyAgICBjb25zdCB1aW50OF90IGVbXSA9IHsgMHgxLCAweDAwLCAweDAxIH07Cisg
ICAgY2Nyc2FfZnVsbF9jdHhfZGVjbChjY25fc2l6ZW9mKG1vZHVsdXNOQml0cyksIHJzYVByaXZh
dGVLZXkpOworICAgIGVycm9yID0gY2Nyc2FfZ2VuZXJhdGVfa2V5KG1vZHVsdXNOQml0cywgcnNh
UHJpdmF0ZUtleSwgc2l6ZW9mKGUpLCBlLCBybmcpOworICAgIEVYUEVDVF9FUShlcnJvciwgQ0NF
UlJfT0spOworCisgICAgY2Nyc2FfcHViX2N0eF90IHJzYVB1YmxpY0tleSA9IGNjcnNhX2N0eF9w
dWJsaWMocnNhUHJpdmF0ZUtleSk7CisgICAgc2l6ZV90IG1vZHVsdXNOQnl0ZXMgPSBjY19jZWls
aW5nKGNjcnNhX3B1YmtleWxlbmd0aChyc2FQdWJsaWNLZXkpLCA4KTsKKworICAgIGNvbnN0IHN0
cnVjdCBjY3JzYWJzc2FfY2lwaGVyc3VpdGUgKmNpcGhlcnN1aXRlID0gJmNjcnNhYnNzYV9jaXBo
ZXJzdWl0ZV9yc2E0MDk2X3NoYTM4NDsKKworICAgIHNpemVfdCBleHBvcnRTaXplID0gY2NkZXJf
ZW5jb2RlX3JzYV9wdWJfc2l6ZShyc2FQdWJsaWNLZXkpOworICAgIGF1dG8gcHVibGljS2V5ID0g
YWRvcHROUyhbW05TTXV0YWJsZURhdGEgYWxsb2NdIGluaXRXaXRoTGVuZ3RoOmV4cG9ydFNpemVd
KTsKKyAgICBjY2Rlcl9lbmNvZGVfcnNhX3B1Yihyc2FQdWJsaWNLZXksIHN0YXRpY19jYXN0PHVp
bnQ4X3QqPihbcHVibGljS2V5IG11dGFibGVCeXRlc10pLCBzdGF0aWNfY2FzdDx1aW50OF90Kj4o
W3B1YmxpY0tleSBtdXRhYmxlQnl0ZXNdKSArIFtwdWJsaWNLZXkgbGVuZ3RoXSk7CisKKyAgICBh
dXRvIHNlY0tleSA9IGFkb3B0Q0YoU2VjS2V5Q3JlYXRlV2l0aERhdGEoKF9fYnJpZGdlIENGRGF0
YVJlZilwdWJsaWNLZXkuZ2V0KCksIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpQHsKKyAgICAg
ICAgKF9fYnJpZGdlIGlkKWtTZWNBdHRyS2V5VHlwZTogKF9fYnJpZGdlIGlkKWtTZWNBdHRyS2V5
VHlwZVJTQSwKKyAgICAgICAgKF9fYnJpZGdlIGlkKWtTZWNBdHRyS2V5Q2xhc3M6IChfX2JyaWRn
ZSBpZClrU2VjQXR0cktleUNsYXNzUHVibGljCisgICAgfSwgbmlsKSk7CisgICAgRVhQRUNUX05P
VF9OVUxMKHNlY0tleSk7CisKKyAgICBhdXRvIHNwa2lEYXRhID0gYWRvcHRDRihTZWNLZXlDb3B5
U3ViamVjdFB1YmxpY0tleUluZm8oc2VjS2V5LmdldCgpKSk7CisgICAgYXV0byAqbnNTcGtpRGF0
YSA9IChfX2JyaWRnZSBOU0RhdGEgKilzcGtpRGF0YS5nZXQoKTsKKworICAgIC8vIENvbnRpbnVl
IHRoZSB0ZXN0LgorICAgIGF1dG8gc291cmNlU2VjcmV0VG9rZW4gPSBwY20udG9rZW5TaWduYXR1
cmVKU09OKFdURjo6YmFzZTY0VVJMRW5jb2RlKG5zU3BraURhdGEuYnl0ZXMsIG5zU3BraURhdGEu
bGVuZ3RoKSk7CisgICAgRVhQRUNUX0VRKHNvdXJjZVNlY3JldFRva2VuLT5hc09iamVjdCgpLT5z
aXplKCksIDR1bCk7CisgICAgRVhQRUNUX1NUUkVRKHNvdXJjZVNlY3JldFRva2VuLT5nZXRTdHJp
bmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5cGUiX3MpLnV0ZjgoKS5kYXRhKCksICJjbGljayIpOwor
ICAgIEVYUEVDVF9TVFJFUShzb3VyY2VTZWNyZXRUb2tlbi0+Z2V0U3RyaW5nKCJzb3VyY2Vfbm9u
Y2UiX3MpLnV0ZjgoKS5kYXRhKCksICJBQkNERUZhYmNkZWYwMTIzNDU2Nzg5Iik7CisgICAgRVhQ
RUNUX0ZBTFNFKHNvdXJjZVNlY3JldFRva2VuLT5nZXRTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9r
ZW4iX3MpLmlzRW1wdHkoKSk7CisgICAgRVhQRUNUX0VRKHNvdXJjZVNlY3JldFRva2VuLT5nZXRJ
bnRlZ2VyKCJ2ZXJzaW9uIl9zKSwgMik7CisKKyAgICAvLyBHZW5lcmF0ZSB0aGUgc2lnbmF0dXJl
LgorICAgIFZlY3Rvcjx1aW50OF90PiBibGluZGVkTWVzc2FnZTsKKyAgICBiYXNlNjRVUkxEZWNv
ZGUoc291cmNlU2VjcmV0VG9rZW4tPmdldFN0cmluZygic291cmNlX3NlY3JldF90b2tlbiJfcyks
IGJsaW5kZWRNZXNzYWdlKTsKKworICAgIGF1dG8gYmxpbmRlZFNpZ25hdHVyZSA9IGFkb3B0TlMo
W1tOU011dGFibGVEYXRhIGFsbG9jXSBpbml0V2l0aExlbmd0aDogbW9kdWx1c05CeXRlc10pOwor
ICAgIGNjcnNhYnNzYV9zaWduX2JsaW5kZWRfbWVzc2FnZShjaXBoZXJzdWl0ZSwgcnNhUHJpdmF0
ZUtleSwgYmxpbmRlZE1lc3NhZ2UuZGF0YSgpLCBibGluZGVkTWVzc2FnZS5zaXplKCksIHN0YXRp
Y19jYXN0PHVpbnQ4X3QgKj4oW2JsaW5kZWRTaWduYXR1cmUgbXV0YWJsZUJ5dGVzXSksIFtibGlu
ZGVkU2lnbmF0dXJlIGxlbmd0aF0sIHJuZyk7CisKKyAgICAvLyBDb250aW51ZSB0aGUgdGVzdC4K
KyAgICBhdXRvIHBlcnNpc3RlbnRUb2tlbiA9IHBjbS5jYWxjdWxhdGVTb3VyY2VVbmxpbmthYmxl
VG9rZW4oV1RGOjpiYXNlNjRVUkxFbmNvZGUoW2JsaW5kZWRTaWduYXR1cmUgYnl0ZXNdLCBbYmxp
bmRlZFNpZ25hdHVyZSBsZW5ndGhdKSk7CisgICAgRVhQRUNUX1RSVUUocGVyc2lzdGVudFRva2Vu
KTsKKyAgICBFWFBFQ1RfRkFMU0UocGVyc2lzdGVudFRva2VuLT50b2tlbkJhc2U2NFVSTC5pc0Vt
cHR5KCkpOworICAgIEVYUEVDVF9GQUxTRShwZXJzaXN0ZW50VG9rZW4tPmtleUlEQmFzZTY0VVJM
LmlzRW1wdHkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKHBlcnNpc3RlbnRUb2tlbi0+c2lnbmF0dXJl
QmFzZTY0VVJMLmlzRW1wdHkoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
KworI2VuZGlmIC8vIEVIQVZFKFJTQV9CU1NBKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420947</attachid>
            <date>2021-02-19 02:39:14 -0800</date>
            <delta_ts>2021-02-19 03:24:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222019-20210219023913.patch</filename>
            <type>text/plain</type>
            <size>50156</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJmZDcxYjc4YzVmNThiMjMwZjYwOTg4
N2E1MDM4ZjRmYjk5NTdkZjIuLjdkMzYxMzZlYjI0YmRiYTc3NTc2ODlmZjM2YTdjNGY0NzRmNTUz
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5f
dGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQg
Y29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcz
NTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2lsYW5kZXIuCisKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1IYXZlLmg6CisgICAgICAgIEFkZHMgYSBjb21waWxlIHRpbWUgZmxhZyBm
b3IgUlNBQlNTQS4KKwogMjAyMS0wMi0xOCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIGV4cGVyaW1lbnRhbCBzdXBwb3J0IGZvciBDU1MgQ29sb3IgNSBSZWxh
dGl2ZSBDb2xvciBTeW50YXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3Njk4MGM0NGM5ZmIwNjAzZTAyZWY3NGY0
NDk1OTU1NDYyY2ZlMWYwLi45YmNhNDE5Y2MwNmVkYjc0ZmQwMmNkMDY1ZGI0ZjRhNzRhZDQyZWNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxq
aWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tl
biBhbmQgY29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzczNTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2lsYW5kZXIuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBBUEkgdGVzdHMuCisKKyAgICAgICAgVGhpcyBwYXRjaCB1dGlsaXpl
cyBSU0FCU1NBIHRvIGdlbmVyYXRlIHNlY3JldCB0b2tlbiBmb3IgUENNIGZyYXVkIHByZXZlbnRp
b24uCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnOgorICAgICAg
ICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICBQYXBlcndvcmsgdG8gbGluayBDcnlwdG9LaXRDQnJpZGdpbmcu
CisKKyAgICAgICAgKiBsb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNl
Ojppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpzZXRFcGhlbWVyYWxTb3VyY2VOb25jZSk6CisgICAgICAgICogbG9hZGVyL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6YXR0cmlidXRlT25TaXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjplcGhlbWVyYWxTb3VyY2VOb25jZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y2xlYXJFcGhlbWVyYWxTb3VyY2VOb25j
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFs
U291cmNlTm9uY2U6OkVwaGVtZXJhbFNvdXJjZU5vbmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNW
YWxpZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6c2V0RXBoZW1lcmFsU291cmNlTm9uY2UpOiBEZWxldGVkLgorICAgICAgICBHcm91
cHMgZnVuY3Rpb25hbGl0aWVzIGJlaGluZCBIQVZFX1JTQV9CU1NBLgorCisgICAgICAgICogbG9h
ZGVyL2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW06IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmJsaW5kZWRTZWNyZXRKc29uKToK
KyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpjYWxjdWxhdGVQZXJz
aXN0ZW50QmxpbmRlZFRva2VuKToKKyAgICAgICAgSW50cm9kdWNlcyBuZXcgbWV0aG9kcyB0byBn
ZW5lcmF0ZSB0aGUgYmxpbmRlZCBzZWNyZXRzIGFuZCB1bmxpbmthYmxlIHRva2Vucy4KKwogMjAy
MS0wMi0xOSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFBD
TTogUmVxdWVzdCBzZXJ2ZXIgcHVibGljIGtleSB0byBnZW5lcmF0ZSBzZWNyZXQgdG9rZW4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1IYXZlLmgKaW5kZXggMDQ4NmZjZTJjNDE4NmQyZDhiZjI1OTEyNTU5NmU4NjM5Y2Qz
NDUxMS4uZGExNWZkN2RlN2VlNWM4YWFmMDM0OWZmMTAyOGY3MmU1Njk1NGFmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxh
dGZvcm1IYXZlLmgKQEAgLTg4OCwzICs4ODgsOCBAQAogI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDAKICNkZWZpbmUgSEFWRV9TVEFU
SUNfRk9OVF9SRUdJU1RSWSAxCiAjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwKSBcCisgICAgfHwgKFBMQVRGT1JN
KElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTUwMDAwKQorI2Rl
ZmluZSBIQVZFX1JTQV9CU1NBIDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BB
TC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJlZGJjYzljMDM4ODc1ZWFlNDAyY2E1
ZDU3OTU0OGRhMDdjZTc0NmUuLjg4NDkwZTBkOTk3MjdhODc5NjVlYjVjYTBhOGU2MjBiMGE0ZjFk
ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTEzOCw2ICsxMzgsOCBAQAogCQk1NzBBQjhGOTIwQUY2RTNEMDBCOEJFODcgLyog
TlNYUENDb25uZWN0aW9uU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzBBQjhGODIwQUY2RTNEMDBCOEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJ
LmggKi87IH07CiAJCTU3MkExMDc4MjJCNDU2RjUwMEY0MTBDOCAvKiBBdXRoS2l0U1BJLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJBMTA3NzIyQjQ1
NkY1MDBGNDEwQzggLyogQXV0aEtpdFNQSS5oICovOyB9OwogCQk1NzZDQTlENjIyQjg1NEFCMDAz
MDE0M0MgLyogQXBwU1NPU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzZDQTlENTIyQjg1NEFCMDAzMDE0M0MgLyogQXBwU1NPU1BJLmggKi87IH07
CisJCTU3RjFDOTA5MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGMUM5
MDcyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmggKi87IH07
CisJCTU3RjFDOTBBMjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RjFD
OTA4MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbSAqLzsg
fTsKIAkJNTdGRDMxOEEyMkIzNTkzRTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGRDMxODkyMkIzNTkz
RTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLm1tICovOyB9OwogCQk1N0ZEMzE4QjIyQjM1OTg5
MDA4RDBFOEIgLyogQXBwU1NPU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3RkQzMTg4MjJCMzU5MkYwMDhEMEU4QiAvKiBBcHBTU09Tb2Z0
TGluay5oICovOyB9OwogCQk1QzdDNzg3MzIzQUMzRTc3MDA2NUY0N0UgLyogTWFuYWdlZENvbmZp
Z3VyYXRpb25Tb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUM3Qzc4NzEyM0FDM0U3NzAwNjVGNDdFIC8qIE1hbmFnZWRDb25maWd1cmF0aW9u
U29mdExpbmsuaCAqLzsgfTsKQEAgLTM0MSw2ICszNDMsOCBAQAogCQk1NzBBQjhGODIwQUY2RTNE
MDBCOEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TWFBDQ29u
bmVjdGlvblNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJBMTA3NzIyQjQ1
NkY1MDBGNDEwQzggLyogQXV0aEtpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoS2l0U1BJLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NkNBOUQ1MjJCODU0QUIwMDMwMTQzQyAv
KiBBcHBTU09TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwU1NPU1BJLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTU3RjFDOTA3MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJp
ZGdpbmdTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0YxQzkwODI1RENGMENGMDBFOEY2
RUEgLyogQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTdGRDMxODgyMkIzNTkyRjAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcFNTT1NvZnRMaW5rLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU3RkQzMTg5MjJCMzU5M0UwMDhEMEU4QiAvKiBBcHBTU09Tb2Z0
TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFwcFNTT1Nv
ZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzdDNzg3MTIzQUMzRTc3
MDA2NUY0N0UgLyogTWFuYWdlZENvbmZpZ3VyYXRpb25Tb2Z0TGluay5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNYW5hZ2VkQ29uZmlndXJhdGlvblNvZnRMaW5rLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02OTEsNiArNjk1LDggQEAKIAkJCQk1N0ZEMzE4OTIy
QjM1OTNFMDA4RDBFOEIgLyogQXBwU1NPU29mdExpbmsubW0gKi8sCiAJCQkJMDc3RTg3QjAyMjZB
NDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLmggKi8sCiAJCQkJMDc3RTg3QUYy
MjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLm1tICovLAorCQkJCTU3RjFD
OTA3MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oICovLAor
CQkJCTU3RjFDOTA4MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5tbSAqLywKIAkJCQlGNDQyOTE2NjFGQTUyNzA1MDAyQ0M5M0UgLyogRmlsZVNpemVGb3JtYXR0
ZXJDb2NvYS5tbSAqLywKIAkJCQkxQzAyMkVGQzIyQ0ZFOEUwMDA2REYwMUIgLyogR3VuemlwLmNw
cCAqLywKIAkJCQlDREFDQjM1RTIzODczRTQ4MDAxOEQ3Q0UgLyogTWVkaWFUb29sYm94U29mdExp
bmsuY3BwICovLApAQCAtODI4LDYgKzgzNCw3IEBACiAJCQkJMUNDRUU0RjUyMEQ4NzE5MzAwNDdC
MDk3IC8qIENvcmVVSVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MTkxRjQzQTRDNzAw
MkVBQzAyIC8qIENvcmVVSVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUMwOUQwNTMxRTMxQzQ0
MTAwNzI1RjE4IC8qIENyeXB0b0RpZ2VzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTdGMUM5MDky
NURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwQzJEQTE0MTFGM0JFQjQ5MDBEQkMzMTcgLyogRGF0YURldGVjdG9yc0NvcmVT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NThBMUY0NTEzMEYwMEY0RUJCNiAvKiBEYXRh
RGV0ZWN0b3JzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzVBRjkxQTFGNDNBNEM3MDAyRUFD
MDIgLyogRGF0YURldGVjdG9yc1VJU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTEwMzcsNiArMTA0
NCw3IEBACiAJCQkJMENGOTlDQTgxRjczODQzNzAwN0VFNzkzIC8qIENvcmVNZWRpYVNvZnRMaW5r
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDNzdDOEM5MjVENzk3MjAwMDYzNUUwQyAvKiBDb3Jl
VGV4dFNvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDMDlEMDU2MUUzMUM0NjUwMDcy
NUYxOCAvKiBDcnlwdG9EaWdlc3RDb21tb25DcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTdGMUM5MEEyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTExNzVCNTgxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRT
ZWFyY2hQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNDQyOTE2NDFGQTUyNjcwMDAy
Q0M5M0UgLyogRmlsZVNpemVGb3JtYXR0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ0Mjkx
NjgxRkE1MjcwNTAwMkNDOTNFIC8qIEZpbGVTaXplRm9ybWF0dGVyQ29jb2EubW0gaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRvS2l0
Q0JyaWRnaW5nU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRv
S2l0Q0JyaWRnaW5nU29mdExpbmsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTkwZDRmZTVmM2FlZTNhNjM4YWJl
MDE1MmM0NjUwMzM5MzA5ZjY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oCkBAIC0wLDAgKzEsMzcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEhBVkUoUlNBX0JTU0EpCisKKyNpbXBv
cnQgPENyeXB0b0tpdENCcmlkZ2luZy9SU0FCU1NBLmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtp
bmcuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfSEVBREVSKFBBTCwgQ3J5cHRvS2l0Q0Jy
aWRnaW5nKTsKKworU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBSU0FCU1NBVG9rZW5C
bGluZGVyKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Nv
Y29hL0NyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWJjNzVh
Y2MzZGQ3NDQ4ZDBhMTA5NTc4ZGJmMzAyMjRkNzJiNDlhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbQpA
QCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYg
SEFWRShSU0FfQlNTQSkKKworI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisKK1NPRlRfTElO
S19QUklWQVRFX0ZSQU1FV09SS19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ3J5cHRvS2l0
Q0JyaWRnaW5nLCBQQUxfRVhQT1JUKTsKKworU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDcnlwdG9LaXRDQnJpZGdpbmcsIFJTQUJTU0FUb2tlbkJsaW5kZXIsIFBB
TF9FWFBPUlQpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXND
b2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGJmNmFlMTYx
ODdhYmEwNzE1NzJkYTA3OTIzYWMzMzBiMjI4ZjY5YzUuLjlkYTUyMWE3YTVkNDY0YTg0MjA5YzNj
YjAwOWRkOWExYWVhNjBmMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2Nv
YS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMTY4LDYgKzE2
OCw3IEBAIGluc3BlY3Rvci9tYWMvUGFnZURlYnVnZ2VyTWFjLm1tCiBsb2FkZXIvYXJjaGl2ZS9j
Zi9MZWdhY3lXZWJBcmNoaXZlLmNwcAogbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2
ZU1hYy5tbQogbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5tbQorbG9hZGVyL2Nv
Y29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0KIGxvYWRlci9jb2NvYS9TdWJyZXNv
dXJjZUxvYWRlckNvY29hLm1tCiBsb2FkZXIvaW9zL0xlZ2FjeVByZXZpZXdMb2FkZXIubW0KIGxv
YWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGQxZmZmZWJlZmVmMjBjNjBjOTA1
MDliYWM3MWY0MjNiNDNhNmM0Ni4uMjI0OGU3N2M4Y2M3NDY5ZmI3MGE1YmYxYzljOWRlYzkzZDZh
NDhmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtOTQxNiw2ICs5NDE2LDcgQEAKIAkJNTdFRUFBNTcxRUEwQUZCQjAwNzAxMTI0
IC8qIENvbW1vbkNyeXB0b0RFUlV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDb21tb25DcnlwdG9ERVJVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1N0VGNUU1RjFEMjBDODM5MDAxNzFFNjAgLyogVGV4dENvZGVjUmVw
bGFjZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENvZGVjUmVw
bGFjZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdFRjVFNjExRDIwRDI4
NzAwMTcxRTYwIC8qIFRleHRDb2RlY1JlcGxhY2VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRDb2RlY1JlcGxhY2VtZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTdGMUM4RTMyNURDNkVFNzAwRThGNkVBIC8qIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1N0Y4MjczOTFEQjcyQzIyMDA5RDJCRjQgLyogUnNhSGFzaGVkS2V5R2VuUGFy
YW1zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBSc2FIYXNoZWRLZXlHZW5QYXJhbXMuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1N0ZFREQzRDFEQjZENDdGMDBFQjk2RjUgLyogUnNhS2V5R2VuUGFyYW1z
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBSc2FLZXlHZW5QYXJhbXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1N0ZFREQzRTFEQjZENTkyMDBFQjk2RjUgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2Vu
UGFyYW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRo
bVJzYUtleUdlblBhcmFtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTczMSw3
ICs5NzMyLDcgQEAKIAkJNkEyMkU4NzIxRjEwNDJDNDAwRjU0NkMzIC8qIEluc3BlY3RvckNhbnZh
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JDYW52YXMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2QTcyNzk4ODFGMTZDMjlCMDAzRjM5QjggLyogSW5zcGVjdG9y
U2hhZGVyUHJvZ3JhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0
b3JTaGFkZXJQcm9ncmFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZBNzI3OTg5
MUYxNkMyOUIwMDNGMzlCOCAvKiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvclNoYWRlclByb2dyYW0uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QjBBMDdGMDIxRkE0QjVDMDBENTczOTEgLyog
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkIwQTA3RjAyMUZBNEI1
QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTZCMEEwN0YxMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCMUY0ODBGMjI5ODlFQzQwMERF
OEI4MiAvKiBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNkI0RDQxMkIyMzk4M0Y4ODAwMjQ5NEMyIC8qIExvZ2dlZEluU3RhdHVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IExvZ2dlZEluU3RhdHVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yMjk0OSw2ICsyMjk1MCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk3RURBQUZDODE5
QTJDQkQxMDAzNERGRDEgLyogRGlza0NhY2hlTW9uaXRvckNvY29hLmggKi8sCiAJCQkJN0U0REUx
MEMxOThCMTBCNjAwNTFDQjAyIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSAqLywKKwkJCQk1
N0YxQzhFMzI1REM2RUU3MDBFOEY2RUEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5t
bSAqLywKIAkJCQk3RThGQURDMzE5OUE5NUIxMDA3MTQ5NjggLyogU3VicmVzb3VyY2VMb2FkZXJD
b2NvYS5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gY29jb2E7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAppbmRleCA4YTk3M2YwMzQ1NDQ1
NDc1NGQwMTk1NGFmM2ZhZjhiOGZhZGI1OGNkLi5lNTZjOTQ1MjI5YTU5Njk3M2RiNWE3YjUwZWEy
MTQwZGUxNWE4ZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUcmlnZ2VyQXR0cmli
dXRpb25QYXRoW10gPSAiLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvdHJp
Z2dlci1hdHRyaWJ1dGlvbi8iOwotc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRUb2tlblNpZ25hdHVyZVBhdGhbXSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC9zaWduLXVubGlua2FibGUtdG9rZW4vIjsKK3N0YXRpYyBjb25zdCBjaGFyIHBy
aXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVQYXRoW10gPSAiLy53ZWxsLWtub3du
L3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvc2lnbi1zZWNyZXQtdG9rZW4vIjsKIHN0YXRpYyBj
b25zdCBjaGFyIHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlQYXRoW10gPSAi
Ly53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvZ2V0LXVubGlua2FibGUtdG9r
ZW4tcHVibGljLWtleS8iOwogc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRSZXBvcnRBdHRyaWJ1dGlvblBhdGhbXSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC9yZXBvcnQtYXR0cmlidXRpb24vIjsKIGNvbnN0IHNpemVfdCBwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHJpZ2dlckRhdGFQYXRoU2VnbWVudFNpemUgPSAyOwpA
QCAtMTE2LDE1ICsxMTYsMTUgQEAgYm9vbCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6aGFzSGln
aGVyUHJpb3JpdHlUaGFuKGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW4KICAgICByZXR1cm4g
bV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhLT5wcmlvcml0eSA+IG90aGVyLm1fYXR0cmlidXRpb25U
cmlnZ2VyRGF0YS0+cHJpb3JpdHk7CiB9CiAKLVVSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
dG9rZW5TaWduYXR1cmVVUkwoKSBjb25zdAorVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojph
dHRyaWJ1dGlvblJlcG9ydFVSTCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2VwaGVtZXJhbFNvdXJj
ZU5vbmNlIHx8ICFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5pc1ZhbGlkKCkpCisgICAgaWYgKCFp
c1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBVUkwoKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImh0dHBzOi8vIik7CiAgICAgYnVpbGRl
ci5hcHBlbmQobV9zb3VyY2VTaXRlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKLSAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVy
ZVBhdGgpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbChwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFJlcG9ydEF0dHJpYnV0aW9uUGF0aCk7CiAKICAgICBVUkwgdXJsIHsgVVJMKCksIGJ1aWxkZXIu
dG9TdHJpbmcoKSB9OwogICAgIGlmICh1cmwuaXNWYWxpZCgpKQpAQCAtMTMzLDEyICsxMzMsNTEg
QEAgVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojp0b2tlblNpZ25hdHVyZVVSTCgpIGNvbnN0
CiAgICAgcmV0dXJuIFVSTCgpOwogfQogCi1VUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRv
a2VuUHVibGljS2V5VVJMKCkgY29uc3QKK1JlZjxKU09OOjpPYmplY3Q+IFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydEpTT04oKSBjb25zdAoreworICAgIGF1dG8gcmVw
b3J0RGV0YWlscyA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CisgICAgaWYgKCFtX2F0dHJpYnV0
aW9uVHJpZ2dlckRhdGEgfHwgIWlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIHJlcG9ydERldGFp
bHM7CisKKyAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5
cGUiX3MsICJjbGljayJfcyk7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vf
c2l0ZSJfcywgbV9zb3VyY2VTaXRlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKKyAgICBy
ZXBvcnREZXRhaWxzLT5zZXRJbnRlZ2VyKCJzb3VyY2VfaWQiX3MsIG1fc291cmNlSUQuaWQpOwor
ICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygiYXR0cmlidXRlZF9vbl9zaXRlIl9zLCBtX2F0
dHJpYnV0ZU9uU2l0ZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7CisgICAgcmVwb3J0RGV0
YWlscy0+c2V0SW50ZWdlcigidHJpZ2dlcl9kYXRhIl9zLCBtX2F0dHJpYnV0aW9uVHJpZ2dlckRh
dGEtPmRhdGEpOworICAgIHJlcG9ydERldGFpbHMtPnNldEludGVnZXIoInZlcnNpb24iX3MsIDEp
OworICAgIHJldHVybiByZXBvcnREZXRhaWxzOworfQorCisvLyBNQVJLOiAtIEZyYXVkIFByZXZl
bnRpb24KKworc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBFcGhlbWVyYWxTb3VyY2VOb25jZVJl
cXVpcmVkTnVtYmVyT2ZCeXRlcyA9IDE2OworCitib29sIFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNWYWxpZCgpIGNvbnN0CiB7CisgICAgLy8gRklYTUU6
IEludmVzdGlnYXRlIGlmIHdlIGNhbiBkbyB3aXRoIGEgc2ltcGxlIGxlbmd0aCBjaGVjayBpbnN0
ZWFkIG9mIGRlY29kaW5nLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjE5NDUKKyAgICBWZWN0b3I8dWludDhfdD4gZGlnZXN0OworICAgIGlmICghYmFz
ZTY0VVJMRGVjb2RlKG5vbmNlLCBkaWdlc3QpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIGRpZ2VzdC5zaXplKCkgPT0gRXBoZW1lcmFsU291cmNlTm9uY2VSZXF1aXJlZE51bWJl
ck9mQnl0ZXM7Cit9CisKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNldEVwaGVtZXJh
bFNvdXJjZU5vbmNlKEVwaGVtZXJhbFNvdXJjZU5vbmNlJiYgbm9uY2UpCit7CisgICAgaWYgKCFu
b25jZS5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBtX2VwaGVtZXJhbFNvdXJjZU5v
bmNlID0gV1RGTW92ZShub25jZSk7Cit9CisKK1VSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
dG9rZW5TaWduYXR1cmVVUkwoKSBjb25zdAoreworICAgIGlmICghbV9lcGhlbWVyYWxTb3VyY2VO
b25jZSB8fCAhbV9lcGhlbWVyYWxTb3VyY2VOb25jZS0+aXNWYWxpZCgpKQorICAgICAgICByZXR1
cm4gVVJMKCk7CisKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJodHRwczovLyIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1fc291cmNlU2l0ZS5y
ZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKHBy
aXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlQYXRoKTsKKyAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVBhdGgpOwog
CiAgICAgVVJMIHVybCB7IFVSTCgpLCBidWlsZGVyLnRvU3RyaW5nKCkgfTsKICAgICBpZiAodXJs
LmlzVmFsaWQoKSkKQEAgLTE0NywyOCArMTg2LDEyIEBAIFVSTCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6dG9rZW5QdWJsaWNLZXlVUkwoKSBjb25zdAogICAgIHJldHVybiBVUkwoKTsKIH0KIAot
UmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRva2VuU2lnbmF0dXJl
SlNPTigpIGNvbnN0Ci17Ci0gICAgYXV0byByZXBvcnREZXRhaWxzID0gSlNPTjo6T2JqZWN0Ojpj
cmVhdGUoKTsKLSAgICBpZiAoIW1fZXBoZW1lcmFsU291cmNlTm9uY2UgfHwgIW1fZXBoZW1lcmFs
U291cmNlTm9uY2UtPmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7Ci0K
LSAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5cGUiX3Ms
ICJjbGljayJfcyk7Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vfbm9uY2Ui
X3MsIG1fZXBoZW1lcmFsU291cmNlTm9uY2UtPm5vbmNlKTsKLSAgICByZXBvcnREZXRhaWxzLT5z
ZXRTdHJpbmcoInVubGlua2FibGVfdG9rZW4iX3MsICJUT0RPIl9zKTsKLSAgICByZXBvcnREZXRh
aWxzLT5zZXRJbnRlZ2VyKCJ2ZXJzaW9uIl9zLCAyKTsKLSAgICByZXR1cm4gcmVwb3J0RGV0YWls
czsKLX0KLQotVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydFVS
TCgpIGNvbnN0CitVUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRva2VuUHVibGljS2V5VVJM
KCkgY29uc3QKIHsKLSAgICBpZiAoIWlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIFVSTCgpOwot
CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
aHR0cHM6Ly8iKTsKICAgICBidWlsZGVyLmFwcGVuZChtX3NvdXJjZVNpdGUucmVnaXN0cmFibGVE
b21haW4uc3RyaW5nKCkpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbChwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFJlcG9ydEF0dHJpYnV0aW9uUGF0aCk7CisgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlQYXRoKTsKIAogICAgIFVS
TCB1cmwgeyBVUkwoKSwgYnVpbGRlci50b1N0cmluZygpIH07CiAgICAgaWYgKHVybC5pc1ZhbGlk
KCkpCkBAIC0xNzcsMTkgKzIwMCwyMSBAQCBVUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0
dHJpYnV0aW9uUmVwb3J0VVJMKCkgY29uc3QKICAgICByZXR1cm4gVVJMKCk7CiB9CiAKLVJlZjxK
U09OOjpPYmplY3Q+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydEpT
T04oKSBjb25zdAorUmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRv
a2VuU2lnbmF0dXJlSlNPTihjb25zdCBTdHJpbmcmIHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCkK
IHsKICAgICBhdXRvIHJlcG9ydERldGFpbHMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwotICAg
IGlmICghbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhIHx8ICFpc1ZhbGlkKCkpCisgICAgaWYgKCFt
X2VwaGVtZXJhbFNvdXJjZU5vbmNlIHx8ICFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5pc1ZhbGlk
KCkpCisgICAgICAgIHJldHVybiByZXBvcnREZXRhaWxzOworCisgICAgYXV0byB0b2tlbiA9IHNv
dXJjZVNlY3JldFRva2VuKHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCk7CisgICAgaWYgKHRva2Vu
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7CiAKICAgICByZXBvcnRE
ZXRhaWxzLT5zZXRTdHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5cGUiX3MsICJjbGljayJfcyk7
Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vfc2l0ZSJfcywgbV9zb3VyY2VT
aXRlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKLSAgICByZXBvcnREZXRhaWxzLT5zZXRJ
bnRlZ2VyKCJzb3VyY2VfaWQiX3MsIG1fc291cmNlSUQuaWQpOwotICAgIHJlcG9ydERldGFpbHMt
PnNldFN0cmluZygiYXR0cmlidXRlZF9vbl9zaXRlIl9zLCBtX2F0dHJpYnV0ZU9uU2l0ZS5yZWdp
c3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigi
dHJpZ2dlcl9kYXRhIl9zLCBtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEtPmRhdGEpOwotICAgIHJl
cG9ydERldGFpbHMtPnNldEludGVnZXIoInZlcnNpb24iX3MsIDEpOworICAgIHJlcG9ydERldGFp
bHMtPnNldFN0cmluZygic291cmNlX25vbmNlIl9zLCBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5u
b25jZSk7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2Vu
Il9zLCB0b2tlbik7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigidmVyc2lvbiJfcywg
Mik7CiAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7CiB9CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
LmgKaW5kZXggYzhkOTk0ZjgxNDYzODk3YWM1MWIyY2EwZjQ4ZjEwODI4NWMyMmU4Zi4uNjBlOGY0
Y2FmN2NlYmU4OWI4OTNhZDgxNjJmZWJiZGRiMjgyY2M1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKQEAgLTM2LDYgKzM2LDEwIEBACiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCitPQkpDX0NMQVNTIFJTQUJTU0FUb2tlblJlYWR5OworT0JKQ19DTEFTUyBSU0FC
U1NBVG9rZW5XYWl0aW5nQWN0aXZhdGlvbjsKK09CSkNfQ0xBU1MgUlNBQlNTQVRva2VuQmxpbmRl
cjsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCB7CkBAIC0yMDEsMzEgKzIwNSw2IEBAIHB1YmxpYzoKICAgICAgICAgc3RhdGljIGNvbnN0IGJv
b2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKICAgICB9OwogCi0gICAg
c3RydWN0IEVwaGVtZXJhbFNvdXJjZU5vbmNlIHsKLSAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1
aW50MzJfdCBSZXF1aXJlZE51bWJlck9mQnl0ZXMgPSAxNjsKLQotICAgICAgICBFcGhlbWVyYWxT
b3VyY2VOb25jZSgpID0gZGVmYXVsdDsKLSAgICAgICAgZXhwbGljaXQgRXBoZW1lcmFsU291cmNl
Tm9uY2UoY29uc3QgU3RyaW5nJiBub25jZVN0cmluZykKLSAgICAgICAgICAgIDogbm9uY2UgeyBu
b25jZVN0cmluZyB9Ci0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIEZJWE1FOiBJ
bnZlc3RpZ2F0ZSBpZiB3ZSBjYW4gZG8gd2l0aCBhIHNpbXBsZSBsZW5ndGggY2hlY2sgaW5zdGVh
ZCBvZiBkZWNvZGluZy4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyMTk0NQotICAgICAgICBib29sIGlzVmFsaWQoKSBjb25zdAotICAgICAgICB7
Ci0gICAgICAgICAgICBWZWN0b3I8dWludDhfdD4gZGlnZXN0OwotICAgICAgICAgICAgaWYgKCFi
YXNlNjRVUkxEZWNvZGUobm9uY2UsIGRpZ2VzdCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICAgICAgcmV0dXJuIGRpZ2VzdC5zaXplKCkgPT0gUmVxdWlyZWROdW1iZXJP
ZkJ5dGVzOwotICAgICAgICB9Ci0KLSAgICAgICAgU3RyaW5nIG5vbmNlOwotCi0gICAgICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICAg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJj
ZU5vbmNlPiBkZWNvZGUoRGVjb2RlciYpOwotICAgIH07Ci0KICAgICBzdHJ1Y3QgUHJpb3JpdHkg
ewogICAgICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IE1heEVudHJvcHkgPSA2MzsKIApA
QCAtMjc3LDE2ICsyNTYsMTAgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBF
eHBlY3RlZDxBdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBTdHJpbmc+IHBhcnNlQXR0cmlidXRpb25S
ZXF1ZXN0KGNvbnN0IFVSTCYgcmVkaXJlY3RVUkwpOwogICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlv
bmFsPFNlY29uZHM+IGF0dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChBdHRyaWJ1dGlv
blRyaWdnZXJEYXRhJiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzSGlnaGVyUHJpb3Jp
dHlUaGFuKGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW50JikgY29uc3Q7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgVVJMIHRva2VuUHVibGljS2V5VVJMKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgVVJMIHRva2VuU2lnbmF0dXJlVVJMKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgUmVm
PEpTT046Ok9iamVjdD4gdG9rZW5TaWduYXR1cmVKU09OKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9F
WFBPUlQgVVJMIGF0dHJpYnV0aW9uUmVwb3J0VVJMKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBP
UlQgUmVmPEpTT046Ok9iamVjdD4gYXR0cmlidXRpb25SZXBvcnRKU09OKCkgY29uc3Q7CiAgICAg
Y29uc3QgU291cmNlU2l0ZSYgc291cmNlU2l0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlU2l0
ZTsgfTsKICAgICBjb25zdCBBdHRyaWJ1dGVPblNpdGUmIGF0dHJpYnV0ZU9uU2l0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYXR0cmlidXRlT25TaXRlOyB9OwotICAgIHZvaWQgc2V0RXBoZW1lcmFsU291
cmNlTm9uY2UoRXBoZW1lcmFsU291cmNlTm9uY2UmJiBub25jZSkgeyBtX2VwaGVtZXJhbFNvdXJj
ZU5vbmNlID0gV1RGTW92ZShub25jZSk7IH07Ci0gICAgT3B0aW9uYWw8RXBoZW1lcmFsU291cmNl
Tm9uY2U+IGVwaGVtZXJhbFNvdXJjZU5vbmNlKCkgY29uc3QgeyByZXR1cm4gIW1fZXBoZW1lcmFs
U291cmNlTm9uY2UgPyBXVEY6Om51bGxvcHQgOiBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5pc1Zh
bGlkKCkgPyBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlIDogV1RGOjpudWxsb3B0OyB9OwotICAgIHZv
aWQgY2xlYXJFcGhlbWVyYWxTb3VyY2VOb25jZSgpIHsgbV9lcGhlbWVyYWxTb3VyY2VOb25jZSAg
PSBXVEY6Om51bGxvcHQ7IH07CiAgICAgV2FsbFRpbWUgdGltZU9mQWRDbGljaygpIGNvbnN0IHsg
cmV0dXJuIG1fdGltZU9mQWRDbGljazsgfQogICAgIE9wdGlvbmFsPFdhbGxUaW1lPiBlYXJsaWVz
dFRpbWVUb1NlbmQoKSBjb25zdCB7IHJldHVybiBtX2VhcmxpZXN0VGltZVRvU2VuZDsgfTsKICAg
ICB2b2lkIHNldEVhcmxpZXN0VGltZVRvU2VuZChXYWxsVGltZSB0aW1lKSB7IG1fZWFybGllc3RU
aW1lVG9TZW5kID0gdGltZTsgfQpAQCAtMjk3LDExICsyNzAsMzggQEAgcHVibGljOgogICAgIGNv
bnN0IFN0cmluZyYgc291cmNlRGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZURl
c2NyaXB0aW9uOyB9CiAgICAgY29uc3QgU3RyaW5nJiBwdXJjaGFzZXIoKSBjb25zdCB7IHJldHVy
biBtX3B1cmNoYXNlcjsgfQogCisgICAgLy8gTUFSSzogLSBGcmF1ZCBQcmV2ZW50aW9uCisgICAg
c3RydWN0IEVwaGVtZXJhbFNvdXJjZU5vbmNlIHsKKyAgICAgICAgU3RyaW5nIG5vbmNlOworCisg
ICAgICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNWYWxpZCgpIGNvbnN0OworCisgICAgICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICAg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJj
ZU5vbmNlPiBkZWNvZGUoRGVjb2RlciYpOworICAgIH07CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldEVwaGVtZXJhbFNvdXJjZU5vbmNlKEVwaGVtZXJhbFNvdXJjZU5vbmNlJiYpOworICAg
IE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5vbmNlPiBlcGhlbWVyYWxTb3VyY2VOb25jZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZXBoZW1lcmFsU291cmNlTm9uY2U7IH07CisgICAgdm9pZCBjbGVhckVw
aGVtZXJhbFNvdXJjZU5vbmNlKCkgeyBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLnJlc2V0KCk7IH07
CisKKyAgICBzdHJ1Y3QgU291cmNlVW5saW5rYWJsZVRva2VuIHsKKyAgICAgICAgU3RyaW5nIHRv
a2VuQmFzZTY0VVJMOworICAgICAgICBTdHJpbmcga2V5SURCYXNlNjRVUkw7CisgICAgICAgIFN0
cmluZyBzaWduYXR1cmVCYXNlNjRVUkw7CisgICAgfTsKKworICAgIFdFQkNPUkVfRVhQT1JUIFVS
TCB0b2tlblB1YmxpY0tleVVSTCgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFVSTCB0b2tl
blNpZ25hdHVyZVVSTCgpIGNvbnN0OworCisgICAgV0VCQ09SRV9FWFBPUlQgUmVmPEpTT046Ok9i
amVjdD4gdG9rZW5TaWduYXR1cmVKU09OKGNvbnN0IFN0cmluZyYgc2VydmVyUHVibGljS2V5QmFz
ZTY0VVJMKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxTb3VyY2VVbmxpbmthYmxlVG9r
ZW4+IGNhbGN1bGF0ZVNvdXJjZVVubGlua2FibGVUb2tlbihjb25zdCBTdHJpbmcmIHNlcnZlclJl
c3BvbnNlQmFzZTY0VVJMKTsKKwogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
T3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IGRlY29kZShEZWNvZGVyJik7CiAKIHBy
aXZhdGU6CiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisgICAgU3RyaW5nIHNvdXJjZVNlY3Jl
dFRva2VuKGNvbnN0IFN0cmluZyYgc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKTsKIAogICAgIFNv
dXJjZUlEIG1fc291cmNlSUQ7CiAgICAgU291cmNlU2l0ZSBtX3NvdXJjZVNpdGU7CkBAIC0zMTAs
OSArMzEwLDE3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcHVyY2hhc2VyOwogICAgIFdhbGxU
aW1lIG1fdGltZU9mQWRDbGljazsKIAotICAgIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5vbmNl
PiBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlOwogICAgIE9wdGlvbmFsPEF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGE+IG1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YTsKICAgICBPcHRpb25hbDxXYWxsVGltZT4g
bV9lYXJsaWVzdFRpbWVUb1NlbmQ7CisKKyAgICBzdHJ1Y3QgU291cmNlU2VjcmV0VG9rZW4gewor
ICAgICAgICBSZXRhaW5QdHI8UlNBQlNTQVRva2VuQmxpbmRlcj4gYmxpbmRlcjsKKyAgICAgICAg
UmV0YWluUHRyPFJTQUJTU0FUb2tlbldhaXRpbmdBY3RpdmF0aW9uPiB3YWl0aW5nVG9rZW47Cisg
ICAgICAgIFJldGFpblB0cjxSU0FCU1NBVG9rZW5SZWFkeT4gcmVhZHlUb2tlbjsKKyAgICB9Owor
CisgICAgT3B0aW9uYWw8RXBoZW1lcmFsU291cmNlTm9uY2U+IG1fZXBoZW1lcmFsU291cmNlTm9u
Y2U7CisgICAgU291cmNlU2VjcmV0VG9rZW4gbV9zb3VyY2VTZWNyZXRUb2tlbjsKIH07CiAKIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUx
ZTY2NmFhMmYwZGU4MzEzYTZhYzQwYWJkMDM3OWNlYmYzNjNlYWQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2Nv
YS5tbQpAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisj
aW1wb3J0ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIgorCisjaW1wb3J0IDxwYWwvY29jb2Ev
Q3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitT
dHJpbmcgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNvdXJjZVNlY3JldFRva2VuKGNvbnN0IFN0
cmluZyYgc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKQoreworI2lmIEhBVkUoUlNBX0JTU0EpCisg
ICAgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gc2VydmVyUHVibGljS2V5RGF0YTsKKyAgICAg
ICAgaWYgKCFiYXNlNjRVUkxEZWNvZGUoc2VydmVyUHVibGljS2V5QmFzZTY0VVJMLCBzZXJ2ZXJQ
dWJsaWNLZXlEYXRhKSkKKyAgICAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOworICAgICAg
ICBhdXRvIHNlcnZlclB1YmxpY0tleSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRo
Qnl0ZXM6c2VydmVyUHVibGljS2V5RGF0YS5kYXRhKCkgbGVuZ3RoOnNlcnZlclB1YmxpY0tleURh
dGEuc2l6ZSgpXSk7CisKKyAgICAgICAgLy8gRklYTUUoMjIyMDE4KTogQ2hlY2sgZXJyb3IuCisg
ICAgICAgIG1fc291cmNlU2VjcmV0VG9rZW4uYmxpbmRlciA9IGFkb3B0TlMoW1BBTDo6YWxsb2NS
U0FCU1NBVG9rZW5CbGluZGVySW5zdGFuY2UoKSBpbml0V2l0aFB1YmxpY0tleTpzZXJ2ZXJQdWJs
aWNLZXkuZ2V0KCkgZXJyb3I6bnVsbHB0cl0pOworICAgICAgICBpZiAoIW1fc291cmNlU2VjcmV0
VG9rZW4uYmxpbmRlcikKKyAgICAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOworICAgIH0K
KworICAgIC8vIEZJWE1FKDIyMjAxOCk6IENoZWNrIGVycm9yLgorICAgIG1fc291cmNlU2VjcmV0
VG9rZW4ud2FpdGluZ1Rva2VuID0gW21fc291cmNlU2VjcmV0VG9rZW4uYmxpbmRlciB0b2tlbldh
aXRpbmdBY3RpdmF0aW9uV2l0aENvbnRlbnQ6bnVsbHB0ciBlcnJvcjpudWxscHRyXTsKKyAgICBp
ZiAoIW1fc291cmNlU2VjcmV0VG9rZW4ud2FpdGluZ1Rva2VuKQorICAgICAgICByZXR1cm4gZW1w
dHlTdHJpbmcoKTsKKworICAgIHJldHVybiBXVEY6OmJhc2U2NFVSTEVuY29kZShbbV9zb3VyY2VT
ZWNyZXRUb2tlbi53YWl0aW5nVG9rZW4gYmxpbmRlZE1lc3NhZ2VdLmJ5dGVzLCBbbV9zb3VyY2VT
ZWNyZXRUb2tlbi53YWl0aW5nVG9rZW4gYmxpbmRlZE1lc3NhZ2VdLmxlbmd0aCk7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkwpOworICAgIHJldHVybiBl
bXB0eVN0cmluZygpOworI2VuZGlmIC8vIEhBVkUoUlNBX0JTU0EpCit9CisKK2F1dG8gUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OmNhbGN1bGF0ZVNvdXJjZVVubGlua2FibGVUb2tlbihjb25zdCBT
dHJpbmcmIHNlcnZlclJlc3BvbnNlQmFzZTY0VVJMKSAtPiBPcHRpb25hbDxTb3VyY2VVbmxpbmth
YmxlVG9rZW4+Cit7CisjaWYgSEFWRShSU0FfQlNTQSkKKyAgICBpZiAoIW1fc291cmNlU2VjcmV0
VG9rZW4ud2FpdGluZ1Rva2VuKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
eworICAgICAgICBWZWN0b3I8dWludDhfdD4gc2VydmVyUmVzcG9uc2VEYXRhOworICAgICAgICBp
ZiAoIWJhc2U2NFVSTERlY29kZShzZXJ2ZXJSZXNwb25zZUJhc2U2NFVSTCwgc2VydmVyUmVzcG9u
c2VEYXRhKSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIGF1dG8g
c2VydmVyUmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnNl
cnZlclJlc3BvbnNlRGF0YS5kYXRhKCkgbGVuZ3RoOnNlcnZlclJlc3BvbnNlRGF0YS5zaXplKCld
KTsKKworICAgICAgICAvLyBGSVhNRSgyMjIwMTgpOiBDaGVjayBlcnJvci4KKyAgICAgICAgbV9z
b3VyY2VTZWNyZXRUb2tlbi5yZWFkeVRva2VuID0gW21fc291cmNlU2VjcmV0VG9rZW4ud2FpdGlu
Z1Rva2VuIGFjdGl2YXRlVG9rZW5XaXRoU2VydmVyUmVzcG9uc2U6c2VydmVyUmVzcG9uc2UuZ2V0
KCkgZXJyb3I6bnVsbHB0cl07CisgICAgICAgIGlmICghbV9zb3VyY2VTZWNyZXRUb2tlbi5yZWFk
eVRva2VuKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBT
b3VyY2VVbmxpbmthYmxlVG9rZW4gdG9rZW47CisgICAgdG9rZW4udG9rZW5CYXNlNjRVUkwgPSBX
VEY6OmJhc2U2NFVSTEVuY29kZShbbV9zb3VyY2VTZWNyZXRUb2tlbi5yZWFkeVRva2VuIHRva2Vu
Q29udGVudF0uYnl0ZXMsIFttX3NvdXJjZVNlY3JldFRva2VuLnJlYWR5VG9rZW4gdG9rZW5Db250
ZW50XS5sZW5ndGgpOworICAgIHRva2VuLmtleUlEQmFzZTY0VVJMID0gV1RGOjpiYXNlNjRVUkxF
bmNvZGUoW21fc291cmNlU2VjcmV0VG9rZW4ucmVhZHlUb2tlbiBrZXlJZF0uYnl0ZXMsIFttX3Nv
dXJjZVNlY3JldFRva2VuLnJlYWR5VG9rZW4ga2V5SWRdLmxlbmd0aCk7CisgICAgdG9rZW4uc2ln
bmF0dXJlQmFzZTY0VVJMID0gV1RGOjpiYXNlNjRVUkxFbmNvZGUoW21fc291cmNlU2VjcmV0VG9r
ZW4ucmVhZHlUb2tlbiBzaWduYXR1cmVdLmJ5dGVzLCBbbV9zb3VyY2VTZWNyZXRUb2tlbi5yZWFk
eVRva2VuIHNpZ25hdHVyZV0ubGVuZ3RoKTsKKworICAgIHJldHVybiB0b2tlbjsKKyNlbHNlCisg
ICAgVU5VU0VEX1BBUkFNKHNlcnZlclJlc3BvbnNlQmFzZTY0VVJMKTsKKyAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworI2VuZGlmIC8vIEhBVkUoUlNBX0JTU0EpCit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcAppbmRleCA3MjliYmI3Njg4OWNh
NmIyYjc0NmE1NTI3MTE3MTdjMjg2NjFmZTAxLi5hZTZlNDBmMjY3MmQ0YTQxNDkzMmViNGEwZDgx
NzYyMGQ5ZDUyYTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwCkBAIC0xNTcsMTIg
KzE1NywxMiBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Z2V0VG9rZW5Q
dWJsaWNLZXkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJgogICAgICAgICB9CiAKICAgICAgICAg
Ly8gRklYTUU6IFJlY2VpdmUgYW5kIGV4dHJhIHRoZSBzZXJ2ZXIgcHVibGljIGtleSwgcmRhcjov
LzczNTgyMDMyLgotICAgICAgICBnZXRTaWduZWRVbmxpbmthYmxlVG9rZW4oV1RGTW92ZShhdHRy
aWJ1dGlvbikpOworICAgICAgICBnZXRTaWduZWRTZWNyZXRUb2tlbihXVEZNb3ZlKGF0dHJpYnV0
aW9uKSwgZW1wdHlTdHJpbmcoKSk7CiAgICAgfSk7CiAKIH0KIAotdm9pZCBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXI6OmdldFNpZ25lZFVubGlua2FibGVUb2tlbihQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCYmIGF0dHJpYnV0aW9uKQordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXI6OmdldFNpZ25lZFNlY3JldFRva2VuKFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYgYXR0
cmlidXRpb24sIGNvbnN0IFN0cmluZyYgdG9rZW5QdWJsaWNLZXlCYXNlNjRVUkwpCiB7CiAgICAg
aWYgKCFmZWF0dXJlRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CkBAIC0xNzgsMjEgKzE3OCwy
MSBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Z2V0U2lnbmVkVW5saW5r
YWJsZVRva2VuKFByaXZhdGVDbGlja01lYXN1cgogICAgIGlmICh0b2tlblNpZ25hdHVyZVVSTC5p
c0VtcHR5KCkgfHwgIXRva2VuU2lnbmF0dXJlVVJMLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgYXV0byBsb2FkUGFyYW1ldGVycyA9IGdlbmVyYXRlTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnNGb3JIdHRwUG9zdChXVEZNb3ZlKHRva2VuU2lnbmF0dXJlVVJMKSwgYXR0cmli
dXRpb24udG9rZW5TaWduYXR1cmVKU09OKCksIHBjbURhdGFDYXJyaWVkKTsKKyAgICBhdXRvIGxv
YWRQYXJhbWV0ZXJzID0gZ2VuZXJhdGVOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyc0Zvckh0
dHBQb3N0KFdURk1vdmUodG9rZW5TaWduYXR1cmVVUkwpLCBhdHRyaWJ1dGlvbi50b2tlblNpZ25h
dHVyZUpTT04odG9rZW5QdWJsaWNLZXlCYXNlNjRVUkwpLCBwY21EYXRhQ2FycmllZCk7CiAKLSAg
ICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiQWJvdXQgdG8gZmly
ZSBhIHVubGlua2FibGUgdG9rZW4gc2lnbmluZyByZXF1ZXN0LiIpOwotICAgIG1fbmV0d29ya1By
b2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpMb2csICJbUHJpdmF0ZSBD
bGljayBNZWFzdXJlbWVudF0gQWJvdXQgdG8gZmlyZSBhIHVubGlua2FibGUgdG9rZW4gc2lnbmlu
ZyByZXF1ZXN0LiJfcyk7CisgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCwgIkFib3V0IHRvIGZpcmUgYSBzZWNyZXQgdG9rZW4gc2lnbmluZyByZXF1ZXN0LiIpOwor
ICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklE
LCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpM
b2csICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQWJvdXQgdG8gZmlyZSBhIHNlY3JldCB0
b2tlbiBzaWduaW5nIHJlcXVlc3QuIl9zKTsKIAogICAgIG1fcGluZ0xvYWRGdW5jdGlvbihXVEZN
b3ZlKGxvYWRQYXJhbWV0ZXJzKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXShjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UpIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAg
IHJldHVybjsKIAogICAgICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICB3
ZWFrVGhpcy0+bV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2Uod2Vha1Ro
aXMtPm1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwg
TWVzc2FnZUxldmVsOjpFcnJvciwgbWFrZVN0cmluZygiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1l
bnRdIFJlY2VpdmVkIGVycm9yOiAnIl9zLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLCAi
JyBmb3IgdW5saW5rYWJsZSB0b2tlbiBzaWduaW5nIHJlcXVlc3QuIl9zKSk7CisgICAgICAgICAg
ICB3ZWFrVGhpcy0+bV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2Uod2Vh
a1RoaXMtPm1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCwgTWVzc2FnZUxldmVsOjpFcnJvciwgbWFrZVN0cmluZygiW1ByaXZhdGUgQ2xpY2sgTWVhc3Vy
ZW1lbnRdIFJlY2VpdmVkIGVycm9yOiAnIl9zLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigp
LCAiJyBmb3Igc2VjcmV0IHRva2VuIHNpZ25pbmcgcmVxdWVzdC4iX3MpKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgLy8gRklYTUU6IFJlY2VpdmUg
YW5kIHN0b3JlIHRoZSBzaWduZWQgdW5saW5rYWJsZSB0b2tlbiwgcmRhcjovLzczNTgyMDMyLgor
ICAgICAgICAvLyBGSVhNRTogUmVjZWl2ZSBhbmQgc3RvcmUgdGhlIHNpZ25lZCBzZWNyZXQgdG9r
ZW4sIHJkYXI6Ly83MzU4MjAzMi4KICAgICB9KTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
LmgKaW5kZXggNTczZjMzY2UyYzM1NjM4YzYwZGVlYTdlNGY5YTc5NjkxY2YwYzg0Mi4uMGJhZjli
NDA2ZjEyOWU0M2NkMjFlZmEyNDFhMzY5ZWFmNzZhZGI5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlci5oCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2b2lkIGdl
dFRva2VuUHVibGljS2V5KFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYpOwotICAgIHZvaWQgZ2V0
U2lnbmVkVW5saW5rYWJsZVRva2VuKFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYpOworICAgIHZv
aWQgZ2V0U2lnbmVkU2VjcmV0VG9rZW4oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiwgY29uc3Qg
U3RyaW5nJiB0b2tlblB1YmxpY0tleUJhc2U2NFVSTCk7CiAgICAgdm9pZCBjbGVhclNlbnRBdHRy
aWJ1dGlvbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmKTsKICAgICB2b2lkIGF0dHJpYnV0ZShj
b25zdCBTb3VyY2VTaXRlJiwgY29uc3QgQXR0cmlidXRlT25TaXRlJiwgQXR0cmlidXRpb25Ucmln
Z2VyRGF0YSYmKTsKICAgICB2b2lkIGZpcmVDb252ZXJzaW9uUmVxdWVzdChjb25zdCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCYpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDc0ZTZlN2Y5NWNiYWQ0ODYwYzUxMWZjZjQ3ZDI4NjZjYjk3ODA5NDYu
LjA2MzU4YmU4MWJkZGNjNjhjYjZkNTMxMzJlNTc0Y2Q4NGZmM2ZiMjUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAy
MS0wMi0xNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFBD
TTogR2VuZXJhdGUgc2VjcmV0IHRva2VuIGFuZCBjb3JyZXNwb25kaW5nIHVubGlua2FibGUgdG9r
ZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjAx
OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzM1ODE0MTI+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgSm9obiBXaWxhbmRlci4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgQWRkIHRlc3RzLgorCiAyMDIxLTAyLTE5ICBKaWV3ZW4gVGFuICA8amll
d2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUENNOiBSZXF1ZXN0IHNlcnZlciBwdWJsaWMg
a2V5IHRvIGdlbmVyYXRlIHNlY3JldCB0b2tlbgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLnhjY29uZmlnIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLnhjY29uZmlnCmluZGV4IDcwYmU4
YWE3NzA0M2I3NDE3N2Q0MDZkMDNjMzE0OTYzOGE5OWYxZTkuLmQzYTQ0YThhYzU3ZDA3NjBkM2M1
MmQwZWQxODk5MDViNzI1ZGIxOGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29u
ZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS54Y2NvbmZpZworKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25maWcKQEAgLTU1LDYgKzU1LDEy
IEBAIFdLX1BERktJVF9MREZMQUdTX21hY29zeCA9IC1mcmFtZXdvcmsgUERGS2l0OwogV0tfUERG
S0lUX0xERkxBR1NfaXBob25lb3MgPSAtZnJhbWV3b3JrIFBERktpdDsKIFdLX1BERktJVF9MREZM
QUdTX2lwaG9uZXNpbXVsYXRvciA9IC1mcmFtZXdvcmsgUERGS2l0OwogCitXS19TWVNURU1fTERG
TEFHUyA9ICQoV0tfU1lTVEVNX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CitXS19TWVNU
RU1fTERGTEFHU19tYWNvc3ggPSAtZnJhbWV3b3JrIFN5c3RlbTsKK1dLX1NZU1RFTV9MREZMQUdT
X2lwaG9uZW9zID0gJChXS19TWVNURU1fTERGTEFHU18kKFdLX0lPU18xNSkpOworV0tfU1lTVEVN
X0xERkxBR1NfaXBob25lc2ltdWxhdG9yID0gJChXS19TWVNURU1fTERGTEFHU18kKFdLX0lPU18x
NSkpOworV0tfU1lTVEVNX0xERkxBR1NfSU9TX1NJTkNFXzE1ID0gLWZyYW1ld29yayBTeXN0ZW07
CisKIFdLX0hJRF9MREZMQUdTID0gJChXS19ISURfTERGTEFHU18kKFdLX1BMQVRGT1JNX05BTUUp
KTsKIFdLX0hJRF9MREZMQUdTX21hY29zeCA9ICQoV0tfSElEX0xERkxBR1MkKFdLX01BQ09TXzEw
MTUpKTsKIFdLX0hJRF9MREZMQUdTX01BQ09TX1NJTkNFXzEwMTUgPSAtZnJhbWV3b3JrIEhJRDsK
QEAgLTcxLDcgKzc3LDcgQEAgV0tfT1BFTkdMX0xERkxBR1NfYXBwbGV0dm9zID0gJChXS19PUEVO
R0xfTERGTEFHU19pcGhvbmVvcyk7CiBXS19PUEVOR0xfTERGTEFHU19hcHBsZXR2c2ltdWxhdG9y
ID0gJChXS19PUEVOR0xfTERGTEFHU19pcGhvbmVzaW11bGF0b3IpOwogV0tfT1BFTkdMX0xERkxB
R1NfbWFjb3N4ID0gLWZyYW1ld29yayBPcGVuR0w7CiAKLU9USEVSX0xERkxBR1MgPSAkKGluaGVy
aXRlZCkgJChVTkVYUE9SVEVEX1NZTUJPTF9MREZMQUdTKSAtbGd0ZXN0IC1mb3JjZV9sb2FkICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9saWJUZXN0V2ViS2l0QVBJLmEgLWZyYW1ld29yayBKYXZhU2Ny
aXB0Q29yZSAtZnJhbWV3b3JrIFdlYktpdCAtbFdlYkNvcmVUZXN0U3VwcG9ydCAkKFdLX0FVVEhL
SVRfTERGTEFHUykgLWZyYW1ld29yayBOZXR3b3JrICQoV0tfUERGS0lUX0xERkxBR1MpICQoV0tf
SElEX0xERkxBR1MpICQoV0tfT1BFTkdMX0xERkxBR1MpICQoT1RIRVJfTERGTEFHU19QTEFURk9S
TV8kKFdLX0NPQ09BX1RPVUNIKSk7CitPVEhFUl9MREZMQUdTID0gJChpbmhlcml0ZWQpICQoVU5F
WFBPUlRFRF9TWU1CT0xfTERGTEFHUykgLWxndGVzdCAtZm9yY2VfbG9hZCAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvbGliVGVzdFdlYktpdEFQSS5hIC1mcmFtZXdvcmsgSmF2YVNjcmlwdENvcmUgLWZy
YW1ld29yayBXZWJLaXQgLWxXZWJDb3JlVGVzdFN1cHBvcnQgJChXS19BVVRIS0lUX0xERkxBR1Mp
IC1mcmFtZXdvcmsgTmV0d29yayAkKFdLX1NZU1RFTV9MREZMQUdTKSAkKFdLX1BERktJVF9MREZM
QUdTKSAkKFdLX0hJRF9MREZMQUdTKSAkKFdLX09QRU5HTF9MREZMQUdTKSAkKE9USEVSX0xERkxB
R1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkpOwogT1RIRVJfTERGTEFHU19QTEFURk9STV8g
PSAtZnJhbWV3b3JrIENvY29hIC1mcmFtZXdvcmsgQ2FyYm9uOwogCiAvLyBGSVhNRTogVGhpcyBz
aG91bGQgbm90IGJlIGJ1aWx0IG9uIGlPUy4gSW5zdGVhZCB3ZSBzaG91bGQgY3JlYXRlIGFuZCB1
c2UgYSBUZXN0V2ViS2l0QVBJIGFwcGxpY2F0aW9uLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAzYzJmMDY4ZTFkMDhmOTBhY2IxZWMzZjBkY2YzMWNmY2JmZmQ2ODlmLi43OWNhYjIzZDk4NGEz
YTMwOGM5MDcwNDc4NDY3M2NiNGM2Njg2NjVjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
NDQxLDYgKzQ0MSw3IEBACiAJCTU3QzYyNDUwMjM0NkMyMUUwMDM4M0ZFNyAvKiB3ZWItYXV0aGVu
dGljYXRpb24tZ2V0LWFzc2VydGlvbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3QzYyNDRGMjM0NkMxRUMwMDM4M0ZFNyAvKiB3ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi5odG1sICovOyB9OwogCQk1N0VERkM1QzI0NUEx
QTNGMDA5NTk1MjEgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYS1uby1t
b2NrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTdFREZDNUIyNDVBMThGNTAwOTU5NTIxIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtl
LWNyZWRlbnRpYWwtbGEtbm8tbW9jay5odG1sICovOyB9OwogCQk1N0VERkM2MDI0NUEyOTlDMDA5
NTk1MjEgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbGEtbm8tbW9jay5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
RURGQzVGMjQ1QTI3OTkwMDk1OTUyMSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlv
bi1sYS1uby1tb2NrLmh0bWwgKi87IH07CisJCTU3RjFDOTExMjVEREQ1MTkwMEU4RjZFQSAvKiBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGMUM5MTAyNURERDUxOTAwRThGNkVBIC8qIFByaXZhdGVD
bGlja01lYXN1cmVtZW50Q29jb2EubW0gKi87IH07CiAJCTU3RjRBQUEwMjA4RkFFRjAwMEE2OEU5
RSAvKiBTU0xLZXlHZW5lcmF0b3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1N0Y0QUE5RjIwOEZBODNEMDBBNjhFOUUgLyogU1NMS2V5R2VuZXJhdG9y
Lm1tICovOyB9OwogCQk1N0Y1NkE1QzFDN0Y4Q0MxMDBGMzFEN0UgLyogSXNOYXZpZ2F0aW9uQWN0
aW9uVHJ1c3RlZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU3RjU2QTVCMUM3RjhBNDAwMEYzMUQ3RSAvKiBJc05hdmlnYXRpb25BY3Rp
b25UcnVzdGVkLmh0bWwgKi87IH07CiAJCTVDMDE2MEMxMjFBMTMyNDYwMDc3RkEzMiAvKiBKSVRF
bmFibGVkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NUMwMTYwQzAyMUExMzIzMjAwNzdGQTMyIC8qIEpJVEVuYWJsZWQubW0gKi87IH07CkBAIC0yMjMz
LDYgKzIyMzQsNyBAQAogCQk1N0VERkM1QjI0NUExOEY1MDA5NTk1MjEgLyogd2ViLWF1dGhlbnRp
Y2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYS1uby1tb2NrLmh0bWwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1
dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYS1uby1tb2NrLmh0bWwiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1N0VERkM1RjI0NUEyNzk5MDA5NTk1MjEgLyogd2ViLWF1dGhl
bnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbGEtbm8tbW9jay5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIndlYi1h
dXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWxhLW5vLW1vY2suaHRtbCI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU3RjEwRDkyMUM3RTdCMzgwMEVDREYzMCAvKiBJc05hdmlnYXRp
b25BY3Rpb25UcnVzdGVkLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTdGMUM5MTAyNURERDUxOTAwRThGNkVBIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
Y29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0Y0QUE5RjIwOEZBODNEMDBB
NjhFOUUgLyogU1NMS2V5R2VuZXJhdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU1NMS2V5
R2VuZXJhdG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0Y1NkE1QjFDN0Y4
QTQwMDBGMzFEN0UgLyogSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5odG1sICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5odG1sOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1QzAxNjBDMDIxQTEzMjMyMDA3N0ZBMzIgLyogSklURW5h
YmxlZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEpJVEVuYWJs
ZWQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NzExLDYgKzQ3MTMsNyBAQAog
CQkJY2hpbGRyZW4gPSAoCiAJCQkJMDcxMURGNTEyMjZBOTVGQjAwM0REMkY3IC8qIEFWRm91bmRh
dGlvblNvZnRMaW5rVGVzdC5tbSAqLywKIAkJCQk3NTFCMDVENTFGOEVBQzFBMDAyOEEwOUUgLyog
RGF0YWJhc2VUcmFja2VyVGVzdC5tbSAqLywKKwkJCQk1N0YxQzkxMDI1RERENTE5MDBFOEY2RUEg
LyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbSAqLywKIAkJCQk1NzY5QzUwQTFEOUIw
MDAxMDAwODQ3RkIgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAubW0gKi8sCiAJCQkJQTE3OTkx
ODYxRTFDOTk0RTAwQTUwNUVEIC8qIFNoYXJlZEJ1ZmZlci5tbSAqLywKIAkJCQlDRDg5RDAzODFD
NEVEQjJBMDAwNDBBMDQgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSAqLywKQEAgLTU0ODYsNiAr
NTQ4OSw3IEBACiAJCQkJQTFFQzExODgxRjQyNTQxMjAwRDAxNDZFIC8qIFByZXZpZXdDb252ZXJ0
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMEMxQTQxMUFFNjAwNDQ3QzRDIC8qIFBy
aXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTZCMEEwN0Y3MjFGQTlDMkIwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1N0YxQzkxMTI1RERENTE5MDBFOEY2RUEgLyogUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQ2NDdCMTI2
MUVCQTNCODUwMDQxRDdFRiAvKiBQcm9jZXNzRGlkVGVybWluYXRlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTQxODgyRjAzMjEwMTBDMEQwMDJGRjI4OCAvKiBQcm9jZXNzUHJlV2FybWluZy5tbSBp
biBTb3VyY2VzICovLAogCQkJCUNEQTQ0MzhFMjFGN0E0NzcwMDM3OTQ4OSAvKiBQcm9jZXNzU3Vz
cGVuZE1lZGlhQnVmZmVyaW5nLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
LmNwcAppbmRleCBiNzMyNjMzNDRmZTFmNmU5ZWIwZTQyYTI2ZTcyYzRmYjJmMzkwZjM2Li4yNjAz
MDM3ZDAyOGI5OTVjODJmZWJiYzNhYTdjN2RiYjJhNDA1MDJkIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiVGVzdC5oIgogCiAjaW5jbHVkZSA8V2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KQEAgLTMwMCw0ICszMDEsMjMgQEAgVEVTVChQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZFNvdXJjZU5vbmNlKQogICAgIEFTU0VSVF9G
QUxTRShlcGhlbWVyYWxOb25jZS5pc1ZhbGlkKCkpOwogfQogCitURVNUKFByaXZhdGVDbGlja01l
YXN1cmVtZW50LCBJbnZhbGlkQmxpbmRlZFNlY3JldCkKK3sKKyAgICBjb25zdCBjaGFyIHNlcnZl
clB1YmxpY0tleUJhc2U2NFVSTFtdID0gIk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhB
TUlJQ0NnS0NBZ0VBemIxZFRocnRZd1ZoNDZTakluZWdLaEFxcGJKd20xWG5UQkN2eWJTSzh6azUz
UjBBbTFoRzMzQVZGNUoxbHFZZjM2d3A2NjNHYXNjbEh0cXp2eEZaSXZEQTFEVVNINGFael9mREhD
VFR4RWVKVlBPUlMzek5OMlVqV3didG53c2g0Qm1EVGktel9jRG4wTEF6Mkp1WnlLbHlGdDVHZ1ZM
QVF2TDlIM1ZMSFU5X1hITkstdWJveVhmY0hSVHRyRG5wdTNjNnd2WDVkZC1BSm9MbUlRVFpCRUpm
Vmt4Qkd6bmsxcUtIamM2bkFTQWlyS0Zfd0pDbnV3QUs4QzZCQWNqTmN3VVdDZUtwMFlFQ3pDWFUt
LUpYZDJPRVUtUWh4UEM2N2ZhaURPaDNWMHZsZnFaTHRybGJuYW5VQ0tydmh3N0dhR09HWW90SXJu
WnR1TmZ4QzE0ZF9YTlZkMUZTOG5IalJUSG5FZ3dfam5sU3NzZmdTdHowdUp0Y21rZmdvSkJ2T0U0
bUlScGk3aVNsUmZYTmtLc1dYMUotZ3djbkNWbzV1MHVKRVc2WDZOeXZFR1lKOHc1QlBmd3NRdUs5
eS00Wjdpa3Q5SU91Y0VIWTdUaERtaTlUTk5oSEJWajBHdTR3R29TanEzYTZ2TDVOMTBaU0hYb3Ex
WGdmR1BybUhoaEw5MGNqdldvbm95T1hzVXFsWEV6VGpEMlc5ODk3US1NeDlCVU5yR1FQcW1JeDhG
NU13eFdjT3J5ZThXUnA0UTg4bjJZU1VuVjdDOGF5bGQzdjFGaDdONWplU3FlVm10RFZSWVRuMnNW
Zk5xZ1hyemdkaWdKY1FSOHZGRU51Nm56RlB3c3JYUE1hQ2lMVW5aTlVtUTFaU0xRZVF5aFlYeEhx
UkpybnVDRFdYTGtDQXdFQUFRIjsKKworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IHBjbTsK
KyAgICBhdXRvIHNvdXJjZVNlY3JldFRva2VuID0gcGNtLnRva2VuU2lnbmF0dXJlSlNPTihzZXJ2
ZXJQdWJsaWNLZXlCYXNlNjRVUkwpOworICAgIEVYUEVDVF9FUShzb3VyY2VTZWNyZXRUb2tlbi0+
YXNPYmplY3QoKS0+c2l6ZSgpLCAwdWwpOworCisgICAgYXV0byBlcGhlbWVyYWxOb25jZSA9IFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZSB7ICJBQkNERUZhYmNk
ZWYwMTIzNDU2Nzg5Il9zIH07CisgICAgRVhQRUNUX1RSVUUoZXBoZW1lcmFsTm9uY2UuaXNWYWxp
ZCgpKTsKKyAgICBwY20uc2V0RXBoZW1lcmFsU291cmNlTm9uY2UoV1RGTW92ZShlcGhlbWVyYWxO
b25jZSkpOworCisgICAgc291cmNlU2VjcmV0VG9rZW4gPSBwY20udG9rZW5TaWduYXR1cmVKU09O
KHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCk7CisgICAgRVhQRUNUX0VRKHNvdXJjZVNlY3JldFRv
a2VuLT5hc09iamVjdCgpLT5zaXplKCksIDR1bCk7CisKKyAgICBhdXRvIHBlcnNpc3RlbnRUb2tl
biA9IHBjbS5jYWxjdWxhdGVTb3VyY2VVbmxpbmthYmxlVG9rZW4oZW1wdHlTdHJpbmcoKSk7Cisg
ICAgRVhQRUNUX0ZBTFNFKHBlcnNpc3RlbnRUb2tlbik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGU1ZDVmYjZkMTgyMTc1OTgwNzA1ODcyOGFmYjg1ZGNiMDJiYmYxNgotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tCkBAIC0wLDAgKzEsMTA4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRlc3QuaCIKKworI2lmIEhBVkUo
UlNBX0JTU0EpCisKKyNpbmNsdWRlIDxTZWN1cml0eS9TZWNLZXlQcml2Lmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oPgorCitleHRlcm4gIkMiIHsKKyNpbmNs
dWRlIDxjb3JlY3J5cHRvL2NjX3ByaXYuaD4KKyNpbmNsdWRlIDxjb3JlY3J5cHRvL2Njcm5nLmg+
CisjaW5jbHVkZSA8Y29yZWNyeXB0by9jY3JzYS5oPgorI2luY2x1ZGUgPGNvcmVjcnlwdG8vY2Ny
c2Fic3NhLmg+Cit9CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7CisKK1RFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIFZhbGlkQmxpbmRl
ZFNlY3JldCkKK3sKKyAgICBhdXRvIGVwaGVtZXJhbE5vbmNlID0gUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlIHsgIkFCQ0RFRmFiY2RlZjAxMjM0NTY3ODkiX3Mg
fTsKKyAgICBFWFBFQ1RfVFJVRShlcGhlbWVyYWxOb25jZS5pc1ZhbGlkKCkpOworCisgICAgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQgcGNtOworICAgIHBjbS5zZXRFcGhlbWVyYWxTb3VyY2VOb25j
ZShXVEZNb3ZlKGVwaGVtZXJhbE5vbmNlKSk7CisKKyAgICAvLyBHZW5lcmF0ZSB0aGUgc2VydmVy
IGtleSBwYWlyLgorICAgIHNpemVfdCBtb2R1bHVzTkJpdHMgPSA0MDk2OworICAgIGludCBlcnJv
ciA9IDA7CisKKyAgICBzdHJ1Y3QgY2Nybmdfc3RhdGUqIHJuZyA9IGNjcm5nKCZlcnJvcik7Cisg
ICAgRVhQRUNUX0VRKGVycm9yLCBDQ0VSUl9PSyk7CisKKyAgICBjb25zdCB1aW50OF90IGVbXSA9
IHsgMHgxLCAweDAwLCAweDAxIH07CisgICAgY2Nyc2FfZnVsbF9jdHhfZGVjbChjY25fc2l6ZW9m
KG1vZHVsdXNOQml0cyksIHJzYVByaXZhdGVLZXkpOworICAgIGVycm9yID0gY2Nyc2FfZ2VuZXJh
dGVfa2V5KG1vZHVsdXNOQml0cywgcnNhUHJpdmF0ZUtleSwgc2l6ZW9mKGUpLCBlLCBybmcpOwor
ICAgIEVYUEVDVF9FUShlcnJvciwgQ0NFUlJfT0spOworCisgICAgY2Nyc2FfcHViX2N0eF90IHJz
YVB1YmxpY0tleSA9IGNjcnNhX2N0eF9wdWJsaWMocnNhUHJpdmF0ZUtleSk7CisgICAgc2l6ZV90
IG1vZHVsdXNOQnl0ZXMgPSBjY19jZWlsaW5nKGNjcnNhX3B1YmtleWxlbmd0aChyc2FQdWJsaWNL
ZXkpLCA4KTsKKworICAgIGNvbnN0IHN0cnVjdCBjY3JzYWJzc2FfY2lwaGVyc3VpdGUgKmNpcGhl
cnN1aXRlID0gJmNjcnNhYnNzYV9jaXBoZXJzdWl0ZV9yc2E0MDk2X3NoYTM4NDsKKworICAgIHNp
emVfdCBleHBvcnRTaXplID0gY2NkZXJfZW5jb2RlX3JzYV9wdWJfc2l6ZShyc2FQdWJsaWNLZXkp
OworICAgIGF1dG8gcHVibGljS2V5ID0gYWRvcHROUyhbW05TTXV0YWJsZURhdGEgYWxsb2NdIGlu
aXRXaXRoTGVuZ3RoOmV4cG9ydFNpemVdKTsKKyAgICBjY2Rlcl9lbmNvZGVfcnNhX3B1Yihyc2FQ
dWJsaWNLZXksIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihbcHVibGljS2V5IG11dGFibGVCeXRlc10p
LCBzdGF0aWNfY2FzdDx1aW50OF90Kj4oW3B1YmxpY0tleSBtdXRhYmxlQnl0ZXNdKSArIFtwdWJs
aWNLZXkgbGVuZ3RoXSk7CisKKyAgICBhdXRvIHNlY0tleSA9IGFkb3B0Q0YoU2VjS2V5Q3JlYXRl
V2l0aERhdGEoKF9fYnJpZGdlIENGRGF0YVJlZilwdWJsaWNLZXkuZ2V0KCksIChfX2JyaWRnZSBD
RkRpY3Rpb25hcnlSZWYpQHsKKyAgICAgICAgKF9fYnJpZGdlIGlkKWtTZWNBdHRyS2V5VHlwZTog
KF9fYnJpZGdlIGlkKWtTZWNBdHRyS2V5VHlwZVJTQSwKKyAgICAgICAgKF9fYnJpZGdlIGlkKWtT
ZWNBdHRyS2V5Q2xhc3M6IChfX2JyaWRnZSBpZClrU2VjQXR0cktleUNsYXNzUHVibGljCisgICAg
fSwgbmlsKSk7CisgICAgRVhQRUNUX05PVF9OVUxMKHNlY0tleSk7CisKKyAgICBhdXRvIHNwa2lE
YXRhID0gYWRvcHRDRihTZWNLZXlDb3B5U3ViamVjdFB1YmxpY0tleUluZm8oc2VjS2V5LmdldCgp
KSk7CisgICAgYXV0byAqbnNTcGtpRGF0YSA9IChfX2JyaWRnZSBOU0RhdGEgKilzcGtpRGF0YS5n
ZXQoKTsKKworICAgIC8vIENvbnRpbnVlIHRoZSB0ZXN0LgorICAgIGF1dG8gc291cmNlU2VjcmV0
VG9rZW4gPSBwY20udG9rZW5TaWduYXR1cmVKU09OKFdURjo6YmFzZTY0VVJMRW5jb2RlKG5zU3Br
aURhdGEuYnl0ZXMsIG5zU3BraURhdGEubGVuZ3RoKSk7CisgICAgRVhQRUNUX0VRKHNvdXJjZVNl
Y3JldFRva2VuLT5hc09iamVjdCgpLT5zaXplKCksIDR1bCk7CisgICAgRVhQRUNUX1NUUkVRKHNv
dXJjZVNlY3JldFRva2VuLT5nZXRTdHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5cGUiX3MpLnV0
ZjgoKS5kYXRhKCksICJjbGljayIpOworICAgIEVYUEVDVF9TVFJFUShzb3VyY2VTZWNyZXRUb2tl
bi0+Z2V0U3RyaW5nKCJzb3VyY2Vfbm9uY2UiX3MpLnV0ZjgoKS5kYXRhKCksICJBQkNERUZhYmNk
ZWYwMTIzNDU2Nzg5Iik7CisgICAgRVhQRUNUX0ZBTFNFKHNvdXJjZVNlY3JldFRva2VuLT5nZXRT
dHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW4iX3MpLmlzRW1wdHkoKSk7CisgICAgRVhQRUNUX0VR
KHNvdXJjZVNlY3JldFRva2VuLT5nZXRJbnRlZ2VyKCJ2ZXJzaW9uIl9zKSwgMik7CisKKyAgICAv
LyBHZW5lcmF0ZSB0aGUgc2lnbmF0dXJlLgorICAgIFZlY3Rvcjx1aW50OF90PiBibGluZGVkTWVz
c2FnZTsKKyAgICBiYXNlNjRVUkxEZWNvZGUoc291cmNlU2VjcmV0VG9rZW4tPmdldFN0cmluZygi
c291cmNlX3NlY3JldF90b2tlbiJfcyksIGJsaW5kZWRNZXNzYWdlKTsKKworICAgIGF1dG8gYmxp
bmRlZFNpZ25hdHVyZSA9IGFkb3B0TlMoW1tOU011dGFibGVEYXRhIGFsbG9jXSBpbml0V2l0aExl
bmd0aDogbW9kdWx1c05CeXRlc10pOworICAgIGNjcnNhYnNzYV9zaWduX2JsaW5kZWRfbWVzc2Fn
ZShjaXBoZXJzdWl0ZSwgcnNhUHJpdmF0ZUtleSwgYmxpbmRlZE1lc3NhZ2UuZGF0YSgpLCBibGlu
ZGVkTWVzc2FnZS5zaXplKCksIHN0YXRpY19jYXN0PHVpbnQ4X3QgKj4oW2JsaW5kZWRTaWduYXR1
cmUgbXV0YWJsZUJ5dGVzXSksIFtibGluZGVkU2lnbmF0dXJlIGxlbmd0aF0sIHJuZyk7CisKKyAg
ICAvLyBDb250aW51ZSB0aGUgdGVzdC4KKyAgICBhdXRvIHBlcnNpc3RlbnRUb2tlbiA9IHBjbS5j
YWxjdWxhdGVTb3VyY2VVbmxpbmthYmxlVG9rZW4oV1RGOjpiYXNlNjRVUkxFbmNvZGUoW2JsaW5k
ZWRTaWduYXR1cmUgYnl0ZXNdLCBbYmxpbmRlZFNpZ25hdHVyZSBsZW5ndGhdKSk7CisgICAgRVhQ
RUNUX1RSVUUocGVyc2lzdGVudFRva2VuKTsKKyAgICBFWFBFQ1RfRkFMU0UocGVyc2lzdGVudFRv
a2VuLT50b2tlbkJhc2U2NFVSTC5pc0VtcHR5KCkpOworICAgIEVYUEVDVF9GQUxTRShwZXJzaXN0
ZW50VG9rZW4tPmtleUlEQmFzZTY0VVJMLmlzRW1wdHkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKHBl
cnNpc3RlbnRUb2tlbi0+c2lnbmF0dXJlQmFzZTY0VVJMLmlzRW1wdHkoKSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIEVIQVZFKFJTQV9CU1NBKQo=
</data>
<flag name="commit-queue"
          id="439663"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420948</attachid>
            <date>2021-02-19 02:59:02 -0800</date>
            <delta_ts>2021-02-19 03:05:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222019-20210219025902.patch</filename>
            <type>text/plain</type>
            <size>50346</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJmZDcxYjc4YzVmNThiMjMwZjYwOTg4
N2E1MDM4ZjRmYjk5NTdkZjIuLjdkMzYxMzZlYjI0YmRiYTc3NTc2ODlmZjM2YTdjNGY0NzRmNTUz
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5f
dGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQg
Y29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcz
NTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2lsYW5kZXIuCisKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1IYXZlLmg6CisgICAgICAgIEFkZHMgYSBjb21waWxlIHRpbWUgZmxhZyBm
b3IgUlNBQlNTQS4KKwogMjAyMS0wMi0xOCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIGV4cGVyaW1lbnRhbCBzdXBwb3J0IGZvciBDU1MgQ29sb3IgNSBSZWxh
dGl2ZSBDb2xvciBTeW50YXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3Njk4MGM0NGM5ZmIwNjAzZTAyZWY3NGY0
NDk1OTU1NDYyY2ZlMWYwLi45YmNhNDE5Y2MwNmVkYjc0ZmQwMmNkMDY1ZGI0ZjRhNzRhZDQyZWNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxq
aWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tl
biBhbmQgY29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzczNTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2lsYW5kZXIuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBBUEkgdGVzdHMuCisKKyAgICAgICAgVGhpcyBwYXRjaCB1dGlsaXpl
cyBSU0FCU1NBIHRvIGdlbmVyYXRlIHNlY3JldCB0b2tlbiBmb3IgUENNIGZyYXVkIHByZXZlbnRp
b24uCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnOgorICAgICAg
ICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICBQYXBlcndvcmsgdG8gbGluayBDcnlwdG9LaXRDQnJpZGdpbmcu
CisKKyAgICAgICAgKiBsb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNl
Ojppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpzZXRFcGhlbWVyYWxTb3VyY2VOb25jZSk6CisgICAgICAgICogbG9hZGVyL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6YXR0cmlidXRlT25TaXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjplcGhlbWVyYWxTb3VyY2VOb25jZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y2xlYXJFcGhlbWVyYWxTb3VyY2VOb25j
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFs
U291cmNlTm9uY2U6OkVwaGVtZXJhbFNvdXJjZU5vbmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNW
YWxpZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6c2V0RXBoZW1lcmFsU291cmNlTm9uY2UpOiBEZWxldGVkLgorICAgICAgICBHcm91
cHMgZnVuY3Rpb25hbGl0aWVzIGJlaGluZCBIQVZFX1JTQV9CU1NBLgorCisgICAgICAgICogbG9h
ZGVyL2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW06IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmJsaW5kZWRTZWNyZXRKc29uKToK
KyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpjYWxjdWxhdGVQZXJz
aXN0ZW50QmxpbmRlZFRva2VuKToKKyAgICAgICAgSW50cm9kdWNlcyBuZXcgbWV0aG9kcyB0byBn
ZW5lcmF0ZSB0aGUgYmxpbmRlZCBzZWNyZXRzIGFuZCB1bmxpbmthYmxlIHRva2Vucy4KKwogMjAy
MS0wMi0xOSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFBD
TTogUmVxdWVzdCBzZXJ2ZXIgcHVibGljIGtleSB0byBnZW5lcmF0ZSBzZWNyZXQgdG9rZW4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1IYXZlLmgKaW5kZXggMDQ4NmZjZTJjNDE4NmQyZDhiZjI1OTEyNTU5NmU4NjM5Y2Qz
NDUxMS4uZGExNWZkN2RlN2VlNWM4YWFmMDM0OWZmMTAyOGY3MmU1Njk1NGFmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxh
dGZvcm1IYXZlLmgKQEAgLTg4OCwzICs4ODgsOCBAQAogI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDAKICNkZWZpbmUgSEFWRV9TVEFU
SUNfRk9OVF9SRUdJU1RSWSAxCiAjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwKSBcCisgICAgfHwgKFBMQVRGT1JN
KElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTUwMDAwKQorI2Rl
ZmluZSBIQVZFX1JTQV9CU1NBIDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BB
TC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJlZGJjYzljMDM4ODc1ZWFlNDAyY2E1
ZDU3OTU0OGRhMDdjZTc0NmUuLjg4NDkwZTBkOTk3MjdhODc5NjVlYjVjYTBhOGU2MjBiMGE0ZjFk
ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTEzOCw2ICsxMzgsOCBAQAogCQk1NzBBQjhGOTIwQUY2RTNEMDBCOEJFODcgLyog
TlNYUENDb25uZWN0aW9uU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzBBQjhGODIwQUY2RTNEMDBCOEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJ
LmggKi87IH07CiAJCTU3MkExMDc4MjJCNDU2RjUwMEY0MTBDOCAvKiBBdXRoS2l0U1BJLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJBMTA3NzIyQjQ1
NkY1MDBGNDEwQzggLyogQXV0aEtpdFNQSS5oICovOyB9OwogCQk1NzZDQTlENjIyQjg1NEFCMDAz
MDE0M0MgLyogQXBwU1NPU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzZDQTlENTIyQjg1NEFCMDAzMDE0M0MgLyogQXBwU1NPU1BJLmggKi87IH07
CisJCTU3RjFDOTA5MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGMUM5
MDcyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmggKi87IH07
CisJCTU3RjFDOTBBMjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RjFD
OTA4MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbSAqLzsg
fTsKIAkJNTdGRDMxOEEyMkIzNTkzRTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGRDMxODkyMkIzNTkz
RTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLm1tICovOyB9OwogCQk1N0ZEMzE4QjIyQjM1OTg5
MDA4RDBFOEIgLyogQXBwU1NPU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3RkQzMTg4MjJCMzU5MkYwMDhEMEU4QiAvKiBBcHBTU09Tb2Z0
TGluay5oICovOyB9OwogCQk1QzdDNzg3MzIzQUMzRTc3MDA2NUY0N0UgLyogTWFuYWdlZENvbmZp
Z3VyYXRpb25Tb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUM3Qzc4NzEyM0FDM0U3NzAwNjVGNDdFIC8qIE1hbmFnZWRDb25maWd1cmF0aW9u
U29mdExpbmsuaCAqLzsgfTsKQEAgLTM0MSw2ICszNDMsOCBAQAogCQk1NzBBQjhGODIwQUY2RTNE
MDBCOEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TWFBDQ29u
bmVjdGlvblNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJBMTA3NzIyQjQ1
NkY1MDBGNDEwQzggLyogQXV0aEtpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoS2l0U1BJLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NkNBOUQ1MjJCODU0QUIwMDMwMTQzQyAv
KiBBcHBTU09TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwU1NPU1BJLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTU3RjFDOTA3MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJp
ZGdpbmdTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0YxQzkwODI1RENGMENGMDBFOEY2
RUEgLyogQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTdGRDMxODgyMkIzNTkyRjAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcFNTT1NvZnRMaW5rLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU3RkQzMTg5MjJCMzU5M0UwMDhEMEU4QiAvKiBBcHBTU09Tb2Z0
TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFwcFNTT1Nv
ZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzdDNzg3MTIzQUMzRTc3
MDA2NUY0N0UgLyogTWFuYWdlZENvbmZpZ3VyYXRpb25Tb2Z0TGluay5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNYW5hZ2VkQ29uZmlndXJhdGlvblNvZnRMaW5rLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02OTEsNiArNjk1LDggQEAKIAkJCQk1N0ZEMzE4OTIy
QjM1OTNFMDA4RDBFOEIgLyogQXBwU1NPU29mdExpbmsubW0gKi8sCiAJCQkJMDc3RTg3QjAyMjZB
NDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLmggKi8sCiAJCQkJMDc3RTg3QUYy
MjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLm1tICovLAorCQkJCTU3RjFD
OTA3MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oICovLAor
CQkJCTU3RjFDOTA4MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5tbSAqLywKIAkJCQlGNDQyOTE2NjFGQTUyNzA1MDAyQ0M5M0UgLyogRmlsZVNpemVGb3JtYXR0
ZXJDb2NvYS5tbSAqLywKIAkJCQkxQzAyMkVGQzIyQ0ZFOEUwMDA2REYwMUIgLyogR3VuemlwLmNw
cCAqLywKIAkJCQlDREFDQjM1RTIzODczRTQ4MDAxOEQ3Q0UgLyogTWVkaWFUb29sYm94U29mdExp
bmsuY3BwICovLApAQCAtODI4LDYgKzgzNCw3IEBACiAJCQkJMUNDRUU0RjUyMEQ4NzE5MzAwNDdC
MDk3IC8qIENvcmVVSVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MTkxRjQzQTRDNzAw
MkVBQzAyIC8qIENvcmVVSVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUMwOUQwNTMxRTMxQzQ0
MTAwNzI1RjE4IC8qIENyeXB0b0RpZ2VzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTdGMUM5MDky
NURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwQzJEQTE0MTFGM0JFQjQ5MDBEQkMzMTcgLyogRGF0YURldGVjdG9yc0NvcmVT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NThBMUY0NTEzMEYwMEY0RUJCNiAvKiBEYXRh
RGV0ZWN0b3JzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzVBRjkxQTFGNDNBNEM3MDAyRUFD
MDIgLyogRGF0YURldGVjdG9yc1VJU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTEwMzcsNiArMTA0
NCw3IEBACiAJCQkJMENGOTlDQTgxRjczODQzNzAwN0VFNzkzIC8qIENvcmVNZWRpYVNvZnRMaW5r
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDNzdDOEM5MjVENzk3MjAwMDYzNUUwQyAvKiBDb3Jl
VGV4dFNvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDMDlEMDU2MUUzMUM0NjUwMDcy
NUYxOCAvKiBDcnlwdG9EaWdlc3RDb21tb25DcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTdGMUM5MEEyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTExNzVCNTgxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRT
ZWFyY2hQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNDQyOTE2NDFGQTUyNjcwMDAy
Q0M5M0UgLyogRmlsZVNpemVGb3JtYXR0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ0Mjkx
NjgxRkE1MjcwNTAwMkNDOTNFIC8qIEZpbGVTaXplRm9ybWF0dGVyQ29jb2EubW0gaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRvS2l0
Q0JyaWRnaW5nU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRv
S2l0Q0JyaWRnaW5nU29mdExpbmsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTkwZDRmZTVmM2FlZTNhNjM4YWJl
MDE1MmM0NjUwMzM5MzA5ZjY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oCkBAIC0wLDAgKzEsMzcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEhBVkUoUlNBX0JTU0EpCisKKyNpbXBv
cnQgPENyeXB0b0tpdENCcmlkZ2luZy9SU0FCU1NBLmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtp
bmcuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfSEVBREVSKFBBTCwgQ3J5cHRvS2l0Q0Jy
aWRnaW5nKTsKKworU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBSU0FCU1NBVG9rZW5C
bGluZGVyKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Nv
Y29hL0NyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWJjNzVh
Y2MzZGQ3NDQ4ZDBhMTA5NTc4ZGJmMzAyMjRkNzJiNDlhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbQpA
QCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYg
SEFWRShSU0FfQlNTQSkKKworI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisKK1NPRlRfTElO
S19QUklWQVRFX0ZSQU1FV09SS19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ3J5cHRvS2l0
Q0JyaWRnaW5nLCBQQUxfRVhQT1JUKTsKKworU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDcnlwdG9LaXRDQnJpZGdpbmcsIFJTQUJTU0FUb2tlbkJsaW5kZXIsIFBB
TF9FWFBPUlQpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXND
b2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGJmNmFlMTYx
ODdhYmEwNzE1NzJkYTA3OTIzYWMzMzBiMjI4ZjY5YzUuLjlkYTUyMWE3YTVkNDY0YTg0MjA5YzNj
YjAwOWRkOWExYWVhNjBmMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2Nv
YS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMTY4LDYgKzE2
OCw3IEBAIGluc3BlY3Rvci9tYWMvUGFnZURlYnVnZ2VyTWFjLm1tCiBsb2FkZXIvYXJjaGl2ZS9j
Zi9MZWdhY3lXZWJBcmNoaXZlLmNwcAogbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2
ZU1hYy5tbQogbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5tbQorbG9hZGVyL2Nv
Y29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0KIGxvYWRlci9jb2NvYS9TdWJyZXNv
dXJjZUxvYWRlckNvY29hLm1tCiBsb2FkZXIvaW9zL0xlZ2FjeVByZXZpZXdMb2FkZXIubW0KIGxv
YWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGQxZmZmZWJlZmVmMjBjNjBjOTA1
MDliYWM3MWY0MjNiNDNhNmM0Ni4uMjI0OGU3N2M4Y2M3NDY5ZmI3MGE1YmYxYzljOWRlYzkzZDZh
NDhmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtOTQxNiw2ICs5NDE2LDcgQEAKIAkJNTdFRUFBNTcxRUEwQUZCQjAwNzAxMTI0
IC8qIENvbW1vbkNyeXB0b0RFUlV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDb21tb25DcnlwdG9ERVJVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1N0VGNUU1RjFEMjBDODM5MDAxNzFFNjAgLyogVGV4dENvZGVjUmVw
bGFjZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENvZGVjUmVw
bGFjZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdFRjVFNjExRDIwRDI4
NzAwMTcxRTYwIC8qIFRleHRDb2RlY1JlcGxhY2VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRDb2RlY1JlcGxhY2VtZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTdGMUM4RTMyNURDNkVFNzAwRThGNkVBIC8qIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1N0Y4MjczOTFEQjcyQzIyMDA5RDJCRjQgLyogUnNhSGFzaGVkS2V5R2VuUGFy
YW1zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBSc2FIYXNoZWRLZXlHZW5QYXJhbXMuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1N0ZFREQzRDFEQjZENDdGMDBFQjk2RjUgLyogUnNhS2V5R2VuUGFyYW1z
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBSc2FLZXlHZW5QYXJhbXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1N0ZFREQzRTFEQjZENTkyMDBFQjk2RjUgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2Vu
UGFyYW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRo
bVJzYUtleUdlblBhcmFtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTczMSw3
ICs5NzMyLDcgQEAKIAkJNkEyMkU4NzIxRjEwNDJDNDAwRjU0NkMzIC8qIEluc3BlY3RvckNhbnZh
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JDYW52YXMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2QTcyNzk4ODFGMTZDMjlCMDAzRjM5QjggLyogSW5zcGVjdG9y
U2hhZGVyUHJvZ3JhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0
b3JTaGFkZXJQcm9ncmFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZBNzI3OTg5
MUYxNkMyOUIwMDNGMzlCOCAvKiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvclNoYWRlclByb2dyYW0uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QjBBMDdGMDIxRkE0QjVDMDBENTczOTEgLyog
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkIwQTA3RjAyMUZBNEI1
QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTZCMEEwN0YxMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCMUY0ODBGMjI5ODlFQzQwMERF
OEI4MiAvKiBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNkI0RDQxMkIyMzk4M0Y4ODAwMjQ5NEMyIC8qIExvZ2dlZEluU3RhdHVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IExvZ2dlZEluU3RhdHVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yMjk0OSw2ICsyMjk1MCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk3RURBQUZDODE5
QTJDQkQxMDAzNERGRDEgLyogRGlza0NhY2hlTW9uaXRvckNvY29hLmggKi8sCiAJCQkJN0U0REUx
MEMxOThCMTBCNjAwNTFDQjAyIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSAqLywKKwkJCQk1
N0YxQzhFMzI1REM2RUU3MDBFOEY2RUEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5t
bSAqLywKIAkJCQk3RThGQURDMzE5OUE5NUIxMDA3MTQ5NjggLyogU3VicmVzb3VyY2VMb2FkZXJD
b2NvYS5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gY29jb2E7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAppbmRleCA4YTk3M2YwMzQ1NDQ1
NDc1NGQwMTk1NGFmM2ZhZjhiOGZhZGI1OGNkLi5lNTZjOTQ1MjI5YTU5Njk3M2RiNWE3YjUwZWEy
MTQwZGUxNWE4ZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUcmlnZ2VyQXR0cmli
dXRpb25QYXRoW10gPSAiLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvdHJp
Z2dlci1hdHRyaWJ1dGlvbi8iOwotc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRUb2tlblNpZ25hdHVyZVBhdGhbXSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC9zaWduLXVubGlua2FibGUtdG9rZW4vIjsKK3N0YXRpYyBjb25zdCBjaGFyIHBy
aXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVQYXRoW10gPSAiLy53ZWxsLWtub3du
L3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvc2lnbi1zZWNyZXQtdG9rZW4vIjsKIHN0YXRpYyBj
b25zdCBjaGFyIHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlQYXRoW10gPSAi
Ly53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvZ2V0LXVubGlua2FibGUtdG9r
ZW4tcHVibGljLWtleS8iOwogc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRSZXBvcnRBdHRyaWJ1dGlvblBhdGhbXSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC9yZXBvcnQtYXR0cmlidXRpb24vIjsKIGNvbnN0IHNpemVfdCBwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHJpZ2dlckRhdGFQYXRoU2VnbWVudFNpemUgPSAyOwpA
QCAtMTE2LDE1ICsxMTYsMTUgQEAgYm9vbCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6aGFzSGln
aGVyUHJpb3JpdHlUaGFuKGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW4KICAgICByZXR1cm4g
bV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhLT5wcmlvcml0eSA+IG90aGVyLm1fYXR0cmlidXRpb25U
cmlnZ2VyRGF0YS0+cHJpb3JpdHk7CiB9CiAKLVVSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
dG9rZW5TaWduYXR1cmVVUkwoKSBjb25zdAorVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojph
dHRyaWJ1dGlvblJlcG9ydFVSTCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2VwaGVtZXJhbFNvdXJj
ZU5vbmNlIHx8ICFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5pc1ZhbGlkKCkpCisgICAgaWYgKCFp
c1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBVUkwoKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImh0dHBzOi8vIik7CiAgICAgYnVpbGRl
ci5hcHBlbmQobV9zb3VyY2VTaXRlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKLSAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVy
ZVBhdGgpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbChwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFJlcG9ydEF0dHJpYnV0aW9uUGF0aCk7CiAKICAgICBVUkwgdXJsIHsgVVJMKCksIGJ1aWxkZXIu
dG9TdHJpbmcoKSB9OwogICAgIGlmICh1cmwuaXNWYWxpZCgpKQpAQCAtMTMzLDEyICsxMzMsNTEg
QEAgVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojp0b2tlblNpZ25hdHVyZVVSTCgpIGNvbnN0
CiAgICAgcmV0dXJuIFVSTCgpOwogfQogCi1VUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRv
a2VuUHVibGljS2V5VVJMKCkgY29uc3QKK1JlZjxKU09OOjpPYmplY3Q+IFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydEpTT04oKSBjb25zdAoreworICAgIGF1dG8gcmVw
b3J0RGV0YWlscyA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CisgICAgaWYgKCFtX2F0dHJpYnV0
aW9uVHJpZ2dlckRhdGEgfHwgIWlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIHJlcG9ydERldGFp
bHM7CisKKyAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5
cGUiX3MsICJjbGljayJfcyk7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vf
c2l0ZSJfcywgbV9zb3VyY2VTaXRlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKKyAgICBy
ZXBvcnREZXRhaWxzLT5zZXRJbnRlZ2VyKCJzb3VyY2VfaWQiX3MsIG1fc291cmNlSUQuaWQpOwor
ICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygiYXR0cmlidXRlZF9vbl9zaXRlIl9zLCBtX2F0
dHJpYnV0ZU9uU2l0ZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7CisgICAgcmVwb3J0RGV0
YWlscy0+c2V0SW50ZWdlcigidHJpZ2dlcl9kYXRhIl9zLCBtX2F0dHJpYnV0aW9uVHJpZ2dlckRh
dGEtPmRhdGEpOworICAgIHJlcG9ydERldGFpbHMtPnNldEludGVnZXIoInZlcnNpb24iX3MsIDEp
OworICAgIHJldHVybiByZXBvcnREZXRhaWxzOworfQorCisvLyBNQVJLOiAtIEZyYXVkIFByZXZl
bnRpb24KKworc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBFcGhlbWVyYWxTb3VyY2VOb25jZVJl
cXVpcmVkTnVtYmVyT2ZCeXRlcyA9IDE2OworCitib29sIFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNWYWxpZCgpIGNvbnN0CiB7CisgICAgLy8gRklYTUU6
IEludmVzdGlnYXRlIGlmIHdlIGNhbiBkbyB3aXRoIGEgc2ltcGxlIGxlbmd0aCBjaGVjayBpbnN0
ZWFkIG9mIGRlY29kaW5nLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjE5NDUKKyAgICBWZWN0b3I8dWludDhfdD4gZGlnZXN0OworICAgIGlmICghYmFz
ZTY0VVJMRGVjb2RlKG5vbmNlLCBkaWdlc3QpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIGRpZ2VzdC5zaXplKCkgPT0gRXBoZW1lcmFsU291cmNlTm9uY2VSZXF1aXJlZE51bWJl
ck9mQnl0ZXM7Cit9CisKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNldEVwaGVtZXJh
bFNvdXJjZU5vbmNlKEVwaGVtZXJhbFNvdXJjZU5vbmNlJiYgbm9uY2UpCit7CisgICAgaWYgKCFu
b25jZS5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBtX2VwaGVtZXJhbFNvdXJjZU5v
bmNlID0gV1RGTW92ZShub25jZSk7Cit9CisKK1VSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
dG9rZW5TaWduYXR1cmVVUkwoKSBjb25zdAoreworICAgIGlmICghbV9lcGhlbWVyYWxTb3VyY2VO
b25jZSB8fCAhbV9lcGhlbWVyYWxTb3VyY2VOb25jZS0+aXNWYWxpZCgpKQorICAgICAgICByZXR1
cm4gVVJMKCk7CisKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJodHRwczovLyIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1fc291cmNlU2l0ZS5y
ZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKHBy
aXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlQYXRoKTsKKyAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVBhdGgpOwog
CiAgICAgVVJMIHVybCB7IFVSTCgpLCBidWlsZGVyLnRvU3RyaW5nKCkgfTsKICAgICBpZiAodXJs
LmlzVmFsaWQoKSkKQEAgLTE0NywyOCArMTg2LDEyIEBAIFVSTCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6dG9rZW5QdWJsaWNLZXlVUkwoKSBjb25zdAogICAgIHJldHVybiBVUkwoKTsKIH0KIAot
UmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRva2VuU2lnbmF0dXJl
SlNPTigpIGNvbnN0Ci17Ci0gICAgYXV0byByZXBvcnREZXRhaWxzID0gSlNPTjo6T2JqZWN0Ojpj
cmVhdGUoKTsKLSAgICBpZiAoIW1fZXBoZW1lcmFsU291cmNlTm9uY2UgfHwgIW1fZXBoZW1lcmFs
U291cmNlTm9uY2UtPmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7Ci0K
LSAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5cGUiX3Ms
ICJjbGljayJfcyk7Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vfbm9uY2Ui
X3MsIG1fZXBoZW1lcmFsU291cmNlTm9uY2UtPm5vbmNlKTsKLSAgICByZXBvcnREZXRhaWxzLT5z
ZXRTdHJpbmcoInVubGlua2FibGVfdG9rZW4iX3MsICJUT0RPIl9zKTsKLSAgICByZXBvcnREZXRh
aWxzLT5zZXRJbnRlZ2VyKCJ2ZXJzaW9uIl9zLCAyKTsKLSAgICByZXR1cm4gcmVwb3J0RGV0YWls
czsKLX0KLQotVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydFVS
TCgpIGNvbnN0CitVUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRva2VuUHVibGljS2V5VVJM
KCkgY29uc3QKIHsKLSAgICBpZiAoIWlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIFVSTCgpOwot
CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
aHR0cHM6Ly8iKTsKICAgICBidWlsZGVyLmFwcGVuZChtX3NvdXJjZVNpdGUucmVnaXN0cmFibGVE
b21haW4uc3RyaW5nKCkpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbChwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFJlcG9ydEF0dHJpYnV0aW9uUGF0aCk7CisgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlQYXRoKTsKIAogICAgIFVS
TCB1cmwgeyBVUkwoKSwgYnVpbGRlci50b1N0cmluZygpIH07CiAgICAgaWYgKHVybC5pc1ZhbGlk
KCkpCkBAIC0xNzcsMTkgKzIwMCwyMSBAQCBVUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0
dHJpYnV0aW9uUmVwb3J0VVJMKCkgY29uc3QKICAgICByZXR1cm4gVVJMKCk7CiB9CiAKLVJlZjxK
U09OOjpPYmplY3Q+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydEpT
T04oKSBjb25zdAorUmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRv
a2VuU2lnbmF0dXJlSlNPTihjb25zdCBTdHJpbmcmIHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCkK
IHsKICAgICBhdXRvIHJlcG9ydERldGFpbHMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwotICAg
IGlmICghbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhIHx8ICFpc1ZhbGlkKCkpCisgICAgaWYgKCFt
X2VwaGVtZXJhbFNvdXJjZU5vbmNlIHx8ICFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5pc1ZhbGlk
KCkpCisgICAgICAgIHJldHVybiByZXBvcnREZXRhaWxzOworCisgICAgYXV0byB0b2tlbiA9IHNv
dXJjZVNlY3JldFRva2VuKHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCk7CisgICAgaWYgKHRva2Vu
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7CiAKICAgICByZXBvcnRE
ZXRhaWxzLT5zZXRTdHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5cGUiX3MsICJjbGljayJfcyk7
Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vfc2l0ZSJfcywgbV9zb3VyY2VT
aXRlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKLSAgICByZXBvcnREZXRhaWxzLT5zZXRJ
bnRlZ2VyKCJzb3VyY2VfaWQiX3MsIG1fc291cmNlSUQuaWQpOwotICAgIHJlcG9ydERldGFpbHMt
PnNldFN0cmluZygiYXR0cmlidXRlZF9vbl9zaXRlIl9zLCBtX2F0dHJpYnV0ZU9uU2l0ZS5yZWdp
c3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigi
dHJpZ2dlcl9kYXRhIl9zLCBtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEtPmRhdGEpOwotICAgIHJl
cG9ydERldGFpbHMtPnNldEludGVnZXIoInZlcnNpb24iX3MsIDEpOworICAgIHJlcG9ydERldGFp
bHMtPnNldFN0cmluZygic291cmNlX25vbmNlIl9zLCBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5u
b25jZSk7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2Vu
Il9zLCB0b2tlbik7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigidmVyc2lvbiJfcywg
Mik7CiAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7CiB9CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
LmgKaW5kZXggYzhkOTk0ZjgxNDYzODk3YWM1MWIyY2EwZjQ4ZjEwODI4NWMyMmU4Zi4uZWY5ODVh
MDZlNTcwNzVhYmRkOGU3YmQwMzk5NzM2OTdmMjE4ZGUxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKQEAgLTMwLDEyICszMCwxNyBAQAog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KICNp
bmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0Jhc2U2NC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorT0JKQ19DTEFTUyBSU0FCU1NBVG9rZW5SZWFk
eTsKK09CSkNfQ0xBU1MgUlNBQlNTQVRva2VuV2FpdGluZ0FjdGl2YXRpb247CitPQkpDX0NMQVNT
IFJTQUJTU0FUb2tlbkJsaW5kZXI7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQgewpAQCAtMjAxLDMxICsyMDYsNiBAQCBwdWJsaWM6CiAgICAg
ICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFs
c2U7CiAgICAgfTsKIAotICAgIHN0cnVjdCBFcGhlbWVyYWxTb3VyY2VOb25jZSB7Ci0gICAgICAg
IHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgUmVxdWlyZWROdW1iZXJPZkJ5dGVzID0gMTY7Ci0K
LSAgICAgICAgRXBoZW1lcmFsU291cmNlTm9uY2UoKSA9IGRlZmF1bHQ7Ci0gICAgICAgIGV4cGxp
Y2l0IEVwaGVtZXJhbFNvdXJjZU5vbmNlKGNvbnN0IFN0cmluZyYgbm9uY2VTdHJpbmcpCi0gICAg
ICAgICAgICA6IG5vbmNlIHsgbm9uY2VTdHJpbmcgfQotICAgICAgICB7Ci0gICAgICAgIH0KLQot
ICAgICAgICAvLyBGSVhNRTogSW52ZXN0aWdhdGUgaWYgd2UgY2FuIGRvIHdpdGggYSBzaW1wbGUg
bGVuZ3RoIGNoZWNrIGluc3RlYWQgb2YgZGVjb2RpbmcuCi0gICAgICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE5NDUKLSAgICAgICAgYm9vbCBpc1ZhbGlk
KCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGRpZ2VzdDsK
LSAgICAgICAgICAgIGlmICghYmFzZTY0VVJMRGVjb2RlKG5vbmNlLCBkaWdlc3QpKQotICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIHJldHVybiBkaWdlc3Quc2l6ZSgp
ID09IFJlcXVpcmVkTnVtYmVyT2ZCeXRlczsKLSAgICAgICAgfQotCi0gICAgICAgIFN0cmluZyBu
b25jZTsKLQotICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNv
ZGVyJikgY29uc3Q7Ci0gICAgICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRp
b25hbDxFcGhlbWVyYWxTb3VyY2VOb25jZT4gZGVjb2RlKERlY29kZXImKTsKLSAgICB9OwotCiAg
ICAgc3RydWN0IFByaW9yaXR5IHsKICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBN
YXhFbnRyb3B5ID0gNjM7CiAKQEAgLTI3NywxNiArMjU3LDEwIEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgRXhwZWN0ZWQ8QXR0cmlidXRpb25UcmlnZ2VyRGF0YSwgU3RyaW5n
PiBwYXJzZUF0dHJpYnV0aW9uUmVxdWVzdChjb25zdCBVUkwmIHJlZGlyZWN0VVJMKTsKICAgICBX
RUJDT1JFX0VYUE9SVCBPcHRpb25hbDxTZWNvbmRzPiBhdHRyaWJ1dGVBbmRHZXRFYXJsaWVzdFRp
bWVUb1NlbmQoQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIGhhc0hpZ2hlclByaW9yaXR5VGhhbihjb25zdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYp
IGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIFVSTCB0b2tlblB1YmxpY0tleVVSTCgpIGNvbnN0
OwotICAgIFdFQkNPUkVfRVhQT1JUIFVSTCB0b2tlblNpZ25hdHVyZVVSTCgpIGNvbnN0OwotICAg
IFdFQkNPUkVfRVhQT1JUIFJlZjxKU09OOjpPYmplY3Q+IHRva2VuU2lnbmF0dXJlSlNPTigpIGNv
bnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFVSTCBhdHRyaWJ1dGlvblJlcG9ydFVSTCgpIGNvbnN0
OwogICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxKU09OOjpPYmplY3Q+IGF0dHJpYnV0aW9uUmVwb3J0
SlNPTigpIGNvbnN0OwogICAgIGNvbnN0IFNvdXJjZVNpdGUmIHNvdXJjZVNpdGUoKSBjb25zdCB7
IHJldHVybiBtX3NvdXJjZVNpdGU7IH07CiAgICAgY29uc3QgQXR0cmlidXRlT25TaXRlJiBhdHRy
aWJ1dGVPblNpdGUoKSBjb25zdCB7IHJldHVybiBtX2F0dHJpYnV0ZU9uU2l0ZTsgfTsKLSAgICB2
b2lkIHNldEVwaGVtZXJhbFNvdXJjZU5vbmNlKEVwaGVtZXJhbFNvdXJjZU5vbmNlJiYgbm9uY2Up
IHsgbV9lcGhlbWVyYWxTb3VyY2VOb25jZSA9IFdURk1vdmUobm9uY2UpOyB9OwotICAgIE9wdGlv
bmFsPEVwaGVtZXJhbFNvdXJjZU5vbmNlPiBlcGhlbWVyYWxTb3VyY2VOb25jZSgpIGNvbnN0IHsg
cmV0dXJuICFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlID8gV1RGOjpudWxsb3B0IDogbV9lcGhlbWVy
YWxTb3VyY2VOb25jZS0+aXNWYWxpZCgpID8gbV9lcGhlbWVyYWxTb3VyY2VOb25jZSA6IFdURjo6
bnVsbG9wdDsgfTsKLSAgICB2b2lkIGNsZWFyRXBoZW1lcmFsU291cmNlTm9uY2UoKSB7IG1fZXBo
ZW1lcmFsU291cmNlTm9uY2UgID0gV1RGOjpudWxsb3B0OyB9OwogICAgIFdhbGxUaW1lIHRpbWVP
ZkFkQ2xpY2soKSBjb25zdCB7IHJldHVybiBtX3RpbWVPZkFkQ2xpY2s7IH0KICAgICBPcHRpb25h
bDxXYWxsVGltZT4gZWFybGllc3RUaW1lVG9TZW5kKCkgY29uc3QgeyByZXR1cm4gbV9lYXJsaWVz
dFRpbWVUb1NlbmQ7IH07CiAgICAgdm9pZCBzZXRFYXJsaWVzdFRpbWVUb1NlbmQoV2FsbFRpbWUg
dGltZSkgeyBtX2VhcmxpZXN0VGltZVRvU2VuZCA9IHRpbWU7IH0KQEAgLTI5NywxMSArMjcxLDM4
IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZURlc2NyaXB0aW9uKCkgY29uc3Qg
eyByZXR1cm4gbV9zb3VyY2VEZXNjcmlwdGlvbjsgfQogICAgIGNvbnN0IFN0cmluZyYgcHVyY2hh
c2VyKCkgY29uc3QgeyByZXR1cm4gbV9wdXJjaGFzZXI7IH0KIAorICAgIC8vIE1BUks6IC0gRnJh
dWQgUHJldmVudGlvbgorICAgIHN0cnVjdCBFcGhlbWVyYWxTb3VyY2VOb25jZSB7CisgICAgICAg
IFN0cmluZyBub25jZTsKKworICAgICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzVmFsaWQoKSBj
b25zdDsKKworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNv
ZGVyJikgY29uc3Q7CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRp
b25hbDxFcGhlbWVyYWxTb3VyY2VOb25jZT4gZGVjb2RlKERlY29kZXImKTsKKyAgICB9OworCisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRFcGhlbWVyYWxTb3VyY2VOb25jZShFcGhlbWVyYWxT
b3VyY2VOb25jZSYmKTsKKyAgICBPcHRpb25hbDxFcGhlbWVyYWxTb3VyY2VOb25jZT4gZXBoZW1l
cmFsU291cmNlTm9uY2UoKSBjb25zdCB7IHJldHVybiBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlOyB9
OworICAgIHZvaWQgY2xlYXJFcGhlbWVyYWxTb3VyY2VOb25jZSgpIHsgbV9lcGhlbWVyYWxTb3Vy
Y2VOb25jZS5yZXNldCgpOyB9OworCisgICAgc3RydWN0IFNvdXJjZVVubGlua2FibGVUb2tlbiB7
CisgICAgICAgIFN0cmluZyB0b2tlbkJhc2U2NFVSTDsKKyAgICAgICAgU3RyaW5nIGtleUlEQmFz
ZTY0VVJMOworICAgICAgICBTdHJpbmcgc2lnbmF0dXJlQmFzZTY0VVJMOworICAgIH07CisKKyAg
ICBXRUJDT1JFX0VYUE9SVCBVUkwgdG9rZW5QdWJsaWNLZXlVUkwoKSBjb25zdDsKKyAgICBXRUJD
T1JFX0VYUE9SVCBVUkwgdG9rZW5TaWduYXR1cmVVUkwoKSBjb25zdDsKKworICAgIFdFQkNPUkVf
RVhQT1JUIFJlZjxKU09OOjpPYmplY3Q+IHRva2VuU2lnbmF0dXJlSlNPTihjb25zdCBTdHJpbmcm
IHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCk7CisgICAgV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8
U291cmNlVW5saW5rYWJsZVRva2VuPiBjYWxjdWxhdGVTb3VyY2VVbmxpbmthYmxlVG9rZW4oY29u
c3QgU3RyaW5nJiBzZXJ2ZXJSZXNwb25zZUJhc2U2NFVSTCk7CisKICAgICB0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBkZWNv
ZGUoRGVjb2RlciYpOwogCiBwcml2YXRlOgogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OworICAg
IFN0cmluZyBzb3VyY2VTZWNyZXRUb2tlbihjb25zdCBTdHJpbmcmIHNlcnZlclB1YmxpY0tleUJh
c2U2NFVSTCk7CiAKICAgICBTb3VyY2VJRCBtX3NvdXJjZUlEOwogICAgIFNvdXJjZVNpdGUgbV9z
b3VyY2VTaXRlOwpAQCAtMzEwLDkgKzMxMSwxNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3B1
cmNoYXNlcjsKICAgICBXYWxsVGltZSBtX3RpbWVPZkFkQ2xpY2s7CiAKLSAgICBPcHRpb25hbDxF
cGhlbWVyYWxTb3VyY2VOb25jZT4gbV9lcGhlbWVyYWxTb3VyY2VOb25jZTsKICAgICBPcHRpb25h
bDxBdHRyaWJ1dGlvblRyaWdnZXJEYXRhPiBtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGE7CiAgICAg
T3B0aW9uYWw8V2FsbFRpbWU+IG1fZWFybGllc3RUaW1lVG9TZW5kOworCisgICAgc3RydWN0IFNv
dXJjZVNlY3JldFRva2VuIHsKKyAgICAgICAgUmV0YWluUHRyPFJTQUJTU0FUb2tlbkJsaW5kZXI+
IGJsaW5kZXI7CisgICAgICAgIFJldGFpblB0cjxSU0FCU1NBVG9rZW5XYWl0aW5nQWN0aXZhdGlv
bj4gd2FpdGluZ1Rva2VuOworICAgICAgICBSZXRhaW5QdHI8UlNBQlNTQVRva2VuUmVhZHk+IHJl
YWR5VG9rZW47CisgICAgfTsKKworICAgIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5vbmNlPiBt
X2VwaGVtZXJhbFNvdXJjZU5vbmNlOworICAgIFNvdXJjZVNlY3JldFRva2VuIG1fc291cmNlU2Vj
cmV0VG9rZW47CiB9OwogCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2Nv
YS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41MWU2NjZhYTJmMGRlODMxM2E2YWM0MGFiZDAzNzljZWJmMzYzZWFk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50Q29jb2EubW0KQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCIKKwor
I2ltcG9ydCA8cGFsL2NvY29hL0NyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworU3RyaW5nIFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpzb3VyY2VT
ZWNyZXRUb2tlbihjb25zdCBTdHJpbmcmIHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCkKK3sKKyNp
ZiBIQVZFKFJTQV9CU1NBKQorICAgIHsKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHNlcnZlclB1
YmxpY0tleURhdGE7CisgICAgICAgIGlmICghYmFzZTY0VVJMRGVjb2RlKHNlcnZlclB1YmxpY0tl
eUJhc2U2NFVSTCwgc2VydmVyUHVibGljS2V5RGF0YSkpCisgICAgICAgICAgICByZXR1cm4gZW1w
dHlTdHJpbmcoKTsKKyAgICAgICAgYXV0byBzZXJ2ZXJQdWJsaWNLZXkgPSBhZG9wdE5TKFtbTlNE
YXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnNlcnZlclB1YmxpY0tleURhdGEuZGF0YSgpIGxlbmd0
aDpzZXJ2ZXJQdWJsaWNLZXlEYXRhLnNpemUoKV0pOworCisgICAgICAgIC8vIEZJWE1FKDIyMjAx
OCk6IENoZWNrIGVycm9yLgorICAgICAgICBtX3NvdXJjZVNlY3JldFRva2VuLmJsaW5kZXIgPSBh
ZG9wdE5TKFtQQUw6OmFsbG9jUlNBQlNTQVRva2VuQmxpbmRlckluc3RhbmNlKCkgaW5pdFdpdGhQ
dWJsaWNLZXk6c2VydmVyUHVibGljS2V5LmdldCgpIGVycm9yOm51bGxwdHJdKTsKKyAgICAgICAg
aWYgKCFtX3NvdXJjZVNlY3JldFRva2VuLmJsaW5kZXIpCisgICAgICAgICAgICByZXR1cm4gZW1w
dHlTdHJpbmcoKTsKKyAgICB9CisKKyAgICAvLyBGSVhNRSgyMjIwMTgpOiBDaGVjayBlcnJvci4K
KyAgICBtX3NvdXJjZVNlY3JldFRva2VuLndhaXRpbmdUb2tlbiA9IFttX3NvdXJjZVNlY3JldFRv
a2VuLmJsaW5kZXIgdG9rZW5XYWl0aW5nQWN0aXZhdGlvbldpdGhDb250ZW50Om51bGxwdHIgZXJy
b3I6bnVsbHB0cl07CisgICAgaWYgKCFtX3NvdXJjZVNlY3JldFRva2VuLndhaXRpbmdUb2tlbikK
KyAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisKKyAgICByZXR1cm4gV1RGOjpiYXNlNjRV
UkxFbmNvZGUoW21fc291cmNlU2VjcmV0VG9rZW4ud2FpdGluZ1Rva2VuIGJsaW5kZWRNZXNzYWdl
XS5ieXRlcywgW21fc291cmNlU2VjcmV0VG9rZW4ud2FpdGluZ1Rva2VuIGJsaW5kZWRNZXNzYWdl
XS5sZW5ndGgpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc2VydmVyUHVibGljS2V5QmFzZTY0
VVJMKTsKKyAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKyNlbmRpZiAvLyBIQVZFKFJTQV9CU1NB
KQorfQorCithdXRvIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpjYWxjdWxhdGVTb3VyY2VVbmxp
bmthYmxlVG9rZW4oY29uc3QgU3RyaW5nJiBzZXJ2ZXJSZXNwb25zZUJhc2U2NFVSTCkgLT4gT3B0
aW9uYWw8U291cmNlVW5saW5rYWJsZVRva2VuPgoreworI2lmIEhBVkUoUlNBX0JTU0EpCisgICAg
aWYgKCFtX3NvdXJjZVNlY3JldFRva2VuLndhaXRpbmdUb2tlbikKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgIHsKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHNlcnZlclJlc3Bv
bnNlRGF0YTsKKyAgICAgICAgaWYgKCFiYXNlNjRVUkxEZWNvZGUoc2VydmVyUmVzcG9uc2VCYXNl
NjRVUkwsIHNlcnZlclJlc3BvbnNlRGF0YSkpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworICAgICAgICBhdXRvIHNlcnZlclJlc3BvbnNlID0gYWRvcHROUyhbW05TRGF0YSBhbGxv
Y10gaW5pdFdpdGhCeXRlczpzZXJ2ZXJSZXNwb25zZURhdGEuZGF0YSgpIGxlbmd0aDpzZXJ2ZXJS
ZXNwb25zZURhdGEuc2l6ZSgpXSk7CisKKyAgICAgICAgLy8gRklYTUUoMjIyMDE4KTogQ2hlY2sg
ZXJyb3IuCisgICAgICAgIG1fc291cmNlU2VjcmV0VG9rZW4ucmVhZHlUb2tlbiA9IFttX3NvdXJj
ZVNlY3JldFRva2VuLndhaXRpbmdUb2tlbiBhY3RpdmF0ZVRva2VuV2l0aFNlcnZlclJlc3BvbnNl
OnNlcnZlclJlc3BvbnNlLmdldCgpIGVycm9yOm51bGxwdHJdOworICAgICAgICBpZiAoIW1fc291
cmNlU2VjcmV0VG9rZW4ucmVhZHlUb2tlbikKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisgICAgfQorCisgICAgU291cmNlVW5saW5rYWJsZVRva2VuIHRva2VuOworICAgIHRva2Vu
LnRva2VuQmFzZTY0VVJMID0gV1RGOjpiYXNlNjRVUkxFbmNvZGUoW21fc291cmNlU2VjcmV0VG9r
ZW4ucmVhZHlUb2tlbiB0b2tlbkNvbnRlbnRdLmJ5dGVzLCBbbV9zb3VyY2VTZWNyZXRUb2tlbi5y
ZWFkeVRva2VuIHRva2VuQ29udGVudF0ubGVuZ3RoKTsKKyAgICB0b2tlbi5rZXlJREJhc2U2NFVS
TCA9IFdURjo6YmFzZTY0VVJMRW5jb2RlKFttX3NvdXJjZVNlY3JldFRva2VuLnJlYWR5VG9rZW4g
a2V5SWRdLmJ5dGVzLCBbbV9zb3VyY2VTZWNyZXRUb2tlbi5yZWFkeVRva2VuIGtleUlkXS5sZW5n
dGgpOworICAgIHRva2VuLnNpZ25hdHVyZUJhc2U2NFVSTCA9IFdURjo6YmFzZTY0VVJMRW5jb2Rl
KFttX3NvdXJjZVNlY3JldFRva2VuLnJlYWR5VG9rZW4gc2lnbmF0dXJlXS5ieXRlcywgW21fc291
cmNlU2VjcmV0VG9rZW4ucmVhZHlUb2tlbiBzaWduYXR1cmVdLmxlbmd0aCk7CisKKyAgICByZXR1
cm4gdG9rZW47CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzZXJ2ZXJSZXNwb25zZUJhc2U2NFVS
TCk7CisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyNlbmRpZiAvLyBIQVZFKFJTQV9CU1NBKQor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAK
aW5kZXggNzI5YmJiNzY4ODljYTZiMmI3NDZhNTUyNzExNzE3YzI4NjYxZmUwMS4uYWU2ZTQwZjI2
NzJkNGE0MTQ5MzJlYjRhMGQ4MTc2MjBkOWQ1MmE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyLmNwcApAQCAtMTU3LDEyICsxNTcsMTIgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXI6OmdldFRva2VuUHVibGljS2V5KFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYKICAg
ICAgICAgfQogCiAgICAgICAgIC8vIEZJWE1FOiBSZWNlaXZlIGFuZCBleHRyYSB0aGUgc2VydmVy
IHB1YmxpYyBrZXksIHJkYXI6Ly83MzU4MjAzMi4KLSAgICAgICAgZ2V0U2lnbmVkVW5saW5rYWJs
ZVRva2VuKFdURk1vdmUoYXR0cmlidXRpb24pKTsKKyAgICAgICAgZ2V0U2lnbmVkU2VjcmV0VG9r
ZW4oV1RGTW92ZShhdHRyaWJ1dGlvbiksIGVtcHR5U3RyaW5nKCkpOwogICAgIH0pOwogCiB9CiAK
LXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpnZXRTaWduZWRVbmxpbmthYmxl
VG9rZW4oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBhdHRyaWJ1dGlvbikKK3ZvaWQgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpnZXRTaWduZWRTZWNyZXRUb2tlbihQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCYmIGF0dHJpYnV0aW9uLCBjb25zdCBTdHJpbmcmIHRva2VuUHVibGljS2V5
QmFzZTY0VVJMKQogewogICAgIGlmICghZmVhdHVyZUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJu
OwpAQCAtMTc4LDIxICsxNzgsMjEgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXI6OmdldFNpZ25lZFVubGlua2FibGVUb2tlbihQcml2YXRlQ2xpY2tNZWFzdXIKICAgICBpZiAo
dG9rZW5TaWduYXR1cmVVUkwuaXNFbXB0eSgpIHx8ICF0b2tlblNpZ25hdHVyZVVSTC5pc1ZhbGlk
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gbG9hZFBhcmFtZXRlcnMgPSBnZW5lcmF0
ZU5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzRm9ySHR0cFBvc3QoV1RGTW92ZSh0b2tlblNp
Z25hdHVyZVVSTCksIGF0dHJpYnV0aW9uLnRva2VuU2lnbmF0dXJlSlNPTigpLCBwY21EYXRhQ2Fy
cmllZCk7CisgICAgYXV0byBsb2FkUGFyYW1ldGVycyA9IGdlbmVyYXRlTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnNGb3JIdHRwUG9zdChXVEZNb3ZlKHRva2VuU2lnbmF0dXJlVVJMKSwgYXR0
cmlidXRpb24udG9rZW5TaWduYXR1cmVKU09OKHRva2VuUHVibGljS2V5QmFzZTY0VVJMKSwgcGNt
RGF0YUNhcnJpZWQpOwogCi0gICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCwgIkFib3V0IHRvIGZpcmUgYSB1bmxpbmthYmxlIHRva2VuIHNpZ25pbmcgcmVxdWVzdC4i
KTsKLSAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Np
b25JRCwgTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZl
bDo6TG9nLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIEFib3V0IHRvIGZpcmUgYSB1bmxp
bmthYmxlIHRva2VuIHNpZ25pbmcgcmVxdWVzdC4iX3MpOworICAgIFJFTEVBU0VfTE9HX0lORk8o
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJBYm91dCB0byBmaXJlIGEgc2VjcmV0IHRva2VuIHNp
Z25pbmcgcmVxdWVzdC4iKTsKKyAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xl
TWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQsIE1lc3NhZ2VMZXZlbDo6TG9nLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIEFib3V0
IHRvIGZpcmUgYSBzZWNyZXQgdG9rZW4gc2lnbmluZyByZXF1ZXN0LiJfcyk7CiAKICAgICBtX3Bp
bmdMb2FkRnVuY3Rpb24oV1RGTW92ZShsb2FkUGFyYW1ldGVycyksIFt3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKCp0aGlzKV0oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKSB7CiAgICAgICAgIGlmICghd2Vh
a1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKCFlcnJvci5pc051bGwo
KSkgewotICAgICAgICAgICAgd2Vha1RoaXMtPm1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENv
bnNvbGVNZXNzYWdlKHdlYWtUaGlzLT5tX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1ha2VTdHJpbmcoIltQcml2
YXRlIENsaWNrIE1lYXN1cmVtZW50XSBSZWNlaXZlZCBlcnJvcjogJyJfcywgZXJyb3IubG9jYWxp
emVkRGVzY3JpcHRpb24oKSwgIicgZm9yIHVubGlua2FibGUgdG9rZW4gc2lnbmluZyByZXF1ZXN0
LiJfcykpOworICAgICAgICAgICAgd2Vha1RoaXMtPm1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2Fz
dENvbnNvbGVNZXNzYWdlKHdlYWtUaGlzLT5tX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1ha2VTdHJpbmcoIltQ
cml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBSZWNlaXZlZCBlcnJvcjogJyJfcywgZXJyb3IubG9j
YWxpemVkRGVzY3JpcHRpb24oKSwgIicgZm9yIHNlY3JldCB0b2tlbiBzaWduaW5nIHJlcXVlc3Qu
Il9zKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAg
IC8vIEZJWE1FOiBSZWNlaXZlIGFuZCBzdG9yZSB0aGUgc2lnbmVkIHVubGlua2FibGUgdG9rZW4s
IHJkYXI6Ly83MzU4MjAzMi4KKyAgICAgICAgLy8gRklYTUU6IFJlY2VpdmUgYW5kIHN0b3JlIHRo
ZSBzaWduZWQgc2VjcmV0IHRva2VuLCByZGFyOi8vNzM1ODIwMzIuCiAgICAgfSk7CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlci5oCmluZGV4IDU3M2YzM2NlMmMzNTYzOGM2MGRlZWE3ZTRmOWE3
OTY5MWNmMGM4NDIuLjBiYWY5YjQwNmYxMjllNDNjZDIxZWZhMjQxYTM2OWVhZjc2YWRiOTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAKIHBy
aXZhdGU6CiAgICAgdm9pZCBnZXRUb2tlblB1YmxpY0tleShQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCYmKTsKLSAgICB2b2lkIGdldFNpZ25lZFVubGlua2FibGVUb2tlbihQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCYmKTsKKyAgICB2b2lkIGdldFNpZ25lZFNlY3JldFRva2VuKFByaXZhdGVDbGlja01l
YXN1cmVtZW50JiYsIGNvbnN0IFN0cmluZyYgdG9rZW5QdWJsaWNLZXlCYXNlNjRVUkwpOwogICAg
IHZvaWQgY2xlYXJTZW50QXR0cmlidXRpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJik7CiAg
ICAgdm9pZCBhdHRyaWJ1dGUoY29uc3QgU291cmNlU2l0ZSYsIGNvbnN0IEF0dHJpYnV0ZU9uU2l0
ZSYsIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJik7CiAgICAgdm9pZCBmaXJlQ29udmVyc2lvblJl
cXVlc3QoY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3NGU2ZTdmOTVjYmFkNDg2MGM1MTFm
Y2Y0N2QyODY2Y2I5NzgwOTQ2Li4wNjM1OGJlODFiZGRjYzY4Y2I2ZDUzMTMyZTU3NGNkODRmZjNm
YjI1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxl
LmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQgY29ycmVzcG9u
ZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzczNTgxNDEyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2lsYW5kZXIuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgIEFkZCB0ZXN0cy4KKwogMjAyMS0wMi0x
OSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFBDTTogUmVx
dWVzdCBzZXJ2ZXIgcHVibGljIGtleSB0byBnZW5lcmF0ZSBzZWNyZXQgdG9rZW4KZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS54Y2Nv
bmZpZyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS54
Y2NvbmZpZwppbmRleCA3MGJlOGFhNzcwNDNiNzQxNzdkNDA2ZDAzYzMxNDk2MzhhOTlmMWU5Li5k
M2E0NGE4YWM1N2QwNzYwZDNjNTJkMGVkMTg5OTA1YjcyNWRiMThiIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25maWcKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLnhjY29u
ZmlnCkBAIC01NSw2ICs1NSwxMiBAQCBXS19QREZLSVRfTERGTEFHU19tYWNvc3ggPSAtZnJhbWV3
b3JrIFBERktpdDsKIFdLX1BERktJVF9MREZMQUdTX2lwaG9uZW9zID0gLWZyYW1ld29yayBQREZL
aXQ7CiBXS19QREZLSVRfTERGTEFHU19pcGhvbmVzaW11bGF0b3IgPSAtZnJhbWV3b3JrIFBERktp
dDsKIAorV0tfU1lTVEVNX0xERkxBR1MgPSAkKFdLX1NZU1RFTV9MREZMQUdTXyQoV0tfUExBVEZP
Uk1fTkFNRSkpOworV0tfU1lTVEVNX0xERkxBR1NfbWFjb3N4ID0gLWZyYW1ld29yayBTeXN0ZW07
CitXS19TWVNURU1fTERGTEFHU19pcGhvbmVvcyA9ICQoV0tfU1lTVEVNX0xERkxBR1NfJChXS19J
T1NfMTUpKTsKK1dLX1NZU1RFTV9MREZMQUdTX2lwaG9uZXNpbXVsYXRvciA9ICQoV0tfU1lTVEVN
X0xERkxBR1NfJChXS19JT1NfMTUpKTsKK1dLX1NZU1RFTV9MREZMQUdTX0lPU19TSU5DRV8xNSA9
IC1mcmFtZXdvcmsgU3lzdGVtOworCiBXS19ISURfTERGTEFHUyA9ICQoV0tfSElEX0xERkxBR1Nf
JChXS19QTEFURk9STV9OQU1FKSk7CiBXS19ISURfTERGTEFHU19tYWNvc3ggPSAkKFdLX0hJRF9M
REZMQUdTJChXS19NQUNPU18xMDE1KSk7CiBXS19ISURfTERGTEFHU19NQUNPU19TSU5DRV8xMDE1
ID0gLWZyYW1ld29yayBISUQ7CkBAIC03MSw3ICs3Nyw3IEBAIFdLX09QRU5HTF9MREZMQUdTX2Fw
cGxldHZvcyA9ICQoV0tfT1BFTkdMX0xERkxBR1NfaXBob25lb3MpOwogV0tfT1BFTkdMX0xERkxB
R1NfYXBwbGV0dnNpbXVsYXRvciA9ICQoV0tfT1BFTkdMX0xERkxBR1NfaXBob25lc2ltdWxhdG9y
KTsKIFdLX09QRU5HTF9MREZMQUdTX21hY29zeCA9IC1mcmFtZXdvcmsgT3BlbkdMOwogCi1PVEhF
Ul9MREZMQUdTID0gJChpbmhlcml0ZWQpICQoVU5FWFBPUlRFRF9TWU1CT0xfTERGTEFHUykgLWxn
dGVzdCAtZm9yY2VfbG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvbGliVGVzdFdlYktpdEFQSS5h
IC1mcmFtZXdvcmsgSmF2YVNjcmlwdENvcmUgLWZyYW1ld29yayBXZWJLaXQgLWxXZWJDb3JlVGVz
dFN1cHBvcnQgJChXS19BVVRIS0lUX0xERkxBR1MpIC1mcmFtZXdvcmsgTmV0d29yayAkKFdLX1BE
RktJVF9MREZMQUdTKSAkKFdLX0hJRF9MREZMQUdTKSAkKFdLX09QRU5HTF9MREZMQUdTKSAkKE9U
SEVSX0xERkxBR1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkpOworT1RIRVJfTERGTEFHUyA9
ICQoaW5oZXJpdGVkKSAkKFVORVhQT1JURURfU1lNQk9MX0xERkxBR1MpIC1sZ3Rlc3QgLWZvcmNl
X2xvYWQgJChCVUlMVF9QUk9EVUNUU19ESVIpL2xpYlRlc3RXZWJLaXRBUEkuYSAtZnJhbWV3b3Jr
IEphdmFTY3JpcHRDb3JlIC1mcmFtZXdvcmsgV2ViS2l0IC1sV2ViQ29yZVRlc3RTdXBwb3J0ICQo
V0tfQVVUSEtJVF9MREZMQUdTKSAtZnJhbWV3b3JrIE5ldHdvcmsgJChXS19TWVNURU1fTERGTEFH
UykgJChXS19QREZLSVRfTERGTEFHUykgJChXS19ISURfTERGTEFHUykgJChXS19PUEVOR0xfTERG
TEFHUykgJChPVEhFUl9MREZMQUdTX1BMQVRGT1JNXyQoV0tfQ09DT0FfVE9VQ0gpKTsKIE9USEVS
X0xERkxBR1NfUExBVEZPUk1fID0gLWZyYW1ld29yayBDb2NvYSAtZnJhbWV3b3JrIENhcmJvbjsK
IAogLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCBiZSBidWlsdCBvbiBpT1MuIEluc3RlYWQgd2Ug
c2hvdWxkIGNyZWF0ZSBhbmQgdXNlIGEgVGVzdFdlYktpdEFQSSBhcHBsaWNhdGlvbi4KZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggM2MyZjA2OGUxZDA4ZjkwYWNiMWVjM2YwZGNmMzFjZmNiZmZk
Njg5Zi4uNzljYWIyM2Q5ODRhM2EzMDhjOTA3MDQ3ODQ2NzNjYjRjNjY4NjY1YyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTQ0MSw2ICs0NDEsNyBAQAogCQk1N0M2MjQ1MDIzNDZDMjFFMDAz
ODNGRTcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24uaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0M2MjQ0RjIzNDZD
MUVDMDAzODNGRTcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24uaHRtbCAqLzsg
fTsKIAkJNTdFREZDNUMyNDVBMUEzRjAwOTU5NTIxIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtl
LWNyZWRlbnRpYWwtbGEtbm8tbW9jay5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RURGQzVCMjQ1QTE4RjUwMDk1OTUyMSAvKiB3ZWIt
YXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhLW5vLW1vY2suaHRtbCAqLzsgfTsKIAkJ
NTdFREZDNjAyNDVBMjk5QzAwOTU5NTIxIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0
aW9uLWxhLW5vLW1vY2suaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1N0VERkM1RjI0NUEyNzk5MDA5NTk1MjEgLyogd2ViLWF1dGhlbnRp
Y2F0aW9uLWdldC1hc3NlcnRpb24tbGEtbm8tbW9jay5odG1sICovOyB9OworCQk1N0YxQzkxMTI1
RERENTE5MDBFOEY2RUEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RjFDOTEwMjVEREQ1MTkw
MEU4RjZFQSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tICovOyB9OwogCQk1N0Y0
QUFBMDIwOEZBRUYwMDBBNjhFOUUgLyogU1NMS2V5R2VuZXJhdG9yLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGNEFBOUYyMDhGQTgzRDAwQTY4RTlF
IC8qIFNTTEtleUdlbmVyYXRvci5tbSAqLzsgfTsKIAkJNTdGNTZBNUMxQzdGOENDMTAwRjMxRDdF
IC8qIElzTmF2aWdhdGlvbkFjdGlvblRydXN0ZWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0Y1NkE1QjFDN0Y4QTQwMDBGMzFEN0Ug
LyogSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5odG1sICovOyB9OwogCQk1QzAxNjBDMTIxQTEz
MjQ2MDA3N0ZBMzIgLyogSklURW5hYmxlZC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDVDMDE2MEMwMjFBMTMyMzIwMDc3RkEzMiAvKiBKSVRFbmFibGVk
Lm1tICovOyB9OwpAQCAtMjIzMyw2ICsyMjM0LDcgQEAKIAkJNTdFREZDNUIyNDVBMThGNTAwOTU5
NTIxIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEtbm8tbW9jay5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5o
dG1sOyBwYXRoID0gIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEtbm8tbW9j
ay5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdFREZDNUYyNDVBMjc5OTAw
OTU5NTIxIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWxhLW5vLW1vY2suaHRt
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9ICJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1sYS1uby1tb2Nr
Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0YxMEQ5MjFDN0U3QjM4MDBF
Q0RGMzAgLyogSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IElzTmF2aWdhdGlvbkFjdGlvblRydXN0ZWQubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3RjFDOTEwMjVEREQ1MTkwMEU4RjZFQSAvKiBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTdGNEFBOUYyMDhGQTgzRDAwQTY4RTlFIC8qIFNTTEtleUdlbmVyYXRvci5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFNTTEtleUdlbmVyYXRvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTdGNTZBNUIxQzdGOEE0MDAwRjMxRDdFIC8qIElzTmF2aWdhdGlvbkFjdGlvblRydXN0
ZWQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IElzTmF2aWdhdGlvbkFjdGlvblRy
dXN0ZWQuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMwMTYwQzAyMUExMzIz
MjAwNzdGQTMyIC8qIEpJVEVuYWJsZWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBKSVRFbmFibGVkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NDcxMSw2ICs0NzEzLDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTA3MTFERjUxMjI2QTk1RkIw
MDNERDJGNyAvKiBBVkZvdW5kYXRpb25Tb2Z0TGlua1Rlc3QubW0gKi8sCiAJCQkJNzUxQjA1RDUx
RjhFQUMxQTAwMjhBMDlFIC8qIERhdGFiYXNlVHJhY2tlclRlc3QubW0gKi8sCisJCQkJNTdGMUM5
MTAyNURERDUxOTAwRThGNkVBIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gKi8s
CiAJCQkJNTc2OUM1MEExRDlCMDAwMTAwMDg0N0ZCIC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFw
Lm1tICovLAogCQkJCUExNzk5MTg2MUUxQzk5NEUwMEE1MDVFRCAvKiBTaGFyZWRCdWZmZXIubW0g
Ki8sCiAJCQkJQ0Q4OUQwMzgxQzRFREIyQTAwMDQwQTA0IC8qIFdlYkNvcmVOU1VSTFNlc3Npb24u
bW0gKi8sCkBAIC01NDg2LDYgKzU0ODksNyBAQAogCQkJCUExRUMxMTg4MUY0MjU0MTIwMEQwMTQ2
RSAvKiBQcmV2aWV3Q29udmVydGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjBDMUE0
MTFBRTYwMDQ0N0M0QyAvKiBQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFj
ay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2QjBBMDdGNzIxRkE5QzJCMDBENTczOTEgLyogUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTdGMUM5MTEyNURE
RDUxOTAwRThGNkVBIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gaW4gU291cmNl
cyAqLywKIAkJCQk0NjQ3QjEyNjFFQkEzQjg1MDA0MUQ3RUYgLyogUHJvY2Vzc0RpZFRlcm1pbmF0
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTg4MkYwMzIxMDEwQzBEMDAyRkYyODggLyogUHJv
Y2Vzc1ByZVdhcm1pbmcubW0gaW4gU291cmNlcyAqLywKIAkJCQlDREE0NDM4RTIxRjdBNDc3MDAz
Nzk0ODkgLyogUHJvY2Vzc1N1c3BlbmRNZWRpYUJ1ZmZlcmluZy5tbSBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKaW5kZXggYjczMjYzMzQ0ZmUxZjZlOWViMGU0MmEyNmU3
MmM0ZmIyZjM5MGYzNi4uMjYwMzAzN2QwMjhiOTk1YzgyZmViYmMzYWE3YzdkYmIyYTQwNTAyZCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRlc3QuaCIKIAogI2luY2x1ZGUgPFdlYkNvcmUv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaD4KICNpbmNsdWRlIDx3dGYvVVJMLmg+CkBAIC0zMDAs
NCArMzAxLDIzIEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRTb3VyY2VO
b25jZSkKICAgICBBU1NFUlRfRkFMU0UoZXBoZW1lcmFsTm9uY2UuaXNWYWxpZCgpKTsKIH0KIAor
VEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZEJsaW5kZWRTZWNyZXQpCit7Cisg
ICAgY29uc3QgY2hhciBzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkxbXSA9ICJNSUlDSWpBTkJna3Fo
a2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXpiMWRUaHJ0WXdWaDQ2U2pJbmVnS2hBcXBi
SndtMVhuVEJDdnliU0s4ems1M1IwQW0xaEczM0FWRjVKMWxxWWYzNndwNjYzR2FzY2xIdHF6dnhG
Wkl2REExRFVTSDRhWnpfZkRIQ1RUeEVlSlZQT1JTM3pOTjJVald3YnRud3NoNEJtRFRpLXpfY0Ru
MExBejJKdVp5S2x5RnQ1R2dWTEFRdkw5SDNWTEhVOV9YSE5LLXVib3lYZmNIUlR0ckRucHUzYzZ3
dlg1ZGQtQUpvTG1JUVRaQkVKZlZreEJHem5rMXFLSGpjNm5BU0FpcktGX3dKQ251d0FLOEM2QkFj
ak5jd1VXQ2VLcDBZRUN6Q1hVLS1KWGQyT0VVLVFoeFBDNjdmYWlET2gzVjB2bGZxWkx0cmxibmFu
VUNLcnZodzdHYUdPR1lvdElyblp0dU5meEMxNGRfWE5WZDFGUzhuSGpSVEhuRWd3X2pubFNzc2Zn
U3R6MHVKdGNta2Znb0pCdk9FNG1JUnBpN2lTbFJmWE5rS3NXWDFKLWd3Y25DVm81dTB1SkVXNlg2
Tnl2RUdZSjh3NUJQZndzUXVLOXktNFo3aWt0OUlPdWNFSFk3VGhEbWk5VE5OaEhCVmowR3U0d0dv
U2pxM2E2dkw1TjEwWlNIWG9xMVhnZkdQcm1IaGhMOTBjanZXb25veU9Yc1VxbFhFelRqRDJXOTg5
N1EtTXg5QlVOckdRUHFtSXg4RjVNd3hXY09yeWU4V1JwNFE4OG4yWVNVblY3QzhheWxkM3YxRmg3
TjVqZVNxZVZtdERWUllUbjJzVmZOcWdYcnpnZGlnSmNRUjh2RkVOdTZuekZQd3NyWFBNYUNpTFVu
Wk5VbVExWlNMUWVReWhZWHhIcVJKcm51Q0RXWExrQ0F3RUFBUSI7CisKKyAgICBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCBwY207CisgICAgYXV0byBzb3VyY2VTZWNyZXRUb2tlbiA9IHBjbS50b2tl
blNpZ25hdHVyZUpTT04oc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKTsKKyAgICBFWFBFQ1RfRVEo
c291cmNlU2VjcmV0VG9rZW4tPmFzT2JqZWN0KCktPnNpemUoKSwgMHVsKTsKKworICAgIGF1dG8g
ZXBoZW1lcmFsTm9uY2UgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFsU291cmNl
Tm9uY2UgeyAiQUJDREVGYWJjZGVmMDEyMzQ1Njc4OSJfcyB9OworICAgIEVYUEVDVF9UUlVFKGVw
aGVtZXJhbE5vbmNlLmlzVmFsaWQoKSk7CisgICAgcGNtLnNldEVwaGVtZXJhbFNvdXJjZU5vbmNl
KFdURk1vdmUoZXBoZW1lcmFsTm9uY2UpKTsKKworICAgIHNvdXJjZVNlY3JldFRva2VuID0gcGNt
LnRva2VuU2lnbmF0dXJlSlNPTihzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkwpOworICAgIEVYUEVD
VF9FUShzb3VyY2VTZWNyZXRUb2tlbi0+YXNPYmplY3QoKS0+c2l6ZSgpLCA0dWwpOworCisgICAg
YXV0byBwZXJzaXN0ZW50VG9rZW4gPSBwY20uY2FsY3VsYXRlU291cmNlVW5saW5rYWJsZVRva2Vu
KGVtcHR5U3RyaW5nKCkpOworICAgIEVYUEVDVF9GQUxTRShwZXJzaXN0ZW50VG9rZW4pOworfQor
CiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlNWQ1ZmI2ZDE4MjE3NTk4MDcwNTg3Mjhh
ZmI4NWRjYjAyYmJmMTYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbQpAQCAtMCww
ICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJU
ZXN0LmgiCisKKyNpZiBIQVZFKFJTQV9CU1NBKQorCisjaW5jbHVkZSA8U2VjdXJpdHkvU2VjS2V5
UHJpdi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaD4KKwor
ZXh0ZXJuICJDIiB7CisjaW5jbHVkZSA8Y29yZWNyeXB0by9jY19wcml2Lmg+CisjaW5jbHVkZSA8
Y29yZWNyeXB0by9jY3JuZy5oPgorI2luY2x1ZGUgPGNvcmVjcnlwdG8vY2Nyc2EuaD4KKyNpbmNs
dWRlIDxjb3JlY3J5cHRvL2NjcnNhYnNzYS5oPgorfQorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKFByaXZhdGVDbGlja01lYXN1
cmVtZW50LCBWYWxpZEJsaW5kZWRTZWNyZXQpCit7CisgICAgYXV0byBlcGhlbWVyYWxOb25jZSA9
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZSB7ICJBQkNERUZh
YmNkZWYwMTIzNDU2Nzg5Il9zIH07CisgICAgRVhQRUNUX1RSVUUoZXBoZW1lcmFsTm9uY2UuaXNW
YWxpZCgpKTsKKworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IHBjbTsKKyAgICBwY20uc2V0
RXBoZW1lcmFsU291cmNlTm9uY2UoV1RGTW92ZShlcGhlbWVyYWxOb25jZSkpOworCisgICAgLy8g
R2VuZXJhdGUgdGhlIHNlcnZlciBrZXkgcGFpci4KKyAgICBzaXplX3QgbW9kdWx1c05CaXRzID0g
NDA5NjsKKyAgICBpbnQgZXJyb3IgPSAwOworCisgICAgc3RydWN0IGNjcm5nX3N0YXRlKiBybmcg
PSBjY3JuZygmZXJyb3IpOworICAgIEVYUEVDVF9FUShlcnJvciwgQ0NFUlJfT0spOworCisgICAg
Y29uc3QgdWludDhfdCBlW10gPSB7IDB4MSwgMHgwMCwgMHgwMSB9OworICAgIGNjcnNhX2Z1bGxf
Y3R4X2RlY2woY2NuX3NpemVvZihtb2R1bHVzTkJpdHMpLCByc2FQcml2YXRlS2V5KTsKKyAgICBl
cnJvciA9IGNjcnNhX2dlbmVyYXRlX2tleShtb2R1bHVzTkJpdHMsIHJzYVByaXZhdGVLZXksIHNp
emVvZihlKSwgZSwgcm5nKTsKKyAgICBFWFBFQ1RfRVEoZXJyb3IsIENDRVJSX09LKTsKKworICAg
IGNjcnNhX3B1Yl9jdHhfdCByc2FQdWJsaWNLZXkgPSBjY3JzYV9jdHhfcHVibGljKHJzYVByaXZh
dGVLZXkpOworICAgIHNpemVfdCBtb2R1bHVzTkJ5dGVzID0gY2NfY2VpbGluZyhjY3JzYV9wdWJr
ZXlsZW5ndGgocnNhUHVibGljS2V5KSwgOCk7CisKKyAgICBjb25zdCBzdHJ1Y3QgY2Nyc2Fic3Nh
X2NpcGhlcnN1aXRlICpjaXBoZXJzdWl0ZSA9ICZjY3JzYWJzc2FfY2lwaGVyc3VpdGVfcnNhNDA5
Nl9zaGEzODQ7CisKKyAgICBzaXplX3QgZXhwb3J0U2l6ZSA9IGNjZGVyX2VuY29kZV9yc2FfcHVi
X3NpemUocnNhUHVibGljS2V5KTsKKyAgICBhdXRvIHB1YmxpY0tleSA9IGFkb3B0TlMoW1tOU011
dGFibGVEYXRhIGFsbG9jXSBpbml0V2l0aExlbmd0aDpleHBvcnRTaXplXSk7CisgICAgY2NkZXJf
ZW5jb2RlX3JzYV9wdWIocnNhUHVibGljS2V5LCBzdGF0aWNfY2FzdDx1aW50OF90Kj4oW3B1Ymxp
Y0tleSBtdXRhYmxlQnl0ZXNdKSwgc3RhdGljX2Nhc3Q8dWludDhfdCo+KFtwdWJsaWNLZXkgbXV0
YWJsZUJ5dGVzXSkgKyBbcHVibGljS2V5IGxlbmd0aF0pOworCisgICAgYXV0byBzZWNLZXkgPSBh
ZG9wdENGKFNlY0tleUNyZWF0ZVdpdGhEYXRhKChfX2JyaWRnZSBDRkRhdGFSZWYpcHVibGljS2V5
LmdldCgpLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKUB7CisgICAgICAgIChfX2JyaWRnZSBp
ZClrU2VjQXR0cktleVR5cGU6IChfX2JyaWRnZSBpZClrU2VjQXR0cktleVR5cGVSU0EsCisgICAg
ICAgIChfX2JyaWRnZSBpZClrU2VjQXR0cktleUNsYXNzOiAoX19icmlkZ2UgaWQpa1NlY0F0dHJL
ZXlDbGFzc1B1YmxpYworICAgIH0sIG5pbCkpOworICAgIEVYUEVDVF9OT1RfTlVMTChzZWNLZXkp
OworCisgICAgYXV0byBzcGtpRGF0YSA9IGFkb3B0Q0YoU2VjS2V5Q29weVN1YmplY3RQdWJsaWNL
ZXlJbmZvKHNlY0tleS5nZXQoKSkpOworICAgIGF1dG8gKm5zU3BraURhdGEgPSAoX19icmlkZ2Ug
TlNEYXRhICopc3BraURhdGEuZ2V0KCk7CisKKyAgICAvLyBDb250aW51ZSB0aGUgdGVzdC4KKyAg
ICBhdXRvIHNvdXJjZVNlY3JldFRva2VuID0gcGNtLnRva2VuU2lnbmF0dXJlSlNPTihXVEY6OmJh
c2U2NFVSTEVuY29kZShuc1Nwa2lEYXRhLmJ5dGVzLCBuc1Nwa2lEYXRhLmxlbmd0aCkpOworICAg
IEVYUEVDVF9FUShzb3VyY2VTZWNyZXRUb2tlbi0+YXNPYmplY3QoKS0+c2l6ZSgpLCA0dWwpOwor
ICAgIEVYUEVDVF9TVFJFUShzb3VyY2VTZWNyZXRUb2tlbi0+Z2V0U3RyaW5nKCJzb3VyY2VfZW5n
YWdlbWVudF90eXBlIl9zKS51dGY4KCkuZGF0YSgpLCAiY2xpY2siKTsKKyAgICBFWFBFQ1RfU1RS
RVEoc291cmNlU2VjcmV0VG9rZW4tPmdldFN0cmluZygic291cmNlX25vbmNlIl9zKS51dGY4KCku
ZGF0YSgpLCAiQUJDREVGYWJjZGVmMDEyMzQ1Njc4OSIpOworICAgIEVYUEVDVF9GQUxTRShzb3Vy
Y2VTZWNyZXRUb2tlbi0+Z2V0U3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIl9zKS5pc0VtcHR5
KCkpOworICAgIEVYUEVDVF9FUShzb3VyY2VTZWNyZXRUb2tlbi0+Z2V0SW50ZWdlcigidmVyc2lv
biJfcyksIDIpOworCisgICAgLy8gR2VuZXJhdGUgdGhlIHNpZ25hdHVyZS4KKyAgICBWZWN0b3I8
dWludDhfdD4gYmxpbmRlZE1lc3NhZ2U7CisgICAgYmFzZTY0VVJMRGVjb2RlKHNvdXJjZVNlY3Jl
dFRva2VuLT5nZXRTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW4iX3MpLCBibGluZGVkTWVzc2Fn
ZSk7CisKKyAgICBhdXRvIGJsaW5kZWRTaWduYXR1cmUgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGF0
YSBhbGxvY10gaW5pdFdpdGhMZW5ndGg6IG1vZHVsdXNOQnl0ZXNdKTsKKyAgICBjY3JzYWJzc2Ff
c2lnbl9ibGluZGVkX21lc3NhZ2UoY2lwaGVyc3VpdGUsIHJzYVByaXZhdGVLZXksIGJsaW5kZWRN
ZXNzYWdlLmRhdGEoKSwgYmxpbmRlZE1lc3NhZ2Uuc2l6ZSgpLCBzdGF0aWNfY2FzdDx1aW50OF90
ICo+KFtibGluZGVkU2lnbmF0dXJlIG11dGFibGVCeXRlc10pLCBbYmxpbmRlZFNpZ25hdHVyZSBs
ZW5ndGhdLCBybmcpOworCisgICAgLy8gQ29udGludWUgdGhlIHRlc3QuCisgICAgYXV0byBwZXJz
aXN0ZW50VG9rZW4gPSBwY20uY2FsY3VsYXRlU291cmNlVW5saW5rYWJsZVRva2VuKFdURjo6YmFz
ZTY0VVJMRW5jb2RlKFtibGluZGVkU2lnbmF0dXJlIGJ5dGVzXSwgW2JsaW5kZWRTaWduYXR1cmUg
bGVuZ3RoXSkpOworICAgIEVYUEVDVF9UUlVFKHBlcnNpc3RlbnRUb2tlbik7CisgICAgRVhQRUNU
X0ZBTFNFKHBlcnNpc3RlbnRUb2tlbi0+dG9rZW5CYXNlNjRVUkwuaXNFbXB0eSgpKTsKKyAgICBF
WFBFQ1RfRkFMU0UocGVyc2lzdGVudFRva2VuLT5rZXlJREJhc2U2NFVSTC5pc0VtcHR5KCkpOwor
ICAgIEVYUEVDVF9GQUxTRShwZXJzaXN0ZW50VG9rZW4tPnNpZ25hdHVyZUJhc2U2NFVSTC5pc0Vt
cHR5KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZiAvLyBF
SEFWRShSU0FfQlNTQSkK
</data>
<flag name="commit-queue"
          id="439659"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420949</attachid>
            <date>2021-02-19 03:02:28 -0800</date>
            <delta_ts>2021-02-19 03:34:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222019-20210219030227.patch</filename>
            <type>text/plain</type>
            <size>50273</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJmZDcxYjc4YzVmNThiMjMwZjYwOTg4
N2E1MDM4ZjRmYjk5NTdkZjIuLjdkMzYxMzZlYjI0YmRiYTc3NTc2ODlmZjM2YTdjNGY0NzRmNTUz
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5f
dGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQg
Y29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcz
NTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2lsYW5kZXIuCisKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1IYXZlLmg6CisgICAgICAgIEFkZHMgYSBjb21waWxlIHRpbWUgZmxhZyBm
b3IgUlNBQlNTQS4KKwogMjAyMS0wMi0xOCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIGV4cGVyaW1lbnRhbCBzdXBwb3J0IGZvciBDU1MgQ29sb3IgNSBSZWxh
dGl2ZSBDb2xvciBTeW50YXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3Njk4MGM0NGM5ZmIwNjAzZTAyZWY3NGY0
NDk1OTU1NDYyY2ZlMWYwLi45YmNhNDE5Y2MwNmVkYjc0ZmQwMmNkMDY1ZGI0ZjRhNzRhZDQyZWNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxq
aWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tl
biBhbmQgY29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzczNTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2lsYW5kZXIuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBBUEkgdGVzdHMuCisKKyAgICAgICAgVGhpcyBwYXRjaCB1dGlsaXpl
cyBSU0FCU1NBIHRvIGdlbmVyYXRlIHNlY3JldCB0b2tlbiBmb3IgUENNIGZyYXVkIHByZXZlbnRp
b24uCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnOgorICAgICAg
ICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICBQYXBlcndvcmsgdG8gbGluayBDcnlwdG9LaXRDQnJpZGdpbmcu
CisKKyAgICAgICAgKiBsb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNl
Ojppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpzZXRFcGhlbWVyYWxTb3VyY2VOb25jZSk6CisgICAgICAgICogbG9hZGVyL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6YXR0cmlidXRlT25TaXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjplcGhlbWVyYWxTb3VyY2VOb25jZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y2xlYXJFcGhlbWVyYWxTb3VyY2VOb25j
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFs
U291cmNlTm9uY2U6OkVwaGVtZXJhbFNvdXJjZU5vbmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNW
YWxpZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6c2V0RXBoZW1lcmFsU291cmNlTm9uY2UpOiBEZWxldGVkLgorICAgICAgICBHcm91
cHMgZnVuY3Rpb25hbGl0aWVzIGJlaGluZCBIQVZFX1JTQV9CU1NBLgorCisgICAgICAgICogbG9h
ZGVyL2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW06IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmJsaW5kZWRTZWNyZXRKc29uKToK
KyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpjYWxjdWxhdGVQZXJz
aXN0ZW50QmxpbmRlZFRva2VuKToKKyAgICAgICAgSW50cm9kdWNlcyBuZXcgbWV0aG9kcyB0byBn
ZW5lcmF0ZSB0aGUgYmxpbmRlZCBzZWNyZXRzIGFuZCB1bmxpbmthYmxlIHRva2Vucy4KKwogMjAy
MS0wMi0xOSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFBD
TTogUmVxdWVzdCBzZXJ2ZXIgcHVibGljIGtleSB0byBnZW5lcmF0ZSBzZWNyZXQgdG9rZW4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1IYXZlLmgKaW5kZXggMDQ4NmZjZTJjNDE4NmQyZDhiZjI1OTEyNTU5NmU4NjM5Y2Qz
NDUxMS4uZGExNWZkN2RlN2VlNWM4YWFmMDM0OWZmMTAyOGY3MmU1Njk1NGFmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxh
dGZvcm1IYXZlLmgKQEAgLTg4OCwzICs4ODgsOCBAQAogI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDAKICNkZWZpbmUgSEFWRV9TVEFU
SUNfRk9OVF9SRUdJU1RSWSAxCiAjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwKSBcCisgICAgfHwgKFBMQVRGT1JN
KElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTUwMDAwKQorI2Rl
ZmluZSBIQVZFX1JTQV9CU1NBIDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BB
TC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJlZGJjYzljMDM4ODc1ZWFlNDAyY2E1
ZDU3OTU0OGRhMDdjZTc0NmUuLjg4NDkwZTBkOTk3MjdhODc5NjVlYjVjYTBhOGU2MjBiMGE0ZjFk
ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTEzOCw2ICsxMzgsOCBAQAogCQk1NzBBQjhGOTIwQUY2RTNEMDBCOEJFODcgLyog
TlNYUENDb25uZWN0aW9uU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzBBQjhGODIwQUY2RTNEMDBCOEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJ
LmggKi87IH07CiAJCTU3MkExMDc4MjJCNDU2RjUwMEY0MTBDOCAvKiBBdXRoS2l0U1BJLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJBMTA3NzIyQjQ1
NkY1MDBGNDEwQzggLyogQXV0aEtpdFNQSS5oICovOyB9OwogCQk1NzZDQTlENjIyQjg1NEFCMDAz
MDE0M0MgLyogQXBwU1NPU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzZDQTlENTIyQjg1NEFCMDAzMDE0M0MgLyogQXBwU1NPU1BJLmggKi87IH07
CisJCTU3RjFDOTA5MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGMUM5
MDcyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmggKi87IH07
CisJCTU3RjFDOTBBMjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RjFD
OTA4MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbSAqLzsg
fTsKIAkJNTdGRDMxOEEyMkIzNTkzRTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGRDMxODkyMkIzNTkz
RTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLm1tICovOyB9OwogCQk1N0ZEMzE4QjIyQjM1OTg5
MDA4RDBFOEIgLyogQXBwU1NPU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3RkQzMTg4MjJCMzU5MkYwMDhEMEU4QiAvKiBBcHBTU09Tb2Z0
TGluay5oICovOyB9OwogCQk1QzdDNzg3MzIzQUMzRTc3MDA2NUY0N0UgLyogTWFuYWdlZENvbmZp
Z3VyYXRpb25Tb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUM3Qzc4NzEyM0FDM0U3NzAwNjVGNDdFIC8qIE1hbmFnZWRDb25maWd1cmF0aW9u
U29mdExpbmsuaCAqLzsgfTsKQEAgLTM0MSw2ICszNDMsOCBAQAogCQk1NzBBQjhGODIwQUY2RTNE
MDBCOEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TWFBDQ29u
bmVjdGlvblNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJBMTA3NzIyQjQ1
NkY1MDBGNDEwQzggLyogQXV0aEtpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoS2l0U1BJLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NkNBOUQ1MjJCODU0QUIwMDMwMTQzQyAv
KiBBcHBTU09TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwU1NPU1BJLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTU3RjFDOTA3MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJp
ZGdpbmdTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0YxQzkwODI1RENGMENGMDBFOEY2
RUEgLyogQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTdGRDMxODgyMkIzNTkyRjAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcFNTT1NvZnRMaW5rLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU3RkQzMTg5MjJCMzU5M0UwMDhEMEU4QiAvKiBBcHBTU09Tb2Z0
TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFwcFNTT1Nv
ZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzdDNzg3MTIzQUMzRTc3
MDA2NUY0N0UgLyogTWFuYWdlZENvbmZpZ3VyYXRpb25Tb2Z0TGluay5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNYW5hZ2VkQ29uZmlndXJhdGlvblNvZnRMaW5rLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02OTEsNiArNjk1LDggQEAKIAkJCQk1N0ZEMzE4OTIy
QjM1OTNFMDA4RDBFOEIgLyogQXBwU1NPU29mdExpbmsubW0gKi8sCiAJCQkJMDc3RTg3QjAyMjZB
NDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLmggKi8sCiAJCQkJMDc3RTg3QUYy
MjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLm1tICovLAorCQkJCTU3RjFD
OTA3MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oICovLAor
CQkJCTU3RjFDOTA4MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5tbSAqLywKIAkJCQlGNDQyOTE2NjFGQTUyNzA1MDAyQ0M5M0UgLyogRmlsZVNpemVGb3JtYXR0
ZXJDb2NvYS5tbSAqLywKIAkJCQkxQzAyMkVGQzIyQ0ZFOEUwMDA2REYwMUIgLyogR3VuemlwLmNw
cCAqLywKIAkJCQlDREFDQjM1RTIzODczRTQ4MDAxOEQ3Q0UgLyogTWVkaWFUb29sYm94U29mdExp
bmsuY3BwICovLApAQCAtODI4LDYgKzgzNCw3IEBACiAJCQkJMUNDRUU0RjUyMEQ4NzE5MzAwNDdC
MDk3IC8qIENvcmVVSVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MTkxRjQzQTRDNzAw
MkVBQzAyIC8qIENvcmVVSVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUMwOUQwNTMxRTMxQzQ0
MTAwNzI1RjE4IC8qIENyeXB0b0RpZ2VzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTdGMUM5MDky
NURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwQzJEQTE0MTFGM0JFQjQ5MDBEQkMzMTcgLyogRGF0YURldGVjdG9yc0NvcmVT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NThBMUY0NTEzMEYwMEY0RUJCNiAvKiBEYXRh
RGV0ZWN0b3JzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzVBRjkxQTFGNDNBNEM3MDAyRUFD
MDIgLyogRGF0YURldGVjdG9yc1VJU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTEwMzcsNiArMTA0
NCw3IEBACiAJCQkJMENGOTlDQTgxRjczODQzNzAwN0VFNzkzIC8qIENvcmVNZWRpYVNvZnRMaW5r
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDNzdDOEM5MjVENzk3MjAwMDYzNUUwQyAvKiBDb3Jl
VGV4dFNvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDMDlEMDU2MUUzMUM0NjUwMDcy
NUYxOCAvKiBDcnlwdG9EaWdlc3RDb21tb25DcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTdGMUM5MEEyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTExNzVCNTgxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRT
ZWFyY2hQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNDQyOTE2NDFGQTUyNjcwMDAy
Q0M5M0UgLyogRmlsZVNpemVGb3JtYXR0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ0Mjkx
NjgxRkE1MjcwNTAwMkNDOTNFIC8qIEZpbGVTaXplRm9ybWF0dGVyQ29jb2EubW0gaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRvS2l0
Q0JyaWRnaW5nU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRv
S2l0Q0JyaWRnaW5nU29mdExpbmsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTkwZDRmZTVmM2FlZTNhNjM4YWJl
MDE1MmM0NjUwMzM5MzA5ZjY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oCkBAIC0wLDAgKzEsMzcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEhBVkUoUlNBX0JTU0EpCisKKyNpbXBv
cnQgPENyeXB0b0tpdENCcmlkZ2luZy9SU0FCU1NBLmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtp
bmcuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfSEVBREVSKFBBTCwgQ3J5cHRvS2l0Q0Jy
aWRnaW5nKTsKKworU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBSU0FCU1NBVG9rZW5C
bGluZGVyKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Nv
Y29hL0NyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWJjNzVh
Y2MzZGQ3NDQ4ZDBhMTA5NTc4ZGJmMzAyMjRkNzJiNDlhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbQpA
QCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYg
SEFWRShSU0FfQlNTQSkKKworI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisKK1NPRlRfTElO
S19QUklWQVRFX0ZSQU1FV09SS19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ3J5cHRvS2l0
Q0JyaWRnaW5nLCBQQUxfRVhQT1JUKTsKKworU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDcnlwdG9LaXRDQnJpZGdpbmcsIFJTQUJTU0FUb2tlbkJsaW5kZXIsIFBB
TF9FWFBPUlQpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXND
b2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGJmNmFlMTYx
ODdhYmEwNzE1NzJkYTA3OTIzYWMzMzBiMjI4ZjY5YzUuLjlkYTUyMWE3YTVkNDY0YTg0MjA5YzNj
YjAwOWRkOWExYWVhNjBmMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2Nv
YS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMTY4LDYgKzE2
OCw3IEBAIGluc3BlY3Rvci9tYWMvUGFnZURlYnVnZ2VyTWFjLm1tCiBsb2FkZXIvYXJjaGl2ZS9j
Zi9MZWdhY3lXZWJBcmNoaXZlLmNwcAogbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2
ZU1hYy5tbQogbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5tbQorbG9hZGVyL2Nv
Y29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0KIGxvYWRlci9jb2NvYS9TdWJyZXNv
dXJjZUxvYWRlckNvY29hLm1tCiBsb2FkZXIvaW9zL0xlZ2FjeVByZXZpZXdMb2FkZXIubW0KIGxv
YWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGQxZmZmZWJlZmVmMjBjNjBjOTA1
MDliYWM3MWY0MjNiNDNhNmM0Ni4uMjI0OGU3N2M4Y2M3NDY5ZmI3MGE1YmYxYzljOWRlYzkzZDZh
NDhmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtOTQxNiw2ICs5NDE2LDcgQEAKIAkJNTdFRUFBNTcxRUEwQUZCQjAwNzAxMTI0
IC8qIENvbW1vbkNyeXB0b0RFUlV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDb21tb25DcnlwdG9ERVJVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1N0VGNUU1RjFEMjBDODM5MDAxNzFFNjAgLyogVGV4dENvZGVjUmVw
bGFjZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENvZGVjUmVw
bGFjZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdFRjVFNjExRDIwRDI4
NzAwMTcxRTYwIC8qIFRleHRDb2RlY1JlcGxhY2VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRDb2RlY1JlcGxhY2VtZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTdGMUM4RTMyNURDNkVFNzAwRThGNkVBIC8qIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1N0Y4MjczOTFEQjcyQzIyMDA5RDJCRjQgLyogUnNhSGFzaGVkS2V5R2VuUGFy
YW1zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBSc2FIYXNoZWRLZXlHZW5QYXJhbXMuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1N0ZFREQzRDFEQjZENDdGMDBFQjk2RjUgLyogUnNhS2V5R2VuUGFyYW1z
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBSc2FLZXlHZW5QYXJhbXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1N0ZFREQzRTFEQjZENTkyMDBFQjk2RjUgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2Vu
UGFyYW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRo
bVJzYUtleUdlblBhcmFtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTczMSw3
ICs5NzMyLDcgQEAKIAkJNkEyMkU4NzIxRjEwNDJDNDAwRjU0NkMzIC8qIEluc3BlY3RvckNhbnZh
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JDYW52YXMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2QTcyNzk4ODFGMTZDMjlCMDAzRjM5QjggLyogSW5zcGVjdG9y
U2hhZGVyUHJvZ3JhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0
b3JTaGFkZXJQcm9ncmFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZBNzI3OTg5
MUYxNkMyOUIwMDNGMzlCOCAvKiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvclNoYWRlclByb2dyYW0uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QjBBMDdGMDIxRkE0QjVDMDBENTczOTEgLyog
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkIwQTA3RjAyMUZBNEI1
QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTZCMEEwN0YxMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCMUY0ODBGMjI5ODlFQzQwMERF
OEI4MiAvKiBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNkI0RDQxMkIyMzk4M0Y4ODAwMjQ5NEMyIC8qIExvZ2dlZEluU3RhdHVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IExvZ2dlZEluU3RhdHVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yMjk0OSw2ICsyMjk1MCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk3RURBQUZDODE5
QTJDQkQxMDAzNERGRDEgLyogRGlza0NhY2hlTW9uaXRvckNvY29hLmggKi8sCiAJCQkJN0U0REUx
MEMxOThCMTBCNjAwNTFDQjAyIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSAqLywKKwkJCQk1
N0YxQzhFMzI1REM2RUU3MDBFOEY2RUEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5t
bSAqLywKIAkJCQk3RThGQURDMzE5OUE5NUIxMDA3MTQ5NjggLyogU3VicmVzb3VyY2VMb2FkZXJD
b2NvYS5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gY29jb2E7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAppbmRleCA4YTk3M2YwMzQ1NDQ1
NDc1NGQwMTk1NGFmM2ZhZjhiOGZhZGI1OGNkLi5lNTZjOTQ1MjI5YTU5Njk3M2RiNWE3YjUwZWEy
MTQwZGUxNWE4ZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUcmlnZ2VyQXR0cmli
dXRpb25QYXRoW10gPSAiLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvdHJp
Z2dlci1hdHRyaWJ1dGlvbi8iOwotc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRUb2tlblNpZ25hdHVyZVBhdGhbXSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC9zaWduLXVubGlua2FibGUtdG9rZW4vIjsKK3N0YXRpYyBjb25zdCBjaGFyIHBy
aXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVQYXRoW10gPSAiLy53ZWxsLWtub3du
L3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvc2lnbi1zZWNyZXQtdG9rZW4vIjsKIHN0YXRpYyBj
b25zdCBjaGFyIHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlQYXRoW10gPSAi
Ly53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvZ2V0LXVubGlua2FibGUtdG9r
ZW4tcHVibGljLWtleS8iOwogc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRSZXBvcnRBdHRyaWJ1dGlvblBhdGhbXSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC9yZXBvcnQtYXR0cmlidXRpb24vIjsKIGNvbnN0IHNpemVfdCBwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHJpZ2dlckRhdGFQYXRoU2VnbWVudFNpemUgPSAyOwpA
QCAtMTE2LDE1ICsxMTYsMTUgQEAgYm9vbCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6aGFzSGln
aGVyUHJpb3JpdHlUaGFuKGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW4KICAgICByZXR1cm4g
bV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhLT5wcmlvcml0eSA+IG90aGVyLm1fYXR0cmlidXRpb25U
cmlnZ2VyRGF0YS0+cHJpb3JpdHk7CiB9CiAKLVVSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
dG9rZW5TaWduYXR1cmVVUkwoKSBjb25zdAorVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojph
dHRyaWJ1dGlvblJlcG9ydFVSTCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2VwaGVtZXJhbFNvdXJj
ZU5vbmNlIHx8ICFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5pc1ZhbGlkKCkpCisgICAgaWYgKCFp
c1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBVUkwoKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImh0dHBzOi8vIik7CiAgICAgYnVpbGRl
ci5hcHBlbmQobV9zb3VyY2VTaXRlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKLSAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVy
ZVBhdGgpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbChwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFJlcG9ydEF0dHJpYnV0aW9uUGF0aCk7CiAKICAgICBVUkwgdXJsIHsgVVJMKCksIGJ1aWxkZXIu
dG9TdHJpbmcoKSB9OwogICAgIGlmICh1cmwuaXNWYWxpZCgpKQpAQCAtMTMzLDEyICsxMzMsNTEg
QEAgVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojp0b2tlblNpZ25hdHVyZVVSTCgpIGNvbnN0
CiAgICAgcmV0dXJuIFVSTCgpOwogfQogCi1VUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRv
a2VuUHVibGljS2V5VVJMKCkgY29uc3QKK1JlZjxKU09OOjpPYmplY3Q+IFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydEpTT04oKSBjb25zdAoreworICAgIGF1dG8gcmVw
b3J0RGV0YWlscyA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CisgICAgaWYgKCFtX2F0dHJpYnV0
aW9uVHJpZ2dlckRhdGEgfHwgIWlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIHJlcG9ydERldGFp
bHM7CisKKyAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5
cGUiX3MsICJjbGljayJfcyk7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vf
c2l0ZSJfcywgbV9zb3VyY2VTaXRlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKKyAgICBy
ZXBvcnREZXRhaWxzLT5zZXRJbnRlZ2VyKCJzb3VyY2VfaWQiX3MsIG1fc291cmNlSUQuaWQpOwor
ICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygiYXR0cmlidXRlZF9vbl9zaXRlIl9zLCBtX2F0
dHJpYnV0ZU9uU2l0ZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7CisgICAgcmVwb3J0RGV0
YWlscy0+c2V0SW50ZWdlcigidHJpZ2dlcl9kYXRhIl9zLCBtX2F0dHJpYnV0aW9uVHJpZ2dlckRh
dGEtPmRhdGEpOworICAgIHJlcG9ydERldGFpbHMtPnNldEludGVnZXIoInZlcnNpb24iX3MsIDEp
OworICAgIHJldHVybiByZXBvcnREZXRhaWxzOworfQorCisvLyBNQVJLOiAtIEZyYXVkIFByZXZl
bnRpb24KKworc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBFcGhlbWVyYWxTb3VyY2VOb25jZVJl
cXVpcmVkTnVtYmVyT2ZCeXRlcyA9IDE2OworCitib29sIFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNWYWxpZCgpIGNvbnN0CiB7CisgICAgLy8gRklYTUU6
IEludmVzdGlnYXRlIGlmIHdlIGNhbiBkbyB3aXRoIGEgc2ltcGxlIGxlbmd0aCBjaGVjayBpbnN0
ZWFkIG9mIGRlY29kaW5nLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjE5NDUKKyAgICBWZWN0b3I8dWludDhfdD4gZGlnZXN0OworICAgIGlmICghYmFz
ZTY0VVJMRGVjb2RlKG5vbmNlLCBkaWdlc3QpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIGRpZ2VzdC5zaXplKCkgPT0gRXBoZW1lcmFsU291cmNlTm9uY2VSZXF1aXJlZE51bWJl
ck9mQnl0ZXM7Cit9CisKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNldEVwaGVtZXJh
bFNvdXJjZU5vbmNlKEVwaGVtZXJhbFNvdXJjZU5vbmNlJiYgbm9uY2UpCit7CisgICAgaWYgKCFu
b25jZS5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBtX2VwaGVtZXJhbFNvdXJjZU5v
bmNlID0gV1RGTW92ZShub25jZSk7Cit9CisKK1VSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
dG9rZW5TaWduYXR1cmVVUkwoKSBjb25zdAoreworICAgIGlmICghbV9lcGhlbWVyYWxTb3VyY2VO
b25jZSB8fCAhbV9lcGhlbWVyYWxTb3VyY2VOb25jZS0+aXNWYWxpZCgpKQorICAgICAgICByZXR1
cm4gVVJMKCk7CisKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJodHRwczovLyIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1fc291cmNlU2l0ZS5y
ZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKHBy
aXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlQYXRoKTsKKyAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVBhdGgpOwog
CiAgICAgVVJMIHVybCB7IFVSTCgpLCBidWlsZGVyLnRvU3RyaW5nKCkgfTsKICAgICBpZiAodXJs
LmlzVmFsaWQoKSkKQEAgLTE0NywyOCArMTg2LDEyIEBAIFVSTCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6dG9rZW5QdWJsaWNLZXlVUkwoKSBjb25zdAogICAgIHJldHVybiBVUkwoKTsKIH0KIAot
UmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRva2VuU2lnbmF0dXJl
SlNPTigpIGNvbnN0Ci17Ci0gICAgYXV0byByZXBvcnREZXRhaWxzID0gSlNPTjo6T2JqZWN0Ojpj
cmVhdGUoKTsKLSAgICBpZiAoIW1fZXBoZW1lcmFsU291cmNlTm9uY2UgfHwgIW1fZXBoZW1lcmFs
U291cmNlTm9uY2UtPmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7Ci0K
LSAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5cGUiX3Ms
ICJjbGljayJfcyk7Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vfbm9uY2Ui
X3MsIG1fZXBoZW1lcmFsU291cmNlTm9uY2UtPm5vbmNlKTsKLSAgICByZXBvcnREZXRhaWxzLT5z
ZXRTdHJpbmcoInVubGlua2FibGVfdG9rZW4iX3MsICJUT0RPIl9zKTsKLSAgICByZXBvcnREZXRh
aWxzLT5zZXRJbnRlZ2VyKCJ2ZXJzaW9uIl9zLCAyKTsKLSAgICByZXR1cm4gcmVwb3J0RGV0YWls
czsKLX0KLQotVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydFVS
TCgpIGNvbnN0CitVUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRva2VuUHVibGljS2V5VVJM
KCkgY29uc3QKIHsKLSAgICBpZiAoIWlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIFVSTCgpOwot
CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
aHR0cHM6Ly8iKTsKICAgICBidWlsZGVyLmFwcGVuZChtX3NvdXJjZVNpdGUucmVnaXN0cmFibGVE
b21haW4uc3RyaW5nKCkpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbChwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFJlcG9ydEF0dHJpYnV0aW9uUGF0aCk7CisgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlQYXRoKTsKIAogICAgIFVS
TCB1cmwgeyBVUkwoKSwgYnVpbGRlci50b1N0cmluZygpIH07CiAgICAgaWYgKHVybC5pc1ZhbGlk
KCkpCkBAIC0xNzcsMTkgKzIwMCwyMSBAQCBVUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0
dHJpYnV0aW9uUmVwb3J0VVJMKCkgY29uc3QKICAgICByZXR1cm4gVVJMKCk7CiB9CiAKLVJlZjxK
U09OOjpPYmplY3Q+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydEpT
T04oKSBjb25zdAorUmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRv
a2VuU2lnbmF0dXJlSlNPTihjb25zdCBTdHJpbmcmIHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCkK
IHsKICAgICBhdXRvIHJlcG9ydERldGFpbHMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwotICAg
IGlmICghbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhIHx8ICFpc1ZhbGlkKCkpCisgICAgaWYgKCFt
X2VwaGVtZXJhbFNvdXJjZU5vbmNlIHx8ICFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5pc1ZhbGlk
KCkpCisgICAgICAgIHJldHVybiByZXBvcnREZXRhaWxzOworCisgICAgYXV0byB0b2tlbiA9IHNv
dXJjZVNlY3JldFRva2VuKHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCk7CisgICAgaWYgKHRva2Vu
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7CiAKICAgICByZXBvcnRE
ZXRhaWxzLT5zZXRTdHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5cGUiX3MsICJjbGljayJfcyk7
Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vfc2l0ZSJfcywgbV9zb3VyY2VT
aXRlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKLSAgICByZXBvcnREZXRhaWxzLT5zZXRJ
bnRlZ2VyKCJzb3VyY2VfaWQiX3MsIG1fc291cmNlSUQuaWQpOwotICAgIHJlcG9ydERldGFpbHMt
PnNldFN0cmluZygiYXR0cmlidXRlZF9vbl9zaXRlIl9zLCBtX2F0dHJpYnV0ZU9uU2l0ZS5yZWdp
c3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigi
dHJpZ2dlcl9kYXRhIl9zLCBtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEtPmRhdGEpOwotICAgIHJl
cG9ydERldGFpbHMtPnNldEludGVnZXIoInZlcnNpb24iX3MsIDEpOworICAgIHJlcG9ydERldGFp
bHMtPnNldFN0cmluZygic291cmNlX25vbmNlIl9zLCBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5u
b25jZSk7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2Vu
Il9zLCB0b2tlbik7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigidmVyc2lvbiJfcywg
Mik7CiAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7CiB9CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
LmgKaW5kZXggYzhkOTk0ZjgxNDYzODk3YWM1MWIyY2EwZjQ4ZjEwODI4NWMyMmU4Zi4uOTMwZjhm
Y2Y2OGQ1ZDI2YWQ1OGIwMGNmYmMyNDMzZTdhMzk4MDk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKQEAgLTM2LDYgKzM2LDE2IEBACiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5o
PgorI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkKK09CSkNfQ0xBU1MgUlNBQlNTQVRva2Vu
UmVhZHk7CitPQkpDX0NMQVNTIFJTQUJTU0FUb2tlbldhaXRpbmdBY3RpdmF0aW9uOworT0JKQ19D
TEFTUyBSU0FCU1NBVG9rZW5CbGluZGVyOworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgewpAQCAtMjAxLDMxICsyMTEsNiBAQCBw
dWJsaWM6CiAgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JE
ZWxldGVkID0gZmFsc2U7CiAgICAgfTsKIAotICAgIHN0cnVjdCBFcGhlbWVyYWxTb3VyY2VOb25j
ZSB7Ci0gICAgICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgUmVxdWlyZWROdW1iZXJPZkJ5
dGVzID0gMTY7Ci0KLSAgICAgICAgRXBoZW1lcmFsU291cmNlTm9uY2UoKSA9IGRlZmF1bHQ7Ci0g
ICAgICAgIGV4cGxpY2l0IEVwaGVtZXJhbFNvdXJjZU5vbmNlKGNvbnN0IFN0cmluZyYgbm9uY2VT
dHJpbmcpCi0gICAgICAgICAgICA6IG5vbmNlIHsgbm9uY2VTdHJpbmcgfQotICAgICAgICB7Ci0g
ICAgICAgIH0KLQotICAgICAgICAvLyBGSVhNRTogSW52ZXN0aWdhdGUgaWYgd2UgY2FuIGRvIHdp
dGggYSBzaW1wbGUgbGVuZ3RoIGNoZWNrIGluc3RlYWQgb2YgZGVjb2RpbmcuCi0gICAgICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE5NDUKLSAgICAgICAg
Ym9vbCBpc1ZhbGlkKCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgVmVjdG9yPHVpbnQ4
X3Q+IGRpZ2VzdDsKLSAgICAgICAgICAgIGlmICghYmFzZTY0VVJMRGVjb2RlKG5vbmNlLCBkaWdl
c3QpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIHJldHVybiBk
aWdlc3Quc2l6ZSgpID09IFJlcXVpcmVkTnVtYmVyT2ZCeXRlczsKLSAgICAgICAgfQotCi0gICAg
ICAgIFN0cmluZyBub25jZTsKLQotICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJikgY29uc3Q7Ci0gICAgICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBPcHRpb25hbDxFcGhlbWVyYWxTb3VyY2VOb25jZT4gZGVjb2RlKERlY29kZXImKTsK
LSAgICB9OwotCiAgICAgc3RydWN0IFByaW9yaXR5IHsKICAgICAgICAgc3RhdGljIGNvbnN0ZXhw
ciB1aW50MzJfdCBNYXhFbnRyb3B5ID0gNjM7CiAKQEAgLTI3NywxNiArMjYyLDEwIEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgRXhwZWN0ZWQ8QXR0cmlidXRpb25UcmlnZ2Vy
RGF0YSwgU3RyaW5nPiBwYXJzZUF0dHJpYnV0aW9uUmVxdWVzdChjb25zdCBVUkwmIHJlZGlyZWN0
VVJMKTsKICAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxTZWNvbmRzPiBhdHRyaWJ1dGVBbmRH
ZXRFYXJsaWVzdFRpbWVUb1NlbmQoQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmKTsKICAgICBXRUJD
T1JFX0VYUE9SVCBib29sIGhhc0hpZ2hlclByaW9yaXR5VGhhbihjb25zdCBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCYpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIFVSTCB0b2tlblB1YmxpY0tl
eVVSTCgpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIFVSTCB0b2tlblNpZ25hdHVyZVVSTCgp
IGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxKU09OOjpPYmplY3Q+IHRva2VuU2lnbmF0
dXJlSlNPTigpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFVSTCBhdHRyaWJ1dGlvblJlcG9y
dFVSTCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxKU09OOjpPYmplY3Q+IGF0dHJp
YnV0aW9uUmVwb3J0SlNPTigpIGNvbnN0OwogICAgIGNvbnN0IFNvdXJjZVNpdGUmIHNvdXJjZVNp
dGUoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVNpdGU7IH07CiAgICAgY29uc3QgQXR0cmlidXRl
T25TaXRlJiBhdHRyaWJ1dGVPblNpdGUoKSBjb25zdCB7IHJldHVybiBtX2F0dHJpYnV0ZU9uU2l0
ZTsgfTsKLSAgICB2b2lkIHNldEVwaGVtZXJhbFNvdXJjZU5vbmNlKEVwaGVtZXJhbFNvdXJjZU5v
bmNlJiYgbm9uY2UpIHsgbV9lcGhlbWVyYWxTb3VyY2VOb25jZSA9IFdURk1vdmUobm9uY2UpOyB9
OwotICAgIE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5vbmNlPiBlcGhlbWVyYWxTb3VyY2VOb25j
ZSgpIGNvbnN0IHsgcmV0dXJuICFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlID8gV1RGOjpudWxsb3B0
IDogbV9lcGhlbWVyYWxTb3VyY2VOb25jZS0+aXNWYWxpZCgpID8gbV9lcGhlbWVyYWxTb3VyY2VO
b25jZSA6IFdURjo6bnVsbG9wdDsgfTsKLSAgICB2b2lkIGNsZWFyRXBoZW1lcmFsU291cmNlTm9u
Y2UoKSB7IG1fZXBoZW1lcmFsU291cmNlTm9uY2UgID0gV1RGOjpudWxsb3B0OyB9OwogICAgIFdh
bGxUaW1lIHRpbWVPZkFkQ2xpY2soKSBjb25zdCB7IHJldHVybiBtX3RpbWVPZkFkQ2xpY2s7IH0K
ICAgICBPcHRpb25hbDxXYWxsVGltZT4gZWFybGllc3RUaW1lVG9TZW5kKCkgY29uc3QgeyByZXR1
cm4gbV9lYXJsaWVzdFRpbWVUb1NlbmQ7IH07CiAgICAgdm9pZCBzZXRFYXJsaWVzdFRpbWVUb1Nl
bmQoV2FsbFRpbWUgdGltZSkgeyBtX2VhcmxpZXN0VGltZVRvU2VuZCA9IHRpbWU7IH0KQEAgLTI5
NywxMSArMjc2LDM4IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZURlc2NyaXB0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VEZXNjcmlwdGlvbjsgfQogICAgIGNvbnN0IFN0
cmluZyYgcHVyY2hhc2VyKCkgY29uc3QgeyByZXR1cm4gbV9wdXJjaGFzZXI7IH0KIAorICAgIC8v
IE1BUks6IC0gRnJhdWQgUHJldmVudGlvbgorICAgIHN0cnVjdCBFcGhlbWVyYWxTb3VyY2VOb25j
ZSB7CisgICAgICAgIFN0cmluZyBub25jZTsKKworICAgICAgICBXRUJDT1JFX0VYUE9SVCBib29s
IGlzVmFsaWQoKSBjb25zdDsKKworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBPcHRpb25hbDxFcGhlbWVyYWxTb3VyY2VOb25jZT4gZGVjb2RlKERlY29kZXImKTsK
KyAgICB9OworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRFcGhlbWVyYWxTb3VyY2VOb25j
ZShFcGhlbWVyYWxTb3VyY2VOb25jZSYmKTsKKyAgICBPcHRpb25hbDxFcGhlbWVyYWxTb3VyY2VO
b25jZT4gZXBoZW1lcmFsU291cmNlTm9uY2UoKSBjb25zdCB7IHJldHVybiBtX2VwaGVtZXJhbFNv
dXJjZU5vbmNlOyB9OworICAgIHZvaWQgY2xlYXJFcGhlbWVyYWxTb3VyY2VOb25jZSgpIHsgbV9l
cGhlbWVyYWxTb3VyY2VOb25jZS5yZXNldCgpOyB9OworCisgICAgc3RydWN0IFNvdXJjZVVubGlu
a2FibGVUb2tlbiB7CisgICAgICAgIFN0cmluZyB0b2tlbkJhc2U2NFVSTDsKKyAgICAgICAgU3Ry
aW5nIGtleUlEQmFzZTY0VVJMOworICAgICAgICBTdHJpbmcgc2lnbmF0dXJlQmFzZTY0VVJMOwor
ICAgIH07CisKKyAgICBXRUJDT1JFX0VYUE9SVCBVUkwgdG9rZW5QdWJsaWNLZXlVUkwoKSBjb25z
dDsKKyAgICBXRUJDT1JFX0VYUE9SVCBVUkwgdG9rZW5TaWduYXR1cmVVUkwoKSBjb25zdDsKKwor
ICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxKU09OOjpPYmplY3Q+IHRva2VuU2lnbmF0dXJlSlNPTihj
b25zdCBTdHJpbmcmIHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCk7CisgICAgV0VCQ09SRV9FWFBP
UlQgT3B0aW9uYWw8U291cmNlVW5saW5rYWJsZVRva2VuPiBjYWxjdWxhdGVTb3VyY2VVbmxpbmth
YmxlVG9rZW4oY29uc3QgU3RyaW5nJiBzZXJ2ZXJSZXNwb25zZUJhc2U2NFVSTCk7CisKICAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1
cmVtZW50PiBkZWNvZGUoRGVjb2RlciYpOwogCiBwcml2YXRlOgogICAgIGJvb2wgaXNWYWxpZCgp
IGNvbnN0OworICAgIFN0cmluZyBzb3VyY2VTZWNyZXRUb2tlbihjb25zdCBTdHJpbmcmIHNlcnZl
clB1YmxpY0tleUJhc2U2NFVSTCk7CiAKICAgICBTb3VyY2VJRCBtX3NvdXJjZUlEOwogICAgIFNv
dXJjZVNpdGUgbV9zb3VyY2VTaXRlOwpAQCAtMzEwLDkgKzMxNiwxOSBAQCBwcml2YXRlOgogICAg
IFN0cmluZyBtX3B1cmNoYXNlcjsKICAgICBXYWxsVGltZSBtX3RpbWVPZkFkQ2xpY2s7CiAKLSAg
ICBPcHRpb25hbDxFcGhlbWVyYWxTb3VyY2VOb25jZT4gbV9lcGhlbWVyYWxTb3VyY2VOb25jZTsK
ICAgICBPcHRpb25hbDxBdHRyaWJ1dGlvblRyaWdnZXJEYXRhPiBtX2F0dHJpYnV0aW9uVHJpZ2dl
ckRhdGE7CiAgICAgT3B0aW9uYWw8V2FsbFRpbWU+IG1fZWFybGllc3RUaW1lVG9TZW5kOworCisg
ICAgc3RydWN0IFNvdXJjZVNlY3JldFRva2VuIHsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAg
ICAgUmV0YWluUHRyPFJTQUJTU0FUb2tlbkJsaW5kZXI+IGJsaW5kZXI7CisgICAgICAgIFJldGFp
blB0cjxSU0FCU1NBVG9rZW5XYWl0aW5nQWN0aXZhdGlvbj4gd2FpdGluZ1Rva2VuOworICAgICAg
ICBSZXRhaW5QdHI8UlNBQlNTQVRva2VuUmVhZHk+IHJlYWR5VG9rZW47CisjZW5kaWYKKyAgICB9
OworCisgICAgT3B0aW9uYWw8RXBoZW1lcmFsU291cmNlTm9uY2U+IG1fZXBoZW1lcmFsU291cmNl
Tm9uY2U7CisgICAgU291cmNlU2VjcmV0VG9rZW4gbV9zb3VyY2VTZWNyZXRUb2tlbjsKIH07CiAK
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjUxZTY2NmFhMmYwZGU4MzEzYTZhYzQwYWJkMDM3OWNlYmYzNjNlYWQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRD
b2NvYS5tbQpAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgi
CisjaW1wb3J0ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIgorCisjaW1wb3J0IDxwYWwvY29j
b2EvQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitTdHJpbmcgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNvdXJjZVNlY3JldFRva2VuKGNvbnN0
IFN0cmluZyYgc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKQoreworI2lmIEhBVkUoUlNBX0JTU0Ep
CisgICAgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gc2VydmVyUHVibGljS2V5RGF0YTsKKyAg
ICAgICAgaWYgKCFiYXNlNjRVUkxEZWNvZGUoc2VydmVyUHVibGljS2V5QmFzZTY0VVJMLCBzZXJ2
ZXJQdWJsaWNLZXlEYXRhKSkKKyAgICAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOworICAg
ICAgICBhdXRvIHNlcnZlclB1YmxpY0tleSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRX
aXRoQnl0ZXM6c2VydmVyUHVibGljS2V5RGF0YS5kYXRhKCkgbGVuZ3RoOnNlcnZlclB1YmxpY0tl
eURhdGEuc2l6ZSgpXSk7CisKKyAgICAgICAgLy8gRklYTUUoMjIyMDE4KTogQ2hlY2sgZXJyb3Iu
CisgICAgICAgIG1fc291cmNlU2VjcmV0VG9rZW4uYmxpbmRlciA9IGFkb3B0TlMoW1BBTDo6YWxs
b2NSU0FCU1NBVG9rZW5CbGluZGVySW5zdGFuY2UoKSBpbml0V2l0aFB1YmxpY0tleTpzZXJ2ZXJQ
dWJsaWNLZXkuZ2V0KCkgZXJyb3I6bnVsbHB0cl0pOworICAgICAgICBpZiAoIW1fc291cmNlU2Vj
cmV0VG9rZW4uYmxpbmRlcikKKyAgICAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOworICAg
IH0KKworICAgIC8vIEZJWE1FKDIyMjAxOCk6IENoZWNrIGVycm9yLgorICAgIG1fc291cmNlU2Vj
cmV0VG9rZW4ud2FpdGluZ1Rva2VuID0gW21fc291cmNlU2VjcmV0VG9rZW4uYmxpbmRlciB0b2tl
bldhaXRpbmdBY3RpdmF0aW9uV2l0aENvbnRlbnQ6bnVsbHB0ciBlcnJvcjpudWxscHRyXTsKKyAg
ICBpZiAoIW1fc291cmNlU2VjcmV0VG9rZW4ud2FpdGluZ1Rva2VuKQorICAgICAgICByZXR1cm4g
ZW1wdHlTdHJpbmcoKTsKKworICAgIHJldHVybiBXVEY6OmJhc2U2NFVSTEVuY29kZShbbV9zb3Vy
Y2VTZWNyZXRUb2tlbi53YWl0aW5nVG9rZW4gYmxpbmRlZE1lc3NhZ2VdLmJ5dGVzLCBbbV9zb3Vy
Y2VTZWNyZXRUb2tlbi53YWl0aW5nVG9rZW4gYmxpbmRlZE1lc3NhZ2VdLmxlbmd0aCk7CisjZWxz
ZQorICAgIFVOVVNFRF9QQVJBTShzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkwpOworICAgIHJldHVy
biBlbXB0eVN0cmluZygpOworI2VuZGlmIC8vIEhBVkUoUlNBX0JTU0EpCit9CisKK2F1dG8gUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmNhbGN1bGF0ZVNvdXJjZVVubGlua2FibGVUb2tlbihjb25z
dCBTdHJpbmcmIHNlcnZlclJlc3BvbnNlQmFzZTY0VVJMKSAtPiBPcHRpb25hbDxTb3VyY2VVbmxp
bmthYmxlVG9rZW4+Cit7CisjaWYgSEFWRShSU0FfQlNTQSkKKyAgICBpZiAoIW1fc291cmNlU2Vj
cmV0VG9rZW4ud2FpdGluZ1Rva2VuKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisg
ICAgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gc2VydmVyUmVzcG9uc2VEYXRhOworICAgICAg
ICBpZiAoIWJhc2U2NFVSTERlY29kZShzZXJ2ZXJSZXNwb25zZUJhc2U2NFVSTCwgc2VydmVyUmVz
cG9uc2VEYXRhKSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIGF1
dG8gc2VydmVyUmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVz
OnNlcnZlclJlc3BvbnNlRGF0YS5kYXRhKCkgbGVuZ3RoOnNlcnZlclJlc3BvbnNlRGF0YS5zaXpl
KCldKTsKKworICAgICAgICAvLyBGSVhNRSgyMjIwMTgpOiBDaGVjayBlcnJvci4KKyAgICAgICAg
bV9zb3VyY2VTZWNyZXRUb2tlbi5yZWFkeVRva2VuID0gW21fc291cmNlU2VjcmV0VG9rZW4ud2Fp
dGluZ1Rva2VuIGFjdGl2YXRlVG9rZW5XaXRoU2VydmVyUmVzcG9uc2U6c2VydmVyUmVzcG9uc2Uu
Z2V0KCkgZXJyb3I6bnVsbHB0cl07CisgICAgICAgIGlmICghbV9zb3VyY2VTZWNyZXRUb2tlbi5y
ZWFkeVRva2VuKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICB9CisKKyAg
ICBTb3VyY2VVbmxpbmthYmxlVG9rZW4gdG9rZW47CisgICAgdG9rZW4udG9rZW5CYXNlNjRVUkwg
PSBXVEY6OmJhc2U2NFVSTEVuY29kZShbbV9zb3VyY2VTZWNyZXRUb2tlbi5yZWFkeVRva2VuIHRv
a2VuQ29udGVudF0uYnl0ZXMsIFttX3NvdXJjZVNlY3JldFRva2VuLnJlYWR5VG9rZW4gdG9rZW5D
b250ZW50XS5sZW5ndGgpOworICAgIHRva2VuLmtleUlEQmFzZTY0VVJMID0gV1RGOjpiYXNlNjRV
UkxFbmNvZGUoW21fc291cmNlU2VjcmV0VG9rZW4ucmVhZHlUb2tlbiBrZXlJZF0uYnl0ZXMsIFtt
X3NvdXJjZVNlY3JldFRva2VuLnJlYWR5VG9rZW4ga2V5SWRdLmxlbmd0aCk7CisgICAgdG9rZW4u
c2lnbmF0dXJlQmFzZTY0VVJMID0gV1RGOjpiYXNlNjRVUkxFbmNvZGUoW21fc291cmNlU2VjcmV0
VG9rZW4ucmVhZHlUb2tlbiBzaWduYXR1cmVdLmJ5dGVzLCBbbV9zb3VyY2VTZWNyZXRUb2tlbi5y
ZWFkeVRva2VuIHNpZ25hdHVyZV0ubGVuZ3RoKTsKKworICAgIHJldHVybiB0b2tlbjsKKyNlbHNl
CisgICAgVU5VU0VEX1BBUkFNKHNlcnZlclJlc3BvbnNlQmFzZTY0VVJMKTsKKyAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworI2VuZGlmIC8vIEhBVkUoUlNBX0JTU0EpCit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcAppbmRleCA3MjliYmI3Njg4
OWNhNmIyYjc0NmE1NTI3MTE3MTdjMjg2NjFmZTAxLi5hZTZlNDBmMjY3MmQ0YTQxNDkzMmViNGEw
ZDgxNzYyMGQ5ZDUyYTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwCkBAIC0xNTcs
MTIgKzE1NywxMiBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Z2V0VG9r
ZW5QdWJsaWNLZXkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJgogICAgICAgICB9CiAKICAgICAg
ICAgLy8gRklYTUU6IFJlY2VpdmUgYW5kIGV4dHJhIHRoZSBzZXJ2ZXIgcHVibGljIGtleSwgcmRh
cjovLzczNTgyMDMyLgotICAgICAgICBnZXRTaWduZWRVbmxpbmthYmxlVG9rZW4oV1RGTW92ZShh
dHRyaWJ1dGlvbikpOworICAgICAgICBnZXRTaWduZWRTZWNyZXRUb2tlbihXVEZNb3ZlKGF0dHJp
YnV0aW9uKSwgZW1wdHlTdHJpbmcoKSk7CiAgICAgfSk7CiAKIH0KIAotdm9pZCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXI6OmdldFNpZ25lZFVubGlua2FibGVUb2tlbihQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCYmIGF0dHJpYnV0aW9uKQordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXI6OmdldFNpZ25lZFNlY3JldFRva2VuKFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYg
YXR0cmlidXRpb24sIGNvbnN0IFN0cmluZyYgdG9rZW5QdWJsaWNLZXlCYXNlNjRVUkwpCiB7CiAg
ICAgaWYgKCFmZWF0dXJlRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CkBAIC0xNzgsMjEgKzE3
OCwyMSBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Z2V0U2lnbmVkVW5s
aW5rYWJsZVRva2VuKFByaXZhdGVDbGlja01lYXN1cgogICAgIGlmICh0b2tlblNpZ25hdHVyZVVS
TC5pc0VtcHR5KCkgfHwgIXRva2VuU2lnbmF0dXJlVVJMLmlzVmFsaWQoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgYXV0byBsb2FkUGFyYW1ldGVycyA9IGdlbmVyYXRlTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnNGb3JIdHRwUG9zdChXVEZNb3ZlKHRva2VuU2lnbmF0dXJlVVJMKSwgYXR0
cmlidXRpb24udG9rZW5TaWduYXR1cmVKU09OKCksIHBjbURhdGFDYXJyaWVkKTsKKyAgICBhdXRv
IGxvYWRQYXJhbWV0ZXJzID0gZ2VuZXJhdGVOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyc0Zv
ckh0dHBQb3N0KFdURk1vdmUodG9rZW5TaWduYXR1cmVVUkwpLCBhdHRyaWJ1dGlvbi50b2tlblNp
Z25hdHVyZUpTT04odG9rZW5QdWJsaWNLZXlCYXNlNjRVUkwpLCBwY21EYXRhQ2FycmllZCk7CiAK
LSAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiQWJvdXQgdG8g
ZmlyZSBhIHVubGlua2FibGUgdG9rZW4gc2lnbmluZyByZXF1ZXN0LiIpOwotICAgIG1fbmV0d29y
a1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291
cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpMb2csICJbUHJpdmF0
ZSBDbGljayBNZWFzdXJlbWVudF0gQWJvdXQgdG8gZmlyZSBhIHVubGlua2FibGUgdG9rZW4gc2ln
bmluZyByZXF1ZXN0LiJfcyk7CisgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCwgIkFib3V0IHRvIGZpcmUgYSBzZWNyZXQgdG9rZW4gc2lnbmluZyByZXF1ZXN0LiIp
OworICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lv
bklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVs
OjpMb2csICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQWJvdXQgdG8gZmlyZSBhIHNlY3Jl
dCB0b2tlbiBzaWduaW5nIHJlcXVlc3QuIl9zKTsKIAogICAgIG1fcGluZ0xvYWRGdW5jdGlvbihX
VEZNb3ZlKGxvYWRQYXJhbWV0ZXJzKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXShj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAg
ICAgIHJldHVybjsKIAogICAgICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKSB7Ci0gICAgICAgICAg
ICB3ZWFrVGhpcy0+bV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2Uod2Vh
a1RoaXMtPm1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCwgTWVzc2FnZUxldmVsOjpFcnJvciwgbWFrZVN0cmluZygiW1ByaXZhdGUgQ2xpY2sgTWVhc3Vy
ZW1lbnRdIFJlY2VpdmVkIGVycm9yOiAnIl9zLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigp
LCAiJyBmb3IgdW5saW5rYWJsZSB0b2tlbiBzaWduaW5nIHJlcXVlc3QuIl9zKSk7CisgICAgICAg
ICAgICB3ZWFrVGhpcy0+bV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2Uo
d2Vha1RoaXMtPm1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCwgTWVzc2FnZUxldmVsOjpFcnJvciwgbWFrZVN0cmluZygiW1ByaXZhdGUgQ2xpY2sgTWVh
c3VyZW1lbnRdIFJlY2VpdmVkIGVycm9yOiAnIl9zLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlv
bigpLCAiJyBmb3Igc2VjcmV0IHRva2VuIHNpZ25pbmcgcmVxdWVzdC4iX3MpKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgLy8gRklYTUU6IFJlY2Vp
dmUgYW5kIHN0b3JlIHRoZSBzaWduZWQgdW5saW5rYWJsZSB0b2tlbiwgcmRhcjovLzczNTgyMDMy
LgorICAgICAgICAvLyBGSVhNRTogUmVjZWl2ZSBhbmQgc3RvcmUgdGhlIHNpZ25lZCBzZWNyZXQg
dG9rZW4sIHJkYXI6Ly83MzU4MjAzMi4KICAgICB9KTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyLmgKaW5kZXggNTczZjMzY2UyYzM1NjM4YzYwZGVlYTdlNGY5YTc5NjkxY2YwYzg0Mi4uMGJh
ZjliNDA2ZjEyOWU0M2NkMjFlZmEyNDFhMzY5ZWFmNzZhZGI5MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlci5oCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2b2lk
IGdldFRva2VuUHVibGljS2V5KFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYpOwotICAgIHZvaWQg
Z2V0U2lnbmVkVW5saW5rYWJsZVRva2VuKFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYpOworICAg
IHZvaWQgZ2V0U2lnbmVkU2VjcmV0VG9rZW4oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiwgY29u
c3QgU3RyaW5nJiB0b2tlblB1YmxpY0tleUJhc2U2NFVSTCk7CiAgICAgdm9pZCBjbGVhclNlbnRB
dHRyaWJ1dGlvbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmKTsKICAgICB2b2lkIGF0dHJpYnV0
ZShjb25zdCBTb3VyY2VTaXRlJiwgY29uc3QgQXR0cmlidXRlT25TaXRlJiwgQXR0cmlidXRpb25U
cmlnZ2VyRGF0YSYmKTsKICAgICB2b2lkIGZpcmVDb252ZXJzaW9uUmVxdWVzdChjb25zdCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCYpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IDc0ZTZlN2Y5NWNiYWQ0ODYwYzUxMWZjZjQ3ZDI4NjZjYjk3ODA5
NDYuLjA2MzU4YmU4MWJkZGNjNjhjYjZkNTMxMzJlNTc0Y2Q4NGZmM2ZiMjUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAyMS0wMi0xNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAg
IFBDTTogR2VuZXJhdGUgc2VjcmV0IHRva2VuIGFuZCBjb3JyZXNwb25kaW5nIHVubGlua2FibGUg
dG9rZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MjAxOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzM1ODE0MTI+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgSm9obiBXaWxhbmRlci4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgQWRkIHRlc3RzLgorCiAyMDIxLTAyLTE5ICBKaWV3ZW4gVGFuICA8
amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUENNOiBSZXF1ZXN0IHNlcnZlciBwdWJs
aWMga2V5IHRvIGdlbmVyYXRlIHNlY3JldCB0b2tlbgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLnhjY29uZmlnIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLnhjY29uZmlnCmluZGV4IDcw
YmU4YWE3NzA0M2I3NDE3N2Q0MDZkMDNjMzE0OTYzOGE5OWYxZTkuLmQzYTQ0YThhYzU3ZDA3NjBk
M2M1MmQwZWQxODk5MDViNzI1ZGIxOGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
Q29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS54Y2NvbmZpZworKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25maWcKQEAgLTU1LDYgKzU1
LDEyIEBAIFdLX1BERktJVF9MREZMQUdTX21hY29zeCA9IC1mcmFtZXdvcmsgUERGS2l0OwogV0tf
UERGS0lUX0xERkxBR1NfaXBob25lb3MgPSAtZnJhbWV3b3JrIFBERktpdDsKIFdLX1BERktJVF9M
REZMQUdTX2lwaG9uZXNpbXVsYXRvciA9IC1mcmFtZXdvcmsgUERGS2l0OwogCitXS19TWVNURU1f
TERGTEFHUyA9ICQoV0tfU1lTVEVNX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CitXS19T
WVNURU1fTERGTEFHU19tYWNvc3ggPSAtZnJhbWV3b3JrIFN5c3RlbTsKK1dLX1NZU1RFTV9MREZM
QUdTX2lwaG9uZW9zID0gJChXS19TWVNURU1fTERGTEFHU18kKFdLX0lPU18xNSkpOworV0tfU1lT
VEVNX0xERkxBR1NfaXBob25lc2ltdWxhdG9yID0gJChXS19TWVNURU1fTERGTEFHU18kKFdLX0lP
U18xNSkpOworV0tfU1lTVEVNX0xERkxBR1NfSU9TX1NJTkNFXzE1ID0gLWZyYW1ld29yayBTeXN0
ZW07CisKIFdLX0hJRF9MREZMQUdTID0gJChXS19ISURfTERGTEFHU18kKFdLX1BMQVRGT1JNX05B
TUUpKTsKIFdLX0hJRF9MREZMQUdTX21hY29zeCA9ICQoV0tfSElEX0xERkxBR1MkKFdLX01BQ09T
XzEwMTUpKTsKIFdLX0hJRF9MREZMQUdTX01BQ09TX1NJTkNFXzEwMTUgPSAtZnJhbWV3b3JrIEhJ
RDsKQEAgLTcxLDcgKzc3LDcgQEAgV0tfT1BFTkdMX0xERkxBR1NfYXBwbGV0dm9zID0gJChXS19P
UEVOR0xfTERGTEFHU19pcGhvbmVvcyk7CiBXS19PUEVOR0xfTERGTEFHU19hcHBsZXR2c2ltdWxh
dG9yID0gJChXS19PUEVOR0xfTERGTEFHU19pcGhvbmVzaW11bGF0b3IpOwogV0tfT1BFTkdMX0xE
RkxBR1NfbWFjb3N4ID0gLWZyYW1ld29yayBPcGVuR0w7CiAKLU9USEVSX0xERkxBR1MgPSAkKGlu
aGVyaXRlZCkgJChVTkVYUE9SVEVEX1NZTUJPTF9MREZMQUdTKSAtbGd0ZXN0IC1mb3JjZV9sb2Fk
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9saWJUZXN0V2ViS2l0QVBJLmEgLWZyYW1ld29yayBKYXZh
U2NyaXB0Q29yZSAtZnJhbWV3b3JrIFdlYktpdCAtbFdlYkNvcmVUZXN0U3VwcG9ydCAkKFdLX0FV
VEhLSVRfTERGTEFHUykgLWZyYW1ld29yayBOZXR3b3JrICQoV0tfUERGS0lUX0xERkxBR1MpICQo
V0tfSElEX0xERkxBR1MpICQoV0tfT1BFTkdMX0xERkxBR1MpICQoT1RIRVJfTERGTEFHU19QTEFU
Rk9STV8kKFdLX0NPQ09BX1RPVUNIKSk7CitPVEhFUl9MREZMQUdTID0gJChpbmhlcml0ZWQpICQo
VU5FWFBPUlRFRF9TWU1CT0xfTERGTEFHUykgLWxndGVzdCAtZm9yY2VfbG9hZCAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvbGliVGVzdFdlYktpdEFQSS5hIC1mcmFtZXdvcmsgSmF2YVNjcmlwdENvcmUg
LWZyYW1ld29yayBXZWJLaXQgLWxXZWJDb3JlVGVzdFN1cHBvcnQgJChXS19BVVRIS0lUX0xERkxB
R1MpIC1mcmFtZXdvcmsgTmV0d29yayAkKFdLX1NZU1RFTV9MREZMQUdTKSAkKFdLX1BERktJVF9M
REZMQUdTKSAkKFdLX0hJRF9MREZMQUdTKSAkKFdLX09QRU5HTF9MREZMQUdTKSAkKE9USEVSX0xE
RkxBR1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkpOwogT1RIRVJfTERGTEFHU19QTEFURk9S
TV8gPSAtZnJhbWV3b3JrIENvY29hIC1mcmFtZXdvcmsgQ2FyYm9uOwogCiAvLyBGSVhNRTogVGhp
cyBzaG91bGQgbm90IGJlIGJ1aWx0IG9uIGlPUy4gSW5zdGVhZCB3ZSBzaG91bGQgY3JlYXRlIGFu
ZCB1c2UgYSBUZXN0V2ViS2l0QVBJIGFwcGxpY2F0aW9uLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAzYzJmMDY4ZTFkMDhmOTBhY2IxZWMzZjBkY2YzMWNmY2JmZmQ2ODlmLi43OWNhYjIzZDk4
NGEzYTMwOGM5MDcwNDc4NDY3M2NiNGM2Njg2NjVjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNDQxLDYgKzQ0MSw3IEBACiAJCTU3QzYyNDUwMjM0NkMyMUUwMDM4M0ZFNyAvKiB3ZWItYXV0
aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3QzYyNDRGMjM0NkMxRUMwMDM4M0ZFNyAvKiB3
ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi5odG1sICovOyB9OwogCQk1N0VERkM1QzI0
NUExQTNGMDA5NTk1MjEgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYS1u
by1tb2NrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTdFREZDNUIyNDVBMThGNTAwOTU5NTIxIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1t
YWtlLWNyZWRlbnRpYWwtbGEtbm8tbW9jay5odG1sICovOyB9OwogCQk1N0VERkM2MDI0NUEyOTlD
MDA5NTk1MjEgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbGEtbm8tbW9jay5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU3RURGQzVGMjQ1QTI3OTkwMDk1OTUyMSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2Vy
dGlvbi1sYS1uby1tb2NrLmh0bWwgKi87IH07CisJCTU3RjFDOTExMjVEREQ1MTkwMEU4RjZFQSAv
KiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGMUM5MTAyNURERDUxOTAwRThGNkVBIC8qIFByaXZh
dGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gKi87IH07CiAJCTU3RjRBQUEwMjA4RkFFRjAwMEE2
OEU5RSAvKiBTU0xLZXlHZW5lcmF0b3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1N0Y0QUE5RjIwOEZBODNEMDBBNjhFOUUgLyogU1NMS2V5R2VuZXJh
dG9yLm1tICovOyB9OwogCQk1N0Y1NkE1QzFDN0Y4Q0MxMDBGMzFEN0UgLyogSXNOYXZpZ2F0aW9u
QWN0aW9uVHJ1c3RlZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3RjU2QTVCMUM3RjhBNDAwMEYzMUQ3RSAvKiBJc05hdmlnYXRpb25B
Y3Rpb25UcnVzdGVkLmh0bWwgKi87IH07CiAJCTVDMDE2MEMxMjFBMTMyNDYwMDc3RkEzMiAvKiBK
SVRFbmFibGVkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUMwMTYwQzAyMUExMzIzMjAwNzdGQTMyIC8qIEpJVEVuYWJsZWQubW0gKi87IH07CkBAIC0y
MjMzLDYgKzIyMzQsNyBAQAogCQk1N0VERkM1QjI0NUExOEY1MDA5NTk1MjEgLyogd2ViLWF1dGhl
bnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYS1uby1tb2NrLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAid2Vi
LWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYS1uby1tb2NrLmh0bWwiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1N0VERkM1RjI0NUEyNzk5MDA5NTk1MjEgLyogd2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbGEtbm8tbW9jay5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIndl
Yi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWxhLW5vLW1vY2suaHRtbCI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RjEwRDkyMUM3RTdCMzgwMEVDREYzMCAvKiBJc05hdmln
YXRpb25BY3Rpb25UcnVzdGVkLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTdGMUM5MTAyNURERDUxOTAwRThGNkVBIC8qIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dENvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0Y0QUE5RjIwOEZBODNE
MDBBNjhFOUUgLyogU1NMS2V5R2VuZXJhdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU1NM
S2V5R2VuZXJhdG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0Y1NkE1QjFD
N0Y4QTQwMDBGMzFEN0UgLyogSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5odG1sICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5odG1sOyBwYXRoID0gSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5odG1sOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzAxNjBDMDIxQTEzMjMyMDA3N0ZBMzIgLyogSklU
RW5hYmxlZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEpJVEVu
YWJsZWQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NzExLDYgKzQ3MTMsNyBA
QAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMDcxMURGNTEyMjZBOTVGQjAwM0REMkY3IC8qIEFWRm91
bmRhdGlvblNvZnRMaW5rVGVzdC5tbSAqLywKIAkJCQk3NTFCMDVENTFGOEVBQzFBMDAyOEEwOUUg
LyogRGF0YWJhc2VUcmFja2VyVGVzdC5tbSAqLywKKwkJCQk1N0YxQzkxMDI1RERENTE5MDBFOEY2
RUEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbSAqLywKIAkJCQk1NzY5QzUwQTFE
OUIwMDAxMDAwODQ3RkIgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAubW0gKi8sCiAJCQkJQTE3
OTkxODYxRTFDOTk0RTAwQTUwNUVEIC8qIFNoYXJlZEJ1ZmZlci5tbSAqLywKIAkJCQlDRDg5RDAz
ODFDNEVEQjJBMDAwNDBBMDQgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSAqLywKQEAgLTU0ODYs
NiArNTQ4OSw3IEBACiAJCQkJQTFFQzExODgxRjQyNTQxMjAwRDAxNDZFIC8qIFByZXZpZXdDb252
ZXJ0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMEMxQTQxMUFFNjAwNDQ3QzRDIC8q
IFByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTZCMEEwN0Y3MjFGQTlDMkIwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1N0YxQzkxMTI1RERENTE5MDBFOEY2RUEgLyog
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQ2NDdC
MTI2MUVCQTNCODUwMDQxRDdFRiAvKiBQcm9jZXNzRGlkVGVybWluYXRlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTQxODgyRjAzMjEwMTBDMEQwMDJGRjI4OCAvKiBQcm9jZXNzUHJlV2FybWluZy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUNEQTQ0MzhFMjFGN0E0NzcwMDM3OTQ4OSAvKiBQcm9jZXNz
U3VzcGVuZE1lZGlhQnVmZmVyaW5nLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50LmNwcAppbmRleCBiNzMyNjMzNDRmZTFmNmU5ZWIwZTQyYTI2ZTcyYzRmYjJmMzkwZjM2Li4y
NjAzMDM3ZDAyOGI5OTVjODJmZWJiYzNhYTdjN2RiYjJhNDA1MDJkIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiVGVzdC5oIgogCiAjaW5jbHVkZSA8V2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KQEAgLTMwMCw0ICszMDEsMjMgQEAgVEVT
VChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZFNvdXJjZU5vbmNlKQogICAgIEFTU0VS
VF9GQUxTRShlcGhlbWVyYWxOb25jZS5pc1ZhbGlkKCkpOwogfQogCitURVNUKFByaXZhdGVDbGlj
a01lYXN1cmVtZW50LCBJbnZhbGlkQmxpbmRlZFNlY3JldCkKK3sKKyAgICBjb25zdCBjaGFyIHNl
cnZlclB1YmxpY0tleUJhc2U2NFVSTFtdID0gIk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NB
ZzhBTUlJQ0NnS0NBZ0VBemIxZFRocnRZd1ZoNDZTakluZWdLaEFxcGJKd20xWG5UQkN2eWJTSzh6
azUzUjBBbTFoRzMzQVZGNUoxbHFZZjM2d3A2NjNHYXNjbEh0cXp2eEZaSXZEQTFEVVNINGFael9m
REhDVFR4RWVKVlBPUlMzek5OMlVqV3didG53c2g0Qm1EVGktel9jRG4wTEF6Mkp1WnlLbHlGdDVH
Z1ZMQVF2TDlIM1ZMSFU5X1hITkstdWJveVhmY0hSVHRyRG5wdTNjNnd2WDVkZC1BSm9MbUlRVFpC
RUpmVmt4Qkd6bmsxcUtIamM2bkFTQWlyS0Zfd0pDbnV3QUs4QzZCQWNqTmN3VVdDZUtwMFlFQ3pD
WFUtLUpYZDJPRVUtUWh4UEM2N2ZhaURPaDNWMHZsZnFaTHRybGJuYW5VQ0tydmh3N0dhR09HWW90
SXJuWnR1TmZ4QzE0ZF9YTlZkMUZTOG5IalJUSG5FZ3dfam5sU3NzZmdTdHowdUp0Y21rZmdvSkJ2
T0U0bUlScGk3aVNsUmZYTmtLc1dYMUotZ3djbkNWbzV1MHVKRVc2WDZOeXZFR1lKOHc1QlBmd3NR
dUs5eS00Wjdpa3Q5SU91Y0VIWTdUaERtaTlUTk5oSEJWajBHdTR3R29TanEzYTZ2TDVOMTBaU0hY
b3ExWGdmR1BybUhoaEw5MGNqdldvbm95T1hzVXFsWEV6VGpEMlc5ODk3US1NeDlCVU5yR1FQcW1J
eDhGNU13eFdjT3J5ZThXUnA0UTg4bjJZU1VuVjdDOGF5bGQzdjFGaDdONWplU3FlVm10RFZSWVRu
MnNWZk5xZ1hyemdkaWdKY1FSOHZGRU51Nm56RlB3c3JYUE1hQ2lMVW5aTlVtUTFaU0xRZVF5aFlY
eEhxUkpybnVDRFdYTGtDQXdFQUFRIjsKKworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IHBj
bTsKKyAgICBhdXRvIHNvdXJjZVNlY3JldFRva2VuID0gcGNtLnRva2VuU2lnbmF0dXJlSlNPTihz
ZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkwpOworICAgIEVYUEVDVF9FUShzb3VyY2VTZWNyZXRUb2tl
bi0+YXNPYmplY3QoKS0+c2l6ZSgpLCAwdWwpOworCisgICAgYXV0byBlcGhlbWVyYWxOb25jZSA9
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZSB7ICJBQkNERUZh
YmNkZWYwMTIzNDU2Nzg5Il9zIH07CisgICAgRVhQRUNUX1RSVUUoZXBoZW1lcmFsTm9uY2UuaXNW
YWxpZCgpKTsKKyAgICBwY20uc2V0RXBoZW1lcmFsU291cmNlTm9uY2UoV1RGTW92ZShlcGhlbWVy
YWxOb25jZSkpOworCisgICAgc291cmNlU2VjcmV0VG9rZW4gPSBwY20udG9rZW5TaWduYXR1cmVK
U09OKHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCk7CisgICAgRVhQRUNUX0VRKHNvdXJjZVNlY3Jl
dFRva2VuLT5hc09iamVjdCgpLT5zaXplKCksIDR1bCk7CisKKyAgICBhdXRvIHBlcnNpc3RlbnRU
b2tlbiA9IHBjbS5jYWxjdWxhdGVTb3VyY2VVbmxpbmthYmxlVG9rZW4oZW1wdHlTdHJpbmcoKSk7
CisgICAgRVhQRUNUX0ZBTFNFKHBlcnNpc3RlbnRUb2tlbik7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2Eu
bW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNGU1ZDVmYjZkMTgyMTc1OTgwNzA1ODcyOGFmYjg1ZGNiMDJiYmYxNgot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2Nv
YS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tCkBAIC0wLDAgKzEsMTA4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRlc3QuaCIKKworI2lmIEhB
VkUoUlNBX0JTU0EpCisKKyNpbmNsdWRlIDxTZWN1cml0eS9TZWNLZXlQcml2Lmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oPgorCitleHRlcm4gIkMiIHsKKyNp
bmNsdWRlIDxjb3JlY3J5cHRvL2NjX3ByaXYuaD4KKyNpbmNsdWRlIDxjb3JlY3J5cHRvL2Njcm5n
Lmg+CisjaW5jbHVkZSA8Y29yZWNyeXB0by9jY3JzYS5oPgorI2luY2x1ZGUgPGNvcmVjcnlwdG8v
Y2Nyc2Fic3NhLmg+Cit9CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSSB7CisKK1RFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIFZhbGlkQmxp
bmRlZFNlY3JldCkKK3sKKyAgICBhdXRvIGVwaGVtZXJhbE5vbmNlID0gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlIHsgIkFCQ0RFRmFiY2RlZjAxMjM0NTY3ODki
X3MgfTsKKyAgICBFWFBFQ1RfVFJVRShlcGhlbWVyYWxOb25jZS5pc1ZhbGlkKCkpOworCisgICAg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgcGNtOworICAgIHBjbS5zZXRFcGhlbWVyYWxTb3VyY2VO
b25jZShXVEZNb3ZlKGVwaGVtZXJhbE5vbmNlKSk7CisKKyAgICAvLyBHZW5lcmF0ZSB0aGUgc2Vy
dmVyIGtleSBwYWlyLgorICAgIHNpemVfdCBtb2R1bHVzTkJpdHMgPSA0MDk2OworICAgIGludCBl
cnJvciA9IDA7CisKKyAgICBzdHJ1Y3QgY2Nybmdfc3RhdGUqIHJuZyA9IGNjcm5nKCZlcnJvcik7
CisgICAgRVhQRUNUX0VRKGVycm9yLCBDQ0VSUl9PSyk7CisKKyAgICBjb25zdCB1aW50OF90IGVb
XSA9IHsgMHgxLCAweDAwLCAweDAxIH07CisgICAgY2Nyc2FfZnVsbF9jdHhfZGVjbChjY25fc2l6
ZW9mKG1vZHVsdXNOQml0cyksIHJzYVByaXZhdGVLZXkpOworICAgIGVycm9yID0gY2Nyc2FfZ2Vu
ZXJhdGVfa2V5KG1vZHVsdXNOQml0cywgcnNhUHJpdmF0ZUtleSwgc2l6ZW9mKGUpLCBlLCBybmcp
OworICAgIEVYUEVDVF9FUShlcnJvciwgQ0NFUlJfT0spOworCisgICAgY2Nyc2FfcHViX2N0eF90
IHJzYVB1YmxpY0tleSA9IGNjcnNhX2N0eF9wdWJsaWMocnNhUHJpdmF0ZUtleSk7CisgICAgc2l6
ZV90IG1vZHVsdXNOQnl0ZXMgPSBjY19jZWlsaW5nKGNjcnNhX3B1YmtleWxlbmd0aChyc2FQdWJs
aWNLZXkpLCA4KTsKKworICAgIGNvbnN0IHN0cnVjdCBjY3JzYWJzc2FfY2lwaGVyc3VpdGUgKmNp
cGhlcnN1aXRlID0gJmNjcnNhYnNzYV9jaXBoZXJzdWl0ZV9yc2E0MDk2X3NoYTM4NDsKKworICAg
IHNpemVfdCBleHBvcnRTaXplID0gY2NkZXJfZW5jb2RlX3JzYV9wdWJfc2l6ZShyc2FQdWJsaWNL
ZXkpOworICAgIGF1dG8gcHVibGljS2V5ID0gYWRvcHROUyhbW05TTXV0YWJsZURhdGEgYWxsb2Nd
IGluaXRXaXRoTGVuZ3RoOmV4cG9ydFNpemVdKTsKKyAgICBjY2Rlcl9lbmNvZGVfcnNhX3B1Yihy
c2FQdWJsaWNLZXksIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihbcHVibGljS2V5IG11dGFibGVCeXRl
c10pLCBzdGF0aWNfY2FzdDx1aW50OF90Kj4oW3B1YmxpY0tleSBtdXRhYmxlQnl0ZXNdKSArIFtw
dWJsaWNLZXkgbGVuZ3RoXSk7CisKKyAgICBhdXRvIHNlY0tleSA9IGFkb3B0Q0YoU2VjS2V5Q3Jl
YXRlV2l0aERhdGEoKF9fYnJpZGdlIENGRGF0YVJlZilwdWJsaWNLZXkuZ2V0KCksIChfX2JyaWRn
ZSBDRkRpY3Rpb25hcnlSZWYpQHsKKyAgICAgICAgKF9fYnJpZGdlIGlkKWtTZWNBdHRyS2V5VHlw
ZTogKF9fYnJpZGdlIGlkKWtTZWNBdHRyS2V5VHlwZVJTQSwKKyAgICAgICAgKF9fYnJpZGdlIGlk
KWtTZWNBdHRyS2V5Q2xhc3M6IChfX2JyaWRnZSBpZClrU2VjQXR0cktleUNsYXNzUHVibGljCisg
ICAgfSwgbmlsKSk7CisgICAgRVhQRUNUX05PVF9OVUxMKHNlY0tleSk7CisKKyAgICBhdXRvIHNw
a2lEYXRhID0gYWRvcHRDRihTZWNLZXlDb3B5U3ViamVjdFB1YmxpY0tleUluZm8oc2VjS2V5Lmdl
dCgpKSk7CisgICAgYXV0byAqbnNTcGtpRGF0YSA9IChfX2JyaWRnZSBOU0RhdGEgKilzcGtpRGF0
YS5nZXQoKTsKKworICAgIC8vIENvbnRpbnVlIHRoZSB0ZXN0LgorICAgIGF1dG8gc291cmNlU2Vj
cmV0VG9rZW4gPSBwY20udG9rZW5TaWduYXR1cmVKU09OKFdURjo6YmFzZTY0VVJMRW5jb2RlKG5z
U3BraURhdGEuYnl0ZXMsIG5zU3BraURhdGEubGVuZ3RoKSk7CisgICAgRVhQRUNUX0VRKHNvdXJj
ZVNlY3JldFRva2VuLT5hc09iamVjdCgpLT5zaXplKCksIDR1bCk7CisgICAgRVhQRUNUX1NUUkVR
KHNvdXJjZVNlY3JldFRva2VuLT5nZXRTdHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5cGUiX3Mp
LnV0ZjgoKS5kYXRhKCksICJjbGljayIpOworICAgIEVYUEVDVF9TVFJFUShzb3VyY2VTZWNyZXRU
b2tlbi0+Z2V0U3RyaW5nKCJzb3VyY2Vfbm9uY2UiX3MpLnV0ZjgoKS5kYXRhKCksICJBQkNERUZh
YmNkZWYwMTIzNDU2Nzg5Iik7CisgICAgRVhQRUNUX0ZBTFNFKHNvdXJjZVNlY3JldFRva2VuLT5n
ZXRTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW4iX3MpLmlzRW1wdHkoKSk7CisgICAgRVhQRUNU
X0VRKHNvdXJjZVNlY3JldFRva2VuLT5nZXRJbnRlZ2VyKCJ2ZXJzaW9uIl9zKSwgMik7CisKKyAg
ICAvLyBHZW5lcmF0ZSB0aGUgc2lnbmF0dXJlLgorICAgIFZlY3Rvcjx1aW50OF90PiBibGluZGVk
TWVzc2FnZTsKKyAgICBiYXNlNjRVUkxEZWNvZGUoc291cmNlU2VjcmV0VG9rZW4tPmdldFN0cmlu
Zygic291cmNlX3NlY3JldF90b2tlbiJfcyksIGJsaW5kZWRNZXNzYWdlKTsKKworICAgIGF1dG8g
YmxpbmRlZFNpZ25hdHVyZSA9IGFkb3B0TlMoW1tOU011dGFibGVEYXRhIGFsbG9jXSBpbml0V2l0
aExlbmd0aDogbW9kdWx1c05CeXRlc10pOworICAgIGNjcnNhYnNzYV9zaWduX2JsaW5kZWRfbWVz
c2FnZShjaXBoZXJzdWl0ZSwgcnNhUHJpdmF0ZUtleSwgYmxpbmRlZE1lc3NhZ2UuZGF0YSgpLCBi
bGluZGVkTWVzc2FnZS5zaXplKCksIHN0YXRpY19jYXN0PHVpbnQ4X3QgKj4oW2JsaW5kZWRTaWdu
YXR1cmUgbXV0YWJsZUJ5dGVzXSksIFtibGluZGVkU2lnbmF0dXJlIGxlbmd0aF0sIHJuZyk7CisK
KyAgICAvLyBDb250aW51ZSB0aGUgdGVzdC4KKyAgICBhdXRvIHBlcnNpc3RlbnRUb2tlbiA9IHBj
bS5jYWxjdWxhdGVTb3VyY2VVbmxpbmthYmxlVG9rZW4oV1RGOjpiYXNlNjRVUkxFbmNvZGUoW2Js
aW5kZWRTaWduYXR1cmUgYnl0ZXNdLCBbYmxpbmRlZFNpZ25hdHVyZSBsZW5ndGhdKSk7CisgICAg
RVhQRUNUX1RSVUUocGVyc2lzdGVudFRva2VuKTsKKyAgICBFWFBFQ1RfRkFMU0UocGVyc2lzdGVu
dFRva2VuLT50b2tlbkJhc2U2NFVSTC5pc0VtcHR5KCkpOworICAgIEVYUEVDVF9GQUxTRShwZXJz
aXN0ZW50VG9rZW4tPmtleUlEQmFzZTY0VVJMLmlzRW1wdHkoKSk7CisgICAgRVhQRUNUX0ZBTFNF
KHBlcnNpc3RlbnRUb2tlbi0+c2lnbmF0dXJlQmFzZTY0VVJMLmlzRW1wdHkoKSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIEVIQVZFKFJTQV9CU1NBKQo=
</data>
<flag name="commit-queue"
          id="439667"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420952</attachid>
            <date>2021-02-19 03:29:20 -0800</date>
            <delta_ts>2021-02-19 11:09:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222019-20210219032919.patch</filename>
            <type>text/plain</type>
            <size>50345</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJmZDcxYjc4YzVmNThiMjMwZjYwOTg4
N2E1MDM4ZjRmYjk5NTdkZjIuLjdkMzYxMzZlYjI0YmRiYTc3NTc2ODlmZjM2YTdjNGY0NzRmNTUz
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5f
dGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQg
Y29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcz
NTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2lsYW5kZXIuCisKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1IYXZlLmg6CisgICAgICAgIEFkZHMgYSBjb21waWxlIHRpbWUgZmxhZyBm
b3IgUlNBQlNTQS4KKwogMjAyMS0wMi0xOCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIGV4cGVyaW1lbnRhbCBzdXBwb3J0IGZvciBDU1MgQ29sb3IgNSBSZWxh
dGl2ZSBDb2xvciBTeW50YXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3Njk4MGM0NGM5ZmIwNjAzZTAyZWY3NGY0
NDk1OTU1NDYyY2ZlMWYwLi45YmNhNDE5Y2MwNmVkYjc0ZmQwMmNkMDY1ZGI0ZjRhNzRhZDQyZWNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxq
aWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tl
biBhbmQgY29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzczNTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2lsYW5kZXIuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBBUEkgdGVzdHMuCisKKyAgICAgICAgVGhpcyBwYXRjaCB1dGlsaXpl
cyBSU0FCU1NBIHRvIGdlbmVyYXRlIHNlY3JldCB0b2tlbiBmb3IgUENNIGZyYXVkIHByZXZlbnRp
b24uCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnOgorICAgICAg
ICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICBQYXBlcndvcmsgdG8gbGluayBDcnlwdG9LaXRDQnJpZGdpbmcu
CisKKyAgICAgICAgKiBsb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNl
Ojppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpzZXRFcGhlbWVyYWxTb3VyY2VOb25jZSk6CisgICAgICAgICogbG9hZGVyL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6YXR0cmlidXRlT25TaXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjplcGhlbWVyYWxTb3VyY2VOb25jZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y2xlYXJFcGhlbWVyYWxTb3VyY2VOb25j
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFs
U291cmNlTm9uY2U6OkVwaGVtZXJhbFNvdXJjZU5vbmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNW
YWxpZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6c2V0RXBoZW1lcmFsU291cmNlTm9uY2UpOiBEZWxldGVkLgorICAgICAgICBHcm91
cHMgZnVuY3Rpb25hbGl0aWVzIGJlaGluZCBIQVZFX1JTQV9CU1NBLgorCisgICAgICAgICogbG9h
ZGVyL2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW06IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmJsaW5kZWRTZWNyZXRKc29uKToK
KyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpjYWxjdWxhdGVQZXJz
aXN0ZW50QmxpbmRlZFRva2VuKToKKyAgICAgICAgSW50cm9kdWNlcyBuZXcgbWV0aG9kcyB0byBn
ZW5lcmF0ZSB0aGUgYmxpbmRlZCBzZWNyZXRzIGFuZCB1bmxpbmthYmxlIHRva2Vucy4KKwogMjAy
MS0wMi0xOSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFBD
TTogUmVxdWVzdCBzZXJ2ZXIgcHVibGljIGtleSB0byBnZW5lcmF0ZSBzZWNyZXQgdG9rZW4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1IYXZlLmgKaW5kZXggMDQ4NmZjZTJjNDE4NmQyZDhiZjI1OTEyNTU5NmU4NjM5Y2Qz
NDUxMS4uZGExNWZkN2RlN2VlNWM4YWFmMDM0OWZmMTAyOGY3MmU1Njk1NGFmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxh
dGZvcm1IYXZlLmgKQEAgLTg4OCwzICs4ODgsOCBAQAogI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDAKICNkZWZpbmUgSEFWRV9TVEFU
SUNfRk9OVF9SRUdJU1RSWSAxCiAjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwKSBcCisgICAgfHwgKFBMQVRGT1JN
KElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTUwMDAwKQorI2Rl
ZmluZSBIQVZFX1JTQV9CU1NBIDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BB
TC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJlZGJjYzljMDM4ODc1ZWFlNDAyY2E1
ZDU3OTU0OGRhMDdjZTc0NmUuLjg4NDkwZTBkOTk3MjdhODc5NjVlYjVjYTBhOGU2MjBiMGE0ZjFk
ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTEzOCw2ICsxMzgsOCBAQAogCQk1NzBBQjhGOTIwQUY2RTNEMDBCOEJFODcgLyog
TlNYUENDb25uZWN0aW9uU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzBBQjhGODIwQUY2RTNEMDBCOEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJ
LmggKi87IH07CiAJCTU3MkExMDc4MjJCNDU2RjUwMEY0MTBDOCAvKiBBdXRoS2l0U1BJLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJBMTA3NzIyQjQ1
NkY1MDBGNDEwQzggLyogQXV0aEtpdFNQSS5oICovOyB9OwogCQk1NzZDQTlENjIyQjg1NEFCMDAz
MDE0M0MgLyogQXBwU1NPU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzZDQTlENTIyQjg1NEFCMDAzMDE0M0MgLyogQXBwU1NPU1BJLmggKi87IH07
CisJCTU3RjFDOTA5MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGMUM5
MDcyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmggKi87IH07
CisJCTU3RjFDOTBBMjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RjFD
OTA4MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbSAqLzsg
fTsKIAkJNTdGRDMxOEEyMkIzNTkzRTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGRDMxODkyMkIzNTkz
RTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLm1tICovOyB9OwogCQk1N0ZEMzE4QjIyQjM1OTg5
MDA4RDBFOEIgLyogQXBwU1NPU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3RkQzMTg4MjJCMzU5MkYwMDhEMEU4QiAvKiBBcHBTU09Tb2Z0
TGluay5oICovOyB9OwogCQk1QzdDNzg3MzIzQUMzRTc3MDA2NUY0N0UgLyogTWFuYWdlZENvbmZp
Z3VyYXRpb25Tb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUM3Qzc4NzEyM0FDM0U3NzAwNjVGNDdFIC8qIE1hbmFnZWRDb25maWd1cmF0aW9u
U29mdExpbmsuaCAqLzsgfTsKQEAgLTM0MSw2ICszNDMsOCBAQAogCQk1NzBBQjhGODIwQUY2RTNE
MDBCOEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TWFBDQ29u
bmVjdGlvblNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJBMTA3NzIyQjQ1
NkY1MDBGNDEwQzggLyogQXV0aEtpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoS2l0U1BJLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NkNBOUQ1MjJCODU0QUIwMDMwMTQzQyAv
KiBBcHBTU09TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwU1NPU1BJLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTU3RjFDOTA3MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJp
ZGdpbmdTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0YxQzkwODI1RENGMENGMDBFOEY2
RUEgLyogQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTdGRDMxODgyMkIzNTkyRjAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcFNTT1NvZnRMaW5rLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU3RkQzMTg5MjJCMzU5M0UwMDhEMEU4QiAvKiBBcHBTU09Tb2Z0
TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFwcFNTT1Nv
ZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzdDNzg3MTIzQUMzRTc3
MDA2NUY0N0UgLyogTWFuYWdlZENvbmZpZ3VyYXRpb25Tb2Z0TGluay5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNYW5hZ2VkQ29uZmlndXJhdGlvblNvZnRMaW5rLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02OTEsNiArNjk1LDggQEAKIAkJCQk1N0ZEMzE4OTIy
QjM1OTNFMDA4RDBFOEIgLyogQXBwU1NPU29mdExpbmsubW0gKi8sCiAJCQkJMDc3RTg3QjAyMjZB
NDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLmggKi8sCiAJCQkJMDc3RTg3QUYy
MjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLm1tICovLAorCQkJCTU3RjFD
OTA3MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oICovLAor
CQkJCTU3RjFDOTA4MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5tbSAqLywKIAkJCQlGNDQyOTE2NjFGQTUyNzA1MDAyQ0M5M0UgLyogRmlsZVNpemVGb3JtYXR0
ZXJDb2NvYS5tbSAqLywKIAkJCQkxQzAyMkVGQzIyQ0ZFOEUwMDA2REYwMUIgLyogR3VuemlwLmNw
cCAqLywKIAkJCQlDREFDQjM1RTIzODczRTQ4MDAxOEQ3Q0UgLyogTWVkaWFUb29sYm94U29mdExp
bmsuY3BwICovLApAQCAtODI4LDYgKzgzNCw3IEBACiAJCQkJMUNDRUU0RjUyMEQ4NzE5MzAwNDdC
MDk3IC8qIENvcmVVSVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MTkxRjQzQTRDNzAw
MkVBQzAyIC8qIENvcmVVSVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUMwOUQwNTMxRTMxQzQ0
MTAwNzI1RjE4IC8qIENyeXB0b0RpZ2VzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTdGMUM5MDky
NURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwQzJEQTE0MTFGM0JFQjQ5MDBEQkMzMTcgLyogRGF0YURldGVjdG9yc0NvcmVT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NThBMUY0NTEzMEYwMEY0RUJCNiAvKiBEYXRh
RGV0ZWN0b3JzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzVBRjkxQTFGNDNBNEM3MDAyRUFD
MDIgLyogRGF0YURldGVjdG9yc1VJU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTEwMzcsNiArMTA0
NCw3IEBACiAJCQkJMENGOTlDQTgxRjczODQzNzAwN0VFNzkzIC8qIENvcmVNZWRpYVNvZnRMaW5r
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDNzdDOEM5MjVENzk3MjAwMDYzNUUwQyAvKiBDb3Jl
VGV4dFNvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDMDlEMDU2MUUzMUM0NjUwMDcy
NUYxOCAvKiBDcnlwdG9EaWdlc3RDb21tb25DcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTdGMUM5MEEyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTExNzVCNTgxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRT
ZWFyY2hQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNDQyOTE2NDFGQTUyNjcwMDAy
Q0M5M0UgLyogRmlsZVNpemVGb3JtYXR0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ0Mjkx
NjgxRkE1MjcwNTAwMkNDOTNFIC8qIEZpbGVTaXplRm9ybWF0dGVyQ29jb2EubW0gaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRvS2l0
Q0JyaWRnaW5nU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRv
S2l0Q0JyaWRnaW5nU29mdExpbmsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTkwZDRmZTVmM2FlZTNhNjM4YWJl
MDE1MmM0NjUwMzM5MzA5ZjY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oCkBAIC0wLDAgKzEsMzcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEhBVkUoUlNBX0JTU0EpCisKKyNpbXBv
cnQgPENyeXB0b0tpdENCcmlkZ2luZy9SU0FCU1NBLmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtp
bmcuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfSEVBREVSKFBBTCwgQ3J5cHRvS2l0Q0Jy
aWRnaW5nKTsKKworU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBSU0FCU1NBVG9rZW5C
bGluZGVyKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Nv
Y29hL0NyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWJjNzVh
Y2MzZGQ3NDQ4ZDBhMTA5NTc4ZGJmMzAyMjRkNzJiNDlhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbQpA
QCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYg
SEFWRShSU0FfQlNTQSkKKworI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisKK1NPRlRfTElO
S19QUklWQVRFX0ZSQU1FV09SS19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ3J5cHRvS2l0
Q0JyaWRnaW5nLCBQQUxfRVhQT1JUKTsKKworU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDcnlwdG9LaXRDQnJpZGdpbmcsIFJTQUJTU0FUb2tlbkJsaW5kZXIsIFBB
TF9FWFBPUlQpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXND
b2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGJmNmFlMTYx
ODdhYmEwNzE1NzJkYTA3OTIzYWMzMzBiMjI4ZjY5YzUuLjlkYTUyMWE3YTVkNDY0YTg0MjA5YzNj
YjAwOWRkOWExYWVhNjBmMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2Nv
YS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMTY4LDYgKzE2
OCw3IEBAIGluc3BlY3Rvci9tYWMvUGFnZURlYnVnZ2VyTWFjLm1tCiBsb2FkZXIvYXJjaGl2ZS9j
Zi9MZWdhY3lXZWJBcmNoaXZlLmNwcAogbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2
ZU1hYy5tbQogbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5tbQorbG9hZGVyL2Nv
Y29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0KIGxvYWRlci9jb2NvYS9TdWJyZXNv
dXJjZUxvYWRlckNvY29hLm1tCiBsb2FkZXIvaW9zL0xlZ2FjeVByZXZpZXdMb2FkZXIubW0KIGxv
YWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGQxZmZmZWJlZmVmMjBjNjBjOTA1
MDliYWM3MWY0MjNiNDNhNmM0Ni4uMjI0OGU3N2M4Y2M3NDY5ZmI3MGE1YmYxYzljOWRlYzkzZDZh
NDhmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtOTQxNiw2ICs5NDE2LDcgQEAKIAkJNTdFRUFBNTcxRUEwQUZCQjAwNzAxMTI0
IC8qIENvbW1vbkNyeXB0b0RFUlV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDb21tb25DcnlwdG9ERVJVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1N0VGNUU1RjFEMjBDODM5MDAxNzFFNjAgLyogVGV4dENvZGVjUmVw
bGFjZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENvZGVjUmVw
bGFjZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdFRjVFNjExRDIwRDI4
NzAwMTcxRTYwIC8qIFRleHRDb2RlY1JlcGxhY2VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRDb2RlY1JlcGxhY2VtZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTdGMUM4RTMyNURDNkVFNzAwRThGNkVBIC8qIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1N0Y4MjczOTFEQjcyQzIyMDA5RDJCRjQgLyogUnNhSGFzaGVkS2V5R2VuUGFy
YW1zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBSc2FIYXNoZWRLZXlHZW5QYXJhbXMuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1N0ZFREQzRDFEQjZENDdGMDBFQjk2RjUgLyogUnNhS2V5R2VuUGFyYW1z
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBSc2FLZXlHZW5QYXJhbXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1N0ZFREQzRTFEQjZENTkyMDBFQjk2RjUgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2Vu
UGFyYW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRo
bVJzYUtleUdlblBhcmFtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTczMSw3
ICs5NzMyLDcgQEAKIAkJNkEyMkU4NzIxRjEwNDJDNDAwRjU0NkMzIC8qIEluc3BlY3RvckNhbnZh
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JDYW52YXMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2QTcyNzk4ODFGMTZDMjlCMDAzRjM5QjggLyogSW5zcGVjdG9y
U2hhZGVyUHJvZ3JhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0
b3JTaGFkZXJQcm9ncmFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZBNzI3OTg5
MUYxNkMyOUIwMDNGMzlCOCAvKiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvclNoYWRlclByb2dyYW0uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QjBBMDdGMDIxRkE0QjVDMDBENTczOTEgLyog
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkIwQTA3RjAyMUZBNEI1
QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTZCMEEwN0YxMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCMUY0ODBGMjI5ODlFQzQwMERF
OEI4MiAvKiBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNkI0RDQxMkIyMzk4M0Y4ODAwMjQ5NEMyIC8qIExvZ2dlZEluU3RhdHVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IExvZ2dlZEluU3RhdHVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yMjk0OSw2ICsyMjk1MCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk3RURBQUZDODE5
QTJDQkQxMDAzNERGRDEgLyogRGlza0NhY2hlTW9uaXRvckNvY29hLmggKi8sCiAJCQkJN0U0REUx
MEMxOThCMTBCNjAwNTFDQjAyIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSAqLywKKwkJCQk1
N0YxQzhFMzI1REM2RUU3MDBFOEY2RUEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5t
bSAqLywKIAkJCQk3RThGQURDMzE5OUE5NUIxMDA3MTQ5NjggLyogU3VicmVzb3VyY2VMb2FkZXJD
b2NvYS5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gY29jb2E7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAppbmRleCA4YTk3M2YwMzQ1NDQ1
NDc1NGQwMTk1NGFmM2ZhZjhiOGZhZGI1OGNkLi5hNDYyMjA0ODk1ZTdmZThjYWNjMWU2MDhkYzdi
MjE4ZDRkMGI3YjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUcmlnZ2VyQXR0cmli
dXRpb25QYXRoW10gPSAiLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvdHJp
Z2dlci1hdHRyaWJ1dGlvbi8iOwotc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRUb2tlblNpZ25hdHVyZVBhdGhbXSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC9zaWduLXVubGlua2FibGUtdG9rZW4vIjsKK3N0YXRpYyBjb25zdCBjaGFyIHBy
aXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVQYXRoW10gPSAiLy53ZWxsLWtub3du
L3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvc2lnbi1zZWNyZXQtdG9rZW4vIjsKIHN0YXRpYyBj
b25zdCBjaGFyIHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlQYXRoW10gPSAi
Ly53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvZ2V0LXVubGlua2FibGUtdG9r
ZW4tcHVibGljLWtleS8iOwogc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRSZXBvcnRBdHRyaWJ1dGlvblBhdGhbXSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC9yZXBvcnQtYXR0cmlidXRpb24vIjsKIGNvbnN0IHNpemVfdCBwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHJpZ2dlckRhdGFQYXRoU2VnbWVudFNpemUgPSAyOwpA
QCAtMTE2LDE1ICsxMTYsMTUgQEAgYm9vbCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6aGFzSGln
aGVyUHJpb3JpdHlUaGFuKGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW4KICAgICByZXR1cm4g
bV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhLT5wcmlvcml0eSA+IG90aGVyLm1fYXR0cmlidXRpb25U
cmlnZ2VyRGF0YS0+cHJpb3JpdHk7CiB9CiAKLVVSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
dG9rZW5TaWduYXR1cmVVUkwoKSBjb25zdAorVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojph
dHRyaWJ1dGlvblJlcG9ydFVSTCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2VwaGVtZXJhbFNvdXJj
ZU5vbmNlIHx8ICFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5pc1ZhbGlkKCkpCisgICAgaWYgKCFp
c1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBVUkwoKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImh0dHBzOi8vIik7CiAgICAgYnVpbGRl
ci5hcHBlbmQobV9zb3VyY2VTaXRlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKLSAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVy
ZVBhdGgpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbChwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFJlcG9ydEF0dHJpYnV0aW9uUGF0aCk7CiAKICAgICBVUkwgdXJsIHsgVVJMKCksIGJ1aWxkZXIu
dG9TdHJpbmcoKSB9OwogICAgIGlmICh1cmwuaXNWYWxpZCgpKQpAQCAtMTMzLDEyICsxMzMsNTEg
QEAgVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojp0b2tlblNpZ25hdHVyZVVSTCgpIGNvbnN0
CiAgICAgcmV0dXJuIFVSTCgpOwogfQogCi1VUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRv
a2VuUHVibGljS2V5VVJMKCkgY29uc3QKK1JlZjxKU09OOjpPYmplY3Q+IFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydEpTT04oKSBjb25zdAoreworICAgIGF1dG8gcmVw
b3J0RGV0YWlscyA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CisgICAgaWYgKCFtX2F0dHJpYnV0
aW9uVHJpZ2dlckRhdGEgfHwgIWlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIHJlcG9ydERldGFp
bHM7CisKKyAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5
cGUiX3MsICJjbGljayJfcyk7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vf
c2l0ZSJfcywgbV9zb3VyY2VTaXRlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKKyAgICBy
ZXBvcnREZXRhaWxzLT5zZXRJbnRlZ2VyKCJzb3VyY2VfaWQiX3MsIG1fc291cmNlSUQuaWQpOwor
ICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygiYXR0cmlidXRlZF9vbl9zaXRlIl9zLCBtX2F0
dHJpYnV0ZU9uU2l0ZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7CisgICAgcmVwb3J0RGV0
YWlscy0+c2V0SW50ZWdlcigidHJpZ2dlcl9kYXRhIl9zLCBtX2F0dHJpYnV0aW9uVHJpZ2dlckRh
dGEtPmRhdGEpOworICAgIHJlcG9ydERldGFpbHMtPnNldEludGVnZXIoInZlcnNpb24iX3MsIDEp
OworICAgIHJldHVybiByZXBvcnREZXRhaWxzOworfQorCisvLyBNQVJLOiAtIEZyYXVkIFByZXZl
bnRpb24KKworc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBFcGhlbWVyYWxTb3VyY2VOb25jZVJl
cXVpcmVkTnVtYmVyT2ZCeXRlcyA9IDE2OworCitib29sIFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNWYWxpZCgpIGNvbnN0CiB7CisgICAgLy8gRklYTUU6
IEludmVzdGlnYXRlIGlmIHdlIGNhbiBkbyB3aXRoIGEgc2ltcGxlIGxlbmd0aCBjaGVjayBpbnN0
ZWFkIG9mIGRlY29kaW5nLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjE5NDUKKyAgICBWZWN0b3I8dWludDhfdD4gZGlnZXN0OworICAgIGlmICghYmFz
ZTY0VVJMRGVjb2RlKG5vbmNlLCBkaWdlc3QpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIGRpZ2VzdC5zaXplKCkgPT0gRXBoZW1lcmFsU291cmNlTm9uY2VSZXF1aXJlZE51bWJl
ck9mQnl0ZXM7Cit9CisKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNldEVwaGVtZXJh
bFNvdXJjZU5vbmNlKEVwaGVtZXJhbFNvdXJjZU5vbmNlJiYgbm9uY2UpCit7CisgICAgaWYgKCFu
b25jZS5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBtX2VwaGVtZXJhbFNvdXJjZU5v
bmNlID0gV1RGTW92ZShub25jZSk7Cit9CisKK1VSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
dG9rZW5TaWduYXR1cmVVUkwoKSBjb25zdAoreworICAgIGlmICghbV9lcGhlbWVyYWxTb3VyY2VO
b25jZSB8fCAhbV9lcGhlbWVyYWxTb3VyY2VOb25jZS0+aXNWYWxpZCgpKQorICAgICAgICByZXR1
cm4gVVJMKCk7CisKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJodHRwczovLyIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1fc291cmNlU2l0ZS5y
ZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKHBy
aXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlQYXRoKTsKKyAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVBhdGgpOwog
CiAgICAgVVJMIHVybCB7IFVSTCgpLCBidWlsZGVyLnRvU3RyaW5nKCkgfTsKICAgICBpZiAodXJs
LmlzVmFsaWQoKSkKQEAgLTE0NywyOCArMTg2LDEyIEBAIFVSTCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6dG9rZW5QdWJsaWNLZXlVUkwoKSBjb25zdAogICAgIHJldHVybiBVUkwoKTsKIH0KIAot
UmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRva2VuU2lnbmF0dXJl
SlNPTigpIGNvbnN0Ci17Ci0gICAgYXV0byByZXBvcnREZXRhaWxzID0gSlNPTjo6T2JqZWN0Ojpj
cmVhdGUoKTsKLSAgICBpZiAoIW1fZXBoZW1lcmFsU291cmNlTm9uY2UgfHwgIW1fZXBoZW1lcmFs
U291cmNlTm9uY2UtPmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7Ci0K
LSAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5cGUiX3Ms
ICJjbGljayJfcyk7Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vfbm9uY2Ui
X3MsIG1fZXBoZW1lcmFsU291cmNlTm9uY2UtPm5vbmNlKTsKLSAgICByZXBvcnREZXRhaWxzLT5z
ZXRTdHJpbmcoInVubGlua2FibGVfdG9rZW4iX3MsICJUT0RPIl9zKTsKLSAgICByZXBvcnREZXRh
aWxzLT5zZXRJbnRlZ2VyKCJ2ZXJzaW9uIl9zLCAyKTsKLSAgICByZXR1cm4gcmVwb3J0RGV0YWls
czsKLX0KLQotVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydFVS
TCgpIGNvbnN0CitVUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRva2VuUHVibGljS2V5VVJM
KCkgY29uc3QKIHsKLSAgICBpZiAoIWlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIFVSTCgpOwot
CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
aHR0cHM6Ly8iKTsKICAgICBidWlsZGVyLmFwcGVuZChtX3NvdXJjZVNpdGUucmVnaXN0cmFibGVE
b21haW4uc3RyaW5nKCkpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbChwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFJlcG9ydEF0dHJpYnV0aW9uUGF0aCk7CisgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlQYXRoKTsKIAogICAgIFVS
TCB1cmwgeyBVUkwoKSwgYnVpbGRlci50b1N0cmluZygpIH07CiAgICAgaWYgKHVybC5pc1ZhbGlk
KCkpCkBAIC0xNzcsMTkgKzIwMCwyNCBAQCBVUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0
dHJpYnV0aW9uUmVwb3J0VVJMKCkgY29uc3QKICAgICByZXR1cm4gVVJMKCk7CiB9CiAKLVJlZjxK
U09OOjpPYmplY3Q+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydEpT
T04oKSBjb25zdAorUmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRv
a2VuU2lnbmF0dXJlSlNPTihjb25zdCBTdHJpbmcmIHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCkK
IHsKICAgICBhdXRvIHJlcG9ydERldGFpbHMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwotICAg
IGlmICghbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhIHx8ICFpc1ZhbGlkKCkpCisgICAgaWYgKCFt
X2VwaGVtZXJhbFNvdXJjZU5vbmNlIHx8ICFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5pc1ZhbGlk
KCkpCisgICAgICAgIHJldHVybiByZXBvcnREZXRhaWxzOworCisgICAgU3RyaW5nIHRva2VuOwor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHRva2VuID0gc291cmNlU2VjcmV0VG9rZW4oc2VydmVy
UHVibGljS2V5QmFzZTY0VVJMKTsKKyNlbmRpZgorICAgIGlmICh0b2tlbi5pc0VtcHR5KCkpCiAg
ICAgICAgIHJldHVybiByZXBvcnREZXRhaWxzOwogCiAgICAgcmVwb3J0RGV0YWlscy0+c2V0U3Ry
aW5nKCJzb3VyY2VfZW5nYWdlbWVudF90eXBlIl9zLCAiY2xpY2siX3MpOwotICAgIHJlcG9ydERl
dGFpbHMtPnNldFN0cmluZygic291cmNlX3NpdGUiX3MsIG1fc291cmNlU2l0ZS5yZWdpc3RyYWJs
ZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigic291cmNl
X2lkIl9zLCBtX3NvdXJjZUlELmlkKTsKLSAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoImF0
dHJpYnV0ZWRfb25fc2l0ZSJfcywgbV9hdHRyaWJ1dGVPblNpdGUucmVnaXN0cmFibGVEb21haW4u
c3RyaW5nKCkpOwotICAgIHJlcG9ydERldGFpbHMtPnNldEludGVnZXIoInRyaWdnZXJfZGF0YSJf
cywgbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhLT5kYXRhKTsKLSAgICByZXBvcnREZXRhaWxzLT5z
ZXRJbnRlZ2VyKCJ2ZXJzaW9uIl9zLCAxKTsKKyAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmco
InNvdXJjZV9ub25jZSJfcywgbV9lcGhlbWVyYWxTb3VyY2VOb25jZS0+bm9uY2UpOworICAgIHJl
cG9ydERldGFpbHMtPnNldFN0cmluZygic291cmNlX3NlY3JldF90b2tlbiJfcywgdG9rZW4pOwor
ICAgIHJlcG9ydERldGFpbHMtPnNldEludGVnZXIoInZlcnNpb24iX3MsIDIpOwogICAgIHJldHVy
biByZXBvcnREZXRhaWxzOwogfQogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oCmluZGV4IGM4ZDk5
NGY4MTQ2Mzg5N2FjNTFiMmNhMGY0OGYxMDgyODVjMjJlOGYuLmVmNGYwZTA0NzVkMWZhY2U4OGM3
YjkyODRkNmUwNDM5YzY5OWE5OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5oCkBAIC0zNiw2ICszNiwxNiBAQAogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorI2lm
IFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNlbmRpZgorCisj
aWYgUExBVEZPUk0oQ09DT0EpCitPQkpDX0NMQVNTIFJTQUJTU0FUb2tlblJlYWR5OworT0JKQ19D
TEFTUyBSU0FCU1NBVG9rZW5XYWl0aW5nQWN0aXZhdGlvbjsKK09CSkNfQ0xBU1MgUlNBQlNTQVRv
a2VuQmxpbmRlcjsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFByaXZh
dGVDbGlja01lYXN1cmVtZW50IHsKQEAgLTIwMSwzMSArMjExLDYgQEAgcHVibGljOgogICAgICAg
ICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNl
OwogICAgIH07CiAKLSAgICBzdHJ1Y3QgRXBoZW1lcmFsU291cmNlTm9uY2UgewotICAgICAgICBz
dGF0aWMgY29uc3RleHByIHVpbnQzMl90IFJlcXVpcmVkTnVtYmVyT2ZCeXRlcyA9IDE2OwotCi0g
ICAgICAgIEVwaGVtZXJhbFNvdXJjZU5vbmNlKCkgPSBkZWZhdWx0OwotICAgICAgICBleHBsaWNp
dCBFcGhlbWVyYWxTb3VyY2VOb25jZShjb25zdCBTdHJpbmcmIG5vbmNlU3RyaW5nKQotICAgICAg
ICAgICAgOiBub25jZSB7IG5vbmNlU3RyaW5nIH0KLSAgICAgICAgewotICAgICAgICB9Ci0KLSAg
ICAgICAgLy8gRklYTUU6IEludmVzdGlnYXRlIGlmIHdlIGNhbiBkbyB3aXRoIGEgc2ltcGxlIGxl
bmd0aCBjaGVjayBpbnN0ZWFkIG9mIGRlY29kaW5nLgotICAgICAgICAvLyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxOTQ1Ci0gICAgICAgIGJvb2wgaXNWYWxpZCgp
IGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIFZlY3Rvcjx1aW50OF90PiBkaWdlc3Q7Ci0g
ICAgICAgICAgICBpZiAoIWJhc2U2NFVSTERlY29kZShub25jZSwgZGlnZXN0KSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICByZXR1cm4gZGlnZXN0LnNpemUoKSA9
PSBSZXF1aXJlZE51bWJlck9mQnl0ZXM7Ci0gICAgICAgIH0KLQotICAgICAgICBTdHJpbmcgbm9u
Y2U7Ci0KLSAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYpIGNvbnN0OwotICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9u
YWw8RXBoZW1lcmFsU291cmNlTm9uY2U+IGRlY29kZShEZWNvZGVyJik7Ci0gICAgfTsKLQogICAg
IHN0cnVjdCBQcmlvcml0eSB7CiAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgTWF4
RW50cm9weSA9IDYzOwogCkBAIC0yNzcsMTYgKzI2MiwxMCBAQCBwdWJsaWM6CiAgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIEV4cGVjdGVkPEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIFN0cmluZz4g
cGFyc2VBdHRyaWJ1dGlvblJlcXVlc3QoY29uc3QgVVJMJiByZWRpcmVjdFVSTCk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgT3B0aW9uYWw8U2Vjb25kcz4gYXR0cmlidXRlQW5kR2V0RWFybGllc3RUaW1l
VG9TZW5kKEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBoYXNIaWdoZXJQcmlvcml0eVRoYW4oY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmKSBj
b25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBVUkwgdG9rZW5QdWJsaWNLZXlVUkwoKSBjb25zdDsK
LSAgICBXRUJDT1JFX0VYUE9SVCBVUkwgdG9rZW5TaWduYXR1cmVVUkwoKSBjb25zdDsKLSAgICBX
RUJDT1JFX0VYUE9SVCBSZWY8SlNPTjo6T2JqZWN0PiB0b2tlblNpZ25hdHVyZUpTT04oKSBjb25z
dDsKICAgICBXRUJDT1JFX0VYUE9SVCBVUkwgYXR0cmlidXRpb25SZXBvcnRVUkwoKSBjb25zdDsK
ICAgICBXRUJDT1JFX0VYUE9SVCBSZWY8SlNPTjo6T2JqZWN0PiBhdHRyaWJ1dGlvblJlcG9ydEpT
T04oKSBjb25zdDsKICAgICBjb25zdCBTb3VyY2VTaXRlJiBzb3VyY2VTaXRlKCkgY29uc3QgeyBy
ZXR1cm4gbV9zb3VyY2VTaXRlOyB9OwogICAgIGNvbnN0IEF0dHJpYnV0ZU9uU2l0ZSYgYXR0cmli
dXRlT25TaXRlKCkgY29uc3QgeyByZXR1cm4gbV9hdHRyaWJ1dGVPblNpdGU7IH07Ci0gICAgdm9p
ZCBzZXRFcGhlbWVyYWxTb3VyY2VOb25jZShFcGhlbWVyYWxTb3VyY2VOb25jZSYmIG5vbmNlKSB7
IG1fZXBoZW1lcmFsU291cmNlTm9uY2UgPSBXVEZNb3ZlKG5vbmNlKTsgfTsKLSAgICBPcHRpb25h
bDxFcGhlbWVyYWxTb3VyY2VOb25jZT4gZXBoZW1lcmFsU291cmNlTm9uY2UoKSBjb25zdCB7IHJl
dHVybiAhbV9lcGhlbWVyYWxTb3VyY2VOb25jZSA/IFdURjo6bnVsbG9wdCA6IG1fZXBoZW1lcmFs
U291cmNlTm9uY2UtPmlzVmFsaWQoKSA/IG1fZXBoZW1lcmFsU291cmNlTm9uY2UgOiBXVEY6Om51
bGxvcHQ7IH07Ci0gICAgdm9pZCBjbGVhckVwaGVtZXJhbFNvdXJjZU5vbmNlKCkgeyBtX2VwaGVt
ZXJhbFNvdXJjZU5vbmNlICA9IFdURjo6bnVsbG9wdDsgfTsKICAgICBXYWxsVGltZSB0aW1lT2ZB
ZENsaWNrKCkgY29uc3QgeyByZXR1cm4gbV90aW1lT2ZBZENsaWNrOyB9CiAgICAgT3B0aW9uYWw8
V2FsbFRpbWU+IGVhcmxpZXN0VGltZVRvU2VuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZWFybGllc3RU
aW1lVG9TZW5kOyB9OwogICAgIHZvaWQgc2V0RWFybGllc3RUaW1lVG9TZW5kKFdhbGxUaW1lIHRp
bWUpIHsgbV9lYXJsaWVzdFRpbWVUb1NlbmQgPSB0aW1lOyB9CkBAIC0yOTcsMTEgKzI3Niw0MCBA
QCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2VEZXNjcmlwdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fc291cmNlRGVzY3JpcHRpb247IH0KICAgICBjb25zdCBTdHJpbmcmIHB1cmNoYXNl
cigpIGNvbnN0IHsgcmV0dXJuIG1fcHVyY2hhc2VyOyB9CiAKKyAgICAvLyBNQVJLOiAtIEZyYXVk
IFByZXZlbnRpb24KKyAgICBzdHJ1Y3QgRXBoZW1lcmFsU291cmNlTm9uY2UgeworICAgICAgICBT
dHJpbmcgbm9uY2U7CisKKyAgICAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc1ZhbGlkKCkgY29u
c3Q7CisKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYpIGNvbnN0OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9u
YWw8RXBoZW1lcmFsU291cmNlTm9uY2U+IGRlY29kZShEZWNvZGVyJik7CisgICAgfTsKKworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RXBoZW1lcmFsU291cmNlTm9uY2UoRXBoZW1lcmFsU291
cmNlTm9uY2UmJik7CisgICAgT3B0aW9uYWw8RXBoZW1lcmFsU291cmNlTm9uY2U+IGVwaGVtZXJh
bFNvdXJjZU5vbmNlKCkgY29uc3QgeyByZXR1cm4gbV9lcGhlbWVyYWxTb3VyY2VOb25jZTsgfTsK
KyAgICB2b2lkIGNsZWFyRXBoZW1lcmFsU291cmNlTm9uY2UoKSB7IG1fZXBoZW1lcmFsU291cmNl
Tm9uY2UucmVzZXQoKTsgfTsKKworICAgIHN0cnVjdCBTb3VyY2VVbmxpbmthYmxlVG9rZW4gewor
ICAgICAgICBTdHJpbmcgdG9rZW5CYXNlNjRVUkw7CisgICAgICAgIFN0cmluZyBrZXlJREJhc2U2
NFVSTDsKKyAgICAgICAgU3RyaW5nIHNpZ25hdHVyZUJhc2U2NFVSTDsKKyAgICB9OworCisgICAg
V0VCQ09SRV9FWFBPUlQgVVJMIHRva2VuUHVibGljS2V5VVJMKCkgY29uc3Q7CisgICAgV0VCQ09S
RV9FWFBPUlQgVVJMIHRva2VuU2lnbmF0dXJlVVJMKCkgY29uc3Q7CisKKyAgICBXRUJDT1JFX0VY
UE9SVCBSZWY8SlNPTjo6T2JqZWN0PiB0b2tlblNpZ25hdHVyZUpTT04oY29uc3QgU3RyaW5nJiBz
ZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkwpOworICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPFNv
dXJjZVVubGlua2FibGVUb2tlbj4gY2FsY3VsYXRlU291cmNlVW5saW5rYWJsZVRva2VuKGNvbnN0
IFN0cmluZyYgc2VydmVyUmVzcG9uc2VCYXNlNjRVUkwpOworCiAgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gZGVjb2Rl
KERlY29kZXImKTsKIAogcHJpdmF0ZToKICAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyAgICBTdHJpbmcgc291cmNlU2VjcmV0VG9rZW4oY29uc3QgU3RyaW5n
JiBzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkwpOworI2VuZGlmCiAKICAgICBTb3VyY2VJRCBtX3Nv
dXJjZUlEOwogICAgIFNvdXJjZVNpdGUgbV9zb3VyY2VTaXRlOwpAQCAtMzEwLDkgKzMxOCwxOSBA
QCBwcml2YXRlOgogICAgIFN0cmluZyBtX3B1cmNoYXNlcjsKICAgICBXYWxsVGltZSBtX3RpbWVP
ZkFkQ2xpY2s7CiAKLSAgICBPcHRpb25hbDxFcGhlbWVyYWxTb3VyY2VOb25jZT4gbV9lcGhlbWVy
YWxTb3VyY2VOb25jZTsKICAgICBPcHRpb25hbDxBdHRyaWJ1dGlvblRyaWdnZXJEYXRhPiBtX2F0
dHJpYnV0aW9uVHJpZ2dlckRhdGE7CiAgICAgT3B0aW9uYWw8V2FsbFRpbWU+IG1fZWFybGllc3RU
aW1lVG9TZW5kOworCisgICAgc3RydWN0IFNvdXJjZVNlY3JldFRva2VuIHsKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyAgICAgICAgUmV0YWluUHRyPFJTQUJTU0FUb2tlbkJsaW5kZXI+IGJsaW5kZXI7
CisgICAgICAgIFJldGFpblB0cjxSU0FCU1NBVG9rZW5XYWl0aW5nQWN0aXZhdGlvbj4gd2FpdGlu
Z1Rva2VuOworICAgICAgICBSZXRhaW5QdHI8UlNBQlNTQVRva2VuUmVhZHk+IHJlYWR5VG9rZW47
CisjZW5kaWYKKyAgICB9OworCisgICAgT3B0aW9uYWw8RXBoZW1lcmFsU291cmNlTm9uY2U+IG1f
ZXBoZW1lcmFsU291cmNlTm9uY2U7CisgICAgU291cmNlU2VjcmV0VG9rZW4gbV9zb3VyY2VTZWNy
ZXRUb2tlbjsKIH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbSBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29h
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjUxZTY2NmFhMmYwZGU4MzEzYTZhYzQwYWJkMDM3OWNlYmYzNjNlYWQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRDb2NvYS5tbQpAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIgorCisj
aW1wb3J0IDxwYWwvY29jb2EvQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitTdHJpbmcgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNvdXJjZVNl
Y3JldFRva2VuKGNvbnN0IFN0cmluZyYgc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKQoreworI2lm
IEhBVkUoUlNBX0JTU0EpCisgICAgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gc2VydmVyUHVi
bGljS2V5RGF0YTsKKyAgICAgICAgaWYgKCFiYXNlNjRVUkxEZWNvZGUoc2VydmVyUHVibGljS2V5
QmFzZTY0VVJMLCBzZXJ2ZXJQdWJsaWNLZXlEYXRhKSkKKyAgICAgICAgICAgIHJldHVybiBlbXB0
eVN0cmluZygpOworICAgICAgICBhdXRvIHNlcnZlclB1YmxpY0tleSA9IGFkb3B0TlMoW1tOU0Rh
dGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6c2VydmVyUHVibGljS2V5RGF0YS5kYXRhKCkgbGVuZ3Ro
OnNlcnZlclB1YmxpY0tleURhdGEuc2l6ZSgpXSk7CisKKyAgICAgICAgLy8gRklYTUUoMjIyMDE4
KTogQ2hlY2sgZXJyb3IuCisgICAgICAgIG1fc291cmNlU2VjcmV0VG9rZW4uYmxpbmRlciA9IGFk
b3B0TlMoW1BBTDo6YWxsb2NSU0FCU1NBVG9rZW5CbGluZGVySW5zdGFuY2UoKSBpbml0V2l0aFB1
YmxpY0tleTpzZXJ2ZXJQdWJsaWNLZXkuZ2V0KCkgZXJyb3I6bnVsbHB0cl0pOworICAgICAgICBp
ZiAoIW1fc291cmNlU2VjcmV0VG9rZW4uYmxpbmRlcikKKyAgICAgICAgICAgIHJldHVybiBlbXB0
eVN0cmluZygpOworICAgIH0KKworICAgIC8vIEZJWE1FKDIyMjAxOCk6IENoZWNrIGVycm9yLgor
ICAgIG1fc291cmNlU2VjcmV0VG9rZW4ud2FpdGluZ1Rva2VuID0gW21fc291cmNlU2VjcmV0VG9r
ZW4uYmxpbmRlciB0b2tlbldhaXRpbmdBY3RpdmF0aW9uV2l0aENvbnRlbnQ6bnVsbHB0ciBlcnJv
cjpudWxscHRyXTsKKyAgICBpZiAoIW1fc291cmNlU2VjcmV0VG9rZW4ud2FpdGluZ1Rva2VuKQor
ICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKworICAgIHJldHVybiBXVEY6OmJhc2U2NFVS
TEVuY29kZShbbV9zb3VyY2VTZWNyZXRUb2tlbi53YWl0aW5nVG9rZW4gYmxpbmRlZE1lc3NhZ2Vd
LmJ5dGVzLCBbbV9zb3VyY2VTZWNyZXRUb2tlbi53YWl0aW5nVG9rZW4gYmxpbmRlZE1lc3NhZ2Vd
Lmxlbmd0aCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRV
UkwpOworICAgIHJldHVybiBlbXB0eVN0cmluZygpOworI2VuZGlmIC8vIEhBVkUoUlNBX0JTU0Ep
Cit9CisKK2F1dG8gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmNhbGN1bGF0ZVNvdXJjZVVubGlu
a2FibGVUb2tlbihjb25zdCBTdHJpbmcmIHNlcnZlclJlc3BvbnNlQmFzZTY0VVJMKSAtPiBPcHRp
b25hbDxTb3VyY2VVbmxpbmthYmxlVG9rZW4+Cit7CisjaWYgSEFWRShSU0FfQlNTQSkKKyAgICBp
ZiAoIW1fc291cmNlU2VjcmV0VG9rZW4ud2FpdGluZ1Rva2VuKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gc2VydmVyUmVzcG9u
c2VEYXRhOworICAgICAgICBpZiAoIWJhc2U2NFVSTERlY29kZShzZXJ2ZXJSZXNwb25zZUJhc2U2
NFVSTCwgc2VydmVyUmVzcG9uc2VEYXRhKSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisgICAgICAgIGF1dG8gc2VydmVyUmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9j
XSBpbml0V2l0aEJ5dGVzOnNlcnZlclJlc3BvbnNlRGF0YS5kYXRhKCkgbGVuZ3RoOnNlcnZlclJl
c3BvbnNlRGF0YS5zaXplKCldKTsKKworICAgICAgICAvLyBGSVhNRSgyMjIwMTgpOiBDaGVjayBl
cnJvci4KKyAgICAgICAgbV9zb3VyY2VTZWNyZXRUb2tlbi5yZWFkeVRva2VuID0gW21fc291cmNl
U2VjcmV0VG9rZW4ud2FpdGluZ1Rva2VuIGFjdGl2YXRlVG9rZW5XaXRoU2VydmVyUmVzcG9uc2U6
c2VydmVyUmVzcG9uc2UuZ2V0KCkgZXJyb3I6bnVsbHB0cl07CisgICAgICAgIGlmICghbV9zb3Vy
Y2VTZWNyZXRUb2tlbi5yZWFkeVRva2VuKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKyAgICB9CisKKyAgICBTb3VyY2VVbmxpbmthYmxlVG9rZW4gdG9rZW47CisgICAgdG9rZW4u
dG9rZW5CYXNlNjRVUkwgPSBXVEY6OmJhc2U2NFVSTEVuY29kZShbbV9zb3VyY2VTZWNyZXRUb2tl
bi5yZWFkeVRva2VuIHRva2VuQ29udGVudF0uYnl0ZXMsIFttX3NvdXJjZVNlY3JldFRva2VuLnJl
YWR5VG9rZW4gdG9rZW5Db250ZW50XS5sZW5ndGgpOworICAgIHRva2VuLmtleUlEQmFzZTY0VVJM
ID0gV1RGOjpiYXNlNjRVUkxFbmNvZGUoW21fc291cmNlU2VjcmV0VG9rZW4ucmVhZHlUb2tlbiBr
ZXlJZF0uYnl0ZXMsIFttX3NvdXJjZVNlY3JldFRva2VuLnJlYWR5VG9rZW4ga2V5SWRdLmxlbmd0
aCk7CisgICAgdG9rZW4uc2lnbmF0dXJlQmFzZTY0VVJMID0gV1RGOjpiYXNlNjRVUkxFbmNvZGUo
W21fc291cmNlU2VjcmV0VG9rZW4ucmVhZHlUb2tlbiBzaWduYXR1cmVdLmJ5dGVzLCBbbV9zb3Vy
Y2VTZWNyZXRUb2tlbi5yZWFkeVRva2VuIHNpZ25hdHVyZV0ubGVuZ3RoKTsKKworICAgIHJldHVy
biB0b2tlbjsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHNlcnZlclJlc3BvbnNlQmFzZTY0VVJM
KTsKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworI2VuZGlmIC8vIEhBVkUoUlNBX0JTU0EpCit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcApp
bmRleCA3MjliYmI3Njg4OWNhNmIyYjc0NmE1NTI3MTE3MTdjMjg2NjFmZTAxLi5hZTZlNDBmMjY3
MmQ0YTQxNDkzMmViNGEwZDgxNzYyMGQ5ZDUyYTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXIuY3BwCkBAIC0xNTcsMTIgKzE1NywxMiBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlcjo6Z2V0VG9rZW5QdWJsaWNLZXkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJgogICAg
ICAgICB9CiAKICAgICAgICAgLy8gRklYTUU6IFJlY2VpdmUgYW5kIGV4dHJhIHRoZSBzZXJ2ZXIg
cHVibGljIGtleSwgcmRhcjovLzczNTgyMDMyLgotICAgICAgICBnZXRTaWduZWRVbmxpbmthYmxl
VG9rZW4oV1RGTW92ZShhdHRyaWJ1dGlvbikpOworICAgICAgICBnZXRTaWduZWRTZWNyZXRUb2tl
bihXVEZNb3ZlKGF0dHJpYnV0aW9uKSwgZW1wdHlTdHJpbmcoKSk7CiAgICAgfSk7CiAKIH0KIAot
dm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmdldFNpZ25lZFVubGlua2FibGVU
b2tlbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmIGF0dHJpYnV0aW9uKQordm9pZCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmdldFNpZ25lZFNlY3JldFRva2VuKFByaXZhdGVDbGlj
a01lYXN1cmVtZW50JiYgYXR0cmlidXRpb24sIGNvbnN0IFN0cmluZyYgdG9rZW5QdWJsaWNLZXlC
YXNlNjRVUkwpCiB7CiAgICAgaWYgKCFmZWF0dXJlRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47
CkBAIC0xNzgsMjEgKzE3OCwyMSBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
cjo6Z2V0U2lnbmVkVW5saW5rYWJsZVRva2VuKFByaXZhdGVDbGlja01lYXN1cgogICAgIGlmICh0
b2tlblNpZ25hdHVyZVVSTC5pc0VtcHR5KCkgfHwgIXRva2VuU2lnbmF0dXJlVVJMLmlzVmFsaWQo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBsb2FkUGFyYW1ldGVycyA9IGdlbmVyYXRl
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnNGb3JIdHRwUG9zdChXVEZNb3ZlKHRva2VuU2ln
bmF0dXJlVVJMKSwgYXR0cmlidXRpb24udG9rZW5TaWduYXR1cmVKU09OKCksIHBjbURhdGFDYXJy
aWVkKTsKKyAgICBhdXRvIGxvYWRQYXJhbWV0ZXJzID0gZ2VuZXJhdGVOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVyc0Zvckh0dHBQb3N0KFdURk1vdmUodG9rZW5TaWduYXR1cmVVUkwpLCBhdHRy
aWJ1dGlvbi50b2tlblNpZ25hdHVyZUpTT04odG9rZW5QdWJsaWNLZXlCYXNlNjRVUkwpLCBwY21E
YXRhQ2FycmllZCk7CiAKLSAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVt
ZW50LCAiQWJvdXQgdG8gZmlyZSBhIHVubGlua2FibGUgdG9rZW4gc2lnbmluZyByZXF1ZXN0LiIp
OwotICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lv
bklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVs
OjpMb2csICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQWJvdXQgdG8gZmlyZSBhIHVubGlu
a2FibGUgdG9rZW4gc2lnbmluZyByZXF1ZXN0LiJfcyk7CisgICAgUkVMRUFTRV9MT0dfSU5GTyhQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkFib3V0IHRvIGZpcmUgYSBzZWNyZXQgdG9rZW4gc2ln
bmluZyByZXF1ZXN0LiIpOworICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVN
ZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCwgTWVzc2FnZUxldmVsOjpMb2csICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQWJvdXQg
dG8gZmlyZSBhIHNlY3JldCB0b2tlbiBzaWduaW5nIHJlcXVlc3QuIl9zKTsKIAogICAgIG1fcGlu
Z0xvYWRGdW5jdGlvbihXVEZNb3ZlKGxvYWRQYXJhbWV0ZXJzKSwgW3dlYWtUaGlzID0gbWFrZVdl
YWtQdHIoKnRoaXMpXShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpIHsKICAgICAgICAgaWYgKCF3ZWFr
VGhpcykKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBpZiAoIWVycm9yLmlzTnVsbCgp
KSB7Ci0gICAgICAgICAgICB3ZWFrVGhpcy0+bV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29u
c29sZU1lc3NhZ2Uod2Vha1RoaXMtPm1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpFcnJvciwgbWFrZVN0cmluZygiW1ByaXZh
dGUgQ2xpY2sgTWVhc3VyZW1lbnRdIFJlY2VpdmVkIGVycm9yOiAnIl9zLCBlcnJvci5sb2NhbGl6
ZWREZXNjcmlwdGlvbigpLCAiJyBmb3IgdW5saW5rYWJsZSB0b2tlbiBzaWduaW5nIHJlcXVlc3Qu
Il9zKSk7CisgICAgICAgICAgICB3ZWFrVGhpcy0+bV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0
Q29uc29sZU1lc3NhZ2Uod2Vha1RoaXMtPm1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpFcnJvciwgbWFrZVN0cmluZygiW1By
aXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIFJlY2VpdmVkIGVycm9yOiAnIl9zLCBlcnJvci5sb2Nh
bGl6ZWREZXNjcmlwdGlvbigpLCAiJyBmb3Igc2VjcmV0IHRva2VuIHNpZ25pbmcgcmVxdWVzdC4i
X3MpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAg
Ly8gRklYTUU6IFJlY2VpdmUgYW5kIHN0b3JlIHRoZSBzaWduZWQgdW5saW5rYWJsZSB0b2tlbiwg
cmRhcjovLzczNTgyMDMyLgorICAgICAgICAvLyBGSVhNRTogUmVjZWl2ZSBhbmQgc3RvcmUgdGhl
IHNpZ25lZCBzZWNyZXQgdG9rZW4sIHJkYXI6Ly83MzU4MjAzMi4KICAgICB9KTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYW5hZ2VyLmgKaW5kZXggNTczZjMzY2UyYzM1NjM4YzYwZGVlYTdlNGY5YTc5
NjkxY2YwYzg0Mi4uMGJhZjliNDA2ZjEyOWU0M2NkMjFlZmEyNDFhMzY5ZWFmNzZhZGI5MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlci5oCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKIAogcHJp
dmF0ZToKICAgICB2b2lkIGdldFRva2VuUHVibGljS2V5KFByaXZhdGVDbGlja01lYXN1cmVtZW50
JiYpOwotICAgIHZvaWQgZ2V0U2lnbmVkVW5saW5rYWJsZVRva2VuKFByaXZhdGVDbGlja01lYXN1
cmVtZW50JiYpOworICAgIHZvaWQgZ2V0U2lnbmVkU2VjcmV0VG9rZW4oUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQmJiwgY29uc3QgU3RyaW5nJiB0b2tlblB1YmxpY0tleUJhc2U2NFVSTCk7CiAgICAg
dm9pZCBjbGVhclNlbnRBdHRyaWJ1dGlvbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmKTsKICAg
ICB2b2lkIGF0dHJpYnV0ZShjb25zdCBTb3VyY2VTaXRlJiwgY29uc3QgQXR0cmlidXRlT25TaXRl
JiwgQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmKTsKICAgICB2b2lkIGZpcmVDb252ZXJzaW9uUmVx
dWVzdChjb25zdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc0ZTZlN2Y5NWNiYWQ0ODYwYzUxMWZj
ZjQ3ZDI4NjZjYjk3ODA5NDYuLjA2MzU4YmU4MWJkZGNjNjhjYjZkNTMxMzJlNTc0Y2Q4NGZmM2Zi
MjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAyMS0wMi0xNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFBDTTogR2VuZXJhdGUgc2VjcmV0IHRva2VuIGFuZCBjb3JyZXNwb25k
aW5nIHVubGlua2FibGUgdG9rZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMjAxOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzM1ODE0MTI+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgSm9obiBXaWxhbmRlci4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHA6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgQWRkIHRlc3RzLgorCiAyMDIxLTAyLTE5
ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUENNOiBSZXF1
ZXN0IHNlcnZlciBwdWJsaWMga2V5IHRvIGdlbmVyYXRlIHNlY3JldCB0b2tlbgpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLnhjY29u
ZmlnIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLnhj
Y29uZmlnCmluZGV4IDcwYmU4YWE3NzA0M2I3NDE3N2Q0MDZkMDNjMzE0OTYzOGE5OWYxZTkuLmQz
YTQ0YThhYzU3ZDA3NjBkM2M1MmQwZWQxODk5MDViNzI1ZGIxOGIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS54Y2NvbmZpZworKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25m
aWcKQEAgLTU1LDYgKzU1LDEyIEBAIFdLX1BERktJVF9MREZMQUdTX21hY29zeCA9IC1mcmFtZXdv
cmsgUERGS2l0OwogV0tfUERGS0lUX0xERkxBR1NfaXBob25lb3MgPSAtZnJhbWV3b3JrIFBERktp
dDsKIFdLX1BERktJVF9MREZMQUdTX2lwaG9uZXNpbXVsYXRvciA9IC1mcmFtZXdvcmsgUERGS2l0
OwogCitXS19TWVNURU1fTERGTEFHUyA9ICQoV0tfU1lTVEVNX0xERkxBR1NfJChXS19QTEFURk9S
TV9OQU1FKSk7CitXS19TWVNURU1fTERGTEFHU19tYWNvc3ggPSAtZnJhbWV3b3JrIFN5c3RlbTsK
K1dLX1NZU1RFTV9MREZMQUdTX2lwaG9uZW9zID0gJChXS19TWVNURU1fTERGTEFHU18kKFdLX0lP
U18xNSkpOworV0tfU1lTVEVNX0xERkxBR1NfaXBob25lc2ltdWxhdG9yID0gJChXS19TWVNURU1f
TERGTEFHU18kKFdLX0lPU18xNSkpOworV0tfU1lTVEVNX0xERkxBR1NfSU9TX1NJTkNFXzE1ID0g
LWZyYW1ld29yayBTeXN0ZW07CisKIFdLX0hJRF9MREZMQUdTID0gJChXS19ISURfTERGTEFHU18k
KFdLX1BMQVRGT1JNX05BTUUpKTsKIFdLX0hJRF9MREZMQUdTX21hY29zeCA9ICQoV0tfSElEX0xE
RkxBR1MkKFdLX01BQ09TXzEwMTUpKTsKIFdLX0hJRF9MREZMQUdTX01BQ09TX1NJTkNFXzEwMTUg
PSAtZnJhbWV3b3JrIEhJRDsKQEAgLTcxLDcgKzc3LDcgQEAgV0tfT1BFTkdMX0xERkxBR1NfYXBw
bGV0dm9zID0gJChXS19PUEVOR0xfTERGTEFHU19pcGhvbmVvcyk7CiBXS19PUEVOR0xfTERGTEFH
U19hcHBsZXR2c2ltdWxhdG9yID0gJChXS19PUEVOR0xfTERGTEFHU19pcGhvbmVzaW11bGF0b3Ip
OwogV0tfT1BFTkdMX0xERkxBR1NfbWFjb3N4ID0gLWZyYW1ld29yayBPcGVuR0w7CiAKLU9USEVS
X0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChVTkVYUE9SVEVEX1NZTUJPTF9MREZMQUdTKSAtbGd0
ZXN0IC1mb3JjZV9sb2FkICQoQlVJTFRfUFJPRFVDVFNfRElSKS9saWJUZXN0V2ViS2l0QVBJLmEg
LWZyYW1ld29yayBKYXZhU2NyaXB0Q29yZSAtZnJhbWV3b3JrIFdlYktpdCAtbFdlYkNvcmVUZXN0
U3VwcG9ydCAkKFdLX0FVVEhLSVRfTERGTEFHUykgLWZyYW1ld29yayBOZXR3b3JrICQoV0tfUERG
S0lUX0xERkxBR1MpICQoV0tfSElEX0xERkxBR1MpICQoV0tfT1BFTkdMX0xERkxBR1MpICQoT1RI
RVJfTERGTEFHU19QTEFURk9STV8kKFdLX0NPQ09BX1RPVUNIKSk7CitPVEhFUl9MREZMQUdTID0g
JChpbmhlcml0ZWQpICQoVU5FWFBPUlRFRF9TWU1CT0xfTERGTEFHUykgLWxndGVzdCAtZm9yY2Vf
bG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvbGliVGVzdFdlYktpdEFQSS5hIC1mcmFtZXdvcmsg
SmF2YVNjcmlwdENvcmUgLWZyYW1ld29yayBXZWJLaXQgLWxXZWJDb3JlVGVzdFN1cHBvcnQgJChX
S19BVVRIS0lUX0xERkxBR1MpIC1mcmFtZXdvcmsgTmV0d29yayAkKFdLX1NZU1RFTV9MREZMQUdT
KSAkKFdLX1BERktJVF9MREZMQUdTKSAkKFdLX0hJRF9MREZMQUdTKSAkKFdLX09QRU5HTF9MREZM
QUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkpOwogT1RIRVJf
TERGTEFHU19QTEFURk9STV8gPSAtZnJhbWV3b3JrIENvY29hIC1mcmFtZXdvcmsgQ2FyYm9uOwog
CiAvLyBGSVhNRTogVGhpcyBzaG91bGQgbm90IGJlIGJ1aWx0IG9uIGlPUy4gSW5zdGVhZCB3ZSBz
aG91bGQgY3JlYXRlIGFuZCB1c2UgYSBUZXN0V2ViS2l0QVBJIGFwcGxpY2F0aW9uLgpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAzYzJmMDY4ZTFkMDhmOTBhY2IxZWMzZjBkY2YzMWNmY2JmZmQ2
ODlmLi43OWNhYjIzZDk4NGEzYTMwOGM5MDcwNDc4NDY3M2NiNGM2Njg2NjVjIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNDQxLDYgKzQ0MSw3IEBACiAJCTU3QzYyNDUwMjM0NkMyMUUwMDM4
M0ZFNyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3QzYyNDRGMjM0NkMx
RUMwMDM4M0ZFNyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi5odG1sICovOyB9
OwogCQk1N0VERkM1QzI0NUExQTNGMDA5NTk1MjEgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2Ut
Y3JlZGVudGlhbC1sYS1uby1tb2NrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdFREZDNUIyNDVBMThGNTAwOTU5NTIxIC8qIHdlYi1h
dXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEtbm8tbW9jay5odG1sICovOyB9OwogCQk1
N0VERkM2MDI0NUEyOTlDMDA5NTk1MjEgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRp
b24tbGEtbm8tbW9jay5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3RURGQzVGMjQ1QTI3OTkwMDk1OTUyMSAvKiB3ZWItYXV0aGVudGlj
YXRpb24tZ2V0LWFzc2VydGlvbi1sYS1uby1tb2NrLmh0bWwgKi87IH07CisJCTU3RjFDOTExMjVE
REQ1MTkwMEU4RjZFQSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGMUM5MTAyNURERDUxOTAw
RThGNkVBIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gKi87IH07CiAJCTU3RjRB
QUEwMjA4RkFFRjAwMEE2OEU5RSAvKiBTU0xLZXlHZW5lcmF0b3IubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0Y0QUE5RjIwOEZBODNEMDBBNjhFOUUg
LyogU1NMS2V5R2VuZXJhdG9yLm1tICovOyB9OwogCQk1N0Y1NkE1QzFDN0Y4Q0MxMDBGMzFEN0Ug
LyogSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RjU2QTVCMUM3RjhBNDAwMEYzMUQ3RSAv
KiBJc05hdmlnYXRpb25BY3Rpb25UcnVzdGVkLmh0bWwgKi87IH07CiAJCTVDMDE2MEMxMjFBMTMy
NDYwMDc3RkEzMiAvKiBKSVRFbmFibGVkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNUMwMTYwQzAyMUExMzIzMjAwNzdGQTMyIC8qIEpJVEVuYWJsZWQu
bW0gKi87IH07CkBAIC0yMjMzLDYgKzIyMzQsNyBAQAogCQk1N0VERkM1QjI0NUExOEY1MDA5NTk1
MjEgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYS1uby1tb2NrLmh0bWwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0
bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYS1uby1tb2Nr
Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0VERkM1RjI0NUEyNzk5MDA5
NTk1MjEgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbGEtbm8tbW9jay5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5o
dG1sOyBwYXRoID0gIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWxhLW5vLW1vY2su
aHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RjEwRDkyMUM3RTdCMzgwMEVD
REYzMCAvKiBJc05hdmlnYXRpb25BY3Rpb25UcnVzdGVkLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTdGMUM5MTAyNURERDUxOTAwRThGNkVBIC8qIFByaXZh
dGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudENvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
N0Y0QUE5RjIwOEZBODNEMDBBNjhFOUUgLyogU1NMS2V5R2VuZXJhdG9yLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gU1NMS2V5R2VuZXJhdG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1N0Y1NkE1QjFDN0Y4QTQwMDBGMzFEN0UgLyogSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3Rl
ZC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1
c3RlZC5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzAxNjBDMDIxQTEzMjMy
MDA3N0ZBMzIgLyogSklURW5hYmxlZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IEpJVEVuYWJsZWQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00
NzExLDYgKzQ3MTMsNyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMDcxMURGNTEyMjZBOTVGQjAw
M0REMkY3IC8qIEFWRm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbSAqLywKIAkJCQk3NTFCMDVENTFG
OEVBQzFBMDAyOEEwOUUgLyogRGF0YWJhc2VUcmFja2VyVGVzdC5tbSAqLywKKwkJCQk1N0YxQzkx
MDI1RERENTE5MDBFOEY2RUEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbSAqLywK
IAkJCQk1NzY5QzUwQTFEOUIwMDAxMDAwODQ3RkIgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAu
bW0gKi8sCiAJCQkJQTE3OTkxODYxRTFDOTk0RTAwQTUwNUVEIC8qIFNoYXJlZEJ1ZmZlci5tbSAq
LywKIAkJCQlDRDg5RDAzODFDNEVEQjJBMDAwNDBBMDQgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5t
bSAqLywKQEAgLTU0ODYsNiArNTQ4OSw3IEBACiAJCQkJQTFFQzExODgxRjQyNTQxMjAwRDAxNDZF
IC8qIFByZXZpZXdDb252ZXJ0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMEMxQTQx
MUFFNjAwNDQ3QzRDIC8qIFByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNr
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZCMEEwN0Y3MjFGQTlDMkIwMEQ1NzM5MSAvKiBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1N0YxQzkxMTI1RERE
NTE5MDBFOEY2RUEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTQ2NDdCMTI2MUVCQTNCODUwMDQxRDdFRiAvKiBQcm9jZXNzRGlkVGVybWluYXRl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxODgyRjAzMjEwMTBDMEQwMDJGRjI4OCAvKiBQcm9j
ZXNzUHJlV2FybWluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEQTQ0MzhFMjFGN0E0NzcwMDM3
OTQ4OSAvKiBQcm9jZXNzU3VzcGVuZE1lZGlhQnVmZmVyaW5nLm1tIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50LmNwcAppbmRleCBiNzMyNjMzNDRmZTFmNmU5ZWIwZTQyYTI2ZTcy
YzRmYjJmMzkwZjM2Li4yNjAzMDM3ZDAyOGI5OTVjODJmZWJiYzNhYTdjN2RiYjJhNDA1MDJkIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGVzdC5oIgogCiAjaW5jbHVkZSA8V2ViQ29yZS9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KQEAgLTMwMCw0
ICszMDEsMjMgQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZFNvdXJjZU5v
bmNlKQogICAgIEFTU0VSVF9GQUxTRShlcGhlbWVyYWxOb25jZS5pc1ZhbGlkKCkpOwogfQogCitU
RVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkQmxpbmRlZFNlY3JldCkKK3sKKyAg
ICBjb25zdCBjaGFyIHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTFtdID0gIk1JSUNJakFOQmdrcWhr
aUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBemIxZFRocnRZd1ZoNDZTakluZWdLaEFxcGJK
d20xWG5UQkN2eWJTSzh6azUzUjBBbTFoRzMzQVZGNUoxbHFZZjM2d3A2NjNHYXNjbEh0cXp2eEZa
SXZEQTFEVVNINGFael9mREhDVFR4RWVKVlBPUlMzek5OMlVqV3didG53c2g0Qm1EVGktel9jRG4w
TEF6Mkp1WnlLbHlGdDVHZ1ZMQVF2TDlIM1ZMSFU5X1hITkstdWJveVhmY0hSVHRyRG5wdTNjNnd2
WDVkZC1BSm9MbUlRVFpCRUpmVmt4Qkd6bmsxcUtIamM2bkFTQWlyS0Zfd0pDbnV3QUs4QzZCQWNq
TmN3VVdDZUtwMFlFQ3pDWFUtLUpYZDJPRVUtUWh4UEM2N2ZhaURPaDNWMHZsZnFaTHRybGJuYW5V
Q0tydmh3N0dhR09HWW90SXJuWnR1TmZ4QzE0ZF9YTlZkMUZTOG5IalJUSG5FZ3dfam5sU3NzZmdT
dHowdUp0Y21rZmdvSkJ2T0U0bUlScGk3aVNsUmZYTmtLc1dYMUotZ3djbkNWbzV1MHVKRVc2WDZO
eXZFR1lKOHc1QlBmd3NRdUs5eS00Wjdpa3Q5SU91Y0VIWTdUaERtaTlUTk5oSEJWajBHdTR3R29T
anEzYTZ2TDVOMTBaU0hYb3ExWGdmR1BybUhoaEw5MGNqdldvbm95T1hzVXFsWEV6VGpEMlc5ODk3
US1NeDlCVU5yR1FQcW1JeDhGNU13eFdjT3J5ZThXUnA0UTg4bjJZU1VuVjdDOGF5bGQzdjFGaDdO
NWplU3FlVm10RFZSWVRuMnNWZk5xZ1hyemdkaWdKY1FSOHZGRU51Nm56RlB3c3JYUE1hQ2lMVW5a
TlVtUTFaU0xRZVF5aFlYeEhxUkpybnVDRFdYTGtDQXdFQUFRIjsKKworICAgIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50IHBjbTsKKyAgICBhdXRvIHNvdXJjZVNlY3JldFRva2VuID0gcGNtLnRva2Vu
U2lnbmF0dXJlSlNPTihzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkwpOworICAgIEVYUEVDVF9FUShz
b3VyY2VTZWNyZXRUb2tlbi0+YXNPYmplY3QoKS0+c2l6ZSgpLCAwdWwpOworCisgICAgYXV0byBl
cGhlbWVyYWxOb25jZSA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VO
b25jZSB7ICJBQkNERUZhYmNkZWYwMTIzNDU2Nzg5Il9zIH07CisgICAgRVhQRUNUX1RSVUUoZXBo
ZW1lcmFsTm9uY2UuaXNWYWxpZCgpKTsKKyAgICBwY20uc2V0RXBoZW1lcmFsU291cmNlTm9uY2Uo
V1RGTW92ZShlcGhlbWVyYWxOb25jZSkpOworCisgICAgc291cmNlU2VjcmV0VG9rZW4gPSBwY20u
dG9rZW5TaWduYXR1cmVKU09OKHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCk7CisgICAgRVhQRUNU
X0VRKHNvdXJjZVNlY3JldFRva2VuLT5hc09iamVjdCgpLT5zaXplKCksIDR1bCk7CisKKyAgICBh
dXRvIHBlcnNpc3RlbnRUb2tlbiA9IHBjbS5jYWxjdWxhdGVTb3VyY2VVbmxpbmthYmxlVG9rZW4o
ZW1wdHlTdHJpbmcoKSk7CisgICAgRVhQRUNUX0ZBTFNFKHBlcnNpc3RlbnRUb2tlbik7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50Q29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGU1ZDVmYjZkMTgyMTc1OTgwNzA1ODcyOGFm
Yjg1ZGNiMDJiYmYxNgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tCkBAIC0wLDAg
KzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRl
c3QuaCIKKworI2lmIEhBVkUoUlNBX0JTU0EpCisKKyNpbmNsdWRlIDxTZWN1cml0eS9TZWNLZXlQ
cml2Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oPgorCitl
eHRlcm4gIkMiIHsKKyNpbmNsdWRlIDxjb3JlY3J5cHRvL2NjX3ByaXYuaD4KKyNpbmNsdWRlIDxj
b3JlY3J5cHRvL2Njcm5nLmg+CisjaW5jbHVkZSA8Y29yZWNyeXB0by9jY3JzYS5oPgorI2luY2x1
ZGUgPGNvcmVjcnlwdG8vY2Nyc2Fic3NhLmg+Cit9CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK1RFU1QoUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQsIFZhbGlkQmxpbmRlZFNlY3JldCkKK3sKKyAgICBhdXRvIGVwaGVtZXJhbE5vbmNlID0g
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlIHsgIkFCQ0RFRmFi
Y2RlZjAxMjM0NTY3ODkiX3MgfTsKKyAgICBFWFBFQ1RfVFJVRShlcGhlbWVyYWxOb25jZS5pc1Zh
bGlkKCkpOworCisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgcGNtOworICAgIHBjbS5zZXRF
cGhlbWVyYWxTb3VyY2VOb25jZShXVEZNb3ZlKGVwaGVtZXJhbE5vbmNlKSk7CisKKyAgICAvLyBH
ZW5lcmF0ZSB0aGUgc2VydmVyIGtleSBwYWlyLgorICAgIHNpemVfdCBtb2R1bHVzTkJpdHMgPSA0
MDk2OworICAgIGludCBlcnJvciA9IDA7CisKKyAgICBzdHJ1Y3QgY2Nybmdfc3RhdGUqIHJuZyA9
IGNjcm5nKCZlcnJvcik7CisgICAgRVhQRUNUX0VRKGVycm9yLCBDQ0VSUl9PSyk7CisKKyAgICBj
b25zdCB1aW50OF90IGVbXSA9IHsgMHgxLCAweDAwLCAweDAxIH07CisgICAgY2Nyc2FfZnVsbF9j
dHhfZGVjbChjY25fc2l6ZW9mKG1vZHVsdXNOQml0cyksIHJzYVByaXZhdGVLZXkpOworICAgIGVy
cm9yID0gY2Nyc2FfZ2VuZXJhdGVfa2V5KG1vZHVsdXNOQml0cywgcnNhUHJpdmF0ZUtleSwgc2l6
ZW9mKGUpLCBlLCBybmcpOworICAgIEVYUEVDVF9FUShlcnJvciwgQ0NFUlJfT0spOworCisgICAg
Y2Nyc2FfcHViX2N0eF90IHJzYVB1YmxpY0tleSA9IGNjcnNhX2N0eF9wdWJsaWMocnNhUHJpdmF0
ZUtleSk7CisgICAgc2l6ZV90IG1vZHVsdXNOQnl0ZXMgPSBjY19jZWlsaW5nKGNjcnNhX3B1Ymtl
eWxlbmd0aChyc2FQdWJsaWNLZXkpLCA4KTsKKworICAgIGNvbnN0IHN0cnVjdCBjY3JzYWJzc2Ff
Y2lwaGVyc3VpdGUgKmNpcGhlcnN1aXRlID0gJmNjcnNhYnNzYV9jaXBoZXJzdWl0ZV9yc2E0MDk2
X3NoYTM4NDsKKworICAgIHNpemVfdCBleHBvcnRTaXplID0gY2NkZXJfZW5jb2RlX3JzYV9wdWJf
c2l6ZShyc2FQdWJsaWNLZXkpOworICAgIGF1dG8gcHVibGljS2V5ID0gYWRvcHROUyhbW05TTXV0
YWJsZURhdGEgYWxsb2NdIGluaXRXaXRoTGVuZ3RoOmV4cG9ydFNpemVdKTsKKyAgICBjY2Rlcl9l
bmNvZGVfcnNhX3B1Yihyc2FQdWJsaWNLZXksIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihbcHVibGlj
S2V5IG11dGFibGVCeXRlc10pLCBzdGF0aWNfY2FzdDx1aW50OF90Kj4oW3B1YmxpY0tleSBtdXRh
YmxlQnl0ZXNdKSArIFtwdWJsaWNLZXkgbGVuZ3RoXSk7CisKKyAgICBhdXRvIHNlY0tleSA9IGFk
b3B0Q0YoU2VjS2V5Q3JlYXRlV2l0aERhdGEoKF9fYnJpZGdlIENGRGF0YVJlZilwdWJsaWNLZXku
Z2V0KCksIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpQHsKKyAgICAgICAgKF9fYnJpZGdlIGlk
KWtTZWNBdHRyS2V5VHlwZTogKF9fYnJpZGdlIGlkKWtTZWNBdHRyS2V5VHlwZVJTQSwKKyAgICAg
ICAgKF9fYnJpZGdlIGlkKWtTZWNBdHRyS2V5Q2xhc3M6IChfX2JyaWRnZSBpZClrU2VjQXR0cktl
eUNsYXNzUHVibGljCisgICAgfSwgbmlsKSk7CisgICAgRVhQRUNUX05PVF9OVUxMKHNlY0tleSk7
CisKKyAgICBhdXRvIHNwa2lEYXRhID0gYWRvcHRDRihTZWNLZXlDb3B5U3ViamVjdFB1YmxpY0tl
eUluZm8oc2VjS2V5LmdldCgpKSk7CisgICAgYXV0byAqbnNTcGtpRGF0YSA9IChfX2JyaWRnZSBO
U0RhdGEgKilzcGtpRGF0YS5nZXQoKTsKKworICAgIC8vIENvbnRpbnVlIHRoZSB0ZXN0LgorICAg
IGF1dG8gc291cmNlU2VjcmV0VG9rZW4gPSBwY20udG9rZW5TaWduYXR1cmVKU09OKFdURjo6YmFz
ZTY0VVJMRW5jb2RlKG5zU3BraURhdGEuYnl0ZXMsIG5zU3BraURhdGEubGVuZ3RoKSk7CisgICAg
RVhQRUNUX0VRKHNvdXJjZVNlY3JldFRva2VuLT5hc09iamVjdCgpLT5zaXplKCksIDR1bCk7Cisg
ICAgRVhQRUNUX1NUUkVRKHNvdXJjZVNlY3JldFRva2VuLT5nZXRTdHJpbmcoInNvdXJjZV9lbmdh
Z2VtZW50X3R5cGUiX3MpLnV0ZjgoKS5kYXRhKCksICJjbGljayIpOworICAgIEVYUEVDVF9TVFJF
UShzb3VyY2VTZWNyZXRUb2tlbi0+Z2V0U3RyaW5nKCJzb3VyY2Vfbm9uY2UiX3MpLnV0ZjgoKS5k
YXRhKCksICJBQkNERUZhYmNkZWYwMTIzNDU2Nzg5Iik7CisgICAgRVhQRUNUX0ZBTFNFKHNvdXJj
ZVNlY3JldFRva2VuLT5nZXRTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW4iX3MpLmlzRW1wdHko
KSk7CisgICAgRVhQRUNUX0VRKHNvdXJjZVNlY3JldFRva2VuLT5nZXRJbnRlZ2VyKCJ2ZXJzaW9u
Il9zKSwgMik7CisKKyAgICAvLyBHZW5lcmF0ZSB0aGUgc2lnbmF0dXJlLgorICAgIFZlY3Rvcjx1
aW50OF90PiBibGluZGVkTWVzc2FnZTsKKyAgICBiYXNlNjRVUkxEZWNvZGUoc291cmNlU2VjcmV0
VG9rZW4tPmdldFN0cmluZygic291cmNlX3NlY3JldF90b2tlbiJfcyksIGJsaW5kZWRNZXNzYWdl
KTsKKworICAgIGF1dG8gYmxpbmRlZFNpZ25hdHVyZSA9IGFkb3B0TlMoW1tOU011dGFibGVEYXRh
IGFsbG9jXSBpbml0V2l0aExlbmd0aDogbW9kdWx1c05CeXRlc10pOworICAgIGNjcnNhYnNzYV9z
aWduX2JsaW5kZWRfbWVzc2FnZShjaXBoZXJzdWl0ZSwgcnNhUHJpdmF0ZUtleSwgYmxpbmRlZE1l
c3NhZ2UuZGF0YSgpLCBibGluZGVkTWVzc2FnZS5zaXplKCksIHN0YXRpY19jYXN0PHVpbnQ4X3Qg
Kj4oW2JsaW5kZWRTaWduYXR1cmUgbXV0YWJsZUJ5dGVzXSksIFtibGluZGVkU2lnbmF0dXJlIGxl
bmd0aF0sIHJuZyk7CisKKyAgICAvLyBDb250aW51ZSB0aGUgdGVzdC4KKyAgICBhdXRvIHBlcnNp
c3RlbnRUb2tlbiA9IHBjbS5jYWxjdWxhdGVTb3VyY2VVbmxpbmthYmxlVG9rZW4oV1RGOjpiYXNl
NjRVUkxFbmNvZGUoW2JsaW5kZWRTaWduYXR1cmUgYnl0ZXNdLCBbYmxpbmRlZFNpZ25hdHVyZSBs
ZW5ndGhdKSk7CisgICAgRVhQRUNUX1RSVUUocGVyc2lzdGVudFRva2VuKTsKKyAgICBFWFBFQ1Rf
RkFMU0UocGVyc2lzdGVudFRva2VuLT50b2tlbkJhc2U2NFVSTC5pc0VtcHR5KCkpOworICAgIEVY
UEVDVF9GQUxTRShwZXJzaXN0ZW50VG9rZW4tPmtleUlEQmFzZTY0VVJMLmlzRW1wdHkoKSk7Cisg
ICAgRVhQRUNUX0ZBTFNFKHBlcnNpc3RlbnRUb2tlbi0+c2lnbmF0dXJlQmFzZTY0VVJMLmlzRW1w
dHkoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIEVI
QVZFKFJTQV9CU1NBKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420994</attachid>
            <date>2021-02-19 11:09:23 -0800</date>
            <delta_ts>2021-02-19 15:18:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222019-20210219110923.patch</filename>
            <type>text/plain</type>
            <size>51299</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJmZDcxYjc4YzVmNThiMjMwZjYwOTg4
N2E1MDM4ZjRmYjk5NTdkZjIuLjdkMzYxMzZlYjI0YmRiYTc3NTc2ODlmZjM2YTdjNGY0NzRmNTUz
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxqaWV3ZW5f
dGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tlbiBhbmQg
Y29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcz
NTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2lsYW5kZXIuCisKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1IYXZlLmg6CisgICAgICAgIEFkZHMgYSBjb21waWxlIHRpbWUgZmxhZyBm
b3IgUlNBQlNTQS4KKwogMjAyMS0wMi0xOCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIGV4cGVyaW1lbnRhbCBzdXBwb3J0IGZvciBDU1MgQ29sb3IgNSBSZWxh
dGl2ZSBDb2xvciBTeW50YXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3Njk4MGM0NGM5ZmIwNjAzZTAyZWY3NGY0
NDk1OTU1NDYyY2ZlMWYwLi45YmNhNDE5Y2MwNmVkYjc0ZmQwMmNkMDY1ZGI0ZjRhNzRhZDQyZWNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMDItMTYgIEppZXdlbiBUYW4gIDxq
aWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEdlbmVyYXRlIHNlY3JldCB0b2tl
biBhbmQgY29ycmVzcG9uZGluZyB1bmxpbmthYmxlIHRva2VuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzczNTgxNDEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2lsYW5kZXIuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBBUEkgdGVzdHMuCisKKyAgICAgICAgVGhpcyBwYXRjaCB1dGlsaXpl
cyBSU0FCU1NBIHRvIGdlbmVyYXRlIHNlY3JldCB0b2tlbiBmb3IgUENNIGZyYXVkIHByZXZlbnRp
b24uCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnOgorICAgICAg
ICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICBQYXBlcndvcmsgdG8gbGluayBDcnlwdG9LaXRDQnJpZGdpbmcu
CisKKyAgICAgICAgKiBsb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNl
Ojppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpzZXRFcGhlbWVyYWxTb3VyY2VOb25jZSk6CisgICAgICAgICogbG9hZGVyL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6YXR0cmlidXRlT25TaXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjplcGhlbWVyYWxTb3VyY2VOb25jZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y2xlYXJFcGhlbWVyYWxTb3VyY2VOb25j
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFs
U291cmNlTm9uY2U6OkVwaGVtZXJhbFNvdXJjZU5vbmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNW
YWxpZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6c2V0RXBoZW1lcmFsU291cmNlTm9uY2UpOiBEZWxldGVkLgorICAgICAgICBHcm91
cHMgZnVuY3Rpb25hbGl0aWVzIGJlaGluZCBIQVZFX1JTQV9CU1NBLgorCisgICAgICAgICogbG9h
ZGVyL2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW06IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmJsaW5kZWRTZWNyZXRKc29uKToK
KyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpjYWxjdWxhdGVQZXJz
aXN0ZW50QmxpbmRlZFRva2VuKToKKyAgICAgICAgSW50cm9kdWNlcyBuZXcgbWV0aG9kcyB0byBn
ZW5lcmF0ZSB0aGUgYmxpbmRlZCBzZWNyZXRzIGFuZCB1bmxpbmthYmxlIHRva2Vucy4KKwogMjAy
MS0wMi0xOSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFBD
TTogUmVxdWVzdCBzZXJ2ZXIgcHVibGljIGtleSB0byBnZW5lcmF0ZSBzZWNyZXQgdG9rZW4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1IYXZlLmgKaW5kZXggMDQ4NmZjZTJjNDE4NmQyZDhiZjI1OTEyNTU5NmU4NjM5Y2Qz
NDUxMS4uZGExNWZkN2RlN2VlNWM4YWFmMDM0OWZmMTAyOGY3MmU1Njk1NGFmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxh
dGZvcm1IYXZlLmgKQEAgLTg4OCwzICs4ODgsOCBAQAogI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDAKICNkZWZpbmUgSEFWRV9TVEFU
SUNfRk9OVF9SRUdJU1RSWSAxCiAjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwKSBcCisgICAgfHwgKFBMQVRGT1JN
KElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTUwMDAwKQorI2Rl
ZmluZSBIQVZFX1JTQV9CU1NBIDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BB
TC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJlZGJjYzljMDM4ODc1ZWFlNDAyY2E1
ZDU3OTU0OGRhMDdjZTc0NmUuLjg4NDkwZTBkOTk3MjdhODc5NjVlYjVjYTBhOGU2MjBiMGE0ZjFk
ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTEzOCw2ICsxMzgsOCBAQAogCQk1NzBBQjhGOTIwQUY2RTNEMDBCOEJFODcgLyog
TlNYUENDb25uZWN0aW9uU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzBBQjhGODIwQUY2RTNEMDBCOEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJ
LmggKi87IH07CiAJCTU3MkExMDc4MjJCNDU2RjUwMEY0MTBDOCAvKiBBdXRoS2l0U1BJLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJBMTA3NzIyQjQ1
NkY1MDBGNDEwQzggLyogQXV0aEtpdFNQSS5oICovOyB9OwogCQk1NzZDQTlENjIyQjg1NEFCMDAz
MDE0M0MgLyogQXBwU1NPU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzZDQTlENTIyQjg1NEFCMDAzMDE0M0MgLyogQXBwU1NPU1BJLmggKi87IH07
CisJCTU3RjFDOTA5MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGMUM5
MDcyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmggKi87IH07
CisJCTU3RjFDOTBBMjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RjFD
OTA4MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbSAqLzsg
fTsKIAkJNTdGRDMxOEEyMkIzNTkzRTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGRDMxODkyMkIzNTkz
RTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLm1tICovOyB9OwogCQk1N0ZEMzE4QjIyQjM1OTg5
MDA4RDBFOEIgLyogQXBwU1NPU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3RkQzMTg4MjJCMzU5MkYwMDhEMEU4QiAvKiBBcHBTU09Tb2Z0
TGluay5oICovOyB9OwogCQk1QzdDNzg3MzIzQUMzRTc3MDA2NUY0N0UgLyogTWFuYWdlZENvbmZp
Z3VyYXRpb25Tb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUM3Qzc4NzEyM0FDM0U3NzAwNjVGNDdFIC8qIE1hbmFnZWRDb25maWd1cmF0aW9u
U29mdExpbmsuaCAqLzsgfTsKQEAgLTM0MSw2ICszNDMsOCBAQAogCQk1NzBBQjhGODIwQUY2RTNE
MDBCOEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TWFBDQ29u
bmVjdGlvblNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJBMTA3NzIyQjQ1
NkY1MDBGNDEwQzggLyogQXV0aEtpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoS2l0U1BJLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NkNBOUQ1MjJCODU0QUIwMDMwMTQzQyAv
KiBBcHBTU09TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwU1NPU1BJLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTU3RjFDOTA3MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJp
ZGdpbmdTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0YxQzkwODI1RENGMENGMDBFOEY2
RUEgLyogQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTdGRDMxODgyMkIzNTkyRjAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcFNTT1NvZnRMaW5rLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU3RkQzMTg5MjJCMzU5M0UwMDhEMEU4QiAvKiBBcHBTU09Tb2Z0
TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFwcFNTT1Nv
ZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzdDNzg3MTIzQUMzRTc3
MDA2NUY0N0UgLyogTWFuYWdlZENvbmZpZ3VyYXRpb25Tb2Z0TGluay5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNYW5hZ2VkQ29uZmlndXJhdGlvblNvZnRMaW5rLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02OTEsNiArNjk1LDggQEAKIAkJCQk1N0ZEMzE4OTIy
QjM1OTNFMDA4RDBFOEIgLyogQXBwU1NPU29mdExpbmsubW0gKi8sCiAJCQkJMDc3RTg3QjAyMjZB
NDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLmggKi8sCiAJCQkJMDc3RTg3QUYy
MjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLm1tICovLAorCQkJCTU3RjFD
OTA3MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oICovLAor
CQkJCTU3RjFDOTA4MjVEQ0YwQ0YwMEU4RjZFQSAvKiBDcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGlu
ay5tbSAqLywKIAkJCQlGNDQyOTE2NjFGQTUyNzA1MDAyQ0M5M0UgLyogRmlsZVNpemVGb3JtYXR0
ZXJDb2NvYS5tbSAqLywKIAkJCQkxQzAyMkVGQzIyQ0ZFOEUwMDA2REYwMUIgLyogR3VuemlwLmNw
cCAqLywKIAkJCQlDREFDQjM1RTIzODczRTQ4MDAxOEQ3Q0UgLyogTWVkaWFUb29sYm94U29mdExp
bmsuY3BwICovLApAQCAtODI4LDYgKzgzNCw3IEBACiAJCQkJMUNDRUU0RjUyMEQ4NzE5MzAwNDdC
MDk3IC8qIENvcmVVSVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MTkxRjQzQTRDNzAw
MkVBQzAyIC8qIENvcmVVSVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUMwOUQwNTMxRTMxQzQ0
MTAwNzI1RjE4IC8qIENyeXB0b0RpZ2VzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTdGMUM5MDky
NURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwQzJEQTE0MTFGM0JFQjQ5MDBEQkMzMTcgLyogRGF0YURldGVjdG9yc0NvcmVT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NThBMUY0NTEzMEYwMEY0RUJCNiAvKiBEYXRh
RGV0ZWN0b3JzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzVBRjkxQTFGNDNBNEM3MDAyRUFD
MDIgLyogRGF0YURldGVjdG9yc1VJU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTEwMzcsNiArMTA0
NCw3IEBACiAJCQkJMENGOTlDQTgxRjczODQzNzAwN0VFNzkzIC8qIENvcmVNZWRpYVNvZnRMaW5r
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDNzdDOEM5MjVENzk3MjAwMDYzNUUwQyAvKiBDb3Jl
VGV4dFNvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDMDlEMDU2MUUzMUM0NjUwMDcy
NUYxOCAvKiBDcnlwdG9EaWdlc3RDb21tb25DcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTdGMUM5MEEyNURDRjBDRjAwRThGNkVBIC8qIENyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTExNzVCNTgxRjZCNDcwNTAwQzRCOUYwIC8qIERlZmF1bHRT
ZWFyY2hQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNDQyOTE2NDFGQTUyNjcwMDAy
Q0M5M0UgLyogRmlsZVNpemVGb3JtYXR0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ0Mjkx
NjgxRkE1MjcwNTAwMkNDOTNFIC8qIEZpbGVTaXplRm9ybWF0dGVyQ29jb2EubW0gaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRvS2l0
Q0JyaWRnaW5nU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQ3J5cHRv
S2l0Q0JyaWRnaW5nU29mdExpbmsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTkwZDRmZTVmM2FlZTNhNjM4YWJl
MDE1MmM0NjUwMzM5MzA5ZjY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5oCkBAIC0wLDAgKzEsMzcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEhBVkUoUlNBX0JTU0EpCisKKyNpbXBv
cnQgPENyeXB0b0tpdENCcmlkZ2luZy9SU0FCU1NBLmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtp
bmcuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfSEVBREVSKFBBTCwgQ3J5cHRvS2l0Q0Jy
aWRnaW5nKTsKKworU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBSU0FCU1NBVG9rZW5C
bGluZGVyKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Nv
Y29hL0NyeXB0b0tpdENCcmlkZ2luZ1NvZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWJjNzVh
Y2MzZGQ3NDQ4ZDBhMTA5NTc4ZGJmMzAyMjRkNzJiNDlhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9DcnlwdG9LaXRDQnJpZGdpbmdTb2Z0TGluay5tbQpA
QCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYg
SEFWRShSU0FfQlNTQSkKKworI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisKK1NPRlRfTElO
S19QUklWQVRFX0ZSQU1FV09SS19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ3J5cHRvS2l0
Q0JyaWRnaW5nLCBQQUxfRVhQT1JUKTsKKworU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBDcnlwdG9LaXRDQnJpZGdpbmcsIFJTQUJTU0FUb2tlbkJsaW5kZXIsIFBB
TF9FWFBPUlQpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXND
b2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGJmNmFlMTYx
ODdhYmEwNzE1NzJkYTA3OTIzYWMzMzBiMjI4ZjY5YzUuLjlkYTUyMWE3YTVkNDY0YTg0MjA5YzNj
YjAwOWRkOWExYWVhNjBmMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2Nv
YS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMTY4LDYgKzE2
OCw3IEBAIGluc3BlY3Rvci9tYWMvUGFnZURlYnVnZ2VyTWFjLm1tCiBsb2FkZXIvYXJjaGl2ZS9j
Zi9MZWdhY3lXZWJBcmNoaXZlLmNwcAogbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2
ZU1hYy5tbQogbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5tbQorbG9hZGVyL2Nv
Y29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0KIGxvYWRlci9jb2NvYS9TdWJyZXNv
dXJjZUxvYWRlckNvY29hLm1tCiBsb2FkZXIvaW9zL0xlZ2FjeVByZXZpZXdMb2FkZXIubW0KIGxv
YWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGQxZmZmZWJlZmVmMjBjNjBjOTA1
MDliYWM3MWY0MjNiNDNhNmM0Ni4uMjI0OGU3N2M4Y2M3NDY5ZmI3MGE1YmYxYzljOWRlYzkzZDZh
NDhmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtOTQxNiw2ICs5NDE2LDcgQEAKIAkJNTdFRUFBNTcxRUEwQUZCQjAwNzAxMTI0
IC8qIENvbW1vbkNyeXB0b0RFUlV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDb21tb25DcnlwdG9ERVJVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1N0VGNUU1RjFEMjBDODM5MDAxNzFFNjAgLyogVGV4dENvZGVjUmVw
bGFjZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENvZGVjUmVw
bGFjZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdFRjVFNjExRDIwRDI4
NzAwMTcxRTYwIC8qIFRleHRDb2RlY1JlcGxhY2VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRDb2RlY1JlcGxhY2VtZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTdGMUM4RTMyNURDNkVFNzAwRThGNkVBIC8qIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1N0Y4MjczOTFEQjcyQzIyMDA5RDJCRjQgLyogUnNhSGFzaGVkS2V5R2VuUGFy
YW1zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBSc2FIYXNoZWRLZXlHZW5QYXJhbXMuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1N0ZFREQzRDFEQjZENDdGMDBFQjk2RjUgLyogUnNhS2V5R2VuUGFyYW1z
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBSc2FLZXlHZW5QYXJhbXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1N0ZFREQzRTFEQjZENTkyMDBFQjk2RjUgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2Vu
UGFyYW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRo
bVJzYUtleUdlblBhcmFtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTczMSw3
ICs5NzMyLDcgQEAKIAkJNkEyMkU4NzIxRjEwNDJDNDAwRjU0NkMzIC8qIEluc3BlY3RvckNhbnZh
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JDYW52YXMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2QTcyNzk4ODFGMTZDMjlCMDAzRjM5QjggLyogSW5zcGVjdG9y
U2hhZGVyUHJvZ3JhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0
b3JTaGFkZXJQcm9ncmFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZBNzI3OTg5
MUYxNkMyOUIwMDNGMzlCOCAvKiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvclNoYWRlclByb2dyYW0uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QjBBMDdGMDIxRkE0QjVDMDBENTczOTEgLyog
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkIwQTA3RjAyMUZBNEI1
QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTZCMEEwN0YxMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCMUY0ODBGMjI5ODlFQzQwMERF
OEI4MiAvKiBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNkI0RDQxMkIyMzk4M0Y4ODAwMjQ5NEMyIC8qIExvZ2dlZEluU3RhdHVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IExvZ2dlZEluU3RhdHVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yMjk0OSw2ICsyMjk1MCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk3RURBQUZDODE5
QTJDQkQxMDAzNERGRDEgLyogRGlza0NhY2hlTW9uaXRvckNvY29hLmggKi8sCiAJCQkJN0U0REUx
MEMxOThCMTBCNjAwNTFDQjAyIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSAqLywKKwkJCQk1
N0YxQzhFMzI1REM2RUU3MDBFOEY2RUEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5t
bSAqLywKIAkJCQk3RThGQURDMzE5OUE5NUIxMDA3MTQ5NjggLyogU3VicmVzb3VyY2VMb2FkZXJD
b2NvYS5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gY29jb2E7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAppbmRleCA4YTk3M2YwMzQ1NDQ1
NDc1NGQwMTk1NGFmM2ZhZjhiOGZhZGI1OGNkLi5hNDYyMjA0ODk1ZTdmZThjYWNjMWU2MDhkYzdi
MjE4ZDRkMGI3YjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUcmlnZ2VyQXR0cmli
dXRpb25QYXRoW10gPSAiLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvdHJp
Z2dlci1hdHRyaWJ1dGlvbi8iOwotc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRUb2tlblNpZ25hdHVyZVBhdGhbXSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC9zaWduLXVubGlua2FibGUtdG9rZW4vIjsKK3N0YXRpYyBjb25zdCBjaGFyIHBy
aXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVQYXRoW10gPSAiLy53ZWxsLWtub3du
L3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvc2lnbi1zZWNyZXQtdG9rZW4vIjsKIHN0YXRpYyBj
b25zdCBjaGFyIHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlQYXRoW10gPSAi
Ly53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvZ2V0LXVubGlua2FibGUtdG9r
ZW4tcHVibGljLWtleS8iOwogc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRSZXBvcnRBdHRyaWJ1dGlvblBhdGhbXSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC9yZXBvcnQtYXR0cmlidXRpb24vIjsKIGNvbnN0IHNpemVfdCBwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHJpZ2dlckRhdGFQYXRoU2VnbWVudFNpemUgPSAyOwpA
QCAtMTE2LDE1ICsxMTYsMTUgQEAgYm9vbCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6aGFzSGln
aGVyUHJpb3JpdHlUaGFuKGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW4KICAgICByZXR1cm4g
bV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhLT5wcmlvcml0eSA+IG90aGVyLm1fYXR0cmlidXRpb25U
cmlnZ2VyRGF0YS0+cHJpb3JpdHk7CiB9CiAKLVVSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
dG9rZW5TaWduYXR1cmVVUkwoKSBjb25zdAorVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojph
dHRyaWJ1dGlvblJlcG9ydFVSTCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2VwaGVtZXJhbFNvdXJj
ZU5vbmNlIHx8ICFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5pc1ZhbGlkKCkpCisgICAgaWYgKCFp
c1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBVUkwoKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImh0dHBzOi8vIik7CiAgICAgYnVpbGRl
ci5hcHBlbmQobV9zb3VyY2VTaXRlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKLSAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVy
ZVBhdGgpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbChwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFJlcG9ydEF0dHJpYnV0aW9uUGF0aCk7CiAKICAgICBVUkwgdXJsIHsgVVJMKCksIGJ1aWxkZXIu
dG9TdHJpbmcoKSB9OwogICAgIGlmICh1cmwuaXNWYWxpZCgpKQpAQCAtMTMzLDEyICsxMzMsNTEg
QEAgVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojp0b2tlblNpZ25hdHVyZVVSTCgpIGNvbnN0
CiAgICAgcmV0dXJuIFVSTCgpOwogfQogCi1VUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRv
a2VuUHVibGljS2V5VVJMKCkgY29uc3QKK1JlZjxKU09OOjpPYmplY3Q+IFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydEpTT04oKSBjb25zdAoreworICAgIGF1dG8gcmVw
b3J0RGV0YWlscyA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CisgICAgaWYgKCFtX2F0dHJpYnV0
aW9uVHJpZ2dlckRhdGEgfHwgIWlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIHJlcG9ydERldGFp
bHM7CisKKyAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5
cGUiX3MsICJjbGljayJfcyk7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vf
c2l0ZSJfcywgbV9zb3VyY2VTaXRlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKKyAgICBy
ZXBvcnREZXRhaWxzLT5zZXRJbnRlZ2VyKCJzb3VyY2VfaWQiX3MsIG1fc291cmNlSUQuaWQpOwor
ICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygiYXR0cmlidXRlZF9vbl9zaXRlIl9zLCBtX2F0
dHJpYnV0ZU9uU2l0ZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7CisgICAgcmVwb3J0RGV0
YWlscy0+c2V0SW50ZWdlcigidHJpZ2dlcl9kYXRhIl9zLCBtX2F0dHJpYnV0aW9uVHJpZ2dlckRh
dGEtPmRhdGEpOworICAgIHJlcG9ydERldGFpbHMtPnNldEludGVnZXIoInZlcnNpb24iX3MsIDEp
OworICAgIHJldHVybiByZXBvcnREZXRhaWxzOworfQorCisvLyBNQVJLOiAtIEZyYXVkIFByZXZl
bnRpb24KKworc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBFcGhlbWVyYWxTb3VyY2VOb25jZVJl
cXVpcmVkTnVtYmVyT2ZCeXRlcyA9IDE2OworCitib29sIFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6aXNWYWxpZCgpIGNvbnN0CiB7CisgICAgLy8gRklYTUU6
IEludmVzdGlnYXRlIGlmIHdlIGNhbiBkbyB3aXRoIGEgc2ltcGxlIGxlbmd0aCBjaGVjayBpbnN0
ZWFkIG9mIGRlY29kaW5nLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjE5NDUKKyAgICBWZWN0b3I8dWludDhfdD4gZGlnZXN0OworICAgIGlmICghYmFz
ZTY0VVJMRGVjb2RlKG5vbmNlLCBkaWdlc3QpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIGRpZ2VzdC5zaXplKCkgPT0gRXBoZW1lcmFsU291cmNlTm9uY2VSZXF1aXJlZE51bWJl
ck9mQnl0ZXM7Cit9CisKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNldEVwaGVtZXJh
bFNvdXJjZU5vbmNlKEVwaGVtZXJhbFNvdXJjZU5vbmNlJiYgbm9uY2UpCit7CisgICAgaWYgKCFu
b25jZS5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBtX2VwaGVtZXJhbFNvdXJjZU5v
bmNlID0gV1RGTW92ZShub25jZSk7Cit9CisKK1VSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
dG9rZW5TaWduYXR1cmVVUkwoKSBjb25zdAoreworICAgIGlmICghbV9lcGhlbWVyYWxTb3VyY2VO
b25jZSB8fCAhbV9lcGhlbWVyYWxTb3VyY2VOb25jZS0+aXNWYWxpZCgpKQorICAgICAgICByZXR1
cm4gVVJMKCk7CisKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJodHRwczovLyIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1fc291cmNlU2l0ZS5y
ZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKHBy
aXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlQYXRoKTsKKyAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVBhdGgpOwog
CiAgICAgVVJMIHVybCB7IFVSTCgpLCBidWlsZGVyLnRvU3RyaW5nKCkgfTsKICAgICBpZiAodXJs
LmlzVmFsaWQoKSkKQEAgLTE0NywyOCArMTg2LDEyIEBAIFVSTCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6dG9rZW5QdWJsaWNLZXlVUkwoKSBjb25zdAogICAgIHJldHVybiBVUkwoKTsKIH0KIAot
UmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRva2VuU2lnbmF0dXJl
SlNPTigpIGNvbnN0Ci17Ci0gICAgYXV0byByZXBvcnREZXRhaWxzID0gSlNPTjo6T2JqZWN0Ojpj
cmVhdGUoKTsKLSAgICBpZiAoIW1fZXBoZW1lcmFsU291cmNlTm9uY2UgfHwgIW1fZXBoZW1lcmFs
U291cmNlTm9uY2UtPmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7Ci0K
LSAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5cGUiX3Ms
ICJjbGljayJfcyk7Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vfbm9uY2Ui
X3MsIG1fZXBoZW1lcmFsU291cmNlTm9uY2UtPm5vbmNlKTsKLSAgICByZXBvcnREZXRhaWxzLT5z
ZXRTdHJpbmcoInVubGlua2FibGVfdG9rZW4iX3MsICJUT0RPIl9zKTsKLSAgICByZXBvcnREZXRh
aWxzLT5zZXRJbnRlZ2VyKCJ2ZXJzaW9uIl9zLCAyKTsKLSAgICByZXR1cm4gcmVwb3J0RGV0YWls
czsKLX0KLQotVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydFVS
TCgpIGNvbnN0CitVUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRva2VuUHVibGljS2V5VVJM
KCkgY29uc3QKIHsKLSAgICBpZiAoIWlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIFVSTCgpOwot
CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
aHR0cHM6Ly8iKTsKICAgICBidWlsZGVyLmFwcGVuZChtX3NvdXJjZVNpdGUucmVnaXN0cmFibGVE
b21haW4uc3RyaW5nKCkpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbChwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFJlcG9ydEF0dHJpYnV0aW9uUGF0aCk7CisgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlQYXRoKTsKIAogICAgIFVS
TCB1cmwgeyBVUkwoKSwgYnVpbGRlci50b1N0cmluZygpIH07CiAgICAgaWYgKHVybC5pc1ZhbGlk
KCkpCkBAIC0xNzcsMTkgKzIwMCwyNCBAQCBVUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0
dHJpYnV0aW9uUmVwb3J0VVJMKCkgY29uc3QKICAgICByZXR1cm4gVVJMKCk7CiB9CiAKLVJlZjxK
U09OOjpPYmplY3Q+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydEpT
T04oKSBjb25zdAorUmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRv
a2VuU2lnbmF0dXJlSlNPTihjb25zdCBTdHJpbmcmIHNlcnZlclB1YmxpY0tleUJhc2U2NFVSTCkK
IHsKICAgICBhdXRvIHJlcG9ydERldGFpbHMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwotICAg
IGlmICghbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhIHx8ICFpc1ZhbGlkKCkpCisgICAgaWYgKCFt
X2VwaGVtZXJhbFNvdXJjZU5vbmNlIHx8ICFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5pc1ZhbGlk
KCkpCisgICAgICAgIHJldHVybiByZXBvcnREZXRhaWxzOworCisgICAgU3RyaW5nIHRva2VuOwor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHRva2VuID0gc291cmNlU2VjcmV0VG9rZW4oc2VydmVy
UHVibGljS2V5QmFzZTY0VVJMKTsKKyNlbmRpZgorICAgIGlmICh0b2tlbi5pc0VtcHR5KCkpCiAg
ICAgICAgIHJldHVybiByZXBvcnREZXRhaWxzOwogCiAgICAgcmVwb3J0RGV0YWlscy0+c2V0U3Ry
aW5nKCJzb3VyY2VfZW5nYWdlbWVudF90eXBlIl9zLCAiY2xpY2siX3MpOwotICAgIHJlcG9ydERl
dGFpbHMtPnNldFN0cmluZygic291cmNlX3NpdGUiX3MsIG1fc291cmNlU2l0ZS5yZWdpc3RyYWJs
ZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigic291cmNl
X2lkIl9zLCBtX3NvdXJjZUlELmlkKTsKLSAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoImF0
dHJpYnV0ZWRfb25fc2l0ZSJfcywgbV9hdHRyaWJ1dGVPblNpdGUucmVnaXN0cmFibGVEb21haW4u
c3RyaW5nKCkpOwotICAgIHJlcG9ydERldGFpbHMtPnNldEludGVnZXIoInRyaWdnZXJfZGF0YSJf
cywgbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhLT5kYXRhKTsKLSAgICByZXBvcnREZXRhaWxzLT5z
ZXRJbnRlZ2VyKCJ2ZXJzaW9uIl9zLCAxKTsKKyAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmco
InNvdXJjZV9ub25jZSJfcywgbV9lcGhlbWVyYWxTb3VyY2VOb25jZS0+bm9uY2UpOworICAgIHJl
cG9ydERldGFpbHMtPnNldFN0cmluZygic291cmNlX3NlY3JldF90b2tlbiJfcywgdG9rZW4pOwor
ICAgIHJlcG9ydERldGFpbHMtPnNldEludGVnZXIoInZlcnNpb24iX3MsIDIpOwogICAgIHJldHVy
biByZXBvcnREZXRhaWxzOwogfQogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oCmluZGV4IGM4ZDk5
NGY4MTQ2Mzg5N2FjNTFiMmNhMGY0OGYxMDgyODVjMjJlOGYuLmVmNGYwZTA0NzVkMWZhY2U4OGM3
YjkyODRkNmUwNDM5YzY5OWE5OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5oCkBAIC0zNiw2ICszNiwxNiBAQAogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorI2lm
IFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNlbmRpZgorCisj
aWYgUExBVEZPUk0oQ09DT0EpCitPQkpDX0NMQVNTIFJTQUJTU0FUb2tlblJlYWR5OworT0JKQ19D
TEFTUyBSU0FCU1NBVG9rZW5XYWl0aW5nQWN0aXZhdGlvbjsKK09CSkNfQ0xBU1MgUlNBQlNTQVRv
a2VuQmxpbmRlcjsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFByaXZh
dGVDbGlja01lYXN1cmVtZW50IHsKQEAgLTIwMSwzMSArMjExLDYgQEAgcHVibGljOgogICAgICAg
ICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNl
OwogICAgIH07CiAKLSAgICBzdHJ1Y3QgRXBoZW1lcmFsU291cmNlTm9uY2UgewotICAgICAgICBz
dGF0aWMgY29uc3RleHByIHVpbnQzMl90IFJlcXVpcmVkTnVtYmVyT2ZCeXRlcyA9IDE2OwotCi0g
ICAgICAgIEVwaGVtZXJhbFNvdXJjZU5vbmNlKCkgPSBkZWZhdWx0OwotICAgICAgICBleHBsaWNp
dCBFcGhlbWVyYWxTb3VyY2VOb25jZShjb25zdCBTdHJpbmcmIG5vbmNlU3RyaW5nKQotICAgICAg
ICAgICAgOiBub25jZSB7IG5vbmNlU3RyaW5nIH0KLSAgICAgICAgewotICAgICAgICB9Ci0KLSAg
ICAgICAgLy8gRklYTUU6IEludmVzdGlnYXRlIGlmIHdlIGNhbiBkbyB3aXRoIGEgc2ltcGxlIGxl
bmd0aCBjaGVjayBpbnN0ZWFkIG9mIGRlY29kaW5nLgotICAgICAgICAvLyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxOTQ1Ci0gICAgICAgIGJvb2wgaXNWYWxpZCgp
IGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIFZlY3Rvcjx1aW50OF90PiBkaWdlc3Q7Ci0g
ICAgICAgICAgICBpZiAoIWJhc2U2NFVSTERlY29kZShub25jZSwgZGlnZXN0KSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICByZXR1cm4gZGlnZXN0LnNpemUoKSA9
PSBSZXF1aXJlZE51bWJlck9mQnl0ZXM7Ci0gICAgICAgIH0KLQotICAgICAgICBTdHJpbmcgbm9u
Y2U7Ci0KLSAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYpIGNvbnN0OwotICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9u
YWw8RXBoZW1lcmFsU291cmNlTm9uY2U+IGRlY29kZShEZWNvZGVyJik7Ci0gICAgfTsKLQogICAg
IHN0cnVjdCBQcmlvcml0eSB7CiAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgTWF4
RW50cm9weSA9IDYzOwogCkBAIC0yNzcsMTYgKzI2MiwxMCBAQCBwdWJsaWM6CiAgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIEV4cGVjdGVkPEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIFN0cmluZz4g
cGFyc2VBdHRyaWJ1dGlvblJlcXVlc3QoY29uc3QgVVJMJiByZWRpcmVjdFVSTCk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgT3B0aW9uYWw8U2Vjb25kcz4gYXR0cmlidXRlQW5kR2V0RWFybGllc3RUaW1l
VG9TZW5kKEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBoYXNIaWdoZXJQcmlvcml0eVRoYW4oY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmKSBj
b25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBVUkwgdG9rZW5QdWJsaWNLZXlVUkwoKSBjb25zdDsK
LSAgICBXRUJDT1JFX0VYUE9SVCBVUkwgdG9rZW5TaWduYXR1cmVVUkwoKSBjb25zdDsKLSAgICBX
RUJDT1JFX0VYUE9SVCBSZWY8SlNPTjo6T2JqZWN0PiB0b2tlblNpZ25hdHVyZUpTT04oKSBjb25z
dDsKICAgICBXRUJDT1JFX0VYUE9SVCBVUkwgYXR0cmlidXRpb25SZXBvcnRVUkwoKSBjb25zdDsK
ICAgICBXRUJDT1JFX0VYUE9SVCBSZWY8SlNPTjo6T2JqZWN0PiBhdHRyaWJ1dGlvblJlcG9ydEpT
T04oKSBjb25zdDsKICAgICBjb25zdCBTb3VyY2VTaXRlJiBzb3VyY2VTaXRlKCkgY29uc3QgeyBy
ZXR1cm4gbV9zb3VyY2VTaXRlOyB9OwogICAgIGNvbnN0IEF0dHJpYnV0ZU9uU2l0ZSYgYXR0cmli
dXRlT25TaXRlKCkgY29uc3QgeyByZXR1cm4gbV9hdHRyaWJ1dGVPblNpdGU7IH07Ci0gICAgdm9p
ZCBzZXRFcGhlbWVyYWxTb3VyY2VOb25jZShFcGhlbWVyYWxTb3VyY2VOb25jZSYmIG5vbmNlKSB7
IG1fZXBoZW1lcmFsU291cmNlTm9uY2UgPSBXVEZNb3ZlKG5vbmNlKTsgfTsKLSAgICBPcHRpb25h
bDxFcGhlbWVyYWxTb3VyY2VOb25jZT4gZXBoZW1lcmFsU291cmNlTm9uY2UoKSBjb25zdCB7IHJl
dHVybiAhbV9lcGhlbWVyYWxTb3VyY2VOb25jZSA/IFdURjo6bnVsbG9wdCA6IG1fZXBoZW1lcmFs
U291cmNlTm9uY2UtPmlzVmFsaWQoKSA/IG1fZXBoZW1lcmFsU291cmNlTm9uY2UgOiBXVEY6Om51
bGxvcHQ7IH07Ci0gICAgdm9pZCBjbGVhckVwaGVtZXJhbFNvdXJjZU5vbmNlKCkgeyBtX2VwaGVt
ZXJhbFNvdXJjZU5vbmNlICA9IFdURjo6bnVsbG9wdDsgfTsKICAgICBXYWxsVGltZSB0aW1lT2ZB
ZENsaWNrKCkgY29uc3QgeyByZXR1cm4gbV90aW1lT2ZBZENsaWNrOyB9CiAgICAgT3B0aW9uYWw8
V2FsbFRpbWU+IGVhcmxpZXN0VGltZVRvU2VuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZWFybGllc3RU
aW1lVG9TZW5kOyB9OwogICAgIHZvaWQgc2V0RWFybGllc3RUaW1lVG9TZW5kKFdhbGxUaW1lIHRp
bWUpIHsgbV9lYXJsaWVzdFRpbWVUb1NlbmQgPSB0aW1lOyB9CkBAIC0yOTcsMTEgKzI3Niw0MCBA
QCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2VEZXNjcmlwdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fc291cmNlRGVzY3JpcHRpb247IH0KICAgICBjb25zdCBTdHJpbmcmIHB1cmNoYXNl
cigpIGNvbnN0IHsgcmV0dXJuIG1fcHVyY2hhc2VyOyB9CiAKKyAgICAvLyBNQVJLOiAtIEZyYXVk
IFByZXZlbnRpb24KKyAgICBzdHJ1Y3QgRXBoZW1lcmFsU291cmNlTm9uY2UgeworICAgICAgICBT
dHJpbmcgbm9uY2U7CisKKyAgICAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc1ZhbGlkKCkgY29u
c3Q7CisKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYpIGNvbnN0OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9u
YWw8RXBoZW1lcmFsU291cmNlTm9uY2U+IGRlY29kZShEZWNvZGVyJik7CisgICAgfTsKKworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RXBoZW1lcmFsU291cmNlTm9uY2UoRXBoZW1lcmFsU291
cmNlTm9uY2UmJik7CisgICAgT3B0aW9uYWw8RXBoZW1lcmFsU291cmNlTm9uY2U+IGVwaGVtZXJh
bFNvdXJjZU5vbmNlKCkgY29uc3QgeyByZXR1cm4gbV9lcGhlbWVyYWxTb3VyY2VOb25jZTsgfTsK
KyAgICB2b2lkIGNsZWFyRXBoZW1lcmFsU291cmNlTm9uY2UoKSB7IG1fZXBoZW1lcmFsU291cmNl
Tm9uY2UucmVzZXQoKTsgfTsKKworICAgIHN0cnVjdCBTb3VyY2VVbmxpbmthYmxlVG9rZW4gewor
ICAgICAgICBTdHJpbmcgdG9rZW5CYXNlNjRVUkw7CisgICAgICAgIFN0cmluZyBrZXlJREJhc2U2
NFVSTDsKKyAgICAgICAgU3RyaW5nIHNpZ25hdHVyZUJhc2U2NFVSTDsKKyAgICB9OworCisgICAg
V0VCQ09SRV9FWFBPUlQgVVJMIHRva2VuUHVibGljS2V5VVJMKCkgY29uc3Q7CisgICAgV0VCQ09S
RV9FWFBPUlQgVVJMIHRva2VuU2lnbmF0dXJlVVJMKCkgY29uc3Q7CisKKyAgICBXRUJDT1JFX0VY
UE9SVCBSZWY8SlNPTjo6T2JqZWN0PiB0b2tlblNpZ25hdHVyZUpTT04oY29uc3QgU3RyaW5nJiBz
ZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkwpOworICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPFNv
dXJjZVVubGlua2FibGVUb2tlbj4gY2FsY3VsYXRlU291cmNlVW5saW5rYWJsZVRva2VuKGNvbnN0
IFN0cmluZyYgc2VydmVyUmVzcG9uc2VCYXNlNjRVUkwpOworCiAgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gZGVjb2Rl
KERlY29kZXImKTsKIAogcHJpdmF0ZToKICAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyAgICBTdHJpbmcgc291cmNlU2VjcmV0VG9rZW4oY29uc3QgU3RyaW5n
JiBzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkwpOworI2VuZGlmCiAKICAgICBTb3VyY2VJRCBtX3Nv
dXJjZUlEOwogICAgIFNvdXJjZVNpdGUgbV9zb3VyY2VTaXRlOwpAQCAtMzEwLDkgKzMxOCwxOSBA
QCBwcml2YXRlOgogICAgIFN0cmluZyBtX3B1cmNoYXNlcjsKICAgICBXYWxsVGltZSBtX3RpbWVP
ZkFkQ2xpY2s7CiAKLSAgICBPcHRpb25hbDxFcGhlbWVyYWxTb3VyY2VOb25jZT4gbV9lcGhlbWVy
YWxTb3VyY2VOb25jZTsKICAgICBPcHRpb25hbDxBdHRyaWJ1dGlvblRyaWdnZXJEYXRhPiBtX2F0
dHJpYnV0aW9uVHJpZ2dlckRhdGE7CiAgICAgT3B0aW9uYWw8V2FsbFRpbWU+IG1fZWFybGllc3RU
aW1lVG9TZW5kOworCisgICAgc3RydWN0IFNvdXJjZVNlY3JldFRva2VuIHsKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyAgICAgICAgUmV0YWluUHRyPFJTQUJTU0FUb2tlbkJsaW5kZXI+IGJsaW5kZXI7
CisgICAgICAgIFJldGFpblB0cjxSU0FCU1NBVG9rZW5XYWl0aW5nQWN0aXZhdGlvbj4gd2FpdGlu
Z1Rva2VuOworICAgICAgICBSZXRhaW5QdHI8UlNBQlNTQVRva2VuUmVhZHk+IHJlYWR5VG9rZW47
CisjZW5kaWYKKyAgICB9OworCisgICAgT3B0aW9uYWw8RXBoZW1lcmFsU291cmNlTm9uY2U+IG1f
ZXBoZW1lcmFsU291cmNlTm9uY2U7CisgICAgU291cmNlU2VjcmV0VG9rZW4gbV9zb3VyY2VTZWNy
ZXRUb2tlbjsKIH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbSBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29h
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjUxZTY2NmFhMmYwZGU4MzEzYTZhYzQwYWJkMDM3OWNlYmYzNjNlYWQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRDb2NvYS5tbQpAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIgorCisj
aW1wb3J0IDxwYWwvY29jb2EvQ3J5cHRvS2l0Q0JyaWRnaW5nU29mdExpbmsuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitTdHJpbmcgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNvdXJjZVNl
Y3JldFRva2VuKGNvbnN0IFN0cmluZyYgc2VydmVyUHVibGljS2V5QmFzZTY0VVJMKQoreworI2lm
IEhBVkUoUlNBX0JTU0EpCisgICAgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gc2VydmVyUHVi
bGljS2V5RGF0YTsKKyAgICAgICAgaWYgKCFiYXNlNjRVUkxEZWNvZGUoc2VydmVyUHVibGljS2V5
QmFzZTY0VVJMLCBzZXJ2ZXJQdWJsaWNLZXlEYXRhKSkKKyAgICAgICAgICAgIHJldHVybiBlbXB0
eVN0cmluZygpOworICAgICAgICBhdXRvIHNlcnZlclB1YmxpY0tleSA9IGFkb3B0TlMoW1tOU0Rh
dGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6c2VydmVyUHVibGljS2V5RGF0YS5kYXRhKCkgbGVuZ3Ro
OnNlcnZlclB1YmxpY0tleURhdGEuc2l6ZSgpXSk7CisKKyAgICAgICAgLy8gRklYTUUoMjIyMDE4
KTogQ2hlY2sgZXJyb3IuCisgICAgICAgIG1fc291cmNlU2VjcmV0VG9rZW4uYmxpbmRlciA9IGFk
b3B0TlMoW1BBTDo6YWxsb2NSU0FCU1NBVG9rZW5CbGluZGVySW5zdGFuY2UoKSBpbml0V2l0aFB1
YmxpY0tleTpzZXJ2ZXJQdWJsaWNLZXkuZ2V0KCkgZXJyb3I6bnVsbHB0cl0pOworICAgICAgICBp
ZiAoIW1fc291cmNlU2VjcmV0VG9rZW4uYmxpbmRlcikKKyAgICAgICAgICAgIHJldHVybiBlbXB0
eVN0cmluZygpOworICAgIH0KKworICAgIC8vIEZJWE1FKDIyMjAxOCk6IENoZWNrIGVycm9yLgor
ICAgIG1fc291cmNlU2VjcmV0VG9rZW4ud2FpdGluZ1Rva2VuID0gW21fc291cmNlU2VjcmV0VG9r
ZW4uYmxpbmRlciB0b2tlbldhaXRpbmdBY3RpdmF0aW9uV2l0aENvbnRlbnQ6bnVsbHB0ciBlcnJv
cjpudWxscHRyXTsKKyAgICBpZiAoIW1fc291cmNlU2VjcmV0VG9rZW4ud2FpdGluZ1Rva2VuKQor
ICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKworICAgIHJldHVybiBXVEY6OmJhc2U2NFVS
TEVuY29kZShbbV9zb3VyY2VTZWNyZXRUb2tlbi53YWl0aW5nVG9rZW4gYmxpbmRlZE1lc3NhZ2Vd
LmJ5dGVzLCBbbV9zb3VyY2VTZWNyZXRUb2tlbi53YWl0aW5nVG9rZW4gYmxpbmRlZE1lc3NhZ2Vd
Lmxlbmd0aCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRV
UkwpOworICAgIHJldHVybiBlbXB0eVN0cmluZygpOworI2VuZGlmIC8vIEhBVkUoUlNBX0JTU0Ep
Cit9CisKK2F1dG8gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmNhbGN1bGF0ZVNvdXJjZVVubGlu
a2FibGVUb2tlbihjb25zdCBTdHJpbmcmIHNlcnZlclJlc3BvbnNlQmFzZTY0VVJMKSAtPiBPcHRp
b25hbDxTb3VyY2VVbmxpbmthYmxlVG9rZW4+Cit7CisjaWYgSEFWRShSU0FfQlNTQSkKKyAgICBp
ZiAoIW1fc291cmNlU2VjcmV0VG9rZW4ud2FpdGluZ1Rva2VuKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gc2VydmVyUmVzcG9u
c2VEYXRhOworICAgICAgICBpZiAoIWJhc2U2NFVSTERlY29kZShzZXJ2ZXJSZXNwb25zZUJhc2U2
NFVSTCwgc2VydmVyUmVzcG9uc2VEYXRhKSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisgICAgICAgIGF1dG8gc2VydmVyUmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9j
XSBpbml0V2l0aEJ5dGVzOnNlcnZlclJlc3BvbnNlRGF0YS5kYXRhKCkgbGVuZ3RoOnNlcnZlclJl
c3BvbnNlRGF0YS5zaXplKCldKTsKKworICAgICAgICAvLyBGSVhNRSgyMjIwMTgpOiBDaGVjayBl
cnJvci4KKyAgICAgICAgbV9zb3VyY2VTZWNyZXRUb2tlbi5yZWFkeVRva2VuID0gW21fc291cmNl
U2VjcmV0VG9rZW4ud2FpdGluZ1Rva2VuIGFjdGl2YXRlVG9rZW5XaXRoU2VydmVyUmVzcG9uc2U6
c2VydmVyUmVzcG9uc2UuZ2V0KCkgZXJyb3I6bnVsbHB0cl07CisgICAgICAgIGlmICghbV9zb3Vy
Y2VTZWNyZXRUb2tlbi5yZWFkeVRva2VuKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKyAgICB9CisKKyAgICBTb3VyY2VVbmxpbmthYmxlVG9rZW4gdG9rZW47CisgICAgdG9rZW4u
dG9rZW5CYXNlNjRVUkwgPSBXVEY6OmJhc2U2NFVSTEVuY29kZShbbV9zb3VyY2VTZWNyZXRUb2tl
bi5yZWFkeVRva2VuIHRva2VuQ29udGVudF0uYnl0ZXMsIFttX3NvdXJjZVNlY3JldFRva2VuLnJl
YWR5VG9rZW4gdG9rZW5Db250ZW50XS5sZW5ndGgpOworICAgIHRva2VuLmtleUlEQmFzZTY0VVJM
ID0gV1RGOjpiYXNlNjRVUkxFbmNvZGUoW21fc291cmNlU2VjcmV0VG9rZW4ucmVhZHlUb2tlbiBr
ZXlJZF0uYnl0ZXMsIFttX3NvdXJjZVNlY3JldFRva2VuLnJlYWR5VG9rZW4ga2V5SWRdLmxlbmd0
aCk7CisgICAgdG9rZW4uc2lnbmF0dXJlQmFzZTY0VVJMID0gV1RGOjpiYXNlNjRVUkxFbmNvZGUo
W21fc291cmNlU2VjcmV0VG9rZW4ucmVhZHlUb2tlbiBzaWduYXR1cmVdLmJ5dGVzLCBbbV9zb3Vy
Y2VTZWNyZXRUb2tlbi5yZWFkeVRva2VuIHNpZ25hdHVyZV0ubGVuZ3RoKTsKKworICAgIHJldHVy
biB0b2tlbjsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHNlcnZlclJlc3BvbnNlQmFzZTY0VVJM
KTsKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworI2VuZGlmIC8vIEhBVkUoUlNBX0JTU0EpCit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcApp
bmRleCA3MjliYmI3Njg4OWNhNmIyYjc0NmE1NTI3MTE3MTdjMjg2NjFmZTAxLi5hZTZlNDBmMjY3
MmQ0YTQxNDkzMmViNGEwZDgxNzYyMGQ5ZDUyYTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXIuY3BwCkBAIC0xNTcsMTIgKzE1NywxMiBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlcjo6Z2V0VG9rZW5QdWJsaWNLZXkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJgogICAg
ICAgICB9CiAKICAgICAgICAgLy8gRklYTUU6IFJlY2VpdmUgYW5kIGV4dHJhIHRoZSBzZXJ2ZXIg
cHVibGljIGtleSwgcmRhcjovLzczNTgyMDMyLgotICAgICAgICBnZXRTaWduZWRVbmxpbmthYmxl
VG9rZW4oV1RGTW92ZShhdHRyaWJ1dGlvbikpOworICAgICAgICBnZXRTaWduZWRTZWNyZXRUb2tl
bihXVEZNb3ZlKGF0dHJpYnV0aW9uKSwgZW1wdHlTdHJpbmcoKSk7CiAgICAgfSk7CiAKIH0KIAot
dm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmdldFNpZ25lZFVubGlua2FibGVU
b2tlbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmIGF0dHJpYnV0aW9uKQordm9pZCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmdldFNpZ25lZFNlY3JldFRva2VuKFByaXZhdGVDbGlj
a01lYXN1cmVtZW50JiYgYXR0cmlidXRpb24sIGNvbnN0IFN0cmluZyYgdG9rZW5QdWJsaWNLZXlC
YXNlNjRVUkwpCiB7CiAgICAgaWYgKCFmZWF0dXJlRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47
CkBAIC0xNzgsMjEgKzE3OCwyMSBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
cjo6Z2V0U2lnbmVkVW5saW5rYWJsZVRva2VuKFByaXZhdGVDbGlja01lYXN1cgogICAgIGlmICh0
b2tlblNpZ25hdHVyZVVSTC5pc0VtcHR5KCkgfHwgIXRva2VuU2lnbmF0dXJlVVJMLmlzVmFsaWQo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBsb2FkUGFyYW1ldGVycyA9IGdlbmVyYXRl
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnNGb3JIdHRwUG9zdChXVEZNb3ZlKHRva2VuU2ln
bmF0dXJlVVJMKSwgYXR0cmlidXRpb24udG9rZW5TaWduYXR1cmVKU09OKCksIHBjbURhdGFDYXJy
aWVkKTsKKyAgICBhdXRvIGxvYWRQYXJhbWV0ZXJzID0gZ2VuZXJhdGVOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVyc0Zvckh0dHBQb3N0KFdURk1vdmUodG9rZW5TaWduYXR1cmVVUkwpLCBhdHRy
aWJ1dGlvbi50b2tlblNpZ25hdHVyZUpTT04odG9rZW5QdWJsaWNLZXlCYXNlNjRVUkwpLCBwY21E
YXRhQ2FycmllZCk7CiAKLSAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVt
ZW50LCAiQWJvdXQgdG8gZmlyZSBhIHVubGlua2FibGUgdG9rZW4gc2lnbmluZyByZXF1ZXN0LiIp
OwotICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lv
bklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVs
OjpMb2csICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQWJvdXQgdG8gZmlyZSBhIHVubGlu
a2FibGUgdG9rZW4gc2lnbmluZyByZXF1ZXN0LiJfcyk7CisgICAgUkVMRUFTRV9MT0dfSU5GTyhQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkFib3V0IHRvIGZpcmUgYSBzZWNyZXQgdG9rZW4gc2ln
bmluZyByZXF1ZXN0LiIpOworICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVN
ZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCwgTWVzc2FnZUxldmVsOjpMb2csICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQWJvdXQg
dG8gZmlyZSBhIHNlY3JldCB0b2tlbiBzaWduaW5nIHJlcXVlc3QuIl9zKTsKIAogICAgIG1fcGlu
Z0xvYWRGdW5jdGlvbihXVEZNb3ZlKGxvYWRQYXJhbWV0ZXJzKSwgW3dlYWtUaGlzID0gbWFrZVdl
YWtQdHIoKnRoaXMpXShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpIHsKICAgICAgICAgaWYgKCF3ZWFr
VGhpcykKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBpZiAoIWVycm9yLmlzTnVsbCgp
KSB7Ci0gICAgICAgICAgICB3ZWFrVGhpcy0+bV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29u
c29sZU1lc3NhZ2Uod2Vha1RoaXMtPm1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpFcnJvciwgbWFrZVN0cmluZygiW1ByaXZh
dGUgQ2xpY2sgTWVhc3VyZW1lbnRdIFJlY2VpdmVkIGVycm9yOiAnIl9zLCBlcnJvci5sb2NhbGl6
ZWREZXNjcmlwdGlvbigpLCAiJyBmb3IgdW5saW5rYWJsZSB0b2tlbiBzaWduaW5nIHJlcXVlc3Qu
Il9zKSk7CisgICAgICAgICAgICB3ZWFrVGhpcy0+bV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0
Q29uc29sZU1lc3NhZ2Uod2Vha1RoaXMtPm1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpFcnJvciwgbWFrZVN0cmluZygiW1By
aXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIFJlY2VpdmVkIGVycm9yOiAnIl9zLCBlcnJvci5sb2Nh
bGl6ZWREZXNjcmlwdGlvbigpLCAiJyBmb3Igc2VjcmV0IHRva2VuIHNpZ25pbmcgcmVxdWVzdC4i
X3MpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAg
Ly8gRklYTUU6IFJlY2VpdmUgYW5kIHN0b3JlIHRoZSBzaWduZWQgdW5saW5rYWJsZSB0b2tlbiwg
cmRhcjovLzczNTgyMDMyLgorICAgICAgICAvLyBGSVhNRTogUmVjZWl2ZSBhbmQgc3RvcmUgdGhl
IHNpZ25lZCBzZWNyZXQgdG9rZW4sIHJkYXI6Ly83MzU4MjAzMi4KICAgICB9KTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYW5hZ2VyLmgKaW5kZXggNTczZjMzY2UyYzM1NjM4YzYwZGVlYTdlNGY5YTc5
NjkxY2YwYzg0Mi4uMGJhZjliNDA2ZjEyOWU0M2NkMjFlZmEyNDFhMzY5ZWFmNzZhZGI5MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlci5oCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKIAogcHJp
dmF0ZToKICAgICB2b2lkIGdldFRva2VuUHVibGljS2V5KFByaXZhdGVDbGlja01lYXN1cmVtZW50
JiYpOwotICAgIHZvaWQgZ2V0U2lnbmVkVW5saW5rYWJsZVRva2VuKFByaXZhdGVDbGlja01lYXN1
cmVtZW50JiYpOworICAgIHZvaWQgZ2V0U2lnbmVkU2VjcmV0VG9rZW4oUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQmJiwgY29uc3QgU3RyaW5nJiB0b2tlblB1YmxpY0tleUJhc2U2NFVSTCk7CiAgICAg
dm9pZCBjbGVhclNlbnRBdHRyaWJ1dGlvbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmKTsKICAg
ICB2b2lkIGF0dHJpYnV0ZShjb25zdCBTb3VyY2VTaXRlJiwgY29uc3QgQXR0cmlidXRlT25TaXRl
JiwgQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmKTsKICAgICB2b2lkIGZpcmVDb252ZXJzaW9uUmVx
dWVzdChjb25zdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc0ZTZlN2Y5NWNiYWQ0ODYwYzUxMWZj
ZjQ3ZDI4NjZjYjk3ODA5NDYuLjA2MzU4YmU4MWJkZGNjNjhjYjZkNTMxMzJlNTc0Y2Q4NGZmM2Zi
MjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAyMS0wMi0xNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFBDTTogR2VuZXJhdGUgc2VjcmV0IHRva2VuIGFuZCBjb3JyZXNwb25k
aW5nIHVubGlua2FibGUgdG9rZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMjAxOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzM1ODE0MTI+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgSm9obiBXaWxhbmRlci4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHA6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgQWRkIHRlc3RzLgorCiAyMDIxLTAyLTE5
ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUENNOiBSZXF1
ZXN0IHNlcnZlciBwdWJsaWMga2V5IHRvIGdlbmVyYXRlIHNlY3JldCB0b2tlbgpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLnhjY29u
ZmlnIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLnhj
Y29uZmlnCmluZGV4IDcwYmU4YWE3NzA0M2I3NDE3N2Q0MDZkMDNjMzE0OTYzOGE5OWYxZTkuLmQz
YTQ0YThhYzU3ZDA3NjBkM2M1MmQwZWQxODk5MDViNzI1ZGIxOGIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS54Y2NvbmZpZworKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25m
aWcKQEAgLTU1LDYgKzU1LDEyIEBAIFdLX1BERktJVF9MREZMQUdTX21hY29zeCA9IC1mcmFtZXdv
cmsgUERGS2l0OwogV0tfUERGS0lUX0xERkxBR1NfaXBob25lb3MgPSAtZnJhbWV3b3JrIFBERktp
dDsKIFdLX1BERktJVF9MREZMQUdTX2lwaG9uZXNpbXVsYXRvciA9IC1mcmFtZXdvcmsgUERGS2l0
OwogCitXS19TWVNURU1fTERGTEFHUyA9ICQoV0tfU1lTVEVNX0xERkxBR1NfJChXS19QTEFURk9S
TV9OQU1FKSk7CitXS19TWVNURU1fTERGTEFHU19tYWNvc3ggPSAtZnJhbWV3b3JrIFN5c3RlbTsK
K1dLX1NZU1RFTV9MREZMQUdTX2lwaG9uZW9zID0gJChXS19TWVNURU1fTERGTEFHU18kKFdLX0lP
U18xNSkpOworV0tfU1lTVEVNX0xERkxBR1NfaXBob25lc2ltdWxhdG9yID0gJChXS19TWVNURU1f
TERGTEFHU18kKFdLX0lPU18xNSkpOworV0tfU1lTVEVNX0xERkxBR1NfSU9TX1NJTkNFXzE1ID0g
LWZyYW1ld29yayBTeXN0ZW07CisKIFdLX0hJRF9MREZMQUdTID0gJChXS19ISURfTERGTEFHU18k
KFdLX1BMQVRGT1JNX05BTUUpKTsKIFdLX0hJRF9MREZMQUdTX21hY29zeCA9ICQoV0tfSElEX0xE
RkxBR1MkKFdLX01BQ09TXzEwMTUpKTsKIFdLX0hJRF9MREZMQUdTX01BQ09TX1NJTkNFXzEwMTUg
PSAtZnJhbWV3b3JrIEhJRDsKQEAgLTcxLDcgKzc3LDcgQEAgV0tfT1BFTkdMX0xERkxBR1NfYXBw
bGV0dm9zID0gJChXS19PUEVOR0xfTERGTEFHU19pcGhvbmVvcyk7CiBXS19PUEVOR0xfTERGTEFH
U19hcHBsZXR2c2ltdWxhdG9yID0gJChXS19PUEVOR0xfTERGTEFHU19pcGhvbmVzaW11bGF0b3Ip
OwogV0tfT1BFTkdMX0xERkxBR1NfbWFjb3N4ID0gLWZyYW1ld29yayBPcGVuR0w7CiAKLU9USEVS
X0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChVTkVYUE9SVEVEX1NZTUJPTF9MREZMQUdTKSAtbGd0
ZXN0IC1mb3JjZV9sb2FkICQoQlVJTFRfUFJPRFVDVFNfRElSKS9saWJUZXN0V2ViS2l0QVBJLmEg
LWZyYW1ld29yayBKYXZhU2NyaXB0Q29yZSAtZnJhbWV3b3JrIFdlYktpdCAtbFdlYkNvcmVUZXN0
U3VwcG9ydCAkKFdLX0FVVEhLSVRfTERGTEFHUykgLWZyYW1ld29yayBOZXR3b3JrICQoV0tfUERG
S0lUX0xERkxBR1MpICQoV0tfSElEX0xERkxBR1MpICQoV0tfT1BFTkdMX0xERkxBR1MpICQoT1RI
RVJfTERGTEFHU19QTEFURk9STV8kKFdLX0NPQ09BX1RPVUNIKSk7CitPVEhFUl9MREZMQUdTID0g
JChpbmhlcml0ZWQpICQoVU5FWFBPUlRFRF9TWU1CT0xfTERGTEFHUykgLWxndGVzdCAtZm9yY2Vf
bG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvbGliVGVzdFdlYktpdEFQSS5hIC1mcmFtZXdvcmsg
SmF2YVNjcmlwdENvcmUgLWZyYW1ld29yayBXZWJLaXQgLWxXZWJDb3JlVGVzdFN1cHBvcnQgJChX
S19BVVRIS0lUX0xERkxBR1MpIC1mcmFtZXdvcmsgTmV0d29yayAkKFdLX1NZU1RFTV9MREZMQUdT
KSAkKFdLX1BERktJVF9MREZMQUdTKSAkKFdLX0hJRF9MREZMQUdTKSAkKFdLX09QRU5HTF9MREZM
QUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkpOwogT1RIRVJf
TERGTEFHU19QTEFURk9STV8gPSAtZnJhbWV3b3JrIENvY29hIC1mcmFtZXdvcmsgQ2FyYm9uOwog
CiAvLyBGSVhNRTogVGhpcyBzaG91bGQgbm90IGJlIGJ1aWx0IG9uIGlPUy4gSW5zdGVhZCB3ZSBz
aG91bGQgY3JlYXRlIGFuZCB1c2UgYSBUZXN0V2ViS2l0QVBJIGFwcGxpY2F0aW9uLgpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAzYzJmMDY4ZTFkMDhmOTBhY2IxZWMzZjBkY2YzMWNmY2JmZmQ2
ODlmLi43OWNhYjIzZDk4NGEzYTMwOGM5MDcwNDc4NDY3M2NiNGM2Njg2NjVjIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNDQxLDYgKzQ0MSw3IEBACiAJCTU3QzYyNDUwMjM0NkMyMUUwMDM4
M0ZFNyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3QzYyNDRGMjM0NkMx
RUMwMDM4M0ZFNyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi5odG1sICovOyB9
OwogCQk1N0VERkM1QzI0NUExQTNGMDA5NTk1MjEgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2Ut
Y3JlZGVudGlhbC1sYS1uby1tb2NrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdFREZDNUIyNDVBMThGNTAwOTU5NTIxIC8qIHdlYi1h
dXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEtbm8tbW9jay5odG1sICovOyB9OwogCQk1
N0VERkM2MDI0NUEyOTlDMDA5NTk1MjEgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRp
b24tbGEtbm8tbW9jay5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3RURGQzVGMjQ1QTI3OTkwMDk1OTUyMSAvKiB3ZWItYXV0aGVudGlj
YXRpb24tZ2V0LWFzc2VydGlvbi1sYS1uby1tb2NrLmh0bWwgKi87IH07CisJCTU3RjFDOTExMjVE
REQ1MTkwMEU4RjZFQSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGMUM5MTAyNURERDUxOTAw
RThGNkVBIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gKi87IH07CiAJCTU3RjRB
QUEwMjA4RkFFRjAwMEE2OEU5RSAvKiBTU0xLZXlHZW5lcmF0b3IubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0Y0QUE5RjIwOEZBODNEMDBBNjhFOUUg
LyogU1NMS2V5R2VuZXJhdG9yLm1tICovOyB9OwogCQk1N0Y1NkE1QzFDN0Y4Q0MxMDBGMzFEN0Ug
LyogSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RjU2QTVCMUM3RjhBNDAwMEYzMUQ3RSAv
KiBJc05hdmlnYXRpb25BY3Rpb25UcnVzdGVkLmh0bWwgKi87IH07CiAJCTVDMDE2MEMxMjFBMTMy
NDYwMDc3RkEzMiAvKiBKSVRFbmFibGVkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNUMwMTYwQzAyMUExMzIzMjAwNzdGQTMyIC8qIEpJVEVuYWJsZWQu
bW0gKi87IH07CkBAIC0yMjMzLDYgKzIyMzQsNyBAQAogCQk1N0VERkM1QjI0NUExOEY1MDA5NTk1
MjEgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYS1uby1tb2NrLmh0bWwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0
bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYS1uby1tb2Nr
Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0VERkM1RjI0NUEyNzk5MDA5
NTk1MjEgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbGEtbm8tbW9jay5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5o
dG1sOyBwYXRoID0gIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWxhLW5vLW1vY2su
aHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RjEwRDkyMUM3RTdCMzgwMEVD
REYzMCAvKiBJc05hdmlnYXRpb25BY3Rpb25UcnVzdGVkLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTdGMUM5MTAyNURERDUxOTAwRThGNkVBIC8qIFByaXZh
dGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudENvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
N0Y0QUE5RjIwOEZBODNEMDBBNjhFOUUgLyogU1NMS2V5R2VuZXJhdG9yLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gU1NMS2V5R2VuZXJhdG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1N0Y1NkE1QjFDN0Y4QTQwMDBGMzFEN0UgLyogSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3Rl
ZC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1
c3RlZC5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzAxNjBDMDIxQTEzMjMy
MDA3N0ZBMzIgLyogSklURW5hYmxlZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IEpJVEVuYWJsZWQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00
NzExLDYgKzQ3MTMsNyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMDcxMURGNTEyMjZBOTVGQjAw
M0REMkY3IC8qIEFWRm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbSAqLywKIAkJCQk3NTFCMDVENTFG
OEVBQzFBMDAyOEEwOUUgLyogRGF0YWJhc2VUcmFja2VyVGVzdC5tbSAqLywKKwkJCQk1N0YxQzkx
MDI1RERENTE5MDBFOEY2RUEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbSAqLywK
IAkJCQk1NzY5QzUwQTFEOUIwMDAxMDAwODQ3RkIgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAu
bW0gKi8sCiAJCQkJQTE3OTkxODYxRTFDOTk0RTAwQTUwNUVEIC8qIFNoYXJlZEJ1ZmZlci5tbSAq
LywKIAkJCQlDRDg5RDAzODFDNEVEQjJBMDAwNDBBMDQgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5t
bSAqLywKQEAgLTU0ODYsNiArNTQ4OSw3IEBACiAJCQkJQTFFQzExODgxRjQyNTQxMjAwRDAxNDZF
IC8qIFByZXZpZXdDb252ZXJ0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMEMxQTQx
MUFFNjAwNDQ3QzRDIC8qIFByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNr
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZCMEEwN0Y3MjFGQTlDMkIwMEQ1NzM5MSAvKiBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1N0YxQzkxMTI1RERE
NTE5MDBFOEY2RUEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTQ2NDdCMTI2MUVCQTNCODUwMDQxRDdFRiAvKiBQcm9jZXNzRGlkVGVybWluYXRl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxODgyRjAzMjEwMTBDMEQwMDJGRjI4OCAvKiBQcm9j
ZXNzUHJlV2FybWluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEQTQ0MzhFMjFGN0E0NzcwMDM3
OTQ4OSAvKiBQcm9jZXNzU3VzcGVuZE1lZGlhQnVmZmVyaW5nLm1tIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50LmNwcAppbmRleCBiNzMyNjMzNDRmZTFmNmU5ZWIwZTQyYTI2ZTcy
YzRmYjJmMzkwZjM2Li43MWQxNzBmMDZkMTc3MDgwNGFmNjQwM2ZmZmIyZDllNzFhMTI3MDJiIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGVzdC5oIgogCiAjaW5jbHVkZSA8V2ViQ29yZS9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KQEAgLTMwMCw0
ICszMDEsMjUgQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZFNvdXJjZU5v
bmNlKQogICAgIEFTU0VSVF9GQUxTRShlcGhlbWVyYWxOb25jZS5pc1ZhbGlkKCkpOwogfQogCisj
aWYgSEFWRShSU0FfQlNTQSkKK1RFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRC
bGluZGVkU2VjcmV0KQoreworICAgIGNvbnN0IGNoYXIgc2VydmVyUHVibGljS2V5QmFzZTY0VVJM
W10gPSAiTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF6YjFkVGhy
dFl3Vmg0NlNqSW5lZ0toQXFwYkp3bTFYblRCQ3Z5YlNLOHprNTNSMEFtMWhHMzNBVkY1SjFscVlm
MzZ3cDY2M0dhc2NsSHRxenZ4RlpJdkRBMURVU0g0YVp6X2ZESENUVHhFZUpWUE9SUzN6Tk4yVWpX
d2J0bndzaDRCbURUaS16X2NEbjBMQXoySnVaeUtseUZ0NUdnVkxBUXZMOUgzVkxIVTlfWEhOSy11
Ym95WGZjSFJUdHJEbnB1M2M2d3ZYNWRkLUFKb0xtSVFUWkJFSmZWa3hCR3puazFxS0hqYzZuQVNB
aXJLRl93SkNudXdBSzhDNkJBY2pOY3dVV0NlS3AwWUVDekNYVS0tSlhkMk9FVS1RaHhQQzY3ZmFp
RE9oM1YwdmxmcVpMdHJsYm5hblVDS3J2aHc3R2FHT0dZb3RJcm5adHVOZnhDMTRkX1hOVmQxRlM4
bkhqUlRIbkVnd19qbmxTc3NmZ1N0ejB1SnRjbWtmZ29KQnZPRTRtSVJwaTdpU2xSZlhOa0tzV1gx
Si1nd2NuQ1ZvNXUwdUpFVzZYNk55dkVHWUo4dzVCUGZ3c1F1Szl5LTRaN2lrdDlJT3VjRUhZN1Ro
RG1pOVROTmhIQlZqMEd1NHdHb1NqcTNhNnZMNU4xMFpTSFhvcTFYZ2ZHUHJtSGhoTDkwY2p2V29u
b3lPWHNVcWxYRXpUakQyVzk4OTdRLU14OUJVTnJHUVBxbUl4OEY1TXd4V2NPcnllOFdScDRRODhu
MllTVW5WN0M4YXlsZDN2MUZoN041amVTcWVWbXREVlJZVG4yc1ZmTnFnWHJ6Z2RpZ0pjUVI4dkZF
TnU2bnpGUHdzclhQTWFDaUxVblpOVW1RMVpTTFFlUXloWVh4SHFSSnJudUNEV1hMa0NBd0VBQVEi
OworCisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgcGNtOworICAgIGF1dG8gc291cmNlU2Vj
cmV0VG9rZW4gPSBwY20udG9rZW5TaWduYXR1cmVKU09OKHNlcnZlclB1YmxpY0tleUJhc2U2NFVS
TCk7CisgICAgRVhQRUNUX0VRKHNvdXJjZVNlY3JldFRva2VuLT5hc09iamVjdCgpLT5zaXplKCks
IDB1bCk7CisKKyAgICBhdXRvIGVwaGVtZXJhbE5vbmNlID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlIHsgIkFCQ0RFRmFiY2RlZjAxMjM0NTY3ODkiX3MgfTsK
KyAgICBFWFBFQ1RfVFJVRShlcGhlbWVyYWxOb25jZS5pc1ZhbGlkKCkpOworICAgIHBjbS5zZXRF
cGhlbWVyYWxTb3VyY2VOb25jZShXVEZNb3ZlKGVwaGVtZXJhbE5vbmNlKSk7CisKKyAgICBzb3Vy
Y2VTZWNyZXRUb2tlbiA9IHBjbS50b2tlblNpZ25hdHVyZUpTT04oc2VydmVyUHVibGljS2V5QmFz
ZTY0VVJMKTsKKyAgICBFWFBFQ1RfRVEoc291cmNlU2VjcmV0VG9rZW4tPmFzT2JqZWN0KCktPnNp
emUoKSwgNHVsKTsKKworICAgIGF1dG8gcGVyc2lzdGVudFRva2VuID0gcGNtLmNhbGN1bGF0ZVNv
dXJjZVVubGlua2FibGVUb2tlbihlbXB0eVN0cmluZygpKTsKKyAgICBFWFBFQ1RfRkFMU0UocGVy
c2lzdGVudFRva2VuKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjRlNWQ1ZmI2ZDE4MjE3NTk4MDcwNTg3MjhhZmI4NWRjYjAyYmJmMTYKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRDb2NvYS5tbQpAQCAtMCwwICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXN0LmgiCisKKyNpZiBIQVZFKFJTQV9CU1NBKQor
CisjaW5jbHVkZSA8U2VjdXJpdHkvU2VjS2V5UHJpdi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQuaD4KKworZXh0ZXJuICJDIiB7CisjaW5jbHVkZSA8Y29yZWNy
eXB0by9jY19wcml2Lmg+CisjaW5jbHVkZSA8Y29yZWNyeXB0by9jY3JuZy5oPgorI2luY2x1ZGUg
PGNvcmVjcnlwdG8vY2Nyc2EuaD4KKyNpbmNsdWRlIDxjb3JlY3J5cHRvL2NjcnNhYnNzYS5oPgor
fQorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkg
eworCitURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZEJsaW5kZWRTZWNyZXQpCit7
CisgICAgYXV0byBlcGhlbWVyYWxOb25jZSA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhl
bWVyYWxTb3VyY2VOb25jZSB7ICJBQkNERUZhYmNkZWYwMTIzNDU2Nzg5Il9zIH07CisgICAgRVhQ
RUNUX1RSVUUoZXBoZW1lcmFsTm9uY2UuaXNWYWxpZCgpKTsKKworICAgIFByaXZhdGVDbGlja01l
YXN1cmVtZW50IHBjbTsKKyAgICBwY20uc2V0RXBoZW1lcmFsU291cmNlTm9uY2UoV1RGTW92ZShl
cGhlbWVyYWxOb25jZSkpOworCisgICAgLy8gR2VuZXJhdGUgdGhlIHNlcnZlciBrZXkgcGFpci4K
KyAgICBzaXplX3QgbW9kdWx1c05CaXRzID0gNDA5NjsKKyAgICBpbnQgZXJyb3IgPSAwOworCisg
ICAgc3RydWN0IGNjcm5nX3N0YXRlKiBybmcgPSBjY3JuZygmZXJyb3IpOworICAgIEVYUEVDVF9F
UShlcnJvciwgQ0NFUlJfT0spOworCisgICAgY29uc3QgdWludDhfdCBlW10gPSB7IDB4MSwgMHgw
MCwgMHgwMSB9OworICAgIGNjcnNhX2Z1bGxfY3R4X2RlY2woY2NuX3NpemVvZihtb2R1bHVzTkJp
dHMpLCByc2FQcml2YXRlS2V5KTsKKyAgICBlcnJvciA9IGNjcnNhX2dlbmVyYXRlX2tleShtb2R1
bHVzTkJpdHMsIHJzYVByaXZhdGVLZXksIHNpemVvZihlKSwgZSwgcm5nKTsKKyAgICBFWFBFQ1Rf
RVEoZXJyb3IsIENDRVJSX09LKTsKKworICAgIGNjcnNhX3B1Yl9jdHhfdCByc2FQdWJsaWNLZXkg
PSBjY3JzYV9jdHhfcHVibGljKHJzYVByaXZhdGVLZXkpOworICAgIHNpemVfdCBtb2R1bHVzTkJ5
dGVzID0gY2NfY2VpbGluZyhjY3JzYV9wdWJrZXlsZW5ndGgocnNhUHVibGljS2V5KSwgOCk7CisK
KyAgICBjb25zdCBzdHJ1Y3QgY2Nyc2Fic3NhX2NpcGhlcnN1aXRlICpjaXBoZXJzdWl0ZSA9ICZj
Y3JzYWJzc2FfY2lwaGVyc3VpdGVfcnNhNDA5Nl9zaGEzODQ7CisKKyAgICBzaXplX3QgZXhwb3J0
U2l6ZSA9IGNjZGVyX2VuY29kZV9yc2FfcHViX3NpemUocnNhUHVibGljS2V5KTsKKyAgICBhdXRv
IHB1YmxpY0tleSA9IGFkb3B0TlMoW1tOU011dGFibGVEYXRhIGFsbG9jXSBpbml0V2l0aExlbmd0
aDpleHBvcnRTaXplXSk7CisgICAgY2NkZXJfZW5jb2RlX3JzYV9wdWIocnNhUHVibGljS2V5LCBz
dGF0aWNfY2FzdDx1aW50OF90Kj4oW3B1YmxpY0tleSBtdXRhYmxlQnl0ZXNdKSwgc3RhdGljX2Nh
c3Q8dWludDhfdCo+KFtwdWJsaWNLZXkgbXV0YWJsZUJ5dGVzXSkgKyBbcHVibGljS2V5IGxlbmd0
aF0pOworCisgICAgYXV0byBzZWNLZXkgPSBhZG9wdENGKFNlY0tleUNyZWF0ZVdpdGhEYXRhKChf
X2JyaWRnZSBDRkRhdGFSZWYpcHVibGljS2V5LmdldCgpLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5
UmVmKUB7CisgICAgICAgIChfX2JyaWRnZSBpZClrU2VjQXR0cktleVR5cGU6IChfX2JyaWRnZSBp
ZClrU2VjQXR0cktleVR5cGVSU0EsCisgICAgICAgIChfX2JyaWRnZSBpZClrU2VjQXR0cktleUNs
YXNzOiAoX19icmlkZ2UgaWQpa1NlY0F0dHJLZXlDbGFzc1B1YmxpYworICAgIH0sIG5pbCkpOwor
ICAgIEVYUEVDVF9OT1RfTlVMTChzZWNLZXkpOworCisgICAgYXV0byBzcGtpRGF0YSA9IGFkb3B0
Q0YoU2VjS2V5Q29weVN1YmplY3RQdWJsaWNLZXlJbmZvKHNlY0tleS5nZXQoKSkpOworICAgIGF1
dG8gKm5zU3BraURhdGEgPSAoX19icmlkZ2UgTlNEYXRhICopc3BraURhdGEuZ2V0KCk7CisKKyAg
ICAvLyBDb250aW51ZSB0aGUgdGVzdC4KKyAgICBhdXRvIHNvdXJjZVNlY3JldFRva2VuID0gcGNt
LnRva2VuU2lnbmF0dXJlSlNPTihXVEY6OmJhc2U2NFVSTEVuY29kZShuc1Nwa2lEYXRhLmJ5dGVz
LCBuc1Nwa2lEYXRhLmxlbmd0aCkpOworICAgIEVYUEVDVF9FUShzb3VyY2VTZWNyZXRUb2tlbi0+
YXNPYmplY3QoKS0+c2l6ZSgpLCA0dWwpOworICAgIEVYUEVDVF9TVFJFUShzb3VyY2VTZWNyZXRU
b2tlbi0+Z2V0U3RyaW5nKCJzb3VyY2VfZW5nYWdlbWVudF90eXBlIl9zKS51dGY4KCkuZGF0YSgp
LCAiY2xpY2siKTsKKyAgICBFWFBFQ1RfU1RSRVEoc291cmNlU2VjcmV0VG9rZW4tPmdldFN0cmlu
Zygic291cmNlX25vbmNlIl9zKS51dGY4KCkuZGF0YSgpLCAiQUJDREVGYWJjZGVmMDEyMzQ1Njc4
OSIpOworICAgIEVYUEVDVF9GQUxTRShzb3VyY2VTZWNyZXRUb2tlbi0+Z2V0U3RyaW5nKCJzb3Vy
Y2Vfc2VjcmV0X3Rva2VuIl9zKS5pc0VtcHR5KCkpOworICAgIEVYUEVDVF9FUShzb3VyY2VTZWNy
ZXRUb2tlbi0+Z2V0SW50ZWdlcigidmVyc2lvbiJfcyksIDIpOworCisgICAgLy8gR2VuZXJhdGUg
dGhlIHNpZ25hdHVyZS4KKyAgICBWZWN0b3I8dWludDhfdD4gYmxpbmRlZE1lc3NhZ2U7CisgICAg
YmFzZTY0VVJMRGVjb2RlKHNvdXJjZVNlY3JldFRva2VuLT5nZXRTdHJpbmcoInNvdXJjZV9zZWNy
ZXRfdG9rZW4iX3MpLCBibGluZGVkTWVzc2FnZSk7CisKKyAgICBhdXRvIGJsaW5kZWRTaWduYXR1
cmUgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGF0YSBhbGxvY10gaW5pdFdpdGhMZW5ndGg6IG1vZHVs
dXNOQnl0ZXNdKTsKKyAgICBjY3JzYWJzc2Ffc2lnbl9ibGluZGVkX21lc3NhZ2UoY2lwaGVyc3Vp
dGUsIHJzYVByaXZhdGVLZXksIGJsaW5kZWRNZXNzYWdlLmRhdGEoKSwgYmxpbmRlZE1lc3NhZ2Uu
c2l6ZSgpLCBzdGF0aWNfY2FzdDx1aW50OF90ICo+KFtibGluZGVkU2lnbmF0dXJlIG11dGFibGVC
eXRlc10pLCBbYmxpbmRlZFNpZ25hdHVyZSBsZW5ndGhdLCBybmcpOworCisgICAgLy8gQ29udGlu
dWUgdGhlIHRlc3QuCisgICAgYXV0byBwZXJzaXN0ZW50VG9rZW4gPSBwY20uY2FsY3VsYXRlU291
cmNlVW5saW5rYWJsZVRva2VuKFdURjo6YmFzZTY0VVJMRW5jb2RlKFtibGluZGVkU2lnbmF0dXJl
IGJ5dGVzXSwgW2JsaW5kZWRTaWduYXR1cmUgbGVuZ3RoXSkpOworICAgIEVYUEVDVF9UUlVFKHBl
cnNpc3RlbnRUb2tlbik7CisgICAgRVhQRUNUX0ZBTFNFKHBlcnNpc3RlbnRUb2tlbi0+dG9rZW5C
YXNlNjRVUkwuaXNFbXB0eSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UocGVyc2lzdGVudFRva2VuLT5r
ZXlJREJhc2U2NFVSTC5pc0VtcHR5KCkpOworICAgIEVYUEVDVF9GQUxTRShwZXJzaXN0ZW50VG9r
ZW4tPnNpZ25hdHVyZUJhc2U2NFVSTC5pc0VtcHR5KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJCisKKyNlbmRpZiAvLyBFSEFWRShSU0FfQlNTQSkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtcHJpdmF0
ZS1jbGljay1tZWFzdXJlbWVudC13aXRoLXNvdXJjZS1ub25jZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZhdGUt
Y2xpY2stbWVhc3VyZW1lbnQtd2l0aC1zb3VyY2Utbm9uY2UtZXhwZWN0ZWQudHh0CmluZGV4IGUy
NWFjY2RkZDEyZjFjYjllYmYzNWE2ZTA5YmYzNWQ3YTE2M2E0NzcuLmQ3ZmJjZGEwMjhjZmI4OWUx
Yjk2NmU4YTJiYTVlYWY1M2JiMTZmZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVu
dC13aXRoLXNvdXJjZS1ub25jZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVt
ZW50LXdpdGgtc291cmNlLW5vbmNlLWV4cGVjdGVkLnR4dApAQCAtMTgsNyArMTgsNyBAQCBDb250
ZW50IHR5cGU6IGFwcGxpY2F0aW9uL2pzb24KIFJFUVVFU1RfVVJJOiAvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvcmVzb3VyY2VzL3NpZ25Ub2tlbi5waHAKIE5vIGNvb2tpZXMgaW4gdG9rZW4gc2ln
bmluZyByZXF1ZXN0LgogUmVxdWVzdCBib2R5OgoteyJzb3VyY2VfZW5nYWdlbWVudF90eXBlIjoi
Y2xpY2siLCJzb3VyY2Vfbm9uY2UiOiJBQkNERUZhYmNkZWYwMTIzNDU2Nzg5IiwidW5saW5rYWJs
ZV90b2tlbiI6IlRPRE8iLCJ2ZXJzaW9uIjoyfQore30KIAogVW5hdHRyaWJ1dGVkIFByaXZhdGUg
Q2xpY2sgTWVhc3VyZW1lbnRzOgogV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgMQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>