<?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>160067</bug_id>
          
          <creation_ts>2016-07-21 17:16:58 -0700</creation_ts>
          <short_desc>Rename SubtleCrypto to WebKitSubtleCrypto</short_desc>
          <delta_ts>2016-08-15 17:07:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>160880</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1213422</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2016-07-21 17:16:58 -0700</bug_when>
    <thetext>Rename SubtleCrypto to WebKitSubtleCrypto such that we are backward compatible and meanwhile allow the new implementation to use the name SubtleCrypto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213423</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-07-21 17:17:59 -0700</bug_when>
    <thetext>&lt;rdar://problem/27483617&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213440</commentid>
    <comment_count>2</comment_count>
      <attachid>284292</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2016-07-21 17:45:58 -0700</bug_when>
    <thetext>Created attachment 284292
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213444</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-21 17:51:59 -0700</bug_when>
    <thetext>Attachment 284292 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp:55:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp:61:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
WARNING: Not running on native Windows.
Total errors found: 3 in 141 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213460</commentid>
    <comment_count>4</comment_count>
      <attachid>284298</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2016-07-21 19:09:48 -0700</bug_when>
    <thetext>Created attachment 284298
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213461</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-21 19:15:39 -0700</bug_when>
    <thetext>Attachment 284298 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp:55:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp:61:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
WARNING: Not running on native Windows.
Total errors found: 3 in 142 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213478</commentid>
    <comment_count>6</comment_count>
      <attachid>284298</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-07-21 20:24:25 -0700</bug_when>
    <thetext>Comment on attachment 284298
Patch

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

This looks great, but I disagree with moving all of the crypto things into the new &quot;webkitCrypto&quot; folder. Can you please only move the things actually using the &quot;Crypto.webkitSubtle&quot; JS API?

R- to correct that problem, but otherwise this looks great.

&gt; Source/WebCore/ChangeLog:67
&gt; +               crypto/webkitSubtle/wrapKey-check-usage.html

I don&apos;t think you need to move all of these to a new directory. Many of these tests invoke &quot;Crypto.subtle&quot; or AES/RSA stuff directly. Those should stay in Crypo since they are unchanged.

Only the things invoking &quot;Crypto.webkitSubtle&quot; should be in a crypto/webkitSubtle directory.

&gt; Source/WebCore/ChangeLog:71
&gt; +        current JSBindings use, and therefore should not introduce any change of behavoir. 

Behavoir -&gt; behavior.

&gt; Source/WebCore/ChangeLog:73
&gt; +        * CMakeLists.txt:

Add comment: &quot;Revise project files for for new file names&quot;

&gt; Source/WebCore/ChangeLog:95
&gt; +        (WebCore::JSWebKitSubtleCrypto::unwrapKey):

Delete lines 81-95. We don&apos;t need to see all of the renamed things here.

&gt; Source/WebCore/crypto/WebKitSubtleCrypto.h:27
&gt; +#define WebKitSubtleCrypto_h

#pragma once

&gt; Source/WebCore/page/Crypto.h:67
&gt; +    RefPtr&lt;WebKitSubtleCrypto&gt; m_webkitSubtle;

You don&apos;t really need this rename, but I assume you will be adding a &quot;RefPtr&lt;SubtleCrypto&gt; m_subtle;&quot; in a future patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213654</commentid>
    <comment_count>7</comment_count>
      <attachid>284298</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2016-07-22 11:33:03 -0700</bug_when>
    <thetext>Comment on attachment 284298
Patch

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

Thanks Brent for reviewing my patch.

&gt;&gt; Source/WebCore/ChangeLog:67
&gt;&gt; +               crypto/webkitSubtle/wrapKey-check-usage.html
&gt; 
&gt; I don&apos;t think you need to move all of these to a new directory. Many of these tests invoke &quot;Crypto.subtle&quot; or AES/RSA stuff directly. Those should stay in Crypo since they are unchanged.
&gt; 
&gt; Only the things invoking &quot;Crypto.webkitSubtle&quot; should be in a crypto/webkitSubtle directory.

Hmmm, I found out that codes in resources/common.js:105:
      if (!crypto.subtle)
           crypto.subtle = crypto.webkitSubtle;
enforce all the tests running against crypto.webkitSubtle. That&apos;s why even though we haven&apos;t implement the interface crypto.subtle, tests can still use that interface.

Despite this little finding, I agree with you that we should keep those tests in the original folder.

&gt;&gt; Source/WebCore/ChangeLog:71
&gt;&gt; +        current JSBindings use, and therefore should not introduce any change of behavoir. 
&gt; 
&gt; Behavoir -&gt; behavior.

Fixed.

&gt;&gt; Source/WebCore/ChangeLog:73
&gt;&gt; +        * CMakeLists.txt:
&gt; 
&gt; Add comment: &quot;Revise project files for for new file names&quot;

Added.

&gt;&gt; Source/WebCore/ChangeLog:95
&gt;&gt; +        (WebCore::JSWebKitSubtleCrypto::unwrapKey):
&gt; 
&gt; Delete lines 81-95. We don&apos;t need to see all of the renamed things here.

Deleted.

&gt;&gt; Source/WebCore/crypto/WebKitSubtleCrypto.h:27
&gt;&gt; +#define WebKitSubtleCrypto_h
&gt; 
&gt; #pragma once

Added.

&gt;&gt; Source/WebCore/page/Crypto.h:67
&gt;&gt; +    RefPtr&lt;WebKitSubtleCrypto&gt; m_webkitSubtle;
&gt; 
&gt; You don&apos;t really need this rename, but I assume you will be adding a &quot;RefPtr&lt;SubtleCrypto&gt; m_subtle;&quot; in a future patch.

Yes, I will add it in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213667</commentid>
    <comment_count>8</comment_count>
      <attachid>284353</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2016-07-22 11:48:45 -0700</bug_when>
    <thetext>Created attachment 284353
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213670</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-22 11:50:45 -0700</bug_when>
    <thetext>Attachment 284353 did not pass style-queue:


WARNING: Not running on native Windows.
ERROR: Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp:55:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp:61:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 3 in 26 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214241</commentid>
    <comment_count>10</comment_count>
      <attachid>284353</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-07-25 10:20:45 -0700</bug_when>
    <thetext>Comment on attachment 284353
Patch

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

r=me.

&gt; LayoutTests/crypto/webkitSubtle/gc-2-expected.txt:1
&gt; +Test that window.crypto.subtle wrapper preserves custom properties.

Please change this to say &quot;Test that window.crypto.webkitSubtle wrapper preserves custom properties&quot;

&gt; LayoutTests/crypto/webkitSubtle/gc-3-expected.txt:1
&gt; +Test that window.crypto wrapper protects all dependencies, so it can always be used to create crypto.subtle.

Please change this to say &quot;Test that window.crypto.webkitSubtle wrapper protects all ...&quot;

&gt; LayoutTests/crypto/webkitSubtle/gc-expected.txt:1
&gt; +Test that window.crypto.subtle wrapper preserves custom properties.

Please change this to say &quot;Test that window.crypto.webkitSubtle wrapper preserves custom properties&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214246</commentid>
    <comment_count>11</comment_count>
      <attachid>284500</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2016-07-25 10:46:33 -0700</bug_when>
    <thetext>Created attachment 284500
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214247</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-25 10:49:21 -0700</bug_when>
    <thetext>Attachment 284500 did not pass style-queue:


WARNING: Not running on native Windows.
ERROR: Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp:55:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp:61:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 3 in 26 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214328</commentid>
    <comment_count>13</comment_count>
      <attachid>284500</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-25 13:36:22 -0700</bug_when>
    <thetext>Comment on attachment 284500
Patch for landing

Clearing flags on attachment: 284500

Committed r203696: &lt;http://trac.webkit.org/changeset/203696&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284292</attachid>
            <date>2016-07-21 17:45:58 -0700</date>
            <delta_ts>2016-07-21 19:09:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160067-20160721174458.patch</filename>
            <type>text/plain</type>
            <size>582020</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDEzMjVmMWU5NTIwZDI4
ZjQ4MGVkMjE5MWMzZWIyZDU4ODdmODZiMi4uZmEzMjZjZGNhOTA5YzhmZDllNjdkMDY3NThmYjc5
N2UzMDJkYzcyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwOSBAQAorMjAxNi0wNy0yMSAgSmll
d2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBTdWJ0bGVD
cnlwdG8gdG8gV2ViS2l0U3VidGxlQ3J5cHRvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjAwNjcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI3NDgz
NjE3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3RzOiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtMTkyLWVuY3J5cHQtZGVjcnlwdC5odG1s
CisgICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtMjU2LWVuY3J5cHQt
ZGVjcnlwdC5odG1sCisgICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMt
ZW5jcnlwdC1kZWNyeXB0LXdpdGgtcGFkZGluZy5odG1sCisgICAgICAgICAgICAgICBjcnlwdG8v
d2Via2l0U3VidGxlL2Flcy1jYmMtZW5jcnlwdC1kZWNyeXB0Lmh0bWwKKyAgICAgICAgICAgICAg
IGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1nZW5lcmF0ZS1rZXkuaHRtbAorICAgICAgICAg
ICAgICAgY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWltcG9ydC1qd2suaHRtbAorICAgICAg
ICAgICAgICAgY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWludmFsaWQtbGVuZ3RoLmh0bWwK
KyAgICAgICAgICAgICAgIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy11bndyYXAtZmFpbHVy
ZS5odG1sCisgICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtdW53cmFw
LXJzYS5odG1sCisgICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtd3Jh
cC1yc2Etbm9uLWV4dHJhY3RhYmxlLmh0bWwKKyAgICAgICAgICAgICAgIGNyeXB0by93ZWJraXRT
dWJ0bGUvYWVzLWNiYy13cmFwLXJzYS5odG1sCisgICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0
U3VidGxlL2Flcy1jYmMtd3Jvbmcta2V5LWNsYXNzLmh0bWwKKyAgICAgICAgICAgICAgIGNyeXB0
by93ZWJraXRTdWJ0bGUvYWVzLWV4cG9ydC1rZXkuaHRtbAorICAgICAgICAgICAgICAgY3J5cHRv
L3dlYmtpdFN1YnRsZS9hZXMta3cta2V5LW1hbmlwdWxhdGlvbi5odG1sCisgICAgICAgICAgICAg
ICBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1rdy13cmFwLXVud3JhcC1hZXMuaHRtbAorICAgICAg
ICAgICAgICAgY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtcG9zdE1lc3NhZ2UuaHRtbAorICAgICAg
ICAgICAgICAgY3J5cHRvL3dlYmtpdFN1YnRsZS9hcmd1bWVudC1jb252ZXJzaW9uLmh0bWwKKyAg
ICAgICAgICAgICAgIGNyeXB0by93ZWJraXRTdWJ0bGUvYXJyYXktYnVmZmVyLXZpZXctb2Zmc2V0
Lmh0bWwKKyAgICAgICAgICAgICAgIGNyeXB0by93ZWJraXRTdWJ0bGUvZ2MtMi5odG1sCisgICAg
ICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL2djLTMuaHRtbAorICAgICAgICAgICAgICAg
Y3J5cHRvL3dlYmtpdFN1YnRsZS9nYy5odG1sCisgICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0
U3VidGxlL2htYWMtY2hlY2stYWxnb3JpdGhtLmh0bWwKKyAgICAgICAgICAgICAgIGNyeXB0by93
ZWJraXRTdWJ0bGUvaG1hYy1leHBvcnQta2V5Lmh0bWwKKyAgICAgICAgICAgICAgIGNyeXB0by93
ZWJraXRTdWJ0bGUvaG1hYy1nZW5lcmF0ZS1rZXkuaHRtbAorICAgICAgICAgICAgICAgY3J5cHRv
L3dlYmtpdFN1YnRsZS9obWFjLWltcG9ydC1qd2suaHRtbAorICAgICAgICAgICAgICAgY3J5cHRv
L3dlYmtpdFN1YnRsZS9obWFjLXBvc3RNZXNzYWdlLmh0bWwKKyAgICAgICAgICAgICAgIGNyeXB0
by93ZWJraXRTdWJ0bGUvaG1hYy1zaWduLXZlcmlmeS1lbXB0eS1rZXkuaHRtbAorICAgICAgICAg
ICAgICAgY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXNpZ24tdmVyaWZ5Lmh0bWwKKyAgICAgICAg
ICAgICAgIGNyeXB0by93ZWJraXRTdWJ0bGUvaW1wb3J0LWp3ay5odG1sCisgICAgICAgICAgICAg
ICBjcnlwdG8vd2Via2l0U3VidGxlL2p3ay1leHBvcnQtdXNlLXZhbHVlcy5odG1sCisgICAgICAg
ICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL2p3ay1pbXBvcnQtdXNlLXZhbHVlcy5odG1sCisg
ICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL3Bvc3RNZXNzYWdlLXdvcmtlci5odG1s
CisgICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQtZ2VuZXJhdGVk
LWtleXMuaHRtbAorICAgICAgICAgICAgICAgY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtZXhwb3J0
LWtleS5odG1sCisgICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQt
cHJpdmF0ZS1rZXkuaHRtbAorICAgICAgICAgICAgICAgY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Et
aW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLXByaXZhdGUuaHRtbAorICAgICAgICAgICAgICAgY3J5
cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLmh0bWwKKyAgICAg
ICAgICAgICAgIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1wcml2YXRlLmh0bWwK
KyAgICAgICAgICAgICAgIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi5odG1sCisg
ICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLWdlbmVyYXRlLW5vbi1l
eHRyYWN0YWJsZS1rZXkuaHRtbAorICAgICAgICAgICAgICAgY3J5cHRvL3dlYmtpdFN1YnRsZS9y
c2Etb2FlcC1rZXktbWFuaXB1bGF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGNyeXB0by93ZWJr
aXRTdWJ0bGUvcnNhLW9hZXAtcGxhaW50ZXh0LWxlbmd0aC5odG1sCisgICAgICAgICAgICAgICBj
cnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLXdyYXAtdW53cmFwLWFlcy5odG1sCisgICAgICAg
ICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1wb3N0TWVzc2FnZS5odG1sCisgICAgICAg
ICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtZGVjcnlwdC5odG1s
CisgICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtd3Jh
cC11bndyYXAtYWVzLmh0bWwKKyAgICAgICAgICAgICAgIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNh
c3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5LXdpdGgtbGVhZGluZy16ZXJvZXMtaW4tZXhwb25l
bnQuaHRtbAorICAgICAgICAgICAgICAgY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEt
djFfNS1nZW5lcmF0ZS1rZXkuaHRtbAorICAgICAgICAgICAgICAgY3J5cHRvL3dlYmtpdFN1YnRs
ZS9yc2Fzc2EtcGtjczEtdjFfNS1pbXBvcnQtandrLXNtYWxsLWtleS5odG1sCisgICAgICAgICAg
ICAgICBjcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2suaHRt
bAorICAgICAgICAgICAgICAgY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1z
aWduLXZlcmlmeS5odG1sCisgICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL3NoYS0x
Lmh0bWwKKyAgICAgICAgICAgICAgIGNyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTIyNC5odG1sCisg
ICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL3NoYS0yNTYuaHRtbAorICAgICAgICAg
ICAgICAgY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMzg0Lmh0bWwKKyAgICAgICAgICAgICAgIGNy
eXB0by93ZWJraXRTdWJ0bGUvc2hhLTUxMi5odG1sCisgICAgICAgICAgICAgICBjcnlwdG8vd2Vi
a2l0U3VidGxlL3VuaW1wbGVtZW50ZWQtdW53cmFwLWNyYXNoLmh0bWwKKyAgICAgICAgICAgICAg
IGNyeXB0by93ZWJraXRTdWJ0bGUvdW53cmFwS2V5LWNoZWNrLXVzYWdlLmh0bWwKKyAgICAgICAg
ICAgICAgIGNyeXB0by93ZWJraXRTdWJ0bGUvd3JhcEtleS1jaGVjay11c2FnZS5odG1sCisKKyAg
ICAgICAgUmVuYW1lIENsYXNzIFN1YnRsZUNyeXB0byB0byBXZWJLaXRTdWJ0bGVDcnlwdG8sIGFu
ZCBDcnlwdG8uc3VidGxlIHRvIENyeXB0by53ZWJraXRTdWJ0bGUgaW4gb3JkZXIKKyAgICAgICAg
dG8gbGV0IHRoZSBuZXcgaW1wbGVtZW50YXRpb24gdG8gcmV1c2UgdGhlIG5hbWUgU3VidGxlQ3J5
cHRvLiBUaGlzIHJlbmFtaW5nIHNob3VsZCBtYXRjaCB3aGF0IG91cgorICAgICAgICBjdXJyZW50
IEpTQmluZGluZ3MgdXNlLCBhbmQgdGhlcmVmb3JlIHNob3VsZCBub3QgaW50cm9kdWNlIGFueSBj
aGFuZ2Ugb2YgYmVoYXZvaXIuIAorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3BwOgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6
CisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICogUGxhdGZvcm1NYWMuY21h
a2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTV2ViS2l0U3VidGxlQ3J5cHRvQ3VzdG9tLmNwcDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcC4K
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyeXB0b0tleUZvcm1hdEZyb21KU1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
OmNyeXB0b0tleVVzYWdlc0Zyb21KU1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTV2ViS2l0
U3VidGxlQ3J5cHRvOjplbmNyeXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTV2ViS2l0U3VidGxl
Q3J5cHRvOjpkZWNyeXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTV2ViS2l0U3VidGxlQ3J5cHRv
OjpzaWduKToKKyAgICAgICAgKFdlYkNvcmU6OkpTV2ViS2l0U3VidGxlQ3J5cHRvOjp2ZXJpZnkp
OgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJLaXRTdWJ0bGVDcnlwdG86OmRpZ2VzdCk6CisgICAg
ICAgIChXZWJDb3JlOjpKU1dlYktpdFN1YnRsZUNyeXB0bzo6Z2VuZXJhdGVLZXkpOgorICAgICAg
ICAoV2ViQ29yZTo6aW1wb3J0S2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkpTV2ViS2l0U3VidGxl
Q3J5cHRvOjppbXBvcnRLZXkpOgorICAgICAgICAoV2ViQ29yZTo6ZXhwb3J0S2V5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTV2ViS2l0U3VidGxlQ3J5cHRvOjpleHBvcnRLZXkpOgorICAgICAgICAo
V2ViQ29yZTo6SlNXZWJLaXRTdWJ0bGVDcnlwdG86OndyYXBLZXkpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNXZWJLaXRTdWJ0bGVDcnlwdG86OnVud3JhcEtleSk6CisgICAgICAgICogY3J5cHRvL1dl
YktpdFN1YnRsZUNyeXB0by5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8v
U3VidGxlQ3J5cHRvLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OldlYktpdFN1YnRsZUNyeXB0bzo6
V2ViS2l0U3VidGxlQ3J5cHRvKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdFN1YnRsZUNyeXB0
bzo6ZG9jdW1lbnQpOgorICAgICAgICAqIGNyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uaDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uaC4KKyAgICAgICAg
KFdlYkNvcmU6OldlYktpdFN1YnRsZUNyeXB0bzo6Y3JlYXRlKToKKyAgICAgICAgKiBjcnlwdG8v
V2ViS2l0U3VidGxlQ3J5cHRvLmlkbDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2NyeXB0
by9TdWJ0bGVDcnlwdG8uaWRsLgorICAgICAgICAqIHBhZ2UvQ3J5cHRvLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0bzo6d2Via2l0U3VidGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0
bzo6c3VidGxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL0NyeXB0by5oOgorICAgICAgICAq
IHBhZ2UvQ3J5cHRvLmlkbDoKKwogMjAxNi0wNy0yMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHNvbWUgIm1vZGVybkZvbyJzIGZyb20gSW5kZXhl
ZERCIGNvZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKaW5kZXggZGYyZmQ5OTJhM2U3Y2Q2
MDBhNmIwOTAwNzBhZDlhMDMzMmU4MzkwYy4uOTA2MDlkY2U2ZmZmNDVlNTJmODU3ODFjMDRkMTRi
NDMzMTczOGRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApAQCAtNDI3LDcgKzQyNyw2
IEBACiAjaW5jbHVkZSAiSlNTcGVlY2hTeW50aGVzaXNFdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNT
cGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwIgogI2luY2x1ZGUgIkpTU3BlZWNoU3ludGhlc2lz
Vm9pY2UuY3BwIgotI2luY2x1ZGUgIkpTU3VidGxlQ3J5cHRvLmNwcCIKICNpbmNsdWRlICJKU1NR
TEVycm9yLmNwcCIKICNpbmNsdWRlICJKU1NRTEV4Y2VwdGlvbi5jcHAiCiAjaW5jbHVkZSAiSlNT
UUxSZXN1bHRTZXQuY3BwIgpAQCAtNjQ2LDYgKzY0NSw3IEBACiAjaW5jbHVkZSAiSlNXZWJLaXRO
YW1lc3BhY2UuY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxp
dHlFdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRQb2ludC5jcHAiCisjaW5jbHVkZSAiSlNX
ZWJLaXRTdWJ0bGVDcnlwdG8uY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0VHJhbnNpdGlvbkV2ZW50
LmNwcCIKICNpbmNsdWRlICJKU1dlYlNvY2tldC5jcHAiCiAjaW5jbHVkZSAiSlNXaGVlbEV2ZW50
LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDlkNDg5ZTI4MTE5ODhhNTFm
ZGM4N2JhZTYzMmNiYjUwMjA0NDk2YWYuLjcxMzY1YmQ1NGEwNzI3YjMzNGVmMzk2MjEwYjU4ZmQz
MGQwNWM3YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMjM1LDcgKzIzNSw3
IEBAIE5PTl9TVkdfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvYW5pbWF0aW9uL0Rv
Y3VtZW50VGltZWxpbmUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2NyeXB0by9DcnlwdG9LZXkuaWRs
IFwKICAgICAkKFdlYkNvcmUpL2NyeXB0by9DcnlwdG9LZXlQYWlyLmlkbCBcCi0gICAgJChXZWJD
b3JlKS9jcnlwdG8vU3VidGxlQ3J5cHRvLmlkbCBcCisgICAgJChXZWJDb3JlKS9jcnlwdG8vV2Vi
S2l0U3VidGxlQ3J5cHRvLmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NTQ2hhcnNldFJ1bGUu
aWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9DU1NGb250RmFjZUxvYWRFdmVudC5pZGwgXAogICAg
ICQoV2ViQ29yZSkvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5j
bWFrZQppbmRleCA1MTQ1MDRlNmVjMjVhYTVlNDNiOTkzOThkNWUzNWNlZWVhNzY2YWE0Li4yZDM2
OTg2MGYwYTM1NzM4NTgyOWQ3YWQ0YmZiMDc5MjU2NDdiYjE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVm
bC5jbWFrZQpAQCAtNDAzLDcgKzQwMyw3IEBAIGlmIChFTkFCTEVfU1VCVExFX0NSWVBUTykKICAg
ICAgICAgY3J5cHRvL0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcAogICAgICAgICBjcnlwdG8v
Q3J5cHRvS2V5LmNwcAogICAgICAgICBjcnlwdG8vQ3J5cHRvS2V5UGFpci5jcHAKLSAgICAgICAg
Y3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKKyAgICAgICAgY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0
by5jcHAKIAogICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JD
LmNwcAogICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDY0NWFkZDFjZTM4ODg4YjA0ZDRhMmQ4OWFk
YTBhN2M2ZGUxOTk4NmIuLmFhYmQzMDVlZDFlYmQyYWUxZTExZjFjMDNjOTRjYjMxZDhjYTg0NjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC03OTcsNyArNzk3LDcgQEAgaWYgKEVOQUJM
RV9TVUJUTEVfQ1JZUFRPKQogICAgICAgICBjcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnku
Y3BwCiAgICAgICAgIGNyeXB0by9DcnlwdG9LZXkuY3BwCiAgICAgICAgIGNyeXB0by9DcnlwdG9L
ZXlQYWlyLmNwcAotICAgICAgICBjcnlwdG8vU3VidGxlQ3J5cHRvLmNwcAorICAgICAgICBjcnlw
dG8vV2ViS2l0U3VidGxlQ3J5cHRvLmNwcAogCiAgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCiAgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobUFFU19LVy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
TWFjLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggOWY2ZjQ5
NmI2Y2M0ZWY2ZTRiNzRkODRhYzBhYTlkZWE1NWEwMjM3Yi4uMzMxMDI1OGYwMTJmOWRjZmFhNTJj
YmJjYjRlODEzZjlhNTQ1ZGIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1N
YWMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTE5Niw3
ICsxOTYsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBjcnlwdG8vQ3J5cHRv
QWxnb3JpdGhtUmVnaXN0cnkuY3BwCiAgICAgY3J5cHRvL0NyeXB0b0tleS5jcHAKICAgICBjcnlw
dG8vQ3J5cHRvS2V5UGFpci5jcHAKLSAgICBjcnlwdG8vU3VidGxlQ3J5cHRvLmNwcAorICAgIGNy
eXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uY3BwCiAKICAgICBjcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1BRVNfQ0JDLmNwcAogICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobUFFU19LVy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAwY2U2N2FiNTYzZjJkM2RjMGM5MDYyZjRiZTBkM2U3ODI3NzQ3
OTAxLi4yZGE1YjRjYzViM2VlYWNhYmFlNTRhZWFkMWY2ZjFiMTM5NDNjYWZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzM4
LDYgKzIzMzgsMTEgQEAKIAkJNTUwQTBCQ0EwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5h
bWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEw
QkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTU1Qjg3RUMxQ0FBRjBBQjAwMzQ5NDI1
IC8qIEltYWdlRGVjb2RlckNHLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU1NUI4N0VBMUNBQUYwQUIwMDM0OTQyNSAvKiBJbWFnZURlY29kZXJDRy5j
cHAgKi87IH07CiAJCTU1NUI4N0VEMUNBQUYwQUIwMDM0OTQyNSAvKiBJbWFnZURlY29kZXJDRy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU1Qjg3RUIx
Q0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdlRGVjb2RlckNHLmggKi87IH07CisJCTU3MDlFOENEMUQ0
MTNENDcwMDMyNDRBQyAvKiBXZWJLaXRTdWJ0bGVDcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwOUU4Q0ExRDQxM0NFMzAwMzI0NEFDIC8q
IFdlYktpdFN1YnRsZUNyeXB0by5jcHAgKi87IH07CisJCTU3MDlFOENFMUQ0MTNENUIwMDMyNDRB
QyAvKiBKU1dlYktpdFN1YnRsZUNyeXB0b0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2NjE4MDc0NjA4MDAxMzI2NzQgLyogSlNX
ZWJLaXRTdWJ0bGVDcnlwdG9DdXN0b20uY3BwICovOyB9OworCQk1NzA5RThDRjFENDEzRDlBMDAz
MjQ0QUMgLyogV2ViS2l0U3VidGxlQ3J5cHRvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NzA5RThDQjFENDEzQ0UzMDAzMjQ0QUMgLyogV2ViS2l0U3Vi
dGxlQ3J5cHRvLmggKi87IH07CisJCTU3MEE5OURBMUQ0MTc0MDgwMDRFQzYzMCAvKiBKU1dlYktp
dFN1YnRsZUNyeXB0by5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUZGOEY2MjE4MDc0NUQ4MDAxMzI2NzQgLyogSlNXZWJLaXRTdWJ0bGVDcnlwdG8u
Y3BwICovOyB9OworCQk1NzBBOTlEQjFENDFBMkYzMDA0RUM2MzAgLyogSlNXZWJLaXRTdWJ0bGVD
cnlwdG8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
RkY4RjYzMTgwNzQ1RDgwMDEzMjY3NCAvKiBKU1dlYktpdFN1YnRsZUNyeXB0by5oICovOyB9Owog
CQk1NzJBN0YyMTFDNkU1NzE5MDA5QzYxNDkgLyogU2ltdWxhdGVkQ2xpY2suaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkE3RjIwMUM2RTU3MTkwMDlD
NjE0OSAvKiBTaW11bGF0ZWRDbGljay5oICovOyB9OwogCQk1NzJBN0YyMzFDNkU1QTY2MDA5QzYx
NDkgLyogU2ltdWxhdGVkQ2xpY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTcyQTdGMjIxQzZFNUE2NjAwOUM2MTQ5IC8qIFNpbXVsYXRlZENsaWNr
LmNwcCAqLzsgfTsKIAkJNTdFRjVFNjAxRDIwQzgzOTAwMTcxRTYwIC8qIFRleHRDb2RlY1JlcGxh
Y2VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
N0VGNUU1RjFEMjBDODM5MDAxNzFFNjAgLyogVGV4dENvZGVjUmVwbGFjZW1lbnQuaCAqLzsgfTsK
QEAgLTY2MzgsMTEgKzY2NDMsNiBAQAogCQlFMUZFMTM3RTE4NEQyNzAyMDA4OTJGMTMgLyogQ3J5
cHRvQWxnb3JpdGhtQUVTX0tXTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxRkUxMzdDMTg0RDI3MDIwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0
aG1BRVNfS1dNYWMuY3BwICovOyB9OwogCQlFMUZGNTdBMzBGMDEyNTVCMDA4OTFFQkIgLyogVGhy
ZWFkR2xvYmFsRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTFGRjU3QTIwRjAxMjU1QjAwODkxRUJCIC8qIFRocmVhZEdsb2JhbERhdGEuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMUZGNTdBNjBG
MDEyNTZCMDA4OTFFQkIgLyogVGhyZWFkR2xvYmFsRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGNTdBNTBGMDEyNTZCMDA4OTFFQkIgLyog
VGhyZWFkR2xvYmFsRGF0YS5jcHAgKi87IH07Ci0JCUUxRkY4RjVGMTgwNzQ0MjEwMDEzMjY3NCAv
KiBTdWJ0bGVDcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTFGRjhGNUQxODA3NDQyMTAwMTMyNjc0IC8qIFN1YnRsZUNyeXB0by5jcHAgKi87
IH07Ci0JCUUxRkY4RjYwMTgwNzQ0MjEwMDEzMjY3NCAvKiBTdWJ0bGVDcnlwdG8uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4RjVFMTgwNzQ0MjEw
MDEzMjY3NCAvKiBTdWJ0bGVDcnlwdG8uaCAqLzsgfTsKLQkJRTFGRjhGNjQxODA3NDVEODAwMTMy
Njc0IC8qIEpTU3VidGxlQ3J5cHRvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxRkY4RjYyMTgwNzQ1RDgwMDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0
by5jcHAgKi87IH07Ci0JCUUxRkY4RjY1MTgwNzQ1RDgwMDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0
by5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRjhG
NjMxODA3NDVEODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvLmggKi87IH07Ci0JCUUxRkY4RjY4
MTgwNzQ2MDgwMDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2NjE4MDc0NjA4MDAxMzI2
NzQgLyogSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwICovOyB9OwogCQlFMUZGOEY2QzE4MERCNUJF
MDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRjhGNkExODBEQjVCRTAwMTMyNjc0IC8q
IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcCAqLzsgfTsKIAkJRTFGRjhGNkQxODBEQjVCRTAw
MTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2QjE4MERCNUJFMDAxMzI2NzQgLyogQ3J5
cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCAqLzsgfTsKIAkJRTM4ODM4OTgxQkFEMTQ1RjAwRDYyRUUz
IC8qIEpTTW9kdWxlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzODgzODk0MUJBRDE0NUYwMEQ2MkVFMyAvKiBKU01vZHVsZUxvYWRlci5j
cHAgKi87IH07CkBAIC0xMDAxNCw2ICsxMDAxNCw5IEBACiAJCTU1NUI4N0VBMUNBQUYwQUIwMDM0
OTQyNSAvKiBJbWFnZURlY29kZXJDRy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJbWFnZURlY29kZXJDRy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU1NUI4N0VCMUNBQUYwQUIwMDM0OTQyNSAvKiBJbWFnZURlY29kZXJDRy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZURlY29kZXJDRy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1NUQ0MDhGNzFBN0M2MzE4MDBDNzg0NTAgLyogU1ZHSW1hZ2VDbGllbnRz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0ltYWdlQ2xpZW50cy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzA5RThDQTFENDEzQ0UzMDAzMjQ0QUMgLyog
V2ViS2l0U3VidGxlQ3J5cHRvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYktpdFN1YnRsZUNyeXB0by5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTU3MDlFOENCMUQ0MTNDRTMwMDMyNDRBQyAvKiBXZWJLaXRTdWJ0bGVDcnlwdG8uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0U3VidGxlQ3J5cHRvLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MDlFOENDMUQ0MTNDRTMwMDMyNDRBQyAvKiBXZWJLaXRT
dWJ0bGVDcnlwdG8uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdFN1YnRsZUNyeXB0
by5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkE3RjIwMUM2RTU3MTkwMDlD
NjE0OSAvKiBTaW11bGF0ZWRDbGljay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTaW11bGF0ZWRDbGljay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJBN0Yy
MjFDNkU1QTY2MDA5QzYxNDkgLyogU2ltdWxhdGVkQ2xpY2suY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU2ltdWxhdGVkQ2xpY2suY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1N0VGNUU1RjFEMjBDODM5MDAxNzFFNjAgLyogVGV4dENvZGVjUmVwbGFj
ZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENvZGVjUmVwbGFj
ZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNDA4LDggKzEzNDExLDgg
QEAKIAkJQjU3Q0I1MkMxODJBM0VFRDAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRCb3guY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5lRWxlbWVudEJveC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1OTVGRjQ2MTgyNENFRTMwMEZGNTFDRCAv
KiBSZW5kZXJJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5k
ZXJJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNTlDQTU5QUYxNzBE
OEZBQTVCOEM5QUQgLyogTWF0aE1MU2NyaXB0c0VsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWF0aE1MU2NyaXB0c0VsZW1lbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlCNTlDQTg0OUQ0MUU2RjY1RDgxMTk3QUIgLyogTWF0aE1MU2Ny
aXB0c0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF0aE1MU2Ny
aXB0c0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjU5Q0E1OUFGMTcw
RDhGQUE1QjhDQUJFIC8qIE1hdGhNTFBhZGRlZEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWF0aE1MUGFkZGVkRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUI1OUNBODQ5RDQxRTZGNjVEODExOTdBQiAvKiBNYXRoTUxTY3Jp
cHRzRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXRoTUxTY3Jp
cHRzRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNTlDQTg0OUQ0MUU2
RjY1RDgxMTk4QkMgLyogTWF0aE1MUGFkZGVkRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNYXRoTUxQYWRkZWRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUI1OURENjk3MTE5MDI5RTUwMDdFOTY4NCAvKiBKU0RhdGFiYXNlQ2FsbGJhY2su
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNEYXRhYmFzZUNhbGxiYWNrLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1OURENjk4MTE5MDI5RTUwMDdFOTY4NCAv
KiBKU0RhdGFiYXNlQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNEYXRhYmFzZUNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE0NzgyLDEyICsxNDc4NSw5IEBACiAJCUUxRkUxMzdDMTg0RDI3MDIwMDg5MkYxMyAvKiBD
cnlwdG9BbGdvcml0aG1BRVNfS1dNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtQUVTX0tXTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTFGRjU3QTIwRjAxMjU1QjAwODkxRUJCIC8qIFRocmVhZEdsb2JhbERhdGEu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGhyZWFkR2xvYmFsRGF0YS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUZGNTdBNTBGMDEyNTZCMDA4OTFFQkIgLyog
VGhyZWFkR2xvYmFsRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBUaHJlYWRHbG9iYWxEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFG
RjhGNUMxODA3MzY0QjAwMTMyNjc0IC8qIFN1YnRsZUNyeXB0by5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3VidGxlQ3J5
cHRvLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFGRjhGNUQxODA3NDQyMTAw
MTMyNjc0IC8qIFN1YnRsZUNyeXB0by5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTdWJ0bGVDcnlwdG8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlF
MUZGOEY1RTE4MDc0NDIxMDAxMzI2NzQgLyogU3VidGxlQ3J5cHRvLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFN1YnRsZUNyeXB0by5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlFMUZGOEY2MjE4MDc0NUQ4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlwdG8uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdWJ0bGVDcnlwdG8uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMUZGOEY2MzE4MDc0NUQ4MDAxMzI2NzQgLyog
SlNTdWJ0bGVDcnlwdG8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdWJ0
bGVDcnlwdG8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFGRjhGNjYxODA3NDYw
ODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTFGRjhGNjIxODA3NDVEODAwMTMyNjc0IC8qIEpTV2ViS2l0U3Vi
dGxlQ3J5cHRvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2Vi
S2l0U3VidGxlQ3J5cHRvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFGRjhG
NjMxODA3NDVEODAwMTMyNjc0IC8qIEpTV2ViS2l0U3VidGxlQ3J5cHRvLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViS2l0U3VidGxlQ3J5cHRvLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUxRkY4RjY2MTgwNzQ2MDgwMDEzMjY3NCAvKiBKU1dlYktpdFN1
YnRsZUNyeXB0b0N1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU1dlYktpdFN1YnRsZUNyeXB0b0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUxRkY4RjZBMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3Ry
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0
aG1SZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkY4RjZCMTgw
REI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMzg4Mzg5NDFCQUQxNDVGMDBENjJFRTMgLyogSlNNb2R1bGVM
b2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNb2R1bGVM
b2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI3NjQsNyArMjI3NjQs
NiBAQAogCQkJCUJDOThBMjdDMEMwQzk5NTAwMDRCRUJGNyAvKiBKU1N0eWxlU2hlZXRDdXN0b20u
Y3BwICovLAogCQkJCUFENzI2RkVDMTZEOUY0QjkwMDNBNEU2RCAvKiBKU1N0eWxlU2hlZXRDdXN0
b20uaCAqLywKIAkJCQlBODRFQkQ3NzBDQjhDODkyMDAwNzk2MDkgLyogSlNTdHlsZVNoZWV0TGlz
dEN1c3RvbS5jcHAgKi8sCi0JCQkJRTFGRjhGNjYxODA3NDYwODAwMTMyNjc0IC8qIEpTU3VidGxl
Q3J5cHRvQ3VzdG9tLmNwcCAqLywKIAkJCQkwOEU0RkU0NTBFMkJENDE0MDBGNENBRTAgLyogSlNT
VkdMZW5ndGhDdXN0b20uY3BwICovLAogCQkJCUIyQzk2RDhDMEIzQUYyQjcwMDVFODBFQyAvKiBK
U1NWR1BhdGhTZWdDdXN0b20uY3BwICovLAogCQkJCTA3RTExNzA2MTQ4OUVCRUIwMEVDNUFDRSAv
KiBKU1RleHRUcmFja0N1ZUN1c3RvbS5jcHAgKi8sCkBAIC0yMjc4MCw2ICsyMjc3OSw3IEBACiAJ
CQkJRDNGM0QzNTkxQTY5QTNCMDAwNTlGQzJCIC8qIEpTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1
c3RvbS5jcHAgKi8sCiAJCQkJRDNGM0QzNUExQTY5QTNCMDAwNTlGQzJCIC8qIEpTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZUN1c3RvbS5jcHAgKi8sCiAJCQkJNDlFRUQxNEMxMDUxOTcxQTAwMDk5
RkFCIC8qIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCAqLywKKwkJCQlFMUZGOEY2
NjE4MDc0NjA4MDAxMzI2NzQgLyogSlNXZWJLaXRTdWJ0bGVDcnlwdG9DdXN0b20uY3BwICovLAog
CQkJCUJDMjc1Qjc4MTFDNUQxQzMwMEM5MjA2QyAvKiBKU1dlYktpdFBvaW50Q3VzdG9tLmNwcCAq
LywKIAkJCQlFMUNBNUNCQjBFOENEQ0FGMDBFOEVGOTAgLyogSlNXb3JrZXJDdXN0b20uY3BwICov
LAogCQkJCUUxODI1OEFCMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dvcmtlckdsb2JhbFNjb3BlQ3Vz
dG9tLmNwcCAqLywKQEAgLTIzNzg5LDkgKzIzNzg5LDkgQEAKIAkJCQlFMTk3MjcxNTE4MjA1NDlF
MDA1OTJENTEgLyogQ3J5cHRvS2V5VHlwZS5oICovLAogCQkJCUUxNzJBRjZGMTgwRjI4OTUwMEZC
QURCOSAvKiBDcnlwdG9LZXlVc2FnZS5oICovLAogCQkJCUUxOERGMzM0MThBQUYxMkMwMDc3M0U1
OSAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5oICovLAotCQkJCUUxRkY4RjVEMTgwNzQ0MjEw
MDEzMjY3NCAvKiBTdWJ0bGVDcnlwdG8uY3BwICovLAotCQkJCUUxRkY4RjVFMTgwNzQ0MjEwMDEz
MjY3NCAvKiBTdWJ0bGVDcnlwdG8uaCAqLywKLQkJCQlFMUZGOEY1QzE4MDczNjRCMDAxMzI2NzQg
LyogU3VidGxlQ3J5cHRvLmlkbCAqLywKKwkJCQk1NzA5RThDQTFENDEzQ0UzMDAzMjQ0QUMgLyog
V2ViS2l0U3VidGxlQ3J5cHRvLmNwcCAqLywKKwkJCQk1NzA5RThDQjFENDEzQ0UzMDAzMjQ0QUMg
LyogV2ViS2l0U3VidGxlQ3J5cHRvLmggKi8sCisJCQkJNTcwOUU4Q0MxRDQxM0NFMzAwMzI0NEFD
IC8qIFdlYktpdFN1YnRsZUNyeXB0by5pZGwgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNyeXB0bzsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMzgwMyw4ICsyMzgwMyw4IEBACiAJCQkJ
RTE1N0E4REYxODE3MzMxQzAwOUY4MjFEIC8qIEpTQ3J5cHRvS2V5LmggKi8sCiAJCQkJRTFGODBC
OEIxODMxNzJCNTAwNzg4NUMzIC8qIEpTQ3J5cHRvS2V5UGFpci5jcHAgKi8sCiAJCQkJRTFGODBC
OEMxODMxNzJCNTAwNzg4NUMzIC8qIEpTQ3J5cHRvS2V5UGFpci5oICovLAotCQkJCUUxRkY4RjYy
MTgwNzQ1RDgwMDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0by5jcHAgKi8sCi0JCQkJRTFGRjhGNjMx
ODA3NDVEODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvLmggKi8sCisJCQkJRTFGRjhGNjIxODA3
NDVEODAwMTMyNjc0IC8qIEpTV2ViS2l0U3VidGxlQ3J5cHRvLmNwcCAqLywKKwkJCQlFMUZGOEY2
MzE4MDc0NUQ4MDAxMzI2NzQgLyogSlNXZWJLaXRTdWJ0bGVDcnlwdG8uaCAqLywKIAkJCSk7CiAJ
CQluYW1lID0gQ3J5cHRvOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI2NTcyLDYg
KzI2NTcyLDggQEAKIAkJCQlBODcxRDQ1NjBBMTI3Q0JDMDBCMTJBNjggLyogSFRNTFBsdWdJbkVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0MTUyOTJFMEUxQUU4QTAwMEM0QTJEMCAvKiBI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBN0NCMDBBMTky
QjlDMDBBOEVGNUYgLyogSFRNTFByZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3MEE5
OURCMUQ0MUEyRjMwMDRFQzYzMCAvKiBKU1dlYktpdFN1YnRsZUNyeXB0by5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNTcwOUU4Q0YxRDQxM0Q5QTAwMzI0NEFDIC8qIFdlYktpdFN1YnRsZUNyeXB0by5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3QjM4NzMxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxQcmVs
b2FkU2Nhbm5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTQzQkY1OTkxMTQ5MjkwQTAwQzY0M0NB
IC8qIEhUTUxQcm9ncmVzc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4Q0ZGN0EzMEEx
NTY5NzgwMDBBNDIzNCAvKiBIVE1MUXVvdGVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI3
MTM4LDcgKzI3MTQwLDYgQEAKIAkJCQlCQ0UwMTM5QjBDMEJFRjE4MDA0Mzg2MEEgLyogSlNTdHls
ZVNoZWV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBRDcyNkZFRTE2REExMUJDMDAzQTRFNkQgLyog
SlNTdHlsZVNoZWV0Q3VzdG9tLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODRFQkQ4MzBDQjhDOTc3
MDAwNzk2MDkgLyogSlNTdHlsZVNoZWV0TGlzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTFGRjhG
NjUxODA3NDVEODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMjAxMTEwODBBQjc3NDA1MDBEQjBFNjggLyogSlNTVkdBRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMjREOTEyOTIxM0NBOTUxRTAwRDIxOTE1IC8qIEpTU1ZHQWx0R2x5cGhEZWZFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTE1RUM5MjBEOTcyM0ZGMDA2M0Q0OUEgLyogSlNT
VkdBbHRHbHlwaEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjgzNjYsNyArMjgzNjcsNiBA
QAogCQkJCTFBRTk2QTkzMUQxQTBEREQwMEI4Njc2OCAvKiBKU0FwcGxlUGF5U2hpcHBpbmdNZXRo
b2RTZWxlY3RlZEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkIwMjBEQjUzMDA2MDAx
REI3OTQgLyogU3Vic3RpdHV0ZVJlc291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUU5NkE4
QjFEMUEwREREMDBCODY3NjggLyogSlNBcHBsZVBheVBheW1lbnRBdXRob3JpemVkRXZlbnQuaCBp
biBIZWFkZXJzICovLAotCQkJCUUxRkY4RjYwMTgwNzQ0MjEwMDEzMjY3NCAvKiBTdWJ0bGVDcnlw
dG8uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQjJEODE2MEY5OTIwRDIwMDZBRTZCMiAvKiBTdWRk
ZW5UZXJtaW5hdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdDMDc4NTAxMTY1RDVCRTAwM0Ez
MkVGIC8qIFN1ZmZpeFRyZWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NjI3Qjk4MTRGQjU0MjQw
MDJDRENBMSAvKiBTdXBwbGVtZW50YWJsZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTMxMyw2ICsy
OTMxMyw4IEBACiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9u
TWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKKwkJCQk1NzA5RThDRTFENDEzRDVCMDAz
MjQ0QUMgLyogSlNXZWJLaXRTdWJ0bGVDcnlwdG9DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJNTcwOUU4Q0QxRDQxM0Q0NzAwMzI0NEFDIC8qIFdlYktpdFN1YnRsZUNyeXB0by5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk0MUUxQjFEMDBGRjU5ODY5MDA1NzZCM0IgLyogQWJzdHJhY3RXb3Jr
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzdGNTdBQjkxQTUwNzI2OTAwODc2Rjk4IC8qIEFj
Y2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzN0Y1N0FCQTFBNTA3
MjZGMDA4NzZGOTggLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTMwMzM2LDYgKzMwMzM4LDcgQEAKIAkJCQkwNzA3NTY4QjE0MjI2MkQ2MDA0MTQxNjEg
LyogSFRNTFRyYWNrRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzdCMzcyNTEyMjg3
MjE3MDBCODFGRjggLyogSFRNTFRyZWVCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4
RUE3OUYzMEExOTE2REYwMEE4RUY1RiAvKiBIVE1MVUxpc3RFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTU3MEE5OURBMUQ0MTc0MDgwMDRFQzYzMCAvKiBKU1dlYktpdFN1YnRsZUNyeXB0
by5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDQ2MTNBQTBDRDYzMzEwMDBGQURBNzUgLyogSFRN
TFZpZGVvRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MzlBQUZFQzFBMEMwQzhEMDA2
MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEI4QzU2RDQw
RjI4NjI3RjAwMDUwMkUxIC8qIEhUVFBIZWFkZXJNYXAuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0z
MDk0OSw4ICszMDk1Miw2IEBACiAJCQkJQkM5OEEyN0QwQzBDOTk1MDAwNEJFQkY3IC8qIEpTU3R5
bGVTaGVldEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODRFQkQ4NDBDQjhDOTc3MDAw
Nzk2MDkgLyogSlNTdHlsZVNoZWV0TGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODRFQkQ3
ODBDQjhDODkyMDAwNzk2MDkgLyogSlNTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQlFMUZGOEY2NDE4MDc0NUQ4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlwdG8uY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJRTFGRjhGNjgxODA3NDYwODAwMTMyNjc0IC8qIEpTU3VidGxl
Q3J5cHRvQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMDExMTA3MEFCNzc0MDUwMERC
MEU2OCAvKiBKU1NWR0FFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI0RDkxMjkxMTND
QTk1MUUwMEQyMTkxNSAvKiBKU1NWR0FsdEdseXBoRGVmRWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk2NTE1RUM5MTBEOTcyM0ZGMDA2M0Q0OUEgLyogSlNTVkdBbHRHbHlwaEVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMjAwNyw3ICszMjAwOCw2IEBACiAJCQkJOTNFMjI3RTQw
QUY1ODlBRDAwRDQ4MzI0IC8qIFN1YnJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTdFMzdFRjJFMTMzOTIwODgwMEIyOTI1MCAvKiBTdWJyZXNvdXJjZUxvYWRlckNGLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTdFOEZBREM0MTk5QTk1QjEwMDcxNDk2OCAvKiBTdWJyZXNvdXJj
ZUxvYWRlckNvY29hLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJRTFGRjhGNUYxODA3NDQyMTAwMTMy
Njc0IC8qIFN1YnRsZUNyeXB0by5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0IyRDgxODBGOTky
MEVFMDA2QUU2QjIgLyogU3VkZGVuVGVybWluYXRpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkw
ODc1NThDNTEzQjRBNTdEMDBGNDkzMDcgLyogU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9y
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTYyQzEyMTdDMTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNw
ZW5kYWJsZVRpbWVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA2OWUxNTc4ZGNjYjRkZjc1Y2Q0YTg1MDk4YTkwYjgzNjQ3ZjQzODhhLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcAorKysgL2Rldi9udWxsCkBAIC0x
LDgwNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IkpTU3VidGxlQ3J5cHRvLmgiCi0KLSNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQotI2luY2x1
ZGUgIkNyeXB0b0FsZ29yaXRobS5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnMuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oIgotI2luY2x1ZGUgIkNy
eXB0b0tleURhdGEuaCIKLSNpbmNsdWRlICJDcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3LmgiCi0j
aW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVk
ZSAiSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmgiCi0jaW5jbHVkZSAiSlNDcnlwdG9LZXku
aCIKLSNpbmNsdWRlICJKU0NyeXB0b0tleVBhaXIuaCIKLSNpbmNsdWRlICJKU0NyeXB0b0tleVNl
cmlhbGl6YXRpb25KV0suaCIKLSNpbmNsdWRlICJKU0NyeXB0b09wZXJhdGlvbkRhdGEuaCIKLSNp
bmNsdWRlICJKU0RPTVByb21pc2UuaCIKLSNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+Ci0KLXVz
aW5nIG5hbWVzcGFjZSBKU0M7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotZW51bSBjbGFzcyBD
cnlwdG9LZXlGb3JtYXQgewotICAgIC8vIEFuIHVuZm9ybWF0dGVkIHNlcXVlbmNlIG9mIGJ5dGVz
LiBJbnRlbmRlZCBmb3Igc2VjcmV0IGtleXMuCi0gICAgUmF3LAotCi0gICAgLy8gVGhlIERFUiBl
bmNvZGluZyBvZiB0aGUgUHJpdmF0ZUtleUluZm8gc3RydWN0dXJlIGZyb20gUkZDIDUyMDguCi0g
ICAgUEtDUzgsCi0KLSAgICAvLyBUaGUgREVSIGVuY29kaW5nIG9mIHRoZSBTdWJqZWN0UHVibGlj
S2V5SW5mbyBzdHJ1Y3R1cmUgZnJvbSBSRkMgNTI4MC4KLSAgICBTUEtJLAotCi0gICAgLy8gVGhl
IGtleSBpcyByZXByZXNlbnRlZCBhcyBKU09OIGFjY29yZGluZyB0byB0aGUgSlNPTiBXZWIgS2V5
IGZvcm1hdC4KLSAgICBKV0sKLX07Ci0KLXN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtPiBj
cmVhdGVBbGdvcml0aG1Gcm9tSlNWYWx1ZShFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVl
KQotewotICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtSWRlbnRpZmllcjsK
LSAgICBpZiAoIUpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Z2V0QWxnb3JpdGhtSWRlbnRp
Zmllcigmc3RhdGUsIHZhbHVlLCBhbGdvcml0aG1JZGVudGlmaWVyKSkgewotICAgICAgICBBU1NF
UlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9
Ci0KLSAgICBhdXRvIHJlc3VsdCA9IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5OjpzaW5nbGV0b24o
KS5jcmVhdGUoYWxnb3JpdGhtSWRlbnRpZmllcik7Ci0gICAgaWYgKCFyZXN1bHQpCi0gICAgICAg
IHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIE5PVF9TVVBQT1JURURfRVJSKTsKLSAgICByZXR1cm4g
cmVzdWx0OwotfQotCi1zdGF0aWMgYm9vbCBjcnlwdG9LZXlGb3JtYXRGcm9tSlNWYWx1ZShFeGVj
U3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlLCBDcnlwdG9LZXlGb3JtYXQmIHJlc3VsdCkKLXsK
LSAgICBTdHJpbmcga2V5Rm9ybWF0U3RyaW5nID0gdmFsdWUudG9TdHJpbmcoJnN0YXRlKS0+dmFs
dWUoJnN0YXRlKTsKLSAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBpZiAoa2V5Rm9ybWF0U3RyaW5nID09ICJyYXciKQotICAgICAgICByZXN1
bHQgPSBDcnlwdG9LZXlGb3JtYXQ6OlJhdzsKLSAgICBlbHNlIGlmIChrZXlGb3JtYXRTdHJpbmcg
PT0gInBrY3M4IikKLSAgICAgICAgcmVzdWx0ID0gQ3J5cHRvS2V5Rm9ybWF0OjpQS0NTODsKLSAg
ICBlbHNlIGlmIChrZXlGb3JtYXRTdHJpbmcgPT0gInNwa2kiKQotICAgICAgICByZXN1bHQgPSBD
cnlwdG9LZXlGb3JtYXQ6OlNQS0k7Ci0gICAgZWxzZSBpZiAoa2V5Rm9ybWF0U3RyaW5nID09ICJq
d2siKQotICAgICAgICByZXN1bHQgPSBDcnlwdG9LZXlGb3JtYXQ6OkpXSzsKLSAgICBlbHNlIHsK
LSAgICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBBU0NJSUxpdGVyYWwoIlVua25vd24ga2V5
IGZvcm1hdCIpKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICByZXR1cm4gdHJ1
ZTsKLX0KLQotc3RhdGljIGJvb2wgY3J5cHRvS2V5VXNhZ2VzRnJvbUpTVmFsdWUoRXhlY1N0YXRl
JiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSwgQ3J5cHRvS2V5VXNhZ2UmIHJlc3VsdCkKLXsKLSAgICBp
ZiAoIWlzSlNBcnJheSh2YWx1ZSkpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlKTsK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHJlc3VsdCA9IDA7Ci0KLSAgICBK
U0FycmF5KiBhcnJheSA9IGFzQXJyYXkodmFsdWUpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgYXJyYXktPmxlbmd0aCgpOyArK2kpIHsKLSAgICAgICAgSlNWYWx1ZSBlbGVtZW50ID0gYXJy
YXktPmdldEluZGV4KCZzdGF0ZSwgaSk7Ci0gICAgICAgIFN0cmluZyB1c2FnZVN0cmluZyA9IGVs
ZW1lbnQudG9TdHJpbmcoJnN0YXRlKS0+dmFsdWUoJnN0YXRlKTsKLSAgICAgICAgaWYgKHN0YXRl
LmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAo
dXNhZ2VTdHJpbmcgPT0gImVuY3J5cHQiKQotICAgICAgICAgICAgcmVzdWx0IHw9IENyeXB0b0tl
eVVzYWdlRW5jcnlwdDsKLSAgICAgICAgZWxzZSBpZiAodXNhZ2VTdHJpbmcgPT0gImRlY3J5cHQi
KQotICAgICAgICAgICAgcmVzdWx0IHw9IENyeXB0b0tleVVzYWdlRGVjcnlwdDsKLSAgICAgICAg
ZWxzZSBpZiAodXNhZ2VTdHJpbmcgPT0gInNpZ24iKQotICAgICAgICAgICAgcmVzdWx0IHw9IENy
eXB0b0tleVVzYWdlU2lnbjsKLSAgICAgICAgZWxzZSBpZiAodXNhZ2VTdHJpbmcgPT0gInZlcmlm
eSIpCi0gICAgICAgICAgICByZXN1bHQgfD0gQ3J5cHRvS2V5VXNhZ2VWZXJpZnk7Ci0gICAgICAg
IGVsc2UgaWYgKHVzYWdlU3RyaW5nID09ICJkZXJpdmVLZXkiKQotICAgICAgICAgICAgcmVzdWx0
IHw9IENyeXB0b0tleVVzYWdlRGVyaXZlS2V5OwotICAgICAgICBlbHNlIGlmICh1c2FnZVN0cmlu
ZyA9PSAiZGVyaXZlQml0cyIpCi0gICAgICAgICAgICByZXN1bHQgfD0gQ3J5cHRvS2V5VXNhZ2VE
ZXJpdmVCaXRzOwotICAgICAgICBlbHNlIGlmICh1c2FnZVN0cmluZyA9PSAid3JhcEtleSIpCi0g
ICAgICAgICAgICByZXN1bHQgfD0gQ3J5cHRvS2V5VXNhZ2VXcmFwS2V5OwotICAgICAgICBlbHNl
IGlmICh1c2FnZVN0cmluZyA9PSAidW53cmFwS2V5IikKLSAgICAgICAgICAgIHJlc3VsdCB8PSBD
cnlwdG9LZXlVc2FnZVVud3JhcEtleTsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLUpT
VmFsdWUgSlNTdWJ0bGVDcnlwdG86OmVuY3J5cHQoRXhlY1N0YXRlJiBzdGF0ZSkKLXsKLSAgICBp
ZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgMykKLSAgICAgICAgcmV0dXJuIHN0YXRlLnZtKCku
dGhyb3dFeGNlcHRpb24oJnN0YXRlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3Rh
dGUpKTsKLQotICAgIGF1dG8gYWxnb3JpdGhtID0gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUo
c3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKLSAgICBpZiAoIWFsZ29yaXRobSkg
ewotICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBhdXRvIHBhcmFtZXRlcnMgPSBKU0NyeXB0b0Fs
Z29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JFbmNyeXB0KCZzdGF0ZSwgYWxn
b3JpdGhtLT5pZGVudGlmaWVyKCksIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKLSAgICBp
ZiAoIXBhcmFtZXRlcnMpIHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsK
LSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgUmVmUHRyPENyeXB0
b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVu
dCgxKSk7Ci0gICAgaWYgKCFrZXkpCi0gICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3Rh
dGUpOwotCi0gICAgaWYgKCFrZXktPmFsbG93cyhDcnlwdG9LZXlVc2FnZUVuY3J5cHQpKSB7Ci0g
ICAgICAgIHdyYXBwZWQoKS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291
cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgQVNDSUlMaXRlcmFsKCJLZXkgdXNhZ2VzIGRv
IG5vdCBpbmNsdWRlICdlbmNyeXB0JyIpKTsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0
ZSwgTk9UX1NVUFBPUlRFRF9FUlIpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAg
ICB9Ci0KLSAgICBDcnlwdG9PcGVyYXRpb25EYXRhIGRhdGE7Ci0gICAgaWYgKCFjcnlwdG9PcGVy
YXRpb25EYXRhRnJvbUpTVmFsdWUoJnN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSwg
ZGF0YSkpIHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgCi0gICAgSlNQcm9taXNlRGVmZXJy
ZWQqIHByb21pc2VEZWZlcnJlZCA9IEpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoJnN0YXRlLCBn
bG9iYWxPYmplY3QoKSk7Ci0gICAgRGVmZXJyZWRXcmFwcGVyIHdyYXBwZXIoJnN0YXRlLCBnbG9i
YWxPYmplY3QoKSwgcHJvbWlzZURlZmVycmVkKTsKLSAgICBhdXRvIHN1Y2Nlc3NDYWxsYmFjayA9
IFt3cmFwcGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4mIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAg
ICAgIGZ1bGZpbGxQcm9taXNlV2l0aEFycmF5QnVmZmVyKHdyYXBwZXIsIHJlc3VsdC5kYXRhKCks
IHJlc3VsdC5zaXplKCkpOwotICAgIH07Ci0gICAgYXV0byBmYWlsdXJlQ2FsbGJhY2sgPSBbd3Jh
cHBlcl0oKSBtdXRhYmxlIHsKLSAgICAgICAgd3JhcHBlci5yZWplY3QobnVsbHB0cik7Ci0gICAg
fTsKLQotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGFsZ29yaXRobS0+ZW5jcnlwdCgq
cGFyYW1ldGVycywgKmtleSwgZGF0YSwgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3Zl
KGZhaWx1cmVDYWxsYmFjayksIGVjKTsKLSAgICBpZiAoZWMpIHsKLSAgICAgICAgc2V0RE9NRXhj
ZXB0aW9uKCZzdGF0ZSwgZWMpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9
Ci0KLSAgICByZXR1cm4gcHJvbWlzZURlZmVycmVkLT5wcm9taXNlKCk7Ci19Ci0KLUpTVmFsdWUg
SlNTdWJ0bGVDcnlwdG86OmRlY3J5cHQoRXhlY1N0YXRlJiBzdGF0ZSkKLXsKLSAgICBpZiAoc3Rh
dGUuYXJndW1lbnRDb3VudCgpIDwgMykKLSAgICAgICAgcmV0dXJuIHN0YXRlLnZtKCkudGhyb3dF
eGNlcHRpb24oJnN0YXRlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsK
LQotICAgIGF1dG8gYWxnb3JpdGhtID0gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUs
IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKLSAgICBpZiAoIWFsZ29yaXRobSkgewotICAg
ICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKLSAgICB9Ci0KLSAgICBhdXRvIHBhcmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRo
bURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZWNyeXB0KCZzdGF0ZSwgYWxnb3JpdGht
LT5pZGVudGlmaWVyKCksIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKLSAgICBpZiAoIXBh
cmFtZXRlcnMpIHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgUmVmUHRyPENyeXB0b0tleT4g
a2V5ID0gSlNDcnlwdG9LZXk6OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7
Ci0gICAgaWYgKCFrZXkpCi0gICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUpOwot
Ci0gICAgaWYgKCFrZXktPmFsbG93cyhDcnlwdG9LZXlVc2FnZURlY3J5cHQpKSB7Ci0gICAgICAg
IHdyYXBwZWQoKS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpK
UywgTWVzc2FnZUxldmVsOjpFcnJvciwgQVNDSUlMaXRlcmFsKCJLZXkgdXNhZ2VzIGRvIG5vdCBp
bmNsdWRlICdkZWNyeXB0JyIpKTsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgTk9U
X1NVUFBPUlRFRF9FUlIpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0K
LSAgICBDcnlwdG9PcGVyYXRpb25EYXRhIGRhdGE7Ci0gICAgaWYgKCFjcnlwdG9PcGVyYXRpb25E
YXRhRnJvbUpTVmFsdWUoJnN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSwgZGF0YSkp
IHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VE
ZWZlcnJlZCA9IEpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoJnN0YXRlLCBnbG9iYWxPYmplY3Qo
KSk7Ci0gICAgRGVmZXJyZWRXcmFwcGVyIHdyYXBwZXIoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwg
cHJvbWlzZURlZmVycmVkKTsKLSAgICBhdXRvIHN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShj
b25zdCBWZWN0b3I8dWludDhfdD4mIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIGZ1bGZpbGxQ
cm9taXNlV2l0aEFycmF5QnVmZmVyKHdyYXBwZXIsIHJlc3VsdC5kYXRhKCksIHJlc3VsdC5zaXpl
KCkpOwotICAgIH07Ci0gICAgYXV0byBmYWlsdXJlQ2FsbGJhY2sgPSBbd3JhcHBlcl0oKSBtdXRh
YmxlIHsKLSAgICAgICAgd3JhcHBlci5yZWplY3QobnVsbHB0cik7Ci0gICAgfTsKLQotICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGFsZ29yaXRobS0+ZGVjcnlwdCgqcGFyYW1ldGVycywg
KmtleSwgZGF0YSwgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxs
YmFjayksIGVjKTsKLSAgICBpZiAoZWMpIHsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0
ZSwgZWMpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICByZXR1
cm4gcHJvbWlzZURlZmVycmVkLT5wcm9taXNlKCk7Ci19Ci0KLUpTVmFsdWUgSlNTdWJ0bGVDcnlw
dG86OnNpZ24oRXhlY1N0YXRlJiBzdGF0ZSkKLXsKLSAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3Vu
dCgpIDwgMykKLSAgICAgICAgcmV0dXJuIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRl
LCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKLQotICAgIGF1dG8gYWxn
b3JpdGhtID0gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDApKTsKLSAgICBpZiAoIWFsZ29yaXRobSkgewotICAgICAgICBBU1NFUlQoc3Rh
dGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9
Ci0KLSAgICBhdXRvIHBhcmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNy
ZWF0ZVBhcmFtZXRlcnNGb3JTaWduKCZzdGF0ZSwgYWxnb3JpdGhtLT5pZGVudGlmaWVyKCksIHN0
YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKLSAgICBpZiAoIXBhcmFtZXRlcnMpIHsKLSAgICAg
ICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7Ci0gICAgfQotCi0gICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6
OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7Ci0gICAgaWYgKCFrZXkpCi0g
ICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUpOwotCi0gICAgaWYgKCFrZXktPmFs
bG93cyhDcnlwdG9LZXlVc2FnZVNpZ24pKSB7Ci0gICAgICAgIHdyYXBwZWQoKS5kb2N1bWVudCgp
LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJv
ciwgQVNDSUlMaXRlcmFsKCJLZXkgdXNhZ2VzIGRvIG5vdCBpbmNsdWRlICdzaWduJyIpKTsKLSAg
ICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgTk9UX1NVUFBPUlRFRF9FUlIpOwotICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBDcnlwdG9PcGVyYXRpb25EYXRh
IGRhdGE7Ci0gICAgaWYgKCFjcnlwdG9PcGVyYXRpb25EYXRhRnJvbUpTVmFsdWUoJnN0YXRlLCBz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSwgZGF0YSkpIHsKLSAgICAgICAgQVNTRVJUKHN0YXRl
LmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQot
Ci0gICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VEZWZlcnJlZCA9IEpTUHJvbWlzZURlZmVy
cmVkOjpjcmVhdGUoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSk7Ci0gICAgRGVmZXJyZWRXcmFwcGVy
IHdyYXBwZXIoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgcHJvbWlzZURlZmVycmVkKTsKLSAgICBh
dXRvIHN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4mIHJl
c3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEFycmF5QnVmZmVyKHdy
YXBwZXIsIHJlc3VsdC5kYXRhKCksIHJlc3VsdC5zaXplKCkpOwotICAgIH07Ci0gICAgYXV0byBm
YWlsdXJlQ2FsbGJhY2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxlIHsKLSAgICAgICAgd3JhcHBlci5y
ZWplY3QobnVsbHB0cik7Ci0gICAgfTsKLQotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAg
IGFsZ29yaXRobS0+c2lnbigqcGFyYW1ldGVycywgKmtleSwgZGF0YSwgV1RGTW92ZShzdWNjZXNz
Q2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKLSAgICBpZiAoZWMpIHsK
LSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgZWMpOwotICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcHJvbWlzZURlZmVycmVkLT5wcm9taXNl
KCk7Ci19Ci0KLUpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OnZlcmlmeShFeGVjU3RhdGUmIHN0YXRl
KQotewotICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPCA0KQotICAgICAgICByZXR1cm4g
c3RhdGUudm0oKS50aHJvd0V4Y2VwdGlvbigmc3RhdGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKCZzdGF0ZSkpOwotCi0gICAgYXV0byBhbGdvcml0aG0gPSBjcmVhdGVBbGdvcml0aG1G
cm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwotICAgIGlmICgh
YWxnb3JpdGhtKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIGF1dG8gcGFyYW1ldGVycyA9
IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvclZlcmlmeSgm
c3RhdGUsIGFsZ29yaXRobS0+aWRlbnRpZmllcigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgw
KSk7Ci0gICAgaWYgKCFwYXJhbWV0ZXJzKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNl
cHRpb24oKSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIFJl
ZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQoc3RhdGUudW5jaGVj
a2VkQXJndW1lbnQoMSkpOwotICAgIGlmICgha2V5KQotICAgICAgICByZXR1cm4gdGhyb3dUeXBl
RXJyb3IoJnN0YXRlKTsKLQotICAgIGlmICgha2V5LT5hbGxvd3MoQ3J5cHRvS2V5VXNhZ2VWZXJp
ZnkpKSB7Ci0gICAgICAgIHdyYXBwZWQoKS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgQVNDSUlMaXRlcmFsKCJLZXkg
dXNhZ2VzIGRvIG5vdCBpbmNsdWRlICd2ZXJpZnknIikpOwotICAgICAgICBzZXRET01FeGNlcHRp
b24oJnN0YXRlLCBOT1RfU1VQUE9SVEVEX0VSUik7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOwotICAgIH0KLQotICAgIENyeXB0b09wZXJhdGlvbkRhdGEgc2lnbmF0dXJlOwotICAgIGlm
ICghY3J5cHRvT3BlcmF0aW9uRGF0YUZyb21KU1ZhbHVlKCZzdGF0ZSwgc3RhdGUudW5jaGVja2Vk
QXJndW1lbnQoMiksIHNpZ25hdHVyZSkpIHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2Vw
dGlvbigpKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgQ3J5
cHRvT3BlcmF0aW9uRGF0YSBkYXRhOwotICAgIGlmICghY3J5cHRvT3BlcmF0aW9uRGF0YUZyb21K
U1ZhbHVlKCZzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMyksIGRhdGEpKSB7Ci0gICAg
ICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwotICAgIH0KLQotICAgIEpTUHJvbWlzZURlZmVycmVkKiBwcm9taXNlRGVmZXJyZWQg
PSBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCkpOwotICAg
IERlZmVycmVkV3JhcHBlciB3cmFwcGVyKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHByb21pc2VE
ZWZlcnJlZCk7Ci0gICAgYXV0byBzdWNjZXNzQ2FsbGJhY2sgPSBbd3JhcHBlcl0oYm9vbCByZXN1
bHQpIG11dGFibGUgewotICAgICAgICB3cmFwcGVyLnJlc29sdmUocmVzdWx0KTsKLSAgICB9Owot
ICAgIGF1dG8gZmFpbHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAg
IHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOwotICAgIH07Ci0KLSAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKLSAgICBhbGdvcml0aG0tPnZlcmlmeSgqcGFyYW1ldGVycywgKmtleSwgc2lnbmF0dXJl
LCBkYXRhLCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNr
KSwgZWMpOwotICAgIGlmIChlYykgewotICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBl
Yyk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIHJldHVybiBw
cm9taXNlRGVmZXJyZWQtPnByb21pc2UoKTsKLX0KLQotSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6
ZGlnZXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQo
KSA8IDIpCi0gICAgICAgIHJldHVybiBzdGF0ZS52bSgpLnRocm93RXhjZXB0aW9uKCZzdGF0ZSwg
Y3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7Ci0KLSAgICBhdXRvIGFsZ29y
aXRobSA9IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRB
cmd1bWVudCgwKSk7Ci0gICAgaWYgKCFhbGdvcml0aG0pIHsKLSAgICAgICAgQVNTRVJUKHN0YXRl
LmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQot
Ci0gICAgYXV0byBwYXJhbWV0ZXJzID0gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVh
dGVQYXJhbWV0ZXJzRm9yRGlnZXN0KCZzdGF0ZSwgYWxnb3JpdGhtLT5pZGVudGlmaWVyKCksIHN0
YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKLSAgICBpZiAoIXBhcmFtZXRlcnMpIHsKLSAgICAg
ICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7Ci0gICAgfQotCi0gICAgQ3J5cHRvT3BlcmF0aW9uRGF0YSBkYXRhOwotICAgIGlmICgh
Y3J5cHRvT3BlcmF0aW9uRGF0YUZyb21KU1ZhbHVlKCZzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoMSksIGRhdGEpKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7
Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIEpTUHJvbWlzZURl
ZmVycmVkKiBwcm9taXNlRGVmZXJyZWQgPSBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKCZzdGF0
ZSwgZ2xvYmFsT2JqZWN0KCkpOwotICAgIERlZmVycmVkV3JhcHBlciB3cmFwcGVyKCZzdGF0ZSwg
Z2xvYmFsT2JqZWN0KCksIHByb21pc2VEZWZlcnJlZCk7Ci0gICAgYXV0byBzdWNjZXNzQ2FsbGJh
Y2sgPSBbd3JhcHBlcl0oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiByZXN1bHQpIG11dGFibGUgewot
ICAgICAgICBmdWxmaWxsUHJvbWlzZVdpdGhBcnJheUJ1ZmZlcih3cmFwcGVyLCByZXN1bHQuZGF0
YSgpLCByZXN1bHQuc2l6ZSgpKTsKLSAgICB9OwotICAgIGF1dG8gZmFpbHVyZUNhbGxiYWNrID0g
W3dyYXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOwot
ICAgIH07Ci0KLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBhbGdvcml0aG0tPmRpZ2Vz
dCgqcGFyYW1ldGVycywgZGF0YSwgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGZh
aWx1cmVDYWxsYmFjayksIGVjKTsKLSAgICBpZiAoZWMpIHsKLSAgICAgICAgc2V0RE9NRXhjZXB0
aW9uKCZzdGF0ZSwgZWMpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0K
LSAgICByZXR1cm4gcHJvbWlzZURlZmVycmVkLT5wcm9taXNlKCk7Ci19Ci0KLUpTVmFsdWUgSlNT
dWJ0bGVDcnlwdG86OmdlbmVyYXRlS2V5KEV4ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgaWYgKHN0
YXRlLmFyZ3VtZW50Q291bnQoKSA8IDEpCi0gICAgICAgIHJldHVybiBzdGF0ZS52bSgpLnRocm93
RXhjZXB0aW9uKCZzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7
Ci0KLSAgICBhdXRvIGFsZ29yaXRobSA9IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0YXRl
LCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7Ci0gICAgaWYgKCFhbGdvcml0aG0pIHsKLSAg
ICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgYXV0byBwYXJhbWV0ZXJzID0gSlNDcnlwdG9BbGdvcml0
aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yR2VuZXJhdGVLZXkoJnN0YXRlLCBhbGdv
cml0aG0tPmlkZW50aWZpZXIoKSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwotICAgIGlm
ICghcGFyYW1ldGVycykgewotICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwot
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBib29sIGV4dHJhY3Rh
YmxlID0gZmFsc2U7Ci0gICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA+PSAyKSB7Ci0gICAg
ICAgIGV4dHJhY3RhYmxlID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9Cb29sZWFuKCZz
dGF0ZSk7Ci0gICAgICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIENyeXB0b0tleVVzYWdlIGtleVVzYWdl
cyA9IDA7Ci0gICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA+PSAzKSB7Ci0gICAgICAgIGlm
ICghY3J5cHRvS2V5VXNhZ2VzRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLmFyZ3VtZW50KDIpLCBr
ZXlVc2FnZXMpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwot
ICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAg
ICBKU1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZURlZmVycmVkID0gSlNQcm9taXNlRGVmZXJyZWQ6
OmNyZWF0ZSgmc3RhdGUsIGdsb2JhbE9iamVjdCgpKTsKLSAgICBEZWZlcnJlZFdyYXBwZXIgd3Jh
cHBlcigmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCBwcm9taXNlRGVmZXJyZWQpOwotICAgIGF1dG8g
c3VjY2Vzc0NhbGxiYWNrID0gW3dyYXBwZXJdKENyeXB0b0tleSoga2V5LCBDcnlwdG9LZXlQYWly
KiBrZXlQYWlyKSBtdXRhYmxlIHsKLSAgICAgICAgQVNTRVJUKGtleSB8fCBrZXlQYWlyKTsKLSAg
ICAgICAgQVNTRVJUKCFrZXkgfHwgIWtleVBhaXIpOwotICAgICAgICBpZiAoa2V5KQotICAgICAg
ICAgICAgd3JhcHBlci5yZXNvbHZlKGtleSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHdy
YXBwZXIucmVzb2x2ZShrZXlQYWlyKTsKLSAgICB9OwotICAgIGF1dG8gZmFpbHVyZUNhbGxiYWNr
ID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIp
OwotICAgIH07Ci0KLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBhbGdvcml0aG0tPmdl
bmVyYXRlS2V5KCpwYXJhbWV0ZXJzLCBleHRyYWN0YWJsZSwga2V5VXNhZ2VzLCBXVEZNb3ZlKHN1
Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwotICAgIGlmIChl
YykgewotICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7Ci0gICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIHJldHVybiBwcm9taXNlRGVmZXJyZWQtPnBy
b21pc2UoKTsKLX0KLQotc3RhdGljIHZvaWQgaW1wb3J0S2V5KEV4ZWNTdGF0ZSYgc3RhdGUsIENy
eXB0b0tleUZvcm1hdCBrZXlGb3JtYXQsIENyeXB0b09wZXJhdGlvbkRhdGEgZGF0YSwgUmVmUHRy
PENyeXB0b0FsZ29yaXRobT4gYWxnb3JpdGhtLCBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVycz4gcGFyYW1ldGVycywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2Uga2V5VXNh
Z2VzLCBDcnlwdG9BbGdvcml0aG06OktleUNhbGxiYWNrIGNhbGxiYWNrLCBDcnlwdG9BbGdvcml0
aG06OlZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2spCi17Ci0gICAgc3RkOjp1bmlxdWVfcHRy
PENyeXB0b0tleVNlcmlhbGl6YXRpb24+IGtleVNlcmlhbGl6YXRpb247Ci0gICAgc3dpdGNoIChr
ZXlGb3JtYXQpIHsKLSAgICBjYXNlIENyeXB0b0tleUZvcm1hdDo6UmF3OgotICAgICAgICBrZXlT
ZXJpYWxpemF0aW9uID0gQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdzo6Y3JlYXRlKGRhdGEpOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIENyeXB0b0tleUZvcm1hdDo6SldLOiB7Ci0gICAgICAg
IFN0cmluZyBqd2tTdHJpbmcgPSBTdHJpbmc6OmZyb21VVEY4KGRhdGEuZmlyc3QsIGRhdGEuc2Vj
b25kKTsKLSAgICAgICAgaWYgKGp3a1N0cmluZy5pc051bGwoKSkgewotICAgICAgICAgICAgdGhy
b3dUeXBlRXJyb3IoJnN0YXRlLCBBU0NJSUxpdGVyYWwoIkpXSyBKU09OIHNlcmlhbGl6YXRpb24g
aXMgbm90IHZhbGlkIFVURi04IikpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0g
ICAgICAgIGtleVNlcmlhbGl6YXRpb24gPSBzdGQ6Om1ha2VfdW5pcXVlPEpTQ3J5cHRvS2V5U2Vy
aWFsaXphdGlvbkpXSz4oJnN0YXRlLCBqd2tTdHJpbmcpOwotICAgICAgICBpZiAoc3RhdGUuaGFk
RXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGJyZWFrOwotICAgIH0K
LSAgICBkZWZhdWx0OgotICAgICAgICB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIEFTQ0lJTGl0ZXJh
bCgiVW5zdXBwb3J0ZWQga2V5IGZvcm1hdCBmb3IgaW1wb3J0IikpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotCi0gICAgQVNTRVJUKGtleVNlcmlhbGl6YXRpb24pOwotCi0gICAgT3B0aW9uYWw8
Q3J5cHRvQWxnb3JpdGhtUGFpcj4gcmVjb25jaWxlZFJlc3VsdCA9IGtleVNlcmlhbGl6YXRpb24t
PnJlY29uY2lsZUFsZ29yaXRobShhbGdvcml0aG0uZ2V0KCksIHBhcmFtZXRlcnMuZ2V0KCkpOwot
ICAgIGlmICghcmVjb25jaWxlZFJlc3VsdCkgewotICAgICAgICBpZiAoIXN0YXRlLmhhZEV4Y2Vw
dGlvbigpKQotICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBBU0NJSUxpdGVyYWwo
IkFsZ29yaXRobSBzcGVjaWZpZWQgaW4ga2V5IGlzIG5vdCBjb21wYXRpYmxlIHdpdGggb25lIHBh
c3NlZCB0byBpbXBvcnRLZXkgYXMgYXJndW1lbnQiKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0gICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBh
bGdvcml0aG0gPSByZWNvbmNpbGVkUmVzdWx0LT5hbGdvcml0aG07Ci0gICAgcGFyYW1ldGVycyA9
IHJlY29uY2lsZWRSZXN1bHQtPnBhcmFtZXRlcnM7Ci0gICAgaWYgKCFhbGdvcml0aG0pIHsKLSAg
ICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBBU0NJSUxpdGVyYWwoIk5laXRoZXIga2V5IG5v
ciBmdW5jdGlvbiBhcmd1bWVudCBoYXMgY3J5cHRvIGFsZ29yaXRobSBzcGVjaWZpZWQiKSk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgQVNTRVJUKHBhcmFtZXRlcnMpOwotCi0gICAga2V5
U2VyaWFsaXphdGlvbi0+cmVjb25jaWxlRXh0cmFjdGFibGUoZXh0cmFjdGFibGUpOwotICAgIGlm
IChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAga2V5U2VyaWFs
aXphdGlvbi0+cmVjb25jaWxlVXNhZ2VzKGtleVVzYWdlcyk7Ci0gICAgaWYgKHN0YXRlLmhhZEV4
Y2VwdGlvbigpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvIGtleURhdGEgPSBrZXlTZXJp
YWxpemF0aW9uLT5rZXlEYXRhKCk7Ci0gICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBhbGdvcml0aG0t
PmltcG9ydEtleSgqcGFyYW1ldGVycywgKmtleURhdGEsIGV4dHJhY3RhYmxlLCBrZXlVc2FnZXMs
IFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKLSAgICBp
ZiAoZWMpCi0gICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIGVjKTsKLX0KLQotSlNWYWx1
ZSBKU1N1YnRsZUNyeXB0bzo6aW1wb3J0S2V5KEV4ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgaWYg
KHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDMpCi0gICAgICAgIHJldHVybiBzdGF0ZS52bSgpLnRo
cm93RXhjZXB0aW9uKCZzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRl
KSk7Ci0KLSAgICBDcnlwdG9LZXlGb3JtYXQga2V5Rm9ybWF0OwotICAgIGlmICghY3J5cHRvS2V5
Rm9ybWF0RnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLmFyZ3VtZW50KDApLCBrZXlGb3JtYXQpKSB7
Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIENyeXB0b09wZXJhdGlvbkRhdGEgZGF0YTsKLSAg
ICBpZiAoIWNyeXB0b09wZXJhdGlvbkRhdGFGcm9tSlNWYWx1ZSgmc3RhdGUsIHN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDEpLCBkYXRhKSkgewotICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0
aW9uKCkpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBSZWZQ
dHI8Q3J5cHRvQWxnb3JpdGhtPiBhbGdvcml0aG07Ci0gICAgUmVmUHRyPENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnM+IHBhcmFtZXRlcnM7Ci0gICAgaWYgKCFzdGF0ZS51bmNoZWNrZWRBcmd1bWVu
dCgyKS5pc051bGwoKSkgewotICAgICAgICBhbGdvcml0aG0gPSBjcmVhdGVBbGdvcml0aG1Gcm9t
SlNWYWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikpOwotICAgICAgICBpZiAo
IWFsZ29yaXRobSkgewotICAgICAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsK
LSAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICB9Ci0gICAgICAgIHBh
cmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNG
b3JJbXBvcnRLZXkoJnN0YXRlLCBhbGdvcml0aG0tPmlkZW50aWZpZXIoKSwgc3RhdGUudW5jaGVj
a2VkQXJndW1lbnQoMikpOwotICAgICAgICBpZiAoIXBhcmFtZXRlcnMpIHsKLSAgICAgICAgICAg
IEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGJvb2wgZXh0cmFjdGFibGUgPSBmYWxz
ZTsKLSAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpID49IDQpIHsKLSAgICAgICAgZXh0cmFj
dGFibGUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgzKS50b0Jvb2xlYW4oJnN0YXRlKTsKLSAg
ICAgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgQ3J5cHRvS2V5VXNhZ2Uga2V5VXNhZ2VzID0gMDsKLSAg
ICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpID49IDUpIHsKLSAgICAgICAgaWYgKCFjcnlwdG9L
ZXlVc2FnZXNGcm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUuYXJndW1lbnQoNCksIGtleVVzYWdlcykp
IHsKLSAgICAgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEpTUHJvbWlz
ZURlZmVycmVkKiBwcm9taXNlRGVmZXJyZWQgPSBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKCZz
dGF0ZSwgZ2xvYmFsT2JqZWN0KCkpOwotICAgIERlZmVycmVkV3JhcHBlciB3cmFwcGVyKCZzdGF0
ZSwgZ2xvYmFsT2JqZWN0KCksIHByb21pc2VEZWZlcnJlZCk7Ci0gICAgYXV0byBzdWNjZXNzQ2Fs
bGJhY2sgPSBbd3JhcHBlcl0oQ3J5cHRvS2V5JiByZXN1bHQpIG11dGFibGUgewotICAgICAgICB3
cmFwcGVyLnJlc29sdmUocmVzdWx0KTsKLSAgICB9OwotICAgIGF1dG8gZmFpbHVyZUNhbGxiYWNr
ID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIp
OwotICAgIH07Ci0KLSAgICBXZWJDb3JlOjppbXBvcnRLZXkoc3RhdGUsIGtleUZvcm1hdCwgZGF0
YSwgV1RGTW92ZShhbGdvcml0aG0pLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBleHRyYWN0YWJsZSwg
a2V5VXNhZ2VzLCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxi
YWNrKSk7Ci0gICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKLQotICAgIHJldHVybiBwcm9taXNlRGVmZXJyZWQtPnByb21pc2UoKTsKLX0K
LQotc3RhdGljIHZvaWQgZXhwb3J0S2V5KEV4ZWNTdGF0ZSYgc3RhdGUsIENyeXB0b0tleUZvcm1h
dCBrZXlGb3JtYXQsIGNvbnN0IENyeXB0b0tleSYga2V5LCBDcnlwdG9BbGdvcml0aG06OlZlY3Rv
ckNhbGxiYWNrIGNhbGxiYWNrLCBDcnlwdG9BbGdvcml0aG06OlZvaWRDYWxsYmFjayBmYWlsdXJl
Q2FsbGJhY2spCi17Ci0gICAgaWYgKCFrZXkuZXh0cmFjdGFibGUoKSkgewotICAgICAgICB0aHJv
d1R5cGVFcnJvcigmc3RhdGUsIEFTQ0lJTGl0ZXJhbCgiS2V5IGlzIG5vdCBleHRyYWN0YWJsZSIp
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHN3aXRjaCAoa2V5Rm9ybWF0KSB7Ci0g
ICAgY2FzZSBDcnlwdG9LZXlGb3JtYXQ6OlJhdzogewotICAgICAgICBWZWN0b3I8dWludDhfdD4g
cmVzdWx0OwotICAgICAgICBpZiAoQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdzo6c2VyaWFsaXpl
KGtleSwgcmVzdWx0KSkKLSAgICAgICAgICAgIGNhbGxiYWNrKHJlc3VsdCk7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIGZhaWx1cmVDYWxsYmFjaygpOwotICAgICAgICBicmVhazsKLSAgICB9
Ci0gICAgY2FzZSBDcnlwdG9LZXlGb3JtYXQ6OkpXSzogewotICAgICAgICBTdHJpbmcgcmVzdWx0
ID0gSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjpzZXJpYWxpemUoJnN0YXRlLCBrZXkpOwot
ICAgICAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIENTdHJpbmcgdXRmOFN0cmluZyA9IHJlc3VsdC51dGY4KFN0cmljdENvbnZlcnNpb24p
OwotICAgICAgICBWZWN0b3I8dWludDhfdD4gcmVzdWx0QnVmZmVyOwotICAgICAgICByZXN1bHRC
dWZmZXIuYXBwZW5kKHV0ZjhTdHJpbmcuZGF0YSgpLCB1dGY4U3RyaW5nLmxlbmd0aCgpKTsKLSAg
ICAgICAgY2FsbGJhY2socmVzdWx0QnVmZmVyKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAg
IGRlZmF1bHQ6Ci0gICAgICAgIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgQVNDSUlMaXRlcmFsKCJV
bnN1cHBvcnRlZCBrZXkgZm9ybWF0IGZvciBleHBvcnQiKSk7Ci0gICAgICAgIGJyZWFrOwotICAg
IH0KLX0KLQotSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6ZXhwb3J0S2V5KEV4ZWNTdGF0ZSYgc3Rh
dGUpCi17Ci0gICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDIpCi0gICAgICAgIHJldHVy
biBzdGF0ZS52bSgpLnRocm93RXhjZXB0aW9uKCZzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1l
bnRzRXJyb3IoJnN0YXRlKSk7Ci0KLSAgICBDcnlwdG9LZXlGb3JtYXQga2V5Rm9ybWF0OwotICAg
IGlmICghY3J5cHRvS2V5Rm9ybWF0RnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLmFyZ3VtZW50KDAp
LCBrZXlGb3JtYXQpKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0g
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIFJlZlB0cjxDcnlwdG9L
ZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MSkpOwotICAgIGlmICgha2V5KQotICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRl
KTsKLQotICAgIEpTUHJvbWlzZURlZmVycmVkKiBwcm9taXNlRGVmZXJyZWQgPSBKU1Byb21pc2VE
ZWZlcnJlZDo6Y3JlYXRlKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCkpOwotICAgIERlZmVycmVkV3Jh
cHBlciB3cmFwcGVyKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHByb21pc2VEZWZlcnJlZCk7Ci0g
ICAgYXV0byBzdWNjZXNzQ2FsbGJhY2sgPSBbd3JhcHBlcl0oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+
JiByZXN1bHQpIG11dGFibGUgewotICAgICAgICBmdWxmaWxsUHJvbWlzZVdpdGhBcnJheUJ1ZmZl
cih3cmFwcGVyLCByZXN1bHQuZGF0YSgpLCByZXN1bHQuc2l6ZSgpKTsKLSAgICB9OwotICAgIGF1
dG8gZmFpbHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHdyYXBw
ZXIucmVqZWN0KG51bGxwdHIpOwotICAgIH07Ci0KLSAgICBXZWJDb3JlOjpleHBvcnRLZXkoc3Rh
dGUsIGtleUZvcm1hdCwgKmtleSwgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGZh
aWx1cmVDYWxsYmFjaykpOwotICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0KLSAgICByZXR1cm4gcHJvbWlzZURlZmVycmVkLT5wcm9t
aXNlKCk7Ci19Ci0KLUpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OndyYXBLZXkoRXhlY1N0YXRlJiBz
dGF0ZSkKLXsKLSAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgNCkKLSAgICAgICAgcmV0
dXJuIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRlLCBjcmVhdGVOb3RFbm91Z2hBcmd1
bWVudHNFcnJvcigmc3RhdGUpKTsKLQotICAgIENyeXB0b0tleUZvcm1hdCBrZXlGb3JtYXQ7Ci0g
ICAgaWYgKCFjcnlwdG9LZXlGb3JtYXRGcm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUuYXJndW1lbnQo
MCksIGtleUZvcm1hdCkpIHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsK
LSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgUmVmUHRyPENyeXB0
b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVu
dCgxKSk7Ci0gICAgaWYgKCFrZXkpCi0gICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3Rh
dGUpOwotCi0gICAgUmVmUHRyPENyeXB0b0tleT4gd3JhcHBpbmdLZXkgPSBKU0NyeXB0b0tleTo6
dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpKTsKLSAgICBpZiAoIWtleSkKLSAg
ICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSk7Ci0KLSAgICBpZiAoIXdyYXBwaW5n
S2V5LT5hbGxvd3MoQ3J5cHRvS2V5VXNhZ2VXcmFwS2V5KSkgewotICAgICAgICB3cmFwcGVkKCku
ZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VM
ZXZlbDo6RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiS2V5IHVzYWdlcyBkbyBub3QgaW5jbHVkZSAnd3Jh
cEtleSciKSk7Ci0gICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIE5PVF9TVVBQT1JURURf
RVJSKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgYXV0byBh
bGdvcml0aG0gPSBjcmVhdGVBbGdvcml0aG1Gcm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVj
a2VkQXJndW1lbnQoMykpOwotICAgIGlmICghYWxnb3JpdGhtKSB7Ci0gICAgICAgIEFTU0VSVChz
dGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAg
IH0KLQotICAgIGF1dG8gcGFyYW1ldGVycyA9IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6
Y3JlYXRlUGFyYW1ldGVyc0ZvckVuY3J5cHQoJnN0YXRlLCBhbGdvcml0aG0tPmlkZW50aWZpZXIo
KSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMykpOwotICAgIGlmICghcGFyYW1ldGVycykgewot
ICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBKU1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZURlZmVy
cmVkID0gSlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSgmc3RhdGUsIGdsb2JhbE9iamVjdCgpKTsK
LSAgICBEZWZlcnJlZFdyYXBwZXIgd3JhcHBlcigmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCBwcm9t
aXNlRGVmZXJyZWQpOwotCi0gICAgYXV0byBleHBvcnRTdWNjZXNzQ2FsbGJhY2sgPSBba2V5Rm9y
bWF0LCBhbGdvcml0aG0sIHBhcmFtZXRlcnMsIHdyYXBwaW5nS2V5LCB3cmFwcGVyXShjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGV4cG9ydGVkS2V5RGF0YSkgbXV0YWJsZSB7Ci0gICAgICAgIGF1dG8g
ZW5jcnlwdFN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4m
IGVuY3J5cHRlZERhdGEpIG11dGFibGUgewotICAgICAgICAgICAgZnVsZmlsbFByb21pc2VXaXRo
QXJyYXlCdWZmZXIod3JhcHBlciwgZW5jcnlwdGVkRGF0YS5kYXRhKCksIGVuY3J5cHRlZERhdGEu
c2l6ZSgpKTsKLSAgICAgICAgfTsKLSAgICAgICAgYXV0byBlbmNyeXB0RmFpbHVyZUNhbGxiYWNr
ID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICB3cmFwcGVyLnJlamVjdChudWxs
cHRyKTsKLSAgICAgICAgfTsKLSAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAg
IGFsZ29yaXRobS0+ZW5jcnlwdEZvcldyYXBLZXkoKnBhcmFtZXRlcnMsICp3cmFwcGluZ0tleSwg
c3RkOjptYWtlX3BhaXIoZXhwb3J0ZWRLZXlEYXRhLmRhdGEoKSwgZXhwb3J0ZWRLZXlEYXRhLnNp
emUoKSksIFdURk1vdmUoZW5jcnlwdFN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZW5jcnlwdEZh
aWx1cmVDYWxsYmFjayksIGVjKTsKLSAgICAgICAgaWYgKGVjKSB7Ci0gICAgICAgICAgICAvLyBG
SVhNRTogUmVwb3J0IGZhaWx1cmUgZGV0YWlscyB0byBjb25zb2xlLCBhbmQgcG9zc2libHkgdG8g
Y2FsbGluZyBzY3JpcHQgb25jZSB0aGVyZSBpcyBhIHN0YW5kYXJkaXplZCB3YXkgdG8gcGFzcyBl
cnJvcnMgdG8gV2ViQ3J5cHRvIHByb21pc2UgcmVqZWN0IGZ1bmN0aW9ucy4KLSAgICAgICAgICAg
IHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOwotICAgICAgICB9Ci0gICAgfTsKLQotICAgIGF1dG8g
ZXhwb3J0RmFpbHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHdy
YXBwZXIucmVqZWN0KG51bGxwdHIpOwotICAgIH07Ci0KLSAgICBFeGNlcHRpb25Db2RlIGVjID0g
MDsKLSAgICBXZWJDb3JlOjpleHBvcnRLZXkoc3RhdGUsIGtleUZvcm1hdCwgKmtleSwgV1RGTW92
ZShleHBvcnRTdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGV4cG9ydEZhaWx1cmVDYWxsYmFjaykp
OwotICAgIGlmIChlYykgewotICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7Ci0g
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIHJldHVybiBwcm9taXNl
RGVmZXJyZWQtPnByb21pc2UoKTsKLX0KLQotSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6dW53cmFw
S2V5KEV4ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8
IDUpCi0gICAgICAgIHJldHVybiBzdGF0ZS52bSgpLnRocm93RXhjZXB0aW9uKCZzdGF0ZSwgY3Jl
YXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7Ci0KLSAgICBDcnlwdG9LZXlGb3Jt
YXQga2V5Rm9ybWF0OwotICAgIGlmICghY3J5cHRvS2V5Rm9ybWF0RnJvbUpTVmFsdWUoc3RhdGUs
IHN0YXRlLmFyZ3VtZW50KDApLCBrZXlGb3JtYXQpKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5o
YWRFeGNlcHRpb24oKSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQot
ICAgIENyeXB0b09wZXJhdGlvbkRhdGEgd3JhcHBlZEtleURhdGE7Ci0gICAgaWYgKCFjcnlwdG9P
cGVyYXRpb25EYXRhRnJvbUpTVmFsdWUoJnN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgx
KSwgd3JhcHBlZEtleURhdGEpKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24o
KSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIFJlZlB0cjxD
cnlwdG9LZXk+IHVud3JhcHBpbmdLZXkgPSBKU0NyeXB0b0tleTo6dG9XcmFwcGVkKHN0YXRlLnVu
Y2hlY2tlZEFyZ3VtZW50KDIpKTsKLSAgICBpZiAoIXVud3JhcHBpbmdLZXkpCi0gICAgICAgIHJl
dHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUpOwotCi0gICAgaWYgKCF1bndyYXBwaW5nS2V5LT5h
bGxvd3MoQ3J5cHRvS2V5VXNhZ2VVbndyYXBLZXkpKSB7Ci0gICAgICAgIHdyYXBwZWQoKS5kb2N1
bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVs
OjpFcnJvciwgQVNDSUlMaXRlcmFsKCJLZXkgdXNhZ2VzIGRvIG5vdCBpbmNsdWRlICd1bndyYXBL
ZXknIikpOwotICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBOT1RfU1VQUE9SVEVEX0VS
Uik7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIGF1dG8gdW53
cmFwQWxnb3JpdGhtID0gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLnVu
Y2hlY2tlZEFyZ3VtZW50KDMpKTsKLSAgICBpZiAoIXVud3JhcEFsZ29yaXRobSkgewotICAgICAg
ICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKLSAgICB9Ci0gICAgYXV0byB1bndyYXBBbGdvcml0aG1QYXJhbWV0ZXJzID0gSlNDcnlw
dG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRGVjcnlwdCgmc3RhdGUs
IHVud3JhcEFsZ29yaXRobS0+aWRlbnRpZmllcigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgz
KSk7Ci0gICAgaWYgKCF1bndyYXBBbGdvcml0aG1QYXJhbWV0ZXJzKSB7Ci0gICAgICAgIEFTU0VS
VChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwot
ICAgIH0KLQotICAgIFJlZlB0cjxDcnlwdG9BbGdvcml0aG0+IHVud3JhcHBlZEtleUFsZ29yaXRo
bTsKLSAgICBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gdW53cmFwcGVkS2V5QWxn
b3JpdGhtUGFyYW1ldGVyczsKLSAgICBpZiAoIXN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDQpLmlz
TnVsbCgpKSB7Ci0gICAgICAgIHVud3JhcHBlZEtleUFsZ29yaXRobSA9IGNyZWF0ZUFsZ29yaXRo
bUZyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCg0KSk7Ci0gICAgICAg
IGlmICghdW53cmFwcGVkS2V5QWxnb3JpdGhtKSB7Ci0gICAgICAgICAgICBBU1NFUlQoc3RhdGUu
aGFkRXhjZXB0aW9uKCkpOwotICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAg
ICAgIH0KLSAgICAgICAgdW53cmFwcGVkS2V5QWxnb3JpdGhtUGFyYW1ldGVycyA9IEpTQ3J5cHRv
QWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckltcG9ydEtleSgmc3RhdGUs
IHVud3JhcHBlZEtleUFsZ29yaXRobS0+aWRlbnRpZmllcigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1
bWVudCg0KSk7Ci0gICAgICAgIGlmICghdW53cmFwcGVkS2V5QWxnb3JpdGhtUGFyYW1ldGVycykg
ewotICAgICAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgYm9vbCBleHRy
YWN0YWJsZSA9IGZhbHNlOwotICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPj0gNikgewot
ICAgICAgICBleHRyYWN0YWJsZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDUpLnRvQm9vbGVh
bigmc3RhdGUpOwotICAgICAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBDcnlwdG9LZXlVc2FnZSBrZXlV
c2FnZXMgPSAwOwotICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPj0gNykgewotICAgICAg
ICBpZiAoIWNyeXB0b0tleVVzYWdlc0Zyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS5hcmd1bWVudCg2
KSwga2V5VXNhZ2VzKSkgewotICAgICAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigp
KTsKLSAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICB9Ci0gICAgfQot
Ci0gICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VEZWZlcnJlZCA9IEpTUHJvbWlzZURlZmVy
cmVkOjpjcmVhdGUoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSk7Ci0gICAgRGVmZXJyZWRXcmFwcGVy
IHdyYXBwZXIoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgcHJvbWlzZURlZmVycmVkKTsKLSAgICBT
dHJvbmc8SlNET01HbG9iYWxPYmplY3Q+IGRvbUdsb2JhbE9iamVjdChzdGF0ZS52bSgpLCBnbG9i
YWxPYmplY3QoKSk7Ci0KLSAgICBhdXRvIGRlY3J5cHRTdWNjZXNzQ2FsbGJhY2sgPSBbZG9tR2xv
YmFsT2JqZWN0LCBrZXlGb3JtYXQsIHVud3JhcHBlZEtleUFsZ29yaXRobSwgdW53cmFwcGVkS2V5
QWxnb3JpdGhtUGFyYW1ldGVycywgZXh0cmFjdGFibGUsIGtleVVzYWdlcywgd3JhcHBlcl0oY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiByZXN1bHQpIG11dGFibGUgewotICAgICAgICBhdXRvIGltcG9y
dFN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShDcnlwdG9LZXkmIGtleSkgbXV0YWJsZSB7Ci0g
ICAgICAgICAgICB3cmFwcGVyLnJlc29sdmUoa2V5KTsKLSAgICAgICAgfTsKLSAgICAgICAgYXV0
byBpbXBvcnRGYWlsdXJlQ2FsbGJhY2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxlIHsKLSAgICAgICAg
ICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOwotICAgICAgICB9OwotICAgICAgICBFeGVjU3Rh
dGUmIHN0YXRlID0gKmRvbUdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwotICAgICAgICBXZWJD
b3JlOjppbXBvcnRLZXkoc3RhdGUsIGtleUZvcm1hdCwgc3RkOjptYWtlX3BhaXIocmVzdWx0LmRh
dGEoKSwgcmVzdWx0LnNpemUoKSksIHVud3JhcHBlZEtleUFsZ29yaXRobSwgdW53cmFwcGVkS2V5
QWxnb3JpdGhtUGFyYW1ldGVycywgZXh0cmFjdGFibGUsIGtleVVzYWdlcywgV1RGTW92ZShpbXBv
cnRTdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGltcG9ydEZhaWx1cmVDYWxsYmFjaykpOwotICAg
ICAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBS
ZXBvcnQgZXhjZXB0aW9uIGRldGFpbHMgdG8gY29uc29sZSwgYW5kIHBvc3NpYmx5IHRvIGNhbGxp
bmcgc2NyaXB0IG9uY2UgdGhlcmUgaXMgYSBzdGFuZGFyZGl6ZWQgd2F5IHRvIHBhc3MgZXJyb3Jz
IHRvIFdlYkNyeXB0byBwcm9taXNlIHJlamVjdCBmdW5jdGlvbnMuCi0gICAgICAgICAgICBzdGF0
ZS5jbGVhckV4Y2VwdGlvbigpOwotICAgICAgICAgICAgd3JhcHBlci5yZWplY3QobnVsbHB0cik7
Ci0gICAgICAgIH0KLSAgICB9OwotCi0gICAgYXV0byBkZWNyeXB0RmFpbHVyZUNhbGxiYWNrID0g
W3dyYXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOwot
ICAgIH07Ci0KLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICB1bndyYXBBbGdvcml0aG0t
PmRlY3J5cHRGb3JVbndyYXBLZXkoKnVud3JhcEFsZ29yaXRobVBhcmFtZXRlcnMsICp1bndyYXBw
aW5nS2V5LCB3cmFwcGVkS2V5RGF0YSwgV1RGTW92ZShkZWNyeXB0U3VjY2Vzc0NhbGxiYWNrKSwg
V1RGTW92ZShkZWNyeXB0RmFpbHVyZUNhbGxiYWNrKSwgZWMpOwotICAgIGlmIChlYykgewotICAg
ICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwotICAgIH0KLQotICAgIHJldHVybiBwcm9taXNlRGVmZXJyZWQtPnByb21pc2UoKTsK
LX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0U3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0U3VidGxlQ3J5cHRvQ3VzdG9tLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xZThiYmMwYmE1YjM1NGRlZTZkOTZmOGRmYTdmYWMwMGE1MGQ0MTAyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRTdWJ0bGVD
cnlwdG9DdXN0b20uY3BwCkBAIC0wLDAgKzEsODA1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTV2ViS2l0U3VidGxlQ3J5cHRvLmgiCisKKyNpZiBFTkFC
TEUoU1VCVExFX0NSWVBUTykKKworI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobS5oIgorI2luY2x1
ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0
aG1SZWdpc3RyeS5oIgorI2luY2x1ZGUgIkNyeXB0b0tleURhdGEuaCIKKyNpbmNsdWRlICJDcnlw
dG9LZXlTZXJpYWxpemF0aW9uUmF3LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5
LmgiCisjaW5jbHVkZSAiSlNDcnlwdG9LZXkuaCIKKyNpbmNsdWRlICJKU0NyeXB0b0tleVBhaXIu
aCIKKyNpbmNsdWRlICJKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suaCIKKyNpbmNsdWRlICJK
U0NyeXB0b09wZXJhdGlvbkRhdGEuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2UuaCIKKyNpbmNs
dWRlIDxydW50aW1lL0Vycm9yLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBDcnlwdG9LZXlGb3JtYXQgeworICAgIC8vIEFuIHVu
Zm9ybWF0dGVkIHNlcXVlbmNlIG9mIGJ5dGVzLiBJbnRlbmRlZCBmb3Igc2VjcmV0IGtleXMuCisg
ICAgUmF3LAorCisgICAgLy8gVGhlIERFUiBlbmNvZGluZyBvZiB0aGUgUHJpdmF0ZUtleUluZm8g
c3RydWN0dXJlIGZyb20gUkZDIDUyMDguCisgICAgUEtDUzgsCisKKyAgICAvLyBUaGUgREVSIGVu
Y29kaW5nIG9mIHRoZSBTdWJqZWN0UHVibGljS2V5SW5mbyBzdHJ1Y3R1cmUgZnJvbSBSRkMgNTI4
MC4KKyAgICBTUEtJLAorCisgICAgLy8gVGhlIGtleSBpcyByZXByZXNlbnRlZCBhcyBKU09OIGFj
Y29yZGluZyB0byB0aGUgSlNPTiBXZWIgS2V5IGZvcm1hdC4KKyAgICBKV0sKK307CisKK3N0YXRp
YyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGVBbGdvcml0aG1Gcm9tSlNWYWx1ZShFeGVj
U3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQoreworICAgIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIgYWxnb3JpdGhtSWRlbnRpZmllcjsKKyAgICBpZiAoIUpTQ3J5cHRvQWxnb3JpdGhtRGlj
dGlvbmFyeTo6Z2V0QWxnb3JpdGhtSWRlbnRpZmllcigmc3RhdGUsIHZhbHVlLCBhbGdvcml0aG1J
ZGVudGlmaWVyKSkgeworICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBhdXRvIHJlc3VsdCA9IENyeXB0b0Fs
Z29yaXRobVJlZ2lzdHJ5OjpzaW5nbGV0b24oKS5jcmVhdGUoYWxnb3JpdGhtSWRlbnRpZmllcik7
CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIE5PVF9T
VVBQT1JURURfRVJSKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgYm9vbCBjcnlw
dG9LZXlGb3JtYXRGcm9tSlNWYWx1ZShFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlLCBD
cnlwdG9LZXlGb3JtYXQmIHJlc3VsdCkKK3sKKyAgICBTdHJpbmcga2V5Rm9ybWF0U3RyaW5nID0g
dmFsdWUudG9TdHJpbmcoJnN0YXRlKS0+dmFsdWUoJnN0YXRlKTsKKyAgICBpZiAoc3RhdGUuaGFk
RXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoa2V5Rm9ybWF0U3Ry
aW5nID09ICJyYXciKQorICAgICAgICByZXN1bHQgPSBDcnlwdG9LZXlGb3JtYXQ6OlJhdzsKKyAg
ICBlbHNlIGlmIChrZXlGb3JtYXRTdHJpbmcgPT0gInBrY3M4IikKKyAgICAgICAgcmVzdWx0ID0g
Q3J5cHRvS2V5Rm9ybWF0OjpQS0NTODsKKyAgICBlbHNlIGlmIChrZXlGb3JtYXRTdHJpbmcgPT0g
InNwa2kiKQorICAgICAgICByZXN1bHQgPSBDcnlwdG9LZXlGb3JtYXQ6OlNQS0k7CisgICAgZWxz
ZSBpZiAoa2V5Rm9ybWF0U3RyaW5nID09ICJqd2siKQorICAgICAgICByZXN1bHQgPSBDcnlwdG9L
ZXlGb3JtYXQ6OkpXSzsKKyAgICBlbHNlIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRl
LCBBU0NJSUxpdGVyYWwoIlVua25vd24ga2V5IGZvcm1hdCIpKTsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIGJvb2wgY3J5cHRvS2V5
VXNhZ2VzRnJvbUpTVmFsdWUoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSwgQ3J5cHRv
S2V5VXNhZ2UmIHJlc3VsdCkKK3sKKyAgICBpZiAoIWlzSlNBcnJheSh2YWx1ZSkpIHsKKyAgICAg
ICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KworICAgIHJlc3VsdCA9IDA7CisKKyAgICBKU0FycmF5KiBhcnJheSA9IGFzQXJyYXkodmFsdWUp
OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJyYXktPmxlbmd0aCgpOyArK2kpIHsKKyAg
ICAgICAgSlNWYWx1ZSBlbGVtZW50ID0gYXJyYXktPmdldEluZGV4KCZzdGF0ZSwgaSk7CisgICAg
ICAgIFN0cmluZyB1c2FnZVN0cmluZyA9IGVsZW1lbnQudG9TdHJpbmcoJnN0YXRlKS0+dmFsdWUo
JnN0YXRlKTsKKyAgICAgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBpZiAodXNhZ2VTdHJpbmcgPT0gImVuY3J5cHQiKQorICAg
ICAgICAgICAgcmVzdWx0IHw9IENyeXB0b0tleVVzYWdlRW5jcnlwdDsKKyAgICAgICAgZWxzZSBp
ZiAodXNhZ2VTdHJpbmcgPT0gImRlY3J5cHQiKQorICAgICAgICAgICAgcmVzdWx0IHw9IENyeXB0
b0tleVVzYWdlRGVjcnlwdDsKKyAgICAgICAgZWxzZSBpZiAodXNhZ2VTdHJpbmcgPT0gInNpZ24i
KQorICAgICAgICAgICAgcmVzdWx0IHw9IENyeXB0b0tleVVzYWdlU2lnbjsKKyAgICAgICAgZWxz
ZSBpZiAodXNhZ2VTdHJpbmcgPT0gInZlcmlmeSIpCisgICAgICAgICAgICByZXN1bHQgfD0gQ3J5
cHRvS2V5VXNhZ2VWZXJpZnk7CisgICAgICAgIGVsc2UgaWYgKHVzYWdlU3RyaW5nID09ICJkZXJp
dmVLZXkiKQorICAgICAgICAgICAgcmVzdWx0IHw9IENyeXB0b0tleVVzYWdlRGVyaXZlS2V5Owor
ICAgICAgICBlbHNlIGlmICh1c2FnZVN0cmluZyA9PSAiZGVyaXZlQml0cyIpCisgICAgICAgICAg
ICByZXN1bHQgfD0gQ3J5cHRvS2V5VXNhZ2VEZXJpdmVCaXRzOworICAgICAgICBlbHNlIGlmICh1
c2FnZVN0cmluZyA9PSAid3JhcEtleSIpCisgICAgICAgICAgICByZXN1bHQgfD0gQ3J5cHRvS2V5
VXNhZ2VXcmFwS2V5OworICAgICAgICBlbHNlIGlmICh1c2FnZVN0cmluZyA9PSAidW53cmFwS2V5
IikKKyAgICAgICAgICAgIHJlc3VsdCB8PSBDcnlwdG9LZXlVc2FnZVVud3JhcEtleTsKKyAgICB9
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK0pTVmFsdWUgSlNXZWJLaXRTdWJ0bGVDcnlwdG86OmVu
Y3J5cHQoRXhlY1N0YXRlJiBzdGF0ZSkKK3sKKyAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgp
IDwgMykKKyAgICAgICAgcmV0dXJuIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRlLCBj
cmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKKworICAgIGF1dG8gYWxnb3Jp
dGhtID0gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFy
Z3VtZW50KDApKTsKKyAgICBpZiAoIWFsZ29yaXRobSkgeworICAgICAgICBBU1NFUlQoc3RhdGUu
aGFkRXhjZXB0aW9uKCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisK
KyAgICBhdXRvIHBhcmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0
ZVBhcmFtZXRlcnNGb3JFbmNyeXB0KCZzdGF0ZSwgYWxnb3JpdGhtLT5pZGVudGlmaWVyKCksIHN0
YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBpZiAoIXBhcmFtZXRlcnMpIHsKKyAgICAg
ICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CisgICAgfQorCisgICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6
OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgaWYgKCFrZXkpCisg
ICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUpOworCisgICAgaWYgKCFrZXktPmFs
bG93cyhDcnlwdG9LZXlVc2FnZUVuY3J5cHQpKSB7CisgICAgICAgIHdyYXBwZWQoKS5kb2N1bWVu
dCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpF
cnJvciwgQVNDSUlMaXRlcmFsKCJLZXkgdXNhZ2VzIGRvIG5vdCBpbmNsdWRlICdlbmNyeXB0JyIp
KTsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgTk9UX1NVUFBPUlRFRF9FUlIpOwor
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBDcnlwdG9PcGVyYXRp
b25EYXRhIGRhdGE7CisgICAgaWYgKCFjcnlwdG9PcGVyYXRpb25EYXRhRnJvbUpTVmFsdWUoJnN0
YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSwgZGF0YSkpIHsKKyAgICAgICAgQVNTRVJU
KHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cisg
ICAgfQorCisgICAgCisgICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VEZWZlcnJlZCA9IEpT
UHJvbWlzZURlZmVycmVkOjpjcmVhdGUoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSk7CisgICAgRGVm
ZXJyZWRXcmFwcGVyIHdyYXBwZXIoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgcHJvbWlzZURlZmVy
cmVkKTsKKyAgICBhdXRvIHN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShjb25zdCBWZWN0b3I8
dWludDhfdD4mIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEFy
cmF5QnVmZmVyKHdyYXBwZXIsIHJlc3VsdC5kYXRhKCksIHJlc3VsdC5zaXplKCkpOworICAgIH07
CisgICAgYXV0byBmYWlsdXJlQ2FsbGJhY2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxlIHsKKyAgICAg
ICAgd3JhcHBlci5yZWplY3QobnVsbHB0cik7CisgICAgfTsKKworICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOworICAgIGFsZ29yaXRobS0+ZW5jcnlwdCgqcGFyYW1ldGVycywgKmtleSwgZGF0YSwg
V1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsK
KyAgICBpZiAoZWMpIHsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgZWMpOworICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gcHJvbWlzZURl
ZmVycmVkLT5wcm9taXNlKCk7Cit9CisKK0pTVmFsdWUgSlNXZWJLaXRTdWJ0bGVDcnlwdG86OmRl
Y3J5cHQoRXhlY1N0YXRlJiBzdGF0ZSkKK3sKKyAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgp
IDwgMykKKyAgICAgICAgcmV0dXJuIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRlLCBj
cmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKKworICAgIGF1dG8gYWxnb3Jp
dGhtID0gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFy
Z3VtZW50KDApKTsKKyAgICBpZiAoIWFsZ29yaXRobSkgeworICAgICAgICBBU1NFUlQoc3RhdGUu
aGFkRXhjZXB0aW9uKCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisK
KyAgICBhdXRvIHBhcmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0
ZVBhcmFtZXRlcnNGb3JEZWNyeXB0KCZzdGF0ZSwgYWxnb3JpdGhtLT5pZGVudGlmaWVyKCksIHN0
YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBpZiAoIXBhcmFtZXRlcnMpIHsKKyAgICAg
ICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CisgICAgfQorCisgICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6
OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgaWYgKCFrZXkpCisg
ICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUpOworCisgICAgaWYgKCFrZXktPmFs
bG93cyhDcnlwdG9LZXlVc2FnZURlY3J5cHQpKSB7CisgICAgICAgIHdyYXBwZWQoKS5kb2N1bWVu
dCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpF
cnJvciwgQVNDSUlMaXRlcmFsKCJLZXkgdXNhZ2VzIGRvIG5vdCBpbmNsdWRlICdkZWNyeXB0JyIp
KTsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgTk9UX1NVUFBPUlRFRF9FUlIpOwor
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBDcnlwdG9PcGVyYXRp
b25EYXRhIGRhdGE7CisgICAgaWYgKCFjcnlwdG9PcGVyYXRpb25EYXRhRnJvbUpTVmFsdWUoJnN0
YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSwgZGF0YSkpIHsKKyAgICAgICAgQVNTRVJU
KHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cisg
ICAgfQorCisgICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VEZWZlcnJlZCA9IEpTUHJvbWlz
ZURlZmVycmVkOjpjcmVhdGUoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSk7CisgICAgRGVmZXJyZWRX
cmFwcGVyIHdyYXBwZXIoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgcHJvbWlzZURlZmVycmVkKTsK
KyAgICBhdXRvIHN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShjb25zdCBWZWN0b3I8dWludDhf
dD4mIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEFycmF5QnVm
ZmVyKHdyYXBwZXIsIHJlc3VsdC5kYXRhKCksIHJlc3VsdC5zaXplKCkpOworICAgIH07CisgICAg
YXV0byBmYWlsdXJlQ2FsbGJhY2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgd3Jh
cHBlci5yZWplY3QobnVsbHB0cik7CisgICAgfTsKKworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OworICAgIGFsZ29yaXRobS0+ZGVjcnlwdCgqcGFyYW1ldGVycywgKmtleSwgZGF0YSwgV1RGTW92
ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKKyAgICBp
ZiAoZWMpIHsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgZWMpOworICAgICAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gcHJvbWlzZURlZmVycmVk
LT5wcm9taXNlKCk7Cit9CisKK0pTVmFsdWUgSlNXZWJLaXRTdWJ0bGVDcnlwdG86OnNpZ24oRXhl
Y1N0YXRlJiBzdGF0ZSkKK3sKKyAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgMykKKyAg
ICAgICAgcmV0dXJuIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRlLCBjcmVhdGVOb3RF
bm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKKworICAgIGF1dG8gYWxnb3JpdGhtID0gY3Jl
YXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDAp
KTsKKyAgICBpZiAoIWFsZ29yaXRobSkgeworICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0
aW9uKCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBhdXRv
IHBhcmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRl
cnNGb3JTaWduKCZzdGF0ZSwgYWxnb3JpdGhtLT5pZGVudGlmaWVyKCksIHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDApKTsKKyAgICBpZiAoIXBhcmFtZXRlcnMpIHsKKyAgICAgICAgQVNTRVJUKHN0
YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAg
fQorCisgICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvV3JhcHBlZChz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgaWYgKCFrZXkpCisgICAgICAgIHJldHVy
biB0aHJvd1R5cGVFcnJvcigmc3RhdGUpOworCisgICAgaWYgKCFrZXktPmFsbG93cyhDcnlwdG9L
ZXlVc2FnZVNpZ24pKSB7CisgICAgICAgIHdyYXBwZWQoKS5kb2N1bWVudCgpLT5hZGRDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgQVNDSUlMaXRl
cmFsKCJLZXkgdXNhZ2VzIGRvIG5vdCBpbmNsdWRlICdzaWduJyIpKTsKKyAgICAgICAgc2V0RE9N
RXhjZXB0aW9uKCZzdGF0ZSwgTk9UX1NVUFBPUlRFRF9FUlIpOworICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBDcnlwdG9PcGVyYXRpb25EYXRhIGRhdGE7CisgICAg
aWYgKCFjcnlwdG9PcGVyYXRpb25EYXRhRnJvbUpTVmFsdWUoJnN0YXRlLCBzdGF0ZS51bmNoZWNr
ZWRBcmd1bWVudCgyKSwgZGF0YSkpIHsKKyAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlv
bigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgSlNQcm9t
aXNlRGVmZXJyZWQqIHByb21pc2VEZWZlcnJlZCA9IEpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUo
JnN0YXRlLCBnbG9iYWxPYmplY3QoKSk7CisgICAgRGVmZXJyZWRXcmFwcGVyIHdyYXBwZXIoJnN0
YXRlLCBnbG9iYWxPYmplY3QoKSwgcHJvbWlzZURlZmVycmVkKTsKKyAgICBhdXRvIHN1Y2Nlc3ND
YWxsYmFjayA9IFt3cmFwcGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4mIHJlc3VsdCkgbXV0YWJs
ZSB7CisgICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEFycmF5QnVmZmVyKHdyYXBwZXIsIHJlc3Vs
dC5kYXRhKCksIHJlc3VsdC5zaXplKCkpOworICAgIH07CisgICAgYXV0byBmYWlsdXJlQ2FsbGJh
Y2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgd3JhcHBlci5yZWplY3QobnVsbHB0
cik7CisgICAgfTsKKworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIGFsZ29yaXRobS0+
c2lnbigqcGFyYW1ldGVycywgKmtleSwgZGF0YSwgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBX
VEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKKyAgICBpZiAoZWMpIHsKKyAgICAgICAgc2V0
RE9NRXhjZXB0aW9uKCZzdGF0ZSwgZWMpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
KyAgICB9CisKKyAgICByZXR1cm4gcHJvbWlzZURlZmVycmVkLT5wcm9taXNlKCk7Cit9CisKK0pT
VmFsdWUgSlNXZWJLaXRTdWJ0bGVDcnlwdG86OnZlcmlmeShFeGVjU3RhdGUmIHN0YXRlKQorewor
ICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPCA0KQorICAgICAgICByZXR1cm4gc3RhdGUu
dm0oKS50aHJvd0V4Y2VwdGlvbigmc3RhdGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KCZzdGF0ZSkpOworCisgICAgYXV0byBhbGdvcml0aG0gPSBjcmVhdGVBbGdvcml0aG1Gcm9tSlNW
YWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIGlmICghYWxnb3Jp
dGhtKSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIGF1dG8gcGFyYW1ldGVycyA9IEpTQ3J5
cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvclZlcmlmeSgmc3RhdGUs
IGFsZ29yaXRobS0+aWRlbnRpZmllcigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7Cisg
ICAgaWYgKCFwYXJhbWV0ZXJzKSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24o
KSk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIFJlZlB0cjxD
cnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoMSkpOworICAgIGlmICgha2V5KQorICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3Io
JnN0YXRlKTsKKworICAgIGlmICgha2V5LT5hbGxvd3MoQ3J5cHRvS2V5VXNhZ2VWZXJpZnkpKSB7
CisgICAgICAgIHdyYXBwZWQoKS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgQVNDSUlMaXRlcmFsKCJLZXkgdXNhZ2Vz
IGRvIG5vdCBpbmNsdWRlICd2ZXJpZnknIikpOworICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0
YXRlLCBOT1RfU1VQUE9SVEVEX0VSUik7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwor
ICAgIH0KKworICAgIENyeXB0b09wZXJhdGlvbkRhdGEgc2lnbmF0dXJlOworICAgIGlmICghY3J5
cHRvT3BlcmF0aW9uRGF0YUZyb21KU1ZhbHVlKCZzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1l
bnQoMiksIHNpZ25hdHVyZSkpIHsKKyAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigp
KTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgQ3J5cHRvT3Bl
cmF0aW9uRGF0YSBkYXRhOworICAgIGlmICghY3J5cHRvT3BlcmF0aW9uRGF0YUZyb21KU1ZhbHVl
KCZzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMyksIGRhdGEpKSB7CisgICAgICAgIEFT
U0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OworICAgIH0KKworICAgIEpTUHJvbWlzZURlZmVycmVkKiBwcm9taXNlRGVmZXJyZWQgPSBKU1By
b21pc2VEZWZlcnJlZDo6Y3JlYXRlKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCkpOworICAgIERlZmVy
cmVkV3JhcHBlciB3cmFwcGVyKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHByb21pc2VEZWZlcnJl
ZCk7CisgICAgYXV0byBzdWNjZXNzQ2FsbGJhY2sgPSBbd3JhcHBlcl0oYm9vbCByZXN1bHQpIG11
dGFibGUgeworICAgICAgICB3cmFwcGVyLnJlc29sdmUocmVzdWx0KTsKKyAgICB9OworICAgIGF1
dG8gZmFpbHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIHdyYXBw
ZXIucmVqZWN0KG51bGxwdHIpOworICAgIH07CisKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
KyAgICBhbGdvcml0aG0tPnZlcmlmeSgqcGFyYW1ldGVycywgKmtleSwgc2lnbmF0dXJlLCBkYXRh
LCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMp
OworICAgIGlmIChlYykgeworICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7Cisg
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIHJldHVybiBwcm9taXNl
RGVmZXJyZWQtPnByb21pc2UoKTsKK30KKworSlNWYWx1ZSBKU1dlYktpdFN1YnRsZUNyeXB0bzo6
ZGlnZXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCit7CisgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQo
KSA8IDIpCisgICAgICAgIHJldHVybiBzdGF0ZS52bSgpLnRocm93RXhjZXB0aW9uKCZzdGF0ZSwg
Y3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7CisKKyAgICBhdXRvIGFsZ29y
aXRobSA9IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRB
cmd1bWVudCgwKSk7CisgICAgaWYgKCFhbGdvcml0aG0pIHsKKyAgICAgICAgQVNTRVJUKHN0YXRl
LmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQor
CisgICAgYXV0byBwYXJhbWV0ZXJzID0gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVh
dGVQYXJhbWV0ZXJzRm9yRGlnZXN0KCZzdGF0ZSwgYWxnb3JpdGhtLT5pZGVudGlmaWVyKCksIHN0
YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBpZiAoIXBhcmFtZXRlcnMpIHsKKyAgICAg
ICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CisgICAgfQorCisgICAgQ3J5cHRvT3BlcmF0aW9uRGF0YSBkYXRhOworICAgIGlmICgh
Y3J5cHRvT3BlcmF0aW9uRGF0YUZyb21KU1ZhbHVlKCZzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoMSksIGRhdGEpKSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7
CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIEpTUHJvbWlzZURl
ZmVycmVkKiBwcm9taXNlRGVmZXJyZWQgPSBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKCZzdGF0
ZSwgZ2xvYmFsT2JqZWN0KCkpOworICAgIERlZmVycmVkV3JhcHBlciB3cmFwcGVyKCZzdGF0ZSwg
Z2xvYmFsT2JqZWN0KCksIHByb21pc2VEZWZlcnJlZCk7CisgICAgYXV0byBzdWNjZXNzQ2FsbGJh
Y2sgPSBbd3JhcHBlcl0oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiByZXN1bHQpIG11dGFibGUgewor
ICAgICAgICBmdWxmaWxsUHJvbWlzZVdpdGhBcnJheUJ1ZmZlcih3cmFwcGVyLCByZXN1bHQuZGF0
YSgpLCByZXN1bHQuc2l6ZSgpKTsKKyAgICB9OworICAgIGF1dG8gZmFpbHVyZUNhbGxiYWNrID0g
W3dyYXBwZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOwor
ICAgIH07CisKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBhbGdvcml0aG0tPmRpZ2Vz
dCgqcGFyYW1ldGVycywgZGF0YSwgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGZh
aWx1cmVDYWxsYmFjayksIGVjKTsKKyAgICBpZiAoZWMpIHsKKyAgICAgICAgc2V0RE9NRXhjZXB0
aW9uKCZzdGF0ZSwgZWMpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisK
KyAgICByZXR1cm4gcHJvbWlzZURlZmVycmVkLT5wcm9taXNlKCk7Cit9CisKK0pTVmFsdWUgSlNX
ZWJLaXRTdWJ0bGVDcnlwdG86OmdlbmVyYXRlS2V5KEV4ZWNTdGF0ZSYgc3RhdGUpCit7CisgICAg
aWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDEpCisgICAgICAgIHJldHVybiBzdGF0ZS52bSgp
LnRocm93RXhjZXB0aW9uKCZzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0
YXRlKSk7CisKKyAgICBhdXRvIGFsZ29yaXRobSA9IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVl
KHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgaWYgKCFhbGdvcml0aG0p
IHsKKyAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgYXV0byBwYXJhbWV0ZXJzID0gSlNDcnlwdG9B
bGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yR2VuZXJhdGVLZXkoJnN0YXRl
LCBhbGdvcml0aG0tPmlkZW50aWZpZXIoKSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwor
ICAgIGlmICghcGFyYW1ldGVycykgeworICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9u
KCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBib29sIGV4
dHJhY3RhYmxlID0gZmFsc2U7CisgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA+PSAyKSB7
CisgICAgICAgIGV4dHJhY3RhYmxlID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9Cb29s
ZWFuKCZzdGF0ZSk7CisgICAgICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIENyeXB0b0tleVVzYWdlIGtl
eVVzYWdlcyA9IDA7CisgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA+PSAzKSB7CisgICAg
ICAgIGlmICghY3J5cHRvS2V5VXNhZ2VzRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLmFyZ3VtZW50
KDIpLCBrZXlVc2FnZXMpKSB7CisgICAgICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9u
KCkpOworICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBKU1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZURlZmVycmVkID0gSlNQcm9taXNlRGVm
ZXJyZWQ6OmNyZWF0ZSgmc3RhdGUsIGdsb2JhbE9iamVjdCgpKTsKKyAgICBEZWZlcnJlZFdyYXBw
ZXIgd3JhcHBlcigmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCBwcm9taXNlRGVmZXJyZWQpOworICAg
IGF1dG8gc3VjY2Vzc0NhbGxiYWNrID0gW3dyYXBwZXJdKENyeXB0b0tleSoga2V5LCBDcnlwdG9L
ZXlQYWlyKiBrZXlQYWlyKSBtdXRhYmxlIHsKKyAgICAgICAgQVNTRVJUKGtleSB8fCBrZXlQYWly
KTsKKyAgICAgICAgQVNTRVJUKCFrZXkgfHwgIWtleVBhaXIpOworICAgICAgICBpZiAoa2V5KQor
ICAgICAgICAgICAgd3JhcHBlci5yZXNvbHZlKGtleSk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHdyYXBwZXIucmVzb2x2ZShrZXlQYWlyKTsKKyAgICB9OworICAgIGF1dG8gZmFpbHVyZUNh
bGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIHdyYXBwZXIucmVqZWN0KG51
bGxwdHIpOworICAgIH07CisKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBhbGdvcml0
aG0tPmdlbmVyYXRlS2V5KCpwYXJhbWV0ZXJzLCBleHRyYWN0YWJsZSwga2V5VXNhZ2VzLCBXVEZN
b3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOworICAg
IGlmIChlYykgeworICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7CisgICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIHJldHVybiBwcm9taXNlRGVmZXJy
ZWQtPnByb21pc2UoKTsKK30KKworc3RhdGljIHZvaWQgaW1wb3J0S2V5KEV4ZWNTdGF0ZSYgc3Rh
dGUsIENyeXB0b0tleUZvcm1hdCBrZXlGb3JtYXQsIENyeXB0b09wZXJhdGlvbkRhdGEgZGF0YSwg
UmVmUHRyPENyeXB0b0FsZ29yaXRobT4gYWxnb3JpdGhtLCBSZWZQdHI8Q3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycz4gcGFyYW1ldGVycywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2Ug
a2V5VXNhZ2VzLCBDcnlwdG9BbGdvcml0aG06OktleUNhbGxiYWNrIGNhbGxiYWNrLCBDcnlwdG9B
bGdvcml0aG06OlZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2spCit7CisgICAgc3RkOjp1bmlx
dWVfcHRyPENyeXB0b0tleVNlcmlhbGl6YXRpb24+IGtleVNlcmlhbGl6YXRpb247CisgICAgc3dp
dGNoIChrZXlGb3JtYXQpIHsKKyAgICBjYXNlIENyeXB0b0tleUZvcm1hdDo6UmF3OgorICAgICAg
ICBrZXlTZXJpYWxpemF0aW9uID0gQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdzo6Y3JlYXRlKGRh
dGEpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENyeXB0b0tleUZvcm1hdDo6SldLOiB7Cisg
ICAgICAgIFN0cmluZyBqd2tTdHJpbmcgPSBTdHJpbmc6OmZyb21VVEY4KGRhdGEuZmlyc3QsIGRh
dGEuc2Vjb25kKTsKKyAgICAgICAgaWYgKGp3a1N0cmluZy5pc051bGwoKSkgeworICAgICAgICAg
ICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBBU0NJSUxpdGVyYWwoIkpXSyBKU09OIHNlcmlhbGl6
YXRpb24gaXMgbm90IHZhbGlkIFVURi04IikpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIGtleVNlcmlhbGl6YXRpb24gPSBzdGQ6Om1ha2VfdW5pcXVlPEpTQ3J5cHRv
S2V5U2VyaWFsaXphdGlvbkpXSz4oJnN0YXRlLCBqd2tTdHJpbmcpOworICAgICAgICBpZiAoc3Rh
dGUuaGFkRXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIEFTQ0lJ
TGl0ZXJhbCgiVW5zdXBwb3J0ZWQga2V5IGZvcm1hdCBmb3IgaW1wb3J0IikpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUKGtleVNlcmlhbGl6YXRpb24pOworCisgICAgT3B0
aW9uYWw8Q3J5cHRvQWxnb3JpdGhtUGFpcj4gcmVjb25jaWxlZFJlc3VsdCA9IGtleVNlcmlhbGl6
YXRpb24tPnJlY29uY2lsZUFsZ29yaXRobShhbGdvcml0aG0uZ2V0KCksIHBhcmFtZXRlcnMuZ2V0
KCkpOworICAgIGlmICghcmVjb25jaWxlZFJlc3VsdCkgeworICAgICAgICBpZiAoIXN0YXRlLmhh
ZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBBU0NJSUxp
dGVyYWwoIkFsZ29yaXRobSBzcGVjaWZpZWQgaW4ga2V5IGlzIG5vdCBjb21wYXRpYmxlIHdpdGgg
b25lIHBhc3NlZCB0byBpbXBvcnRLZXkgYXMgYXJndW1lbnQiKSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm47CisK
KyAgICBhbGdvcml0aG0gPSByZWNvbmNpbGVkUmVzdWx0LT5hbGdvcml0aG07CisgICAgcGFyYW1l
dGVycyA9IHJlY29uY2lsZWRSZXN1bHQtPnBhcmFtZXRlcnM7CisgICAgaWYgKCFhbGdvcml0aG0p
IHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBBU0NJSUxpdGVyYWwoIk5laXRoZXIg
a2V5IG5vciBmdW5jdGlvbiBhcmd1bWVudCBoYXMgY3J5cHRvIGFsZ29yaXRobSBzcGVjaWZpZWQi
KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgQVNTRVJUKHBhcmFtZXRlcnMpOworCisg
ICAga2V5U2VyaWFsaXphdGlvbi0+cmVjb25jaWxlRXh0cmFjdGFibGUoZXh0cmFjdGFibGUpOwor
ICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAga2V5
U2VyaWFsaXphdGlvbi0+cmVjb25jaWxlVXNhZ2VzKGtleVVzYWdlcyk7CisgICAgaWYgKHN0YXRl
LmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGtleURhdGEgPSBr
ZXlTZXJpYWxpemF0aW9uLT5rZXlEYXRhKCk7CisgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigp
KQorICAgICAgICByZXR1cm47CisKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBhbGdv
cml0aG0tPmltcG9ydEtleSgqcGFyYW1ldGVycywgKmtleURhdGEsIGV4dHJhY3RhYmxlLCBrZXlV
c2FnZXMsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsK
KyAgICBpZiAoZWMpCisgICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIGVjKTsKK30KKwor
SlNWYWx1ZSBKU1dlYktpdFN1YnRsZUNyeXB0bzo6aW1wb3J0S2V5KEV4ZWNTdGF0ZSYgc3RhdGUp
Cit7CisgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDMpCisgICAgICAgIHJldHVybiBz
dGF0ZS52bSgpLnRocm93RXhjZXB0aW9uKCZzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRz
RXJyb3IoJnN0YXRlKSk7CisKKyAgICBDcnlwdG9LZXlGb3JtYXQga2V5Rm9ybWF0OworICAgIGlm
ICghY3J5cHRvS2V5Rm9ybWF0RnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLmFyZ3VtZW50KDApLCBr
ZXlGb3JtYXQpKSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIENyeXB0b09wZXJhdGlvbkRh
dGEgZGF0YTsKKyAgICBpZiAoIWNyeXB0b09wZXJhdGlvbkRhdGFGcm9tSlNWYWx1ZSgmc3RhdGUs
IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLCBkYXRhKSkgeworICAgICAgICBBU1NFUlQoc3Rh
dGUuaGFkRXhjZXB0aW9uKCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9
CisKKyAgICBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtPiBhbGdvcml0aG07CisgICAgUmVmUHRyPENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IHBhcmFtZXRlcnM7CisgICAgaWYgKCFzdGF0ZS51bmNo
ZWNrZWRBcmd1bWVudCgyKS5pc051bGwoKSkgeworICAgICAgICBhbGdvcml0aG0gPSBjcmVhdGVB
bGdvcml0aG1Gcm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikpOwor
ICAgICAgICBpZiAoIWFsZ29yaXRobSkgeworICAgICAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4
Y2VwdGlvbigpKTsKKyAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgICAgICB9
CisgICAgICAgIHBhcmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0
ZVBhcmFtZXRlcnNGb3JJbXBvcnRLZXkoJnN0YXRlLCBhbGdvcml0aG0tPmlkZW50aWZpZXIoKSwg
c3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikpOworICAgICAgICBpZiAoIXBhcmFtZXRlcnMpIHsK
KyAgICAgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAgICAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGJvb2wgZXh0cmFj
dGFibGUgPSBmYWxzZTsKKyAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpID49IDQpIHsKKyAg
ICAgICAgZXh0cmFjdGFibGUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgzKS50b0Jvb2xlYW4o
JnN0YXRlKTsKKyAgICAgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgQ3J5cHRvS2V5VXNhZ2Uga2V5VXNh
Z2VzID0gMDsKKyAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpID49IDUpIHsKKyAgICAgICAg
aWYgKCFjcnlwdG9LZXlVc2FnZXNGcm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUuYXJndW1lbnQoNCks
IGtleVVzYWdlcykpIHsKKyAgICAgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7
CisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIEpTUHJvbWlzZURlZmVycmVkKiBwcm9taXNlRGVmZXJyZWQgPSBKU1Byb21pc2VEZWZlcnJl
ZDo6Y3JlYXRlKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCkpOworICAgIERlZmVycmVkV3JhcHBlciB3
cmFwcGVyKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHByb21pc2VEZWZlcnJlZCk7CisgICAgYXV0
byBzdWNjZXNzQ2FsbGJhY2sgPSBbd3JhcHBlcl0oQ3J5cHRvS2V5JiByZXN1bHQpIG11dGFibGUg
eworICAgICAgICB3cmFwcGVyLnJlc29sdmUocmVzdWx0KTsKKyAgICB9OworICAgIGF1dG8gZmFp
bHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIHdyYXBwZXIucmVq
ZWN0KG51bGxwdHIpOworICAgIH07CisKKyAgICBXZWJDb3JlOjppbXBvcnRLZXkoc3RhdGUsIGtl
eUZvcm1hdCwgZGF0YSwgV1RGTW92ZShhbGdvcml0aG0pLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBl
eHRyYWN0YWJsZSwga2V5VXNhZ2VzLCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUo
ZmFpbHVyZUNhbGxiYWNrKSk7CisgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQorICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKKworICAgIHJldHVybiBwcm9taXNlRGVmZXJyZWQtPnBy
b21pc2UoKTsKK30KKworc3RhdGljIHZvaWQgZXhwb3J0S2V5KEV4ZWNTdGF0ZSYgc3RhdGUsIENy
eXB0b0tleUZvcm1hdCBrZXlGb3JtYXQsIGNvbnN0IENyeXB0b0tleSYga2V5LCBDcnlwdG9BbGdv
cml0aG06OlZlY3RvckNhbGxiYWNrIGNhbGxiYWNrLCBDcnlwdG9BbGdvcml0aG06OlZvaWRDYWxs
YmFjayBmYWlsdXJlQ2FsbGJhY2spCit7CisgICAgaWYgKCFrZXkuZXh0cmFjdGFibGUoKSkgewor
ICAgICAgICB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIEFTQ0lJTGl0ZXJhbCgiS2V5IGlzIG5vdCBl
eHRyYWN0YWJsZSIpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHN3aXRjaCAoa2V5
Rm9ybWF0KSB7CisgICAgY2FzZSBDcnlwdG9LZXlGb3JtYXQ6OlJhdzogeworICAgICAgICBWZWN0
b3I8dWludDhfdD4gcmVzdWx0OworICAgICAgICBpZiAoQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJh
dzo6c2VyaWFsaXplKGtleSwgcmVzdWx0KSkKKyAgICAgICAgICAgIGNhbGxiYWNrKHJlc3VsdCk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGZhaWx1cmVDYWxsYmFjaygpOworICAgICAgICBi
cmVhazsKKyAgICB9CisgICAgY2FzZSBDcnlwdG9LZXlGb3JtYXQ6OkpXSzogeworICAgICAgICBT
dHJpbmcgcmVzdWx0ID0gSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjpzZXJpYWxpemUoJnN0
YXRlLCBrZXkpOworICAgICAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIENTdHJpbmcgdXRmOFN0cmluZyA9IHJlc3VsdC51dGY4KFN0cmlj
dENvbnZlcnNpb24pOworICAgICAgICBWZWN0b3I8dWludDhfdD4gcmVzdWx0QnVmZmVyOworICAg
ICAgICByZXN1bHRCdWZmZXIuYXBwZW5kKHV0ZjhTdHJpbmcuZGF0YSgpLCB1dGY4U3RyaW5nLmxl
bmd0aCgpKTsKKyAgICAgICAgY2FsbGJhY2socmVzdWx0QnVmZmVyKTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgQVND
SUlMaXRlcmFsKCJVbnN1cHBvcnRlZCBrZXkgZm9ybWF0IGZvciBleHBvcnQiKSk7CisgICAgICAg
IGJyZWFrOworICAgIH0KK30KKworSlNWYWx1ZSBKU1dlYktpdFN1YnRsZUNyeXB0bzo6ZXhwb3J0
S2V5KEV4ZWNTdGF0ZSYgc3RhdGUpCit7CisgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8
IDIpCisgICAgICAgIHJldHVybiBzdGF0ZS52bSgpLnRocm93RXhjZXB0aW9uKCZzdGF0ZSwgY3Jl
YXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7CisKKyAgICBDcnlwdG9LZXlGb3Jt
YXQga2V5Rm9ybWF0OworICAgIGlmICghY3J5cHRvS2V5Rm9ybWF0RnJvbUpTVmFsdWUoc3RhdGUs
IHN0YXRlLmFyZ3VtZW50KDApLCBrZXlGb3JtYXQpKSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5o
YWRFeGNlcHRpb24oKSk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKwor
ICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQoc3RhdGUu
dW5jaGVja2VkQXJndW1lbnQoMSkpOworICAgIGlmICgha2V5KQorICAgICAgICByZXR1cm4gdGhy
b3dUeXBlRXJyb3IoJnN0YXRlKTsKKworICAgIEpTUHJvbWlzZURlZmVycmVkKiBwcm9taXNlRGVm
ZXJyZWQgPSBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCkp
OworICAgIERlZmVycmVkV3JhcHBlciB3cmFwcGVyKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHBy
b21pc2VEZWZlcnJlZCk7CisgICAgYXV0byBzdWNjZXNzQ2FsbGJhY2sgPSBbd3JhcHBlcl0oY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBmdWxmaWxsUHJv
bWlzZVdpdGhBcnJheUJ1ZmZlcih3cmFwcGVyLCByZXN1bHQuZGF0YSgpLCByZXN1bHQuc2l6ZSgp
KTsKKyAgICB9OworICAgIGF1dG8gZmFpbHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJs
ZSB7CisgICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOworICAgIH07CisKKyAgICBXZWJD
b3JlOjpleHBvcnRLZXkoc3RhdGUsIGtleUZvcm1hdCwgKmtleSwgV1RGTW92ZShzdWNjZXNzQ2Fs
bGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjaykpOworICAgIGlmIChzdGF0ZS5oYWRFeGNl
cHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisKKyAgICByZXR1cm4gcHJv
bWlzZURlZmVycmVkLT5wcm9taXNlKCk7Cit9CisKK0pTVmFsdWUgSlNXZWJLaXRTdWJ0bGVDcnlw
dG86OndyYXBLZXkoRXhlY1N0YXRlJiBzdGF0ZSkKK3sKKyAgICBpZiAoc3RhdGUuYXJndW1lbnRD
b3VudCgpIDwgNCkKKyAgICAgICAgcmV0dXJuIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0
YXRlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKKworICAgIENyeXB0
b0tleUZvcm1hdCBrZXlGb3JtYXQ7CisgICAgaWYgKCFjcnlwdG9LZXlGb3JtYXRGcm9tSlNWYWx1
ZShzdGF0ZSwgc3RhdGUuYXJndW1lbnQoMCksIGtleUZvcm1hdCkpIHsKKyAgICAgICAgQVNTRVJU
KHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cisg
ICAgfQorCisgICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvV3JhcHBl
ZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgaWYgKCFrZXkpCisgICAgICAgIHJl
dHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUpOworCisgICAgUmVmUHRyPENyeXB0b0tleT4gd3Jh
cHBpbmdLZXkgPSBKU0NyeXB0b0tleTo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50
KDIpKTsKKyAgICBpZiAoIWtleSkKKyAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0
ZSk7CisKKyAgICBpZiAoIXdyYXBwaW5nS2V5LT5hbGxvd3MoQ3J5cHRvS2V5VXNhZ2VXcmFwS2V5
KSkgeworICAgICAgICB3cmFwcGVkKCkuZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVz
c2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiS2V5IHVz
YWdlcyBkbyBub3QgaW5jbHVkZSAnd3JhcEtleSciKSk7CisgICAgICAgIHNldERPTUV4Y2VwdGlv
bigmc3RhdGUsIE5PVF9TVVBQT1JURURfRVJSKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7CisgICAgfQorCisgICAgYXV0byBhbGdvcml0aG0gPSBjcmVhdGVBbGdvcml0aG1Gcm9tSlNW
YWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMykpOworICAgIGlmICghYWxnb3Jp
dGhtKSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIGF1dG8gcGFyYW1ldGVycyA9IEpTQ3J5
cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckVuY3J5cHQoJnN0YXRl
LCBhbGdvcml0aG0tPmlkZW50aWZpZXIoKSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMykpOwor
ICAgIGlmICghcGFyYW1ldGVycykgeworICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9u
KCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBKU1Byb21p
c2VEZWZlcnJlZCogcHJvbWlzZURlZmVycmVkID0gSlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSgm
c3RhdGUsIGdsb2JhbE9iamVjdCgpKTsKKyAgICBEZWZlcnJlZFdyYXBwZXIgd3JhcHBlcigmc3Rh
dGUsIGdsb2JhbE9iamVjdCgpLCBwcm9taXNlRGVmZXJyZWQpOworCisgICAgYXV0byBleHBvcnRT
dWNjZXNzQ2FsbGJhY2sgPSBba2V5Rm9ybWF0LCBhbGdvcml0aG0sIHBhcmFtZXRlcnMsIHdyYXBw
aW5nS2V5LCB3cmFwcGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4mIGV4cG9ydGVkS2V5RGF0YSkg
bXV0YWJsZSB7CisgICAgICAgIGF1dG8gZW5jcnlwdFN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVy
XShjb25zdCBWZWN0b3I8dWludDhfdD4mIGVuY3J5cHRlZERhdGEpIG11dGFibGUgeworICAgICAg
ICAgICAgZnVsZmlsbFByb21pc2VXaXRoQXJyYXlCdWZmZXIod3JhcHBlciwgZW5jcnlwdGVkRGF0
YS5kYXRhKCksIGVuY3J5cHRlZERhdGEuc2l6ZSgpKTsKKyAgICAgICAgfTsKKyAgICAgICAgYXV0
byBlbmNyeXB0RmFpbHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7CisgICAgICAg
ICAgICB3cmFwcGVyLnJlamVjdChudWxscHRyKTsKKyAgICAgICAgfTsKKyAgICAgICAgRXhjZXB0
aW9uQ29kZSBlYyA9IDA7CisgICAgICAgIGFsZ29yaXRobS0+ZW5jcnlwdEZvcldyYXBLZXkoKnBh
cmFtZXRlcnMsICp3cmFwcGluZ0tleSwgc3RkOjptYWtlX3BhaXIoZXhwb3J0ZWRLZXlEYXRhLmRh
dGEoKSwgZXhwb3J0ZWRLZXlEYXRhLnNpemUoKSksIFdURk1vdmUoZW5jcnlwdFN1Y2Nlc3NDYWxs
YmFjayksIFdURk1vdmUoZW5jcnlwdEZhaWx1cmVDYWxsYmFjayksIGVjKTsKKyAgICAgICAgaWYg
KGVjKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogUmVwb3J0IGZhaWx1cmUgZGV0YWlscyB0byBj
b25zb2xlLCBhbmQgcG9zc2libHkgdG8gY2FsbGluZyBzY3JpcHQgb25jZSB0aGVyZSBpcyBhIHN0
YW5kYXJkaXplZCB3YXkgdG8gcGFzcyBlcnJvcnMgdG8gV2ViQ3J5cHRvIHByb21pc2UgcmVqZWN0
IGZ1bmN0aW9ucy4KKyAgICAgICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOworICAgICAg
ICB9CisgICAgfTsKKworICAgIGF1dG8gZXhwb3J0RmFpbHVyZUNhbGxiYWNrID0gW3dyYXBwZXJd
KCkgbXV0YWJsZSB7CisgICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOworICAgIH07CisK
KyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBXZWJDb3JlOjpleHBvcnRLZXkoc3RhdGUs
IGtleUZvcm1hdCwgKmtleSwgV1RGTW92ZShleHBvcnRTdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3Zl
KGV4cG9ydEZhaWx1cmVDYWxsYmFjaykpOworICAgIGlmIChlYykgeworICAgICAgICBzZXRET01F
eGNlcHRpb24oJnN0YXRlLCBlYyk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAg
IH0KKworICAgIHJldHVybiBwcm9taXNlRGVmZXJyZWQtPnByb21pc2UoKTsKK30KKworSlNWYWx1
ZSBKU1dlYktpdFN1YnRsZUNyeXB0bzo6dW53cmFwS2V5KEV4ZWNTdGF0ZSYgc3RhdGUpCit7Cisg
ICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDUpCisgICAgICAgIHJldHVybiBzdGF0ZS52
bSgpLnRocm93RXhjZXB0aW9uKCZzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
JnN0YXRlKSk7CisKKyAgICBDcnlwdG9LZXlGb3JtYXQga2V5Rm9ybWF0OworICAgIGlmICghY3J5
cHRvS2V5Rm9ybWF0RnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLmFyZ3VtZW50KDApLCBrZXlGb3Jt
YXQpKSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIENyeXB0b09wZXJhdGlvbkRhdGEgd3Jh
cHBlZEtleURhdGE7CisgICAgaWYgKCFjcnlwdG9PcGVyYXRpb25EYXRhRnJvbUpTVmFsdWUoJnN0
YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSwgd3JhcHBlZEtleURhdGEpKSB7CisgICAg
ICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOworICAgIH0KKworICAgIFJlZlB0cjxDcnlwdG9LZXk+IHVud3JhcHBpbmdLZXkgPSBK
U0NyeXB0b0tleTo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpKTsKKyAgICBp
ZiAoIXVud3JhcHBpbmdLZXkpCisgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUp
OworCisgICAgaWYgKCF1bndyYXBwaW5nS2V5LT5hbGxvd3MoQ3J5cHRvS2V5VXNhZ2VVbndyYXBL
ZXkpKSB7CisgICAgICAgIHdyYXBwZWQoKS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgQVNDSUlMaXRlcmFsKCJLZXkg
dXNhZ2VzIGRvIG5vdCBpbmNsdWRlICd1bndyYXBLZXknIikpOworICAgICAgICBzZXRET01FeGNl
cHRpb24oJnN0YXRlLCBOT1RfU1VQUE9SVEVEX0VSUik7CisgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOworICAgIH0KKworICAgIGF1dG8gdW53cmFwQWxnb3JpdGhtID0gY3JlYXRlQWxnb3Jp
dGhtRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDMpKTsKKyAgICBp
ZiAoIXVud3JhcEFsZ29yaXRobSkgeworICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9u
KCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisgICAgYXV0byB1bndy
YXBBbGdvcml0aG1QYXJhbWV0ZXJzID0gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVh
dGVQYXJhbWV0ZXJzRm9yRGVjcnlwdCgmc3RhdGUsIHVud3JhcEFsZ29yaXRobS0+aWRlbnRpZmll
cigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgzKSk7CisgICAgaWYgKCF1bndyYXBBbGdvcml0
aG1QYXJhbWV0ZXJzKSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Cisg
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIFJlZlB0cjxDcnlwdG9B
bGdvcml0aG0+IHVud3JhcHBlZEtleUFsZ29yaXRobTsKKyAgICBSZWZQdHI8Q3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycz4gdW53cmFwcGVkS2V5QWxnb3JpdGhtUGFyYW1ldGVyczsKKyAgICBpZiAo
IXN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDQpLmlzTnVsbCgpKSB7CisgICAgICAgIHVud3JhcHBl
ZEtleUFsZ29yaXRobSA9IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS51
bmNoZWNrZWRBcmd1bWVudCg0KSk7CisgICAgICAgIGlmICghdW53cmFwcGVkS2V5QWxnb3JpdGht
KSB7CisgICAgICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOworICAgICAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgICAgIH0KKyAgICAgICAgdW53cmFwcGVkS2V5
QWxnb3JpdGhtUGFyYW1ldGVycyA9IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRl
UGFyYW1ldGVyc0ZvckltcG9ydEtleSgmc3RhdGUsIHVud3JhcHBlZEtleUFsZ29yaXRobS0+aWRl
bnRpZmllcigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCg0KSk7CisgICAgICAgIGlmICghdW53
cmFwcGVkS2V5QWxnb3JpdGhtUGFyYW1ldGVycykgeworICAgICAgICAgICAgQVNTRVJUKHN0YXRl
LmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAg
ICAgICB9CisgICAgfQorCisgICAgYm9vbCBleHRyYWN0YWJsZSA9IGZhbHNlOworICAgIGlmIChz
dGF0ZS5hcmd1bWVudENvdW50KCkgPj0gNikgeworICAgICAgICBleHRyYWN0YWJsZSA9IHN0YXRl
LnVuY2hlY2tlZEFyZ3VtZW50KDUpLnRvQm9vbGVhbigmc3RhdGUpOworICAgICAgICBpZiAoc3Rh
dGUuaGFkRXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAg
ICB9CisKKyAgICBDcnlwdG9LZXlVc2FnZSBrZXlVc2FnZXMgPSAwOworICAgIGlmIChzdGF0ZS5h
cmd1bWVudENvdW50KCkgPj0gNykgeworICAgICAgICBpZiAoIWNyeXB0b0tleVVzYWdlc0Zyb21K
U1ZhbHVlKHN0YXRlLCBzdGF0ZS5hcmd1bWVudCg2KSwga2V5VXNhZ2VzKSkgeworICAgICAgICAg
ICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOworICAgICAgICB9CisgICAgfQorCisgICAgSlNQcm9taXNlRGVmZXJyZWQqIHBy
b21pc2VEZWZlcnJlZCA9IEpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoJnN0YXRlLCBnbG9iYWxP
YmplY3QoKSk7CisgICAgRGVmZXJyZWRXcmFwcGVyIHdyYXBwZXIoJnN0YXRlLCBnbG9iYWxPYmpl
Y3QoKSwgcHJvbWlzZURlZmVycmVkKTsKKyAgICBTdHJvbmc8SlNET01HbG9iYWxPYmplY3Q+IGRv
bUdsb2JhbE9iamVjdChzdGF0ZS52bSgpLCBnbG9iYWxPYmplY3QoKSk7CisKKyAgICBhdXRvIGRl
Y3J5cHRTdWNjZXNzQ2FsbGJhY2sgPSBbZG9tR2xvYmFsT2JqZWN0LCBrZXlGb3JtYXQsIHVud3Jh
cHBlZEtleUFsZ29yaXRobSwgdW53cmFwcGVkS2V5QWxnb3JpdGhtUGFyYW1ldGVycywgZXh0cmFj
dGFibGUsIGtleVVzYWdlcywgd3JhcHBlcl0oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiByZXN1bHQp
IG11dGFibGUgeworICAgICAgICBhdXRvIGltcG9ydFN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVy
XShDcnlwdG9LZXkmIGtleSkgbXV0YWJsZSB7CisgICAgICAgICAgICB3cmFwcGVyLnJlc29sdmUo
a2V5KTsKKyAgICAgICAgfTsKKyAgICAgICAgYXV0byBpbXBvcnRGYWlsdXJlQ2FsbGJhY2sgPSBb
d3JhcHBlcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIp
OworICAgICAgICB9OworICAgICAgICBFeGVjU3RhdGUmIHN0YXRlID0gKmRvbUdsb2JhbE9iamVj
dC0+Z2xvYmFsRXhlYygpOworICAgICAgICBXZWJDb3JlOjppbXBvcnRLZXkoc3RhdGUsIGtleUZv
cm1hdCwgc3RkOjptYWtlX3BhaXIocmVzdWx0LmRhdGEoKSwgcmVzdWx0LnNpemUoKSksIHVud3Jh
cHBlZEtleUFsZ29yaXRobSwgdW53cmFwcGVkS2V5QWxnb3JpdGhtUGFyYW1ldGVycywgZXh0cmFj
dGFibGUsIGtleVVzYWdlcywgV1RGTW92ZShpbXBvcnRTdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3Zl
KGltcG9ydEZhaWx1cmVDYWxsYmFjaykpOworICAgICAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9u
KCkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBSZXBvcnQgZXhjZXB0aW9uIGRldGFpbHMgdG8g
Y29uc29sZSwgYW5kIHBvc3NpYmx5IHRvIGNhbGxpbmcgc2NyaXB0IG9uY2UgdGhlcmUgaXMgYSBz
dGFuZGFyZGl6ZWQgd2F5IHRvIHBhc3MgZXJyb3JzIHRvIFdlYkNyeXB0byBwcm9taXNlIHJlamVj
dCBmdW5jdGlvbnMuCisgICAgICAgICAgICBzdGF0ZS5jbGVhckV4Y2VwdGlvbigpOworICAgICAg
ICAgICAgd3JhcHBlci5yZWplY3QobnVsbHB0cik7CisgICAgICAgIH0KKyAgICB9OworCisgICAg
YXV0byBkZWNyeXB0RmFpbHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7CisgICAg
ICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOworICAgIH07CisKKyAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKKyAgICB1bndyYXBBbGdvcml0aG0tPmRlY3J5cHRGb3JVbndyYXBLZXkoKnVud3Jh
cEFsZ29yaXRobVBhcmFtZXRlcnMsICp1bndyYXBwaW5nS2V5LCB3cmFwcGVkS2V5RGF0YSwgV1RG
TW92ZShkZWNyeXB0U3VjY2Vzc0NhbGxiYWNrKSwgV1RGTW92ZShkZWNyeXB0RmFpbHVyZUNhbGxi
YWNrKSwgZWMpOworICAgIGlmIChlYykgeworICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRl
LCBlYyk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIHJldHVy
biBwcm9taXNlRGVmZXJyZWQtPnByb21pc2UoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlw
dG8uY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4ZDgyMGMzYWRjNTg2ZWQzNzVhNTg5MWQ4YzI2ZDhhNDNk
OWFhNTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0
NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlN1
YnRsZUNyeXB0by5oIgotCi0jaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0KLSNpbmNsdWRlICJE
b2N1bWVudC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVN1YnRsZUNyeXB0bzo6U3VidGxl
Q3J5cHRvKERvY3VtZW50JiBkb2N1bWVudCkKLSAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2Vy
dmVyKCZkb2N1bWVudCkKLXsKLX0KLQotRG9jdW1lbnQqIFN1YnRsZUNyeXB0bzo6ZG9jdW1lbnQo
KSBjb25zdAotewotICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKTsKLX0KLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9TdWJ0bGVDcnlwdG8uaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlw
dG8uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQ2Y2NiN2Y5MTExMTg1ZWI3NDBi
NDMwNWFkZjJhZWY4YjY5Mzg5Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmgKKysrIC9kZXYv
bnVsbApAQCAtMSw1MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBTdWJ0bGVDcnlwdG9f
aAotI2RlZmluZSBTdWJ0bGVDcnlwdG9faAotCi0jaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9u
T2JzZXJ2ZXIuaCIgCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+Ci0KLSNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1jbGFzcyBEb2N1bWVudDsKLQotY2xhc3MgU3VidGxlQ3J5cHRvIDogcHVibGljIENv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyLCBwdWJsaWMgUmVmQ291bnRlZDxTdWJ0bGVDcnlwdG8+
IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFN1YnRsZUNyeXB0bz4gY3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdWJ0bGVDcnlwdG8oZG9jdW1lbnQp
KTsgfQotCi0gICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAg
U3VidGxlQ3J5cHRvKERvY3VtZW50Jik7Ci19OwotCi19Ci0KLSNlbmRpZgotCi0jZW5kaWYgLy8g
U3VidGxlQ3J5cHRvX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVD
cnlwdG8uaWRsIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5pZGwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNmOGZmOGI2OTc4MzU4OTI1YjUxMWRmZWZmNDU1Y2Y1
NWU3YjRlMmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5pZGwKKysrIC9kZXYvbnVsbApAQCAt
MSw0MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIENvbmRpdGlvbmFsPVNVQlRMRV9DUllQ
VE8sCi0gICAgSW50ZXJmYWNlTmFtZT1XZWJLaXRTdWJ0bGVDcnlwdG8sCi0gICAgR2VuZXJhdGVJ
c1JlYWNoYWJsZT1JbXBsRG9jdW1lbnQsCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCi1dIGludGVy
ZmFjZSBTdWJ0bGVDcnlwdG8gewotICAgIFtDdXN0b21dIFByb21pc2UgZW5jcnlwdChBbGdvcml0
aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgS2V5IGtleSwgc2VxdWVuY2U8Q3J5cHRvT3BlcmF0aW9u
RGF0YT4gZGF0YSk7Ci0gICAgW0N1c3RvbV0gUHJvbWlzZSBkZWNyeXB0KEFsZ29yaXRobUlkZW50
aWZpZXIgYWxnb3JpdGhtLCBLZXkga2V5LCBzZXF1ZW5jZTxDcnlwdG9PcGVyYXRpb25EYXRhPiBk
YXRhKTsKLSAgICBbQ3VzdG9tXSBQcm9taXNlIHNpZ24oQWxnb3JpdGhtSWRlbnRpZmllciBhbGdv
cml0aG0sIEtleSBrZXksIHNlcXVlbmNlPENyeXB0b09wZXJhdGlvbkRhdGE+IGRhdGEpOwotICAg
IFtDdXN0b21dIFByb21pc2UgdmVyaWZ5KEFsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBL
ZXkga2V5LCBDcnlwdG9PcGVyYXRpb25EYXRhIHNpZ25hdHVyZSwgc2VxdWVuY2U8Q3J5cHRvT3Bl
cmF0aW9uRGF0YT4gZGF0YSk7Ci0gICAgW0N1c3RvbV0gUHJvbWlzZSBkaWdlc3QoQWxnb3JpdGht
SWRlbnRpZmllciBhbGdvcml0aG0sIHNlcXVlbmNlPENyeXB0b09wZXJhdGlvbkRhdGE+IGRhdGEp
OwotICAgIFtDdXN0b21dIFByb21pc2UgZ2VuZXJhdGVLZXkoQWxnb3JpdGhtSWRlbnRpZmllciBh
bGdvcml0aG0sIG9wdGlvbmFsIGJvb2xlYW4gZXh0cmFjdGFibGUsIG9wdGlvbmFsIHNlcXVlbmNl
PEtleVVzYWdlPiBrZXlVc2FnZXMpOwotICAgIFtDdXN0b21dIFByb21pc2UgaW1wb3J0S2V5KEtl
eUZvcm1hdCBmb3JtYXQsIENyeXB0b09wZXJhdGlvbkRhdGEga2V5RGF0YSwgQWxnb3JpdGhtSWRl
bnRpZmllcj8gYWxnb3JpdGhtLCBvcHRpb25hbCBib29sZWFuIGV4dHJhY3RhYmxlLCBvcHRpb25h
bCBzZXF1ZW5jZTxLZXlVc2FnZT4ga2V5VXNhZ2VzKTsKLSAgICBbQ3VzdG9tXSBQcm9taXNlIGV4
cG9ydEtleShLZXlGb3JtYXQgZm9ybWF0LCBLZXkga2V5KTsKLSAgICBbQ3VzdG9tXSBQcm9taXNl
IHdyYXBLZXkoS2V5Rm9ybWF0IGZvcm1hdCwgS2V5IGtleSwgS2V5IHdyYXBwaW5nS2V5LCBBbGdv
cml0aG1JZGVudGlmaWVyIHdyYXBBbGdvcml0aG0pOwotICAgIFtDdXN0b21dIFByb21pc2UgdW53
cmFwS2V5KEtleUZvcm1hdCBmb3JtYXQsIENyeXB0b09wZXJhdGlvbkRhdGEgd3JhcHBlZEtleSwg
S2V5IHVud3JhcHBpbmdLZXksIEFsZ29yaXRobUlkZW50aWZpZXIgdW53cmFwQWxnb3JpdGhtLCBB
bGdvcml0aG1JZGVudGlmaWVyPyB1bndyYXBwZWRLZXlBbGdvcml0aG0sIG9wdGlvbmFsIGJvb2xl
YW4gZXh0cmFjdGFibGUsIG9wdGlvbmFsIHNlcXVlbmNlPEtleVVzYWdlPiBrZXlVc2FnZXMpOwot
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8u
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uM2I2OGFmOWNjNWMzM2UxNjg0ZjllYmU3Yzg1NGEwMjM1OTJiNDkyOAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uY3BwCkBA
IC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViS2l0U3VidGxlQ3J5cHRvLmgiCisKKyNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKKwor
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2ViS2l0U3Vi
dGxlQ3J5cHRvOjpXZWJLaXRTdWJ0bGVDcnlwdG8oRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDog
Q29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmRvY3VtZW50KQoreworfQorCitEb2N1bWVudCog
V2ViS2l0U3VidGxlQ3J5cHRvOjpkb2N1bWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvd25j
YXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworfQorCit9CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5o
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhkMDE2MGY3YjNhNjdhNTNlNjc5Yzc2MzE0MzFjZjA0NzJjYTQ2N2UKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmgKQEAgLTAsMCAr
MSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViS2l0U3VidGxlQ3J5cHRvX2gKKyNkZWZp
bmUgV2ViS2l0U3VidGxlQ3J5cHRvX2gKKworI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9i
c2VydmVyLmgiIAorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgorCisjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgRG9jdW1lbnQ7CisKK2NsYXNzIFdlYktpdFN1YnRsZUNyeXB0byA6IHB1Ymxp
YyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciwgcHVibGljIFJlZkNvdW50ZWQ8V2ViS2l0U3Vi
dGxlQ3J5cHRvPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJLaXRTdWJ0bGVDcnlwdG8+
IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViS2l0
U3VidGxlQ3J5cHRvKGRvY3VtZW50KSk7IH0KKworICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNv
bnN0OworCitwcml2YXRlOgorICAgIFdlYktpdFN1YnRsZUNyeXB0byhEb2N1bWVudCYpOworfTsK
KworfQorCisjZW5kaWYKKworI2VuZGlmIC8vIFdlYktpdFN1YnRsZUNyeXB0b19oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1NTcz
ODM0OTI4MDNhZWY0YmMyNDY3NmVkNTdkYjBlYWRhYzUwNTUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmlkbApAQCAtMCwwICsxLDQx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVNVQlRMRV9DUllQVE8sCisgICAg
R2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsRG9jdW1lbnQsCisgICAgTm9JbnRlcmZhY2VPYmplY3Qs
CitdIGludGVyZmFjZSBXZWJLaXRTdWJ0bGVDcnlwdG8geworICAgIFtDdXN0b21dIFByb21pc2Ug
ZW5jcnlwdChBbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgS2V5IGtleSwgc2VxdWVuY2U8
Q3J5cHRvT3BlcmF0aW9uRGF0YT4gZGF0YSk7CisgICAgW0N1c3RvbV0gUHJvbWlzZSBkZWNyeXB0
KEFsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBLZXkga2V5LCBzZXF1ZW5jZTxDcnlwdG9P
cGVyYXRpb25EYXRhPiBkYXRhKTsKKyAgICBbQ3VzdG9tXSBQcm9taXNlIHNpZ24oQWxnb3JpdGht
SWRlbnRpZmllciBhbGdvcml0aG0sIEtleSBrZXksIHNlcXVlbmNlPENyeXB0b09wZXJhdGlvbkRh
dGE+IGRhdGEpOworICAgIFtDdXN0b21dIFByb21pc2UgdmVyaWZ5KEFsZ29yaXRobUlkZW50aWZp
ZXIgYWxnb3JpdGhtLCBLZXkga2V5LCBDcnlwdG9PcGVyYXRpb25EYXRhIHNpZ25hdHVyZSwgc2Vx
dWVuY2U8Q3J5cHRvT3BlcmF0aW9uRGF0YT4gZGF0YSk7CisgICAgW0N1c3RvbV0gUHJvbWlzZSBk
aWdlc3QoQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIHNlcXVlbmNlPENyeXB0b09wZXJh
dGlvbkRhdGE+IGRhdGEpOworICAgIFtDdXN0b21dIFByb21pc2UgZ2VuZXJhdGVLZXkoQWxnb3Jp
dGhtSWRlbnRpZmllciBhbGdvcml0aG0sIG9wdGlvbmFsIGJvb2xlYW4gZXh0cmFjdGFibGUsIG9w
dGlvbmFsIHNlcXVlbmNlPEtleVVzYWdlPiBrZXlVc2FnZXMpOworICAgIFtDdXN0b21dIFByb21p
c2UgaW1wb3J0S2V5KEtleUZvcm1hdCBmb3JtYXQsIENyeXB0b09wZXJhdGlvbkRhdGEga2V5RGF0
YSwgQWxnb3JpdGhtSWRlbnRpZmllcj8gYWxnb3JpdGhtLCBvcHRpb25hbCBib29sZWFuIGV4dHJh
Y3RhYmxlLCBvcHRpb25hbCBzZXF1ZW5jZTxLZXlVc2FnZT4ga2V5VXNhZ2VzKTsKKyAgICBbQ3Vz
dG9tXSBQcm9taXNlIGV4cG9ydEtleShLZXlGb3JtYXQgZm9ybWF0LCBLZXkga2V5KTsKKyAgICBb
Q3VzdG9tXSBQcm9taXNlIHdyYXBLZXkoS2V5Rm9ybWF0IGZvcm1hdCwgS2V5IGtleSwgS2V5IHdy
YXBwaW5nS2V5LCBBbGdvcml0aG1JZGVudGlmaWVyIHdyYXBBbGdvcml0aG0pOworICAgIFtDdXN0
b21dIFByb21pc2UgdW53cmFwS2V5KEtleUZvcm1hdCBmb3JtYXQsIENyeXB0b09wZXJhdGlvbkRh
dGEgd3JhcHBlZEtleSwgS2V5IHVud3JhcHBpbmdLZXksIEFsZ29yaXRobUlkZW50aWZpZXIgdW53
cmFwQWxnb3JpdGhtLCBBbGdvcml0aG1JZGVudGlmaWVyPyB1bndyYXBwZWRLZXlBbGdvcml0aG0s
IG9wdGlvbmFsIGJvb2xlYW4gZXh0cmFjdGFibGUsIG9wdGlvbmFsIHNlcXVlbmNlPEtleVVzYWdl
PiBrZXlVc2FnZXMpOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRv
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmNwcAppbmRleCA1YWFhNzA5YmQxZmQ0
MjU1MzBkNDdhNTgyNDA1ZWYwYWUzYWEwNGE3Li4wYTk0ZmQ5YWU4Yzk4YWRlYmE5NzNmMDYzMmYy
ZGVjMGU1ODg3YmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uY3BwCkBAIC0zMyw3ICszMyw3IEBACiAK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNs
dWRlICJTdWJ0bGVDcnlwdG8uaCIKKyNpbmNsdWRlICJXZWJLaXRTdWJ0bGVDcnlwdG8uaCIKICNp
bmNsdWRlIDxydW50aW1lL0FycmF5QnVmZmVyVmlldy5oPgogI2luY2x1ZGUgPHd0Zi9DcnlwdG9n
cmFwaGljYWxseVJhbmRvbU51bWJlci5oPgogCkBAIC02NywxMyArNjcsMTMgQEAgdm9pZCBDcnlw
dG86OmdldFJhbmRvbVZhbHVlcyhBcnJheUJ1ZmZlclZpZXcqIGFycmF5LCBFeGNlcHRpb25Db2Rl
JiBlYykKIH0KIAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotU3VidGxlQ3J5cHRvKiBDcnlw
dG86OnN1YnRsZSgpCitXZWJLaXRTdWJ0bGVDcnlwdG8qIENyeXB0bzo6d2Via2l0U3VidGxlKCkK
IHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIGlmICghbV9zdWJ0bGUpCi0gICAg
ICAgIG1fc3VidGxlID0gU3VidGxlQ3J5cHRvOjpjcmVhdGUoKmRvY3VtZW50KCkpOworICAgIGlm
ICghbV93ZWJraXRTdWJ0bGUpCisgICAgICAgIG1fd2Via2l0U3VidGxlID0gV2ViS2l0U3VidGxl
Q3J5cHRvOjpjcmVhdGUoKmRvY3VtZW50KCkpOwogCi0gICAgcmV0dXJuIG1fc3VidGxlLmdldCgp
OworICAgIHJldHVybiBtX3dlYmtpdFN1YnRsZS5nZXQoKTsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
cnlwdG8uaAppbmRleCBhZjBmYzA0Njg3MWU5MmVmZTYxYmQ2MDNjZjI1ZjU3ZTc5ZWE5NDgyLi45
NmQ5MmQzMjczYjllNGFmNjM0ZDg1ZTExZjUxZWI4OTY5ZmU1ZTNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NyeXB0by5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRv
LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdHlwZWRlZiBpbnQgRXhj
ZXB0aW9uQ29kZTsKIAogY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBTdWJ0bGVDcnlwdG87CitjbGFz
cyBXZWJLaXRTdWJ0bGVDcnlwdG87CiAKIGNsYXNzIENyeXB0byA6IHB1YmxpYyBDb250ZXh0RGVz
dHJ1Y3Rpb25PYnNlcnZlciwgcHVibGljIFJlZkNvdW50ZWQ8Q3J5cHRvPiB7CiBwdWJsaWM6CkBA
IC01NywxNCArNTcsMTQgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0UmFuZG9tVmFsdWVzKEpTQzo6
QXJyYXlCdWZmZXJWaWV3KiwgRXhjZXB0aW9uQ29kZSYpOwogCiAjaWYgRU5BQkxFKFNVQlRMRV9D
UllQVE8pCi0gICAgU3VidGxlQ3J5cHRvKiBzdWJ0bGUoKTsKKyAgICBXZWJLaXRTdWJ0bGVDcnlw
dG8qIHdlYmtpdFN1YnRsZSgpOwogI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgQ3J5cHRvKERvY3Vt
ZW50Jik7CiAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLSAgICBSZWZQdHI8U3VidGxlQ3J5
cHRvPiBtX3N1YnRsZTsKKyAgICBSZWZQdHI8V2ViS2l0U3VidGxlQ3J5cHRvPiBtX3dlYmtpdFN1
YnRsZTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Dcnlw
dG8uaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uaWRsCmluZGV4IGNmZTYwZmM4N2Y0
NzQ0ZGMyYzJiOWUwOTFjOWFhNzJmM2IwNTYyYjIuLjYzYTFlMzBmZDc4MjA3NWY4MTMyNmIyYTYw
MjlmYmQxMGEyYmE2ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5pZGwKQEAgLTMyLDUgKzMyLDUgQEAK
IF0gaW50ZXJmYWNlIENyeXB0byB7CiAgICAgW0N1c3RvbSwgUmFpc2VzRXhjZXB0aW9uXSBBcnJh
eUJ1ZmZlclZpZXcgZ2V0UmFuZG9tVmFsdWVzKEFycmF5QnVmZmVyVmlldyBhcnJheSk7CiAKLSAg
ICBbQ29uZGl0aW9uYWw9U1VCVExFX0NSWVBUTywgSW1wbGVtZW50ZWRBcz1zdWJ0bGVdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBTdWJ0bGVDcnlwdG8gd2Via2l0U3VidGxlOworICAgIFtDb25kaXRpb25h
bD1TVUJUTEVfQ1JZUFRPXSByZWFkb25seSBhdHRyaWJ1dGUgV2ViS2l0U3VidGxlQ3J5cHRvIHdl
YmtpdFN1YnRsZTsKIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODJiODMyM2E5MmU4MTc1MTg5Y2M4ZThkNDIxZDdiZTY1
ZGI0ODliMC4uZWQ5ZjcyNmY3ZjJlM2ZhODhmZDAxODNkYzE2MzFiMmUzYmNjZDU2ZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3MCBAQAorMjAxNi0wNy0yMSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBw
bGUuY29tPgorCisgICAgICAgIFJlbmFtZSBTdWJ0bGVDcnlwdG8gdG8gV2ViS2l0U3VidGxlQ3J5
cHRvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjAw
NjcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI3NDgzNjE3PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBjcnlwdG8vc3VidGxlIHRvIGNy
eXB0by93ZWJraXRTdWJ0bGUuCisKKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1j
YmMtMTkyLWVuY3J5cHQtZGVjcnlwdC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtMTkyLWVuY3J5cHQtZGVjcnlwdC1leHBlY3RlZC50
eHQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLTE5Mi1lbmNyeXB0LWRl
Y3J5cHQuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNi
Yy0xOTItZW5jcnlwdC1kZWNyeXB0Lmh0bWwuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRs
ZS9hZXMtY2JjLTI1Ni1lbmNyeXB0LWRlY3J5cHQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLTI1Ni1lbmNyeXB0LWRlY3J5cHQtZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy0yNTYtZW5j
cnlwdC1kZWNyeXB0Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L2Flcy1jYmMtMjU2LWVuY3J5cHQtZGVjcnlwdC5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJr
aXRTdWJ0bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5cHQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLWVuY3J5cHQtZGVjcnlwdC1leHBl
Y3RlZC50eHQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWVuY3J5cHQt
ZGVjcnlwdC13aXRoLXBhZGRpbmctZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLWVuY3J5cHQtZGVjcnlwdC13aXRoLXBhZGRpbmctZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1lbmNyeXB0
LWRlY3J5cHQtd2l0aC1wYWRkaW5nLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlw
dG8vc3VidGxlL2Flcy1jYmMtZW5jcnlwdC1kZWNyeXB0LXdpdGgtcGFkZGluZy5odG1sLgorICAg
ICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5cHQuaHRtbDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy1lbmNyeXB0LWRl
Y3J5cHQuaHRtbC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtZ2VuZXJh
dGUta2V5LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvYWVzLWNiYy1nZW5lcmF0ZS1rZXktZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93
ZWJraXRTdWJ0bGUvYWVzLWNiYy1nZW5lcmF0ZS1rZXkuaHRtbDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy1nZW5lcmF0ZS1rZXkuaHRtbC4KKyAgICAgICAg
KiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtaW1wb3J0LWp3ay1leHBlY3RlZC50eHQ6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtaW1wb3J0LWp3ay1l
eHBlY3RlZC50eHQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWltcG9y
dC1qd2suaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNi
Yy1pbXBvcnQtandrLmh0bWwuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2Jj
LWludmFsaWQtbGVuZ3RoLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvYWVzLWNiYy1pbnZhbGlkLWxlbmd0aC1leHBlY3RlZC50eHQuCisgICAgICAg
ICogY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWludmFsaWQtbGVuZ3RoLmh0bWw6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtaW52YWxpZC1sZW5ndGgu
aHRtbC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtdW53cmFwLWZhaWx1
cmUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9h
ZXMtY2JjLXVud3JhcC1mYWlsdXJlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vd2Vi
a2l0U3VidGxlL2Flcy1jYmMtdW53cmFwLWZhaWx1cmUuaHRtbDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy11bndyYXAtZmFpbHVyZS5odG1sLgorICAgICAg
ICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy11bndyYXAtcnNhLWV4cGVjdGVkLnR4dDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy11bndyYXAtcnNh
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtdW53
cmFwLXJzYS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMt
Y2JjLXVud3JhcC1yc2EuaHRtbC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1j
YmMtd3JhcC1yc2EtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRv
L3N1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8v
d2Via2l0U3VidGxlL2Flcy1jYmMtd3JhcC1yc2Etbm9uLWV4dHJhY3RhYmxlLWV4cGVjdGVkLnR4
dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy13cmFwLXJz
YS1ub24tZXh0cmFjdGFibGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRT
dWJ0bGUvYWVzLWNiYy13cmFwLXJzYS1ub24tZXh0cmFjdGFibGUuaHRtbDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy13cmFwLXJzYS1ub24tZXh0cmFjdGFi
bGUuaHRtbC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtd3JhcC1yc2Eu
aHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy13cmFw
LXJzYS5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy13cm9uZy1r
ZXktY2xhc3MtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS9hZXMtY2JjLXdyb25nLWtleS1jbGFzcy1leHBlY3RlZC50eHQuCisgICAgICAgICogY3J5
cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXdyb25nLWtleS1jbGFzcy5odG1sOiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXdyb25nLWtleS1jbGFzcy5odG1s
LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWV4cG9ydC1rZXktZXhwZWN0ZWQu
dHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtZXhwb3J0LWtl
eS1leHBlY3RlZC50eHQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtZXhwb3J0
LWtleS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtZXhw
b3J0LWtleS5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWt3LWtleS1t
YW5pcHVsYXRpb24tZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRv
L3N1YnRsZS9hZXMta3cta2V5LW1hbmlwdWxhdGlvbi1leHBlY3RlZC50eHQuCisgICAgICAgICog
Y3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMta3cta2V5LW1hbmlwdWxhdGlvbi5odG1sOiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMta3cta2V5LW1hbmlwdWxhdGlvbi5o
dG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWt3LXdyYXAtdW53cmFwLWFl
cy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Fl
cy1rdy13cmFwLXVud3JhcC1hZXMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJr
aXRTdWJ0bGUvYWVzLWt3LXdyYXAtdW53cmFwLWFlcy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMta3ctd3JhcC11bndyYXAtYWVzLmh0bWwuCisgICAgICAg
ICogY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtcG9zdE1lc3NhZ2UtZXhwZWN0ZWQudHh0OiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtcG9zdE1lc3NhZ2UtZXhwZWN0
ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLXBvc3RNZXNzYWdlLmh0
bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1wb3N0TWVzc2Fn
ZS5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYXJndW1lbnQtY29udmVyc2lv
bi1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Fy
Z3VtZW50LWNvbnZlcnNpb24tZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRT
dWJ0bGUvYXJndW1lbnQtY29udmVyc2lvbi5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
Y3J5cHRvL3N1YnRsZS9hcmd1bWVudC1jb252ZXJzaW9uLmh0bWwuCisgICAgICAgICogY3J5cHRv
L3dlYmtpdFN1YnRsZS9hcnJheS1idWZmZXItdmlldy1vZmZzZXQtZXhwZWN0ZWQudHh0OiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hcnJheS1idWZmZXItdmlldy1vZmZz
ZXQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYXJyYXktYnVm
ZmVyLXZpZXctb2Zmc2V0Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL2FycmF5LWJ1ZmZlci12aWV3LW9mZnNldC5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJr
aXRTdWJ0bGUvZ2MtMi1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlw
dG8vc3VidGxlL2djLTItZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0
bGUvZ2MtMi5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy0y
Lmh0bWwuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy0zLWV4cGVjdGVkLnR4dDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MtMy1leHBlY3RlZC50eHQu
CisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy0zLmh0bWw6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLTMuaHRtbC4KKyAgICAgICAgKiBjcnlwdG8vd2Vi
a2l0U3VidGxlL2djLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvZ2MtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUv
Z2MuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MuaHRtbC4K
KyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2htYWMtY2hlY2stYWxnb3JpdGhtLWV4cGVj
dGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1hYy1jaGVj
ay1hbGdvcml0aG0tZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUv
aG1hYy1jaGVjay1hbGdvcml0aG0uaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvaG1hYy1jaGVjay1hbGdvcml0aG0uaHRtbC4KKyAgICAgICAgKiBjcnlwdG8vd2Vi
a2l0U3VidGxlL2htYWMtZXhwb3J0LWtleS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtZXhwb3J0LWtleS1leHBlY3RlZC50eHQuCisgICAg
ICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWV4cG9ydC1rZXkuaHRtbDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1hYy1leHBvcnQta2V5Lmh0bWwuCisgICAg
ICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWdlbmVyYXRlLWtleS1leHBlY3RlZC50eHQ6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtZ2VuZXJhdGUta2V5
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2htYWMtZ2VuZXJh
dGUta2V5Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMt
Z2VuZXJhdGUta2V5Lmh0bWwuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWlt
cG9ydC1qd2stZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS9obWFjLWltcG9ydC1qd2stZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJr
aXRTdWJ0bGUvaG1hYy1pbXBvcnQtandrLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9j
cnlwdG8vc3VidGxlL2htYWMtaW1wb3J0LWp3ay5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJr
aXRTdWJ0bGUvaG1hYy1wb3N0TWVzc2FnZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtcG9zdE1lc3NhZ2UtZXhwZWN0ZWQudHh0LgorICAg
ICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1wb3N0TWVzc2FnZS5odG1sOiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLXBvc3RNZXNzYWdlLmh0bWwuCisg
ICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXNpZ24tdmVyaWZ5LWVtcHR5LWtleS1l
eHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMt
c2lnbi12ZXJpZnktZW1wdHkta2V5LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vd2Vi
a2l0U3VidGxlL2htYWMtc2lnbi12ZXJpZnktZW1wdHkta2V5Lmh0bWw6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtc2lnbi12ZXJpZnktZW1wdHkta2V5Lmh0bWwu
CisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXNpZ24tdmVyaWZ5LWV4cGVjdGVk
LnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1hYy1zaWduLXZl
cmlmeS1leHBlY3RlZC50eHQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXNp
Z24tdmVyaWZ5Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2ht
YWMtc2lnbi12ZXJpZnkuaHRtbC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2ltcG9y
dC1qd2stZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRs
ZS9pbXBvcnQtandrLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxl
L2ltcG9ydC1qd2suaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUv
aW1wb3J0LWp3ay5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvandrLWV4cG9y
dC11c2UtdmFsdWVzLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvandrLWV4cG9ydC11c2UtdmFsdWVzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBj
cnlwdG8vd2Via2l0U3VidGxlL2p3ay1leHBvcnQtdXNlLXZhbHVlcy5odG1sOiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9qd2stZXhwb3J0LXVzZS12YWx1ZXMuaHRtbC4K
KyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2p3ay1pbXBvcnQtdXNlLXZhbHVlcy1leHBl
Y3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2p3ay1pbXBv
cnQtdXNlLXZhbHVlcy1leHBlY3RlZC50eHQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRs
ZS9qd2staW1wb3J0LXVzZS12YWx1ZXMuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvandrLWltcG9ydC11c2UtdmFsdWVzLmh0bWwuCisgICAgICAgICogY3J5cHRv
L3dlYmtpdFN1YnRsZS9wb3N0TWVzc2FnZS13b3JrZXItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9wb3N0TWVzc2FnZS13b3JrZXItZXhwZWN0ZWQu
dHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcG9zdE1lc3NhZ2Utd29ya2VyLmh0
bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3Bvc3RNZXNzYWdlLXdv
cmtlci5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcmVzb3VyY2VzL2NvbW1v
bi5qczogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcmVzb3VyY2VzL2Nv
bW1vbi5qcy4KKyAgICAgICAgKGltcG9ydFRlc3RLZXlzKToKKyAgICAgICAgKGJ5dGVzVG9IZXhT
dHJpbmcpOgorICAgICAgICAoYnl0ZXNUb0FTQ0lJU3RyaW5nKToKKyAgICAgICAgKGhleFN0cmlu
Z1RvVWludDhBcnJheSk6CisgICAgICAgIChhc2NpaVRvVWludDhBcnJheSk6CisgICAgICAgIChm
YWlsQW5kRmluaXNoSlNUZXN0KToKKyAgICAgICAgKEJhc2U2NFVSTC5zdHJpbmdpZnkpOgorICAg
ICAgICAoQmFzZTY0VVJMLik6CisgICAgICAgIChCYXNlNjRVUkwpOgorICAgICAgICAqIGNyeXB0
by93ZWJraXRTdWJ0bGUvcmVzb3VyY2VzL3Bvc3RNZXNzYWdlLXdvcmtlci5qczogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcmVzb3VyY2VzL3Bvc3RNZXNzYWdlLXdvcmtl
ci5qcy4KKyAgICAgICAgKG9ubWVzc2FnZSk6CisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRs
ZS9yZXNvdXJjZXMvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS5qczogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcmVzb3VyY2VzL3JzYS1pbmRleGVkZGItbm9uLWV4
cG9ydGFibGUuanMuCisgICAgICAgIChzdHJpbmdfYXBwZWFyZWRfaGVyZS50aGVuLm9wZW5SZXF1
ZXN0Lm9udXBncmFkZW5lZWRlZCk6CisgICAgICAgIChzdHJpbmdfYXBwZWFyZWRfaGVyZS50aGVu
Lm9wZW5SZXF1ZXN0Lm9uZXJyb3IpOgorICAgICAgICAoc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhl
bi5vcGVuUmVxdWVzdC5vbnN1Y2Nlc3MpOgorICAgICAgICAoc3RyaW5nX2FwcGVhcmVkX2hlcmUu
dGhlbi5zdG9yZUtleS5yZXEub25lcnJvcik6CisgICAgICAgIChzdHJpbmdfYXBwZWFyZWRfaGVy
ZS50aGVuLnN0b3JlS2V5LnJlcS5vbnN1Y2Nlc3MpOgorICAgICAgICAoc3RyaW5nX2FwcGVhcmVk
X2hlcmUudGhlbi5zdG9yZUtleSk6CisgICAgICAgIChzdHJpbmdfYXBwZWFyZWRfaGVyZS50aGVu
LnJlYWRLZXkucmVxLm9uZXJyb3IpOgorICAgICAgICAoc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhl
bi5yZWFkS2V5LnJlcS5vbnN1Y2Nlc3MpOgorICAgICAgICAoc3RyaW5nX2FwcGVhcmVkX2hlcmUu
dGhlbi5yZWFkS2V5KToKKyAgICAgICAgKHN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4pOgorICAg
ICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcmVzb3VyY2VzL3JzYS1pbmRleGVkZGIuanM6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3Jlc291cmNlcy9yc2EtaW5kZXhl
ZGRiLmpzLgorICAgICAgICAoc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbi5vcGVuUmVxdWVzdC5v
bnVwZ3JhZGVuZWVkZWQpOgorICAgICAgICAoc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbi5vcGVu
UmVxdWVzdC5vbmVycm9yKToKKyAgICAgICAgKHN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4ub3Bl
blJlcXVlc3Qub25zdWNjZXNzKToKKyAgICAgICAgKHN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4u
c3RvcmVLZXkucmVxLm9uZXJyb3IpOgorICAgICAgICAoc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhl
bi5zdG9yZUtleS5yZXEub25zdWNjZXNzKToKKyAgICAgICAgKHN0cmluZ19hcHBlYXJlZF9oZXJl
LnRoZW4uc3RvcmVLZXkpOgorICAgICAgICAoc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbi5yZWFk
S2V5LnJlcS5vbmVycm9yKToKKyAgICAgICAgKHN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4ucmVh
ZEtleS5yZXEub25zdWNjZXNzKToKKyAgICAgICAgKHN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4u
cmVhZEtleSk6CisgICAgICAgIChzdHJpbmdfYXBwZWFyZWRfaGVyZS50aGVuKToKKyAgICAgICAg
KiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQtZ2VuZXJhdGVkLWtleXMtZXhwZWN0ZWQu
dHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0LWdl
bmVyYXRlZC1rZXlzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxl
L3JzYS1leHBvcnQtZ2VuZXJhdGVkLWtleXMuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2NyeXB0by9zdWJ0bGUvcnNhLWV4cG9ydC1nZW5lcmF0ZWQta2V5cy5odG1sLgorICAgICAgICAq
IGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0OiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0LWtleS1leHBlY3RlZC50
eHQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtZXhwb3J0LWtleS5odG1sOiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0LWtleS5odG1s
LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1wcml2YXRlLWtleS1l
eHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1l
eHBvcnQtcHJpdmF0ZS1rZXktZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRT
dWJ0bGUvcnNhLWV4cG9ydC1wcml2YXRlLWtleS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0LXByaXZhdGUta2V5Lmh0bWwuCisgICAgICAgICog
Y3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1leHBlY3RlZC50eHQu
CisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRh
YmxlLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUv
cnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS1leHBlY3RlZC50eHQuCisgICAgICAgICogY3J5
cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLXByaXZhdGUtZXhw
ZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5k
ZXhlZGRiLW5vbi1leHBvcnRhYmxlLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNy
eXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS1wcml2YXRlLmh0
bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGIt
bm9uLWV4cG9ydGFibGUtcHJpdmF0ZS5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0
bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLmh0bWwuCisg
ICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUtZXhwZWN0
ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhl
ZGRiLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUv
cnNhLWluZGV4ZWRkYi1wcml2YXRlLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlw
dG8vc3VidGxlL3JzYS1pbmRleGVkZGItcHJpdmF0ZS5odG1sLgorICAgICAgICAqIGNyeXB0by93
ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
Y3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLmh0bWwuCisgICAgICAgICogY3J5cHRvL3dlYmtp
dFN1YnRsZS9yc2Etb2FlcC1nZW5lcmF0ZS1ub24tZXh0cmFjdGFibGUta2V5LWV4cGVjdGVkLnR4
dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLW9hZXAtZ2VuZXJh
dGUtbm9uLWV4dHJhY3RhYmxlLWtleS1leHBlY3RlZC50eHQuCisgICAgICAgICogY3J5cHRvL3dl
YmtpdFN1YnRsZS9yc2Etb2FlcC1nZW5lcmF0ZS1ub24tZXh0cmFjdGFibGUta2V5Lmh0bWw6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1vYWVwLWdlbmVyYXRlLW5v
bi1leHRyYWN0YWJsZS1rZXkuaHRtbC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3Jz
YS1vYWVwLWtleS1tYW5pcHVsYXRpb24tZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Etb2FlcC1rZXktbWFuaXB1bGF0aW9uLWV4cGVjdGVkLnR4
dC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLWtleS1tYW5pcHVsYXRp
b24uaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLW9hZXAt
a2V5LW1hbmlwdWxhdGlvbi5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNh
LW9hZXAtcGxhaW50ZXh0LWxlbmd0aC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1vYWVwLXBsYWludGV4dC1sZW5ndGgtZXhwZWN0ZWQudHh0
LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtcGxhaW50ZXh0LWxlbmd0
aC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Etb2FlcC1w
bGFpbnRleHQtbGVuZ3RoLmh0bWwuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Et
b2FlcC13cmFwLXVud3JhcC1hZXMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvY3J5cHRvL3N1YnRsZS9yc2Etb2FlcC13cmFwLXVud3JhcC1hZXMtZXhwZWN0ZWQudHh0Lgor
ICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtd3JhcC11bndyYXAtYWVzLmh0
bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1vYWVwLXdyYXAt
dW53cmFwLWFlcy5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhLXBvc3RN
ZXNzYWdlLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvcnNhLXBvc3RNZXNzYWdlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0
U3VidGxlL3JzYS1wb3N0TWVzc2FnZS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9yc2EtcG9zdE1lc3NhZ2UuaHRtbC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0
U3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtZGVjcnlwdC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtZGVjcnlwdC1leHBl
Y3RlZC50eHQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Flcy1wa2NzMS12MV81
LWRlY3J5cHQuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNh
ZXMtcGtjczEtdjFfNS1kZWNyeXB0Lmh0bWwuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRs
ZS9yc2Flcy1wa2NzMS12MV81LXdyYXAtdW53cmFwLWFlcy1leHBlY3RlZC50eHQ6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtd3JhcC11bndy
YXAtYWVzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYWVz
LXBrY3MxLXYxXzUtd3JhcC11bndyYXAtYWVzLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtd3JhcC11bndyYXAtYWVzLmh0bWwuCisg
ICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1r
ZXktZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9y
c2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1rZXktZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNy
eXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5LXdpdGgtbGVh
ZGluZy16ZXJvZXMtaW4tZXhwb25lbnQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1rZXktd2l0aC1s
ZWFkaW5nLXplcm9lcy1pbi1leHBvbmVudC1leHBlY3RlZC50eHQuCisgICAgICAgICogY3J5cHRv
L3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1rZXktd2l0aC1sZWFkaW5n
LXplcm9lcy1pbi1leHBvbmVudC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRv
L3N1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1rZXktd2l0aC1sZWFkaW5nLXplcm9l
cy1pbi1leHBvbmVudC5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhc3Nh
LXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9j
cnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS5odG1sLgorICAgICAg
ICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1leHBl
Y3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1w
a2NzMS12MV81LWltcG9ydC1qd2stZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJr
aXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1zbWFsbC1rZXktZXhwZWN0ZWQu
dHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEt
djFfNS1pbXBvcnQtandrLXNtYWxsLWtleS1leHBlY3RlZC50eHQuCisgICAgICAgICogY3J5cHRv
L3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1pbXBvcnQtandrLXNtYWxsLWtleS5odG1s
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEtdjFf
NS1pbXBvcnQtandrLXNtYWxsLWtleS5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0
bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1pbXBvcnQtandrLmh0bWwuCisg
ICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1zaWduLXZlcmlm
eS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3Jz
YXNzYS1wa2NzMS12MV81LXNpZ24tdmVyaWZ5LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlw
dG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LXNpZ24tdmVyaWZ5Lmh0bWw6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LXNpZ24t
dmVyaWZ5Lmh0bWwuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMS1leHBlY3Rl
ZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3NoYS0xLWV4cGVj
dGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3NoYS0xLmh0bWw6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3NoYS0xLmh0bWwuCisgICAgICAgICog
Y3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMjI0LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvc2hhLTIyNC1leHBlY3RlZC50eHQuCisgICAgICAgICog
Y3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMjI0Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL3NoYS0yMjQuaHRtbC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3Vi
dGxlL3NoYS0yNTYtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRv
L3N1YnRsZS9zaGEtMjU2LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3Vi
dGxlL3NoYS0yNTYuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUv
c2hhLTI1Ni5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTM4NC1leHBl
Y3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3NoYS0zODQt
ZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTM4NC5odG1s
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9zaGEtMzg0Lmh0bWwuCisg
ICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtNTEyLWV4cGVjdGVkLnR4dDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvc2hhLTUxMi1leHBlY3RlZC50eHQuCisg
ICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtNTEyLmh0bWw6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3NoYS01MTIuaHRtbC4KKyAgICAgICAgKiBjcnlwdG8v
d2Via2l0U3VidGxlL3VuaW1wbGVtZW50ZWQtdW53cmFwLWNyYXNoLWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvdW5pbXBsZW1lbnRlZC11bndyYXAt
Y3Jhc2gtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvdW5pbXBs
ZW1lbnRlZC11bndyYXAtY3Jhc2guaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvdW5pbXBsZW1lbnRlZC11bndyYXAtY3Jhc2guaHRtbC4KKyAgICAgICAgKiBjcnlw
dG8vd2Via2l0U3VidGxlL3Vud3JhcEtleS1jaGVjay11c2FnZS1leHBlY3RlZC50eHQ6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3Vud3JhcEtleS1jaGVjay11c2FnZS1l
eHBlY3RlZC50eHQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS91bndyYXBLZXktY2hl
Y2stdXNhZ2UuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvdW53
cmFwS2V5LWNoZWNrLXVzYWdlLmh0bWwuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS93
cmFwS2V5LWNoZWNrLXVzYWdlLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2NyeXB0by9zdWJ0bGUvd3JhcEtleS1jaGVjay11c2FnZS1leHBlY3RlZC50eHQuCisgICAgICAg
ICogY3J5cHRvL3dlYmtpdFN1YnRsZS93cmFwS2V5LWNoZWNrLXVzYWdlLmh0bWw6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3dyYXBLZXktY2hlY2stdXNhZ2UuaHRtbC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtc2ltdWxh
dG9yLXdrMS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhw
ZWN0YXRpb25zOgorCiAyMDE2LTA3LTIwICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgRml4IHRpbWVvdXQgb2YgaW1wb3J0ZWQvdzNjL1dlYkNyeXB0b0FQSS9p
ZGxoYXJuZXNzLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVz
LWNiYy0xOTItZW5jcnlwdC1kZWNyeXB0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvYWVzLWNiYy0xOTItZW5jcnlwdC1kZWNyeXB0LWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTc3ZjI3ZGExMTE4ODk2OTZlNmM0OGExMWQ5YmE5MWMz
ODEwOWIzMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtMTkyLWVuY3J5cHQtZGVjcnlwdC1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UZXN0IEFFUy1DQkMgZW5j
cnlwdCBhbmQgZGVjcnlwdCBmdW5jdGlvbnMgd2l0aCBhIDI1NiBiaXQga2V5LgotCi1PbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCi0KLQotSW1wb3J0aW5nIGEgcmF3IEFFUyBrZXkgZnJvbSBzdHJp
bmcgbGl0ZXJhbC4uLgotUEFTUyBrZXkudHlwZSBpcyAnc2VjcmV0JwotUEFTUyBrZXkuZXh0cmFj
dGFibGUgaXMgdHJ1ZQotUEFTUyBrZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0FFUy1DQkMnCi1QQVNT
IGtleS5hbGdvcml0aG0ubGVuZ3RoIGlzIDE5MgotUEFTUyBrZXkudXNhZ2VzIGlzIFsnZGVjcnlw
dCcsICdlbmNyeXB0J10KLVVzaW5nIHRoZSBrZXkgdG8gZW5jcnlwdCBwbGFpbnRleHQuLi4KLVBB
U1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShlbmNyeXB0aW9uUmVzdWx0KSkgaXMg
JzRmMDIxZGIyNDNiYzYzM2Q3MTc4MTgzYTlmYTA3MWU4YjRkOWFkYTlhZDdkZWRmNGU1ZTczODc2
M2Y2OTE0NWE1NzFiMjQyMDEyZmI3YWUwN2ZhOWJhYWMzZGYxMDJlMDA4YjBlMjc5ODg1OTg4ODFk
OTIwYTllNjRmNTYxNWNkNjEyY2NkNzkyMjRiMzUwOTM1ZDQ1ZGQ2YTk4ZjgxNzYnCi1EZWNyeXB0
aW5nIGl0IGJhY2suLi4KLVBBU1MgbmV3IFVpbnQ4QXJyYXkoZGVjcnlwdGlvblJlc3VsdCkgaXMg
cGxhaW50ZXh0Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExF
VEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLTE5Mi1l
bmNyeXB0LWRlY3J5cHQuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy0x
OTItZW5jcnlwdC1kZWNyeXB0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVl
YWUyYTRhNTdhMTM5NzE3ODM2NzA2ZWNiZDQ4MzdiZjZlOTAyZjcuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9h
ZXMtY2JjLTE5Mi1lbmNyeXB0LWRlY3J5cHQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3Jp
cHRpb24oIlRlc3QgQUVTLUNCQyBlbmNyeXB0IGFuZCBkZWNyeXB0IGZ1bmN0aW9ucyB3aXRoIGEg
MjU2IGJpdCBrZXkuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIga2V5RGF0YSA9
IGhleFN0cmluZ1RvVWludDhBcnJheSgiOGU3M2IwZjdkYTBlNjQ1MmM4MTBmMzJiODA5MDc5ZTU2
MmY4ZWFkMjUyMmM2YjdiIik7Ci12YXIgaXYgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAwMDEw
MjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmIik7Ci12YXIgcGxhaW50ZXh0ID0gaGV4U3RyaW5n
VG9VaW50OEFycmF5KCI2YmMxYmVlMjJlNDA5Zjk2ZTkzZDdlMTE3MzkzMTcyYWFlMmQ4YTU3MWUw
M2FjOWM5ZWI3NmZhYzQ1YWY4ZTUxMzBjODFjNDZhMzVjZTQxMWU1ZmJjMTE5MWEwYTUyZWZmNjlm
MjQ0NWRmNGY5YjE3YWQyYjQxN2JlNjZjMzcxMCIpOwotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsK
LQotZGVidWcoIkltcG9ydGluZyBhIHJhdyBBRVMga2V5IGZyb20gc3RyaW5nIGxpdGVyYWwuLi4i
KTsKLWNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBrZXlEYXRhLCAiYWVzLWNiYyIsIGV4
dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkg
ewotICAgIGtleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgia2V5LnR5cGUiLCAiJ3NlY3JldCci
KTsKLSAgICBzaG91bGRCZSgia2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKLSAgICBzaG91bGRC
ZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidBRVMtQ0JDJyIpOwotICAgIHNob3VsZEJlKCJrZXku
YWxnb3JpdGhtLmxlbmd0aCIsICIxOTIiKTsKLSAgICBzaG91bGRCZSgia2V5LnVzYWdlcyIsICJb
J2RlY3J5cHQnLCAnZW5jcnlwdCddIik7Ci0KLSAgICBkZWJ1ZygiVXNpbmcgdGhlIGtleSB0byBl
bmNyeXB0IHBsYWludGV4dC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmVuY3J5cHQo
e25hbWU6ICJhZXMtY2JjIiwgaXY6IGl2fSwga2V5LCBwbGFpbnRleHQpOwotfSkudGhlbihmdW5j
dGlvbihyZXN1bHQpIHsKLSAgICBlbmNyeXB0aW9uUmVzdWx0ID0gcmVzdWx0OwotICAgIHNob3Vs
ZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGVuY3J5cHRpb25SZXN1bHQpKSIs
ICInNGYwMjFkYjI0M2JjNjMzZDcxNzgxODNhOWZhMDcxZThiNGQ5YWRhOWFkN2RlZGY0ZTVlNzM4
NzYzZjY5MTQ1YTU3MWIyNDIwMTJmYjdhZTA3ZmE5YmFhYzNkZjEwMmUwMDhiMGUyNzk4ODU5ODg4
MWQ5MjBhOWU2NGY1NjE1Y2Q2MTJjY2Q3OTIyNGIzNTA5MzVkNDVkZDZhOThmODE3NiciKTsKLQot
ICAgIGRlYnVnKCJEZWNyeXB0aW5nIGl0IGJhY2suLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLnN1
YnRsZS5kZWNyeXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtleSwgcmVzdWx0KTsKLX0p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZGVjcnlwdGlvblJlc3VsdCA9IHJlc3VsdDsK
LSAgICBzaG91bGRCZSgibmV3IFVpbnQ4QXJyYXkoZGVjcnlwdGlvblJlc3VsdCkiLCAicGxhaW50
ZXh0Iik7Ci0KLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy0y
NTYtZW5jcnlwdC1kZWNyeXB0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvYWVzLWNiYy0yNTYtZW5jcnlwdC1kZWNyeXB0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZDA4YjU1YmRjMjNmN2YzNDA3ZjU0ZmE4NDgwNGFmOWQ0YjlhMDY3
NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtMjU2LWVuY3J5cHQtZGVjcnlwdC1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UZXN0IEFFUy1DQkMgZW5jcnlwdCBh
bmQgZGVjcnlwdCBmdW5jdGlvbnMgd2l0aCBhIDI1NiBiaXQga2V5LgotCi1PbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCi0KLQotSW1wb3J0aW5nIGEgcmF3IEFFUyBrZXkgZnJvbSBzdHJpbmcgbGl0
ZXJhbC4uLgotUEFTUyBrZXkudHlwZSBpcyAnc2VjcmV0JwotUEFTUyBrZXkuZXh0cmFjdGFibGUg
aXMgdHJ1ZQotUEFTUyBrZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0FFUy1DQkMnCi1QQVNTIGtleS5h
bGdvcml0aG0ubGVuZ3RoIGlzIDI1NgotUEFTUyBrZXkudXNhZ2VzIGlzIFsnZGVjcnlwdCcsICdl
bmNyeXB0J10KLVVzaW5nIHRoZSBrZXkgdG8gZW5jcnlwdCBwbGFpbnRleHQuLi4KLVBBU1MgYnl0
ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShlbmNyeXB0aW9uUmVzdWx0KSkgaXMgJ2Y1OGM0
YzA0ZDZlNWYxYmE3NzllYWJmYjVmN2JmYmQ2OWNmYzRlOTY3ZWRiODA4ZDY3OWY3NzdiYzY3MDJj
N2QzOWYyMzM2OWE5ZDliYWNmYTUzMGUyNjMwNDIzMTQ2MWIyZWIwNWUyYzM5YmU5ZmNkYTZjMTkw
NzhjNmE5ZDFiM2Y0NjE3OTZkNmIwZDZiMmUwYzJhNzJiNGQ4MGU2NDQnCi1EZWNyeXB0aW5nIGl0
IGJhY2suLi4KLVBBU1MgbmV3IFVpbnQ4QXJyYXkoZGVjcnlwdGlvblJlc3VsdCkgaXMgcGxhaW50
ZXh0Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLTI1Ni1lbmNyeXB0
LWRlY3J5cHQuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy0yNTYtZW5j
cnlwdC1kZWNyeXB0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU5NDdiZDRi
N2UyODA3OWY1OGQ0ZDAxYTVlNDcwNTY0MDFiNDZmMmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2Jj
LTI1Ni1lbmNyeXB0LWRlY3J5cHQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9j
b21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24o
IlRlc3QgQUVTLUNCQyBlbmNyeXB0IGFuZCBkZWNyeXB0IGZ1bmN0aW9ucyB3aXRoIGEgMjU2IGJp
dCBrZXkuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIga2V5RGF0YSA9IGhleFN0
cmluZ1RvVWludDhBcnJheSgiNjAzZGViMTAxNWNhNzFiZTJiNzNhZWYwODU3ZDc3ODExZjM1MmMw
NzNiNjEwOGQ3MmQ5ODEwYTMwOTE0ZGZmNCIpOwotdmFyIGl2ID0gaGV4U3RyaW5nVG9VaW50OEFy
cmF5KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIpOwotdmFyIHBsYWludGV4dCA9
IGhleFN0cmluZ1RvVWludDhBcnJheSgiNmJjMWJlZTIyZTQwOWY5NmU5M2Q3ZTExNzM5MzE3MmFh
ZTJkOGE1NzFlMDNhYzljOWViNzZmYWM0NWFmOGU1MTMwYzgxYzQ2YTM1Y2U0MTFlNWZiYzExOTFh
MGE1MmVmZjY5ZjI0NDVkZjRmOWIxN2FkMmI0MTdiZTY2YzM3MTAiKTsKLXZhciBleHRyYWN0YWJs
ZSA9IHRydWU7Ci0KLWRlYnVnKCJJbXBvcnRpbmcgYSByYXcgQUVTIGtleSBmcm9tIHN0cmluZyBs
aXRlcmFsLi4uIik7Ci1jcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3Iiwga2V5RGF0YSwgImFl
cy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSkudGhlbihmdW5jdGlv
bihyZXN1bHQpIHsKLSAgICBrZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImtleS50eXBlIiwg
IidzZWNyZXQnIik7Ci0gICAgc2hvdWxkQmUoImtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7Ci0g
ICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIsICInQUVTLUNCQyciKTsKLSAgICBzaG91
bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMjU2Iik7Ci0gICAgc2hvdWxkQmUoImtleS51
c2FnZXMiLCAiWydkZWNyeXB0JywgJ2VuY3J5cHQnXSIpOwotCi0gICAgZGVidWcoIlVzaW5nIHRo
ZSBrZXkgdG8gZW5jcnlwdCBwbGFpbnRleHQuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRs
ZS5lbmNyeXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtleSwgcGxhaW50ZXh0KTsKLX0p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZW5jcnlwdGlvblJlc3VsdCA9IHJlc3VsdDsK
LSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShlbmNyeXB0aW9u
UmVzdWx0KSkiLCAiJ2Y1OGM0YzA0ZDZlNWYxYmE3NzllYWJmYjVmN2JmYmQ2OWNmYzRlOTY3ZWRi
ODA4ZDY3OWY3NzdiYzY3MDJjN2QzOWYyMzM2OWE5ZDliYWNmYTUzMGUyNjMwNDIzMTQ2MWIyZWIw
NWUyYzM5YmU5ZmNkYTZjMTkwNzhjNmE5ZDFiM2Y0NjE3OTZkNmIwZDZiMmUwYzJhNzJiNGQ4MGU2
NDQnIik7Ci0KLSAgICBkZWJ1ZygiRGVjcnlwdGluZyBpdCBiYWNrLi4uIik7Ci0gICAgcmV0dXJu
IGNyeXB0by5zdWJ0bGUuZGVjcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXksIHJl
c3VsdCk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGRlY3J5cHRpb25SZXN1bHQg
PSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoIm5ldyBVaW50OEFycmF5KGRlY3J5cHRpb25SZXN1bHQp
IiwgInBsYWludGV4dCIpOwotCi0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0Pgot
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L2Flcy1jYmMtZW5jcnlwdC1kZWNyeXB0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5cHQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA2NmIzMTUwNzFkNTQ4ODY3NmI3NGVhZTA0OThmZWJhNzFjZDU5
MGQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5cHQtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotVGVzdCBBRVMtQ0JDIGVuY3J5cHQgYW5k
IGRlY3J5cHQgZnVuY3Rpb25zLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotSW1w
b3J0aW5nIGEgcmF3IEFFUyBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJhbC4uLgotUEFTUyBrZXkudHlw
ZSBpcyAnc2VjcmV0JwotUEFTUyBrZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQotUEFTUyBrZXkuYWxn
b3JpdGhtLm5hbWUgaXMgJ0FFUy1DQkMnCi1QQVNTIGtleS5hbGdvcml0aG0ubGVuZ3RoIGlzIDEy
OAotUEFTUyBrZXkudXNhZ2VzIGlzIFsnZGVjcnlwdCcsICdlbmNyeXB0J10KLVVzaW5nIHRoZSBr
ZXkgdG8gZW5jcnlwdCBwbGFpbnRleHQuLi4KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWlu
dDhBcnJheShlbmNyeXB0aW9uUmVzdWx0KSkgaXMgJzc2NDlhYmFjODExOWIyNDZjZWU5OGU5YjEy
ZTkxOTdkNTA4NmNiOWI1MDcyMTllZTk1ZGIxMTNhOTE3Njc4YjI3M2JlZDZiOGUzYzE3NDNiNzEx
NmU2OWUyMjIyOTUxNjNmZjFjYWExNjgxZmFjMDkxMjBlY2EzMDc1ODZlMWE3OGNiODI4MDcyMzBl
MTMyMWQzZmFlMDBkMThjYzIwMTInCi1EZWNyeXB0aW5nIGl0IGJhY2suLi4KLVBBU1MgbmV3IFVp
bnQ4QXJyYXkoZGVjcnlwdGlvblJlc3VsdCkgaXMgcGxhaW50ZXh0Ci1UZXN0aW5nIGluaXRpYWxp
emF0aW9uIHZlY3RvciBiaW5kaW5ncy4uLgotUEFTUyBjcnlwdG8uc3VidGxlLmVuY3J5cHQoe25h
bWU6ICdBRVMtQ0JDJywgaXY6IG51bGx9LCBrZXksIHBsYWludGV4dCkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogT25seSBBcnJheUJ1ZmZlciBhbmQgQXJyYXlCdWZmZXJWaWV3IG9iamVjdHMg
Y2FuIGJlIHBhc3NlZCBhcyBDcnlwdG9PcGVyYXRpb25EYXRhLgotUEFTUyBjcnlwdG8uc3VidGxl
LmVuY3J5cHQoe25hbWU6ICdBRVMtQ0JDJ30sIGtleSwgcGxhaW50ZXh0KSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBPbmx5IEFycmF5QnVmZmVyIGFuZCBBcnJheUJ1ZmZlclZpZXcgb2JqZWN0
cyBjYW4gYmUgcGFzc2VkIGFzIENyeXB0b09wZXJhdGlvbkRhdGEuCi1QQVNTIGNyeXB0by5zdWJ0
bGUuZW5jcnlwdCh7bmFtZTogJ0FFUy1DQkMnLCBpdjogM30sIGtleSwgcGxhaW50ZXh0KSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBPbmx5IEFycmF5QnVmZmVyIGFuZCBBcnJheUJ1ZmZlclZp
ZXcgb2JqZWN0cyBjYW4gYmUgcGFzc2VkIGFzIENyeXB0b09wZXJhdGlvbkRhdGEuCi1QQVNTIGNy
eXB0by5zdWJ0bGUuZW5jcnlwdCh7bmFtZTogJ0FFUy1DQkMnLCBpdjogbmV3IFVpbnQ4QXJyYXko
WzBdKX0sIGtleSwgcGxhaW50ZXh0KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEFFUy1DQkMgaW5p
dGlhbGl6YXRpb24gZGF0YSBtdXN0IGJlIDE2IGJ5dGVzLgotUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5cHQtd2l0aC1wYWRkaW5nLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5cHQt
d2l0aC1wYWRkaW5nLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MzJmZGZiYWE0ZTIwZGU2MjNkZWI4OTc1ZjhkMDQwYjFkNTQyOWY0Zi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L2Flcy1jYmMtZW5jcnlwdC1kZWNyeXB0LXdpdGgtcGFkZGluZy1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UZXN0IEFFUy1DQkMgZW5jcnlwdCBhbmQgZGVjcnlw
dCBmdW5jdGlvbnMgb24gYSBwbGFpbnRleHQgdGhhdCBpcyBub3QgYSBtdWx0aXBsZSBvZiBibG9j
ayBzaXplIGluIGxlbmd0aC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUltcG9y
dGluZyBhIHJhdyBBRVMga2V5IGZyb20gc3RyaW5nIGxpdGVyYWwuLi4KLVBBU1Mga2V5LnR5cGUg
aXMgJ3NlY3JldCcKLVBBU1Mga2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKLVBBU1Mga2V5LmFsZ29y
aXRobS5uYW1lIGlzICdBRVMtQ0JDJwotUEFTUyBrZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyAxMjgK
LVBBU1Mga2V5LnVzYWdlcyBpcyBbJ2RlY3J5cHQnLCAnZW5jcnlwdCddCi1Vc2luZyB0aGUga2V5
IHRvIGVuY3J5cHQgcGxhaW50ZXh0Li4uCi1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4
QXJyYXkoY3lwaGVydGV4dCkpIGlzICc2MzAxOTljNWYyMDJjYzcxNjdiYjg0YzZjNzJiMzQ5ZCcK
LURlY3J5cHRpbmcgaXQgYmFjay4uLgotUEFTUyBuZXcgVWludDhBcnJheShkZWNyeXB0aW9uUmVz
dWx0KSBpcyBwbGFpbnRleHQKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVT
VCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1j
YmMtZW5jcnlwdC1kZWNyeXB0LXdpdGgtcGFkZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRv
L3N1YnRsZS9hZXMtY2JjLWVuY3J5cHQtZGVjcnlwdC13aXRoLXBhZGRpbmcuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmFiNjQ2MGE2ZjNiZTY4YWUxOGRjMGZlZjAxZTRmZjNj
MzEzMWMyYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtZW5jcnlwdC1kZWNyeXB0LXdpdGgtcGFk
ZGluZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBBRVMtQ0JDIGVu
Y3J5cHQgYW5kIGRlY3J5cHQgZnVuY3Rpb25zIG9uIGEgcGxhaW50ZXh0IHRoYXQgaXMgbm90IGEg
bXVsdGlwbGUgb2YgYmxvY2sgc2l6ZSBpbiBsZW5ndGguIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0
cnVlOwotCi12YXIga2V5RGF0YSA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiMmI3ZTE1MTYyOGFl
ZDJhNmFiZjcxNTg4MDljZjRmM2MiKTsKLXZhciBpdiA9IGhleFN0cmluZ1RvVWludDhBcnJheSgi
MDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYiKTsKLXZhciBwbGFpbnRleHQgPSBhc2Np
aVRvVWludDhBcnJheSgidGVzdCIpOwotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLQotZGVidWco
IkltcG9ydGluZyBhIHJhdyBBRVMga2V5IGZyb20gc3RyaW5nIGxpdGVyYWwuLi4iKTsKLWNyeXB0
by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBrZXlEYXRhLCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxl
LCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtl
eSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgia2V5LnR5cGUiLCAiJ3NlY3JldCciKTsKLSAgICBz
aG91bGRCZSgia2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKLSAgICBzaG91bGRCZSgia2V5LmFs
Z29yaXRobS5uYW1lIiwgIidBRVMtQ0JDJyIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGht
Lmxlbmd0aCIsICIxMjgiKTsKLSAgICBzaG91bGRCZSgia2V5LnVzYWdlcyIsICJbJ2RlY3J5cHQn
LCAnZW5jcnlwdCddIik7Ci0KLSAgICBkZWJ1ZygiVXNpbmcgdGhlIGtleSB0byBlbmNyeXB0IHBs
YWludGV4dC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmVuY3J5cHQoe25hbWU6ICJh
ZXMtY2JjIiwgaXY6IGl2fSwga2V5LCBwbGFpbnRleHQpOwotfSkudGhlbihmdW5jdGlvbihyZXN1
bHQpIHsKLSAgICBjeXBoZXJ0ZXh0ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4
U3RyaW5nKG5ldyBVaW50OEFycmF5KGN5cGhlcnRleHQpKSIsICInNjMwMTk5YzVmMjAyY2M3MTY3
YmI4NGM2YzcyYjM0OWQnIik7Ci0KLSAgICBkZWJ1ZygiRGVjcnlwdGluZyBpdCBiYWNrLi4uIik7
Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGVjcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjog
aXZ9LCBrZXksIHJlc3VsdCk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGRlY3J5
cHRpb25SZXN1bHQgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoIm5ldyBVaW50OEFycmF5KGRlY3J5
cHRpb25SZXN1bHQpIiwgInBsYWludGV4dCIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08
L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9hZXMtY2JjLWVuY3J5cHQtZGVjcnlwdC5odG1sIGIvTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9hZXMtY2JjLWVuY3J5cHQtZGVjcnlwdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBlNjdmNDI3ZTM5YjAzOTZlOGQ0OTE2N2ZhMjQ5OThkNDIwNjAyMDE0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2NyeXB0by9zdWJ0bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5cHQuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDU0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2Ny
aXB0PgotZGVzY3JpcHRpb24oIlRlc3QgQUVTLUNCQyBlbmNyeXB0IGFuZCBkZWNyeXB0IGZ1bmN0
aW9ucy4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBrZXlEYXRhID0gaGV4U3Ry
aW5nVG9VaW50OEFycmF5KCIyYjdlMTUxNjI4YWVkMmE2YWJmNzE1ODgwOWNmNGYzYyIpOwotdmFy
IGl2ID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBk
MGUwZiIpOwotdmFyIHBsYWludGV4dCA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiNmJjMWJlZTIy
ZTQwOWY5NmU5M2Q3ZTExNzM5MzE3MmFhZTJkOGE1NzFlMDNhYzljOWViNzZmYWM0NWFmOGU1MTMw
YzgxYzQ2YTM1Y2U0MTFlNWZiYzExOTFhMGE1MmVmZjY5ZjI0NDVkZjRmOWIxN2FkMmI0MTdiZTY2
YzM3MTAiKTsKLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci0KLWRlYnVnKCJJbXBvcnRpbmcgYSBy
YXcgQUVTIGtleSBmcm9tIHN0cmluZyBsaXRlcmFsLi4uIik7Ci1jcnlwdG8uc3VidGxlLmltcG9y
dEtleSgicmF3Iiwga2V5RGF0YSwgImFlcy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0Iiwg
ImRlY3J5cHQiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBrZXkgPSByZXN1bHQ7Ci0g
ICAgc2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7Ci0gICAgc2hvdWxkQmUoImtleS5l
eHRyYWN0YWJsZSIsICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIs
ICInQUVTLUNCQyciKTsKLSAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMTI4
Iik7Ci0gICAgc2hvdWxkQmUoImtleS51c2FnZXMiLCAiWydkZWNyeXB0JywgJ2VuY3J5cHQnXSIp
OwotCi0gICAgZGVidWcoIlVzaW5nIHRoZSBrZXkgdG8gZW5jcnlwdCBwbGFpbnRleHQuLi4iKTsK
LSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5lbmNyeXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBp
dn0sIGtleSwgcGxhaW50ZXh0KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZW5j
cnlwdGlvblJlc3VsdCA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhu
ZXcgVWludDhBcnJheShlbmNyeXB0aW9uUmVzdWx0KSkiLCAiJzc2NDlhYmFjODExOWIyNDZjZWU5
OGU5YjEyZTkxOTdkNTA4NmNiOWI1MDcyMTllZTk1ZGIxMTNhOTE3Njc4YjI3M2JlZDZiOGUzYzE3
NDNiNzExNmU2OWUyMjIyOTUxNjNmZjFjYWExNjgxZmFjMDkxMjBlY2EzMDc1ODZlMWE3OGNiODI4
MDcyMzBlMTMyMWQzZmFlMDBkMThjYzIwMTInIik7Ci0KLSAgICBkZWJ1ZygiRGVjcnlwdGluZyBp
dCBiYWNrLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGVjcnlwdCh7bmFtZTogImFl
cy1jYmMiLCBpdjogaXZ9LCBrZXksIHJlc3VsdCk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkg
ewotICAgIGRlY3J5cHRpb25SZXN1bHQgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoIm5ldyBVaW50
OEFycmF5KGRlY3J5cHRpb25SZXN1bHQpIiwgInBsYWludGV4dCIpOwotCi0gICAgZGVidWcoIlRl
c3RpbmcgaW5pdGlhbGl6YXRpb24gdmVjdG9yIGJpbmRpbmdzLi4uIik7Ci0gICAgc2hvdWxkVGhy
b3coImNyeXB0by5zdWJ0bGUuZW5jcnlwdCh7bmFtZTogJ0FFUy1DQkMnLCBpdjogbnVsbH0sIGtl
eSwgcGxhaW50ZXh0KSIpOwotICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmVuY3J5cHQo
e25hbWU6ICdBRVMtQ0JDJ30sIGtleSwgcGxhaW50ZXh0KSIpOwotICAgIHNob3VsZFRocm93KCJj
cnlwdG8uc3VidGxlLmVuY3J5cHQoe25hbWU6ICdBRVMtQ0JDJywgaXY6IDN9LCBrZXksIHBsYWlu
dGV4dCkiKTsKLSAgICBzaG91bGRUaHJvdygiY3J5cHRvLnN1YnRsZS5lbmNyeXB0KHtuYW1lOiAn
QUVTLUNCQycsIGl2OiBuZXcgVWludDhBcnJheShbMF0pfSwga2V5LCBwbGFpbnRleHQpIik7Ci0K
LSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy1nZW5lcmF0ZS1r
ZXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLWdlbmVy
YXRlLWtleS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA1NjY5
NzI0NGIyYzZjYTI0ZDJiMGFiYTNlYTM2OTQ5NThjNDkzYTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMt
Y2JjLWdlbmVyYXRlLWtleS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCww
IEBACi1UZXN0IGdlbmVyYXRpbmcgYW4gQUVTIGtleSB1c2luZyBBRVMtQ0JDIGFsZ29yaXRobS4K
LQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgY3J5cHRvLnN1YnRsZS5nZW5l
cmF0ZUtleSgiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjcnlwdG8uc3VidGxl
LmdlbmVyYXRlS2V5KHtuYW1lOiAiYWVzLWNiYyJ9LCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0Iiwg
ImRlY3J5cHQiXSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVmFsdWUgTmFOIGlzIG91dHNp
ZGUgdGhlIHJhbmdlIFswLCA2NTUzNV0uCi1QQVNTIGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXko
e25hbWU6ICJhZXMtY2JjIiwgbGVuZ3RoOiB1bmRlZmluZWR9LCBleHRyYWN0YWJsZSwgWyJlbmNy
eXB0IiwgImRlY3J5cHQiXSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVmFsdWUgTmFOIGlz
IG91dHNpZGUgdGhlIHJhbmdlIFswLCA2NTUzNV0uCi1QQVNTIGNyeXB0by5zdWJ0bGUuZ2VuZXJh
dGVLZXkoe25hbWU6ICJhZXMtY2JjIiwgbGVuZ3RoOiB7fX0sIGV4dHJhY3RhYmxlLCBbImVuY3J5
cHQiLCAiZGVjcnlwdCJdKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBWYWx1ZSBOYU4gaXMg
b3V0c2lkZSB0aGUgcmFuZ2UgWzAsIDY1NTM1XS4KLUdlbmVyYXRpbmcgYSBrZXkuLi4KLVBBU1Mg
a2V5LnR5cGUgaXMgJ3NlY3JldCcKLVBBU1Mga2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKLVBBU1Mg
a2V5LmFsZ29yaXRobS5uYW1lIGlzICdBRVMtQ0JDJwotUEFTUyBrZXkuYWxnb3JpdGhtLmxlbmd0
aCBpcyAxMjgKLVBBU1Mga2V5LnVzYWdlcyBpcyBbJ2RlY3J5cHQnLCAnZW5jcnlwdCddCi1QQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLWdlbmVyYXRlLWtleS5odG1sIGIv
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLWdlbmVyYXRlLWtleS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMzYyYzhmOTQyMWJjN2YwZDdmN2MwODk2M2JlNGU2
M2Q5NjQ3Y2NlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy1nZW5lcmF0ZS1rZXkuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgZ2VuZXJhdGluZyBhbiBBRVMga2V5IHVz
aW5nIEFFUy1DQkMgYWxnb3JpdGhtLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFy
IGV4dHJhY3RhYmxlID0gdHJ1ZTsKLQotc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZ2VuZXJh
dGVLZXkoImFlcy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSknKTsK
LXNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiYWVzLWNiYyJ9
LCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSknKTsKLXNob3VsZFRocm93KCdj
cnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiYWVzLWNiYyIsIGxlbmd0aDogdW5kZWZp
bmVkfSwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pJyk7Ci1zaG91bGRUaHJv
dygnY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImFlcy1jYmMiLCBsZW5ndGg6IHt9
fSwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pJyk7Ci0KLWRlYnVnKCJHZW5l
cmF0aW5nIGEga2V5Li4uIik7Ci1jcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiYWVz
LWNiYyIsIGxlbmd0aDogMTI4fSwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0OwotCi0gICAgc2hvdWxk
QmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7Ci0gICAgc2hvdWxkQmUoImtleS5leHRyYWN0YWJs
ZSIsICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIsICInQUVTLUNC
QyciKTsKLSAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMTI4Iik7Ci0gICAg
c2hvdWxkQmUoImtleS51c2FnZXMiLCAiWydkZWNyeXB0JywgJ2VuY3J5cHQnXSIpOwotCi0gICAg
ZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtaW1wb3J0LWp3ay1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtaW1wb3J0LWp3ay1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwZGZiNjQyNjMwMzk5
ZDUyYzhhZTZhOWRjMjJhZWRhZTExMDhlYTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLWltcG9y
dC1qd2stZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGVzdCBp
bXBvcnRpbmcgYSBKV0sga2V5IGZvciBBRVMtQ0JDLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCi0KLQotSW1wb3J0aW5nIGEga2V5Li4uCi0KLVBBU1Mga2V5LnR5cGUgaXMgJ3NlY3JldCcK
LVBBU1Mga2V5LmV4dHJhY3RhYmxlIGlzIGZhbHNlCi1QQVNTIGtleS5hbGdvcml0aG0ubmFtZSBp
cyAnQUVTLUNCQycKLVBBU1Mga2V5LmFsZ29yaXRobS5sZW5ndGggaXMgMTkyCi1QQVNTIGtleS51
c2FnZXMgaXMgWyJlbmNyeXB0Il0KLQotVXNpbmcgdGhlIGtleSB0byBlbmNyeXB0IHBsYWludGV4
dC4uLgotUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGVuY3J5cHRpb25SZXN1
bHQpKSBpcyAnNGYwMjFkYjI0M2JjNjMzZDcxNzgxODNhOWZhMDcxZThiNGQ5YWRhOWFkN2RlZGY0
ZTVlNzM4NzYzZjY5MTQ1YTU3MWIyNDIwMTJmYjdhZTA3ZmE5YmFhYzNkZjEwMmUwMDhiMGUyNzk4
ODU5ODg4MWQ5MjBhOWU2NGY1NjE1Y2Q2MTJjY2Q3OTIyNGIzNTA5MzVkNDVkZDZhOThmODE3NicK
LVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtaW1wb3J0LWp3ay5odG1s
IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLWltcG9ydC1qd2suaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmQwOGNjMzc1NWI5MDkwZDNjMjc2MDY5NmEwZDE0
ZGU5YzFkYzgyZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtaW1wb3J0LWp3ay5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBpbXBvcnRpbmcgYSBKV0sga2V5IGZvciBB
RVMtQ0JDLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGV4dHJhY3RhYmxlID0g
dHJ1ZTsKLQotdmFyIGl2ID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMDAxMDIwMzA0MDUwNjA3
MDgwOTBhMGIwYzBkMGUwZiIpOwotdmFyIHBsYWludGV4dCA9IGhleFN0cmluZ1RvVWludDhBcnJh
eSgiNmJjMWJlZTIyZTQwOWY5NmU5M2Q3ZTExNzM5MzE3MmFhZTJkOGE1NzFlMDNhYzljOWViNzZm
YWM0NWFmOGU1MTMwYzgxYzQ2YTM1Y2U0MTFlNWZiYzExOTFhMGE1MmVmZjY5ZjI0NDVkZjRmOWIx
N2FkMmI0MTdiZTY2YzM3MTAiKTsKLQotdmFyIGp3a0tleSA9IHsKLSAgICAia3R5IjogIm9jdCIs
Ci0gICAgImFsZyI6ICJBMTkyQ0JDIiwKLSAgICAidXNlIjogImVuYyIsCi0gICAgImV4dCI6IHRy
dWUsCi0gICAgImsiOiAiam5Pdzk5b09aRkxJRVBNcmdKQjU1V0w0NnRKU0xHdDciCi19OwotCi12
YXIgandrS2V5QXNBcnJheUJ1ZmZlciA9IGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5
KGp3a0tleSkpOwotCi1kZWJ1ZygiSW1wb3J0aW5nIGEga2V5Li4uXG4iKTsKLWNyeXB0by5zdWJ0
bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tLZXlBc0FycmF5QnVmZmVyLCBudWxsLCBmYWxzZSwgWyJl
bmNyeXB0Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0OwotCi0g
ICAgc2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7Ci0gICAgc2hvdWxkQmUoImtleS5l
eHRyYWN0YWJsZSIsICJmYWxzZSIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUi
LCAiJ0FFUy1DQkMnIik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjE5
MiIpOwotICAgIHNob3VsZEJlKCJrZXkudXNhZ2VzIiwgJ1siZW5jcnlwdCJdJyk7Ci0KLSAgICBk
ZWJ1ZygiXG5Vc2luZyB0aGUga2V5IHRvIGVuY3J5cHQgcGxhaW50ZXh0Li4uIik7Ci0gICAgcmV0
dXJuIGNyeXB0by5zdWJ0bGUuZW5jcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXks
IHBsYWludGV4dCk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGVuY3J5cHRpb25S
ZXN1bHQgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4
QXJyYXkoZW5jcnlwdGlvblJlc3VsdCkpIiwgIic0ZjAyMWRiMjQzYmM2MzNkNzE3ODE4M2E5ZmEw
NzFlOGI0ZDlhZGE5YWQ3ZGVkZjRlNWU3Mzg3NjNmNjkxNDVhNTcxYjI0MjAxMmZiN2FlMDdmYTli
YWFjM2RmMTAyZTAwOGIwZTI3OTg4NTk4ODgxZDkyMGE5ZTY0ZjU2MTVjZDYxMmNjZDc5MjI0YjM1
MDkzNWQ0NWRkNmE5OGY4MTc2JyIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3Njcmlw
dD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS9hZXMtY2JjLWludmFsaWQtbGVuZ3RoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvYWVzLWNiYy1pbnZhbGlkLWxlbmd0aC1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwMmE1ZjIwNTYwNzhhYjdmNGMwMjRkNDdhMTc4NWE5ODc3
MzUxOTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLWludmFsaWQtbGVuZ3RoLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRlc3QgYW4gdW5zdXBwb3J0ZWQgQUVT
IGtleSBsZW5ndGguCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1JbXBvcnRpbmcg
YSByYXcgQUVTIGtleSBmcm9tIHN0cmluZyBsaXRlcmFsLi4uCi1QQVNTIGtleS50eXBlIGlzICdz
ZWNyZXQnCi1QQVNTIGtleS5leHRyYWN0YWJsZSBpcyB0cnVlCi1QQVNTIGtleS5hbGdvcml0aG0u
bmFtZSBpcyAnQUVTLUNCQycKLVBBU1Mga2V5LmFsZ29yaXRobS5sZW5ndGggaXMgMTc2Ci1QQVNT
IGtleS51c2FnZXMgaXMgWydkZWNyeXB0JywgJ2VuY3J5cHQnXQotVXNpbmcgdGhlIGtleSB0byBl
bmNyeXB0IHBsYWludGV4dC4uLgotRmFpbGVkLCBhcyBleHBlY3RlZC4gTm90ZSB0aGF0IHRoZSBz
cGVjIGRvZXNuJ3QgYXBwZWFyIHRvIGNsZWFybHkgZGVmaW5lIHdoaWNoIHN0ZXAgc2hvdWxkIGZh
aWwuCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLWludmFsaWQtbGVu
Z3RoLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtaW52YWxpZC1sZW5n
dGguaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWQ3YTg5YzgxM2JlOWUxODNm
NWNhYTA0NjVlMzM3MTJhZWYzZjg4ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtaW52YWxpZC1s
ZW5ndGguaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgYW4gdW5zdXBw
b3J0ZWQgQUVTIGtleSBsZW5ndGguIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIg
a2V5RGF0YSA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiOGU3M2IwZjdkYTBlNjQ1MmM4MTBmMzJi
ODA5MDc5ZTU2MmY4ZWFkMjUyMmMiKTsKLXZhciBpdiA9IGhleFN0cmluZ1RvVWludDhBcnJheSgi
MDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYiKTsKLXZhciBwbGFpbnRleHQgPSBoZXhT
dHJpbmdUb1VpbnQ4QXJyYXkoIjZiYzFiZWUyMmU0MDlmOTZlOTNkN2UxMTczOTMxNzJhYWUyZDhh
NTcxZTAzYWM5YzllYjc2ZmFjNDVhZjhlNTEzMGM4MWM0NmEzNWNlNDExZTVmYmMxMTkxYTBhNTJl
ZmY2OWYyNDQ1ZGY0ZjliMTdhZDJiNDE3YmU2NmMzNzEwIik7Ci12YXIgZXh0cmFjdGFibGUgPSB0
cnVlOwotCi1kZWJ1ZygiSW1wb3J0aW5nIGEgcmF3IEFFUyBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJh
bC4uLiIpOwotY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGtleURhdGEsICJhZXMtY2Jj
IiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pLnRoZW4oZnVuY3Rpb24ocmVz
dWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJrZXkudHlwZSIsICInc2Vj
cmV0JyIpOwotICAgIHNob3VsZEJlKCJrZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIpOwotICAgIHNo
b3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FFUy1DQkMnIik7Ci0gICAgc2hvdWxkQmUo
ImtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjE3NiIpOwotICAgIHNob3VsZEJlKCJrZXkudXNhZ2Vz
IiwgIlsnZGVjcnlwdCcsICdlbmNyeXB0J10iKTsKLQotICAgIGRlYnVnKCJVc2luZyB0aGUga2V5
IHRvIGVuY3J5cHQgcGxhaW50ZXh0Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZW5j
cnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXksIFtwbGFpbnRleHRdKTsKLX0pLnRo
ZW4odW5kZWZpbmVkLCBmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBkZWJ1ZygiRmFpbGVkLCBhcyBl
eHBlY3RlZC4gTm90ZSB0aGF0IHRoZSBzcGVjIGRvZXNuJ3QgYXBwZWFyIHRvIGNsZWFybHkgZGVm
aW5lIHdoaWNoIHN0ZXAgc2hvdWxkIGZhaWwuIik7Ci0KLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0p
OwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NyeXB0by9zdWJ0bGUvYWVzLWNiYy11bndyYXAtZmFpbHVyZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtdW53cmFwLWZhaWx1cmUtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZTgxMTJkODIwMDA5OWUzYTkyM2U3MjIx
MDYwNzZlZDQ1N2Y3Yjg3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy11bndyYXAtZmFpbHVyZS1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1UZXN0IHVud3JhcHBp
bmcgYW4gUlNBIGtleSB3aXRoIEFFUy1DQkMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
LQotCi1JbXBvcnRpbmcgYW4gdW53cmFwcGluZyBrZXkuLi4KLVBBU1MgdW53cmFwcGluZ0tleS5h
bGdvcml0aG0ubmFtZSBpcyAnQUVTLUNCQycKLVVud3JhcHBpbmcgYSBrZXkuLi4KLVBBU1MgUHJv
bWlzZSByZWplY3RlZAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENP
TVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy11
bndyYXAtZmFpbHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXVu
d3JhcC1mYWlsdXJlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY3ZmNmNGZl
OWM0ZTRlYjBkMDVhYjE5MDgwOWE3ZmFhY2IwOWQ2NDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2Jj
LXVud3JhcC1mYWlsdXJlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9u
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0
IHVud3JhcHBpbmcgYW4gUlNBIGtleSB3aXRoIEFFUy1DQkMuIik7Ci0KLWpzVGVzdElzQXN5bmMg
PSB0cnVlOwotCi12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotdmFyIG5vbkV4dHJhY3RhYmxlID0g
ZmFsc2U7Ci0KLXZhciB1bndyYXBwaW5nS2V5T2N0ZXRzID0gaGV4U3RyaW5nVG9VaW50OEFycmF5
KCIyYTAwZTBlNzc2ZTk0ZTRkYzg5YmY5NDdjZWJkZWJlMSIpOwotdmFyIHdyYXBwZWRLZXkgPSBo
ZXhTdHJpbmdUb1VpbnQ4QXJyYXkoImI0OTBkZWRiM2FiYzNmZDU0NWUxNDY1MzhlNmNjM2NhIik7
IC8vIEFuIGVtcHR5IGVuY3J5cHRlZCBKU09OLgotCi1kZWJ1ZygiSW1wb3J0aW5nIGFuIHVud3Jh
cHBpbmcga2V5Li4uIik7Ci1jcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3IiwgdW53cmFwcGlu
Z0tleU9jdGV0cywgIkFFUy1DQkMiLCBub25FeHRyYWN0YWJsZSwgWyJ1bndyYXBLZXkiXSkudGhl
bihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB1bndyYXBwaW5nS2V5ID0gcmVzdWx0OwotICAgIHNo
b3VsZEJlKCJ1bndyYXBwaW5nS2V5LmFsZ29yaXRobS5uYW1lIiwgIidBRVMtQ0JDJyIpOwotICAg
IHZhciB1bndyYXBBbGdvcml0aG0gPSB7bmFtZTogIkFFUy1DQkMiLCBpdjogaGV4U3RyaW5nVG9V
aW50OEFycmF5KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIpfTsKLSAgICBkZWJ1
ZygiVW53cmFwcGluZyBhIGtleS4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLnVud3Jh
cEtleSgiandrIiwgd3JhcHBlZEtleSwgdW53cmFwcGluZ0tleSwgdW53cmFwQWxnb3JpdGhtLCBu
dWxsLCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSIsICJlbmNyeXB0IiwgImRlY3J5cHQi
LCAid3JhcCIsICJ1bndyYXAiXSk7Ci19KS50aGVuKHVuZGVmaW5lZCwgZnVuY3Rpb24ocmVzdWx0
KSB7Ci0gICAgdGVzdFBhc3NlZCgiUHJvbWlzZSByZWplY3RlZCIpOwotICAgIGZpbmlzaEpTVGVz
dCgpOwotfSk7Ci0KLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtdW53cmFwLXJzYS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtdW53cmFwLXJzYS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlMDFjMTE5MzY4YmQ1N2QzNTQzNTZm
MTE4ZDU4MjQwZjBhZDMzZGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXVud3JhcC1yc2EtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGVzdCB1bndyYXBwaW5n
IGFuIFJTQSBrZXkgd2l0aCBBRVMtQ0JDLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0K
LQotSW1wb3J0aW5nIGFuIHVud3JhcHBpbmcga2V5Li4uCi1QQVNTIHVud3JhcHBpbmdLZXkuYWxn
b3JpdGhtLm5hbWUgaXMgJ0FFUy1DQkMnCi1VbndyYXBwaW5nIGEga2V5Li4uCi1QQVNTIHVud3Jh
cHBlZEtleS50b1N0cmluZygpIGlzICdbb2JqZWN0IEtleV0nCi1QQVNTIHVud3JhcHBlZEtleS50
eXBlIGlzICdwdWJsaWMnCi1QQVNTIHVud3JhcHBlZEtleS51c2FnZXMgaXMgWydzaWduJywndmVy
aWZ5J10KLVBBU1MgdW53cmFwcGVkS2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FTU0EtUEtDUzEt
djFfNScKLVBBU1MgdW53cmFwcGVkS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIGlzIDIwNDgK
LVBBU1MgQmFzZTY0VVJMLnN0cmluZ2lmeSh1bndyYXBwZWRLZXkuYWxnb3JpdGhtLnB1YmxpY0V4
cG9uZW50KSBpcyBwdWJsaWNLZXlKU09OLmUKLVBBU1MgdW53cmFwcGVkS2V5LmFsZ29yaXRobS5o
YXNoLm5hbWUgaXMgJ1NIQS0yNTYnCi1QQVNTIHVud3JhcHBlZEtleS5leHRyYWN0YWJsZSBpcyBm
YWxzZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy11bndyYXAtcnNh
Lmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtdW53cmFwLXJzYS5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZGQ3M2FmM2Q3ZjA2N2I5MDU2YjhlNDdl
NzNhMDg4NmNkOTZmMTA3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy11bndyYXAtcnNhLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IHVud3JhcHBpbmcgYW4gUlNBIGtl
eSB3aXRoIEFFUy1DQkMuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIgZXh0cmFj
dGFibGUgPSB0cnVlOwotdmFyIG5vbkV4dHJhY3RhYmxlID0gZmFsc2U7Ci0KLXZhciBwdWJsaWNL
ZXlKU09OID0gewotICAgIGt0eTogIlJTQSIsCi0gICAgYWxnOiAiUlMyNTYiLAotICAgIG46ICJy
Y0NVQ3Y3T2MxSFZhbTFESWhDenFrblRoV2F3T3A4UUxrOFppeTJwMTBCeWpRRkNham9GaXl1QVds
LVIxV1haYWY0eGl0TFJyYWNUOWFncHpJemMtTWJMU0hJR2dXUUdPMjFsR2lJbXk1ZnRaLUQ4YkhB
cVJ6MnkxNXB6RDRjNENFb3U3WFNTTERvUm5SMFFHNU1zRGhENnMyZ1Y5bXdIa3J0a0N4dE1XZEJp
LTc3YXM4d0dtbE5SbGRjT1NnWkRMSzhVbkNTZ0ExT2d1Wjk4OWJGeWM4dE9PRUliMHhVU2ZQU3oz
TFBTQ255WXo2OGFEam1LVmVOSC1pZzg1N09TY3lXYkd5RXkzQml3NjRxdW4zanVVbE5Xc0ozem5n
a09kdGVZV3l0eDVRcjRYS05zNlItTXl5cTcyS1VwMDJtSkRaaWl5aWdseE1MX2kzLV9DZWVjQ3ci
LAotICAgIGU6ICJBUUFCIiwKLSAgICBleHQ6IGZhbHNlLAotICAgIHVzZTogInNpZyIKLX07Ci0K
LXZhciB1bndyYXBwaW5nS2V5T2N0ZXRzID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCIyYTAwZTBl
Nzc2ZTk0ZTRkYzg5YmY5NDdjZWJkZWJlMSIpOwotdmFyIHdyYXBwZWRLZXkgPSBoZXhTdHJpbmdU
b1VpbnQ4QXJyYXkoIjM1MTFmNjAyOGRiMDRlYTk3ZTdjZmFkM2M0Y2M2MDgzN2JjZWZmMjVjYjZj
ODgyOTJmYmNiNDU0NzU3MGFmZGMzMmU0MDAzZmU0ZDY1ZjFlN2RmNjBkYzFmZGIzZGYzNmMzZjU4
YWIyMjhlMzNhYTMxMDA1ODUyZDQ2ZDBjMmFkMTMxODQzNWEwNzFiYmI1YmJiMDU2NTBlYTYzZDU1
MTY5OGIwYzA0MGRkOTVlZDBkMzc5YjVlMmVjY2I1NDVhZTU2MjBhY2I4MDUxMTc0Y2QyYWQ2NDcz
MjhhZDk5ZGNkNDYyZmVjNDA3NDg3MjRlYjFlNjhmMjA5Zjc3OWZhYTJjMzViNGQ0ZDFiNjYwNGE3
NGU2MmExODQ2MjQ5ZWE2MTkyOTU0YTVhZjEwYzcxZWJmZWE3OTk0ODE0MjQ0MWVkMzA3ZTlmNTJl
Nzk3YTUxYTgwMDdhNmY4N2I1N2M1MWY5ZTdlZWY1NGI3ZTRhMWY4MThiYTZhYzI1ZWU1OTM1YzIz
YjMyNTNkNmQ5ZDIyMjI2MmM3OWNjZGI3MTQ3ZDljMDc1MjdjMjJmZTdhNGFiOTFhZjIwNDc5ZWRm
NTkzMGIzYzA1M2MwYTBiMjcwOTJjZmI1MzIwMzYzM2QwMWRjZjZlMzMzYjViZTdjMTkzM2MzMjFj
OTUzZjk2MmI5MzRlYmVmZDlkZjhjY2E2YzBhMjVmY2Q1ZmI5NjEwNTQzNWM0MmQ5OTAyNDA2Zjgy
YmM4ZGFhOGVjMTJmYTg1ZDlhZmE2NWFkYmZlM2Y2MDgyOGVmNjRhZGFmNDNhZDhlM2IwYWYxMDRj
YmZhZmQ5OTQzMjM3MzJiYmEwOGY4NGQ1Y2FjMWQxNTdiMjc2MjMzZGZmZWNhZmU0Nzk0MmI4M2M4
NWVhZDZkNTg4NmM2YmFkZjUzNGQ0YTMyZDNmNTQ1ZTgwMzJkZDVlNDE5ZDdiZmYzYWNkZTJjMzdh
OTZmYzM0ZmRhODc0N2Q4OTUwMGJmOWY3ZWY0NTg3M2M2YjNiMjc0MWFhZjc0ZmY5NmEyZjk1MDAy
OGYzOGViNjJmMWJlOTM2ZmUwYTk5NGViZmE5MjgwMjFjMGM5NjE3MmQ4NDU4NGUiKTsKLQotZGVi
dWcoIkltcG9ydGluZyBhbiB1bndyYXBwaW5nIGtleS4uLiIpOwotY3J5cHRvLnN1YnRsZS5pbXBv
cnRLZXkoInJhdyIsIHVud3JhcHBpbmdLZXlPY3RldHMsICJBRVMtQ0JDIiwgbm9uRXh0cmFjdGFi
bGUsIFsidW53cmFwS2V5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgdW53cmFwcGlu
Z0tleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgidW53cmFwcGluZ0tleS5hbGdvcml0aG0ubmFt
ZSIsICInQUVTLUNCQyciKTsKLSAgICB2YXIgdW53cmFwQWxnb3JpdGhtID0ge25hbWU6ICJBRVMt
Q0JDIiwgaXY6IGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBi
MGMwZDBlMGYiKX07Ci0gICAgZGVidWcoIlVud3JhcHBpbmcgYSBrZXkuLi4iKTsKLSAgICByZXR1
cm4gY3J5cHRvLnN1YnRsZS51bndyYXBLZXkoImp3ayIsIHdyYXBwZWRLZXksIHVud3JhcHBpbmdL
ZXksIHVud3JhcEFsZ29yaXRobSwgbnVsbCwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnki
LCAiZW5jcnlwdCIsICJkZWNyeXB0IiwgIndyYXAiLCAidW53cmFwIl0pOwotfSkudGhlbihmdW5j
dGlvbihyZXN1bHQpIHsKLSAgICB1bndyYXBwZWRLZXkgPSByZXN1bHQ7Ci0KLSAgICBzaG91bGRC
ZSgidW53cmFwcGVkS2V5LnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgS2V5XSciKTsKLSAgICBzaG91
bGRCZSgidW53cmFwcGVkS2V5LnR5cGUiLCAiJ3B1YmxpYyciKTsKLSAgICBzaG91bGRCZSgidW53
cmFwcGVkS2V5LnVzYWdlcyIsICJbJ3NpZ24nLCd2ZXJpZnknXSIpOwotICAgIHNob3VsZEJlKCJ1
bndyYXBwZWRLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ1JTQVNTQS1QS0NTMS12MV81JyIpOwotICAg
IHNob3VsZEJlKCJ1bndyYXBwZWRLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIp
OwotICAgIHNob3VsZEJlKCJCYXNlNjRVUkwuc3RyaW5naWZ5KHVud3JhcHBlZEtleS5hbGdvcml0
aG0ucHVibGljRXhwb25lbnQpIiwgInB1YmxpY0tleUpTT04uZSIpOwotICAgIHNob3VsZEJlKCJ1
bndyYXBwZWRLZXkuYWxnb3JpdGhtLmhhc2gubmFtZSIsICInU0hBLTI1NiciKTsKLSAgICBzaG91
bGRCZSgidW53cmFwcGVkS2V5LmV4dHJhY3RhYmxlIiwgImZhbHNlIik7Ci0gICAgZmluaXNoSlNU
ZXN0KCk7Ci19KTsKLQotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy13cmFwLXJzYS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtd3JhcC1yc2EtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYTM0ZmRmYTUzM2EwNDlmNzA2NjAxYmFm
MDgwMzFmM2U0ODY1ZmI1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy13cmFwLXJzYS1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi1UZXN0IHdyYXBwaW5nIGFuIFJT
QSBrZXkgd2l0aCBBRVMtQ0JDLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotSW1w
b3J0aW5nIGEga2V5IHRvIHdyYXAuLi4KLVBBU1Mga2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FT
U0EtUEtDUzEtdjFfNScKLUltcG9ydGluZyBhIGtleSBlbmNyeXB0aW9uIGtleS4uLgotUEFTUyB3
cmFwcGluZ0tleS5hbGdvcml0aG0ubmFtZSBpcyAnQUVTLUNCQycKLVBBU1Mgd3JhcHBlZEtleS50
b1N0cmluZygpIGlzICdbb2JqZWN0IEFycmF5QnVmZmVyXScKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
cnlwdG8vc3VidGxlL2Flcy1jYmMtd3JhcC1yc2Etbm9uLWV4dHJhY3RhYmxlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy13cmFwLXJzYS1ub24tZXh0cmFj
dGFibGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MjZhNjQ4
YTcwMzE0NTU2MmFlMjlhYmM4ZWE0NzkyYjM0ODc1ZmUxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNi
Yy13cmFwLXJzYS1ub24tZXh0cmFjdGFibGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMTUgKzAsMCBAQAotVGVzdCB3cmFwcGluZyBhbiBSU0Ega2V5IHdpdGggQUVTLUNCQy4KLQot
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUltcG9ydGluZyBhIGtleSB0byB3cmFwLi4u
Ci1QQVNTIGtleS5hbGdvcml0aG0ubmFtZSBpcyAnUlNBU1NBLVBLQ1MxLXYxXzUnCi1JbXBvcnRp
bmcgYSBrZXkgZW5jcnlwdGlvbiBrZXkuLi4KLVBBU1Mgd3JhcHBpbmdLZXkuYWxnb3JpdGhtLm5h
bWUgaXMgJ0FFUy1DQkMnCi13cmFwcGluZyB0aGUga2V5Li4uCi1QQVNTIFJlamVjdGVkCi1QQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLW5vbi1leHRyYWN0
YWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLW5v
bi1leHRyYWN0YWJsZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZDUxMTcz
NGY1MWNhZWZiZWM4ZDI2YWJmNGU4MTZlNTBhYWRiZDc0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNi
Yy13cmFwLXJzYS1ub24tZXh0cmFjdGFibGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUyICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3Jp
cHRpb24oIlRlc3Qgd3JhcHBpbmcgYW4gUlNBIGtleSB3aXRoIEFFUy1DQkMuIik7Ci0KLWpzVGVz
dElzQXN5bmMgPSB0cnVlOwotCi12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotdmFyIG5vbkV4dHJh
Y3RhYmxlID0gZmFsc2U7Ci0KLXZhciBwdWJsaWNLZXlKU09OID0gewotICAgIGt0eTogIlJTQSIs
Ci0gICAgYWxnOiAiUlMyNTYiLAotICAgIG46ICJyY0NVQ3Y3T2MxSFZhbTFESWhDenFrblRoV2F3
T3A4UUxrOFppeTJwMTBCeWpRRkNham9GaXl1QVdsLVIxV1haYWY0eGl0TFJyYWNUOWFncHpJemMt
TWJMU0hJR2dXUUdPMjFsR2lJbXk1ZnRaLUQ4YkhBcVJ6MnkxNXB6RDRjNENFb3U3WFNTTERvUm5S
MFFHNU1zRGhENnMyZ1Y5bXdIa3J0a0N4dE1XZEJpLTc3YXM4d0dtbE5SbGRjT1NnWkRMSzhVbkNT
Z0ExT2d1Wjk4OWJGeWM4dE9PRUliMHhVU2ZQU3ozTFBTQ255WXo2OGFEam1LVmVOSC1pZzg1N09T
Y3lXYkd5RXkzQml3NjRxdW4zanVVbE5Xc0ozem5na09kdGVZV3l0eDVRcjRYS05zNlItTXl5cTcy
S1VwMDJtSkRaaWl5aWdseE1MX2kzLV9DZWVjQ3ciLAotICAgIGU6ICJBUUFCIiwKLSAgICBleHQ6
IGZhbHNlLAotICAgIHVzZTogInNpZyIKLX07Ci0KLXZhciBqd2tLZXlBc0FycmF5QnVmZmVyID0g
YXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHVibGljS2V5SlNPTikpOwotdmFyIHdy
YXBwaW5nS2V5T2N0ZXRzID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCIyYTAwZTBlNzc2ZTk0ZTRk
Yzg5YmY5NDdjZWJkZWJlMSIpOwotCi1kZWJ1ZygiSW1wb3J0aW5nIGEga2V5IHRvIHdyYXAuLi4i
KTsKLWNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tLZXlBc0FycmF5QnVmZmVyLCBu
dWxsLCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3Vs
dCkgewotICAgIGtleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5uYW1l
IiwgIidSU0FTU0EtUEtDUzEtdjFfNSciKTsKLSAgICBkZWJ1ZygiSW1wb3J0aW5nIGEga2V5IGVu
Y3J5cHRpb24ga2V5Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJy
YXciLCB3cmFwcGluZ0tleU9jdGV0cywgIkFFUy1DQkMiLCBub25FeHRyYWN0YWJsZSwgWyJ3cmFw
S2V5Il0pOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB3cmFwcGluZ0tleSA9IHJl
c3VsdDsKLSAgICBzaG91bGRCZSgid3JhcHBpbmdLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FFUy1D
QkMnIik7Ci0gICAgdmFyIHdyYXBBbGdvcml0aG0gPSB7bmFtZTogIkFFUy1DQkMiLCBpdjogaGV4
U3RyaW5nVG9VaW50OEFycmF5KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIpfTsK
LSAgICBkZWJ1Zygid3JhcHBpbmcgdGhlIGtleS4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3Vi
dGxlLndyYXBLZXkoImp3ayIsIGtleSwgd3JhcHBpbmdLZXksIHdyYXBBbGdvcml0aG0pOwotfSku
dGhlbih1bmRlZmluZWQsIGZ1bmN0aW9uKCkgewotICAgIHRlc3RQYXNzZWQoIlJlamVjdGVkIik7
Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLQotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy13cmFwLXJz
YS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3MWY3OGE2ODBjZjdlNzUwYjM5ZjBlY2Qy
NGNiMjY1NDhiOGYzZWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IHdyYXBwaW5nIGFuIFJTQSBrZXkgd2l0
aCBBRVMtQ0JDLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGV4dHJhY3RhYmxl
ID0gdHJ1ZTsKLXZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOwotCi12YXIgcHVibGljS2V5SlNP
TiA9IHsKLSAgICBrdHk6ICJSU0EiLAotICAgIGFsZzogIlJTMjU2IiwKLSAgICBuOiAicmNDVUN2
N09jMUhWYW0xREloQ3pxa25UaFdhd09wOFFMazhaaXkycDEwQnlqUUZDYWpvRml5dUFXbC1SMVdY
WmFmNHhpdExScmFjVDlhZ3B6SXpjLU1iTFNISUdnV1FHTzIxbEdpSW15NWZ0Wi1EOGJIQXFSejJ5
MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVNc0RoRDZzMmdWOW13SGtydGtDeHRNV2RCaS03N2Fz
OHdHbWxOUmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5ODliRnljOHRPT0VJYjB4VVNmUFN6M0xQU0Nu
eVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5M0JpdzY0cXVuM2p1VWxOV3NKM3puZ2tPZHRl
WVd5dHg1UXI0WEtOczZSLU15eXE3MktVcDAybUpEWmlpeWlnbHhNTF9pMy1fQ2VlY0N3IiwKLSAg
ICBlOiAiQVFBQiIsCi0gICAgZXh0OiB0cnVlLAotICAgIHVzZTogInNpZyIKLX07Ci0KLXZhciBq
d2tLZXlBc0FycmF5QnVmZmVyID0gYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHVi
bGljS2V5SlNPTikpOwotdmFyIHdyYXBwaW5nS2V5T2N0ZXRzID0gaGV4U3RyaW5nVG9VaW50OEFy
cmF5KCIyYTAwZTBlNzc2ZTk0ZTRkYzg5YmY5NDdjZWJkZWJlMSIpOwotCi1kZWJ1ZygiSW1wb3J0
aW5nIGEga2V5IHRvIHdyYXAuLi4iKTsKLWNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBq
d2tLZXlBc0FycmF5QnVmZmVyLCBudWxsLCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJd
KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtleSA9IHJlc3VsdDsKLSAgICBzaG91bGRC
ZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidSU0FTU0EtUEtDUzEtdjFfNSciKTsKLSAgICBkZWJ1
ZygiSW1wb3J0aW5nIGEga2V5IGVuY3J5cHRpb24ga2V5Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0
by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCB3cmFwcGluZ0tleU9jdGV0cywgIkFFUy1DQkMiLCBu
b25FeHRyYWN0YWJsZSwgWyJ3cmFwS2V5Il0pOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsK
LSAgICB3cmFwcGluZ0tleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgid3JhcHBpbmdLZXkuYWxn
b3JpdGhtLm5hbWUiLCAiJ0FFUy1DQkMnIik7Ci0gICAgdmFyIHdyYXBBbGdvcml0aG0gPSB7bmFt
ZTogIkFFUy1DQkMiLCBpdjogaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMDAxMDIwMzA0MDUwNjA3
MDgwOTBhMGIwYzBkMGUwZiIpfTsKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS53cmFwS2V5KCJq
d2siLCBrZXksIHdyYXBwaW5nS2V5LCB3cmFwQWxnb3JpdGhtKTsKLX0pLnRoZW4oZnVuY3Rpb24o
cmVzdWx0KSB7Ci0gICAgd3JhcHBlZEtleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgid3JhcHBl
ZEtleS50b1N0cmluZygpIiwgIidbb2JqZWN0IEFycmF5QnVmZmVyXSciKTsKLSAgICBmaW5pc2hK
U1Rlc3QoKTsKLX0pOwotCi08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXdyb25nLWtleS1jbGFzcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtd3Jvbmcta2V5LWNs
YXNzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDU0YzBmOTE4
YzcxNTg1NDA3NDA4NDQwODQ3MmU2YjRkZTcxZTU1MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMt
d3Jvbmcta2V5LWNsYXNzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAg
QEAKLVRlc3QgY2FsbGluZyBBRVMtQ0JDIGVuY3J5cHQgd2l0aCBhIEhNQUMga2V5LgotCi1PbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotSW1wb3J0aW5nIGEgcmF3IEhNQUMga2V5IGZyb20g
c3RyaW5nIGxpdGVyYWwuLi4KLVVzaW5nIHRoZSBrZXkgdG8gZW5jcnlwdCBwbGFpbnRleHQuLi4K
LVBBU1MgY3J5cHRvLnN1YnRsZS5lbmNyeXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtl
eSwgcGxhaW50ZXh0KSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3IgKERPTSBFeGNl
cHRpb24gOSk6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXdyb25nLWtleS1jbGFzcy5odG1sIGIvTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXdyb25nLWtleS1jbGFzcy5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMjRiM2U3MmVlZWM2ZTlmZTY2OTVkNDVkOTU0MGU1ZGY0
MWQ5Mzc0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy13cm9uZy1rZXktY2xhc3MuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgY2FsbGluZyBBRVMtQ0JDIGVuY3J5cHQg
d2l0aCBhIEhNQUMga2V5LiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGl2ID0g
aGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIp
OwotdmFyIHBsYWludGV4dCA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiNmJjMWJlZTIyZTQwOWY5
NmU5M2Q3ZTExNzM5MzE3MmFhZTJkOGE1NzFlMDNhYzljOWViNzZmYWM0NWFmOGU1MTMwYzgxYzQ2
YTM1Y2U0MTFlNWZiYzExOTFhMGE1MmVmZjY5ZjI0NDVkZjRmOWIxN2FkMmI0MTdiZTY2YzM3MTAi
KTsKLXZhciBobWFjS2V5ID0gYXNjaWlUb1VpbnQ4QXJyYXkoJ2EnKTsKLXZhciBleHRyYWN0YWJs
ZSA9IHRydWU7Ci0KLWRlYnVnKCJJbXBvcnRpbmcgYSByYXcgSE1BQyBrZXkgZnJvbSBzdHJpbmcg
bGl0ZXJhbC4uLiIpOwotY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGhtYWNLZXksIHtu
YW1lOiAnaG1hYycsIGhhc2g6IHtuYW1lOiAnc2hhLTEnfX0sIGV4dHJhY3RhYmxlLCBbInNpZ24i
LCAidmVyaWZ5IiwgImVuY3J5cHQiLCAiZGVjcnlwdCJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkg
ewotICAgIGtleSA9IHJlc3VsdDsKLSAgICBkZWJ1ZygiVXNpbmcgdGhlIGtleSB0byBlbmNyeXB0
IHBsYWludGV4dC4uLiIpOwotICAgIHNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmVuY3J5cHQo
e25hbWU6ICJhZXMtY2JjIiwgaXY6IGl2fSwga2V5LCBwbGFpbnRleHQpJykKLQotICAgIGZpbmlz
aEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtZXhwb3J0LWtleS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1leHBvcnQta2V5LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODNlZDExMzM3ZDA5MjZjZjRiYmE4MDE4ODg2
ZmFmMzYyMDZhOWMwNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1leHBvcnQta2V5LWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLVRlc3QgZXhwb3J0aW5nIGFuIEFFUyBr
ZXkuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGNyeXB0by5zdWJ0bGUu
ZXhwb3J0S2V5KCJyYXciKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KLVBBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoInJhdyIsIG51bGwpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNyeXB0by5zdWJ0bGUuZXhw
b3J0S2V5KCJyYXciLCB1bmRlZmluZWQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IuCi1QQVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJyYXciLCB7fSkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRL
ZXkoInJhdyIsIDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi0KLUlt
cG9ydGluZyBhIEpXSyBrZXkuLi4KLVBBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkobnVsbCwg
a2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQuCi1QQVNT
IGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KHVuZGVmaW5lZCwga2V5KSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQuCi1QQVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0
S2V5KHt9LCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVua25vd24ga2V5IGZvcm1h
dC4KLVBBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoIiIsIGtleSkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0LgotUEFTUyBjcnlwdG8uc3VidGxlLmV4cG9y
dEtleSgiZm9vYmFyIiwga2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtl
eSBmb3JtYXQuCi0KLUV4cG9ydGluZyB0aGUga2V5IGFzIHJhdyBkYXRhLi4uCi1QQVNTIGJ5dGVz
VG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZXhwb3J0ZWREYXRhKSkgaXMgJzhlNzNiMGY3ZGEw
ZTY0NTJjODEwZjMyYjgwOTA3OWU1NjJmOGVhZDI1MjJjNmI3YicKLUV4cG9ydGluZyB0aGUga2V5
IGFzIEpXSy4uLgotUEFTUyBleHBvcnRlZEpXSy5rdHkgaXMgJ29jdCcKLVBBU1MgZXhwb3J0ZWRK
V0suayBpcyAnam5Pdzk5b09aRkxJRVBNcmdKQjU1V0w0NnRKU0xHdDcnCi1QQVNTIGV4cG9ydGVk
SldLLmFsZyBpcyAnQTE5MkNCQycKLVBBU1MgZXhwb3J0ZWRKV0suZXh0IGlzIHRydWUKLVBBU1Mg
ZXhwb3J0ZWRKV0sudXNlIGlzIHVuZGVmaW5lZAotUEFTUyBleHBvcnRlZEpXSy5rZXlfb3BzIGlz
IFsnZW5jcnlwdCcsICdkZWNyeXB0JywgJ3dyYXBLZXknLCAndW53cmFwS2V5J10KLQotSW1wb3J0
aW5nIGEga2V5IHRoYXQncyBub3QgZXh0cmFjdGFibGUuLi4KLQotVHJ5aW5nIHRvIGV4cG9ydCBh
cyByYXcuLi4KLVBBU1MgUmVqZWN0ZWQsIGFzIGV4cGVjdGVkCi1UcnlpbmcgdG8gZXhwb3J0IGFz
IGp3ay4uLgotUEFTUyBSZWplY3RlZCwgYXMgZXhwZWN0ZWQKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
cnlwdG8vc3VidGxlL2Flcy1leHBvcnQta2V5Lmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL2Flcy1leHBvcnQta2V5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5
ZDk2MTZjNzY3MjE4OWJkYjZiNTY2YzA2OGU5YmE0ZjdmMjQ3NjYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9h
ZXMtZXhwb3J0LWtleS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODYgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgot
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBl
eHBvcnRpbmcgYW4gQUVTIGtleS4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBl
eHRyYWN0YWJsZSA9IHRydWU7Ci12YXIgbm9uRXh0cmFjdGFibGUgPSBmYWxzZTsKLQotdmFyIGp3
a0tleSA9IHsKLSAgICBrdHk6ICJvY3QiLAotICAgIGs6ICJqbk93OTlvT1pGTElFUE1yZ0pCNTVX
TDQ2dEpTTEd0NyIKLX07Ci0KLXZhciBqd2tLZXlBc0FycmF5QnVmZmVyID0gYXNjaWlUb1VpbnQ4
QXJyYXkoSlNPTi5zdHJpbmdpZnkoandrS2V5KSk7Ci0KLXNob3VsZFRocm93KCdjcnlwdG8uc3Vi
dGxlLmV4cG9ydEtleSgicmF3IiknKTsKLXNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmV4cG9y
dEtleSgicmF3IiwgbnVsbCknKTsKLXNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmV4cG9ydEtl
eSgicmF3IiwgdW5kZWZpbmVkKScpOwotc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0
S2V5KCJyYXciLCB7fSknKTsKLXNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgi
cmF3IiwgMSknKTsKLQotZGVidWcoIlxuSW1wb3J0aW5nIGEgSldLIGtleS4uLiIpOwotY3J5cHRv
LnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a0tleUFzQXJyYXlCdWZmZXIsICJBRVMtQ0JDIiwg
ZXh0cmFjdGFibGUsIFsnZW5jcnlwdCcsICdkZWNyeXB0JywgJ3dyYXBLZXknLCAndW53cmFwS2V5
J10pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0OwotCi0gICAgc2hv
dWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KG51bGwsIGtleSknKTsKLSAgICBzaG91
bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkodW5kZWZpbmVkLCBrZXkpJyk7Ci0gICAg
c2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KHt9LCBrZXkpJyk7Ci0gICAgc2hv
dWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCIiLCBrZXkpJyk7Ci0gICAgc2hvdWxk
VGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJmb29iYXIiLCBrZXkpJyk7Ci0KLSAgICBk
ZWJ1ZygiXG5FeHBvcnRpbmcgdGhlIGtleSBhcyByYXcgZGF0YS4uLiIpOwotICAgIHJldHVybiBj
cnlwdG8uc3VidGxlLmV4cG9ydEtleSgicmF3Iiwga2V5KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVz
dWx0KSB7Ci0gICAgZXhwb3J0ZWREYXRhID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJieXRlc1Rv
SGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGV4cG9ydGVkRGF0YSkpIiwgIic4ZTczYjBmN2RhMGU2
NDUyYzgxMGYzMmI4MDkwNzllNTYyZjhlYWQyNTIyYzZiN2InIik7Ci0KLSAgICBkZWJ1ZygiRXhw
b3J0aW5nIHRoZSBrZXkgYXMgSldLLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZXhw
b3J0S2V5KCJqd2siLCBrZXkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBleHBv
cnRlZEpXSyA9IEpTT04ucGFyc2UoYnl0ZXNUb0FTQ0lJU3RyaW5nKHJlc3VsdCkpOwotICAgIHNo
b3VsZEJlKCJleHBvcnRlZEpXSy5rdHkiLCAiJ29jdCciKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0
ZWRKV0suayIsICInam5Pdzk5b09aRkxJRVBNcmdKQjU1V0w0NnRKU0xHdDcnIik7Ci0gICAgc2hv
dWxkQmUoImV4cG9ydGVkSldLLmFsZyIsICInQTE5MkNCQyciKTsKLSAgICBzaG91bGRCZSgiZXhw
b3J0ZWRKV0suZXh0IiwgInRydWUiKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sudXNlIiwg
InVuZGVmaW5lZCIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rZXlfb3BzIiwgIlsnZW5j
cnlwdCcsICdkZWNyeXB0JywgJ3dyYXBLZXknLCAndW53cmFwS2V5J10iKTsKLQotICAgIGRlYnVn
KCJcbkltcG9ydGluZyBhIGtleSB0aGF0J3Mgbm90IGV4dHJhY3RhYmxlLi4uIik7Ci0gICAgcmV0
dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tLZXlBc0FycmF5QnVmZmVyLCAi
QUVTLUNCQyIsIG5vbkV4dHJhY3RhYmxlLCBbJ2VuY3J5cHQnLCAnZGVjcnlwdCcsICd3cmFwS2V5
JywgJ3Vud3JhcEtleSddKQotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBrZXkgPSBy
ZXN1bHQ7Ci0KLSAgICBkZWJ1ZygiXG5UcnlpbmcgdG8gZXhwb3J0IGFzIHJhdy4uLiIpOwotICAg
IHJldHVybiBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgicmF3Iiwga2V5KTsKLX0pLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7Ci0gICAgdGVzdEZhaWxlZCgiUHJvbWlzZSB3YXNuJ3QgcmVqZWN0ZWQi
KTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0sIGZ1bmN0aW9uKCkgewotICAgIHRlc3RQYXNzZWQo
IlJlamVjdGVkLCBhcyBleHBlY3RlZCIpOwotCi0gICAgZGVidWcoIlRyeWluZyB0byBleHBvcnQg
YXMgandrLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJqd2siLCBr
ZXkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB0ZXN0RmFpbGVkKCJQcm9taXNl
IHdhc24ndCByZWplY3RlZCIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSwgZnVuY3Rpb24oKSB7
Ci0gICAgdGVzdFBhc3NlZCgiUmVqZWN0ZWQsIGFzIGV4cGVjdGVkIik7Ci0KLSAgICBmaW5pc2hK
U1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWt3LWtleS1tYW5pcHVsYXRpb24tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMta3cta2V5LW1hbmlwdWxhdGlv
bi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjZWJmMzBkMjcx
OTRjYjNiZTBhNTg1OGJhNDJiYWU3MTFkNzNkMmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMta3cta2V5
LW1hbmlwdWxhdGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBA
Ci1UZXN0IGdlbmVyYXRpbmcsIGltcG9ydGluZyBhbmQgZXhwb3J0aW5nIGtleXMgZm9yIEFFUy1L
Vy4gVGVzdCB0aGF0IHRoZXkgY2FuJ3QgYmUgdXNlZCB3aXRoIGFub3RoZXIgYWxnb3JpdGhtLgot
Ci1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotR2VuZXJhdGluZyBhIGtleS4uLgotUEFT
UyBrZXkudG9TdHJpbmcoKSBpcyAnW29iamVjdCBLZXldJwotUEFTUyBrZXkudHlwZSBpcyAnc2Vj
cmV0JwotUEFTUyBrZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0FFUy1LVycKLVBBU1Mga2V5LmFsZ29y
aXRobS5sZW5ndGggaXMgMjU2Ci0KLVRlc3RpbmcgdGhhdCB0aGUga2V5IGNhbid0IGJlIHVzZWQg
d2l0aCBBRVMtQ0JDLi4uCi1QQVNTIGNyeXB0by5zdWJ0bGUuZW5jcnlwdCh7bmFtZTogImFlcy1j
YmMiLCBpdjogaXZ9LCBrZXksIGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAiKSkgdGhyZXcgZXhj
ZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yIChET00gRXhjZXB0aW9uIDkpOiBUaGUgb3BlcmF0aW9u
IGlzIG5vdCBzdXBwb3J0ZWQuLgotCi1FeHBvcnRpbmcgdGhlIGtleSB0byByYXcuLi4KLVBBU1Mg
ZXhwb3J0ZWRLZXkudG9TdHJpbmcoKSBpcyAnW29iamVjdCBBcnJheUJ1ZmZlcl0nCi1JbXBvcnRp
bmcgaXQgYmFjay4uLgotUEFTUyBpbXBvcnRlZEtleS50b1N0cmluZygpIGlzICdbb2JqZWN0IEtl
eV0nCi1QQVNTIGltcG9ydGVkS2V5LnR5cGUgaXMgJ3NlY3JldCcKLVBBU1MgaW1wb3J0ZWRLZXku
YWxnb3JpdGhtLm5hbWUgaXMgJ0FFUy1LVycKLVBBU1MgaW1wb3J0ZWRLZXkuYWxnb3JpdGhtLmxl
bmd0aCBpcyAyNTYKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01Q
TEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1rdy1rZXkt
bWFuaXB1bGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1rdy1rZXkt
bWFuaXB1bGF0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExYzBlY2I1
MmE2ODE3YTg2NDMwODQxZTFiNGY2MjAxOTZkZmY1MTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMta3ct
a2V5LW1hbmlwdWxhdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1v
bi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVz
dCBnZW5lcmF0aW5nLCBpbXBvcnRpbmcgYW5kIGV4cG9ydGluZyBrZXlzIGZvciBBRVMtS1cuIFRl
c3QgdGhhdCB0aGV5IGNhbid0IGJlIHVzZWQgd2l0aCBhbm90aGVyIGFsZ29yaXRobS4iKTsKLQot
anNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci0KLWRlYnVn
KCJHZW5lcmF0aW5nIGEga2V5Li4uIik7Ci1jcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1l
OiAiYWVzLWt3IiwgbGVuZ3RoOiAyNTZ9LCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5
cHQiLCAid3JhcEtleSIsICJ1bndyYXBLZXkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAg
ICBrZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImtleS50b1N0cmluZygpIiwgIidbb2JqZWN0
IEtleV0nIik7Ci0gICAgc2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7Ci0gICAgc2hv
dWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIsICInQUVTLUtXJyIpOwotICAgIHNob3VsZEJlKCJr
ZXkuYWxnb3JpdGhtLmxlbmd0aCIsICIyNTYiKTsKLQotICAgIGRlYnVnKCJcblRlc3RpbmcgdGhh
dCB0aGUga2V5IGNhbid0IGJlIHVzZWQgd2l0aCBBRVMtQ0JDLi4uIik7Ci0gICAgaXYgPSBoZXhT
dHJpbmdUb1VpbnQ4QXJyYXkoIjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmIik7Ci0g
ICAgc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZW5jcnlwdCh7bmFtZTogImFlcy1jYmMiLCBp
djogaXZ9LCBrZXksIGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAiKSknKTsKLQotICAgIGRlYnVn
KCJcbkV4cG9ydGluZyB0aGUga2V5IHRvIHJhdy4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3Vi
dGxlLmV4cG9ydEtleSgncmF3Jywga2V5KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0g
ICAgZXhwb3J0ZWRLZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkS2V5LnRvU3Ry
aW5nKCkiLCAiJ1tvYmplY3QgQXJyYXlCdWZmZXJdJyIpOwotICAgIGRlYnVnKCJJbXBvcnRpbmcg
aXQgYmFjay4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgncmF3Jywg
ZXhwb3J0ZWRLZXksICJhZXMta3ciLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQi
LCAid3JhcEtleSIsICJ1bndyYXBLZXkiXSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewot
ICAgIGltcG9ydGVkS2V5ID0gcmVzdWx0OwotCi0gICAgc2hvdWxkQmUoImltcG9ydGVkS2V5LnRv
U3RyaW5nKCkiLCAiJ1tvYmplY3QgS2V5XSciKTsKLSAgICBzaG91bGRCZSgiaW1wb3J0ZWRLZXku
dHlwZSIsICInc2VjcmV0JyIpOwotICAgIHNob3VsZEJlKCJpbXBvcnRlZEtleS5hbGdvcml0aG0u
bmFtZSIsICInQUVTLUtXJyIpOwotICAgIHNob3VsZEJlKCJpbXBvcnRlZEtleS5hbGdvcml0aG0u
bGVuZ3RoIiwgIjI1NiIpOwotCi0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0Pgot
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L2Flcy1rdy13cmFwLXVud3JhcC1hZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRv
L3N1YnRsZS9hZXMta3ctd3JhcC11bndyYXAtYWVzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNDRlZTIwNWVkNTU4OTJiYmM1YWE5ZjhiMTNlZDAxNzQxYjNkOTRi
Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1rdy13cmFwLXVud3JhcC1hZXMtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGVzdCB3cmFwcGluZyBhbmQgdW53cmFwcGlu
ZyBrZXlzIHdpdGggQUVTLUtXLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotSW1w
b3J0aW5nIGtleSBlbmNyeXB0aW9uIGtleS4uLgotSW1wb3J0aW5nIGEga2V5IHRvIGJlIHdyYXBw
ZWQuLi4KLVdyYXBwaW5nIGl0Li4uCi1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcod3JhcHBlZEtleSkg
aXMgJzFmYTY4YjBhODExMmI0NDdhZWYzNGJkOGZiNWE3YjgyOWQzZTg2MjM3MWQyY2ZlNScKLVVu
d3JhcHBpbmcgaXQuLi4KLVBBU1MgdW53cmFwcGVkS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3Qg
S2V5XScKLVBBU1MgdW53cmFwcGVkS2V5LnR5cGUgaXMgJ3NlY3JldCcKLVBBU1MgdW53cmFwcGVk
S2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKLVBBU1MgdW53cmFwcGVkS2V5LmFsZ29yaXRobS5uYW1l
IGlzICdBRVMtQ0JDJwotUEFTUyB1bndyYXBwZWRLZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyAxMjgK
LVBBU1MgdW53cmFwcGVkS2V5LnVzYWdlcyBpcyBbJ2RlY3J5cHQnLCAnZW5jcnlwdCcsICd1bndy
YXBLZXknLCAnd3JhcEtleSddCi1FeHBvcnRpbmcgaXQuLi4KLVBBU1MgYnl0ZXNUb0hleFN0cmlu
Zyh1bndyYXBwZWRLZXlEYXRhKSBpcyBieXRlc1RvSGV4U3RyaW5nKGtleURhdGEpCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMta3ctd3JhcC11bndyYXAtYWVzLmh0bWwgYi9M
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1rdy13cmFwLXVud3JhcC1hZXMuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWM3ZWUyZjU4ODIwMzZhZWRlZmM5Y2YzMjg4NDcz
YTAwZTg0OTNkOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1rdy13cmFwLXVud3JhcC1hZXMuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3Qgd3JhcHBpbmcgYW5kIHVud3JhcHBp
bmcga2V5cyB3aXRoIEFFUy1LVy4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBr
ZWtEYXRhID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBBMEIw
QzBEMEUwRiIpOwotdmFyIGtleURhdGEgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAwMTEyMjMz
NDQ1NTY2Nzc4ODk5QUFCQkNDRERFRUZGIik7Ci12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotCi1k
ZWJ1ZygiSW1wb3J0aW5nIGtleSBlbmNyeXB0aW9uIGtleS4uLiIpOwotY3J5cHRvLnN1YnRsZS5p
bXBvcnRLZXkoInJhdyIsIGtla0RhdGEsICJhZXMta3ciLCBleHRyYWN0YWJsZSwgWyJ3cmFwS2V5
IiwgInVud3JhcEtleSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtlayA9IHJlc3Vs
dDsKLQotICAgIGRlYnVnKCJJbXBvcnRpbmcgYSBrZXkgdG8gYmUgd3JhcHBlZC4uLiIpOwotICAg
IHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3Iiwga2V5RGF0YSwgImFlcy1jYmMi
LCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSIsICJ1bndyYXBL
ZXkiXSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtleSA9IHJlc3VsdDsKLQot
ICAgIGRlYnVnKCJXcmFwcGluZyBpdC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLndy
YXBLZXkoInJhdyIsIGtleSwga2VrLCAiYWVzLWt3Iik7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3Vs
dCkgewotICAgIHdyYXBwZWRLZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhT
dHJpbmcod3JhcHBlZEtleSkiLCAiJzFmYTY4YjBhODExMmI0NDdhZWYzNGJkOGZiNWE3YjgyOWQz
ZTg2MjM3MWQyY2ZlNSciKTsgLy8gUmVzdWx0IGZyb20gUkZDIDMzOTQuCi0KLSAgICBkZWJ1Zygi
VW53cmFwcGluZyBpdC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLnVud3JhcEtleSgi
cmF3Iiwgd3JhcHBlZEtleSwga2VrLCAiYWVzLWt3IiwgImFlcy1jYmMiLCBleHRyYWN0YWJsZSwg
WyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSIsICJ1bndyYXBLZXkiXSk7Ci19KS50aGVu
KGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHVud3JhcHBlZEtleSA9IHJlc3VsdDsKLSAgICBzaG91
bGRCZSgidW53cmFwcGVkS2V5LnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgS2V5XSciKTsKLSAgICBz
aG91bGRCZSgidW53cmFwcGVkS2V5LnR5cGUiLCAiJ3NlY3JldCciKTsKLSAgICBzaG91bGRCZSgi
dW53cmFwcGVkS2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKLSAgICBzaG91bGRCZSgidW53cmFw
cGVkS2V5LmFsZ29yaXRobS5uYW1lIiwgIidBRVMtQ0JDJyIpOwotICAgIHNob3VsZEJlKCJ1bndy
YXBwZWRLZXkuYWxnb3JpdGhtLmxlbmd0aCIsICIxMjgiKTsKLSAgICBzaG91bGRCZSgidW53cmFw
cGVkS2V5LnVzYWdlcyIsICJbJ2RlY3J5cHQnLCAnZW5jcnlwdCcsICd1bndyYXBLZXknLCAnd3Jh
cEtleSddIik7Ci0KLSAgICBkZWJ1ZygiRXhwb3J0aW5nIGl0Li4uIik7Ci0gICAgcmV0dXJuIGNy
eXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJyYXciLCB1bndyYXBwZWRLZXkpOwotfSkudGhlbihmdW5j
dGlvbihyZXN1bHQpIHsKLSAgICB1bndyYXBwZWRLZXlEYXRhID0gcmVzdWx0OwotICAgIHNob3Vs
ZEJlKCJieXRlc1RvSGV4U3RyaW5nKHVud3JhcHBlZEtleURhdGEpIiwgImJ5dGVzVG9IZXhTdHJp
bmcoa2V5RGF0YSkiKTsKLQotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQot
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9h
ZXMtcG9zdE1lc3NhZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9h
ZXMtcG9zdE1lc3NhZ2UtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBmMGQwNTliZGNmZTMwOGRiMDMwYzE2YjRlMTBjMTU5NjQ3ZjQ1ZjNjLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvYWVzLXBvc3RNZXNzYWdlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICsw
LDAgQEAKLVRlc3Qgc2VuZGluZyBjcnlwdG8ga2V5cyB2aWEgcG9zdE1lc3NhZ2UuCi0KLU9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGtleS50eXBlIGlzICdzZWNyZXQnCi1QQVNT
IGtleS5leHRyYWN0YWJsZSBpcyB0cnVlCi1QQVNTIGtleS5hbGdvcml0aG0ubmFtZSBpcyAnQUVT
LUNCQycKLVBBU1Mga2V5LmFsZ29yaXRobS5sZW5ndGggaXMgMTI4Ci1QQVNTIGtleS51c2FnZXMg
aXMgWyJkZWNyeXB0IiwgImVuY3J5cHQiLCAic2lnbiIsICJ2ZXJpZnkiXQotUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLXBvc3RNZXNzYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9j
cnlwdG8vc3VidGxlL2Flcy1wb3N0TWVzc2FnZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBjMzA4Zjg5OTBkY2I2OWMxMDI2NTExZDc3ZTY0NDY0OTUxMWE0M2E0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvYWVzLXBvc3RNZXNzYWdlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5PgotPHNjcmlwdD4KLQotZGVzY3JpcHRpb24oIlRlc3Qgc2VuZGluZyBjcnlwdG8ga2V5
cyB2aWEgcG9zdE1lc3NhZ2UuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi13aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uKGV2dCkgewotICAgIGtleSA9IGV2
dC5kYXRhOwotICAgIHNob3VsZEJlKCJrZXkudHlwZSIsICInc2VjcmV0JyIpOwotICAgIHNob3Vs
ZEJlKCJrZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3Jp
dGhtLm5hbWUiLCAiJ0FFUy1DQkMnIik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubGVu
Z3RoIiwgIjEyOCIpOwotICAgIHNob3VsZEJlKCJrZXkudXNhZ2VzIiwgJ1siZGVjcnlwdCIsICJl
bmNyeXB0IiwgInNpZ24iLCAidmVyaWZ5Il0nKTsKLQotICAgIGZpbmlzaEpTVGVzdCgpOwotfSwg
ZmFsc2UpOwotCi1pbXBvcnRUZXN0S2V5cygpLnRoZW4oZnVuY3Rpb24oa2V5cykgewotICAgIHBv
c3RNZXNzYWdlKGtleXMuYWVzQ2JjLCAiKiIpOwotfSk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYXJndW1lbnQtY29u
dmVyc2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2FyZ3VtZW50
LWNvbnZlcnNpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
ODc3MWIyN2FmODk2MzBlMDg4YzY4ZjQ2Y2M3N2I3NzM1YTBmYjgxLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUv
YXJndW1lbnQtY29udmVyc2lvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzOCAr
MCwwIEBACi1UZXN0IGNyeXB0by5zdWJ0bGUgYXJndW1lbnQgY29udmVyc2lvbgotCi1PbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCi0KLQotCi1QYXNzaW5nIGFsZ29yaXRobSBuYW1lIGFzIGEgc3Ry
aW5nIG9iamVjdC4uLgotUEFTUyAuLi5zdWNjZWVkZWQKLQotUGFzc2luZyBhbGdvcml0aG0gbmFt
ZSBhcyBhIHN0cmluZyBvYmplY3QgaW4gYSBkaWN0aW9uYXJ5Li4uCi1QQVNTIC4uLnN1Y2NlZWRl
ZAotCi1QYXNzaW5nIGFsZ29yaXRobSBuYW1lIGFzIGFuIG9iamVjdCB3aXRoIHRvU3RyaW5nCi1Q
QVNTIC4uLnN1Y2NlZWRlZAotCi1QYXNzaW5nIGludmFsaWQgZGF0YSB0byBkaWdlc3QoKQotUEFT
UyBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30pIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgotUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2Vz
dCh7bmFtZTogJ3NoYS0xJ30sIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE9ubHkg
QXJyYXlCdWZmZXIgYW5kIEFycmF5QnVmZmVyVmlldyBvYmplY3RzIGNhbiBiZSBwYXNzZWQgYXMg
Q3J5cHRvT3BlcmF0aW9uRGF0YS4KLVBBU1MgY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdz
aGEtMSd9LCAxMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogT25seSBBcnJheUJ1ZmZlciBh
bmQgQXJyYXlCdWZmZXJWaWV3IG9iamVjdHMgY2FuIGJlIHBhc3NlZCBhcyBDcnlwdG9PcGVyYXRp
b25EYXRhLgotUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30sIFsxMF0p
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE9ubHkgQXJyYXlCdWZmZXIgYW5kIEFycmF5QnVm
ZmVyVmlldyBvYmplY3RzIGNhbiBiZSBwYXNzZWQgYXMgQ3J5cHRvT3BlcmF0aW9uRGF0YS4KLVBB
U1MgY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCBbbmV3IFVpbnQ4QXJyYXko
WzBdKV0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE9ubHkgQXJyYXlCdWZmZXIgYW5kIEFy
cmF5QnVmZmVyVmlldyBvYmplY3RzIGNhbiBiZSBwYXNzZWQgYXMgQ3J5cHRvT3BlcmF0aW9uRGF0
YS4KLQotUGFzc2luZyBpbnZhbGlkIGFsZ29yaXRobUlkZW50aWZpZXJzIHRvIGRpZ2VzdCgpCi1Q
QVNTIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHsgdG9TdHJpbmc6ZnVuY3Rpb24oKSB7IHJldHVybiAn
c2hhLTEnIH0gfSwgZGF0YSkgdGhyZXcgZXhjZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yIChET00g
RXhjZXB0aW9uIDkpOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgotUEFTUyBjcnlw
dG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJyd9LCBkYXRhKSB0aHJldyBleGNlcHRpb24gTm90U3Vw
cG9ydGVkRXJyb3IgKERPTSBFeGNlcHRpb24gOSk6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBv
cnRlZC4uCi1QQVNTIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiBudWxsfSwgZGF0YSkgdGhy
ZXcgZXhjZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yIChET00gRXhjZXB0aW9uIDkpOiBUaGUgb3Bl
cmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgotUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFt
ZTogdW5kZWZpbmVkfSwgZGF0YSkgdGhyZXcgZXhjZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yIChE
T00gRXhjZXB0aW9uIDkpOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgotUEFTUyBj
cnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYSd9LCBkYXRhKSB0aHJldyBleGNlcHRpb24g
Tm90U3VwcG9ydGVkRXJyb3IgKERPTSBFeGNlcHRpb24gOSk6IFRoZSBvcGVyYXRpb24gaXMgbm90
IHN1cHBvcnRlZC4uCi1QQVNTIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAxfSwgZGF0YSkg
dGhyZXcgZXhjZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yIChET00gRXhjZXB0aW9uIDkpOiBUaGUg
b3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgotUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCgn
JywgZGF0YSkgdGhyZXcgZXhjZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yIChET00gRXhjZXB0aW9u
IDkpOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgotUEFTUyBjcnlwdG8uc3VidGxl
LmRpZ2VzdChudWxsLCBkYXRhKSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3IgKERP
TSBFeGNlcHRpb24gOSk6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIGNy
eXB0by5zdWJ0bGUuZGlnZXN0KHVuZGVmaW5lZCwgZGF0YSkgdGhyZXcgZXhjZXB0aW9uIE5vdFN1
cHBvcnRlZEVycm9yIChET00gRXhjZXB0aW9uIDkpOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBw
b3J0ZWQuLgotUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCgxLCBkYXRhKSB0aHJldyBleGNlcHRp
b24gTm90U3VwcG9ydGVkRXJyb3IgKERPTSBFeGNlcHRpb24gOSk6IFRoZSBvcGVyYXRpb24gaXMg
bm90IHN1cHBvcnRlZC4uCi1QQVNTIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHt9LCBkYXRhKSB0aHJl
dyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3IgKERPTSBFeGNlcHRpb24gOSk6IFRoZSBvcGVy
YXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
Ci0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRs
ZS9hcmd1bWVudC1jb252ZXJzaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Fy
Z3VtZW50LWNvbnZlcnNpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjdk
Y2Y5ZWRkMjNlNTc1MmNhNTQ5YTEzMzZhODM5ODVmMGViOGIyMS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Fy
Z3VtZW50LWNvbnZlcnNpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21t
b24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRl
c3QgY3J5cHRvLnN1YnRsZSBhcmd1bWVudCBjb252ZXJzaW9uIik7Ci0KLWpzVGVzdElzQXN5bmMg
PSB0cnVlOwotCi1Qcm9taXNlLnJlc29sdmUobnVsbCkudGhlbihmdW5jdGlvbigpIHsKLSAgICBk
ZWJ1ZygiXG5QYXNzaW5nIGFsZ29yaXRobSBuYW1lIGFzIGEgc3RyaW5nIG9iamVjdC4uLiIpOwot
ICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdChuZXcgU3RyaW5nKCdzaGEtMScpLCBuZXcg
VWludDhBcnJheShbXSkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB0ZXN0UGFz
c2VkKCIuLi5zdWNjZWVkZWQiKTsKLSAgICBkZWJ1ZygiXG5QYXNzaW5nIGFsZ29yaXRobSBuYW1l
IGFzIGEgc3RyaW5nIG9iamVjdCBpbiBhIGRpY3Rpb25hcnkuLi4iKTsKLSAgICByZXR1cm4gY3J5
cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6IG5ldyBTdHJpbmcoJ3NoYS0xJyl9LCBuZXcgVWludDhB
cnJheShbXSkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB0ZXN0UGFzc2VkKCIu
Li5zdWNjZWVkZWQiKTsKLSAgICBkZWJ1ZygiXG5QYXNzaW5nIGFsZ29yaXRobSBuYW1lIGFzIGFu
IG9iamVjdCB3aXRoIHRvU3RyaW5nIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0
KHtuYW1lOiB7IHRvU3RyaW5nOmZ1bmN0aW9uKCkgeyByZXR1cm4gJ3NoYS0xJyB9IH0gfSwgbmV3
IFVpbnQ4QXJyYXkoW10pKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgdGVzdFBh
c3NlZCgiLi4uc3VjY2VlZGVkIik7Ci0KLSAgICBkZWJ1ZygiXG5QYXNzaW5nIGludmFsaWQgZGF0
YSB0byBkaWdlc3QoKSIpOwotICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7
bmFtZTogJ3NoYS0xJ30pIik7Ci0gICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0
KHtuYW1lOiAnc2hhLTEnfSwgbnVsbCkiKTsKLSAgICBzaG91bGRUaHJvdygiY3J5cHRvLnN1YnRs
ZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCAxMCkiKTsKLSAgICBzaG91bGRUaHJvdygiY3J5cHRv
LnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCBbMTBdKSIpOwotICAgIHNob3VsZFRocm93
KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30sIFtuZXcgVWludDhBcnJheShb
MF0pXSkiKTsKLQotICAgIGRlYnVnKCJcblBhc3NpbmcgaW52YWxpZCBhbGdvcml0aG1JZGVudGlm
aWVycyB0byBkaWdlc3QoKSIpOwotICAgIGRhdGEgPSBuZXcgVWludDhBcnJheShbMF0pOwotICAg
IHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7IHRvU3RyaW5nOmZ1bmN0aW9uKCkg
eyByZXR1cm4gJ3NoYS0xJyB9IH0sIGRhdGEpIik7IC8vIEFsZ29yaXRobSBub3JtYWxpemF0aW9u
IGRvZXNuJ3QgYXR0ZW1wdCB0byBjYWxsIHRvU3RyaW5nLgotICAgIHNob3VsZFRocm93KCJjcnlw
dG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJyd9LCBkYXRhKSIpOwotICAgIHNob3VsZFRocm93KCJj
cnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogbnVsbH0sIGRhdGEpIik7Ci0gICAgc2hvdWxkVGhy
b3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiB1bmRlZmluZWR9LCBkYXRhKSIpOwotICAg
IHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYSd9LCBkYXRhKSIp
OwotICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogMX0sIGRhdGEp
Iik7Ci0gICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KCcnLCBkYXRhKSIpOwot
ICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdChudWxsLCBkYXRhKSIpOwotICAg
IHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh1bmRlZmluZWQsIGRhdGEpIik7Ci0g
ICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KDEsIGRhdGEpIik7Ci0gICAgc2hv
dWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KHt9LCBkYXRhKSIpOwotfSkudGhlbihmaW5p
c2hKU1Rlc3QpOwotCi08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hcnJheS1idWZmZXItdmlldy1vZmZzZXQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hcnJheS1idWZmZXItdmlldy1vZmZz
ZXQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MDk0M2U1YmY0
NzUxODFiMzFlYTIxOTI4Zjc5YjhiODY4ZDNkMGRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYXJyYXktYnVm
ZmVyLXZpZXctb2Zmc2V0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAg
QEAKLVRlc3QgdGhhdCBhbiBBcnJheUJ1ZmZlclZpZXcgd2l0aCBvZmZzZXQgaXMgcHJvY2Vzc2Vk
IGNvcnJlY3RseS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgYnl0ZXNU
b0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSBpcyAnMmM3ZTdjMzg0Zjc4Mjk2OTQy
ODJiMWUzYTYyMTZkZWY4MDgyZDA1NScKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
LQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L2FycmF5LWJ1ZmZlci12aWV3LW9mZnNldC5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRs
ZS9hcnJheS1idWZmZXItdmlldy1vZmZzZXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYTBiOTkwNDU4M2RkZmIxNDhmZjBiYzI3NzY1Y2IxYmFmMTM0ZTBjNC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8v
c3VidGxlL2FycmF5LWJ1ZmZlci12aWV3LW9mZnNldC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MzAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1k
ZXNjcmlwdGlvbigiVGVzdCB0aGF0IGFuIEFycmF5QnVmZmVyVmlldyB3aXRoIG9mZnNldCBpcyBw
cm9jZXNzZWQgY29ycmVjdGx5LiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotUHJvbWlz
ZS5yZXNvbHZlKG51bGwpLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG9yaWdpbmFsRGF0YSA9
IG5ldyBVaW50OEFycmF5KFsweGYsIDB4ZiwgMHhmLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4
LCA5LCAxMCwgMHhmLCAweGYsIDB4Zl0pOwotICAgIHZhciBzbGljZWREYXRhID0gbmV3IFVpbnQ4
QXJyYXkob3JpZ2luYWxEYXRhLmJ1ZmZlciwgMywgMTEpOwotICAgIHJldHVybiBjcnlwdG8uc3Vi
dGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30sIHNsaWNlZERhdGEpOwotfSkudGhlbihmdW5jdGlv
bihyZXN1bHQpIHsKLSAgICBkaWdlc3QgPSByZXN1bHQ7Ci0gICAgLy8gRXhwZWN0ZWQgcmVzdWx0
IGZvciBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdLgotICAgIHNob3VsZEJlKCJi
eXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIiwgIicyYzdlN2MzODRmNzgy
OTY5NDI4MmIxZTNhNjIxNmRlZjgwODJkMDU1JyIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7
Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3J5cHRvL3N1YnRsZS9nYy0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvZ2MtMi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5MWUx
OTYyNzA0ODAzYWIzNGYwZDE5ZjVmN2Y2N2Y0NGI2OWYyYWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy0y
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRlc3QgdGhhdCB3
aW5kb3cuY3J5cHRvLnN1YnRsZSB3cmFwcGVyIHByZXNlcnZlcyBjdXN0b20gcHJvcGVydGllcy4K
LQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgW29iamVjdCBDcnlwdG9dIGlz
IGRlZmluZWQuCi1QQVNTIFtvYmplY3QgV2ViS2l0U3VidGxlQ3J5cHRvXSBpcyBkZWZpbmVkLgot
UEFTUyBhbm90aGVyV2luZG93Q3J5cHRvLndlYmtpdFN1YnRsZS5mb28gaXMgImJhciIKLVBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLTIuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvZ2MtMi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MTI5OTIw
NjgyYjg5MDdhMzUzYjU2ZmM4YzIzODFiNTBlMDQyNTc4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MtMi5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3Jp
cHQ+Ci0KLWRlc2NyaXB0aW9uKCJUZXN0IHRoYXQgd2luZG93LmNyeXB0by5zdWJ0bGUgd3JhcHBl
ciBwcmVzZXJ2ZXMgY3VzdG9tIHByb3BlcnRpZXMuIik7Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
LQotdmFyIGFub3RoZXJXaW5kb3dDcnlwdG87Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0g
ICAgYW5vdGhlcldpbmRvd0NyeXB0byA9IGZyYW1lc1swXS5jcnlwdG87Ci0gICAgc2hvdWxkQmVE
ZWZpbmVkKGFub3RoZXJXaW5kb3dDcnlwdG8pOwotICAgIHNob3VsZEJlRGVmaW5lZChhbm90aGVy
V2luZG93Q3J5cHRvLndlYmtpdFN1YnRsZSk7Ci0KLSAgICBhbm90aGVyV2luZG93Q3J5cHRvLndl
YmtpdFN1YnRsZS5mb28gPSAiYmFyIjsKLSAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUiKVswXSk7Ci0gICAgZ2MoKTsKLSAg
ICBzZXRUaW1lb3V0KGNvbnRpbnVlVGVzdCwgMTApOwotfQotCi1mdW5jdGlvbiBjb250aW51ZVRl
c3QoKQotewotICAgIGdjKCk7Ci0gICAgc2V0VGltZW91dChmaW5pc2hUZXN0LCAxMCk7Ci19Ci0K
LWZ1bmN0aW9uIGZpbmlzaFRlc3QoKQotewotICAgIGdjKCk7Ci0gICAgc2hvdWxkQmUoJ2Fub3Ro
ZXJXaW5kb3dDcnlwdG8ud2Via2l0U3VidGxlLmZvbycsICciYmFyIicpOwotICAgIGZpbmlzaEpT
VGVzdCgpOwotfQotCi13aW5kb3cub25sb2FkID0gc3RhcnRUZXN0OwotCi08L3NjcmlwdD4KLTxp
ZnJhbWUgc3JjPSJhYm91dDpibGFuayI+PC9pZnJhbWU+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLTMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy0zLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYjA0YzFhNTczYmEzZWQ2ZjcxZTQ3ZmZhMzFlOGVjYTY1NzliYjJkOC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL2djLTMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTEg
KzAsMCBAQAotVGVzdCB0aGF0IHdpbmRvdy5jcnlwdG8gd3JhcHBlciBwcm90ZWN0cyBhbGwgZGVw
ZW5kZW5jaWVzLCBzbyBpdCBjYW4gYWx3YXlzIGJlIHVzZWQgdG8gY3JlYXRlIGNyeXB0by5zdWJ0
bGUuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIFtvYmplY3QgQ3J5cHRv
XSBpcyBkZWZpbmVkLgotUEFTUyBbb2JqZWN0IFdlYktpdFN1YnRsZUNyeXB0b10gaXMgZGVmaW5l
ZC4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLTMuaHRtbCBiL0xheW91dFRl
c3RzL2NyeXB0by9zdWJ0bGUvZ2MtMy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBiNmUwNzQwYTliNmYwYTg5ZjQ2ZGQxM2Y0MGIwYTJjNWVjZGY3NTQ2Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvZ2MtMy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxzY3JpcHQ+Ci0KLWRlc2NyaXB0aW9uKCJUZXN0IHRoYXQgd2luZG93LmNyeXB0byB3cmFw
cGVyIHByb3RlY3RzIGFsbCBkZXBlbmRlbmNpZXMsIHNvIGl0IGNhbiBhbHdheXMgYmUgdXNlZCB0
byBjcmVhdGUgY3J5cHRvLnN1YnRsZS4iKTsKLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIg
YW5vdGhlcldpbmRvd0NyeXB0bzsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBhbm90
aGVyV2luZG93Q3J5cHRvID0gZnJhbWVzWzBdLmNyeXB0bzsKLSAgICBzaG91bGRCZURlZmluZWQo
YW5vdGhlcldpbmRvd0NyeXB0byk7Ci0gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1
bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIilbMF0pOwotICAgIGdjKCk7Ci0gICAg
c2V0VGltZW91dChjb250aW51ZVRlc3QsIDEwKTsKLX0KLQotZnVuY3Rpb24gY29udGludWVUZXN0
KCkKLXsKLSAgICBnYygpOwotICAgIHNldFRpbWVvdXQoZmluaXNoVGVzdCwgMTApOwotfQotCi1m
dW5jdGlvbiBmaW5pc2hUZXN0KCkKLXsKLSAgICBnYygpOwotICAgIHNob3VsZEJlRGVmaW5lZChh
bm90aGVyV2luZG93Q3J5cHRvLndlYmtpdFN1YnRsZSk7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19
Ci0KLXdpbmRvdy5vbmxvYWQgPSBzdGFydFRlc3Q7Ci0KLTwvc2NyaXB0PgotPGlmcmFtZSBzcmM9
ImFib3V0OmJsYW5rIj48L2lmcmFtZT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9nYy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGM1OWQwYTFlNTIwZWVlMmE2OGZhOGQ4ZDk3OTcxYWZmMDdhZTg0N2UuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRs
ZS9nYy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1UZXN0IHRo
YXQgd2luZG93LmNyeXB0by5zdWJ0bGUgd3JhcHBlciBwcmVzZXJ2ZXMgY3VzdG9tIHByb3BlcnRp
ZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHdpbmRvdy5jcnlwdG8u
d2Via2l0U3VidGxlLmZvbyBpcyAiYmFyIgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvZ2MuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYTIzNWIwYmRlOWRjZTcwYzYwODhhNmEwOWI4NjlmMjUwM2U0
ZDRlYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdD4KLQotZGVzY3JpcHRpb24oIlRlc3QgdGhhdCB3
aW5kb3cuY3J5cHRvLnN1YnRsZSB3cmFwcGVyIHByZXNlcnZlcyBjdXN0b20gcHJvcGVydGllcy4i
KTsKLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAg
IHdpbmRvdy5jcnlwdG8ud2Via2l0U3VidGxlLmZvbyA9ICJiYXIiOwotICAgIGdjKCk7Ci0gICAg
c2V0VGltZW91dChjb250aW51ZVRlc3QsIDEwKTsKLX0KLQotZnVuY3Rpb24gY29udGludWVUZXN0
KCkKLXsKLSAgICBnYygpOwotICAgIHNldFRpbWVvdXQoZmluaXNoVGVzdCwgMTApOwotfQotCi1m
dW5jdGlvbiBmaW5pc2hUZXN0KCkKLXsKLSAgICBnYygpOwotICAgIHNob3VsZEJlKCd3aW5kb3cu
Y3J5cHRvLndlYmtpdFN1YnRsZS5mb28nLCAnImJhciInKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsK
LX0KLQotd2luZG93Lm9ubG9hZCA9IHN0YXJ0VGVzdDsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtY2hlY2st
YWxnb3JpdGhtLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1hYy1j
aGVjay1hbGdvcml0aG0tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBkNGQzZjQ1NmQyNGJmNDM2YjAxNTE4NjU0ZGY2NTZiZGVmYzhhMTdhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvaG1hYy1jaGVjay1hbGdvcml0aG0tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MTUgKzAsMCBAQAotVGVzdCB0aGF0IEhNQUMgb3BlcmF0aW9ucyBvbmx5IHdvcmsgd2hlbiBoYXNo
IGZ1bmN0aW9ucyBtYXRjaCBiZXR3ZWVuIGludm9jYXRpb24gYW5kIGtleS4KLQotT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgotCi0KLUltcG9ydGluZyBhIHJhdyBITUFDIFNIQS0xIGtleSBmcm9t
IHN0cmluZyBsaXRlcmFsLi4uCi1Eb25lCi1QQVNTIGNyeXB0by5zdWJ0bGUuc2lnbih7bmFtZTog
J2htYWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0xJ319LCBrZXksIGFzY2lpVG9VaW50OEFycmF5KCdm
b28nKSkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCi1QQVNTIGNyeXB0by5zdWJ0bGUuc2lnbih7
bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0yNTYnfX0sIGtleSwgYXNjaWlUb1VpbnQ4
QXJyYXkoJ2ZvbycpKSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3IgKERPTSBFeGNl
cHRpb24gOSk6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIGNyeXB0by5z
dWJ0bGUudmVyaWZ5KHtuYW1lOiAnaG1hYycsIGhhc2g6IHtuYW1lOiAnc2hhLTEnfX0sIGtleSwg
YXNjaWlUb1VpbnQ4QXJyYXkoJ2Zha2Ugc2lnbmF0dXJlJyksIGFzY2lpVG9VaW50OEFycmF5KCdm
b28nKSkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCi1QQVNTIGNyeXB0by5zdWJ0bGUudmVyaWZ5
KHtuYW1lOiAnaG1hYycsIGhhc2g6IHtuYW1lOiAnc2hhLTI1Nid9fSwga2V5LCBhc2NpaVRvVWlu
dDhBcnJheSgnZmFrZSBzaWduYXR1cmUnKSwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2ZvbycpKSB0aHJl
dyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3IgKERPTSBFeGNlcHRpb24gOSk6IFRoZSBvcGVy
YXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
Ci0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRs
ZS9obWFjLWNoZWNrLWFsZ29yaXRobS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9o
bWFjLWNoZWNrLWFsZ29yaXRobS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl
OTgwMjczMzFkOTc4YzQ5NTdmYTg5YmJmZWMzMzA2OGNkZDBlYjRlLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUv
aG1hYy1jaGVjay1hbGdvcml0aG0uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9j
b21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24o
IlRlc3QgdGhhdCBITUFDIG9wZXJhdGlvbnMgb25seSB3b3JrIHdoZW4gaGFzaCBmdW5jdGlvbnMg
bWF0Y2ggYmV0d2VlbiBpbnZvY2F0aW9uIGFuZCBrZXkuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0
cnVlOwotCi12YXIgaG1hY0tleSA9IGFzY2lpVG9VaW50OEFycmF5KCdhJyk7Ci12YXIgZXh0cmFj
dGFibGUgPSB0cnVlOwotCi1kZWJ1ZygiSW1wb3J0aW5nIGEgcmF3IEhNQUMgU0hBLTEga2V5IGZy
b20gc3RyaW5nIGxpdGVyYWwuLi4iKTsKLWNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBo
bWFjS2V5LCB7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0xJ319LCBleHRyYWN0YWJs
ZSwgWyJzaWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGRlYnVn
KCJEb25lIik7Ci0gICAga2V5ID0gcmVzdWx0OwotCi0gICAgc2hvdWxkTm90VGhyb3coImNyeXB0
by5zdWJ0bGUuc2lnbih7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0xJ319LCBrZXks
IGFzY2lpVG9VaW50OEFycmF5KCdmb28nKSkiKTsKLSAgICBzaG91bGRUaHJvdygiY3J5cHRvLnN1
YnRsZS5zaWduKHtuYW1lOiAnaG1hYycsIGhhc2g6IHtuYW1lOiAnc2hhLTI1Nid9fSwga2V5LCBh
c2NpaVRvVWludDhBcnJheSgnZm9vJykpIik7Ci0KLSAgICBzaG91bGROb3RUaHJvdygiY3J5cHRv
LnN1YnRsZS52ZXJpZnkoe25hbWU6ICdobWFjJywgaGFzaDoge25hbWU6ICdzaGEtMSd9fSwga2V5
LCBhc2NpaVRvVWludDhBcnJheSgnZmFrZSBzaWduYXR1cmUnKSwgYXNjaWlUb1VpbnQ4QXJyYXko
J2ZvbycpKSIpOwotICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLnZlcmlmeSh7bmFtZTog
J2htYWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0yNTYnfX0sIGtleSwgYXNjaWlUb1VpbnQ4QXJyYXko
J2Zha2Ugc2lnbmF0dXJlJyksIGFzY2lpVG9VaW50OEFycmF5KCdmb28nKSkiKTsKLQotICAgIGZp
bmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLWV4cG9ydC1rZXktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLWV4cG9ydC1rZXktZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MDU4NGRiZTZmYzY3NmJjMWIyZDYy
YjUwOWM1ZjAwYzc1N2EyOGY4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1hYy1leHBvcnQta2V5LWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLVRlc3QgZXhwb3J0aW5nIGFu
IEFFUyBrZXkuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1JbXBvcnRpbmcgYSBK
V0sga2V5Li4uCi1QQVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KG51bGwsIGtleSkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0LgotUEFTUyBjcnlwdG8uc3Vi
dGxlLmV4cG9ydEtleSh1bmRlZmluZWQsIGtleSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
VW5rbm93biBrZXkgZm9ybWF0LgotUEFTUyBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSh7fSwga2V5
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQuCi1QQVNTIGNy
eXB0by5zdWJ0bGUuZXhwb3J0S2V5KCIiLCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IFVua25vd24ga2V5IGZvcm1hdC4KLVBBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoImZvb2Jh
ciIsIGtleSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0Lgot
RXhwb3J0aW5nIHRoZSBrZXkgYXMgcmF3IGRhdGEuLi4KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhu
ZXcgVWludDhBcnJheShleHBvcnRlZERhdGEpKSBpcyAnNmExOGU0OWZlZmY3ZjNiN2UwOWVjODli
N2Y2ZGVhYjJmNmExOGU0OWZlZmY3ZjNiN2UwOWVjODliN2Y2ZGVhYicKLUV4cG9ydGluZyB0aGUg
a2V5IGFzIEpXSy4uLgotUEFTUyBleHBvcnRlZEpXSy5rdHkgaXMgJ29jdCcKLVBBU1MgZXhwb3J0
ZWRKV0suayBpcyAnYWhqa24tXzM4N2ZnbnNpYmYyM3FzdmFoamtuLV8zODdmZ25zaWJmMjNxcycK
LVBBU1MgZXhwb3J0ZWRKV0suYWxnIGlzICdIUzI1NicKLVBBU1MgZXhwb3J0ZWRKV0suZXh0IGlz
IHRydWUKLVBBU1MgZXhwb3J0ZWRKV0sudXNlIGlzIHVuZGVmaW5lZAotUEFTUyBleHBvcnRlZEpX
Sy5rZXlfb3BzIGlzIFsnc2lnbicsICd2ZXJpZnknXQotCi1JbXBvcnRpbmcgYSBrZXkgdGhhdCdz
IG5vdCBleHRyYWN0YWJsZS4uLgotCi1UcnlpbmcgdG8gZXhwb3J0IGFzIHJhdy4uLgotUEFTUyBS
ZWplY3RlZCwgYXMgZXhwZWN0ZWQKLVRyeWluZyB0byBleHBvcnQgYXMgandrLi4uCi1QQVNTIFJl
amVjdGVkLCBhcyBleHBlY3RlZAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1U
RVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1h
Yy1leHBvcnQta2V5Lmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtZXhwb3J0
LWtleS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZGU3NWRhMDUyNmJhODQ0
NmRiOWUzNThkMzQwZDllZGQwNmExZmZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1hYy1leHBvcnQta2V5
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IGV4cG9ydGluZyBhbiBB
RVMga2V5LiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGV4dHJhY3RhYmxlID0g
dHJ1ZTsKLXZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOwotCi12YXIgandrS2V5ID0gewotICAg
ICJrdHkiOiAib2N0IiwKLSAgICAiayI6ICJhaGprbi1fMzg3Zmduc2liZjIzcXN2YWhqa24tXzM4
N2ZnbnNpYmYyM3FzIgotfTsKLQotdmFyIGp3a0tleUFzQXJyYXlCdWZmZXIgPSBhc2NpaVRvVWlu
dDhBcnJheShKU09OLnN0cmluZ2lmeShqd2tLZXkpKTsKLQotZGVidWcoIkltcG9ydGluZyBhIEpX
SyBrZXkuLi4iKTsKLWNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tLZXlBc0FycmF5
QnVmZmVyLCB7IG5hbWU6ICJITUFDIiwgaGFzaDogIlNIQS0yNTYiIH0sIGV4dHJhY3RhYmxlLCBb
InNpZ24iLCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5ID0gcmVz
dWx0OwotCi0gICAgc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KG51bGwsIGtl
eSknKTsKLSAgICBzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkodW5kZWZpbmVk
LCBrZXkpJyk7Ci0gICAgc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KHt9LCBr
ZXkpJyk7Ci0gICAgc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCIiLCBrZXkp
Jyk7Ci0gICAgc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJmb29iYXIiLCBr
ZXkpJyk7Ci0KLSAgICBkZWJ1ZygiRXhwb3J0aW5nIHRoZSBrZXkgYXMgcmF3IGRhdGEuLi4iKTsK
LSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoInJhdyIsIGtleSk7Ci19KS50aGVu
KGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGV4cG9ydGVkRGF0YSA9IHJlc3VsdDsKLSAgICBzaG91
bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShleHBvcnRlZERhdGEpKSIsICIn
NmExOGU0OWZlZmY3ZjNiN2UwOWVjODliN2Y2ZGVhYjJmNmExOGU0OWZlZmY3ZjNiN2UwOWVjODli
N2Y2ZGVhYiciKTsKLQotICAgIGRlYnVnKCJFeHBvcnRpbmcgdGhlIGtleSBhcyBKV0suLi4iKTsK
LSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoImp3ayIsIGtleSk7Ci19KS50aGVu
KGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGV4cG9ydGVkSldLID0gSlNPTi5wYXJzZShieXRlc1Rv
QVNDSUlTdHJpbmcocmVzdWx0KSk7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmt0eSIsICIn
b2N0JyIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rIiwgIidhaGprbi1fMzg3Zmduc2li
ZjIzcXN2YWhqa24tXzM4N2ZnbnNpYmYyM3FzJyIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpX
Sy5hbGciLCAiJ0hTMjU2JyIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5leHQiLCAidHJ1
ZSIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy51c2UiLCAidW5kZWZpbmVkIik7Ci0gICAg
c2hvdWxkQmUoImV4cG9ydGVkSldLLmtleV9vcHMiLCAiWydzaWduJywgJ3ZlcmlmeSddIik7Ci0K
LSAgICBkZWJ1ZygiXG5JbXBvcnRpbmcgYSBrZXkgdGhhdCdzIG5vdCBleHRyYWN0YWJsZS4uLiIp
OwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgandrS2V5QXNBcnJh
eUJ1ZmZlciwgeyBuYW1lOiAiSE1BQyIsIGhhc2g6ICJTSEEtMjU2IiB9LCBub25FeHRyYWN0YWJs
ZSwgWyJzaWduIiwgInZlcmlmeSJdKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAg
a2V5ID0gcmVzdWx0OwotCi0gICAgZGVidWcoIlxuVHJ5aW5nIHRvIGV4cG9ydCBhcyByYXcuLi4i
KTsKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoInJhdyIsIGtleSk7Ci19KS50
aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHRlc3RGYWlsZWQoIlByb21pc2Ugd2Fzbid0IHJl
amVjdGVkIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19LCBmdW5jdGlvbigpIHsKLSAgICB0ZXN0
UGFzc2VkKCJSZWplY3RlZCwgYXMgZXhwZWN0ZWQiKTsKLQotICAgIGRlYnVnKCJUcnlpbmcgdG8g
ZXhwb3J0IGFzIGp3ay4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgi
andrIiwga2V5KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgdGVzdEZhaWxlZCgi
UHJvbWlzZSB3YXNuJ3QgcmVqZWN0ZWQiKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0sIGZ1bmN0
aW9uKCkgewotICAgIHRlc3RQYXNzZWQoIlJlamVjdGVkLCBhcyBleHBlY3RlZCIpOwotCi0gICAg
ZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtZ2VuZXJhdGUta2V5LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1hYy1nZW5lcmF0ZS1rZXktZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YmQzMWJkMGE3YTcyMTZm
NmQ0MGIxZjZmNTU4OTBlMGFkMTNhY2U0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1hYy1nZW5lcmF0ZS1r
ZXktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotVGVzdCBnZW5l
cmF0aW5nIGEgSE1BQyBrZXkuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNT
IGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoImhtYWMiLCBleHRyYWN0YWJsZSwgWyJzaWduIiwg
InZlcmlmeSJdKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBj
cnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiaG1hYyJ9LCBleHRyYWN0YWJsZSwgWyJz
aWduIiwgInZlcmlmeSJdKSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3IgKERPTSBF
eGNlcHRpb24gOSk6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIGNyeXB0
by5zdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJobWFjIiwgbGVuZ3RoOiB1bmRlZmluZWR9LCBl
eHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9y
dGVkRXJyb3IgKERPTSBFeGNlcHRpb24gOSk6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRl
ZC4uCi1QQVNTIGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJobWFjIiwgbGVuZ3Ro
OiB7fX0sIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pIHRocmV3IGV4Y2VwdGlvbiBO
b3RTdXBwb3J0ZWRFcnJvciAoRE9NIEV4Y2VwdGlvbiA5KTogVGhlIG9wZXJhdGlvbiBpcyBub3Qg
c3VwcG9ydGVkLi4KLQotR2VuZXJhdGluZyBhIGtleSB3aXRoIGRlZmF1bHQgbGVuZ3RoLi4uCi1Q
QVNTIGtleS50eXBlIGlzICdzZWNyZXQnCi1QQVNTIGtleS5leHRyYWN0YWJsZSBpcyB0cnVlCi1Q
QVNTIGtleS5hbGdvcml0aG0ubmFtZSBpcyAnSE1BQycKLVBBU1Mga2V5LmFsZ29yaXRobS5sZW5n
dGggaXMgNjQKLVBBU1Mga2V5LnVzYWdlcyBpcyBbInNpZ24iLCAidmVyaWZ5Il0KLQotR2VuZXJh
dGluZyBhIGtleSB3aXRoIGN1c3RvbSBsZW5ndGguLi4KLVBBU1Mga2V5LnR5cGUgaXMgJ3NlY3Jl
dCcKLVBBU1Mga2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKLVBBU1Mga2V5LmFsZ29yaXRobS5uYW1l
IGlzICdITUFDJwotUEFTUyBrZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyA1Ci1QQVNTIGtleS51c2Fn
ZXMgaXMgWyJzaWduIl0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBD
T01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtZ2Vu
ZXJhdGUta2V5Lmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtZ2VuZXJhdGUt
a2V5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhZmM1Njg1YzE3OGExMjM3
YTZhOTM2MDBjNGYwOWEzYTkxODg4OWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLWdlbmVyYXRlLWtl
eS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBnZW5lcmF0aW5nIGEg
SE1BQyBrZXkuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIgZXh0cmFjdGFibGUg
PSB0cnVlOwotCi1zaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSgiaG1hYyIs
IGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pJyk7Ci1zaG91bGRUaHJvdygnY3J5cHRv
LnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImhtYWMifSwgZXh0cmFjdGFibGUsIFsic2lnbiIs
ICJ2ZXJpZnkiXSknKTsKLXNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtu
YW1lOiAiaG1hYyIsIGxlbmd0aDogdW5kZWZpbmVkfSwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2
ZXJpZnkiXSknKTsKLXNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1l
OiAiaG1hYyIsIGxlbmd0aDoge319LCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKScp
OwotCi1kZWJ1ZygiXG5HZW5lcmF0aW5nIGEga2V5IHdpdGggZGVmYXVsdCBsZW5ndGguLi4iKTsK
LWNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJobWFjIiwgaGFzaDogInNoYS0xIn0s
IGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7
Ci0gICAga2V5ID0gcmVzdWx0OwotCi0gICAgc2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQn
Iik7Ci0gICAgc2hvdWxkQmUoImtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7Ci0gICAgc2hvdWxk
QmUoImtleS5hbGdvcml0aG0ubmFtZSIsICInSE1BQyciKTsKLSAgICBzaG91bGRCZSgia2V5LmFs
Z29yaXRobS5sZW5ndGgiLCAiNjQiKTsKLSAgICBzaG91bGRCZSgia2V5LnVzYWdlcyIsICdbInNp
Z24iLCAidmVyaWZ5Il0nKTsKLQotICAgIGRlYnVnKCJcbkdlbmVyYXRpbmcgYSBrZXkgd2l0aCBj
dXN0b20gbGVuZ3RoLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXko
e25hbWU6ICJobWFjIiwgaGFzaDogInNoYS0xIiwgbGVuZ3RoOiA1fSwgZXh0cmFjdGFibGUsIFsi
c2lnbiJdKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0Owot
Ci0gICAgc2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7Ci0gICAgc2hvdWxkQmUoImtl
eS5leHRyYWN0YWJsZSIsICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubmFt
ZSIsICInSE1BQyciKTsKLSAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiNSIp
OwotICAgIHNob3VsZEJlKCJrZXkudXNhZ2VzIiwgJ1sic2lnbiJdJyk7Ci0gICAgZmluaXNoSlNU
ZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtaW1wb3J0LWp3ay1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtaW1wb3J0LWp3ay1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5Y2IyNTMzMWU0ZmQ3MTE4MDY1MzdlM2NjYmUw
Njg4NGVjZTg4OTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLWltcG9ydC1qd2stZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGVzdCBpbXBvcnRpbmcgYSBKV0sga2V5
IGZvciBITUFDLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotSW1wb3J0aW5nIGEg
a2V5Li4uCi0KLVBBU1Mga2V5LnR5cGUgaXMgJ3NlY3JldCcKLVBBU1Mga2V5LmV4dHJhY3RhYmxl
IGlzIGZhbHNlCi1QQVNTIGtleS5hbGdvcml0aG0ubmFtZSBpcyAnSE1BQycKLVBBU1Mga2V5LmFs
Z29yaXRobS5sZW5ndGggaXMgMzIKLVBBU1Mga2V5LnVzYWdlcyBpcyBbInNpZ24iLCAidmVyaWZ5
Il0KLQotVXNpbmcgdGhlIGtleSB0byBzaWduIG1lc3NhZ2UgJ2ZvbycuLi4KLVBBU1MgYnl0ZXNU
b0hleFN0cmluZyhuZXcgVWludDhBcnJheShzaWduYXR1cmUpKSBpcyAnZTAzNzM2ZmUwOTg4OTJi
MmEyZGE3NzgxMjQzMWY3YzAxNGQzMmUyZmQ2OWYzYmNmZjg4M2FjOTIzYThmYTJkYScKLQotVmVy
aWZ5aW5nIHRoZSBzaWduYXR1cmUuLi4KLVBBU1MgdmVyaWZpY2F0aW9uUmVzdWx0IGlzIHRydWUK
LVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtaW1wb3J0LWp3ay5odG1sIGIv
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLWltcG9ydC1qd2suaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggY2IzOWYzYTU5ZjBiMzVlZmU2OWJiMTI4MmM0OGQ1Mjk4MmFk
NDZhYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtaW1wb3J0LWp3ay5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNTUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxw
IGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3Jp
cHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBpbXBvcnRpbmcgYSBKV0sga2V5IGZvciBITUFDLiIpOwot
Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLQotdmFy
IGhtYWNLZXkgPSB7Ci0gICAgImt0eSI6ICJvY3QiLAotICAgICJhbGciOiAiSFMyNTYiLAotICAg
ICJ1c2UiOiAic2lnIiwKLSAgICAiZXh0IjogZmFsc2UsCi0gICAgImsiOiAiYWhqa24tXzM4N2Zn
bnNpYmYyM3FzdmFoamtuLV8zODdmZ25zaWJmMjNxcyIKLX07Ci0KLXZhciBobWFjS2V5QXNBcnJh
eUJ1ZmZlciA9IGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KGhtYWNLZXkpKTsKLQot
ZGVidWcoIkltcG9ydGluZyBhIGtleS4uLlxuIik7Ci1jcnlwdG8uc3VidGxlLmltcG9ydEtleSgi
andrIiwgaG1hY0tleUFzQXJyYXlCdWZmZXIsIG51bGwsIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAi
dmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0OwotCi0g
ICAgc2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7Ci0gICAgc2hvdWxkQmUoImtleS5l
eHRyYWN0YWJsZSIsICJmYWxzZSIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUi
LCAiJ0hNQUMnIik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjMyIik7
Ci0gICAgc2hvdWxkQmUoImtleS51c2FnZXMiLCAnWyJzaWduIiwgInZlcmlmeSJdJyk7Ci0KLSAg
ICBkZWJ1ZygiXG5Vc2luZyB0aGUga2V5IHRvIHNpZ24gbWVzc2FnZSAnZm9vJy4uLiIpOwotICAg
IHJldHVybiBjcnlwdG8uc3VidGxlLnNpZ24oa2V5LmFsZ29yaXRobSwga2V5LCBhc2NpaVRvVWlu
dDhBcnJheSgnZm9vJykpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBzaWduYXR1
cmUgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJy
YXkoc2lnbmF0dXJlKSkiLCAiJ2UwMzczNmZlMDk4ODkyYjJhMmRhNzc4MTI0MzFmN2MwMTRkMzJl
MmZkNjlmM2JjZmY4ODNhYzkyM2E4ZmEyZGEnIik7Ci0KLSAgICBkZWJ1ZygiXG5WZXJpZnlpbmcg
dGhlIHNpZ25hdHVyZS4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLnZlcmlmeShrZXku
YWxnb3JpdGhtLCBrZXksIHJlc3VsdCwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2ZvbycpKTsKLX0pLnRo
ZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgdmVyaWZpY2F0aW9uUmVzdWx0ID0gcmVzdWx0Owot
ICAgIHNob3VsZEJlKCJ2ZXJpZmljYXRpb25SZXN1bHQiLCAidHJ1ZSIpOwotICAgIGZpbmlzaEpT
VGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLXBvc3RNZXNzYWdlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1hYy1wb3N0TWVzc2FnZS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNlY2FlYjkxYWU5YTE4M2EwZjliYjQwNTVj
NGRlMTMwNTFmM2ExZmUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLXBvc3RNZXNzYWdlLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLVRlc3Qgc2VuZGluZyBjcnlwdG8g
a2V5cyB2aWEgcG9zdE1lc3NhZ2UuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1Q
QVNTIGtleS50eXBlIGlzICdzZWNyZXQnCi1QQVNTIGtleS5leHRyYWN0YWJsZSBpcyB0cnVlCi1Q
QVNTIGtleS5hbGdvcml0aG0ubmFtZSBpcyAnSE1BQycKLVBBU1Mga2V5LmFsZ29yaXRobS5sZW5n
dGggaXMgMTYKLVBBU1Mga2V5LnVzYWdlcyBpcyBbImRlY3J5cHQiLCAiZW5jcnlwdCIsICJzaWdu
IiwgInZlcmlmeSJdCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09N
UExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLXBvc3RN
ZXNzYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtcG9zdE1lc3NhZ2Uu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDA4OGMxYjBkNjZmOGMzYzczYjg5
OWE3ZmU3ZDY5ODZlYTdhNWM5MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtcG9zdE1lc3NhZ2UuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9j
b21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0PgotCi1kZXNjcmlw
dGlvbigiVGVzdCBzZW5kaW5nIGNyeXB0byBrZXlzIHZpYSBwb3N0TWVzc2FnZS4iKTsKLQotanNU
ZXN0SXNBc3luYyA9IHRydWU7Ci0KLXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwg
ZnVuY3Rpb24oZXZ0KSB7Ci0gICAga2V5ID0gZXZ0LmRhdGE7Ci0gICAgc2hvdWxkQmUoImtleS50
eXBlIiwgIidzZWNyZXQnIik7Ci0gICAgc2hvdWxkQmUoImtleS5leHRyYWN0YWJsZSIsICJ0cnVl
Iik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIsICInSE1BQyciKTsKLSAgICBz
aG91bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMTYiKTsKLSAgICBzaG91bGRCZSgia2V5
LnVzYWdlcyIsICdbImRlY3J5cHQiLCAiZW5jcnlwdCIsICJzaWduIiwgInZlcmlmeSJdJyk7Ci0K
LSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0sIGZhbHNlKTsKLQotaW1wb3J0VGVzdEtleXMoKS50aGVu
KGZ1bmN0aW9uKGtleXMpIHsKLSAgICBwb3N0TWVzc2FnZShrZXlzLmhtYWNTaGExLCAiKiIpOwot
fSk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NyeXB0by9zdWJ0bGUvaG1hYy1zaWduLXZlcmlmeS1lbXB0eS1rZXktZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLXNpZ24tdmVyaWZ5LWVtcHR5LWtleS1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzZDVkYTc0YmVlYmM5OTE1
NGE3YjlmYTY0ZGNhYjdlMGEwNzkyZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLXNpZ24tdmVyaWZ5
LWVtcHR5LWtleS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1U
ZXN0IEhNQUMgc2lnbiBhbmQgdmVyaWZ5IGZ1bmN0aW9ucyB3aXRoIGFuIGVtcHR5IGtleS4KLQot
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUltcG9ydGluZyBhIHJhdyBITUFDIGtleSBm
cm9tIHN0cmluZyBsaXRlcmFsLi4uCi1QQVNTIGtleS50eXBlIGlzICdzZWNyZXQnCi1QQVNTIGtl
eS5leHRyYWN0YWJsZSBpcyB0cnVlCi1QQVNTIGtleS5hbGdvcml0aG0ubmFtZSBpcyAnSE1BQycK
LVBBU1Mga2V5LmFsZ29yaXRobS5sZW5ndGggaXMgMAotUEFTUyBrZXkuYWxnb3JpdGhtLmhhc2gu
bmFtZSBpcyAnU0hBLTEnCi1QQVNTIGtleS51c2FnZXMgaXMgWydzaWduJywgJ3ZlcmlmeSddCi1V
c2luZyB0aGUga2V5IHRvIHNpZ24gJ2ZvbycuLi4KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcg
VWludDhBcnJheShzaWduYXR1cmUpKSBpcyAnYTNjYzc3MGZjMDMzZTJjYjQxOWQ0MmI2NGUwMDgx
YTNiZDNiZTMwZScKLVZlcmlmeWluZyB0aGUgc2lnbmF0dXJlLi4uCi1QQVNTIHZlcmlmaWNhdGlv
blJlc3VsdCBpcyB0cnVlCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1Qg
Q09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLXNp
Z24tdmVyaWZ5LWVtcHR5LWtleS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFj
LXNpZ24tdmVyaWZ5LWVtcHR5LWtleS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwODVlNmQwNWM0YzZhMTFhMzVmM2E3NTI2YmFjNWRjOWU0MDcwZDM0Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvaG1hYy1zaWduLXZlcmlmeS1lbXB0eS1rZXkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ2
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJl
c291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVz
Y3JpcHRpb24oIlRlc3QgSE1BQyBzaWduIGFuZCB2ZXJpZnkgZnVuY3Rpb25zIHdpdGggYW4gZW1w
dHkga2V5LiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGhtYWNLZXkgPSBhc2Np
aVRvVWludDhBcnJheSgnJyk7Ci12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotCi1kZWJ1ZygiSW1w
b3J0aW5nIGEgcmF3IEhNQUMga2V5IGZyb20gc3RyaW5nIGxpdGVyYWwuLi4iKTsKLWNyeXB0by5z
dWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBobWFjS2V5LCB7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFt
ZTogJ3NoYS0xJ319LCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0
aW9uKHJlc3VsdCkgewotICAgIGtleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgia2V5LnR5cGUi
LCAiJ3NlY3JldCciKTsKLSAgICBzaG91bGRCZSgia2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsK
LSAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidITUFDJyIpOwotICAgIHNob3Vs
ZEJlKCJrZXkuYWxnb3JpdGhtLmxlbmd0aCIsICIwIik7IC8vIFNlZSA8aHR0cHM6Ly93d3cudzMu
b3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0yMzA5OD4uCi0gICAgc2hvdWxkQmUoImtl
eS5hbGdvcml0aG0uaGFzaC5uYW1lIiwgIidTSEEtMSciKTsKLSAgICBzaG91bGRCZSgia2V5LnVz
YWdlcyIsICJbJ3NpZ24nLCAndmVyaWZ5J10iKTsKLQotICAgIGRlYnVnKCJVc2luZyB0aGUga2V5
IHRvIHNpZ24gJ2ZvbycuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5zaWduKGtleS5h
bGdvcml0aG0sIGtleSwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2ZvbycpKTsKLX0pLnRoZW4oZnVuY3Rp
b24ocmVzdWx0KSB7Ci0gICAgc2lnbmF0dXJlID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJieXRl
c1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KHNpZ25hdHVyZSkpIiwgIidhM2NjNzcwZmMwMzNl
MmNiNDE5ZDQyYjY0ZTAwODFhM2JkM2JlMzBlJyIpOwotCi0gICAgZGVidWcoIlZlcmlmeWluZyB0
aGUgc2lnbmF0dXJlLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUudmVyaWZ5KGtleS5h
bGdvcml0aG0sIGtleSwgcmVzdWx0LCBhc2NpaVRvVWludDhBcnJheSgnZm9vJykpOwotfSkudGhl
bihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB2ZXJpZmljYXRpb25SZXN1bHQgPSByZXN1bHQ7Ci0g
ICAgc2hvdWxkQmUoInZlcmlmaWNhdGlvblJlc3VsdCIsICJ0cnVlIik7Ci0gICAgZmluaXNoSlNU
ZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtc2lnbi12ZXJpZnktZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLXNpZ24tdmVyaWZ5LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMThkYTdlNzJjOWZiOGU0OWIxYTRiMmNlMGNi
OWFiZWYwNTYzOWI5Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtc2lnbi12ZXJpZnktZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGVzdCBITUFDIHNpZ24gYW5kIHZl
cmlmeSBmdW5jdGlvbnMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1JbXBvcnRp
bmcgYSByYXcgSE1BQyBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJhbC4uLgotUEFTUyBrZXkudHlwZSBp
cyAnc2VjcmV0JwotUEFTUyBrZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQotUEFTUyBrZXkuYWxnb3Jp
dGhtLm5hbWUgaXMgJ0hNQUMnCi1QQVNTIGtleS5hbGdvcml0aG0ubGVuZ3RoIGlzIDEKLVBBU1Mg
a2V5LmFsZ29yaXRobS5oYXNoLm5hbWUgaXMgJ1NIQS0xJwotUEFTUyBrZXkudXNhZ2VzIGlzIFsn
c2lnbicsICd2ZXJpZnknXQotVXNpbmcgdGhlIGtleSB0byBzaWduICdmb28nLi4uCi1QQVNTIGJ5
dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoc2lnbmF0dXJlKSkgaXMgJ2JlYmJjMDJlNDZi
MGY4MTE4M2Y0MGMyNWRjZTIzZTUwNDVkNjU1MTknCi1WZXJpZnlpbmcgdGhlIHNpZ25hdHVyZS4u
LgotUEFTUyB2ZXJpZmljYXRpb25SZXN1bHQgaXMgdHJ1ZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvaG1hYy1zaWduLXZlcmlmeS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS9obWFjLXNpZ24tdmVyaWZ5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDhkMTk5NTQyNmUzMDRmNGM2MGE3N2FhNzUyZjgzNWVjODEzNGZmMGQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRs
ZS9obWFjLXNpZ24tdmVyaWZ5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29t
bW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJU
ZXN0IEhNQUMgc2lnbiBhbmQgdmVyaWZ5IGZ1bmN0aW9ucy4iKTsKLQotanNUZXN0SXNBc3luYyA9
IHRydWU7Ci0KLXZhciBobWFjS2V5ID0gYXNjaWlUb1VpbnQ4QXJyYXkoJ2EnKTsKLXZhciBleHRy
YWN0YWJsZSA9IHRydWU7Ci0KLWRlYnVnKCJJbXBvcnRpbmcgYSByYXcgSE1BQyBrZXkgZnJvbSBz
dHJpbmcgbGl0ZXJhbC4uLiIpOwotY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGhtYWNL
ZXksIHtuYW1lOiAnaG1hYycsIGhhc2g6IHtuYW1lOiAnc2hhLTEnfX0sIGV4dHJhY3RhYmxlLCBb
InNpZ24iLCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5ID0gcmVz
dWx0OwotICAgIHNob3VsZEJlKCJrZXkudHlwZSIsICInc2VjcmV0JyIpOwotICAgIHNob3VsZEJl
KCJrZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGht
Lm5hbWUiLCAiJ0hNQUMnIik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubGVuZ3RoIiwg
IjEiKTsgLy8gU2VlIDxodHRwczovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dp
P2lkPTIzMDk4Pi4KLSAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5oYXNoLm5hbWUiLCAiJ1NI
QS0xJyIpOwotICAgIHNob3VsZEJlKCJrZXkudXNhZ2VzIiwgIlsnc2lnbicsICd2ZXJpZnknXSIp
OwotCi0gICAgZGVidWcoIlVzaW5nIHRoZSBrZXkgdG8gc2lnbiAnZm9vJy4uLiIpOwotICAgIHJl
dHVybiBjcnlwdG8uc3VidGxlLnNpZ24oa2V5LmFsZ29yaXRobSwga2V5LCBhc2NpaVRvVWludDhB
cnJheSgnZm9vJykpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBzaWduYXR1cmUg
PSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXko
c2lnbmF0dXJlKSkiLCAiJ2JlYmJjMDJlNDZiMGY4MTE4M2Y0MGMyNWRjZTIzZTUwNDVkNjU1MTkn
Iik7Ci0KLSAgICBkZWJ1ZygiVmVyaWZ5aW5nIHRoZSBzaWduYXR1cmUuLi4iKTsKLSAgICByZXR1
cm4gY3J5cHRvLnN1YnRsZS52ZXJpZnkoa2V5LmFsZ29yaXRobSwga2V5LCByZXN1bHQsIGFzY2lp
VG9VaW50OEFycmF5KCdmb28nKSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHZl
cmlmaWNhdGlvblJlc3VsdCA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgidmVyaWZpY2F0aW9uUmVz
dWx0IiwgInRydWUiKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaW1w
b3J0LWp3ay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2ltcG9ydC1q
d2stZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNGU1MWFmNzYw
YTYyYjYzMTA1ZWQwYjJmMjA4YWVhMjk4NmUzM2MyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaW1wb3J0LWp3
ay1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1UZXN0IGVycm9y
IGhhbmRsaW5nIGZvciBKV0sgaW1wb3J0LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0K
LQotUEFTUyBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXko
JycpLCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBJbnZhbGlkIEpXSyBzZXJpYWxp
emF0aW9uLgotUEFTUyBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4
QXJyYXkoJ3snKSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogSW52YWxpZCBKV0sg
c2VyaWFsaXphdGlvbi4KLVBBU1MgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lp
VG9VaW50OEFycmF5KCdudWxsJyksIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IElu
dmFsaWQgSldLIHNlcmlhbGl6YXRpb24uCi1QQVNTIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJq
d2siLCBhc2NpaVRvVWludDhBcnJheSgndW5kZWZpbmVkJyksIG51bGwpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IEludmFsaWQgSldLIHNlcmlhbGl6YXRpb24uCi1QQVNTIGNyeXB0by5zdWJ0
bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgne30nKSwgbnVsbCkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogTmVpdGhlciBrZXkgbm9yIGZ1bmN0aW9uIGFyZ3VtZW50IGhh
cyBjcnlwdG8gYWxnb3JpdGhtIHNwZWNpZmllZC4KLVBBU1MgY3J5cHRvLnN1YnRsZS5pbXBvcnRL
ZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7fScpLCAiYWVzLWNiYyIpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IFJlcXVpcmVkIEpXSyAia3R5IiBtZW1iZXIgaXMgbWlzc2luZy4KLVBB
U1MgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7ICJr
dHkiOiAiZm9vYmFyIiwgImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwgImsiOiAiYWhqa24y
MzM4N2ZnbnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfScpLCBudWxsKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBVbnN1cHBvcnRlZCBKV0sga2V5IHR5cGUgZm9vYmFyLgotUEFT
UyBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoJ3sgImt0
eSI6ICJvY3QiLCAiYWxnIjogImZvb2JhciIsICJ1c2UiOiAic2lnIiwgImsiOiAiYWhqa24yMzM4
N2ZnbnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfScpLCBudWxsKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBVbnN1cHBvcnRlZCBKV0sgYWxnb3JpdGhtIGZvb2Jhci4KLVBBU1Mg
Y3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7ICJrdHki
OiAib2N0IiwgImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwgImV4dCI6IGZhbHNlLCAiayI6
ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9JyksICJhZXMt
Y2JjIikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQWxnb3JpdGhtIHNwZWNpZmllZCBpbiBr
ZXkgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBvbmUgcGFzc2VkIHRvIGltcG9ydEtleSBhcyBhcmd1
bWVudC4KLVBBU1MgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFy
cmF5KCd7ICJrdHkiOiAib2N0IiwgImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwgImV4dCI6
IGZhbHNlLCAiayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3Fz
IiB9JyksIHsgbmFtZTogImhtYWMiLCBoYXNoOiAic2hhLTEiIH0pIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IEFsZ29yaXRobSBzcGVjaWZpZWQgaW4ga2V5IGlzIG5vdCBjb21wYXRpYmxlIHdp
dGggb25lIHBhc3NlZCB0byBpbXBvcnRLZXkgYXMgYXJndW1lbnQuCi1QQVNTIGNyeXB0by5zdWJ0
bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgneyAia3R5IjogIm9jdCIsICJh
bGciOiAiSFMyNTYiIH0nKSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogU2VjcmV0
IGtleSBkYXRhIGlzIG5vdCBwcmVzZW50IGlzIEpXSy4KLVBBU1MgY3J5cHRvLnN1YnRsZS5pbXBv
cnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7ICJrdHkiOiAib2N0IiwgImFsZyI6ICJB
MTI4Q0JDIiB9JyksIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFNlY3JldCBrZXkg
ZGF0YSBpcyBub3QgcHJlc2VudCBpcyBKV0suCi1QQVNTIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5
KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgneyAia3R5IjogIm9jdCIsICJhbGciOiAiSFMyNTYi
LCAidXNlIjogInNpZyIsICJleHQiOiBmYWxzZSwgImsiOiAiMTIzNCIgfScpLCBudWxsKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBLZXkgc2l6ZSBpcyBub3QgdmFsaWQgZm9yIEhTMjU2Lgot
UEFTUyBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoJ3sg
Imt0eSI6ICJvY3QiLCAiYWxnIjogIkExMjhDQkMiLCAidXNlIjogInNpZyIsICJleHQiOiBmYWxz
ZSwgImsiOiAiMTIzNCIgfScpLCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBLZXkg
c2l6ZSBpcyBub3QgdmFsaWQgZm9yIEExMjhDQkMuCi1QQVNTIGNyeXB0by5zdWJ0bGUuaW1wb3J0
S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgneyAia3R5IjogIm9jdCIsICJhbGciOiAiQTEy
OENCQyIsICJ1c2UiOiAic2lnIiwgImV4dCI6IGZhbHNlLCAiayI6ICJhaGprbjIzMzg3Zmduc2li
ZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9JyksIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IEtleSBzaXplIGlzIG5vdCB2YWxpZCBmb3IgQTEyOENCQy4KLVBBU1MgY3J5cHRv
LnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7ICJrdHkiOiAib2N0
IiwgImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwgImV4dCI6IGZhbHNlLCAiayI6ICJhaGpr
bjIzMzg3Zituc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9JyksIG51bGwpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IENhbm5vdCBkZWNvZGUgYmFzZTY0dXJsIGtleSBkYXRhIGlu
IEpXSy4KLVBBU1MgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFy
cmF5KCd7ICJrdHkiOiAxLCAiYWxnIjogIkhTMjU2IiwgInVzZSI6ICJzaWciLCAiZXh0IjogZmFs
c2UsICJrIjogImFoamtuMjMzODdmZ25zaWJmMjNxc3ZhaGprbjM3Mzg3Zmduc2liZjIzcXMiIH0n
KSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogRXhwZWN0ZWQgYSBzdHJpbmcgdmFs
dWUgZm9yICJrdHkiIEpTT04ga2V5LgotUEFTUyBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandr
IiwgYXNjaWlUb1VpbnQ4QXJyYXkoJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogMSwgInVzZSI6ICJz
aWciLCAiZXh0IjogZmFsc2UsICJrIjogImFoamtuMjMzODdmZ25zaWJmMjNxc3ZhaGprbjM3Mzg3
Zmduc2liZjIzcXMiIH0nKSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogRXhwZWN0
ZWQgYSBzdHJpbmcgdmFsdWUgZm9yICJhbGciIEpTT04ga2V5LgotUEFTUyBjcnlwdG8uc3VidGxl
LmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoJ3sgImt0eSI6ICJvY3QiLCAiYWxn
IjogIkhTMjU2IiwgInVzZSI6IDEsICJleHQiOiBmYWxzZSwgImsiOiAiYWhqa24yMzM4N2ZnbnNp
YmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfScpLCBudWxsKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBFeHBlY3RlZCBhIHN0cmluZyB2YWx1ZSBmb3IgInVzZSIgSlNPTiBrZXkuCi1Q
QVNTIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgneyAi
a3R5IjogIm9jdCIsICJhbGciOiAiSFMyNTYiLCAidXNlIjogInNpZyIsICJleHQiOiAiZmFsc2Ui
LCAiayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9Jyks
IG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEV4cGVjdGVkIGEgYm9vbGVhbiB2YWx1
ZSBmb3IgImV4dCIgSlNPTiBrZXkuCi1QQVNTIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2si
LCBhc2NpaVRvVWludDhBcnJheSgneyAia3R5IjogIm9jdCIsICJhbGciOiAiSFMyNTYiLCAidXNl
IjogInNpZyIsICJleHQiOiBmYWxzZSwgImsiOiAxIH0nKSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogRXhwZWN0ZWQgYSBzdHJpbmcgdmFsdWUgZm9yICJrIiBKU09OIGtleS4KLVBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2ltcG9ydC1qd2suaHRtbCBiL0xheW91dFRl
c3RzL2NyeXB0by9zdWJ0bGUvaW1wb3J0LWp3ay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDNhMjQwOTM2ZmMzY2JlMGIxZTI1MWIyM2YzNGY3YjZhMWNlYzVlLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvaW1wb3J0LWp3ay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Nv
bW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigi
VGVzdCBlcnJvciBoYW5kbGluZyBmb3IgSldLIGltcG9ydC4iKTsKLQotc2hvdWxkVGhyb3coJ2Ny
eXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ1wnKSwgbnVs
bCknKQotc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRv
VWludDhBcnJheShcJ3tcJyksIG51bGwpJykKLXNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmlt
cG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoXCdudWxsXCcpLCBudWxsKScpCi1zaG91
bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5
KFwndW5kZWZpbmVkXCcpLCBudWxsKScpCi1zaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5pbXBv
cnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KFwne31cJyksIG51bGwpJykKLXNob3VsZFRo
cm93KCdjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoXCd7
fVwnKSwgImFlcy1jYmMiKScpCi0KLS8vIFVua25vd24vaW52YWxpZCBKV0sgdmFsdWVzLgotc2hv
dWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJh
eShcJ3sgImt0eSI6ICJmb29iYXIiLCAiYWxnIjogIkhTMjU2IiwgInVzZSI6ICJzaWciLCAiayI6
ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9XCcpLCBudWxs
KScpCi1zaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9V
aW50OEFycmF5KFwneyAia3R5IjogIm9jdCIsICJhbGciOiAiZm9vYmFyIiwgInVzZSI6ICJzaWci
LCAiayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9XCcp
LCBudWxsKScpCi0KLS8vIEFsZ29yaXRobSBtaXNtYXRjaC4KLXNob3VsZFRocm93KCdjcnlwdG8u
c3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoXCd7ICJrdHkiOiAib2N0
IiwgImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwgImV4dCI6IGZhbHNlLCAiayI6ICJhaGpr
bjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9XCcpLCAiYWVzLWNiYyIp
JykKLXNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1Vp
bnQ4QXJyYXkoXCd7ICJrdHkiOiAib2N0IiwgImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwg
ImV4dCI6IGZhbHNlLCAiayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNp
YmYyM3FzIiB9XCcpLCB7IG5hbWU6ICJobWFjIiwgaGFzaDogInNoYS0xIiB9KScpCi0KLS8vIE5v
IGtleSBkYXRhLgotc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBh
c2NpaVRvVWludDhBcnJheShcJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkhTMjU2IiB9XCcpLCBu
dWxsKScpCi1zaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lp
VG9VaW50OEFycmF5KFwneyAia3R5IjogIm9jdCIsICJhbGciOiAiQTEyOENCQyIgfVwnKSwgbnVs
bCknKQotCi0vLyBLZXkgZGF0YSBsZW5ndGggaXMgaW5jb3JyZWN0LCBub3QgYWxsb3dlZCBpbiBK
V0suCi1zaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9V
aW50OEFycmF5KFwneyAia3R5IjogIm9jdCIsICJhbGciOiAiSFMyNTYiLCAidXNlIjogInNpZyIs
ICJleHQiOiBmYWxzZSwgImsiOiAiMTIzNCIgfVwnKSwgbnVsbCknKQotc2hvdWxkVGhyb3coJ2Ny
eXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ3sgImt0eSI6
ICJvY3QiLCAiYWxnIjogIkExMjhDQkMiLCAidXNlIjogInNpZyIsICJleHQiOiBmYWxzZSwgImsi
OiAiMTIzNCIgfVwnKSwgbnVsbCknKQotc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0
S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkEx
MjhDQkMiLCAidXNlIjogInNpZyIsICJleHQiOiBmYWxzZSwgImsiOiAiYWhqa24yMzM4N2ZnbnNp
YmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfVwnKSwgbnVsbCknKQotCi0vLyBLZXkgZGF0
YSBpcyBub3QgdmFsaWQgYmFzZTY0dXJsLgotc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1w
b3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjog
IkhTMjU2IiwgInVzZSI6ICJzaWciLCAiZXh0IjogZmFsc2UsICJrIjogImFoamtuMjMzODdmK25z
aWJmMjNxc3ZhaGprbjM3Mzg3Zmduc2liZjIzcXMiIH1cJyksIG51bGwpJykKLQotLy8gSW5jb3Jy
ZWN0IGRhdGEgdHlwZXMuCi1zaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3
ayIsIGFzY2lpVG9VaW50OEFycmF5KFwneyAia3R5IjogMSwgImFsZyI6ICJIUzI1NiIsICJ1c2Ui
OiAic2lnIiwgImV4dCI6IGZhbHNlLCAiayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24z
NzM4N2ZnbnNpYmYyM3FzIiB9XCcpLCBudWxsKScpCi1zaG91bGRUaHJvdygnY3J5cHRvLnN1YnRs
ZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KFwneyAia3R5IjogIm9jdCIsICJh
bGciOiAxLCAidXNlIjogInNpZyIsICJleHQiOiBmYWxzZSwgImsiOiAiYWhqa24yMzM4N2ZnbnNp
YmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfVwnKSwgbnVsbCknKQotc2hvdWxkVGhyb3co
J2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ3sgImt0
eSI6ICJvY3QiLCAiYWxnIjogIkhTMjU2IiwgInVzZSI6IDEsICJleHQiOiBmYWxzZSwgImsiOiAi
YWhqa24yMzM4N2ZnbnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfVwnKSwgbnVsbCkn
KQotc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWlu
dDhBcnJheShcJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkhTMjU2IiwgInVzZSI6ICJzaWciLCAi
ZXh0IjogImZhbHNlIiwgImsiOiAiYWhqa24yMzM4N2ZnbnNpYmYyM3FzdmFoamtuMzczODdmZ25z
aWJmMjNxcyIgfVwnKSwgbnVsbCknKQotc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0
S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkhT
MjU2IiwgInVzZSI6ICJzaWciLCAiZXh0IjogZmFsc2UsICJrIjogMSB9XCcpLCBudWxsKScpCi08
L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9qd2stZXhwb3J0LXVzZS12YWx1ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY3J5cHRvL3N1YnRsZS9qd2stZXhwb3J0LXVzZS12YWx1ZXMtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NzM3ZGFmZDBmODEwNTY1MmI1Yzk4ODFkODBhMzVk
ZjAzMGQ1NjRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvandrLWV4cG9ydC11c2UtdmFsdWVzLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLVRlc3QgZXhwb3J0aW5nIGtleXMg
d2l0aCB2YXJpb3VzIHVzYWdlcyB0byBKV0suCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
LQotCi1lbmNyeXB0OgotUEFTUyBqd2sudXNlIGlzIHVuZGVmaW5lZAotUEFTUyBqd2sua2V5X29w
cyBpcyBbImVuY3J5cHQiXQotCi1kZWNyeXB0OgotUEFTUyBqd2sudXNlIGlzIHVuZGVmaW5lZAot
UEFTUyBqd2sua2V5X29wcyBpcyBbImRlY3J5cHQiXQotCi1lbmNyeXB0LGRlY3J5cHQ6Ci1QQVNT
IGp3ay51c2UgaXMgdW5kZWZpbmVkCi1QQVNTIGp3ay5rZXlfb3BzIGlzIFsiZW5jcnlwdCIsImRl
Y3J5cHQiXQotCi13cmFwS2V5OgotUEFTUyBqd2sudXNlIGlzIHVuZGVmaW5lZAotUEFTUyBqd2su
a2V5X29wcyBpcyBbIndyYXBLZXkiXQotCi11bndyYXBLZXk6Ci1QQVNTIGp3ay51c2UgaXMgdW5k
ZWZpbmVkCi1QQVNTIGp3ay5rZXlfb3BzIGlzIFsidW53cmFwS2V5Il0KLQotd3JhcEtleSx1bndy
YXBLZXk6Ci1QQVNTIGp3ay51c2UgaXMgdW5kZWZpbmVkCi1QQVNTIGp3ay5rZXlfb3BzIGlzIFsi
d3JhcEtleSIsInVud3JhcEtleSJdCi0KLWVuY3J5cHQsZGVjcnlwdCx3cmFwS2V5OgotUEFTUyBq
d2sudXNlIGlzIHVuZGVmaW5lZAotUEFTUyBqd2sua2V5X29wcyBpcyBbImVuY3J5cHQiLCJkZWNy
eXB0Iiwid3JhcEtleSJdCi0KLWVuY3J5cHQsZGVjcnlwdCx3cmFwS2V5LHVud3JhcEtleToKLVBB
U1MgandrLnVzZSBpcyB1bmRlZmluZWQKLVBBU1MgandrLmtleV9vcHMgaXMgWyJlbmNyeXB0Iiwi
ZGVjcnlwdCIsIndyYXBLZXkiLCJ1bndyYXBLZXkiXQotCi1zaWduOgotUEFTUyBqd2sudXNlIGlz
IHVuZGVmaW5lZAotUEFTUyBqd2sua2V5X29wcyBpcyBbInNpZ24iXQotCi12ZXJpZnk6Ci1QQVNT
IGp3ay51c2UgaXMgdW5kZWZpbmVkCi1QQVNTIGp3ay5rZXlfb3BzIGlzIFsidmVyaWZ5Il0KLQot
c2lnbix2ZXJpZnk6Ci1QQVNTIGp3ay51c2UgaXMgdW5kZWZpbmVkCi1QQVNTIGp3ay5rZXlfb3Bz
IGlzIFsic2lnbiIsInZlcmlmeSJdCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
LQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L2p3ay1leHBvcnQtdXNlLXZhbHVlcy5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9q
d2stZXhwb3J0LXVzZS12YWx1ZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MmU5YTJhMjIyMTEwMTU2NWJkNWRhYzkxN2VmOGZmZjg5NDhhZmQ3Yy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L2p3ay1leHBvcnQtdXNlLXZhbHVlcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlv
bigiVGVzdCBleHBvcnRpbmcga2V5cyB3aXRoIHZhcmlvdXMgdXNhZ2VzIHRvIEpXSy4iKTsKLQot
anNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci0KLXZhciBh
ZXNLZXlBc0FycmF5QnVmZmVyID0gQmFzZTY0VVJMLnBhcnNlKCJqbk93OTlvT1pGTElFUE1yZ0pC
NTVXTDQ2dEpTTEd0NyIpOwotdmFyIGhtYWNLZXlBc0FycmF5QnVmZmVyID0gQmFzZTY0VVJMLnBh
cnNlKCJhaGprbi1fMzg3Zmduc2liZjIzcXN2YWhqa24tXzM4N2ZnbnNpYmYyM3FzIik7Ci0KLWZ1
bmN0aW9uIHRlc3RXaXRoQUVTQ0JDKHVzYWdlcywgZXhwZWN0ZWRLZXlPcHMpCi17Ci0gICAgcmV0
dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBhZXNLZXlBc0FycmF5QnVmZmVyLCAi
QUVTLUNCQyIsIGV4dHJhY3RhYmxlLCB1c2FnZXMpLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0g
ICAgICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgiandrIiwgcmVzdWx0KTsKLSAg
ICB9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgICAgICBqd2sgPSBKU09OLnBhcnNlKGJ5
dGVzVG9BU0NJSVN0cmluZyhyZXN1bHQpKTsKLSAgICAgICAgZGVidWcodXNhZ2VzICsgIjoiKTsK
LSAgICAgICAgc2hvdWxkQmUoImp3ay51c2UiLCAidW5kZWZpbmVkIik7Ci0gICAgICAgIHNob3Vs
ZEJlKCJqd2sua2V5X29wcyIsIEpTT04uc3RyaW5naWZ5KGV4cGVjdGVkS2V5T3BzKSk7Ci0gICAg
ICAgIGRlYnVnKCIiKTsKLSAgICB9KTsKLX0KLQotZnVuY3Rpb24gdGVzdFdpdGhITUFDKHVzYWdl
cywgZXhwZWN0ZWRLZXlPcHMpCi17Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5
KCJyYXciLCBobWFjS2V5QXNBcnJheUJ1ZmZlciwge25hbWU6ICdobWFjJywgaGFzaDoge25hbWU6
ICdzaGEtMjU2J319LCBleHRyYWN0YWJsZSwgdXNhZ2VzKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkg
ewotICAgICAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoImp3ayIsIHJlc3VsdCk7
Ci0gICAgfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICAgICAgandrID0gSlNPTi5wYXJz
ZShieXRlc1RvQVNDSUlTdHJpbmcocmVzdWx0KSk7Ci0gICAgICAgIGRlYnVnKHVzYWdlcyArICI6
Iik7Ci0gICAgICAgIHNob3VsZEJlKCJqd2sudXNlIiwgInVuZGVmaW5lZCIpOwotICAgICAgICBz
aG91bGRCZSgiandrLmtleV9vcHMiLCBKU09OLnN0cmluZ2lmeShleHBlY3RlZEtleU9wcykpOwot
ICAgICAgICBkZWJ1ZygiIik7Ci0gICAgfSk7Ci19Ci0KLVByb21pc2UuYWxsKFsKLSAgICB0ZXN0
V2l0aEFFU0NCQyhbImVuY3J5cHQiXSwgWyJlbmNyeXB0Il0pLAotICAgIHRlc3RXaXRoQUVTQ0JD
KFsiZGVjcnlwdCJdLCBbImRlY3J5cHQiXSksCi0gICAgdGVzdFdpdGhBRVNDQkMoWyJlbmNyeXB0
IiwgImRlY3J5cHQiXSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSksCi0gICAgdGVzdFdpdGhBRVND
QkMoWyJ3cmFwS2V5Il0sIFsid3JhcEtleSJdKSwKLSAgICB0ZXN0V2l0aEFFU0NCQyhbInVud3Jh
cEtleSJdLCBbInVud3JhcEtleSJdKSwKLSAgICB0ZXN0V2l0aEFFU0NCQyhbIndyYXBLZXkiLCAi
dW53cmFwS2V5Il0sIFsid3JhcEtleSIsICJ1bndyYXBLZXkiXSksCi0gICAgdGVzdFdpdGhBRVND
QkMoWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSJdLCBbImVuY3J5cHQiLCAiZGVjcnlw
dCIsICJ3cmFwS2V5Il0pLAotICAgIHRlc3RXaXRoQUVTQ0JDKFsiZW5jcnlwdCIsICJkZWNyeXB0
IiwgIndyYXBLZXkiLCAidW53cmFwS2V5Il0sIFsiZW5jcnlwdCIsICJkZWNyeXB0IiwgIndyYXBL
ZXkiLCAidW53cmFwS2V5Il0pLAotICAgIHRlc3RXaXRoSE1BQyhbInNpZ24iXSwgWyJzaWduIl0p
LAotICAgIHRlc3RXaXRoSE1BQyhbInZlcmlmeSJdLCBbInZlcmlmeSJdKSwKLSAgICB0ZXN0V2l0
aEhNQUMoWyJzaWduIiwgInZlcmlmeSJdLCBbInNpZ24iLCAidmVyaWZ5Il0pLAotXSkudGhlbihm
dW5jdGlvbigpIHsgZmluaXNoSlNUZXN0KCk7IH0gKTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2p3ay1pbXBvcnQt
dXNlLXZhbHVlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2p3ay1p
bXBvcnQtdXNlLXZhbHVlcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDRhZWRkYWE3YTViZTJhYWM1ZGZkY2UzMjI0NDM3Y2E3YTc3NzU1N2QuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS9qd2staW1wb3J0LXVzZS12YWx1ZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsNTMgKzAsMCBAQAotVGVzdCBpbXBvcnRpbmcga2V5cyB3aXRoIHZhcmlvdXMgdXNlcyBmcm9t
IEpXSy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgdGVzdFdpdGhBRVND
QkMoWyJlbmNyeXB0Il0sIHtrZXlfb3BzOiBbImVuY3J5cHQiLCAiZW5jcnlwdCJdfSkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogSldLIGtleV9vcHMgY29udGFpbnMgYSBkdXBsaWNhdGUgb3Bl
cmF0aW9uLgotCi17ImtleV9vcHMiOlsiZW5jcnlwdCJdfToKLVBBU1Mga2V5LnVzYWdlcyBpcyBb
ImVuY3J5cHQiXQotCi17ImtleV9vcHMiOlsiZGVjcnlwdCJdfToKLVBBU1Mga2V5LnVzYWdlcyBp
cyBbImRlY3J5cHQiXQotCi17ImtleV9vcHMiOlsiZW5jcnlwdCIsImRlY3J5cHQiXX06Ci1QQVNT
IGtleS51c2FnZXMgaXMgWyJkZWNyeXB0IiwiZW5jcnlwdCJdCi0KLXsia2V5X29wcyI6WyJ3cmFw
S2V5Il19OgotUEFTUyBrZXkudXNhZ2VzIGlzIFsid3JhcEtleSJdCi0KLXsia2V5X29wcyI6WyJ1
bndyYXBLZXkiXX06Ci1QQVNTIGtleS51c2FnZXMgaXMgWyJ1bndyYXBLZXkiXQotCi17ImtleV9v
cHMiOlsid3JhcEtleSIsInVud3JhcEtleSJdfToKLVBBU1Mga2V5LnVzYWdlcyBpcyBbInVud3Jh
cEtleSIsIndyYXBLZXkiXQotCi17ImtleV9vcHMiOlsiZW5jcnlwdCIsImRlY3J5cHQiLCJ3cmFw
S2V5Il19OgotUEFTUyBrZXkudXNhZ2VzIGlzIFsiZGVjcnlwdCIsImVuY3J5cHQiLCJ3cmFwS2V5
Il0KLQoteyJ1c2UiOiJlbmMifToKLVBBU1Mga2V5LnVzYWdlcyBpcyBbImRlY3J5cHQiLCJlbmNy
eXB0IiwidW53cmFwS2V5Iiwid3JhcEtleSJdCi0KLXsia2V5X29wcyI6WyJzaWduIl19OgotUEFT
UyBrZXkudXNhZ2VzIGlzIFsic2lnbiJdCi0KLXsia2V5X29wcyI6WyJ2ZXJpZnkiXX06Ci1QQVNT
IGtleS51c2FnZXMgaXMgWyJ2ZXJpZnkiXQotCi17InVzZSI6InNpZyJ9OgotUEFTUyBrZXkudXNh
Z2VzIGlzIFsic2lnbiIsInZlcmlmeSJdCi0KLXsia2V5X29wcyI6WyInZW5jcnlwdCciXX06Ci1Q
QVNTIGtleS51c2FnZXMgaXMgW10KLQoteyJrZXlfb3BzIjpbImVuY3J5cHQgIl19OgotUEFTUyBr
ZXkudXNhZ2VzIGlzIFtdCi0KLXsia2V5X29wcyI6WyJFbmNyeXB0Il19OgotUEFTUyBrZXkudXNh
Z2VzIGlzIFtdCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01Q
TEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2p3ay1pbXBvcnQt
dXNlLXZhbHVlcy5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9qd2staW1wb3J0LXVz
ZS12YWx1ZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDJiZjEzMjUzOTI2
ODExNjA2OTgwNmQ5MzljYTdlYWExZWM5Mjg5Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2p3ay1pbXBvcnQt
dXNlLXZhbHVlcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTUgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBpbXBv
cnRpbmcga2V5cyB3aXRoIHZhcmlvdXMgdXNlcyBmcm9tIEpXSy4iKTsKLQotanNUZXN0SXNBc3lu
YyA9IHRydWU7Ci0KLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci0KLXZhciBhZXNLZXlBc0pTT04g
PSB7Ci0gICAgImFsZyI6ICJBMTkyQ0JDIiwKLSAgICAiZXh0IjogdHJ1ZSwKLSAgICAia3R5Ijog
Im9jdCIsCi0gICAgImsiOiAiam5Pdzk5b09aRkxJRVBNcmdKQjU1V0w0NnRKU0xHdDciCi19Owot
Ci12YXIgaG1hY0tleUFzSlNPTiA9IHsKLSAgICAiYWxnIjogIkhTMjU2IiwKLSAgICAiZXh0Ijog
dHJ1ZSwKLSAgICAia3R5IjogIm9jdCIsCi0gICAgImsiOiAiYWhqa24tXzM4N2ZnbnNpYmYyM3Fz
dmFoamtuLV8zODdmZ25zaWJmMjNxcyIKLX07Ci0KLWZ1bmN0aW9uIHRlc3RXaXRoQUVTQ0JDKGV4
cGVjdGVkVXNhZ2VzLCBqd2tVc2FnZXMpCi17Ci0gICAgaWYgKGp3a1VzYWdlcy5rZXlfb3BzKSB7
Ci0gICAgICAgIGFlc0tleUFzSlNPTi5rZXlfb3BzID0gandrVXNhZ2VzLmtleV9vcHM7Ci0gICAg
ICAgIGRlbGV0ZSBhZXNLZXlBc0pTT04udXNlOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGRlbGV0
ZSBhZXNLZXlBc0pTT04ua2V5X29wczsKLSAgICAgICAgYWVzS2V5QXNKU09OLnVzZSA9IGp3a1Vz
YWdlcy51c2U7Ci0gICAgfQotCi0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJq
d2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShhZXNLZXlBc0pTT04pKSwgIkFF
Uy1DQkMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSIsICJ1
bndyYXBLZXkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICAgICAga2V5ID0gcmVzdWx0
OwotICAgICAgICBkZWJ1ZyhKU09OLnN0cmluZ2lmeShqd2tVc2FnZXMpICsgIjoiKTsKLSAgICAg
ICAgc2hvdWxkQmUoImtleS51c2FnZXMiLCBKU09OLnN0cmluZ2lmeShleHBlY3RlZFVzYWdlcykp
OwotICAgICAgICBkZWJ1ZygiIik7Ci0gICAgfSk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RXaXRoSE1B
QyhleHBlY3RlZFVzYWdlcywgandrVXNhZ2VzKQotewotICAgIGlmIChqd2tVc2FnZXMua2V5X29w
cykgewotICAgICAgICBobWFjS2V5QXNKU09OLmtleV9vcHMgPSBqd2tVc2FnZXMua2V5X29wczsK
LSAgICAgICAgZGVsZXRlIGhtYWNLZXlBc0pTT04udXNlOwotICAgIH0gZWxzZSB7Ci0gICAgICAg
IGRlbGV0ZSBobWFjS2V5QXNKU09OLmtleV9vcHM7Ci0gICAgICAgIGhtYWNLZXlBc0pTT04udXNl
ID0gandrVXNhZ2VzLnVzZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBv
cnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KGhtYWNLZXlBc0pT
T04pKSwge25hbWU6ICdobWFjJywgaGFzaDoge25hbWU6ICdzaGEtMjU2J319LCBleHRyYWN0YWJs
ZSwgWyJzaWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgICAgICBr
ZXkgPSByZXN1bHQ7Ci0gICAgICAgIGRlYnVnKEpTT04uc3RyaW5naWZ5KGp3a1VzYWdlcykgKyAi
OiIpOwotICAgICAgICBzaG91bGRCZSgia2V5LnVzYWdlcyIsIEpTT04uc3RyaW5naWZ5KGV4cGVj
dGVkVXNhZ2VzKSk7Ci0gICAgICAgIGRlYnVnKCIiKTsKLSAgICB9KTsKLX0KLQotLy8gRHVwbGlj
YXRlcyBhcmUgbm90IGFsbG93ZWQuIFdlIGN1cnJlbnRseSByYWlzZSBhbiBleGNlcHRpb24sIGFs
dGhvdWdoIHdlIHNob3VsZCByZWplY3QgdGhlIHByb21pc2UgaW5zdGVhZC4KLXNob3VsZFRocm93
KCd0ZXN0V2l0aEFFU0NCQyhbImVuY3J5cHQiXSwge2tleV9vcHM6IFsiZW5jcnlwdCIsICJlbmNy
eXB0Il19KScpOwotZGVidWcoIiIpOwotCi1Qcm9taXNlLmFsbChbCi0gICAgdGVzdFdpdGhBRVND
QkMoWyJlbmNyeXB0Il0sIHtrZXlfb3BzOiBbImVuY3J5cHQiXX0pLAotICAgIHRlc3RXaXRoQUVT
Q0JDKFsiZGVjcnlwdCJdLCB7a2V5X29wczogWyJkZWNyeXB0Il19KSwKLSAgICB0ZXN0V2l0aEFF
U0NCQyhbImRlY3J5cHQiLCAiZW5jcnlwdCJdLCB7a2V5X29wczogWyJlbmNyeXB0IiwgImRlY3J5
cHQiXX0pLAotICAgIHRlc3RXaXRoQUVTQ0JDKFsid3JhcEtleSJdLCB7a2V5X29wczogWyJ3cmFw
S2V5Il19KSwKLSAgICB0ZXN0V2l0aEFFU0NCQyhbInVud3JhcEtleSJdLCB7a2V5X29wczogWyJ1
bndyYXBLZXkiXX0pLAotICAgIHRlc3RXaXRoQUVTQ0JDKFsidW53cmFwS2V5IiwgIndyYXBLZXki
XSwge2tleV9vcHM6IFsid3JhcEtleSIsICJ1bndyYXBLZXkiXX0pLAotICAgIHRlc3RXaXRoQUVT
Q0JDKFsiZGVjcnlwdCIsICJlbmNyeXB0IiwgIndyYXBLZXkiXSwge2tleV9vcHM6IFsiZW5jcnlw
dCIsICJkZWNyeXB0IiwgIndyYXBLZXkiXX0pLAotICAgIHRlc3RXaXRoQUVTQ0JDKFsiZGVjcnlw
dCIsICJlbmNyeXB0IiwgInVud3JhcEtleSIsICJ3cmFwS2V5Il0sIHt1c2U6ICJlbmMifSksCi0g
ICAgdGVzdFdpdGhITUFDKFsic2lnbiJdLCB7a2V5X29wczogWyJzaWduIl19KSwKLSAgICB0ZXN0
V2l0aEhNQUMoWyJ2ZXJpZnkiXSwge2tleV9vcHM6IFsidmVyaWZ5Il19KSwKLSAgICB0ZXN0V2l0
aEhNQUMoWyJzaWduIiwgInZlcmlmeSJdLCB7dXNlOiAic2lnIn0pLAotCi0vLyBVbmtub3duIGtl
eV9vcHMgc3RyaW5ncyBhcmUgaWdub3JlZC4KLSAgICB0ZXN0V2l0aEFFU0NCQyhbXSwge2tleV9v
cHM6IFsiJ2VuY3J5cHQnIl19KSwKLSAgICB0ZXN0V2l0aEFFU0NCQyhbXSwge2tleV9vcHM6IFsi
ZW5jcnlwdCAiXX0pLAotICAgIHRlc3RXaXRoQUVTQ0JDKFtdLCB7a2V5X29wczogWyJFbmNyeXB0
Il19KSwKLQotXSkudGhlbihmdW5jdGlvbigpIHsgZmluaXNoSlNUZXN0KCk7IH0gKTsKLTwvc2Ny
aXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8v
c3VidGxlL3Bvc3RNZXNzYWdlLXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlw
dG8vc3VidGxlL3Bvc3RNZXNzYWdlLXdvcmtlci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDYwY2QzMDIwY2IxNDRkYTdmYmVhN2FkMWFiM2FkZTMzZTFmNDMxMWMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvY3J5cHRvL3N1YnRsZS9wb3N0TWVzc2FnZS13b3JrZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTAgKzAsMCBAQAotVGVzdCBzZW5kaW5nIGNyeXB0byBrZXlzIHZpYSBwb3N0
TWVzc2FnZSB0byBhIHdvcmtlci4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUZB
SUwgQ2hlY2sgZmFpbGVkIGluIHdvcmtlcjoga2V5IGlzIG51bGwKLVBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL3Bvc3RNZXNzYWdlLXdvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9wb3N0TWVzc2FnZS13b3JrZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZDc1ZWJmMzM5MjI2YzFjNTU1NGE3ZTQ2NmU2NWE1MTg0NThhMjQ1YS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlw
dG8vc3VidGxlL3Bvc3RNZXNzYWdlLXdvcmtlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci0KLWRlc2NyaXB0aW9uKCJUZXN0IHNlbmRpbmcgY3J5cHRv
IGtleXMgdmlhIHBvc3RNZXNzYWdlIHRvIGEgd29ya2VyLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKLQotaW1wb3J0VGVzdEtleXMoKS50aGVuKGZ1bmN0aW9uKGtleXMpIHsKLSAgICB2YXIg
d29ya2VyID0gbmV3IFdvcmtlcigicmVzb3VyY2VzL3Bvc3RNZXNzYWdlLXdvcmtlci5qcyIpOwot
ICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldnQpIHsKLSAgICAgICAgaWYgKCFldnQu
ZGF0YS5yZXN1bHQpIHsKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNoZWNrIGZhaWxlZCBpbiB3
b3JrZXI6ICIgKyBldnQuZGF0YS5tZXNzYWdlKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIkFsbCBjaGVja3MgcGFzc2VkIGluIHdvcmtlciIpOwotICAgICAgICAg
ICAga2V5ID0gZXZ0LmRhdGEua2V5OwotICAgICAgICAgICAgc2hvdWxkQmUoImtleS50eXBlIiwg
IidzZWNyZXQnIik7Ci0gICAgICAgICAgICBzaG91bGRCZSgia2V5LmV4dHJhY3RhYmxlIiwgInRy
dWUiKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0hNQUMn
Iik7Ci0gICAgICAgICAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMTYiKTsK
LSAgICAgICAgICAgIHNob3VsZEJlKCJrZXkudXNhZ2VzIiwgJ1siZGVjcnlwdCIsICJlbmNyeXB0
IiwgInNpZ24iLCAidmVyaWZ5Il0nKTsKLSAgICAgICAgfQotICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKLSAgICB9Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKGtleXMuaG1hY1NoYTEpOwotfSk7Ci08
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvcmVzb3VyY2VzL2NvbW1vbi5qcyBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUv
cmVzb3VyY2VzL2NvbW1vbi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTIwYjE4
Y2JkMTAwMDE4NzIwNjk2NmFkOTIxZjcyMTBjMzZhZjUwMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3Jlc291
cmNlcy9jb21tb24uanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMDUgKzAsMCBAQAotZnVuY3Rpb24g
aW1wb3J0VGVzdEtleXMoKQotewotICAgIHZhciBrZXlGb3JtYXQgPSAicmF3IjsKLSAgICB2YXIg
ZGF0YSA9IGFzY2lpVG9VaW50OEFycmF5KCIxNiBieXRlcyBvZiBrZXkhIik7Ci0gICAgdmFyIGV4
dHJhY3RhYmxlID0gdHJ1ZTsKLSAgICB2YXIga2V5VXNhZ2VzID0gWydlbmNyeXB0JywgJ2RlY3J5
cHQnLCAnc2lnbicsICd2ZXJpZnknXTsKLQotICAgIHZhciBobWFjUHJvbWlzZSA9IGNyeXB0by5z
dWJ0bGUuaW1wb3J0S2V5KGtleUZvcm1hdCwgZGF0YSwge25hbWU6ICdobWFjJywgaGFzaDoge25h
bWU6ICdzaGEtMSd9fSwgZXh0cmFjdGFibGUsIGtleVVzYWdlcyk7Ci0gICAgdmFyIGFlc0NiY1By
b21pc2UgPSBjcnlwdG8uc3VidGxlLmltcG9ydEtleShrZXlGb3JtYXQsIGRhdGEsIHtuYW1lOiAn
QUVTLUNCQyd9LCBleHRyYWN0YWJsZSwga2V5VXNhZ2VzKTsKLSAgICB2YXIgYWVzQ2JjSnVzdERl
Y3J5cHQgPSBjcnlwdG8uc3VidGxlLmltcG9ydEtleShrZXlGb3JtYXQsIGRhdGEsIHtuYW1lOiAn
QUVTLUNCQyd9LCBmYWxzZSwgWydkZWNyeXB0J10pOwotCi0gICAgcmV0dXJuIFByb21pc2UuYWxs
KFtobWFjUHJvbWlzZSwgYWVzQ2JjUHJvbWlzZSwgYWVzQ2JjSnVzdERlY3J5cHRdKS50aGVuKGZ1
bmN0aW9uKHJlc3VsdHMpIHsKLSAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgIGhtYWNTaGEx
OiByZXN1bHRzWzBdLAotICAgICAgICAgICAgYWVzQ2JjOiByZXN1bHRzWzFdLAotICAgICAgICAg
ICAgYWVzQ2JjSnVzdERlY3J5cHQ6IHJlc3VsdHNbMl0sCi0gICAgICAgIH07Ci0gICAgfSk7Ci19
Ci0KLS8vIFZlcmlmaWVzIHRoYXQgdGhlIGdpdmVuICJieXRlcyIgaG9sZHMgdGhlIHNhbWUgdmFs
dWUgYXMgImV4cGVjdGVkSGV4U3RyaW5nIi4KLS8vICJieXRlcyIgY2FuIGJlIGFueXRoaW5nIHJl
Y29nbml6ZWQgYnkgImJ5dGVzVG9IZXhTdHJpbmcoKSIuCi1mdW5jdGlvbiBieXRlc1Nob3VsZE1h
dGNoSGV4U3RyaW5nKHRlc3REZXNjcmlwdGlvbiwgZXhwZWN0ZWRIZXhTdHJpbmcsIGJ5dGVzKQot
ewotICAgIGV4cGVjdGVkSGV4U3RyaW5nID0gIlsiICsgZXhwZWN0ZWRIZXhTdHJpbmcudG9Mb3dl
ckNhc2UoKSArICJdIjsKLSAgICB2YXIgYWN0dWFsSGV4U3RyaW5nID0gIlsiICsgYnl0ZXNUb0hl
eFN0cmluZyhieXRlcykgKyAiXSI7Ci0KLSAgICBpZiAoYWN0dWFsSGV4U3RyaW5nID09PSBleHBl
Y3RlZEhleFN0cmluZykgewotICAgICAgICBkZWJ1ZygiUEFTUzogIiArIHRlc3REZXNjcmlwdGlv
biArICIgc2hvdWxkIGJlICIgKyBleHBlY3RlZEhleFN0cmluZyArICIgYW5kIHdhcyIpOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgIGRlYnVnKCJGQUlMOiAiICsgdGVzdERlc2NyaXB0aW9uICsgIiBz
aG91bGQgYmUgIiArIGV4cGVjdGVkSGV4U3RyaW5nICsgIiBidXQgd2FzICIgKyBhY3R1YWxIZXhT
dHJpbmcpOwotICAgIH0KLX0KLQotLy8gQnVpbGRzIGEgaGV4IHN0cmluZyByZXByZXNlbnRhdGlv
biBmb3IgYW4gYXJyYXktbGlrZSBpbnB1dC4KLS8vICJieXRlcyIgY2FuIGJlIGFuIEFycmF5IG9m
IGJ5dGVzLCBhbiBBcnJheUJ1ZmZlciwgb3IgYW55IFR5cGVkQXJyYXkuCi0vLyBUaGUgb3V0cHV0
IGxvb2tzIGxpa2UgdGhpczoKLS8vICAgIGFiMDM0Yzk5Ci1mdW5jdGlvbiBieXRlc1RvSGV4U3Ry
aW5nKGJ5dGVzKQotewotICAgIGlmICghYnl0ZXMpCi0gICAgICAgIHJldHVybiBudWxsOwotCi0g
ICAgYnl0ZXMgPSBuZXcgVWludDhBcnJheShieXRlcyk7Ci0gICAgdmFyIGhleEJ5dGVzID0gW107
Ci0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAg
IHZhciBieXRlU3RyaW5nID0gYnl0ZXNbaV0udG9TdHJpbmcoMTYpOwotICAgICAgICBpZiAoYnl0
ZVN0cmluZy5sZW5ndGggPCAyKQotICAgICAgICAgICAgYnl0ZVN0cmluZyA9ICIwIiArIGJ5dGVT
dHJpbmc7Ci0gICAgICAgIGhleEJ5dGVzLnB1c2goYnl0ZVN0cmluZyk7Ci0gICAgfQotCi0gICAg
cmV0dXJuIGhleEJ5dGVzLmpvaW4oIiIpOwotfQotCi1mdW5jdGlvbiBieXRlc1RvQVNDSUlTdHJp
bmcoYnl0ZXMpCi17Ci0gICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwg
bmV3IFVpbnQ4QXJyYXkoYnl0ZXMpKTsKLX0KLQotZnVuY3Rpb24gaGV4U3RyaW5nVG9VaW50OEFy
cmF5KGhleFN0cmluZykKLXsKLSAgICBpZiAoaGV4U3RyaW5nLmxlbmd0aCAlIDIgIT0gMCkKLSAg
ICAgICAgdGhyb3cgIkludmFsaWQgaGV4U3RyaW5nIjsKLSAgICB2YXIgYXJyYXlCdWZmZXIgPSBu
ZXcgVWludDhBcnJheShoZXhTdHJpbmcubGVuZ3RoIC8gMik7Ci0KLSAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGhleFN0cmluZy5sZW5ndGg7IGkgKz0gMikgewotICAgICAgICB2YXIgYnl0ZVZhbHVl
ID0gcGFyc2VJbnQoaGV4U3RyaW5nLnN1YnN0cihpLCAyKSwgMTYpOwotICAgICAgICBpZiAoYnl0
ZVZhbHVlID09IE5hTikKLSAgICAgICAgICAgIHRocm93ICJJbnZhbGlkIGhleFN0cmluZyI7Ci0g
ICAgICAgIGFycmF5QnVmZmVyW2kvMl0gPSBieXRlVmFsdWU7Ci0gICAgfQotCi0gICAgcmV0dXJu
IGFycmF5QnVmZmVyOwotfQotCi1mdW5jdGlvbiBhc2NpaVRvVWludDhBcnJheShzdHIpCi17Ci0g
ICAgdmFyIGNoYXJzID0gW107Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyAr
K2kpCi0gICAgICAgIGNoYXJzLnB1c2goc3RyLmNoYXJDb2RlQXQoaSkpOwotICAgIHJldHVybiBu
ZXcgVWludDhBcnJheShjaGFycyk7Ci19Ci0KLWZ1bmN0aW9uIGZhaWxBbmRGaW5pc2hKU1Rlc3Qo
ZXJyb3IpCi17Ci0gICAgaWYgKGVycm9yKQotICAgICAgIGRlYnVnKGVycm9yKTsKLSAgICBmaW5p
c2hKU1Rlc3QoKTsKLX0KLQotdmFyIEJhc2U2NFVSTCA9IHsKLSAgICBzdHJpbmdpZnk6IGZ1bmN0
aW9uIChhKSB7Ci0gICAgICAgIHZhciBiYXNlNjRzdHJpbmcgPSBidG9hKFN0cmluZy5mcm9tQ2hh
ckNvZGUuYXBwbHkoMCwgYSkpOwotICAgICAgICByZXR1cm4gYmFzZTY0c3RyaW5nLnJlcGxhY2Uo
Lz0vZywgIiIpLnJlcGxhY2UoL1wrL2csICItIikucmVwbGFjZSgvXC8vZywgIl8iKTsKLSAgICB9
LAotICAgIHBhcnNlOiBmdW5jdGlvbiAocykgewotICAgICAgICBzID0gcy5yZXBsYWNlKC8tL2cs
ICIrIikucmVwbGFjZSgvXy9nLCAiLyIpLnJlcGxhY2UoL1xzL2csICcnKTsKLSAgICAgICAgcmV0
dXJuIG5ldyBVaW50OEFycmF5KEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChhdG9iKHMpLCBmdW5j
dGlvbiAoYykgeyByZXR1cm4gYy5jaGFyQ29kZUF0KDApIH0pKTsKLSAgICB9Ci19OwotCi1pZiAo
IWNyeXB0by5zdWJ0bGUpCi0gICAgY3J5cHRvLnN1YnRsZSA9IGNyeXB0by53ZWJraXRTdWJ0bGU7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3Jlc291cmNlcy9wb3N0TWVz
c2FnZS13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3Jlc291cmNlcy9wb3N0
TWVzc2FnZS13b3JrZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhMGJlYzJj
YWIzZmQ2MzY5ZjZjYzRlMmMxYTMyZTNkYzkyNjM2NTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yZXNvdXJj
ZXMvcG9zdE1lc3NhZ2Utd29ya2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAot
b25tZXNzYWdlID0gZnVuY3Rpb24oZXZ0KQotewotICAgIHZhciBrZXkgPSBldnQuZGF0YTsKLSAg
ICBpZiAoIWtleSkKLSAgICAgICAgcG9zdE1lc3NhZ2UoeyByZXN1bHQ6ZmFsc2UsIG1lc3NhZ2U6
J2tleSBpcyAnICsga2V5IH0pOwotICAgIGlmIChrZXkudHlwZSAhPSAnc2VjcmV0JykKLSAgICAg
ICAgcG9zdE1lc3NhZ2UoeyByZXN1bHQ6ZmFsc2UsIG1lc3NhZ2U6J2tleS50eXBlIHNob3VsZCBi
ZSAic2VjcmV0IicgfSk7Ci0gICAgZWxzZSBpZiAoIWtleS5leHRyYWN0YWJsZSkKLSAgICAgICAg
cG9zdE1lc3NhZ2UoeyByZXN1bHQ6ZmFsc2UsIG1lc3NhZ2U6J2tleS5leHRyYWN0YWJsZSBzaG91
bGQgYmUgdHJ1ZScgfSk7Ci0gICAgZWxzZSBpZiAoa2V5LmFsZ29yaXRobS5uYW1lICE9ICJITUFD
IikKLSAgICAgICAgcG9zdE1lc3NhZ2UoeyByZXN1bHQ6ZmFsc2UsIG1lc3NhZ2U6J2tleS5hbGdv
cml0aG0ubmFtZSBzaG91bGQgYmUgIkhNQUMiJyB9KTsKLSAgICBlbHNlIGlmIChrZXkudXNhZ2Vz
LnRvU3RyaW5nKCkgIT0gImRlY3J5cHQsZW5jcnlwdCxzaWduLHZlcmlmeSIpCi0gICAgICAgIHBv
c3RNZXNzYWdlKHsgcmVzdWx0OmZhbHNlLCBtZXNzYWdlOidrZXkudXNhZ2VzIHNob3VsZCBiZSBb
ImRlY3J5cHQiLCAiZW5jcnlwdCIsICJzaWduIiwgInZlcmlmeSJdJyB9KTsKLSAgICBlbHNlCi0g
ICAgICAgIHBvc3RNZXNzYWdlKHsgcmVzdWx0OnRydWUsIGtleTprZXkgfSk7Ci19CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3Jlc291cmNlcy9yc2EtaW5kZXhlZGRiLW5v
bi1leHBvcnRhYmxlLmpzIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yZXNvdXJjZXMvcnNh
LWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYTc2ZWVmMjMwMmFmMmYwNmIzYzIwZTA2ZTNjYjU3OTY2ZDRkOTc4YS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL3Jlc291cmNlcy9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLmpzCisrKyAvZGV2L251
bGwKQEAgLTEsNjEgKzAsMCBAQAotZGVzY3JpcHRpb24oIlRlc3Qgc3RvcmluZyBhIHByaXZhdGUg
UlNBIGtleSBpbiBJbmRleGVkREIsIGFuZCByZXRyaWV2aW5nIGl0LiIpOwotCi1qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKLQotdmFyIHByaXZhdGVLZXlKU09OID0gewotICAgIGt0eTogIlJTQSIsCi0g
ICAgYWxnOiAiUlMyNTYiLAotICAgIG46ICJyY0NVQ3Y3T2MxSFZhbTFESWhDenFrblRoV2F3T3A4
UUxrOFppeTJwMTBCeWpRRkNham9GaXl1QVdsLVIxV1haYWY0eGl0TFJyYWNUOWFncHpJemMtTWJM
U0hJR2dXUUdPMjFsR2lJbXk1ZnRaLUQ4YkhBcVJ6MnkxNXB6RDRjNENFb3U3WFNTTERvUm5SMFFH
NU1zRGhENnMyZ1Y5bXdIa3J0a0N4dE1XZEJpLTc3YXM4d0dtbE5SbGRjT1NnWkRMSzhVbkNTZ0Ex
T2d1Wjk4OWJGeWM4dE9PRUliMHhVU2ZQU3ozTFBTQ255WXo2OGFEam1LVmVOSC1pZzg1N09TY3lX
Ykd5RXkzQml3NjRxdW4zanVVbE5Xc0ozem5na09kdGVZV3l0eDVRcjRYS05zNlItTXl5cTcyS1Vw
MDJtSkRaaWl5aWdseE1MX2kzLV9DZWVjQ3ciLAotICAgIGU6ICJBUUFCIiwKLSAgICBkOiAiZU5M
UzM3YUN6N1JYU05QRF9EdExCSjZqNVQ4Y1N4ZHpSQkNqUGFJNldjR3FKcDE2bHEzVVR3dW9ETEFx
bEE5b0dZbTIzOGRzSVdwdXVjUF9sUXRiV2UtN1NweG9JNl92bVlHZjdZVlVIdjEtREY5cWlPbVNy
TW1keE1uVk96WVhZOFJhVDZ0aFBqbl9KNWNmTFYyeElfTHdzck10bXBkU3lObGdYMHpUVWh3dHVh
aGdBS01FQ2hZakgyRW5qSGRIdzZzWTItd0FwZGNRSTdVTEUwb281UnpiUVpwbXVoY045aGlCYzBM
M2hoRjBxbzUwbWJsMDJfNjVfR1E3RHBWa1hCeE5nUkJMemxQYWJtenpHMm9BaGZlZkxnWW1TQzFv
cGFDa1hFNnZSV1FOV05MNDVSWk5aRllNM3VvSmdoT01xR2VvY00wQnBqZENoSHJQT2xGdlNRIiwK
LSAgICBwOiAiNG1pVHVBaktNZUg1dUo1S0IzOTdRVXdoYmtZRWdTYmNBMm1pZm1Ta3ZFMjAxOGdi
NTVxa0JISzFlVnJ5ZjFfbTQzTE5sYzZPX2FrNmdmemRaSVp2UzVOQ0dqUGwwcTA5cGxVcHU4cUZP
U3NwQndBNjdxR0g3NmxGbFpMbl9kNHlnbFM3d2ZMcnU0XzVZczhxTExzLURxVkx2aXdwb3NPbnl5
V3F3TTVBWHAwIiwKLSAgICBxOiAieEhZcnpraXZ0bW56X3NHY2huV0djMHEtcERPa0tpY3B0UnB2
MnBNRklJWHhuRlg1YU1lRVhJWmpWdWpYdHdVeTFVbEZJTjJHWkpTdnk1S0o3OW11X1h5Tm5GSE16
ZWRILUEzZWUzdThoMVVVclpGLXZVdTFfZTRVX3g2N05OMWRlZHpVU0t5bk43cEZsM09rdVNoTUJX
R1YtY3d6T1BkY1ZBZlZ1Wmx4VU1jIiwKLSAgICBkcDogImZCekR6WURVQm1CUUdvcDdIbjBkdmZf
VDI3VjZScXBjdFdvMDc0Q1FaY0ZiUDJhdEZWdEtTajN2aVdUM3hpZDJWSHpjZ2lESGRmcE0zbkVW
bEVPMXd3SW9uR0NTdmRqR0VPWmlpRlZPanJaQU9WeEE4Z3VPanl5RnZxYlhrZTA2VndQSUlWdmZL
ZVNVMnp1aGJQX18xdHQ2Rl9meG93NEtiMnhvbkdUMEdHayIsCi0gICAgZHE6ICJqbUUyRGlJUGRo
d0RnTFhBUXBJYUJxUTgxYk8zWGZWVF9MUlVMQXd3d3dsUHVRVjE0OEgwNHpsaDlUSjZZMkdaSFlv
a1YxVTBlT0JwSnhma2I3ZExZdHBKcHVpQmpSZjR5SVVFb0dsa2tJX1FsSm5GU0ZyLVlqR1JkZk5I
cVdCa3hsU01aTDc3MFI5bUlBVG5kR2tIN3o1eC1yOUt3QlpGQzRGQ0cyaGdfekUiLAotICAgIHFp
OiAiWUNYX3BMd2JNQkExVGhWSDBXY3dtbnl0cU5jck1DRXdUbTdCeUEyZVU2bldiUXJVTHZmN205
X2t6ZkxVY2pzbnBBVmxCUUc1Sk1YTXkwU3E0cHR3Ynl3c2E1LUc4S0FPT09SMkwzdjRoQy1FeXM5
ZnRnRk1fM2kwbzQwZWVRSDRiM2hhUGJudHJJZU1nOEl6bE91VllLZjktMlF1S0RvV2VSZGQ3TnNk
eFRrIgotfTsKLQotY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFy
cmF5KEpTT04uc3RyaW5naWZ5KHByaXZhdGVLZXlKU09OKSksIG51bGwsIGZhbHNlLCBbInNpZ24i
LCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24oa2V5KSB7Ci0gICAgdmFyIG9wZW5SZXF1ZXN0ID0g
aW5kZXhlZERCLm9wZW4oImNyeXB0b19zdWJ0bGUiKTsKLSAgICBvcGVuUmVxdWVzdC5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgewotICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBl
dmVudC50YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJyc2EtaW5kZXhlZGRiIik7Ci0g
ICAgfQotICAgIG9wZW5SZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgewotICAgICAg
ICB0ZXN0RmFpbGVkKCJDb3VsZCBub3Qgb3BlbiBkYXRhYmFzZTogIiArIGV2ZW50LnRhcmdldC5l
cnJvci5uYW1lKTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgfQotICAgIG9wZW5SZXF1
ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgIGRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdDsKLSAgICAgICAgc3RvcmVLZXkoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBz
dG9yZUtleSgpIHsKLSAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGIudHJhbnNhY3Rpb24oInJz
YS1pbmRleGVkZGIiLCAicmVhZHdyaXRlIikub2JqZWN0U3RvcmUoInJzYS1pbmRleGVkZGIiKTsK
LSAgICAgICAgdmFyIHJlcSA9IG9iamVjdFN0b3JlLnB1dChrZXksICJteWtleSIpOwotICAgICAg
ICByZXEub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB0ZXN0RmFpbGVk
KCJDb3VsZCBub3QgcHV0IGEga2V5IGludG8gZGF0YWJhc2U6ICIgKyBldmVudC50YXJnZXQuZXJy
b3IubmFtZSk7Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfQotICAgICAg
ICByZXEub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsgcmVhZEtleSgpOyB9Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gcmVhZEtleSgpIHsKLSAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGIu
dHJhbnNhY3Rpb24oInJzYS1pbmRleGVkZGIiKS5vYmplY3RTdG9yZSgicnNhLWluZGV4ZWRkYiIp
OwotICAgICAgICB2YXIgcmVxID0gb2JqZWN0U3RvcmUuZ2V0KCJteWtleSIpOwotICAgICAgICBy
ZXEub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJD
b3VsZCBub3QgZ2V0IGEga2V5IGZyb20gZGF0YWJhc2U6ICIgKyBldmVudC50YXJnZXQuZXJyb3Iu
bmFtZSk7Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfQotICAgICAgICBy
ZXEub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHdpbmRvdy5yZXRy
aWV2ZWRLZXkgPSBldmVudC50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgc2hvdWxkQmUoInJl
dHJpZXZlZEtleS50eXBlIiwgIidwcml2YXRlJyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoInJl
dHJpZXZlZEtleS5leHRyYWN0YWJsZSIsICJmYWxzZSIpOwotICAgICAgICAgICAgc2hvdWxkQmUo
InJldHJpZXZlZEtleS5hbGdvcml0aG0ubmFtZSIsICInUlNBU1NBLVBLQ1MxLXYxXzUnIik7Ci0g
ICAgICAgICAgICBzaG91bGRCZSgicmV0cmlldmVkS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3Ro
IiwgIjIwNDgiKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKHJldHJp
ZXZlZEtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwgIicwMTAwMDEnIik7Ci0gICAgICAg
ICAgICBzaG91bGRCZSgicmV0cmlldmVkS2V5LnVzYWdlcyIsICdbInNpZ24iLCAidmVyaWZ5Il0n
KTsKLQotICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgIH0KLSAgICB9Ci19KTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcmVzb3VyY2VzL3JzYS1pbmRl
eGVkZGIuanMgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3Jlc291cmNlcy9yc2EtaW5kZXhl
ZGRiLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMTEyNDE2MzRkYjkzZjk0Yjlh
OWNmNmNiOWY1NGM3YjY3MDNjODQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcmVzb3VyY2VzL3JzYS1pbmRl
eGVkZGIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi1kZXNjcmlwdGlvbigiVGVz
dCBzdG9yaW5nIGEgcHJpdmF0ZSBSU0Ega2V5IGluIEluZGV4ZWREQiwgYW5kIHJldHJpZXZpbmcg
aXQuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIgcHJpdmF0ZUtleUpTT04gPSB7
Ci0gICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSUzI1NiIsCi0gICAgbjogInJjQ1VDdjdPYzFI
VmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4
aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1cHpE
NGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3R21s
TlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZejY4
YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4
NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCi0gICAgZTog
IkFRQUIiLAotICAgIGQ6ICJlTkxTMzdhQ3o3UlhTTlBEX0R0TEJKNmo1VDhjU3hkelJCQ2pQYUk2
V2NHcUpwMTZscTNVVHd1b0RMQXFsQTlvR1ltMjM4ZHNJV3B1dWNQX2xRdGJXZS03U3B4b0k2X3Zt
WUdmN1lWVUh2MS1ERjlxaU9tU3JNbWR4TW5WT3pZWFk4UmFUNnRoUGpuX0o1Y2ZMVjJ4SV9Md3Ny
TXRtcGRTeU5sZ1gwelRVaHd0dWFoZ0FLTUVDaFlqSDJFbmpIZEh3NnNZMi13QXBkY1FJN1VMRTBv
bzVSemJRWnBtdWhjTjloaUJjMEwzaGhGMHFvNTBtYmwwMl82NV9HUTdEcFZrWEJ4TmdSQkx6bFBh
Ym16ekcyb0FoZmVmTGdZbVNDMW9wYUNrWEU2dlJXUU5XTkw0NVJaTlpGWU0zdW9KZ2hPTXFHZW9j
TTBCcGpkQ2hIclBPbEZ2U1EiLAotICAgIHA6ICI0bWlUdUFqS01lSDV1SjVLQjM5N1FVd2hia1lF
Z1NiY0EybWlmbVNrdkUyMDE4Z2I1NXFrQkhLMWVWcnlmMV9tNDNMTmxjNk9fYWs2Z2Z6ZFpJWnZT
NU5DR2pQbDBxMDlwbFVwdThxRk9Tc3BCd0E2N3FHSDc2bEZsWkxuX2Q0eWdsUzd3ZkxydTRfNVlz
OHFMTHMtRHFWTHZpd3Bvc09ueXlXcXdNNUFYcDAiLAotICAgIHE6ICJ4SFlyemtpdnRtbnpfc0dj
aG5XR2MwcS1wRE9rS2ljcHRScHYycE1GSUlYeG5GWDVhTWVFWElaalZ1alh0d1V5MVVsRklOMkda
SlN2eTVLSjc5bXVfWHlObkZITXplZEgtQTNlZTN1OGgxVVVyWkYtdlV1MV9lNFVfeDY3Tk4xZGVk
elVTS3luTjdwRmwzT2t1U2hNQldHVi1jd3pPUGRjVkFmVnVabHhVTWMiLAotICAgIGRwOiAiZkJ6
RHpZRFVCbUJRR29wN0huMGR2Zl9UMjdWNlJxcGN0V28wNzRDUVpjRmJQMmF0RlZ0S1NqM3ZpV1Qz
eGlkMlZIemNnaURIZGZwTTNuRVZsRU8xd3dJb25HQ1N2ZGpHRU9aaWlGVk9qclpBT1Z4QThndU9q
eXlGdnFiWGtlMDZWd1BJSVZ2ZktlU1UyenVoYlBfXzF0dDZGX2Z4b3c0S2IyeG9uR1QwR0drIiwK
LSAgICBkcTogImptRTJEaUlQZGh3RGdMWEFRcElhQnFRODFiTzNYZlZUX0xSVUxBd3d3d2xQdVFW
MTQ4SDA0emxoOVRKNlkyR1pIWW9rVjFVMGVPQnBKeGZrYjdkTFl0cEpwdWlCalJmNHlJVUVvR2xr
a0lfUWxKbkZTRnItWWpHUmRmTkhxV0JreGxTTVpMNzcwUjltSUFUbmRHa0g3ejV4LXI5S3dCWkZD
NEZDRzJoZ196RSIsCi0gICAgcWk6ICJZQ1hfcEx3Yk1CQTFUaFZIMFdjd21ueXRxTmNyTUNFd1Rt
N0J5QTJlVTZuV2JRclVMdmY3bTlfa3pmTFVjanNucEFWbEJRRzVKTVhNeTBTcTRwdHdieXdzYTUt
RzhLQU9PT1IyTDN2NGhDLUV5czlmdGdGTV8zaTBvNDBlZVFINGIzaGFQYm50ckllTWc4SXpsT3VW
WUtmOS0yUXVLRG9XZVJkZDdOc2R4VGsiCi19OwotCi1jcnlwdG8uc3VidGxlLmltcG9ydEtleSgi
andrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHJpdmF0ZUtleUpTT04pKSwg
bnVsbCwgdHJ1ZSwgWyJzaWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKGtleSkgewotICAg
IHZhciBvcGVuUmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKCJjcnlwdG9fc3VidGxlIik7Ci0gICAg
b3BlblJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAg
dmFyIG9iamVjdFN0b3JlID0gZXZlbnQudGFyZ2V0LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSgi
cnNhLWluZGV4ZWRkYiIpOwotICAgIH0KLSAgICBvcGVuUmVxdWVzdC5vbmVycm9yID0gZnVuY3Rp
b24oZXZlbnQpIHsKLSAgICAgICAgdGVzdEZhaWxlZCgiQ291bGQgbm90IG9wZW4gZGF0YWJhc2U6
ICIgKyBldmVudC50YXJnZXQuZXJyb3IubmFtZSk7Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOwot
ICAgIH0KLSAgICBvcGVuUmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgewotICAg
ICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHN0b3JlS2V5KCk7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gc3RvcmVLZXkoKSB7Ci0gICAgICAgIHZhciBvYmplY3RTdG9yZSA9
IGRiLnRyYW5zYWN0aW9uKCJyc2EtaW5kZXhlZGRiIiwgInJlYWR3cml0ZSIpLm9iamVjdFN0b3Jl
KCJyc2EtaW5kZXhlZGRiIik7Ci0gICAgICAgIHZhciByZXEgPSBvYmplY3RTdG9yZS5wdXQoa2V5
LCAibXlrZXkiKTsKLSAgICAgICAgcmVxLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgewotICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiQ291bGQgbm90IHB1dCBhIGtleSBpbnRvIGRhdGFiYXNlOiAi
ICsgZXZlbnQudGFyZ2V0LmVycm9yLm5hbWUpOwotICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7
Ci0gICAgICAgIH0KLSAgICAgICAgcmVxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7IHJl
YWRLZXkoKTsgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJlYWRLZXkoKSB7Ci0gICAgICAgIHZh
ciBvYmplY3RTdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCJyc2EtaW5kZXhlZGRiIikub2JqZWN0U3Rv
cmUoInJzYS1pbmRleGVkZGIiKTsKLSAgICAgICAgdmFyIHJlcSA9IG9iamVjdFN0b3JlLmdldCgi
bXlrZXkiKTsKLSAgICAgICAgcmVxLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgewotICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiQ291bGQgbm90IGdldCBhIGtleSBmcm9tIGRhdGFiYXNlOiAiICsg
ZXZlbnQudGFyZ2V0LmVycm9yLm5hbWUpOwotICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0g
ICAgICAgIH0KLSAgICAgICAgcmVxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAg
ICAgICAgICB3aW5kb3cucmV0cmlldmVkS2V5ID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXRyaWV2ZWRLZXkudHlwZSIsICIncHJpdmF0ZSciKTsKLSAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXRyaWV2ZWRLZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIpOwotICAg
ICAgICAgICAgc2hvdWxkQmUoInJldHJpZXZlZEtleS5hbGdvcml0aG0ubmFtZSIsICInUlNBU1NB
LVBLQ1MxLXYxXzUnIik7Ci0gICAgICAgICAgICBzaG91bGRCZSgicmV0cmlldmVkS2V5LmFsZ29y
aXRobS5tb2R1bHVzTGVuZ3RoIiwgIjIwNDgiKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJieXRl
c1RvSGV4U3RyaW5nKHJldHJpZXZlZEtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwgIicw
MTAwMDEnIik7Ci0gICAgICAgICAgICBzaG91bGRCZSgicmV0cmlldmVkS2V5LnVzYWdlcyIsICdb
InNpZ24iLCAidmVyaWZ5Il0nKTsKLQotICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAg
ICAgIH0KLSAgICB9Ci19KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUv
cnNhLWV4cG9ydC1nZW5lcmF0ZWQta2V5cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlw
dG8vc3VidGxlL3JzYS1leHBvcnQtZ2VuZXJhdGVkLWtleXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDRiODQ3NDY2N2M1MmE0ODg5YzgxOGQ3ZDY5Y2ZmMTE1
MzQ1YTM4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWV4cG9ydC1nZW5lcmF0ZWQta2V5cy1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1UZXN0IGV4cG9ydGluZyBhIGdl
bmVyYXRlZCBSU0Ega2V5cGFpciB3aXRoIGhhc2guCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KLQotCi0KLUdlbmVyYXRpbmcgUlNBLVBLQ1MxLXYxLjUga2V5UGFpci4uLgotUEFTUyBjcnlw
dG8uc3VidGxlLmV4cG9ydEtleShudWxsLCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IFVua25vd24ga2V5IGZvcm1hdC4KLVBBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkodW5kZWZp
bmVkLCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVua25vd24ga2V5IGZvcm1hdC4K
LVBBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoe30sIGtleSkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0LgotUEFTUyBjcnlwdG8uc3VidGxlLmV4cG9ydEtl
eSgiIiwga2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQu
Ci1QQVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJmb29iYXIiLCBrZXkpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IFVua25vd24ga2V5IGZvcm1hdC4KLVBBU1Mga2V5LnB1YmxpY0tleS5h
bGdvcml0aG0uaGFzaC5uYW1lIGlzIGRlZmluZWQuCi1QQVNTIGtleS5wcml2YXRlS2V5LmFsZ29y
aXRobS5oYXNoLm5hbWUgaXMgZGVmaW5lZC4KLQotRXhwb3J0aW5nIHB1YmxpYyBrZXkgYXMgSldL
Li4uCi1QQVNTIGV4cG9ydGVkSldLLmt0eSBpcyAnUlNBJwotUEFTUyBleHBvcnRlZEpXSy5hbGcg
aXMgJ1JTMjU2JwotUEFTUyBleHBvcnRlZEpXSy5leHQgaXMgdHJ1ZQotUEFTUyBleHBvcnRlZEpX
Sy51c2UgaXMgdW5kZWZpbmVkCi1QQVNTIGV4cG9ydGVkSldLLmtleV9vcHMgaXMgWydzaWduJywg
J3ZlcmlmeSddCi0KLUV4cG9ydGluZyBwcml2YXRlIGtleSBhcyBKV0suLi4KLVBBU1MgZXhwb3J0
ZWRKV0sua3R5IGlzICdSU0EnCi1QQVNTIGV4cG9ydGVkSldLLmFsZyBpcyAnUlMyNTYnCi1QQVNT
IGV4cG9ydGVkSldLLmV4dCBpcyB0cnVlCi1QQVNTIGV4cG9ydGVkSldLLnVzZSBpcyB1bmRlZmlu
ZWQKLVBBU1MgZXhwb3J0ZWRKV0sua2V5X29wcyBpcyBbJ3NpZ24nLCAndmVyaWZ5J10KLVBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1leHBvcnQtZ2VuZXJhdGVkLWtleXMuaHRt
bCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWV4cG9ydC1nZW5lcmF0ZWQta2V5cy5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZTI2N2VmNzY2YjBmMjM1NjliMWNh
MjY5MTY0YTE3ZTcyODFmZjYzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWV4cG9ydC1nZW5lcmF0ZWQt
a2V5cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBleHBvcnRpbmcg
YSBnZW5lcmF0ZWQgUlNBIGtleXBhaXIgd2l0aCBoYXNoLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKLQotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLQotdmFyIGFsZ29yaXRobSA9IHsKLSAg
ICBuYW1lOiAiUlNBU1NBLVBLQ1MxLXYxXzUiLAotICAgIG1vZHVsdXNMZW5ndGg6ICIyMDQ4IiwK
LSAgICBwdWJsaWNFeHBvbmVudDogbmV3IFVpbnQ4QXJyYXkoWzEsIDAsIDFdKSwgLy8gMl4xNiAr
IDEgKDY1NTM3KQotICAgIGhhc2g6IHsgbmFtZTogIlNIQS0yNTYiIH0KLX07Ci0KLWRlYnVnKCJc
bkdlbmVyYXRpbmcgUlNBLVBLQ1MxLXYxLjUga2V5UGFpci4uLiIpOwotY3J5cHRvLnN1YnRsZS5n
ZW5lcmF0ZUtleShhbGdvcml0aG0sIGV4dHJhY3RhYmxlLCBbJ3NpZ24nLCAndmVyaWZ5J10pCi0u
dGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBrZXkgPSByZXN1bHQ7Ci0KLSAgICBzaG91bGRU
aHJvdygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkobnVsbCwga2V5KScpOwotICAgIHNob3VsZFRo
cm93KCdjcnlwdG8uc3VidGxlLmV4cG9ydEtleSh1bmRlZmluZWQsIGtleSknKTsKLSAgICBzaG91
bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoe30sIGtleSknKTsKLSAgICBzaG91bGRU
aHJvdygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoIiIsIGtleSknKTsKLSAgICBzaG91bGRUaHJv
dygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoImZvb2JhciIsIGtleSknKTsKLSAgICBzaG91bGRC
ZURlZmluZWQoJ2tleS5wdWJsaWNLZXkuYWxnb3JpdGhtLmhhc2gubmFtZScpOwotICAgIHNob3Vs
ZEJlRGVmaW5lZCgna2V5LnByaXZhdGVLZXkuYWxnb3JpdGhtLmhhc2gubmFtZScpOwotCi0gICAg
ZGVidWcoIlxuRXhwb3J0aW5nIHB1YmxpYyBrZXkgYXMgSldLLi4uIik7Ci0gICAgcmV0dXJuIGNy
eXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJqd2siLCBrZXkucHVibGljS2V5KTsKLX0pLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7Ci0gICAgZXhwb3J0ZWRKV0sgPSBKU09OLnBhcnNlKGJ5dGVzVG9BU0NJ
SVN0cmluZyhyZXN1bHQpKTsKLQotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rdHkiLCAiJ1JT
QSciKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suYWxnIiwgIidSUzI1NiciKTsKLSAgICBz
aG91bGRCZSgiZXhwb3J0ZWRKV0suZXh0IiwgInRydWUiKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0
ZWRKV0sudXNlIiwgInVuZGVmaW5lZCIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rZXlf
b3BzIiwgIlsnc2lnbicsICd2ZXJpZnknXSIpOwotCi0gICAgZGVidWcoIlxuRXhwb3J0aW5nIHBy
aXZhdGUga2V5IGFzIEpXSy4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmV4cG9ydEtl
eSgiandrIiwga2V5LnByaXZhdGVLZXkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAg
ICBleHBvcnRlZEpXSyA9IEpTT04ucGFyc2UoYnl0ZXNUb0FTQ0lJU3RyaW5nKHJlc3VsdCkpOwot
Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmt0eSIsICInUlNBJyIpOwotICAgIHNob3VsZEJl
KCJleHBvcnRlZEpXSy5hbGciLCAiJ1JTMjU2JyIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpX
Sy5leHQiLCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy51c2UiLCAidW5kZWZp
bmVkIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmtleV9vcHMiLCAiWydzaWduJywgJ3Zl
cmlmeSddIik7Ci0KLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWV4
cG9ydC1rZXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhw
b3J0LWtleS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlZTdi
N2FjZjYzOGM5NmM5ODZkNjE4Yzc2YmRlN2Q4Mzk3ODQ1NzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Et
ZXhwb3J0LWtleS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1U
ZXN0IGV4cG9ydGluZyBhbiBSU0Ega2V5LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0K
LQotCi1JbXBvcnRpbmcgYSBKV0sga2V5Li4uCi1QQVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5
KG51bGwsIGtleSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0
LgotUEFTUyBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSh1bmRlZmluZWQsIGtleSkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0LgotUEFTUyBjcnlwdG8uc3VidGxl
LmV4cG9ydEtleSh7fSwga2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtl
eSBmb3JtYXQuCi1QQVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCIiLCBrZXkpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IFVua25vd24ga2V5IGZvcm1hdC4KLVBBU1MgY3J5cHRvLnN1YnRs
ZS5leHBvcnRLZXkoImZvb2JhciIsIGtleSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVW5r
bm93biBrZXkgZm9ybWF0LgotCi1FeHBvcnRpbmcgdGhlIGtleSBhcyBKV0suLi4KLVBBU1MgZXhw
b3J0ZWRKV0sua3R5IGlzICdSU0EnCi1QQVNTIGV4cG9ydGVkSldLLm4gaXMgcHVibGljS2V5SlNP
Ti5uCi1QQVNTIGV4cG9ydGVkSldLLmUgaXMgcHVibGljS2V5SlNPTi5lCi1QQVNTIGV4cG9ydGVk
SldLLmFsZyBpcyAnUlMyNTYnCi1QQVNTIGV4cG9ydGVkSldLLmV4dCBpcyB0cnVlCi1QQVNTIGV4
cG9ydGVkSldLLnVzZSBpcyB1bmRlZmluZWQKLVBBU1MgZXhwb3J0ZWRKV0sua2V5X29wcyBpcyBb
J3NpZ24nLCAndmVyaWZ5J10KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVT
VCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1l
eHBvcnQta2V5Lmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1leHBvcnQta2V5
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxNjViY2ZmZGEyMWRhNjkyZWI1
YWFkODhjNmM1NDU3MDUxODRmMTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0LWtleS5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBleHBvcnRpbmcgYW4gUlNBIGtl
eS4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBleHRyYWN0YWJsZSA9IHRydWU7
Ci12YXIgbm9uRXh0cmFjdGFibGUgPSBmYWxzZTsKLQotdmFyIHB1YmxpY0tleUpTT04gPSB7Ci0g
ICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSUzI1NiIsCi0gICAgbjogInJjQ1VDdjdPYzFIVmFt
MURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRM
UnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0
Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJs
ZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURq
bUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFy
NFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCi0gICAgZTogIkFR
QUIiCi19OwotCi12YXIgandrS2V5QXNBcnJheUJ1ZmZlciA9IGFzY2lpVG9VaW50OEFycmF5KEpT
T04uc3RyaW5naWZ5KHB1YmxpY0tleUpTT04pKTsKLQotZGVidWcoIlxuSW1wb3J0aW5nIGEgSldL
IGtleS4uLiIpOwotY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a0tleUFzQXJyYXlC
dWZmZXIsICJSU0FTU0EtUEtDUzEtdjFfNSIsIGV4dHJhY3RhYmxlLCBbJ3NpZ24nLCAndmVyaWZ5
J10pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0OwotCi0gICAgc2hv
dWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KG51bGwsIGtleSknKTsKLSAgICBzaG91
bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkodW5kZWZpbmVkLCBrZXkpJyk7Ci0gICAg
c2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KHt9LCBrZXkpJyk7Ci0gICAgc2hv
dWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCIiLCBrZXkpJyk7Ci0gICAgc2hvdWxk
VGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJmb29iYXIiLCBrZXkpJyk7Ci0KLSAgICBk
ZWJ1ZygiXG5FeHBvcnRpbmcgdGhlIGtleSBhcyBKV0suLi4iKTsKLSAgICByZXR1cm4gY3J5cHRv
LnN1YnRsZS5leHBvcnRLZXkoImp3ayIsIGtleSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkg
ewotICAgIGV4cG9ydGVkSldLID0gSlNPTi5wYXJzZShieXRlc1RvQVNDSUlTdHJpbmcocmVzdWx0
KSk7Ci0KLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sua3R5IiwgIidSU0EnIik7Ci0gICAgc2hv
dWxkQmUoImV4cG9ydGVkSldLLm4iLCAicHVibGljS2V5SlNPTi5uIik7Ci0gICAgc2hvdWxkQmUo
ImV4cG9ydGVkSldLLmUiLCAicHVibGljS2V5SlNPTi5lIik7Ci0gICAgc2hvdWxkQmUoImV4cG9y
dGVkSldLLmFsZyIsICInUlMyNTYnIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmV4dCIs
ICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLnVzZSIsICJ1bmRlZmluZWQiKTsK
LSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sua2V5X29wcyIsICJbJ3NpZ24nLCAndmVyaWZ5J10i
KTsKLQotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0LXBy
aXZhdGUta2V5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWV4
cG9ydC1wcml2YXRlLWtleS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGI0NmVhMzM3YmVjYzliYzE0ZmExODgzODRhYzhiNjg0M2ViZGQ3YmMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS9yc2EtZXhwb3J0LXByaXZhdGUta2V5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDI3ICswLDAgQEAKLVRlc3QgZXhwb3J0aW5nIGEgcHJpdmF0ZSBSU0Ega2V5LgotCi1PbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotCi1JbXBvcnRpbmcgYSBKV0sga2V5Li4uCi0KLUV4
cG9ydGluZyB0aGUga2V5IGFzIEpXSy4uLgotUEFTUyBleHBvcnRlZEpXSy5rdHkgaXMgJ1JTQScK
LVBBU1MgZXhwb3J0ZWRKV0subiBpcyBwcml2YXRlS2V5SlNPTi5uCi1QQVNTIGV4cG9ydGVkSldL
LmUgaXMgcHJpdmF0ZUtleUpTT04uZQotUEFTUyBleHBvcnRlZEpXSy5kIGlzIHByaXZhdGVLZXlK
U09OLmQKLVBBU1MgZXhwb3J0ZWRKV0sucCBpcyBwcml2YXRlS2V5SlNPTi5wCi1QQVNTIGV4cG9y
dGVkSldLLnEgaXMgcHJpdmF0ZUtleUpTT04ucQotUEFTUyBleHBvcnRlZEpXSy5kcCBpcyBwcml2
YXRlS2V5SlNPTi5kcAotUEFTUyBleHBvcnRlZEpXSy5kcSBpcyBwcml2YXRlS2V5SlNPTi5kcQot
UEFTUyBleHBvcnRlZEpXSy5xaSBpcyBwcml2YXRlS2V5SlNPTi5xaQotUEFTUyBleHBvcnRlZEpX
Sy5vdGggaXMgcHJpdmF0ZUtleUpTT04ub3RoCi1QQVNTIGV4cG9ydGVkSldLLmFsZyBpcyBwcml2
YXRlS2V5SlNPTi5hbGcKLVBBU1MgZXhwb3J0ZWRKV0suZXh0IGlzIHRydWUKLVBBU1MgZXhwb3J0
ZWRKV0sua2V5X29wcyBpcyBbJ3NpZ24nLCAndmVyaWZ5J10KLVBBU1MgZXhwb3J0ZWRKV0sudXNl
IGlzIHVuZGVmaW5lZAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENP
TVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWV4cG9y
dC1wcml2YXRlLWtleS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0
LXByaXZhdGUta2V5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFjMmQ4NzE4
MjVhY2E1MTkwZTY2YzA4MjExYmQwYWRmM2QzZDBlZTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhw
b3J0LXByaXZhdGUta2V5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9u
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0
IGV4cG9ydGluZyBhIHByaXZhdGUgUlNBIGtleS4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7
Ci0KLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci12YXIgbm9uRXh0cmFjdGFibGUgPSBmYWxzZTsK
LQotLy8gRXhhbXBsZSBmcm9tIEpXSyBzcGVjaWZpY2F0aW9uLgotdmFyIHByaXZhdGVLZXlKU09O
ID0gewotICAgICJrdHkiOiJSU0EiLAotICAgICJuIjoiMHZ4N2Fnb2ViR2NRU3V1UGlMSlhacHRO
OW5uZHJRbWJYRXBzMmFpQUZiV2hNNzhMaFd4NGNiYmZBQXRWVDg2end1MVJLN2FQRkZ4dWhEUjFM
NnRTb2NfQkpFQ1BlYldLUlhqQlpDaUZWNG4zb2tuamhNc3RuNjR0Wl8yVy01SnNHWTRIYzVuOXlC
WEFyd2w5M2xxdDdfUk41dzZDZjBoNFF5UTV2LTY1WUdqUVIwX0ZEVzJRdnpxWTM2OFFRTWljQXRh
U3F6czhLSlpnblliOWM3ZDB6Z2RBWkh6dTZxTVF2Ukw1aGFqcm4xbjkxQ2JPcGJJU0QwOHFOTHly
ZGt0LWJGVFdoQUk0dk1RRmg2V2VadTBmTTRsRmQyTmNSd3IzWFBrc0lOSGFRLUdfeEJuaUlxYncw
THMxakY0NC1jc0ZDdXIta0VnVThhd2FwSnpLbnFES2d3IiwKLSAgICAiZSI6IkFRQUIiLAotICAg
ICJkIjoiWDRjVHRlSllfZ240RllQc1hCOHJkWGl4NXZ3c2cxRkxONUUzRWFHNlJKb1ZILUhMTEtE
OU03ZHg1b283R1VSa25jaG5yUndlVWtDN2hUNWZKTE0wV2JGQUtOTFdZMnZ2N0I2TnFYU3pVdnhU
MF9ZU2ZxaWp3cDNSVHpsQmFDeFdwNGRvRms1TjJvOEd5X25ITktyb0FESWtKNDZwUlVvaHNYeXdi
UmVBZFlhTXdGczl0djhkX2NQVlkzaTA3YTN0OE1ONlROd20wZFNhd205djQ3VWlDbDNTazVaaUc3
eG9qUEx1NHNiZzFVMmp4NElCVE5Cem5iSlN6RkhLNjZqVDhiZ2t1cXNrMEdqc2tESmsxOVo0cXdq
d2Jzbm40ajJXQmlpM1JMLVVzMmxHVmtZOGZrRnptZTF6MEhiSWtmejBZNm1xbk9ZdHFjMFg0amZj
S29BQzhRIiwKLSAgICAicCI6IjgzaS03SXZNR1hvTVhDc2t2NzNUS3I4NjM3RmlPN1oyN3p2OG9q
NnBiV1VReUxQUUJReHRQVm53RDIwUi02MGVURG1EMnVqbk10NVBvcU1ybThSZm1OaFZXRHRqak1t
Q01qT3BTWGljRkhqN1hPdVZJWVF5cVZXbFdFaDZkTjM2R1ZaWWs5M044QmM5dlk0MXh5OEI5Unp6
T0dWUXpYdk5Fdm43TzBuVmJmcyIsCi0gICAgInEiOiIzZGZPUjljdVlxLTBTLW1rRkx6Z0l0Z01F
ZkZ6QjJxM2hXZWhNdUcwb0N1cW5iM3ZvYkx5dW1xalZaUU8xZElyZHdnVG5DZHBZekJjT2ZXNXIz
NzBBRlhqaVdmdF9OR0Vpb3Zvbml6aEtwbzlWVlM3OFR6Rmd4a0lkcmVjUmV6c1otMWtZZF9zMXFE
Ynh0a0RFZ2ZBSVRBRzlMVW5BRHVuNHZJY2I2eWVseGsiLAotICAgICJkcCI6Ikc0c1BYa2M2WWE5
eThvSlc5X0lMajR4dXBwdTBsemlfSDdWVGtTOHhqNVNkWDNjb0Uwb2ltWXd4SWkyZW1UQXVlMFVP
YTVkcGdGR3lCSjRjOHRRMlZGNDAyWFJ1Z0tEVFA4YWtZaEZvNXRBQTc3UWVfTm10dVlaYzNDM20z
STI0RzJHdlI1c1NEeFV5QU4yenE4TGZuOUVVbXM2clkzT2I4WWVpS2tUaUJqMCIsCi0gICAgImRx
IjoiczlsQUg5ZmdnQnNvRlI4T2FjMlJfRTJndzI4MnJUMmtHT0FodklsbEVURTFlZnJBNmh1VVV2
TWZCY01wbjhscWVXNnZ6em5ZWTVTU1FGN3BNZENfYWdJM25HOElicDFCVWIwSlVpcmFSTnFVZkxo
Y1FiX2Q5R0Y0RGg3ZTc0V2JSc29iUm9udWpUWU4xeENhUDZUTzYxanZXclgtTDE4dHhYdzQ5NFFf
Y2drIiwKLSAgICAicWkiOiJHeU1fcDZKclh5U2l6MXRvRmdLYldWLUpkSTNqUTR5cHU5cmJNV3gz
clFKQmZtdDBGb1l6Z1VJWkVWRkVjT3F3ZW1STjgxem9EQWFhLUJrMEtXTkdEakpIWkRkRG1GaFcz
QU43bEktcHV4a19tSFpHSjExcnh5UjhPNTVYTFNlM1NQbVJmS3daSTZ5VTI0Wnh2UUtGWUl0ZGxk
VUtHek82SWE2elRLaEFWUlUiLAotICAgICJhbGciOiJSUzI1NiIsCi0gICAgImtpZCI6IjIwMTEt
MDQtMjkiCi19Ci12YXIgandrS2V5QXNBcnJheUJ1ZmZlciA9IGFzY2lpVG9VaW50OEFycmF5KEpT
T04uc3RyaW5naWZ5KHByaXZhdGVLZXlKU09OKSk7Ci0KLWRlYnVnKCJcbkltcG9ydGluZyBhIEpX
SyBrZXkuLi4iKTsKLWNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tLZXlBc0FycmF5
QnVmZmVyLCAiUlNBU1NBLVBLQ1MxLXYxXzUiLCBleHRyYWN0YWJsZSwgWydzaWduJywgJ3Zlcmlm
eSddKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtleSA9IHJlc3VsdDsKLQotICAgIGRl
YnVnKCJcbkV4cG9ydGluZyB0aGUga2V5IGFzIEpXSy4uLiIpOwotICAgIHJldHVybiBjcnlwdG8u
c3VidGxlLmV4cG9ydEtleSgiandrIiwga2V5KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7
Ci0gICAgZXhwb3J0ZWRKV0sgPSBKU09OLnBhcnNlKGJ5dGVzVG9BU0NJSVN0cmluZyhyZXN1bHQp
KTsKLQotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rdHkiLCAiJ1JTQSciKTsKLSAgICBzaG91
bGRCZSgiZXhwb3J0ZWRKV0subiIsICJwcml2YXRlS2V5SlNPTi5uIik7Ci0gICAgc2hvdWxkQmUo
ImV4cG9ydGVkSldLLmUiLCAicHJpdmF0ZUtleUpTT04uZSIpOwotICAgIHNob3VsZEJlKCJleHBv
cnRlZEpXSy5kIiwgInByaXZhdGVLZXlKU09OLmQiKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRK
V0sucCIsICJwcml2YXRlS2V5SlNPTi5wIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLnEi
LCAicHJpdmF0ZUtleUpTT04ucSIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5kcCIsICJw
cml2YXRlS2V5SlNPTi5kcCIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5kcSIsICJwcml2
YXRlS2V5SlNPTi5kcSIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5xaSIsICJwcml2YXRl
S2V5SlNPTi5xaSIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5vdGgiLCAicHJpdmF0ZUtl
eUpTT04ub3RoIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmFsZyIsICJwcml2YXRlS2V5
SlNPTi5hbGciKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suZXh0IiwgInRydWUiKTsKLSAg
ICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sua2V5X29wcyIsICJbJ3NpZ24nLCAndmVyaWZ5J10iKTsK
LSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sudXNlIiwgInVuZGVmaW5lZCIpOwotCi0gICAgZmlu
aXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGIxMmRmZjBhYmU1MzJkOTBmNDQ3NDhkMzZh
NDQ3M2E2ZGNhMGM5Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotVGVzdCBzdG9yaW5nIGEgcHJpdmF0ZSBS
U0Ega2V5IGluIEluZGV4ZWREQiwgYW5kIHJldHJpZXZpbmcgaXQuCi0KLU9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KLQotCi1QQVNTIHJldHJpZXZlZEtleS50eXBlIGlzICdwcml2YXRlJwotUEFT
UyByZXRyaWV2ZWRLZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQotUEFTUyByZXRyaWV2ZWRLZXkuYWxn
b3JpdGhtLm5hbWUgaXMgJ1JTQVNTQS1QS0NTMS12MV81JwotUEFTUyByZXRyaWV2ZWRLZXkuYWxn
b3JpdGhtLm1vZHVsdXNMZW5ndGggaXMgMjA0OAotUEFTUyBieXRlc1RvSGV4U3RyaW5nKHJldHJp
ZXZlZEtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcwMTAwMDEnCi1QQVNTIHJldHJp
ZXZlZEtleS51c2FnZXMgaXMgWyJzaWduIiwgInZlcmlmeSJdCi1QQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjNjk0YzIwMmNkNzEz
OGMyMTk4N2RlZWVkZjU4Nzk0YTI4MjQ2MGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRi
LW5vbi1leHBvcnRhYmxlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAg
QEAKLVRlc3Qgc3RvcmluZyBhIHByaXZhdGUgUlNBIGtleSBpbiBJbmRleGVkREIsIGFuZCByZXRy
aWV2aW5nIGl0LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyByZXRyaWV2
ZWRLZXkudHlwZSBpcyAncHJpdmF0ZScKLVBBU1MgcmV0cmlldmVkS2V5LmV4dHJhY3RhYmxlIGlz
IGZhbHNlCi1QQVNTIHJldHJpZXZlZEtleS5hbGdvcml0aG0ubmFtZSBpcyAnUlNBU1NBLVBLQ1Mx
LXYxXzUnCi1QQVNTIHJldHJpZXZlZEtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4
Ci1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcocmV0cmlldmVkS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBv
bmVudCkgaXMgJzAxMDAwMScKLVBBU1MgcmV0cmlldmVkS2V5LnVzYWdlcyBpcyBbInNpZ24iLCAi
dmVyaWZ5Il0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVU
RQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGIt
bm9uLWV4cG9ydGFibGUtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8v
c3VidGxlL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUtcHJpdmF0ZS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjNjk0YzIwMmNkNzEzOGMyMTk4N2RlZWVk
ZjU4Nzk0YTI4MjQ2MGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRh
YmxlLXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAot
VGVzdCBzdG9yaW5nIGEgcHJpdmF0ZSBSU0Ega2V5IGluIEluZGV4ZWREQiwgYW5kIHJldHJpZXZp
bmcgaXQuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHJldHJpZXZlZEtl
eS50eXBlIGlzICdwcml2YXRlJwotUEFTUyByZXRyaWV2ZWRLZXkuZXh0cmFjdGFibGUgaXMgZmFs
c2UKLVBBU1MgcmV0cmlldmVkS2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FTU0EtUEtDUzEtdjFf
NScKLVBBU1MgcmV0cmlldmVkS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIGlzIDIwNDgKLVBB
U1MgYnl0ZXNUb0hleFN0cmluZyhyZXRyaWV2ZWRLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50
KSBpcyAnMDEwMDAxJwotUEFTUyByZXRyaWV2ZWRLZXkudXNhZ2VzIGlzIFsic2lnbiIsICJ2ZXJp
ZnkiXQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24t
ZXhwb3J0YWJsZS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1p
bmRleGVkZGItbm9uLWV4cG9ydGFibGUtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBmNjE4Y2FhZDcyNmM2ZWYyZmRkYjJjNGFjZTMxOTlmZTY4MmY2NmI3Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS1wcml2YXRlLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0PgotZW5hYmxlUHJpdmF0ZUJyb3dzaW5nID0gdHJ1ZTsKLTwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
cnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUuaHRtbCBiL0xheW91dFRl
c3RzL2NyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYmJkOWU3N2ExN2MxNzdmNjBkMjAzN2Y3M2JlNTkz
NjgzM2M1NzlhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnNhLWluZGV4ZWRkYi1ub24t
ZXhwb3J0YWJsZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItcHJpdmF0ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItcHJpdmF0ZS1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiMTJkZmYwYWJlNTMyZDkw
ZjQ0NzQ4ZDM2YTQ0NzNhNmRjYTBjOTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLXBy
aXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotVGVzdCBz
dG9yaW5nIGEgcHJpdmF0ZSBSU0Ega2V5IGluIEluZGV4ZWREQiwgYW5kIHJldHJpZXZpbmcgaXQu
Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHJldHJpZXZlZEtleS50eXBl
IGlzICdwcml2YXRlJwotUEFTUyByZXRyaWV2ZWRLZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQotUEFT
UyByZXRyaWV2ZWRLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JTQVNTQS1QS0NTMS12MV81JwotUEFT
UyByZXRyaWV2ZWRLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGggaXMgMjA0OAotUEFTUyBieXRl
c1RvSGV4U3RyaW5nKHJldHJpZXZlZEtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcw
MTAwMDEnCi1QQVNTIHJldHJpZXZlZEtleS51c2FnZXMgaXMgWyJzaWduIiwgInZlcmlmeSJdCi1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUuaHRt
bCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1wcml2YXRlLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0NGNlODhjNzU0MTRkOTdhZTA3ZGVjNWFh
Y2VhYjk1ZWVkZWY5N2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQ+Ci1lbmFibGVQcml2YXRlQnJvd3NpbmcgPSB0cnVlOwotPC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yc2EtaW5kZXhlZGRiLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvcnNhLWluZGV4ZWRkYi5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5k
ZXhlZGRiLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyODZlMGY4Njc2ZGM0
MjUyYmY3OWZlNzFjYWU3YmQyMmI2YTZjMTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRi
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yc2EtaW5kZXhlZGRiLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvcnNhLW9hZXAtZ2VuZXJhdGUtbm9uLWV4dHJhY3RhYmxlLWtleS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1vYWVwLWdlbmVyYXRlLW5vbi1l
eHRyYWN0YWJsZS1rZXktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBiNzliNDIzOTc5NTlmNjljYjA4NzQ4NGNiYzQ1MzU2MWJmM2U0NTg4Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvcnNhLW9hZXAtZ2VuZXJhdGUtbm9uLWV4dHJhY3RhYmxlLWtleS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1UZXN0IHRoYXQgZXZlbiB3aGVuIG5vbi1leHRy
YWN0YWJpbGl0eSBpcyByZXF1ZXN0ZWQsIHRoZSBwdWJsaWMga2V5IGlzIHN0aWxsIGV4dHJhY3Rh
YmxlLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotR2VuZXJhdGluZyBhIGtleSBw
YWlyLi4uCi1QQVNTIGtleVBhaXIudG9TdHJpbmcoKSBpcyAnW29iamVjdCBLZXlQYWlyXScKLVBB
U1Mga2V5UGFpci5wdWJsaWNLZXkudHlwZSBpcyAncHVibGljJwotUEFTUyBrZXlQYWlyLnB1Ymxp
Y0tleS5leHRyYWN0YWJsZSBpcyB0cnVlCi1QQVNTIGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRo
bS5uYW1lIGlzICdSU0EtT0FFUCcKLVBBU1Mga2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm1v
ZHVsdXNMZW5ndGggaXMgMjA0OAotUEFTUyBieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIucHVibGlj
S2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKLVBBU1Mga2V5UGFpci5w
dWJsaWNLZXkuYWxnb3JpdGhtLmhhc2ggaXMgdW5kZWZpbmVkLgotUEFTUyBrZXlQYWlyLnByaXZh
dGVLZXkudHlwZSBpcyAncHJpdmF0ZScKLVBBU1Mga2V5UGFpci5wcml2YXRlS2V5LmV4dHJhY3Rh
YmxlIGlzIGZhbHNlCi1QQVNTIGtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ubmFtZSBpcyAn
UlNBLU9BRVAnCi1QQVNTIGtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0
aCBpcyAyMDQ4Ci1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcoa2V5UGFpci5wcml2YXRlS2V5LmFsZ29y
aXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKLVBBU1Mga2V5UGFpci5wcml2YXRlS2V5
LmFsZ29yaXRobS5oYXNoIGlzIHVuZGVmaW5lZC4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8v
c3VidGxlL3JzYS1vYWVwLWdlbmVyYXRlLW5vbi1leHRyYWN0YWJsZS1rZXkuaHRtbCBiL0xheW91
dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLW9hZXAtZ2VuZXJhdGUtbm9uLWV4dHJhY3RhYmxlLWtl
eS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjODJhNWNiMWMwZWExN2Y4YzRl
ZTVlZjI2NDMzYWNjZTU4NmI3Yjc3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLW9hZXAtZ2VuZXJhdGUt
bm9uLWV4dHJhY3RhYmxlLWtleS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Nv
bW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigi
VGVzdCB0aGF0IGV2ZW4gd2hlbiBub24tZXh0cmFjdGFiaWxpdHkgaXMgcmVxdWVzdGVkLCB0aGUg
cHVibGljIGtleSBpcyBzdGlsbCBleHRyYWN0YWJsZS4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRy
dWU7Ci0KLXZhciBhbGdvcml0aG1LZXlHZW4gPSB7Ci0gICAgbmFtZTogIlJTQS1PQUVQIiwKLSAg
ICAvLyBSc2FLZXlHZW5QYXJhbXMKLSAgICBtb2R1bHVzTGVuZ3RoOiAyMDQ4LAotICAgIHB1Ymxp
Y0V4cG9uZW50OiBuZXcgVWludDhBcnJheShbMHgwMSwgMHgwMCwgMHgwMV0pLCAgLy8gRXF1aXZh
bGVudCB0byA2NTUzNwotfTsKLXZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOwotCi1kZWJ1Zygi
R2VuZXJhdGluZyBhIGtleSBwYWlyLi4uIik7Ci1jcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KGFs
Z29yaXRobUtleUdlbiwgbm9uRXh0cmFjdGFibGUsIFtdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkg
ewotICAgIGtleVBhaXIgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIudG9TdHJpbmco
KSIsICInW29iamVjdCBLZXlQYWlyXSciKTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wdWJsaWNL
ZXkudHlwZSIsICIncHVibGljJyIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tleS5l
eHRyYWN0YWJsZSIsICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHVibGljS2V5LmFs
Z29yaXRobS5uYW1lIiwgIidSU0EtT0FFUCciKTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wdWJs
aWNLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOwotICAgIHNob3VsZEJlKCJi
eXRlc1RvSGV4U3RyaW5nKGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVu
dCkiLCAiJzAxMDAwMSciKTsKLSAgICBzaG91bGRCZVVuZGVmaW5lZCgia2V5UGFpci5wdWJsaWNL
ZXkuYWxnb3JpdGhtLmhhc2giKTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wcml2YXRlS2V5LnR5
cGUiLCAiJ3ByaXZhdGUnIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHJpdmF0ZUtleS5leHRy
YWN0YWJsZSIsICJmYWxzZSIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnByaXZhdGVLZXkuYWxn
b3JpdGhtLm5hbWUiLCAiJ1JTQS1PQUVQJyIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnByaXZh
dGVLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOwotICAgIHNob3VsZEJlKCJi
eXRlc1RvSGV4U3RyaW5nKGtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ucHVibGljRXhwb25l
bnQpIiwgIicwMTAwMDEnIik7Ci0gICAgc2hvdWxkQmVVbmRlZmluZWQoImtleVBhaXIucHJpdmF0
ZUtleS5hbGdvcml0aG0uaGFzaCIpOwotCi0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2Ny
aXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8v
c3VidGxlL3JzYS1vYWVwLWtleS1tYW5pcHVsYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY3J5cHRvL3N1YnRsZS9yc2Etb2FlcC1rZXktbWFuaXB1bGF0aW9uLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmQ1YjM4Mzg2ZGIyNTE5YTVmYjIyODgzMTBm
MzM2Nzc5ZDAwZTVkMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1vYWVwLWtleS1tYW5pcHVsYXRpb24t
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotVGVzdCBnZW5lcmF0
aW5nLCBpbXBvcnRpbmcgYW5kIGV4cG9ydGluZyBSU0Ega2V5cyBmb3IgUlNBLU9BRVAuIFRlc3Qg
dGhhdCB0aGV5IGNhbid0IGJlIHVzZWQgd2l0aCBhbm90aGVyIGFsZ29yaXRobS4KLQotT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUdlbmVyYXRpbmcgYSBrZXkgcGFpci4uLgotUEFTUyBr
ZXlQYWlyLnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgS2V5UGFpcl0nCi1QQVNTIGtleVBhaXIucHVi
bGljS2V5LnR5cGUgaXMgJ3B1YmxpYycKLVBBU1Mga2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGht
Lm5hbWUgaXMgJ1JTQS1PQUVQJwotUEFTUyBrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0ubW9k
dWx1c0xlbmd0aCBpcyAyMDQ4Ci1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcoa2V5UGFpci5wdWJsaWNL
ZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJwotUEFTUyBrZXlQYWlyLnB1
YmxpY0tleS5hbGdvcml0aG0uaGFzaCBpcyB1bmRlZmluZWQuCi1QQVNTIGtleVBhaXIucHJpdmF0
ZUtleS50eXBlIGlzICdwcml2YXRlJwotUEFTUyBrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGht
Lm5hbWUgaXMgJ1JTQS1PQUVQJwotUEFTUyBrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLm1v
ZHVsdXNMZW5ndGggaXMgMjA0OAotUEFTUyBieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIucHJpdmF0
ZUtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcwMTAwMDEnCi1QQVNTIGtleVBhaXIu
cHJpdmF0ZUtleS5hbGdvcml0aG0uaGFzaCBpcyB1bmRlZmluZWQuCi0KLVRlc3RpbmcgdGhhdCB0
aGUga2V5cyBjYW4ndCBiZSB1c2VkIHdpdGggZGlmZmVyZW50IGFsZ29yaXRobXMuLi4KLVBBU1Mg
Y3J5cHRvLnN1YnRsZS5lbmNyeXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtleVBhaXIu
cHJpdmF0ZUtleSwgaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMCIpKSB0aHJldyBleGNlcHRpb24g
Tm90U3VwcG9ydGVkRXJyb3IgKERPTSBFeGNlcHRpb24gOSk6IFRoZSBvcGVyYXRpb24gaXMgbm90
IHN1cHBvcnRlZC4uCi1QQVNTIGNyeXB0by5zdWJ0bGUuZW5jcnlwdCh7bmFtZTogImFlcy1jYmMi
LCBpdjogaXZ9LCBrZXlQYWlyLnB1YmxpY0tleSwgaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMCIp
KSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3IgKERPTSBFeGNlcHRpb24gOSk6IFRo
ZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi0KLVRyeWluZyB0byBleHBvcnQga2V5cyB0
byByYXcuLi4KLVBBU1MgUHJvbWlzZSByZWplY3RlZCBmb3IgZXhwb3J0aW5nIHB1YmxpYyBrZXkK
LVBBU1MgUHJvbWlzZSByZWplY3RlZCBmb3IgZXhwb3J0aW5nIHByaXZhdGUga2V5Ci0KLUV4cG9y
dGluZyBwdWJsaWMga2V5IHRvIEpXSy4uLgotUEFTUyBqd2tQdWJsaWNLZXkuYWxnIGlzICdSU0Et
T0FFUCcKLVBBU1MgandrUHVibGljS2V5LmV4dCBpcyB0cnVlCi1QQVNTIGp3a1B1YmxpY0tleS5r
ZXlfb3BzIGlzIFsnZW5jcnlwdCcsICdkZWNyeXB0JywgJ3dyYXBLZXknLCAndW53cmFwS2V5J10K
LVBBU1MgandrUHVibGljS2V5LnVzZSBpcyB1bmRlZmluZWQKLVBBU1MgandrUHVibGljS2V5Lmt0
eSBpcyAnUlNBJwotUEFTUyBieXRlc1RvSGV4U3RyaW5nKEJhc2U2NFVSTC5wYXJzZShqd2tQdWJs
aWNLZXkuZSkpIGlzICcwMTAwMDEnCi0KLUltcG9ydGluZyBpdCBiYWNrLi4uCi1QQVNTIGV4cG9y
dGVkUHVibGljS2V5LnR5cGUgaXMgJ3B1YmxpYycKLVBBU1MgZXhwb3J0ZWRQdWJsaWNLZXkuYWxn
b3JpdGhtLm5hbWUgaXMgJ1JTQS1PQUVQJwotUEFTUyBleHBvcnRlZFB1YmxpY0tleS5hbGdvcml0
aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4Ci1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcoZXhwb3J0ZWRQ
dWJsaWNLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJwotUEFTUyBleHBv
cnRlZFB1YmxpY0tleS5hbGdvcml0aG0uaGFzaC5uYW1lIGlzICdTSEEtMScKLVBBU1MgZXhwb3J0
ZWRQdWJsaWNLZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQotUEFTUyBleHBvcnRlZFB1YmxpY0tleS51
c2FnZXMgaXMgWydkZWNyeXB0JywnZW5jcnlwdCcsJ3Vud3JhcEtleScsJ3dyYXBLZXknXQotUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLW9hZXAta2V5LW1hbmlwdWxhdGlvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Etb2FlcC1rZXktbWFuaXB1bGF0aW9u
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3ZDExNDllNmViOTk0MzQ1ZWY4
NjA2ZTFiY2JkZDI0ZWM4MjQ4Y2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Etb2FlcC1rZXktbWFuaXB1
bGF0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4MiArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IGdlbmVyYXRp
bmcsIGltcG9ydGluZyBhbmQgZXhwb3J0aW5nIFJTQSBrZXlzIGZvciBSU0EtT0FFUC4gVGVzdCB0
aGF0IHRoZXkgY2FuJ3QgYmUgdXNlZCB3aXRoIGFub3RoZXIgYWxnb3JpdGhtLiIpOwotCi1qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGFsZ29yaXRobUtleUdlbiA9IHsKLSAgICBuYW1lOiAi
UlNBLU9BRVAiLAotICAgIC8vIFJzYUtleUdlblBhcmFtcwotICAgIG1vZHVsdXNMZW5ndGg6IDIw
NDgsCi0gICAgcHVibGljRXhwb25lbnQ6IG5ldyBVaW50OEFycmF5KFsweDAxLCAweDAwLCAweDAx
XSksICAvLyBFcXVpdmFsZW50IHRvIDY1NTM3Ci19OwotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsK
LQotZGVidWcoIkdlbmVyYXRpbmcgYSBrZXkgcGFpci4uLiIpOwotY3J5cHRvLnN1YnRsZS5nZW5l
cmF0ZUtleShhbGdvcml0aG1LZXlHZW4sIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlw
dCIsICJ3cmFwS2V5IiwgInVud3JhcEtleSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAg
IGtleVBhaXIgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIudG9TdHJpbmcoKSIsICIn
W29iamVjdCBLZXlQYWlyXSciKTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wdWJsaWNLZXkudHlw
ZSIsICIncHVibGljJyIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0
aG0ubmFtZSIsICInUlNBLU9BRVAnIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHVibGljS2V5
LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIiwgIjIwNDgiKTsKLSAgICBzaG91bGRCZSgiYnl0ZXNU
b0hleFN0cmluZyhrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwg
IicwMTAwMDEnIik7Ci0gICAgc2hvdWxkQmVVbmRlZmluZWQoImtleVBhaXIucHVibGljS2V5LmFs
Z29yaXRobS5oYXNoIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHJpdmF0ZUtleS50eXBlIiwg
Iidwcml2YXRlJyIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGht
Lm5hbWUiLCAiJ1JTQS1PQUVQJyIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnByaXZhdGVLZXku
YWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOwotICAgIHNob3VsZEJlKCJieXRlc1Rv
SGV4U3RyaW5nKGtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwg
IicwMTAwMDEnIik7Ci0gICAgc2hvdWxkQmVVbmRlZmluZWQoImtleVBhaXIucHJpdmF0ZUtleS5h
bGdvcml0aG0uaGFzaCIpOwotCi0gICAgZGVidWcoIlxuVGVzdGluZyB0aGF0IHRoZSBrZXlzIGNh
bid0IGJlIHVzZWQgd2l0aCBkaWZmZXJlbnQgYWxnb3JpdGhtcy4uLiIpOwotICAgIGl2ID0gaGV4
U3RyaW5nVG9VaW50OEFycmF5KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIpOwot
ICAgIHNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmVuY3J5cHQoe25hbWU6ICJhZXMtY2JjIiwg
aXY6IGl2fSwga2V5UGFpci5wcml2YXRlS2V5LCBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAwIikp
Jyk7Ci0gICAgc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZW5jcnlwdCh7bmFtZTogImFlcy1j
YmMiLCBpdjogaXZ9LCBrZXlQYWlyLnB1YmxpY0tleSwgaGV4U3RyaW5nVG9VaW50OEFycmF5KCIw
MCIpKScpOwotCi0gICAgZGVidWcoIlxuVHJ5aW5nIHRvIGV4cG9ydCBrZXlzIHRvIHJhdy4uLiIp
OwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgncmF3Jywga2V5UGFpci5wdWJs
aWNLZXkpOwotfSkudGhlbih1bmRlZmluZWQsIGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHRlc3RQ
YXNzZWQoIlByb21pc2UgcmVqZWN0ZWQgZm9yIGV4cG9ydGluZyBwdWJsaWMga2V5Iik7Ci0gICAg
cmV0dXJuIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCdyYXcnLCBrZXlQYWlyLnByaXZhdGVLZXkp
OwotfSkudGhlbih1bmRlZmluZWQsIGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHRlc3RQYXNzZWQo
IlByb21pc2UgcmVqZWN0ZWQgZm9yIGV4cG9ydGluZyBwcml2YXRlIGtleSIpOwotCi0gICAgZGVi
dWcoIlxuRXhwb3J0aW5nIHB1YmxpYyBrZXkgdG8gSldLLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0
by5zdWJ0bGUuZXhwb3J0S2V5KCJqd2siLCBrZXlQYWlyLnB1YmxpY0tleSk7Ci19KS50aGVuKGZ1
bmN0aW9uKHJlc3VsdCkgewotICAgIGp3a1B1YmxpY0tleUFycmF5ID0gcmVzdWx0OwotICAgIGp3
a1B1YmxpY0tleSA9IEpTT04ucGFyc2UoYnl0ZXNUb0FTQ0lJU3RyaW5nKGp3a1B1YmxpY0tleUFy
cmF5KSk7Ci0gICAgc2hvdWxkQmUoImp3a1B1YmxpY0tleS5hbGciLCAiJ1JTQS1PQUVQJyIpOwot
ICAgIHNob3VsZEJlKCJqd2tQdWJsaWNLZXkuZXh0IiwgInRydWUiKTsKLSAgICBzaG91bGRCZSgi
andrUHVibGljS2V5LmtleV9vcHMiLCAiWydlbmNyeXB0JywgJ2RlY3J5cHQnLCAnd3JhcEtleScs
ICd1bndyYXBLZXknXSIpOwotICAgIHNob3VsZEJlKCJqd2tQdWJsaWNLZXkudXNlIiwgInVuZGVm
aW5lZCIpOwotICAgIHNob3VsZEJlKCJqd2tQdWJsaWNLZXkua3R5IiwgIidSU0EnIik7Ci0gICAg
c2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcoQmFzZTY0VVJMLnBhcnNlKGp3a1B1YmxpY0tleS5l
KSkiLCAiJzAxMDAwMSciKTsKLQotICAgIGRlYnVnKCJcbkltcG9ydGluZyBpdCBiYWNrLi4uIik7
Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tQdWJsaWNLZXlB
cnJheSwgbnVsbCwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0IiwgIndyYXBLZXki
LCAidW53cmFwS2V5Il0pOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBleHBvcnRl
ZFB1YmxpY0tleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRQdWJsaWNLZXkudHlw
ZSIsICIncHVibGljJyIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZFB1YmxpY0tleS5hbGdvcml0
aG0ubmFtZSIsICInUlNBLU9BRVAnIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkUHVibGljS2V5
LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIiwgIjIwNDgiKTsKLSAgICBzaG91bGRCZSgiYnl0ZXNU
b0hleFN0cmluZyhleHBvcnRlZFB1YmxpY0tleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwg
IicwMTAwMDEnIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkUHVibGljS2V5LmFsZ29yaXRobS5o
YXNoLm5hbWUiLCAiJ1NIQS0xJyIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZFB1YmxpY0tleS5l
eHRyYWN0YWJsZSIsICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkUHVibGljS2V5LnVz
YWdlcyIsICJbJ2RlY3J5cHQnLCdlbmNyeXB0JywndW53cmFwS2V5Jywnd3JhcEtleSddIik7Ci0K
LSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLW9hZXAtcGxhaW50ZXh0
LWxlbmd0aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1vYWVw
LXBsYWludGV4dC1sZW5ndGgtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA2Y2I2Y2E0NTg3NDc2MTdlMzA0YmUxOWFjM2Q1MTg2OGQ0MjcxZGY3Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9z
dWJ0bGUvcnNhLW9hZXAtcGxhaW50ZXh0LWxlbmd0aC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwxNCArMCwwIEBACi1UZXN0IHdoYXQgaGFwcGVucyB3aGVuIHRyeWluZyB0byBlbmNy
eXB0IGEgdG9vIGxhcmdlIHBsYWluIHRleHQgd2l0aCBSU0EtT0FFUC4KLQotT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgotCi0KLUltcG9ydGluZyBSU0Ega2V5cy4uLgotRW5jcnlwdGluZyBhIDIx
NCBieXRlIGJ1ZmZlciB3aXRoIFJTQS1PQUVQIFNIQS0xLCAyMDQ4IGJpdCBrZXkuLi4KLVBBU1Mg
U3VjY2VlZGVkCi1FbmNyeXB0aW5nIGEgMjE1IGJ5dGUgYnVmZmVyLi4uCi1QQVNTIFJlamVjdGVk
Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Etb2FlcC1wbGFpbnRleHQtbGVu
Z3RoLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1vYWVwLXBsYWludGV4dC1s
ZW5ndGguaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDFmMjEzYjFlYmM3Yjlh
M2M5ZTY4NzJiMDM1ZDg4NjQyYzgxOWUzZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1vYWVwLXBsYWlu
dGV4dC1sZW5ndGguaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3Qgd2hh
dCBoYXBwZW5zIHdoZW4gdHJ5aW5nIHRvIGVuY3J5cHQgYSB0b28gbGFyZ2UgcGxhaW4gdGV4dCB3
aXRoIFJTQS1PQUVQLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIHB1YmxpY0tl
eUpTT04gPSB7Ci0gICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSU0EtT0FFUCIsCi0gICAgbjog
InJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVB
V2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhi
SEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdk
QmktNzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBT
ejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6
bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWND
dyIsCi0gICAgZTogIkFRQUIiCi19OwotCi12YXIgcHJpdmF0ZUtleUpTT04gPSB7Ci0gICAga3R5
OiAiUlNBIiwKLSAgICBhbGc6ICJSU0EtT0FFUCIsCi0gICAgbjogInJjQ1VDdjdPYzFIVmFtMURJ
aEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJh
Y1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0Vv
dTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNP
U2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtW
ZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhL
TnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCi0gICAgZTogIkFRQUIi
LAotICAgIGQ6ICJlTkxTMzdhQ3o3UlhTTlBEX0R0TEJKNmo1VDhjU3hkelJCQ2pQYUk2V2NHcUpw
MTZscTNVVHd1b0RMQXFsQTlvR1ltMjM4ZHNJV3B1dWNQX2xRdGJXZS03U3B4b0k2X3ZtWUdmN1lW
VUh2MS1ERjlxaU9tU3JNbWR4TW5WT3pZWFk4UmFUNnRoUGpuX0o1Y2ZMVjJ4SV9Md3NyTXRtcGRT
eU5sZ1gwelRVaHd0dWFoZ0FLTUVDaFlqSDJFbmpIZEh3NnNZMi13QXBkY1FJN1VMRTBvbzVSemJR
WnBtdWhjTjloaUJjMEwzaGhGMHFvNTBtYmwwMl82NV9HUTdEcFZrWEJ4TmdSQkx6bFBhYm16ekcy
b0FoZmVmTGdZbVNDMW9wYUNrWEU2dlJXUU5XTkw0NVJaTlpGWU0zdW9KZ2hPTXFHZW9jTTBCcGpk
Q2hIclBPbEZ2U1EiLAotICAgIHA6ICI0bWlUdUFqS01lSDV1SjVLQjM5N1FVd2hia1lFZ1NiY0Ey
bWlmbVNrdkUyMDE4Z2I1NXFrQkhLMWVWcnlmMV9tNDNMTmxjNk9fYWs2Z2Z6ZFpJWnZTNU5DR2pQ
bDBxMDlwbFVwdThxRk9Tc3BCd0E2N3FHSDc2bEZsWkxuX2Q0eWdsUzd3ZkxydTRfNVlzOHFMTHMt
RHFWTHZpd3Bvc09ueXlXcXdNNUFYcDAiLAotICAgIHE6ICJ4SFlyemtpdnRtbnpfc0djaG5XR2Mw
cS1wRE9rS2ljcHRScHYycE1GSUlYeG5GWDVhTWVFWElaalZ1alh0d1V5MVVsRklOMkdaSlN2eTVL
Sjc5bXVfWHlObkZITXplZEgtQTNlZTN1OGgxVVVyWkYtdlV1MV9lNFVfeDY3Tk4xZGVkelVTS3lu
TjdwRmwzT2t1U2hNQldHVi1jd3pPUGRjVkFmVnVabHhVTWMiLAotICAgIGRwOiAiZkJ6RHpZRFVC
bUJRR29wN0huMGR2Zl9UMjdWNlJxcGN0V28wNzRDUVpjRmJQMmF0RlZ0S1NqM3ZpV1QzeGlkMlZI
emNnaURIZGZwTTNuRVZsRU8xd3dJb25HQ1N2ZGpHRU9aaWlGVk9qclpBT1Z4QThndU9qeXlGdnFi
WGtlMDZWd1BJSVZ2ZktlU1UyenVoYlBfXzF0dDZGX2Z4b3c0S2IyeG9uR1QwR0drIiwKLSAgICBk
cTogImptRTJEaUlQZGh3RGdMWEFRcElhQnFRODFiTzNYZlZUX0xSVUxBd3d3d2xQdVFWMTQ4SDA0
emxoOVRKNlkyR1pIWW9rVjFVMGVPQnBKeGZrYjdkTFl0cEpwdWlCalJmNHlJVUVvR2xra0lfUWxK
bkZTRnItWWpHUmRmTkhxV0JreGxTTVpMNzcwUjltSUFUbmRHa0g3ejV4LXI5S3dCWkZDNEZDRzJo
Z196RSIsCi0gICAgcWk6ICJZQ1hfcEx3Yk1CQTFUaFZIMFdjd21ueXRxTmNyTUNFd1RtN0J5QTJl
VTZuV2JRclVMdmY3bTlfa3pmTFVjanNucEFWbEJRRzVKTVhNeTBTcTRwdHdieXdzYTUtRzhLQU9P
T1IyTDN2NGhDLUV5czlmdGdGTV8zaTBvNDBlZVFINGIzaGFQYm50ckllTWc4SXpsT3VWWUtmOS0y
UXVLRG9XZVJkZDdOc2R4VGsiCi19OwotdmFyIGVuY3J5cHRBbGdvcml0aG0gPSB7bmFtZTogIlJT
QS1PQUVQIiwgaGFzaDogInNoYS0xIn07Ci12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotdmFyIG5v
bkV4dHJhY3RhYmxlID0gZmFsc2U7Ci0KLWRlYnVnKCJJbXBvcnRpbmcgUlNBIGtleXMuLi4iKTsK
LWNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0
cmluZ2lmeShwdWJsaWNLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAi
ZGVjcnlwdCJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHB1YmxpY0tleSA9IHJlc3Vs
dDsKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50
OEFycmF5KEpTT04uc3RyaW5naWZ5KHByaXZhdGVLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxl
LCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0g
ICAgcHJpdmF0ZUtleSA9IHJlc3VsdDsKLQotICAgIGRlYnVnKCJFbmNyeXB0aW5nIGEgMjE0IGJ5
dGUgYnVmZmVyIHdpdGggUlNBLU9BRVAgU0hBLTEsIDIwNDggYml0IGtleS4uLiIpOwotICAgIHJl
dHVybiBjcnlwdG8uc3VidGxlLmVuY3J5cHQoe25hbWU6ICJSU0EtT0FFUCIsIGhhc2g6ICJTSEEt
MSJ9LCBwdWJsaWNLZXksIG5ldyBVaW50OEFycmF5KDIxNCkpOwotfSkudGhlbihmdW5jdGlvbihy
ZXN1bHQpIHsKLSAgICB0ZXN0UGFzc2VkKCJTdWNjZWVkZWQiKTsKLSAgICBkZWJ1ZygiRW5jcnlw
dGluZyBhIDIxNSBieXRlIGJ1ZmZlci4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmVu
Y3J5cHQoe25hbWU6ICJSU0EtT0FFUCIsIGhhc2g6ICJTSEEtMSJ9LCBwdWJsaWNLZXksIG5ldyBV
aW50OEFycmF5KDIxNSkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB0ZXN0RmFp
bGVkKCJTdWNjZWVkZWQiKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0sIGZ1bmN0aW9uKHJlc3Vs
dCkgewotICAgIHRlc3RQYXNzZWQoIlJlamVjdGVkIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19
KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL3JzYS1vYWVwLXdyYXAtdW53cmFwLWFlcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1vYWVwLXdyYXAtdW53cmFwLWFlcy1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmOTU4ZDYyNmI1Y2I5NmQ3MDdj
NzBhMzY1YmEyOTI5OTc3NDM5YWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Etb2FlcC13cmFwLXVud3Jh
cC1hZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotVGVzdCB3
cmFwcGluZyBhbmQgdW53cmFwcGluZyBBRVMga2V5cyB3aXRoIFJTQS1PQUVQLgotCi1PbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCi0KLQotSW1wb3J0aW5nIFJTQSBrZXlzLi4uCi1JbXBvcnRpbmcg
YW4gQUVTIGtleS4uLgotV3JhcHBpbmcgaXQuLi4KLVBBU1Mgd3JhcHBlZEtleS50b1N0cmluZygp
IGlzICdbb2JqZWN0IEFycmF5QnVmZmVyXScKLVVud3JhcHBpbmcgaXQuLi4KLVBBU1MgdW53cmFw
cGVkS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgS2V5XScKLVBBU1MgdW53cmFwcGVkS2V5LnR5
cGUgaXMgJ3NlY3JldCcKLVBBU1MgdW53cmFwcGVkS2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKLVBB
U1MgdW53cmFwcGVkS2V5LmFsZ29yaXRobS5uYW1lIGlzICdBRVMtQ0JDJwotUEFTUyB1bndyYXBw
ZWRLZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyAyNTYKLVBBU1MgdW53cmFwcGVkS2V5LnVzYWdlcyBp
cyBbJ2RlY3J5cHQnLCAnZW5jcnlwdCddCi1FeHBvcnRpbmcgaXQuLi4KLVBBU1MgYnl0ZXNUb0hl
eFN0cmluZyh1bndyYXBwZWRLZXlEYXRhKSBpcyBieXRlc1RvSGV4U3RyaW5nKGFlc0tleURhdGEp
Ci0KLVdyYXBwaW5nIHRoZSBzYW1lIGtleSBhcyBKV0suLi4KLVBBU1Mgd3JhcHBlZEtleS50b1N0
cmluZygpIGlzICdbb2JqZWN0IEFycmF5QnVmZmVyXScKLVVud3JhcHBpbmcgaXQuLi4KLVBBU1Mg
dW53cmFwcGVkS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgS2V5XScKLVBBU1MgdW53cmFwcGVk
S2V5LnR5cGUgaXMgJ3NlY3JldCcKLVBBU1MgdW53cmFwcGVkS2V5LmV4dHJhY3RhYmxlIGlzIHRy
dWUKLVBBU1MgdW53cmFwcGVkS2V5LmFsZ29yaXRobS5uYW1lIGlzICdBRVMtQ0JDJwotUEFTUyB1
bndyYXBwZWRLZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyAyNTYKLVBBU1MgdW53cmFwcGVkS2V5LnVz
YWdlcyBpcyBbJ2RlY3J5cHQnLCAnZW5jcnlwdCddCi1FeHBvcnRpbmcgaXQuLi4KLVBBU1MgYnl0
ZXNUb0hleFN0cmluZyh1bndyYXBwZWRLZXlEYXRhKSBpcyBieXRlc1RvSGV4U3RyaW5nKGFlc0tl
eURhdGEpCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Etb2FlcC13cmFwLXVu
d3JhcC1hZXMuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLW9hZXAtd3JhcC11
bndyYXAtYWVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEzZTY1YzUwM2Qx
ODg1MTkwZGM4MjU4ZDUyODI3Zjg4OTIyODU4MTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Etb2FlcC13
cmFwLXVud3JhcC1hZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwMyArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9u
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0
IHdyYXBwaW5nIGFuZCB1bndyYXBwaW5nIEFFUyBrZXlzIHdpdGggUlNBLU9BRVAuIik7Ci0KLWpz
VGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIgcHVibGljS2V5SlNPTiA9IHsKLSAgICBrdHk6ICJS
U0EiLAotICAgIGFsZzogIlJTQS1PQUVQIiwKLSAgICBuOiAicmNDVUN2N09jMUhWYW0xREloQ3px
a25UaFdhd09wOFFMazhaaXkycDEwQnlqUUZDYWpvRml5dUFXbC1SMVdYWmFmNHhpdExScmFjVDlh
Z3B6SXpjLU1iTFNISUdnV1FHTzIxbEdpSW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91N1hT
U0xEb1JuUjBRRzVNc0RoRDZzMmdWOW13SGtydGtDeHRNV2RCaS03N2FzOHdHbWxOUmxkY09TZ1pE
TEs4VW5DU2dBMU9ndVo5ODliRnljOHRPT0VJYjB4VVNmUFN6M0xQU0NueVl6NjhhRGptS1ZlTkgt
aWc4NTdPU2N5V2JHeUV5M0JpdzY0cXVuM2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtOczZS
LU15eXE3MktVcDAybUpEWmlpeWlnbHhNTF9pMy1fQ2VlY0N3IiwKLSAgICBlOiAiQVFBQiIKLX07
Ci0KLXZhciBwcml2YXRlS2V5SlNPTiA9IHsKLSAgICBrdHk6ICJSU0EiLAotICAgIGFsZzogIlJT
QS1PQUVQIiwKLSAgICBuOiAicmNDVUN2N09jMUhWYW0xREloQ3pxa25UaFdhd09wOFFMazhaaXky
cDEwQnlqUUZDYWpvRml5dUFXbC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6SXpjLU1iTFNISUdnV1FH
TzIxbEdpSW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVNc0RoRDZz
MmdWOW13SGtydGtDeHRNV2RCaS03N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5ODli
RnljOHRPT0VJYjB4VVNmUFN6M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5M0Jp
dzY0cXVuM2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3MktVcDAybUpEWmlp
eWlnbHhNTF9pMy1fQ2VlY0N3IiwKLSAgICBlOiAiQVFBQiIsCi0gICAgZDogImVOTFMzN2FDejdS
WFNOUERfRHRMQko2ajVUOGNTeGR6UkJDalBhSTZXY0dxSnAxNmxxM1VUd3VvRExBcWxBOW9HWW0y
Mzhkc0lXcHV1Y1BfbFF0YldlLTdTcHhvSTZfdm1ZR2Y3WVZVSHYxLURGOXFpT21Tck1tZHhNblZP
ellYWThSYVQ2dGhQam5fSjVjZkxWMnhJX0x3c3JNdG1wZFN5TmxnWDB6VFVod3R1YWhnQUtNRUNo
WWpIMkVuakhkSHc2c1kyLXdBcGRjUUk3VUxFMG9vNVJ6YlFacG11aGNOOWhpQmMwTDNoaEYwcW81
MG1ibDAyXzY1X0dRN0RwVmtYQnhOZ1JCTHpsUGFibXp6RzJvQWhmZWZMZ1ltU0Mxb3BhQ2tYRTZ2
UldRTldOTDQ1UlpOWkZZTTN1b0pnaE9NcUdlb2NNMEJwamRDaEhyUE9sRnZTUSIsCi0gICAgcDog
IjRtaVR1QWpLTWVINXVKNUtCMzk3UVV3aGJrWUVnU2JjQTJtaWZtU2t2RTIwMThnYjU1cWtCSEsx
ZVZyeWYxX200M0xObGM2T19hazZnZnpkWkladlM1TkNHalBsMHEwOXBsVXB1OHFGT1NzcEJ3QTY3
cUdINzZsRmxaTG5fZDR5Z2xTN3dmTHJ1NF81WXM4cUxMcy1EcVZMdml3cG9zT255eVdxd001QVhw
MCIsCi0gICAgcTogInhIWXJ6a2l2dG1uel9zR2NobldHYzBxLXBET2tLaWNwdFJwdjJwTUZJSVh4
bkZYNWFNZUVYSVpqVnVqWHR3VXkxVWxGSU4yR1pKU3Z5NUtKNzltdV9YeU5uRkhNemVkSC1BM2Vl
M3U4aDFVVXJaRi12VXUxX2U0VV94NjdOTjFkZWR6VVNLeW5ON3BGbDNPa3VTaE1CV0dWLWN3ek9Q
ZGNWQWZWdVpseFVNYyIsCi0gICAgZHA6ICJmQnpEellEVUJtQlFHb3A3SG4wZHZmX1QyN1Y2UnFw
Y3RXbzA3NENRWmNGYlAyYXRGVnRLU2ozdmlXVDN4aWQyVkh6Y2dpREhkZnBNM25FVmxFTzF3d0lv
bkdDU3ZkakdFT1ppaUZWT2pyWkFPVnhBOGd1T2p5eUZ2cWJYa2UwNlZ3UElJVnZmS2VTVTJ6dWhi
UF9fMXR0NkZfZnhvdzRLYjJ4b25HVDBHR2siLAotICAgIGRxOiAiam1FMkRpSVBkaHdEZ0xYQVFw
SWFCcVE4MWJPM1hmVlRfTFJVTEF3d3d3bFB1UVYxNDhIMDR6bGg5VEo2WTJHWkhZb2tWMVUwZU9C
cEp4ZmtiN2RMWXRwSnB1aUJqUmY0eUlVRW9HbGtrSV9RbEpuRlNGci1ZakdSZGZOSHFXQmt4bFNN
Wkw3NzBSOW1JQVRuZEdrSDd6NXgtcjlLd0JaRkM0RkNHMmhnX3pFIiwKLSAgICBxaTogIllDWF9w
THdiTUJBMVRoVkgwV2N3bW55dHFOY3JNQ0V3VG03QnlBMmVVNm5XYlFyVUx2ZjdtOV9remZMVWNq
c25wQVZsQlFHNUpNWE15MFNxNHB0d2J5d3NhNS1HOEtBT09PUjJMM3Y0aEMtRXlzOWZ0Z0ZNXzNp
MG80MGVlUUg0YjNoYVBibnRySWVNZzhJemxPdVZZS2Y5LTJRdUtEb1dlUmRkN05zZHhUayIKLX07
Ci12YXIgd3JhcEFsZ29yaXRobSA9IHtuYW1lOiAiUlNBLU9BRVAiLCBoYXNoOiAic2hhLTEifTsK
LXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci12YXIgbm9uRXh0cmFjdGFibGUgPSBmYWxzZTsKLQot
ZGVidWcoIkltcG9ydGluZyBSU0Ega2V5cy4uLiIpOwotY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXko
Imp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KHB1YmxpY0tleUpTT04pKSwg
bnVsbCwgZXh0cmFjdGFibGUsIFsid3JhcEtleSIsICJ1bndyYXBLZXkiXSkudGhlbihmdW5jdGlv
bihyZXN1bHQpIHsKLSAgICBwdWJsaWNLZXkgPSByZXN1bHQ7Ci0gICAgcmV0dXJuIGNyeXB0by5z
dWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShw
cml2YXRlS2V5SlNPTikpLCBudWxsLCBleHRyYWN0YWJsZSwgWyJ3cmFwS2V5IiwgInVud3JhcEtl
eSJdKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgcHJpdmF0ZUtleSA9IHJlc3Vs
dDsKLQotICAgIGRlYnVnKCJJbXBvcnRpbmcgYW4gQUVTIGtleS4uLiIpOwotICAgIGFlc0tleURh
dGEgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjYwM2RlYjEwMTVjYTcxYmUyYjczYWVmMDg1N2Q3
NzgxMWYzNTJjMDczYjYxMDhkNzJkOTgxMGEzMDkxNGRmZjQiKTsKLSAgICByZXR1cm4gY3J5cHRv
LnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGFlc0tleURhdGEsICJhZXMtY2JjIiwgZXh0cmFjdGFi
bGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0IiwgIndyYXBLZXkiLCAidW53cmFwS2V5Il0pCi19KS50
aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGFlc0tleSA9IHJlc3VsdDsKLSAgICBkZWJ1Zygi
V3JhcHBpbmcgaXQuLi4iKTsKLQotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLndyYXBLZXkoInJh
dyIsIGFlc0tleSwgcHVibGljS2V5LCB3cmFwQWxnb3JpdGhtKTsKLX0pLnRoZW4oZnVuY3Rpb24o
cmVzdWx0KSB7Ci0gICAgd3JhcHBlZEtleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgid3JhcHBl
ZEtleS50b1N0cmluZygpIiwgIidbb2JqZWN0IEFycmF5QnVmZmVyXSciKTsKLQotICAgIGRlYnVn
KCJVbndyYXBwaW5nIGl0Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUudW53cmFwS2V5
KCJyYXciLCB3cmFwcGVkS2V5LCBwcml2YXRlS2V5LCB3cmFwQWxnb3JpdGhtLCAiYWVzLWNiYyIs
IGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKTsKLX0pLnRoZW4oZnVuY3Rpb24o
cmVzdWx0KSB7Ci0gICAgdW53cmFwcGVkS2V5ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJ1bndy
YXBwZWRLZXkudG9TdHJpbmcoKSIsICInW29iamVjdCBLZXldJyIpOwotICAgIHNob3VsZEJlKCJ1
bndyYXBwZWRLZXkudHlwZSIsICInc2VjcmV0JyIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBwZWRL
ZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkuYWxn
b3JpdGhtLm5hbWUiLCAiJ0FFUy1DQkMnIik7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS5h
bGdvcml0aG0ubGVuZ3RoIiwgIjI1NiIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkudXNh
Z2VzIiwgIlsnZGVjcnlwdCcsICdlbmNyeXB0J10iKTsKLQotICAgIGRlYnVnKCJFeHBvcnRpbmcg
aXQuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoInJhdyIsIHVud3Jh
cHBlZEtleSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHVud3JhcHBlZEtleURh
dGEgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcodW53cmFwcGVkS2V5
RGF0YSkiLCAiYnl0ZXNUb0hleFN0cmluZyhhZXNLZXlEYXRhKSIpOwotCi0gICAgZGVidWcoIlxu
V3JhcHBpbmcgdGhlIHNhbWUga2V5IGFzIEpXSy4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3Vi
dGxlLndyYXBLZXkoImp3ayIsIGFlc0tleSwgcHVibGljS2V5LCB3cmFwQWxnb3JpdGhtKTsKLX0p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgd3JhcHBlZEtleSA9IHJlc3VsdDsKLSAgICBz
aG91bGRCZSgid3JhcHBlZEtleS50b1N0cmluZygpIiwgIidbb2JqZWN0IEFycmF5QnVmZmVyXSci
KTsKLQotICAgIGRlYnVnKCJVbndyYXBwaW5nIGl0Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5z
dWJ0bGUudW53cmFwS2V5KCJqd2siLCB3cmFwcGVkS2V5LCBwcml2YXRlS2V5LCB3cmFwQWxnb3Jp
dGhtLCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKTsKLX0p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgdW53cmFwcGVkS2V5ID0gcmVzdWx0OwotICAg
IHNob3VsZEJlKCJ1bndyYXBwZWRLZXkudG9TdHJpbmcoKSIsICInW29iamVjdCBLZXldJyIpOwot
ICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkudHlwZSIsICInc2VjcmV0JyIpOwotICAgIHNob3Vs
ZEJlKCJ1bndyYXBwZWRLZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJ1
bndyYXBwZWRLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FFUy1DQkMnIik7Ci0gICAgc2hvdWxkQmUo
InVud3JhcHBlZEtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjI1NiIpOwotICAgIHNob3VsZEJlKCJ1
bndyYXBwZWRLZXkudXNhZ2VzIiwgIlsnZGVjcnlwdCcsICdlbmNyeXB0J10iKTsKLQotICAgIGRl
YnVnKCJFeHBvcnRpbmcgaXQuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRL
ZXkoInJhdyIsIHVud3JhcHBlZEtleSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAg
IHVud3JhcHBlZEtleURhdGEgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJp
bmcodW53cmFwcGVkS2V5RGF0YSkiLCAiYnl0ZXNUb0hleFN0cmluZyhhZXNLZXlEYXRhKSIpOwot
ICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtcG9zdE1lc3NhZ2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtcG9zdE1lc3NhZ2UtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNTM1OTJlOGFjZGIzZWM1
MzdhODM1MGEyMzE5ODgxNzdkYjI0ZGUwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLXBvc3RNZXNzYWdl
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLVRlc3Qgc2VuZGlu
ZyBjcnlwdG8ga2V5cyB2aWEgcG9zdE1lc3NhZ2UuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KLQotCi1LZXkgcmVjZWl2ZWQgaW4gYSBtZXNzYWdlOgotUEFTUyBrZXkudHlwZSBpcyAncHJp
dmF0ZScKLVBBU1Mga2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKLVBBU1Mga2V5LmFsZ29yaXRobS5u
YW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScKLVBBU1Mga2V5LmFsZ29yaXRobS5tb2R1bHVzTGVu
Z3RoIGlzIDIwNDgKLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhrZXkuYWxnb3JpdGhtLnB1YmxpY0V4
cG9uZW50KSBpcyAnMDEwMDAxJwotUEFTUyBrZXkudXNhZ2VzIGlzIFsic2lnbiIsICJ2ZXJpZnki
XQotCi1FeHBvcnRlZCBiYWNrIHRvIEpXSzoKLVBBU1MgZXhwb3J0ZWRKV0sua3R5IGlzICdSU0En
Ci1QQVNTIGV4cG9ydGVkSldLLmFsZyBpcyAnUlMyNTYnCi1QQVNTIGV4cG9ydGVkSldLLmV4dCBp
cyB0cnVlCi1QQVNTIGV4cG9ydGVkSldLLmtleV9vcHMgaXMgWydzaWduJywndmVyaWZ5J10KLVBB
U1MgZXhwb3J0ZWRKV0sudXNlIGlzIHVuZGVmaW5lZAotUEFTUyBleHBvcnRlZEpXSy5uIGlzIHBy
aXZhdGVLZXlKU09OLm4KLVBBU1MgZXhwb3J0ZWRKV0suZSBpcyBwcml2YXRlS2V5SlNPTi5lCi1Q
QVNTIGV4cG9ydGVkSldLLmQgaXMgcHJpdmF0ZUtleUpTT04uZAotUEFTUyBleHBvcnRlZEpXSy5w
IGlzIHByaXZhdGVLZXlKU09OLnAKLVBBU1MgZXhwb3J0ZWRKV0sucSBpcyBwcml2YXRlS2V5SlNP
Ti5xCi1QQVNTIGV4cG9ydGVkSldLLmRwIGlzIHByaXZhdGVLZXlKU09OLmRwCi1QQVNTIGV4cG9y
dGVkSldLLmRxIGlzIHByaXZhdGVLZXlKU09OLmRxCi1QQVNTIGV4cG9ydGVkSldLLnFpIGlzIHBy
aXZhdGVLZXlKU09OLnFpCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVT
VCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1w
b3N0TWVzc2FnZS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtcG9zdE1lc3Nh
Z2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDczZWE3ZTRiY2RjMDFhZjUx
NjY2OTJmYjYyYTZlMjRkYWE3MDU5OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1wb3N0TWVzc2FnZS5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci0KLWRlc2Ny
aXB0aW9uKCJUZXN0IHNlbmRpbmcgY3J5cHRvIGtleXMgdmlhIHBvc3RNZXNzYWdlLiIpOwotCi1q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIHByaXZhdGVLZXlKU09OID0gewotICAgIGt0eTog
IlJTQSIsCi0gICAgYWxnOiAiUlMyNTYiLAotICAgIG46ICJyY0NVQ3Y3T2MxSFZhbTFESWhDenFr
blRoV2F3T3A4UUxrOFppeTJwMTBCeWpRRkNham9GaXl1QVdsLVIxV1haYWY0eGl0TFJyYWNUOWFn
cHpJemMtTWJMU0hJR2dXUUdPMjFsR2lJbXk1ZnRaLUQ4YkhBcVJ6MnkxNXB6RDRjNENFb3U3WFNT
TERvUm5SMFFHNU1zRGhENnMyZ1Y5bXdIa3J0a0N4dE1XZEJpLTc3YXM4d0dtbE5SbGRjT1NnWkRM
SzhVbkNTZ0ExT2d1Wjk4OWJGeWM4dE9PRUliMHhVU2ZQU3ozTFBTQ255WXo2OGFEam1LVmVOSC1p
Zzg1N09TY3lXYkd5RXkzQml3NjRxdW4zanVVbE5Xc0ozem5na09kdGVZV3l0eDVRcjRYS05zNlIt
TXl5cTcyS1VwMDJtSkRaaWl5aWdseE1MX2kzLV9DZWVjQ3ciLAotICAgIGU6ICJBUUFCIiwKLSAg
ICBkOiAiZU5MUzM3YUN6N1JYU05QRF9EdExCSjZqNVQ4Y1N4ZHpSQkNqUGFJNldjR3FKcDE2bHEz
VVR3dW9ETEFxbEE5b0dZbTIzOGRzSVdwdXVjUF9sUXRiV2UtN1NweG9JNl92bVlHZjdZVlVIdjEt
REY5cWlPbVNyTW1keE1uVk96WVhZOFJhVDZ0aFBqbl9KNWNmTFYyeElfTHdzck10bXBkU3lObGdY
MHpUVWh3dHVhaGdBS01FQ2hZakgyRW5qSGRIdzZzWTItd0FwZGNRSTdVTEUwb281UnpiUVpwbXVo
Y045aGlCYzBMM2hoRjBxbzUwbWJsMDJfNjVfR1E3RHBWa1hCeE5nUkJMemxQYWJtenpHMm9BaGZl
ZkxnWW1TQzFvcGFDa1hFNnZSV1FOV05MNDVSWk5aRllNM3VvSmdoT01xR2VvY00wQnBqZENoSHJQ
T2xGdlNRIiwKLSAgICBwOiAiNG1pVHVBaktNZUg1dUo1S0IzOTdRVXdoYmtZRWdTYmNBMm1pZm1T
a3ZFMjAxOGdiNTVxa0JISzFlVnJ5ZjFfbTQzTE5sYzZPX2FrNmdmemRaSVp2UzVOQ0dqUGwwcTA5
cGxVcHU4cUZPU3NwQndBNjdxR0g3NmxGbFpMbl9kNHlnbFM3d2ZMcnU0XzVZczhxTExzLURxVkx2
aXdwb3NPbnl5V3F3TTVBWHAwIiwKLSAgICBxOiAieEhZcnpraXZ0bW56X3NHY2huV0djMHEtcERP
a0tpY3B0UnB2MnBNRklJWHhuRlg1YU1lRVhJWmpWdWpYdHdVeTFVbEZJTjJHWkpTdnk1S0o3OW11
X1h5Tm5GSE16ZWRILUEzZWUzdThoMVVVclpGLXZVdTFfZTRVX3g2N05OMWRlZHpVU0t5bk43cEZs
M09rdVNoTUJXR1YtY3d6T1BkY1ZBZlZ1Wmx4VU1jIiwKLSAgICBkcDogImZCekR6WURVQm1CUUdv
cDdIbjBkdmZfVDI3VjZScXBjdFdvMDc0Q1FaY0ZiUDJhdEZWdEtTajN2aVdUM3hpZDJWSHpjZ2lE
SGRmcE0zbkVWbEVPMXd3SW9uR0NTdmRqR0VPWmlpRlZPanJaQU9WeEE4Z3VPanl5RnZxYlhrZTA2
VndQSUlWdmZLZVNVMnp1aGJQX18xdHQ2Rl9meG93NEtiMnhvbkdUMEdHayIsCi0gICAgZHE6ICJq
bUUyRGlJUGRod0RnTFhBUXBJYUJxUTgxYk8zWGZWVF9MUlVMQXd3d3dsUHVRVjE0OEgwNHpsaDlU
SjZZMkdaSFlva1YxVTBlT0JwSnhma2I3ZExZdHBKcHVpQmpSZjR5SVVFb0dsa2tJX1FsSm5GU0Zy
LVlqR1JkZk5IcVdCa3hsU01aTDc3MFI5bUlBVG5kR2tIN3o1eC1yOUt3QlpGQzRGQ0cyaGdfekUi
LAotICAgIHFpOiAiWUNYX3BMd2JNQkExVGhWSDBXY3dtbnl0cU5jck1DRXdUbTdCeUEyZVU2bldi
UXJVTHZmN205X2t6ZkxVY2pzbnBBVmxCUUc1Sk1YTXkwU3E0cHR3Ynl3c2E1LUc4S0FPT09SMkwz
djRoQy1FeXM5ZnRnRk1fM2kwbzQwZWVRSDRiM2hhUGJudHJJZU1nOEl6bE91VllLZjktMlF1S0Rv
V2VSZGQ3TnNkeFRrIgotfTsKLQotd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBm
dW5jdGlvbihldnQpIHsKLSAgICBkZWJ1ZygiS2V5IHJlY2VpdmVkIGluIGEgbWVzc2FnZToiKTsK
LSAgICBrZXkgPSBldnQuZGF0YTsKLSAgICBzaG91bGRCZSgia2V5LnR5cGUiLCAiJ3ByaXZhdGUn
Iik7Ci0gICAgc2hvdWxkQmUoImtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7Ci0gICAgc2hvdWxk
QmUoImtleS5hbGdvcml0aG0ubmFtZSIsICInUlNBU1NBLVBLQ1MxLXYxXzUnIik7Ci0gICAgc2hv
dWxkQmUoImtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCIsICIyMDQ4Iik7Ci0gICAgc2hvdWxk
QmUoImJ5dGVzVG9IZXhTdHJpbmcoa2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAx
MDAwMSciKTsKLSAgICBzaG91bGRCZSgia2V5LnVzYWdlcyIsICdbInNpZ24iLCAidmVyaWZ5Il0n
KTsKLQotICAgIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJqd2siLCBrZXkpLnRoZW4oZnVuY3Rp
b24ocmVzdWx0KSB7Ci0gICAgICAgIGV4cG9ydGVkSldLID0gSlNPTi5wYXJzZShieXRlc1RvQVND
SUlTdHJpbmcocmVzdWx0KSk7Ci0gICAgICAgIGRlYnVnKCJcbkV4cG9ydGVkIGJhY2sgdG8gSldL
OiIpOwotICAgICAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sua3R5IiwgIidSU0EnIik7Ci0gICAg
ICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5hbGciLCAiJ1JTMjU2JyIpOwotICAgICAgICBzaG91
bGRCZSgiZXhwb3J0ZWRKV0suZXh0IiwgInRydWUiKTsKLSAgICAgICAgc2hvdWxkQmUoImV4cG9y
dGVkSldLLmtleV9vcHMiLCAiWydzaWduJywndmVyaWZ5J10iKTsKLSAgICAgICAgc2hvdWxkQmUo
ImV4cG9ydGVkSldLLnVzZSIsICJ1bmRlZmluZWQiKTsKLSAgICAgICAgc2hvdWxkQmUoImV4cG9y
dGVkSldLLm4iLCAicHJpdmF0ZUtleUpTT04ubiIpOwotICAgICAgICBzaG91bGRCZSgiZXhwb3J0
ZWRKV0suZSIsICJwcml2YXRlS2V5SlNPTi5lIik7Ci0gICAgICAgIHNob3VsZEJlKCJleHBvcnRl
ZEpXSy5kIiwgInByaXZhdGVLZXlKU09OLmQiKTsKLSAgICAgICAgc2hvdWxkQmUoImV4cG9ydGVk
SldLLnAiLCAicHJpdmF0ZUtleUpTT04ucCIpOwotICAgICAgICBzaG91bGRCZSgiZXhwb3J0ZWRK
V0sucSIsICJwcml2YXRlS2V5SlNPTi5xIik7Ci0gICAgICAgIHNob3VsZEJlKCJleHBvcnRlZEpX
Sy5kcCIsICJwcml2YXRlS2V5SlNPTi5kcCIpOwotICAgICAgICBzaG91bGRCZSgiZXhwb3J0ZWRK
V0suZHEiLCAicHJpdmF0ZUtleUpTT04uZHEiKTsKLSAgICAgICAgc2hvdWxkQmUoImV4cG9ydGVk
SldLLnFpIiwgInByaXZhdGVLZXlKU09OLnFpIik7Ci0gICAgICAgIGRlYnVnKCIiKTsKLQotICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICB9KTsKLX0sIGZhbHNlKTsKLQotY3J5cHRvLnN1YnRs
ZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KHByaXZh
dGVLZXlKU09OKSksIG51bGwsIHRydWUsIFsic2lnbiIsICJ2ZXJpZnkiXSkudGhlbihmdW5jdGlv
bihyZXN1bHQpIHsKLSAgICBwb3N0TWVzc2FnZShyZXN1bHQsICIqIik7Ci19KTsKLTwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRs
ZS9yc2Flcy1wa2NzMS12MV81LWRlY3J5cHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9yc2Flcy1wa2NzMS12MV81LWRlY3J5cHQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNDUwNDg0ZGEwNmI5MWMwMmY0NzI3NjRkMWUxZmZjZDli
ZWUxNjY0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhZXMtcGtjczEtdjFfNS1kZWNyeXB0LWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRlc3QgZGVjcnlwdGluZyBhIGtu
b3duIG1lc3NhZ2Ugd2l0aCBSU0FFUy1QS0NTMS12MV81LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCi0KLQotSW1wb3J0aW5nIGFuIFJTQSBrZXkuLi4KLURlY3J5cHRpbmcuLi4KLVBBU1Mg
Ynl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShtZXNzYWdlKSkgaXMgJzJhYWNlYzg2ZjQy
M2RkOTI1ZWMxNTg4MjJhNzQ4Y2JlNmMzMWEwJwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9z
dWJ0bGUvcnNhZXMtcGtjczEtdjFfNS1kZWNyeXB0Lmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8v
c3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtZGVjcnlwdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBhMDcwMGY0MTQxZTAyMzM4YzE1ZmIyZTgwNjUzNjM1NWM3MTY3ZTJiLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvcnNhZXMtcGtjczEtdjFfNS1kZWNyeXB0Lmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw0OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlw
dD4KLWRlc2NyaXB0aW9uKCJUZXN0IGRlY3J5cHRpbmcgYSBrbm93biBtZXNzYWdlIHdpdGggUlNB
RVMtUEtDUzEtdjFfNS4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBwcml2YXRl
S2V5SlNPTiA9IHsKLSAgICBrdHk6ICJSU0EiLAotICAgIGFsZzogIlJTQTFfNSIsCi0gICAgbjog
QmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoImRjZmExMGZmYTc0NjY1
YWVlZjg3MDk3NGVhOTliMmNlNTQ1NDdjNjdmNDJhYWE2ZGQwMWEyZWQzMWZkMmMyNDJhZjVkOTYw
YjFmODk2ZWZiYTM1NDNkNjU1NGI3YjEyNjg3YTVjNjg4NTY4ZjMyZTAyNmM1MzJkMjU5OTNiOTdh
N2MyODQyZWMyYjhlMTIzNWVlZTI0MTRkMjU4MDZjNmZiYWU0Mzg5NTRlYmE5ZDI3NTVkZmZlZWIx
YjQ3NzAwOTU3ODE1YThhMjMzZjk3YjFhMmM3MTRiM2UyYmUyZTQyZDhiZTMwYjE5NjE1ODJlYTk5
NDg5MTBlMGM3OTdjNTBmYzRiYjQ1NWYwZmM0NWU1ZTM0ZTYzOTZhYzViMmQ0NjIzOTM2NWM3ZjNk
YWFmMDkwOTQwMGQ2MWNmOWUwY2E4MDgzZWFmMzM1YTZmY2ViNjg2M2MxY2MwY2Y1YTE3MWFmZjM1
ZDk3ZWNiNjBlZjI1MWM3ZWMyYzhhNTg4MzYxZGM0MTI2NmE0YjdlZDM4YjAyNmNlMGQ1Mzc4NjQ0
OWRiYjExYTA2ZWEzM2NjZjFlY2E1NzUyMDFlZDFhYTQ3M2VkMTE4N2VjMWQ4YTc0NGVhMzQ1YmVk
N2VhMDBlZTRlODFiYmE0NjQ4NjAxZGQ1MzdkYzkxMDE1ZDMxZjBjMmMxIikpLAotICAgIGU6IEJh
c2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMTAwMDEiKSksCi0gICAg
ZDogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjIxOTUwODUxY2Rm
MjUzMjAzMThiMzA1YWZhMGYzNzFmMDdhZTVhNDRiMzE0ZWJkNzI5ZjVkY2IxNWRhN2ZhMzk0N2Fj
ZGQ5MTVkYWVkNTc0YmQxNmRmODhiZjg1ZjYxMDYwYjM4NzE3MmZhZTZlMDEyNjJiMzg2NGMyZDNj
MjJmOTRlMDRhODE1OTQyMmI0ZWQyNzljNDhhNGM5ZDc2N2Q0OTY2MDcxYTViYmY1ZDA0M2UxNmZm
NDZlYzFiYTA3MTZmMDBiYmM5N2JmZjVkNTY5M2UyMTRlOTljOTcyMWYxMmIzZWM2MjgyYWUyYTQ4
NTcyMWI5NmRkY2Y3NDAzZmEwMzdkMGM1N2FiNDYzYzQ0OGRlNWNjMTIyNjVhZGQ4ODZkMzExZWE4
ZDhhNTkwM2ZhNTZjNWYxYzljZjJlYjExY2I2NTdhMWE3ZDNlNDEzNTJkYzNlNjg2ODk4YzRjZTQz
MDVlOGI2MzhlMWIwOGEyYTg2Y2M5ZWI5ODY2ZjM0OTlhYzc3YjYxMzZiODFjYjI3NmQ2MTRjZmVi
N2I2ZWQzZjNiYzc3NWU0NmMwMDA2NmViZWVlMmNmZjcxNjZiNTc1MjA1OTg5NDdmZjYyMTAzMjBi
Mjg4ZmI0ZjJjM2Y4ZmU5N2IyNzk0MTRlYmY3MjAzMDAwYTE5ZmMwNDI0ODc1IikpLAotICAgIHA6
IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJmMTIzYmZlNTNkZTk3
YTU2OWQ5MWFkY2Y1NTZmYTYyNWFkMzBmM2ZkM2Q4MTFmOWU5MWU2YWY0NGI2ZTc4MGNiMGYzMjc4
MjlmYjIxMTkwYWUyODA2NjQ2ZDcyOGNkOWI2NTMxMTMyYjFlYmZlZjEyNzI5OTMwNjBmMWNlNzBi
MTI0MzkzMDkxZWU4NTkzYjcyNzM2N2VkYmJhMDA5ZWM1YmUxN2M0YWNlZTEyMGM4NDEyNjdkNDc2
MzFhMTZjMzZhNmQxYzk5OTczYzFiMGI1YTgzNWJmMzlmZWFmZThmNjQyMWZkOWMyYTkwYmMyNzk3
NjY1OWU2N2JjODMxMjRkIikpLAotICAgIHE6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5n
VG9VaW50OEFycmF5KCJlYTk4MzliN2UzN2VhODliYmRhMjdlNGM5MzQ3MWNiNGZkOTIxODlhMGE5
NmJjYjRkNzU2OTNmMThhNWMyZjc0MmFmOWUzNmZkZTY3OWZiZDllYWUzNDVmYTI2OTUyN2I2OTY1
MDIxYzRiZGY1NGQ2ODViZjA4OTYwY2M5NzZmNjhkY2EyMWNlYmY0NGYyNjhhNTlkYWI4ZDFhMjVl
NTE5ZjUxNDdlMWY0NWZlMjg3ZDc0Y2Y3MjViZWMxMzI2ZDM0MjEyYzU2Y2Y0ZmZmYTIwMmY1N2I2
OGVlOGNjYTk0M2YzYzEzOGM0Y2RlMzNiZGYyYzk0NDBkZjY1MzIyNDQ1IikpLAotICAgIGRwOiBC
YXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiY2EwYzliNjBiOGU0YTYw
NjY3NTZjNjVkMjA4ODQxOWRmNjI1M2I3YjY4OGE4NWY0ZjZlOTY0ZDg1ZGFkNTJhNDUyNjI4Njdm
MWU5NjE4MDY5ZmNjZDg2NWU5Mjg5ZTQ2ZTM5ZTIwMjI5NDRjNWM0NDg3ZDM0NWNmMjUyZDQ2MGQ5
NzdkNzdlZGZlZmVkYmNiYWU0NmEyM2FmN2ZhNDcwZjA3N2RhMGU1MDk0MjA0NGNiMWEzNjA0OTdj
YzI3NjBhYzBmMmFkNGEyZmNkMGU4NGQ3YTFkOTRkZmRkMjY1OGZkOWNlMTg0NzVjMWZhNzVlZTBj
ZWJhZDBjZjBhYzA0ZCIpKSwKLSAgICBkcTogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdU
b1VpbnQ4QXJyYXkoIjUyODE3MTIzM2M0ZTRhNmM2M2I4Njc2NGY1MTMzODg0NmFmZGRiY2IyOTU4
MzQ0YzAxYzQwMDRhMWRkODI4MTQ1YTFkMDJhMTUwN2RlZjRmNTgyNDdhNjRmYzEwYzBhMjg4YzFh
ZTg5NTcyMWQ3OGI4ZjA0NGRiN2MwMGQ4NmRhNTVhOWI2NTQyOTJlY2Q3NjgyNzBiZTY5ZTRiZDU5
MjJkNGVmZmQxZjcwOTU1Zjk2MjdlM2UxOWI3NDllOTNiNDBlZjNkZDFkNjFkOTM5MTVlMmIwOWQ5
MzBiNGIxNzY4YmZhY2MwMTM2ZjM5YjBjZmRmYjRkMDUwMDExZTJlNjUiKSksCi0gICAgcWk6IEJh
c2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJkZjJlYjIzMjJjYzJkYWFi
ZjRkMTQ2NTUwOGY0MTUyMWNkYTdjZWZmMjNlYmU2MWQwMGQ0NDFlZTcyOGRkYTVkMTZjN2JmOTIw
Y2Q5NWYzNGJlYjRmZTMyZWU4MTdlZjMzNjJlMGJjZDFkMTI0NWY3YjA3NzkzZWFhMTkwZGM1YTM3
ZmRhZjRjNjhlMmNhMTM5NzJkN2Y1MTQ4Yjc5NmI2ZmI2ZDdhZGRhMDdiZDJjZDEzYmU5OGNlYmVk
MWVkYzZjYTQxMmUzOTUzNTBjNTlhMWQ4NDJiYzRhYTJmM2MwYjI0M2ZkZTdkZmQ5NTM1NmYyNDM5
MjUxYTExNzJjNDVlIikpCi19OwotCi12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotdmFyIG5vbkV4
dHJhY3RhYmxlID0gZmFsc2U7Ci0KLWRlYnVnKCJJbXBvcnRpbmcgYW4gUlNBIGtleS4uLiIpOwot
Y3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3Ry
aW5naWZ5KHByaXZhdGVLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbImRlY3J5cHQiXSku
dGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBwcml2YXRlS2V5ID0gcmVzdWx0OwotCi0gICAg
ZGVidWcoIkRlY3J5cHRpbmcuLi4iKTsKLSAgICBlbmNyeXB0ZWRNZXNzYWdlID0gaGV4U3RyaW5n
VG9VaW50OEFycmF5KCI2MDQyZTc0NTU4OWFmMDNhZjg3NTIwZjkzYzQ1ZDhjMzU5ODVhZGExMTYx
YTM3ZDgyMmU5Zjk0NjBmYzc1ZmNmMDE3OWQ4NDkxYjhmNWQxZTRkZThjZWIzMWUwN2M0ODY1YzVh
M2VmZGJiYjY5YTg4MDNiODllZTY1YTQzMGE1ODA5YzcwNzU2OTE1MGI1ODBiYjY4NmE5NGM1NTQx
YzQ2YWRjZDgyNzk2MGNlMjQ0ZmY2ODgzODdkMTYxNmU4NWI0ZDE3ODBjNjQ4MzYwNmNmOTI0YjU0
ZjA4MGNmNDE1NGU2NjgyOWJmNmU1MzI0ODEwNDhlYzQxZmFkYzA3ZDc1NWJiMzRiYjI4MTQ1MjE5
Y2IzMGQ0N2QwZDYxODcwOTE4MGU5MDMwM2ZmOWVmMDkwMThiZWQzZGE3NTc2MWRhNzk0ODExZjk2
YmM5ZThkN2M0YmExYjU5NDZiZGEwYmQzMTNmYWVjNGM5OTNlZDI3NDhlZWQ4Y2NlNGJkYjUyMGJh
N2RiMTY1ZjlmZTU2YWE4NDU0ZDZmZjMzODc0ZmVlZWJmMjlkZTJkZjViN2YwMGFhMWQ5ZmIwNzNm
YzQwNjdiNThkYzUwNjI0ZTEyN2Y3MTFkZGUyY2MyY2ZkYWI0OTE5Y2NmMjhjODM2NjBkZmMyMjdi
MGY1MDBlYzFmOTA0ZiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRlY3J5cHQoIlJTQUVT
LVBLQ1MxLXYxXzUiLCBwcml2YXRlS2V5LCBlbmNyeXB0ZWRNZXNzYWdlKTsKLX0pLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7Ci0gICAgbWVzc2FnZSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiYnl0
ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShtZXNzYWdlKSkiLCAiJzJhYWNlYzg2ZjQyM2Rk
OTI1ZWMxNTg4MjJhNzQ4Y2JlNmMzMWEwJyIpOwotCi0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsK
LTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
cnlwdG8vc3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtd3JhcC11bndyYXAtYWVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhZXMtcGtjczEtdjFfNS13cmFwLXVud3Jh
cC1hZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNmI0NDE2
YzkwZGU4YjNmYWI3MzFmMWIxOGE5YWQ3ODRhNGI1MDYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhZXMt
cGtjczEtdjFfNS13cmFwLXVud3JhcC1hZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMzQgKzAsMCBAQAotVGVzdCB3cmFwcGluZyBhbmQgdW53cmFwcGluZyBhbiBBRVMga2V5IHdp
dGggUlNBRVMtUEtDUzEtdjFfNS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUlt
cG9ydGluZyBSU0Ega2V5cy4uLgotSW1wb3J0aW5nIGFuIEFFUyBrZXkuLi4KLVdyYXBwaW5nIGl0
Li4uCi1QQVNTIHdyYXBwZWRLZXkudG9TdHJpbmcoKSBpcyAnW29iamVjdCBBcnJheUJ1ZmZlcl0n
Ci1VbndyYXBwaW5nIGl0Li4uCi1QQVNTIHVud3JhcHBlZEtleS50b1N0cmluZygpIGlzICdbb2Jq
ZWN0IEtleV0nCi1QQVNTIHVud3JhcHBlZEtleS50eXBlIGlzICdzZWNyZXQnCi1QQVNTIHVud3Jh
cHBlZEtleS5leHRyYWN0YWJsZSBpcyB0cnVlCi1QQVNTIHVud3JhcHBlZEtleS5hbGdvcml0aG0u
bmFtZSBpcyAnQUVTLUNCQycKLVBBU1MgdW53cmFwcGVkS2V5LmFsZ29yaXRobS5sZW5ndGggaXMg
MjU2Ci1QQVNTIHVud3JhcHBlZEtleS51c2FnZXMgaXMgWydkZWNyeXB0JywgJ2VuY3J5cHQnXQot
RXhwb3J0aW5nIGl0Li4uCi1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcodW53cmFwcGVkS2V5RGF0YSkg
aXMgYnl0ZXNUb0hleFN0cmluZyhhZXNLZXlEYXRhKQotCi1XcmFwcGluZyB0aGUgc2FtZSBrZXkg
YXMgSldLLi4uCi1QQVNTIHdyYXBwZWRLZXkudG9TdHJpbmcoKSBpcyAnW29iamVjdCBBcnJheUJ1
ZmZlcl0nCi1VbndyYXBwaW5nIGl0Li4uCi1QQVNTIHVud3JhcHBlZEtleS50b1N0cmluZygpIGlz
ICdbb2JqZWN0IEtleV0nCi1QQVNTIHVud3JhcHBlZEtleS50eXBlIGlzICdzZWNyZXQnCi1QQVNT
IHVud3JhcHBlZEtleS5leHRyYWN0YWJsZSBpcyB0cnVlCi1QQVNTIHVud3JhcHBlZEtleS5hbGdv
cml0aG0ubmFtZSBpcyAnQUVTLUNCQycKLVBBU1MgdW53cmFwcGVkS2V5LmFsZ29yaXRobS5sZW5n
dGggaXMgMjU2Ci1QQVNTIHVud3JhcHBlZEtleS51c2FnZXMgaXMgWydkZWNyeXB0JywgJ2VuY3J5
cHQnXQotRXhwb3J0aW5nIGl0Li4uCi1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcodW53cmFwcGVkS2V5
RGF0YSkgaXMgYnl0ZXNUb0hleFN0cmluZyhhZXNLZXlEYXRhKQotUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NyeXB0by9zdWJ0bGUvcnNhZXMtcGtjczEtdjFfNS13cmFwLXVud3JhcC1hZXMuaHRtbCBiL0xh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhZXMtcGtjczEtdjFfNS13cmFwLXVud3JhcC1hZXMu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGZmYTgxYzFiYjU0ZTI0MzZkMGEx
MmM2OWE2MTM5MzkxZTg4ZWYzNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtd3Jh
cC11bndyYXAtYWVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDMgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgot
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCB3
cmFwcGluZyBhbmQgdW53cmFwcGluZyBhbiBBRVMga2V5IHdpdGggUlNBRVMtUEtDUzEtdjFfNS4i
KTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBwdWJsaWNLZXlKU09OID0gewotICAg
IGt0eTogIlJTQSIsCi0gICAgYWxnOiAiUlNBMV81IiwKLSAgICBuOiBCYXNlNjRVUkwuc3RyaW5n
aWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiZGNmYTEwZmZhNzQ2NjVhZWVmODcwOTc0ZWE5OWIy
Y2U1NDU0N2M2N2Y0MmFhYTZkZDAxYTJlZDMxZmQyYzI0MmFmNWQ5NjBiMWY4OTZlZmJhMzU0M2Q2
NTU0YjdiMTI2ODdhNWM2ODg1NjhmMzJlMDI2YzUzMmQyNTk5M2I5N2E3YzI4NDJlYzJiOGUxMjM1
ZWVlMjQxNGQyNTgwNmM2ZmJhZTQzODk1NGViYTlkMjc1NWRmZmVlYjFiNDc3MDA5NTc4MTVhOGEy
MzNmOTdiMWEyYzcxNGIzZTJiZTJlNDJkOGJlMzBiMTk2MTU4MmVhOTk0ODkxMGUwYzc5N2M1MGZj
NGJiNDU1ZjBmYzQ1ZTVlMzRlNjM5NmFjNWIyZDQ2MjM5MzY1YzdmM2RhYWYwOTA5NDAwZDYxY2Y5
ZTBjYTgwODNlYWYzMzVhNmZjZWI2ODYzYzFjYzBjZjVhMTcxYWZmMzVkOTdlY2I2MGVmMjUxYzdl
YzJjOGE1ODgzNjFkYzQxMjY2YTRiN2VkMzhiMDI2Y2UwZDUzNzg2NDQ5ZGJiMTFhMDZlYTMzY2Nm
MWVjYTU3NTIwMWVkMWFhNDczZWQxMTg3ZWMxZDhhNzQ0ZWEzNDViZWQ3ZWEwMGVlNGU4MWJiYTQ2
NDg2MDFkZDUzN2RjOTEwMTVkMzFmMGMyYzEiKSksCi0gICAgZTogQmFzZTY0VVJMLnN0cmluZ2lm
eShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAxMDAwMSIpKQotfTsKLQotdmFyIHByaXZhdGVLZXlK
U09OID0gewotICAgIGt0eTogIlJTQSIsCi0gICAgYWxnOiAiUlNBMV81IiwKLSAgICBuOiBCYXNl
NjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiZGNmYTEwZmZhNzQ2NjVhZWVm
ODcwOTc0ZWE5OWIyY2U1NDU0N2M2N2Y0MmFhYTZkZDAxYTJlZDMxZmQyYzI0MmFmNWQ5NjBiMWY4
OTZlZmJhMzU0M2Q2NTU0YjdiMTI2ODdhNWM2ODg1NjhmMzJlMDI2YzUzMmQyNTk5M2I5N2E3YzI4
NDJlYzJiOGUxMjM1ZWVlMjQxNGQyNTgwNmM2ZmJhZTQzODk1NGViYTlkMjc1NWRmZmVlYjFiNDc3
MDA5NTc4MTVhOGEyMzNmOTdiMWEyYzcxNGIzZTJiZTJlNDJkOGJlMzBiMTk2MTU4MmVhOTk0ODkx
MGUwYzc5N2M1MGZjNGJiNDU1ZjBmYzQ1ZTVlMzRlNjM5NmFjNWIyZDQ2MjM5MzY1YzdmM2RhYWYw
OTA5NDAwZDYxY2Y5ZTBjYTgwODNlYWYzMzVhNmZjZWI2ODYzYzFjYzBjZjVhMTcxYWZmMzVkOTdl
Y2I2MGVmMjUxYzdlYzJjOGE1ODgzNjFkYzQxMjY2YTRiN2VkMzhiMDI2Y2UwZDUzNzg2NDQ5ZGJi
MTFhMDZlYTMzY2NmMWVjYTU3NTIwMWVkMWFhNDczZWQxMTg3ZWMxZDhhNzQ0ZWEzNDViZWQ3ZWEw
MGVlNGU4MWJiYTQ2NDg2MDFkZDUzN2RjOTEwMTVkMzFmMGMyYzEiKSksCi0gICAgZTogQmFzZTY0
VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAxMDAwMSIpKSwKLSAgICBkOiBC
YXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiMjE5NTA4NTFjZGYyNTMy
MDMxOGIzMDVhZmEwZjM3MWYwN2FlNWE0NGIzMTRlYmQ3MjlmNWRjYjE1ZGE3ZmEzOTQ3YWNkZDkx
NWRhZWQ1NzRiZDE2ZGY4OGJmODVmNjEwNjBiMzg3MTcyZmFlNmUwMTI2MmIzODY0YzJkM2MyMmY5
NGUwNGE4MTU5NDIyYjRlZDI3OWM0OGE0YzlkNzY3ZDQ5NjYwNzFhNWJiZjVkMDQzZTE2ZmY0NmVj
MWJhMDcxNmYwMGJiYzk3YmZmNWQ1NjkzZTIxNGU5OWM5NzIxZjEyYjNlYzYyODJhZTJhNDg1NzIx
Yjk2ZGRjZjc0MDNmYTAzN2QwYzU3YWI0NjNjNDQ4ZGU1Y2MxMjI2NWFkZDg4NmQzMTFlYThkOGE1
OTAzZmE1NmM1ZjFjOWNmMmViMTFjYjY1N2ExYTdkM2U0MTM1MmRjM2U2ODY4OThjNGNlNDMwNWU4
YjYzOGUxYjA4YTJhODZjYzllYjk4NjZmMzQ5OWFjNzdiNjEzNmI4MWNiMjc2ZDYxNGNmZWI3YjZl
ZDNmM2JjNzc1ZTQ2YzAwMDY2ZWJlZWUyY2ZmNzE2NmI1NzUyMDU5ODk0N2ZmNjIxMDMyMGIyODhm
YjRmMmMzZjhmZTk3YjI3OTQxNGViZjcyMDMwMDBhMTlmYzA0MjQ4NzUiKSksCi0gICAgcDogQmFz
ZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoImYxMjNiZmU1M2RlOTdhNTY5
ZDkxYWRjZjU1NmZhNjI1YWQzMGYzZmQzZDgxMWY5ZTkxZTZhZjQ0YjZlNzgwY2IwZjMyNzgyOWZi
MjExOTBhZTI4MDY2NDZkNzI4Y2Q5YjY1MzExMzJiMWViZmVmMTI3Mjk5MzA2MGYxY2U3MGIxMjQz
OTMwOTFlZTg1OTNiNzI3MzY3ZWRiYmEwMDllYzViZTE3YzRhY2VlMTIwYzg0MTI2N2Q0NzYzMWEx
NmMzNmE2ZDFjOTk5NzNjMWIwYjVhODM1YmYzOWZlYWZlOGY2NDIxZmQ5YzJhOTBiYzI3OTc2NjU5
ZTY3YmM4MzEyNGQiKSksCi0gICAgcTogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1Vp
bnQ4QXJyYXkoImVhOTgzOWI3ZTM3ZWE4OWJiZGEyN2U0YzkzNDcxY2I0ZmQ5MjE4OWEwYTk2YmNi
NGQ3NTY5M2YxOGE1YzJmNzQyYWY5ZTM2ZmRlNjc5ZmJkOWVhZTM0NWZhMjY5NTI3YjY5NjUwMjFj
NGJkZjU0ZDY4NWJmMDg5NjBjYzk3NmY2OGRjYTIxY2ViZjQ0ZjI2OGE1OWRhYjhkMWEyNWU1MTlm
NTE0N2UxZjQ1ZmUyODdkNzRjZjcyNWJlYzEzMjZkMzQyMTJjNTZjZjRmZmZhMjAyZjU3YjY4ZWU4
Y2NhOTQzZjNjMTM4YzRjZGUzM2JkZjJjOTQ0MGRmNjUzMjI0NDUiKSksCi0gICAgZHA6IEJhc2U2
NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJjYTBjOWI2MGI4ZTRhNjA2Njc1
NmM2NWQyMDg4NDE5ZGY2MjUzYjdiNjg4YTg1ZjRmNmU5NjRkODVkYWQ1MmE0NTI2Mjg2N2YxZTk2
MTgwNjlmY2NkODY1ZTkyODllNDZlMzllMjAyMjk0NGM1YzQ0ODdkMzQ1Y2YyNTJkNDYwZDk3N2Q3
N2VkZmVmZWRiY2JhZTQ2YTIzYWY3ZmE0NzBmMDc3ZGEwZTUwOTQyMDQ0Y2IxYTM2MDQ5N2NjMjc2
MGFjMGYyYWQ0YTJmY2QwZTg0ZDdhMWQ5NGRmZGQyNjU4ZmQ5Y2UxODQ3NWMxZmE3NWVlMGNlYmFk
MGNmMGFjMDRkIikpLAotICAgIGRxOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWlu
dDhBcnJheSgiNTI4MTcxMjMzYzRlNGE2YzYzYjg2NzY0ZjUxMzM4ODQ2YWZkZGJjYjI5NTgzNDRj
MDFjNDAwNGExZGQ4MjgxNDVhMWQwMmExNTA3ZGVmNGY1ODI0N2E2NGZjMTBjMGEyODhjMWFlODk1
NzIxZDc4YjhmMDQ0ZGI3YzAwZDg2ZGE1NWE5YjY1NDI5MmVjZDc2ODI3MGJlNjllNGJkNTkyMmQ0
ZWZmZDFmNzA5NTVmOTYyN2UzZTE5Yjc0OWU5M2I0MGVmM2RkMWQ2MWQ5MzkxNWUyYjA5ZDkzMGI0
YjE3NjhiZmFjYzAxMzZmMzliMGNmZGZiNGQwNTAwMTFlMmU2NSIpKSwKLSAgICBxaTogQmFzZTY0
VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoImRmMmViMjMyMmNjMmRhYWJmNGQx
NDY1NTA4ZjQxNTIxY2RhN2NlZmYyM2ViZTYxZDAwZDQ0MWVlNzI4ZGRhNWQxNmM3YmY5MjBjZDk1
ZjM0YmViNGZlMzJlZTgxN2VmMzM2MmUwYmNkMWQxMjQ1ZjdiMDc3OTNlYWExOTBkYzVhMzdmZGFm
NGM2OGUyY2ExMzk3MmQ3ZjUxNDhiNzk2YjZmYjZkN2FkZGEwN2JkMmNkMTNiZTk4Y2ViZWQxZWRj
NmNhNDEyZTM5NTM1MGM1OWExZDg0MmJjNGFhMmYzYzBiMjQzZmRlN2RmZDk1MzU2ZjI0MzkyNTFh
MTE3MmM0NWUiKSkKLX07Ci12YXIgd3JhcEFsZ29yaXRobSA9IHtuYW1lOiAiUlNBRVMtUEtDUzEt
djFfNSJ9OwotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLXZhciBub25FeHRyYWN0YWJsZSA9IGZh
bHNlOwotCi1kZWJ1ZygiSW1wb3J0aW5nIFJTQSBrZXlzLi4uIik7Ci1jcnlwdG8uc3VidGxlLmlt
cG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHVibGljS2V5
SlNPTikpLCBudWxsLCBleHRyYWN0YWJsZSwgWyJ3cmFwS2V5IiwgInVud3JhcEtleSJdKS50aGVu
KGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHB1YmxpY0tleSA9IHJlc3VsdDsKLSAgICByZXR1cm4g
Y3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3Ry
aW5naWZ5KHByaXZhdGVLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbIndyYXBLZXkiLCAi
dW53cmFwS2V5Il0pOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBwcml2YXRlS2V5
ID0gcmVzdWx0OwotCi0gICAgZGVidWcoIkltcG9ydGluZyBhbiBBRVMga2V5Li4uIik7Ci0gICAg
YWVzS2V5RGF0YSA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiNjAzZGViMTAxNWNhNzFiZTJiNzNh
ZWYwODU3ZDc3ODExZjM1MmMwNzNiNjEwOGQ3MmQ5ODEwYTMwOTE0ZGZmNCIpOwotICAgIHJldHVy
biBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3IiwgYWVzS2V5RGF0YSwgImFlcy1jYmMiLCBl
eHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSIsICJ1bndyYXBLZXki
XSkKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgYWVzS2V5ID0gcmVzdWx0OwotICAg
IGRlYnVnKCJXcmFwcGluZyBpdC4uLiIpOwotCi0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUud3Jh
cEtleSgicmF3IiwgYWVzS2V5LCBwdWJsaWNLZXksIHdyYXBBbGdvcml0aG0pOwotfSkudGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKLSAgICB3cmFwcGVkS2V5ID0gcmVzdWx0OwotICAgIHNob3VsZEJl
KCJ3cmFwcGVkS2V5LnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgQXJyYXlCdWZmZXJdJyIpOwotCi0g
ICAgZGVidWcoIlVud3JhcHBpbmcgaXQuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS51
bndyYXBLZXkoInJhdyIsIHdyYXBwZWRLZXksIHByaXZhdGVLZXksIHdyYXBBbGdvcml0aG0sICJh
ZXMtY2JjIiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pOwotfSkudGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKLSAgICB1bndyYXBwZWRLZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxk
QmUoInVud3JhcHBlZEtleS50b1N0cmluZygpIiwgIidbb2JqZWN0IEtleV0nIik7Ci0gICAgc2hv
dWxkQmUoInVud3JhcHBlZEtleS50eXBlIiwgIidzZWNyZXQnIik7Ci0gICAgc2hvdWxkQmUoInVu
d3JhcHBlZEtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBl
ZEtleS5hbGdvcml0aG0ubmFtZSIsICInQUVTLUNCQyciKTsKLSAgICBzaG91bGRCZSgidW53cmFw
cGVkS2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMjU2Iik7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBl
ZEtleS51c2FnZXMiLCAiWydkZWNyeXB0JywgJ2VuY3J5cHQnXSIpOwotCi0gICAgZGVidWcoIkV4
cG9ydGluZyBpdC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgicmF3
IiwgdW53cmFwcGVkS2V5KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgdW53cmFw
cGVkS2V5RGF0YSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyh1bndy
YXBwZWRLZXlEYXRhKSIsICJieXRlc1RvSGV4U3RyaW5nKGFlc0tleURhdGEpIik7Ci0KLSAgICBk
ZWJ1ZygiXG5XcmFwcGluZyB0aGUgc2FtZSBrZXkgYXMgSldLLi4uIik7Ci0gICAgcmV0dXJuIGNy
eXB0by5zdWJ0bGUud3JhcEtleSgiandrIiwgYWVzS2V5LCBwdWJsaWNLZXksIHdyYXBBbGdvcml0
aG0pOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB3cmFwcGVkS2V5ID0gcmVzdWx0
OwotICAgIHNob3VsZEJlKCJ3cmFwcGVkS2V5LnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgQXJyYXlC
dWZmZXJdJyIpOwotCi0gICAgZGVidWcoIlVud3JhcHBpbmcgaXQuLi4iKTsKLSAgICByZXR1cm4g
Y3J5cHRvLnN1YnRsZS51bndyYXBLZXkoImp3ayIsIHdyYXBwZWRLZXksIHByaXZhdGVLZXksIHdy
YXBBbGdvcml0aG0sICJhZXMtY2JjIiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0
Il0pOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB1bndyYXBwZWRLZXkgPSByZXN1
bHQ7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS50b1N0cmluZygpIiwgIidbb2JqZWN0IEtl
eV0nIik7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS50eXBlIiwgIidzZWNyZXQnIik7Ci0g
ICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7Ci0gICAgc2hv
dWxkQmUoInVud3JhcHBlZEtleS5hbGdvcml0aG0ubmFtZSIsICInQUVTLUNCQyciKTsKLSAgICBz
aG91bGRCZSgidW53cmFwcGVkS2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMjU2Iik7Ci0gICAgc2hv
dWxkQmUoInVud3JhcHBlZEtleS51c2FnZXMiLCAiWydkZWNyeXB0JywgJ2VuY3J5cHQnXSIpOwot
Ci0gICAgZGVidWcoIkV4cG9ydGluZyBpdC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxl
LmV4cG9ydEtleSgicmF3IiwgdW53cmFwcGVkS2V5KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0
KSB7Ci0gICAgdW53cmFwcGVkS2V5RGF0YSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiYnl0ZXNU
b0hleFN0cmluZyh1bndyYXBwZWRLZXlEYXRhKSIsICJieXRlc1RvSGV4U3RyaW5nKGFlc0tleURh
dGEpIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2Nz
MS12MV81LWdlbmVyYXRlLWtleS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3NGFhYjExYTQ3NTIyMzdkNWRjOTRkNDNhZGE3MWRhZTI2
ZTZhYjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1rZXktZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotVGVzdCBnZW5lcmF0aW5n
IGFuIFJTQSBrZXkgcGFpciBmb3IgUlNBU1NBLVBLQ1MxLXYxXzUuCi0KLU9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KLQotCi1HZW5lcmF0aW5nIGEga2V5IHBhaXIuLi4KLVBBU1Mga2V5UGFpci50
b1N0cmluZygpIGlzICdbb2JqZWN0IEtleVBhaXJdJwotUEFTUyBrZXlQYWlyLnB1YmxpY0tleS50
eXBlIGlzICdwdWJsaWMnCi1QQVNTIGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5uYW1lIGlz
ICdSU0FTU0EtUEtDUzEtdjFfNScKLVBBU1Mga2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm1v
ZHVsdXNMZW5ndGggaXMgMjA0OAotUEFTUyBieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIucHVibGlj
S2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKLVBBU1Mga2V5UGFpci5w
dWJsaWNLZXkuYWxnb3JpdGhtLmhhc2ggaXMgdW5kZWZpbmVkLgotUEFTUyBrZXlQYWlyLnByaXZh
dGVLZXkudHlwZSBpcyAncHJpdmF0ZScKLVBBU1Mga2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRo
bS5uYW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScKLVBBU1Mga2V5UGFpci5wcml2YXRlS2V5LmFs
Z29yaXRobS5tb2R1bHVzTGVuZ3RoIGlzIDIwNDgKLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhrZXlQ
YWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJwotUEFT
UyBrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLmhhc2ggaXMgdW5kZWZpbmVkLgotCi1UZXN0
aW5nIHRoYXQgY3VzdG9tIGF0dHJpYnV0ZXMgb24ga2V5cyBzdXJ2aXZlIGdhcmJhZ2UgY29sbGVj
dGlvbi4uLgotUEFTUyBrZXlQYWlyLnB1YmxpY0tleS5mb28gaXMgJ2JhcicKLVBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS13aXRo
LWxlYWRpbmctemVyb2VzLWluLWV4cG9uZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5LXdpdGgtbGVhZGluZy16
ZXJvZXMtaW4tZXhwb25lbnQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA2NDU1Y2QwNmJlNGIxNGRmZGFjZjIzODczZTg4ODNhNWFjZDE5OTBjLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9z
dWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5LXdpdGgtbGVhZGluZy16ZXJvZXMt
aW4tZXhwb25lbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAot
VGVzdCBnZW5lcmF0aW5nIGFuIFJTQSBrZXkgcGFpciBmb3IgUlNBU1NBLVBLQ1MxLXYxXzUgd2hl
biBleHBvbmVudCBoYXMgbGVhZGluZyB6ZXJvZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KLQotCi1HZW5lcmF0aW5nIGEga2V5IHBhaXIuLi4KLVBBU1Mga2V5UGFpci50b1N0cmluZygp
IGlzICdbb2JqZWN0IEtleVBhaXJdJwotUEFTUyBrZXlQYWlyLnB1YmxpY0tleS50eXBlIGlzICdw
dWJsaWMnCi1QQVNTIGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FTU0Et
UEtDUzEtdjFfNScKLVBBU1Mga2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5n
dGggaXMgMjA0OAotUEFTUyBieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIucHVibGljS2V5LmFsZ29y
aXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhr
ZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJwot
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJh
dGUta2V5LXdpdGgtbGVhZGluZy16ZXJvZXMtaW4tZXhwb25lbnQuaHRtbCBiL0xheW91dFRlc3Rz
L2NyeXB0by9zdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5LXdpdGgtbGVhZGlu
Zy16ZXJvZXMtaW4tZXhwb25lbnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MTkzNzcyYTk0YjlhZjFiNTRhZTRlNTU5MjYxNzQxY2Q3M2ZmNjE3MS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS13aXRoLWxlYWRpbmctemVyb2VzLWluLWV4
cG9uZW50Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IGdlbmVyYXRp
bmcgYW4gUlNBIGtleSBwYWlyIGZvciBSU0FTU0EtUEtDUzEtdjFfNSB3aGVuIGV4cG9uZW50IGhh
cyBsZWFkaW5nIHplcm9lcy4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBhbGdv
cml0aG1LZXlHZW4gPSB7Ci0gICAgbmFtZTogIlJTQVNTQS1QS0NTMS12MV81IiwKLSAgICAvLyBS
c2FLZXlHZW5QYXJhbXMKLSAgICBtb2R1bHVzTGVuZ3RoOiAyMDQ4LAotICAgIHB1YmxpY0V4cG9u
ZW50OiBuZXcgVWludDhBcnJheShbMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSwg
MHgwMCwgMHgwMV0pLCAgLy8gRXF1aXZhbGVudCB0byA2NTUzNwotfTsKLXZhciBleHRyYWN0YWJs
ZSA9IHRydWU7Ci0KLWRlYnVnKCJHZW5lcmF0aW5nIGEga2V5IHBhaXIuLi4iKTsKLWNyeXB0by5z
dWJ0bGUuZ2VuZXJhdGVLZXkoYWxnb3JpdGhtS2V5R2VuLCBleHRyYWN0YWJsZSwgWyJzaWduIiwg
InZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtleVBhaXIgPSByZXN1bHQ7
Ci0gICAgc2hvdWxkQmUoImtleVBhaXIudG9TdHJpbmcoKSIsICInW29iamVjdCBLZXlQYWlyXSci
KTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wdWJsaWNLZXkudHlwZSIsICIncHVibGljJyIpOwot
ICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0ubmFtZSIsICInUlNBU1NB
LVBLQ1MxLXYxXzUnIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHVibGljS2V5LmFsZ29yaXRo
bS5tb2R1bHVzTGVuZ3RoIiwgIjIwNDgiKTsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmlu
ZyhrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwgIicwMTAwMDEn
Iik7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcoa2V5UGFpci5wcml2YXRlS2V5LmFs
Z29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAxMDAwMSciKTsKLQotICAgIGZpbmlzaEpTVGVz
dCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1rZXkuaHRt
bCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUt
a2V5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEzN2Y3MmRlZDU4NTQwMjZh
YjgzNGExM2EyZTM4NDAzMzU2NzM2ZjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEtdjFf
NS1nZW5lcmF0ZS1rZXkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24u
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
LTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3Qg
Z2VuZXJhdGluZyBhbiBSU0Ega2V5IHBhaXIgZm9yIFJTQVNTQS1QS0NTMS12MV81LiIpOwotCi1q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGFsZ29yaXRobUtleUdlbiA9IHsKLSAgICBuYW1l
OiAiUlNBU1NBLVBLQ1MxLXYxXzUiLAotICAgIC8vIFJzYUtleUdlblBhcmFtcwotICAgIG1vZHVs
dXNMZW5ndGg6IDIwNDgsCi0gICAgcHVibGljRXhwb25lbnQ6IG5ldyBVaW50OEFycmF5KFsweDAx
LCAweDAwLCAweDAxXSksICAvLyBFcXVpdmFsZW50IHRvIDY1NTM3Ci19OwotdmFyIGV4dHJhY3Rh
YmxlID0gdHJ1ZTsKLQotZGVidWcoIkdlbmVyYXRpbmcgYSBrZXkgcGFpci4uLiIpOwotY3J5cHRv
LnN1YnRsZS5nZW5lcmF0ZUtleShhbGdvcml0aG1LZXlHZW4sIGV4dHJhY3RhYmxlLCBbInNpZ24i
LCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5UGFpciA9IHJlc3Vs
dDsKLSAgICBzaG91bGRCZSgia2V5UGFpci50b1N0cmluZygpIiwgIidbb2JqZWN0IEtleVBhaXJd
JyIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tleS50eXBlIiwgIidwdWJsaWMnIik7
Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5uYW1lIiwgIidSU0FT
U0EtUEtDUzEtdjFfNSciKTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wdWJsaWNLZXkuYWxnb3Jp
dGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3Ry
aW5nKGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAxMDAw
MSciKTsKLSAgICBzaG91bGRCZVVuZGVmaW5lZCgia2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGht
Lmhhc2giKTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wcml2YXRlS2V5LnR5cGUiLCAiJ3ByaXZh
dGUnIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ubmFtZSIs
ICInUlNBU1NBLVBLQ1MxLXYxXzUnIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHJpdmF0ZUtl
eS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCIsICIyMDQ4Iik7Ci0gICAgc2hvdWxkQmUoImJ5dGVz
VG9IZXhTdHJpbmcoa2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCki
LCAiJzAxMDAwMSciKTsKLSAgICBzaG91bGRCZVVuZGVmaW5lZCgia2V5UGFpci5wcml2YXRlS2V5
LmFsZ29yaXRobS5oYXNoIik7Ci0KLSAgICBkZWJ1ZygiXG5UZXN0aW5nIHRoYXQgY3VzdG9tIGF0
dHJpYnV0ZXMgb24ga2V5cyBzdXJ2aXZlIGdhcmJhZ2UgY29sbGVjdGlvbi4uLiIpOwotICAgIGtl
eVBhaXIucHVibGljS2V5LmZvbyA9ICJiYXIiOwotICAgIGdjKCk7Ci0gICAgc2V0VGltZW91dChm
dW5jdGlvbigpIHsKLSAgICAgICAgZ2MoKTsKLSAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tleS5mb28iLCAiJ2Jhcici
KTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9LCAwKTsKLSAgICB9LCAw
KTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9y
dC1qd2stZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMmNjYjQ3
ODk3ZTFlMjBkYTk4NTYxMjBiZDUxMWE4OWIyN2VkMmY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhc3Nh
LXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwy
NiArMCwwIEBACi1UZXN0IGltcG9ydGluZyBhbiBSU0Ega2V5IGZvciBSU0FTU0EtUEtDUzEtdjFf
NS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUltcG9ydGluZyBhIHB1YmxpYyBr
ZXkuLi4KLVBBU1MgcHVibGljS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgS2V5XScKLVBBU1Mg
cHVibGljS2V5LnR5cGUgaXMgJ3B1YmxpYycKLVBBU1MgcHVibGljS2V5LnVzYWdlcyBpcyBbJ3Np
Z24nLCd2ZXJpZnknXQotUEFTUyBwdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JTQVNTQS1Q
S0NTMS12MV81JwotUEFTUyBwdWJsaWNLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGggaXMgMjA0
OAotUEFTUyBieXRlc1RvSGV4U3RyaW5nKHB1YmxpY0tleS5hbGdvcml0aG0ucHVibGljRXhwb25l
bnQpIGlzICcwMTAwMDEnCi1QQVNTIHB1YmxpY0tleS5hbGdvcml0aG0uaGFzaC5uYW1lIGlzICdT
SEEtMjU2JwotCi1JbXBvcnRpbmcgYSBwcml2YXRlIGtleS4uLgotUEFTUyBwcml2YXRlS2V5LnRv
U3RyaW5nKCkgaXMgJ1tvYmplY3QgS2V5XScKLVBBU1MgcHJpdmF0ZUtleS50eXBlIGlzICdwcml2
YXRlJwotUEFTUyBwcml2YXRlS2V5LnVzYWdlcyBpcyBbJ3NpZ24nLCd2ZXJpZnknXQotUEFTUyBw
cml2YXRlS2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScKLVBBU1MgcHJp
dmF0ZUtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4Ci1QQVNTIGJ5dGVzVG9IZXhT
dHJpbmcocHJpdmF0ZUtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcwMTAwMDEnCi1Q
QVNTIHByaXZhdGVLZXkuYWxnb3JpdGhtLmhhc2gubmFtZSBpcyAnU0hBLTI1NicKLVBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2stc21h
bGwta2V5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhc3NhLXBr
Y3MxLXYxXzUtaW1wb3J0LWp3ay1zbWFsbC1rZXktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjMzk1MmIyNDA2ZGQ2NmExMWE2MDRlMmYwNWFlZDQwMDQyY2Q2MzAz
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2NyeXB0by9zdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1zbWFsbC1rZXkt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotQSBrZXkgb2Ygc2l6
ZSAyMDQ4IGJpdHMgb3IgbGFyZ2VyIE1VU1QgYmUgdXNlZCB3aXRoIFJTMjU2LCBSUzM4NCwgUlM1
MTIgSldLIGFsZ29yaXRobXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNT
IGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0
cmluZ2lmeShwdWJsaWNLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVy
aWZ5Il0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEtleSBzaXplIGlzIG5vdCB2YWxpZCBm
b3IgUlMyNTYuCi1QQVNTIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWlu
dDhBcnJheShKU09OLnN0cmluZ2lmeShwcml2YXRlS2V5SlNPTikpLCBudWxsLCBleHRyYWN0YWJs
ZSwgWyJzaWduIiwgInZlcmlmeSJdKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBLZXkgc2l6
ZSBpcyBub3QgdmFsaWQgZm9yIFJTNTEyLgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1zbWFsbC1rZXkuaHRtbCBiL0xheW91dFRl
c3RzL2NyeXB0by9zdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1zbWFsbC1rZXku
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTQ4OTY3YzgyZWM4YWMxNDVmNDdk
MjkyNGY4Mzg2OWY4NjJkM2ZmZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWlt
cG9ydC1qd2stc21hbGwta2V5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29t
bW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJB
IGtleSBvZiBzaXplIDIwNDggYml0cyBvciBsYXJnZXIgTVVTVCBiZSB1c2VkIHdpdGggUlMyNTYs
IFJTMzg0LCBSUzUxMiBKV0sgYWxnb3JpdGhtcy4iKTsKLQotdmFyIGV4dHJhY3RhYmxlID0gdHJ1
ZTsKLQotLy8gb3BlbnNzbCBnZW5yc2EgMTAyNCA+MTAyNC5wZW0KLS8vIG9wZW5zc2wgYXNuMXBh
cnNlIC1pbiAxMDI0LnBlbQotdmFyIHB1YmxpY0tleUpTT04gPSB7Ci0gICAga3R5OiAiUlNBIiwK
LSAgICBhbGc6ICJSUzI1NiIsCi0gICAgbjogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdU
b1VpbnQ4QXJyYXkoIkI3RjEwM0Y4NDEyQ0NEMjZGNUQ1NEZDMzE1N0NEOENFMUYxMzRGNEVBQkYw
QTA0MjM1MEJERDdGMDBGRUEyQjc3RUVGMTk5MTVCMTBBQTI0MTdCQjJDQjRFQzFENTdCOTY2MUEy
MDA3MjQ2OUI5REY5QzZFODlDQjM1Q0NDODU0M0NDNDA3NzBEQ0MzMEQwQkJGRjFCRjlEQTFFMjU0
OUY0MDQ3NkVEQURCOTMxMjk4NURBRThDNzUyN0MxQzEyQUFGRURGNDU4NDk4OTk2OENEQ0M5RUZF
QjE5NzQzOEM1MzREMUJGQUFDMzBCMUQ0MUY3NUVBREI4NkNDNTgxQjkiKSksCi0gICAgZTogQmFz
ZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAxMDAwMSIpKQotfTsKLQot
dmFyIHByaXZhdGVLZXlKU09OID0gewotICAgIGt0eTogIlJTQSIsCi0gICAgYWxnOiAiUlM1MTIi
LAotICAgIG46IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJCN0Yx
MDNGODQxMkNDRDI2RjVENTRGQzMxNTdDRDhDRTFGMTM0RjRFQUJGMEEwNDIzNTBCREQ3RjAwRkVB
MkI3N0VFRjE5OTE1QjEwQUEyNDE3QkIyQ0I0RUMxRDU3Qjk2NjFBMjAwNzI0NjlCOURGOUM2RTg5
Q0IzNUNDQzg1NDNDQzQwNzcwRENDMzBEMEJCRkYxQkY5REExRTI1NDlGNDA0NzZFREFEQjkzMTI5
ODVEQUU4Qzc1MjdDMUMxMkFBRkVERjQ1ODQ5ODk5NjhDRENDOUVGRUIxOTc0MzhDNTM0RDFCRkFB
QzMwQjFENDFGNzVFQURCODZDQzU4MUI5IikpLAotICAgIGU6IEJhc2U2NFVSTC5zdHJpbmdpZnko
aGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMTAwMDEiKSksCi0gICAgZDogQmFzZTY0VVJMLnN0cmlu
Z2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjVCQTZGNEYyNkIwRjM2QkRCNUZBNkVCRUU2RTMw
OTY4NTMyNTlDRkJCNzQyQjNBN0E5QTREQURERTA5MjAwNjNFQzE0OTkyOUNCMzU1NzgxOUE2RDgy
NEUzN0U0M0IwNEJGMzIzRjQ5MkZDNDlBODAyODAzMTAxN0I4MUJFQ0E4RUMyQTg1QUJDRjE5MzUw
MUQ4MERDMjUxREI4ODYzQjg2NzNEOEI2NzcyREIyRDJBRTA4Q0QxODI5QzNGNTQyMTQxNDYxQ0FD
RTRFOEExRjExMkFEMTNGRjRBNEREODY1QTg5QUVBOTRFOTg0RDQ4N0U1Nzk4RUYwNzY0M0I5Q0Qi
KSksCi0gICAgcDogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIkUw
NkJGRTU3MjJBNjhFNUQ1OTdERDhEQjkzNzQ4M0NCQTM1MkFCODE3MjA5Mjc1QURBRDEwMzc3MkI3
QThFRjRFQTk0NjMxMUEyQjUxODA1OTU5ODE4Q0VCMzYyRjI1N0Q2OTk4QjQ3NUZFQTlFMzRGMkEz
MDIwNUI1RjVBN0ZGIikpLAotICAgIHE6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9V
aW50OEFycmF5KCJEMUQyREJEQjFGNERDQkZFOEQxNkNERDJDRjgzQzdCNUZBREZDNzg5MUYyMkZD
NTI3QkYyMDhGODFCOTJGMjU0MzU2OUMzQUQyMjIyNEI4MkQ0MDdERUI2NUY2NTFEMDlEMjU1OEZF
RThCQzZFNURBNTFGNkYxMzIwNkNDMTY0NyIpKSwKLSAgICBkcDogQmFzZTY0VVJMLnN0cmluZ2lm
eShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjczRUNCNEYzRDNBRDRGNkFCRUY4NzdENTZDODRDQTMz
OUQ4OEVEOThBRjBDMzU2RDA0MENFNThBNjA0NjJEQTQyQkFDM0NDNDc2NTRBRjM0RUI0MjI2QzY1
NkY5NkM4RjlEMDVCMTYxNEMxNTg4NjU3NzU0NjY4RTA2QTBGRjg3IikpLAotICAgIGRxOiBCYXNl
NjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiNUI5QzVBQ0RCMzNGM0U1RkU3
QUUxQjMzN0REMzI1QjEzOEQ1RDdDMkYwQ0I0RkFCOUJERTMzMzg1MEExQkExODM2MzFGNTczNzQ0
MUQxMDI1MDFEMTc4QTNDRTA2MkVCNTRFMDcyQjU0RTY2MEIxOTY1NEMxMjQ3MkI1Qzk0MjUiKSks
Ci0gICAgcWk6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJENkE5
MjBCMjQxMTc4OTIzQzU5QkNCRDFBODE1NzY0NjE5MjI1QTkwRjJDMDkwQTlGQkQ1OTRBNjE1NjE1
NDJEMERGMTc5NTkwNDEzQzI2QzhBNzJGQzZFMTRFQzYzQTM3NzE2OTk3MDY3MUIzQTFFQjVFNEY0
REYxQTRDQTcyNSIpKQotfTsKLQotc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5
KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShwdWJsaWNLZXlKU09OKSks
IG51bGwsIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pJyk7Ci1zaG91bGRUaHJvdygn
Y3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3Ry
aW5naWZ5KHByaXZhdGVLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVy
aWZ5Il0pJyk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1pbXBvcnQtandrLmh0bWwg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2su
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjdiZTg3ZjIyOGYwNjJhMTgyOGQy
ZjMxMGJiMTVkNzFiNzdkNDYxNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWlt
cG9ydC1qd2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgaW1wb3J0
aW5nIGFuIFJTQSBrZXkgZm9yIFJTQVNTQS1QS0NTMS12MV81LiIpOwotCi1qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKLQotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLQotdmFyIHB1YmxpY0tleUpTT04g
PSB7Ci0gICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSUzI1NiIsCi0gICAgbjogInJjQ1VDdjdP
YzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFph
ZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1
cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3
R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZ
ejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlX
eXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCi0gICAg
ZTogIkFRQUIiCi19OwotCi12YXIgcHJpdmF0ZUtleUpTT04gPSB7Ci0gICAga3R5OiAiUlNBIiwK
LSAgICBhbGc6ICJSUzI1NiIsCi0gICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdP
cDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1N
YkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIw
UUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1Nn
QTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1Nj
eVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJL
VXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCi0gICAgZTogIkFRQUIiLAotICAgIGQ6ICJl
TkxTMzdhQ3o3UlhTTlBEX0R0TEJKNmo1VDhjU3hkelJCQ2pQYUk2V2NHcUpwMTZscTNVVHd1b0RM
QXFsQTlvR1ltMjM4ZHNJV3B1dWNQX2xRdGJXZS03U3B4b0k2X3ZtWUdmN1lWVUh2MS1ERjlxaU9t
U3JNbWR4TW5WT3pZWFk4UmFUNnRoUGpuX0o1Y2ZMVjJ4SV9Md3NyTXRtcGRTeU5sZ1gwelRVaHd0
dWFoZ0FLTUVDaFlqSDJFbmpIZEh3NnNZMi13QXBkY1FJN1VMRTBvbzVSemJRWnBtdWhjTjloaUJj
MEwzaGhGMHFvNTBtYmwwMl82NV9HUTdEcFZrWEJ4TmdSQkx6bFBhYm16ekcyb0FoZmVmTGdZbVND
MW9wYUNrWEU2dlJXUU5XTkw0NVJaTlpGWU0zdW9KZ2hPTXFHZW9jTTBCcGpkQ2hIclBPbEZ2U1Ei
LAotICAgIHA6ICI0bWlUdUFqS01lSDV1SjVLQjM5N1FVd2hia1lFZ1NiY0EybWlmbVNrdkUyMDE4
Z2I1NXFrQkhLMWVWcnlmMV9tNDNMTmxjNk9fYWs2Z2Z6ZFpJWnZTNU5DR2pQbDBxMDlwbFVwdThx
Rk9Tc3BCd0E2N3FHSDc2bEZsWkxuX2Q0eWdsUzd3ZkxydTRfNVlzOHFMTHMtRHFWTHZpd3Bvc09u
eXlXcXdNNUFYcDAiLAotICAgIHE6ICJ4SFlyemtpdnRtbnpfc0djaG5XR2MwcS1wRE9rS2ljcHRS
cHYycE1GSUlYeG5GWDVhTWVFWElaalZ1alh0d1V5MVVsRklOMkdaSlN2eTVLSjc5bXVfWHlObkZI
TXplZEgtQTNlZTN1OGgxVVVyWkYtdlV1MV9lNFVfeDY3Tk4xZGVkelVTS3luTjdwRmwzT2t1U2hN
QldHVi1jd3pPUGRjVkFmVnVabHhVTWMiLAotICAgIGRwOiAiZkJ6RHpZRFVCbUJRR29wN0huMGR2
Zl9UMjdWNlJxcGN0V28wNzRDUVpjRmJQMmF0RlZ0S1NqM3ZpV1QzeGlkMlZIemNnaURIZGZwTTNu
RVZsRU8xd3dJb25HQ1N2ZGpHRU9aaWlGVk9qclpBT1Z4QThndU9qeXlGdnFiWGtlMDZWd1BJSVZ2
ZktlU1UyenVoYlBfXzF0dDZGX2Z4b3c0S2IyeG9uR1QwR0drIiwKLSAgICBkcTogImptRTJEaUlQ
ZGh3RGdMWEFRcElhQnFRODFiTzNYZlZUX0xSVUxBd3d3d2xQdVFWMTQ4SDA0emxoOVRKNlkyR1pI
WW9rVjFVMGVPQnBKeGZrYjdkTFl0cEpwdWlCalJmNHlJVUVvR2xra0lfUWxKbkZTRnItWWpHUmRm
TkhxV0JreGxTTVpMNzcwUjltSUFUbmRHa0g3ejV4LXI5S3dCWkZDNEZDRzJoZ196RSIsCi0gICAg
cWk6ICJZQ1hfcEx3Yk1CQTFUaFZIMFdjd21ueXRxTmNyTUNFd1RtN0J5QTJlVTZuV2JRclVMdmY3
bTlfa3pmTFVjanNucEFWbEJRRzVKTVhNeTBTcTRwdHdieXdzYTUtRzhLQU9PT1IyTDN2NGhDLUV5
czlmdGdGTV8zaTBvNDBlZVFINGIzaGFQYm50ckllTWc4SXpsT3VWWUtmOS0yUXVLRG9XZVJkZDdO
c2R4VGsiCi19OwotCi1kZWJ1ZygiSW1wb3J0aW5nIGEgcHVibGljIGtleS4uLiIpOwotY3J5cHRv
LnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5
KHB1YmxpY0tleUpTT04pKSwgbnVsbCwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSku
dGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBwdWJsaWNLZXkgPSByZXN1bHQ7Ci0gICAgc2hv
dWxkQmUoInB1YmxpY0tleS50b1N0cmluZygpIiwgIidbb2JqZWN0IEtleV0nIik7Ci0gICAgc2hv
dWxkQmUoInB1YmxpY0tleS50eXBlIiwgIidwdWJsaWMnIik7Ci0gICAgc2hvdWxkQmUoInB1Ymxp
Y0tleS51c2FnZXMiLCAiWydzaWduJywndmVyaWZ5J10iKTsKLSAgICBzaG91bGRCZSgicHVibGlj
S2V5LmFsZ29yaXRobS5uYW1lIiwgIidSU0FTU0EtUEtDUzEtdjFfNSciKTsKLSAgICBzaG91bGRC
ZSgicHVibGljS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIiwgIjIwNDgiKTsKLSAgICBzaG91
bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhwdWJsaWNLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50
KSIsICInMDEwMDAxJyIpOwotICAgIHNob3VsZEJlKCJwdWJsaWNLZXkuYWxnb3JpdGhtLmhhc2gu
bmFtZSIsICInU0hBLTI1NiciKTsKLSAgICBkZWJ1ZygiXG5JbXBvcnRpbmcgYSBwcml2YXRlIGtl
eS4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlU
b1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHJpdmF0ZUtleUpTT04pKSwgbnVsbCwgZXh0cmFj
dGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewot
ICAgIHByaXZhdGVLZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoInByaXZhdGVLZXkudG9TdHJp
bmcoKSIsICInW29iamVjdCBLZXldJyIpOwotICAgIHNob3VsZEJlKCJwcml2YXRlS2V5LnR5cGUi
LCAiJ3ByaXZhdGUnIik7Ci0gICAgc2hvdWxkQmUoInByaXZhdGVLZXkudXNhZ2VzIiwgIlsnc2ln
bicsJ3ZlcmlmeSddIik7Ci0gICAgc2hvdWxkQmUoInByaXZhdGVLZXkuYWxnb3JpdGhtLm5hbWUi
LCAiJ1JTQVNTQS1QS0NTMS12MV81JyIpOwotICAgIHNob3VsZEJlKCJwcml2YXRlS2V5LmFsZ29y
aXRobS5tb2R1bHVzTGVuZ3RoIiwgIjIwNDgiKTsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0
cmluZyhwcml2YXRlS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAxMDAwMSciKTsK
LSAgICBzaG91bGRCZSgicHJpdmF0ZUtleS5hbGdvcml0aG0uaGFzaC5uYW1lIiwgIidTSEEtMjU2
JyIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEt
djFfNS1zaWduLXZlcmlmeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L3JzYXNzYS1wa2NzMS12MV81LXNpZ24tdmVyaWZ5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMzk2NmM4NjM4NDM3ZjhkYzNmZGRmMzAxODYzMWVkNzNlZTFlMGNj
OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LXNpZ24tdmVyaWZ5LWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLVRlc3QgaW1wb3J0aW5nIGFuIFJT
QSBrZXkgZm9yIFJTQVNTQS1QS0NTMS12MV81LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
Ci0KLQotSW1wb3J0aW5nIGEgcHVibGljIGtleS4uLgotCi1JbXBvcnRpbmcgYSBwcml2YXRlIGtl
eS4uLgotCi1TaWduaW5nIHNvbWUgdGV4dC4uLgotUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBV
aW50OEFycmF5KHNpZ25hdHVyZSkpIGlzICcwZmQ5YThhZWY0Y2MxODc2YzBiNzYyNTQ1MzM2YzZk
MWZiMzE1YWUxNmFlNGI1ZTRiZjM0ZDM4NGQ4NTg1ZWE3YTAxZTc2ZWEwOWVlN2Y3ZWU4ZDFjMTIy
ZTdkZDE1YjdjOTRhNTczYjJhYTA3MjAzZThkMTNiYzZmZDE2MTU2Y2Q4ZTVmMGMxNWExNWRjY2I2
MmQxNTIxMjdmY2EwOTg4MmZiNTNiYzNlNjBhYjU4NmQxNWI5NWNmNDExZTNhYWI0YTFjMjMxYTdl
OTFhYWIwOWVlM2Q0YjEzZDExZTk3NTA1ZGRmZjc3NjgzNDcwZGE1MTBlZTc2ZThiZDUzMGM1NmE4
NWY5MDE2MjZhNWE3MTBmNzE2ZjExM2RmZTljZjZjNDczZWUxNmZhMjQ4YWVhMzQ4MGExMDMzYWJl
MzBmNGMxMjQzMjg5YTY2MWU2NGQ3ODE4YjU1Njk4MjgwNjg4MDk3MTM1OTY4YzZkNGIwMjk0OTZk
ODVjYWIyYTY3ZTQ2OTY3Mzc3ODFmNzBlNDM5MmM3ZGY3MWJiZDZjOTI0NjU5NDdmMDI5YTFkZTQ4
MTYwYWNlZDExYjU3MjFiMWNkMjUwMzlmZTJjMTZjMmIzOGRlNzNkZjNiOWE4M2UzZWE3NTVmZDBj
ZmU1MWNhMDZiNjFmYWRmNmQ4NDY3N2Y5NScKLQotVmVyaWZ5aW5nIHRoZSBzaWduYXR1cmUuLi4K
LVBBU1MgdmVyaWZpY2F0aW9uUmVzdWx0IGlzIHRydWUKLQotVmVyaWZ5aW5nIGEgYmFkIHNpZ25h
dHVyZS4uLgotUEFTUyB2ZXJpZmljYXRpb25SZXN1bHQgaXMgZmFsc2UKLVBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LXNpZ24tdmVyaWZ5Lmh0bWwgYi9M
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LXNpZ24tdmVyaWZ5Lmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhNjU1NmRkNjg5MTFjYWYzNzE5MGE2
ZGI5MzE4OGNmMjRmOWE1MjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1zaWdu
LXZlcmlmeS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBpbXBvcnRp
bmcgYW4gUlNBIGtleSBmb3IgUlNBU1NBLVBLQ1MxLXYxXzUuIik7Ci0KLWpzVGVzdElzQXN5bmMg
PSB0cnVlOwotCi12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotCi12YXIgcHVibGljS2V5SlNPTiA9
IHsKLSAgICBrdHk6ICJSU0EiLAotICAgIGFsZzogIlJTMjU2IiwKLSAgICBuOiBCYXNlNjRVUkwu
c3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiQURDMDk0MEFGRUNFNzM1MUQ1NkE2RDQz
MjIxMEIzQUE0OUQzODU2NkIwM0E5RjEwMkU0RjE5OEIyREE5RDc0MDcyOEQwMTQyNkEzQTA1OEIy
QjgwNUE1RjkxRDU2NUQ5NjlGRTMxOEFEMkQxQURBNzEzRjVBODI5Q0M4Q0RDRjhDNkNCNDg3MjA2
ODE2NDA2M0I2RDY1MUEyMjI2Q0I5N0VENjdFMEZDNkM3MDJBNDczREIyRDc5QTczMEY4NzM4MDg0
QTJFRUQ3NDkyMkMzQTExOUQxRDEwMUI5MzJDMEUxMEZBQjM2ODE1RjY2QzA3OTJCQjY0MEIxQjRD
NTlEMDYyRkJCRURBQjNDQzA2OUE1MzUxOTVENzBFNEEwNjQzMkNBRjE0OUMyNEEwMDM1M0EwQjk5
RjdDRjVCMTcyNzNDQjRFMzg0MjFCRDMxNTEyN0NGNEIzRENCM0QyMEE3Qzk4Q0ZBRjFBMEUzOThB
NTVFMzQ3RkEyODNDRTdCMzkyNzMyNTlCMUIyMTMyREMxOEIwRUI4QUFFOUY3OEVFNTI1MzU2QjA5
REYzOUUwOTBFNzZENzk4NUIyQjcxRTUwQUY4NUNBMzZDRTkxRjhDQ0IyQUJCRDhBNTI5RDM2OTg5
MEQ5OEEyQ0EyODI1QzRDMkZGOEI3RkJGMDlFNzlDMEIiKSksCi0gICAgZTogQmFzZTY0VVJMLnN0
cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAxMDAwMSIpKSwKLX07Ci0KLXZhciBwcml2
YXRlS2V5SlNPTiA9IHsKLSAgICBrdHk6ICJSU0EiLAotICAgIGFsZzogIlJTMjU2IiwKLSAgICBu
OiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiQURDMDk0MEFGRUNF
NzM1MUQ1NkE2RDQzMjIxMEIzQUE0OUQzODU2NkIwM0E5RjEwMkU0RjE5OEIyREE5RDc0MDcyOEQw
MTQyNkEzQTA1OEIyQjgwNUE1RjkxRDU2NUQ5NjlGRTMxOEFEMkQxQURBNzEzRjVBODI5Q0M4Q0RD
RjhDNkNCNDg3MjA2ODE2NDA2M0I2RDY1MUEyMjI2Q0I5N0VENjdFMEZDNkM3MDJBNDczREIyRDc5
QTczMEY4NzM4MDg0QTJFRUQ3NDkyMkMzQTExOUQxRDEwMUI5MzJDMEUxMEZBQjM2ODE1RjY2QzA3
OTJCQjY0MEIxQjRDNTlEMDYyRkJCRURBQjNDQzA2OUE1MzUxOTVENzBFNEEwNjQzMkNBRjE0OUMy
NEEwMDM1M0EwQjk5RjdDRjVCMTcyNzNDQjRFMzg0MjFCRDMxNTEyN0NGNEIzRENCM0QyMEE3Qzk4
Q0ZBRjFBMEUzOThBNTVFMzQ3RkEyODNDRTdCMzkyNzMyNTlCMUIyMTMyREMxOEIwRUI4QUFFOUY3
OEVFNTI1MzU2QjA5REYzOUUwOTBFNzZENzk4NUIyQjcxRTUwQUY4NUNBMzZDRTkxRjhDQ0IyQUJC
RDhBNTI5RDM2OTg5MEQ5OEEyQ0EyODI1QzRDMkZGOEI3RkJGMDlFNzlDMEIiKSksCi0gICAgZTog
QmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAxMDAwMSIpKSwKLSAg
ICBkOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiNzhEMkQyREZC
NjgyQ0ZCNDU3NDhEM0MzRkMzQjRCMDQ5RUEzRTUzRjFDNEIxNzczNDQxMEEzM0RBMjNBNTlDMUFB
MjY5RDdBOTZBREQ0NEYwQkE4MENCMDJBOTQwRjY4MTk4OUI2REZDNzZDMjE2QTZFQjlDM0ZGOTUw
QjVCNTlFRkJCNEE5QzY4MjNBRkVGOTk4MTlGRUQ4NTU0MUVGRDdFMEM1RjZBODhFOTkyQUNDOTlE
QzRDOUQ1M0IzNjE3NjNDNDVBNEZBQjYxM0UzOUZGMjc5NzFGMkQ1REIxMjNGMkYwQjJCMzJEOUE5
NzUyQzhEOTYwNUY0Q0QzNTIxQzJEQjlBODYwMDBBMzA0MEExNjIzMUY2MTI3OEM3NzQ3QzNBQjE4
REJFQzAwQTVENzEwMjNCNTBCMTM0QTI4RTUxQ0RCNDE5QTY2QkExNzBERjYxODgxNzM0MkY3ODYx
MTc0QUE4RTc0OTlCOTc0REJGRUI5RkM2NDNCMEU5NTY0NUMxQzREODExMDRCQ0U1M0RBNkU2Q0Yz
MUI2QTAwODVGNzlGMkUwNjI2NDgyRDY4QTVBMEE0NUM0RUFGNDU2NDBENThEMkY4RTUxNjRENjQ1
NjBDREVFQTA5ODIxMzhDQTg2N0E4NzBDRDAxQTYzNzQyODQ3QUNGM0E1MTZGNDkiKSksCi0gICAg
cDogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIkUyNjg5M0I4MDhD
QTMxRTFGOUI4OUU0QTA3N0Y3QjQxNEMyMTZFNDYwNDgxMjZEQzAzNjlBMjdFNjRBNEJDNERCNEQ3
QzgxQkU3OUFBNDA0NzJCNTc5NUFGMjdGNUZFNkUzNzJDRDk1Q0U4RUZEQTkzQTgxRkNERDY0ODY2
RjRCOTM0MjFBMzNFNUQyQUQzREE2NTUyOUJCQ0E4NTM5MkIyOTA3MDAzQUVFQTE4N0VGQTk0NTk1
OTJFN0ZEREUzMjgyNTRCQkMxRjJFQkJCOEZGOTYyQ0YyQTJDQkIzRTBFQTU0QkJFMkMyOUEyQzNB
N0NCMjVBQUMwQ0U0MDVFOUQiKSksCi0gICAgcTogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJp
bmdUb1VpbnQ4QXJyYXkoIkM0NzYyQkNFNDhBRkI2NjlGM0ZFQzE5Qzg2NzU4NjczNEFCRUE0MzNB
NDJBMjcyOUI1MUE2RkRBOTMwNTIwODVGMTlDNTVGOTY4Qzc4NDVDODY2MzU2RThEN0I3MDUzMkQ1
NDk0NTIwREQ4NjY0OTRBRkNCOTI4OUVGRDlBRUZEN0M4RDlDNTFDQ0NERTc0N0Y4MERERTdCN0JC
Qzg3NTUxNEFEOTE3RUJENEJCNUZERUUxNEZGMUVCQjM0REQ1RDc5RENENDQ4QUNBNzM3QkE0NTk3
NzNBNEI5Mjg0QzA1NjE5NUY5Q0MzMzM4Rjc1QzU0MDdENUI5OTk3MTUwQzciKSksCi0gICAgZHA6
IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCI3QzFDQzNDRDgwRDQw
NjYwNTAxQThBN0IxRTdEMURCREZGRDNEQkI1N0E0NkFBNUNCNTZBMzRFRjgwOTA2NUMxNUIzRjY2
QUQxNTVCNEE0QTNERUY4OTY0RjdDNjI3NzY1NDdDREM4MjIwQzc3NUZBNENERTcxMTU5NDQzQjVD
MzAyMjg5QzYwOTJCREQ4QzYxMEU2NjI4ODU1NEU4RUI2NDAzOTVDNDBGMjBCOEU4RjJDODVCRUE2
RDc5MUVEM0E1NzAzQzgyMTVCREYyOUU0OTREQjNCQTE2Q0ZGRkZENkRCN0ExN0Y3RjFBMzBFMEE2
RjZDNjg5QzY0RjQxODY5IikpLAotICAgIGRxOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmlu
Z1RvVWludDhBcnJheSgiOEU2MTM2MEUyMjBGNzYxQzAzODBCNUMwNDI5MjFBMDZBNDNDRDVCM0I3
NURGNTUzRkNCNDU0MkMwQzMwQzMwOTRGQjkwNTc1RTNDMUY0RTMzOTYxRjUzMjdBNjM2MTk5MUQ4
QTI0NTc1NTM0NzhFMDY5MjcxN0U0NkZCNzRCNjJEQTQ5QTZFODgxOEQxN0Y4Qzg4NTA0QTA2OTY0
OTA4RkQwOTQ5OUM1NDg1QUZFNjIzMTkxNzVGMzQ3QTk2MDY0QzY1NDhDNjRCRUZCRDExRjY2MjAw
NEU3NzQ2OTA3RUYzRTcxRkFCRjRBQzAxNjQ1MEI4MTQyMUI2ODYwRkYzMSIpKSwKLSAgICBxaTog
QmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjYwMjVGRkE0QkMxQjMw
MTAzNTRFMTU0N0QxNjczMDlBN0NBREE4RDcyQjMwMjEzMDRFNkVDMUM4MEQ5RTUzQTlENjZEMEFE
NDJFRjdGQjlCREZFNENERjJENDcyM0IyN0E0MDU2NTA1MDFCOTI0QzVDQ0NCNDRBQUUyOUI3MDZG
MkMyQzZCOUY4NkYwQTAwRTM4RTQ3NjJGN0JGODg0MkY4NENBQ0Y1RkI2MDE0Q0ZGNzhCNEEzOEQx
RTc5MDFGODZGNzg1QTNEQjlFREFDODc4QzgzQzIzMzk0RUI5NTYwQTdGREZCNjQyRTI4M0ExNjc5
MTc1REVDREIxREM1MzkiKSkKLX07Ci0KLXZhciBkYXRhID0gYXNjaWlUb1VpbnQ4QXJyYXkoIkhl
bGxvLCB3b3JsZCEiKTsKLQotZGVidWcoIkltcG9ydGluZyBhIHB1YmxpYyBrZXkuLi4iKTsKLWNy
eXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmlu
Z2lmeShwdWJsaWNLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5
Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgcHVibGljS2V5ID0gcmVzdWx0OwotICAg
IGRlYnVnKCJcbkltcG9ydGluZyBhIHByaXZhdGUga2V5Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0
by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lm
eShwcml2YXRlS2V5SlNPTikpLCBudWxsLCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJd
KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgcHJpdmF0ZUtleSA9IHJlc3VsdDsK
LSAgICBkZWJ1ZygiXG5TaWduaW5nIHNvbWUgdGV4dC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8u
c3VidGxlLnNpZ24oeyBuYW1lOiAiUlNBU1NBLVBLQ1MxLXYxXzUiLCBoYXNoOiAiU0hBLTI1NiIg
fSwgcHJpdmF0ZUtleSwgZGF0YSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHNp
Z25hdHVyZSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWlu
dDhBcnJheShzaWduYXR1cmUpKSIsICInMGZkOWE4YWVmNGNjMTg3NmMwYjc2MjU0NTMzNmM2ZDFm
YjMxNWFlMTZhZTRiNWU0YmYzNGQzODRkODU4NWVhN2EwMWU3NmVhMDllZTdmN2VlOGQxYzEyMmU3
ZGQxNWI3Yzk0YTU3M2IyYWEwNzIwM2U4ZDEzYmM2ZmQxNjE1NmNkOGU1ZjBjMTVhMTVkY2NiNjJk
MTUyMTI3ZmNhMDk4ODJmYjUzYmMzZTYwYWI1ODZkMTViOTVjZjQxMWUzYWFiNGExYzIzMWE3ZTkx
YWFiMDllZTNkNGIxM2QxMWU5NzUwNWRkZmY3NzY4MzQ3MGRhNTEwZWU3NmU4YmQ1MzBjNTZhODVm
OTAxNjI2YTVhNzEwZjcxNmYxMTNkZmU5Y2Y2YzQ3M2VlMTZmYTI0OGFlYTM0ODBhMTAzM2FiZTMw
ZjRjMTI0MzI4OWE2NjFlNjRkNzgxOGI1NTY5ODI4MDY4ODA5NzEzNTk2OGM2ZDRiMDI5NDk2ZDg1
Y2FiMmE2N2U0Njk2NzM3NzgxZjcwZTQzOTJjN2RmNzFiYmQ2YzkyNDY1OTQ3ZjAyOWExZGU0ODE2
MGFjZWQxMWI1NzIxYjFjZDI1MDM5ZmUyYzE2YzJiMzhkZTczZGYzYjlhODNlM2VhNzU1ZmQwY2Zl
NTFjYTA2YjYxZmFkZjZkODQ2NzdmOTUnIik7Ci0KLSAgICBkZWJ1ZygiXG5WZXJpZnlpbmcgdGhl
IHNpZ25hdHVyZS4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLnZlcmlmeSh7IG5hbWU6
ICJSU0FTU0EtUEtDUzEtdjFfNSIsIGhhc2g6ICJTSEEtMjU2IiB9LCBwdWJsaWNLZXksIHNpZ25h
dHVyZSwgZGF0YSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHZlcmlmaWNhdGlv
blJlc3VsdCA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgidmVyaWZpY2F0aW9uUmVzdWx0IiwgInRy
dWUiKTsKLSAgICBkZWJ1ZygiXG5WZXJpZnlpbmcgYSBiYWQgc2lnbmF0dXJlLi4uIik7Ci0gICAg
cmV0dXJuIGNyeXB0by5zdWJ0bGUudmVyaWZ5KHsgbmFtZTogIlJTQVNTQS1QS0NTMS12MV81Iiwg
aGFzaDogIlNIQS0yNTYiIH0sIHB1YmxpY0tleSwgbmV3IFVpbnQ4QXJyYXkoMjU2KSwgZGF0YSk7
Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHZlcmlmaWNhdGlvblJlc3VsdCA9IHJl
c3VsdDsKLSAgICBzaG91bGRCZSgidmVyaWZpY2F0aW9uUmVzdWx0IiwgImZhbHNlIik7Ci0gICAg
ZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3NoYS0xLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvc2hhLTEtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjOTBlODczNjAyODMwMGMxNjQ2ZTllNzdjNjhmMzhlY2NmNzJmMTk3
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2NyeXB0by9zdWJ0bGUvc2hhLTEtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MTYgKzAsMCBAQAotVGVzdCBjcnlwdG8uc3VidGxlLmRpZ2VzdC4KLQotT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgotCi0KLVNIQTEgb2YgW10KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWlu
dDhBcnJheShkaWdlc3QpKSBpcyAnZGEzOWEzZWU1ZTZiNGIwZDMyNTViZmVmOTU2MDE4OTBhZmQ4
MDcwOScKLVNIQTEgb2YgWzB4MF0KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJh
eShkaWdlc3QpKSBpcyAnNWJhOTNjOWRiMGNmZjkzZjUyYjUyMWQ3NDIwZTQzZjZlZGEyNzg0ZicK
LVNIQTEgb2YgWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXQotUEFTUyBieXRlc1Rv
SGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIGlzICcyYzdlN2MzODRmNzgyOTY5NDI4
MmIxZTNhNjIxNmRlZjgwODJkMDU1JwotUEFTUyBjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KCdz
aGEtMScpIHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvciAoRE9NIEV4Y2VwdGlvbiA5
KTogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
cnlwdG8vc3VidGxlL3NoYS0xLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3NoYS0x
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNkMzEzNjA0ZmJmNzdhMDIyMjRi
Zjg1MmE1N2U0YmZmYThiMWMzZGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9zaGEtMS5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNDQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0K
LTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBjcnlwdG8uc3VidGxlLmRpZ2VzdC4iKTsKLQot
anNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLVByb21pc2UucmVzb2x2ZShudWxsKS50aGVuKGZ1bmN0
aW9uKCkgewotICAgIGRlYnVnKCJTSEExIG9mIFtdIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0
bGUuZGlnZXN0KCdzaGEtMScsIG5ldyBVaW50OEFycmF5KFtdKSk7Ci19KS50aGVuKGZ1bmN0aW9u
KHJlc3VsdCkgewotICAgIGRpZ2VzdCA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hl
eFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSIsICInZGEzOWEzZWU1ZTZiNGIwZDMyNTVi
ZmVmOTU2MDE4OTBhZmQ4MDcwOSciKTsKLQotICAgIGRlYnVnKCJTSEExIG9mIFsweDBdIikKLSAg
ICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCBuZXcgVWludDhB
cnJheShbMF0pKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZGlnZXN0ID0gcmVz
dWx0OwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2Vz
dCkpIiwgIic1YmE5M2M5ZGIwY2ZmOTNmNTJiNTIxZDc0MjBlNDNmNmVkYTI3ODRmJyIpOwotCi0g
ICAgZGVidWcoIlNIQTEgb2YgWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXSIpOwot
ICAgIHZhciBkYXRhID0gbmV3IFVpbnQ4QXJyYXkoWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgs
IDksIDEwXSk7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTEn
fSwgZGF0YSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGRpZ2VzdCA9IHJlc3Vs
dDsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3Qp
KSIsICInMmM3ZTdjMzg0Zjc4Mjk2OTQyODJiMWUzYTYyMTZkZWY4MDgyZDA1NSciKTsKLQotICAg
IC8vIEFsbCBTSEEtMSBjYW4gZG8gaXMgZGlnZXN0LgotICAgIHNob3VsZFRocm93KCJjcnlwdG8u
c3VidGxlLmdlbmVyYXRlS2V5KCdzaGEtMScpIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsK
LTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
cnlwdG8vc3VidGxlL3NoYS0yMjQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS9zaGEtMjI0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZmQ1MDE0NWQ1NjM1YTU5YTgwYWFkODhmZGYyNTk0YzRjNzM5Y2EwZS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L3NoYS0yMjQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotVGVz
dCBjcnlwdG8uc3VidGxlLmRpZ2VzdC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0K
LVNIQTIyNCBvZiBbXQotUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2Vz
dCkpIGlzICdkMTRhMDI4YzJhM2EyYmM5NDc2MTAyYmIyODgyMzRjNDE1YTJiMDFmODI4ZWE2MmFj
NWIzZTQyZicKLVNIQTIyNCBvZiBbMHgwXQotUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50
OEFycmF5KGRpZ2VzdCkpIGlzICdmZmY5MjkyYjQyMDE2MTdiZGM0ZDMwNTNmY2UwMjczNDE2NmE2
ODNkN2Q4NThhN2Y1ZjU5YjA3MycKLVNIQTIyNCBvZiBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywg
OCwgOSwgMTBdCi1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkg
aXMgJzc2N2QwY2RjMTEwNzliYThkY2EyNzZkZjVjNGI4NTUwN2RlNjdkY2U0N2VkYTRjZDkxOTZk
MzEyJwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvc2hhLTIyNC5odG1sIGIvTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9zaGEtMjI0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDMzZjQ3NmJkY2MwMmU4NmE0MDBlZDM3ODBmN2E1NTgyNjRmYTBiYTYuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9zaGEtMjI0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29t
bW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJU
ZXN0IGNyeXB0by5zdWJ0bGUuZGlnZXN0LiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQot
UHJvbWlzZS5yZXNvbHZlKG51bGwpLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgZGVidWcoIlNIQTIy
NCBvZiBbXSIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCgnc2hhLTIyNCcsIG5l
dyBVaW50OEFycmF5KFtdKSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGRpZ2Vz
dCA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJh
eShkaWdlc3QpKSIsICInZDE0YTAyOGMyYTNhMmJjOTQ3NjEwMmJiMjg4MjM0YzQxNWEyYjAxZjgy
OGVhNjJhYzViM2U0MmYnIik7Ci0KLSAgICBkZWJ1ZygiU0hBMjI0IG9mIFsweDBdIikKLSAgICBy
ZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMjI0J30sIG5ldyBVaW50OEFy
cmF5KFswXSkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBkaWdlc3QgPSByZXN1
bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0
KSkiLCAiJ2ZmZjkyOTJiNDIwMTYxN2JkYzRkMzA1M2ZjZTAyNzM0MTY2YTY4M2Q3ZDg1OGE3ZjVm
NTliMDczJyIpOwotCi0gICAgZGVidWcoIlNIQTIyNCBvZiBbMCwgMSwgMiwgMywgNCwgNSwgNiwg
NywgOCwgOSwgMTBdIik7Ci0gICAgdmFyIGRhdGEgPSBuZXcgVWludDhBcnJheShbMCwgMSwgMiwg
MywgNCwgNSwgNiwgNywgOCwgOSwgMTBdKTsKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdl
c3Qoe25hbWU6ICdzaGEtMjI0J30sIGRhdGEpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsK
LSAgICBkaWdlc3QgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3
IFVpbnQ4QXJyYXkoZGlnZXN0KSkiLCAiJzc2N2QwY2RjMTEwNzliYThkY2EyNzZkZjVjNGI4NTUw
N2RlNjdkY2U0N2VkYTRjZDkxOTZkMzEyJyIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08
L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9zaGEtMjU2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvc2hhLTI1Ni1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU5
YWIyN2FiMTE4YTExMWRjMjVkMjAyZWQ5NmU4M2FiOTkzYTk0NzIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9z
aGEtMjU2LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLVRlc3Qg
Y3J5cHRvLnN1YnRsZS5kaWdlc3QuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1T
SEEyNTYgb2YgW10KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3Qp
KSBpcyAnZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5
NTk5MWI3ODUyYjg1NScKLVNIQTI1NiBvZiBbMHgwXQotUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5l
dyBVaW50OEFycmF5KGRpZ2VzdCkpIGlzICc2ZTM0MGI5Y2ZmYjM3YTk4OWNhNTQ0ZTZiYjc4MGEy
Yzc4OTAxZDNmYjMzNzM4NzY4NTExYTMwNjE3YWZhMDFkJwotU0hBMjU2IG9mIFswLCAxLCAyLCAz
LCA0LCA1LCA2LCA3LCA4LCA5LCAxMF0KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhB
cnJheShkaWdlc3QpKSBpcyAnNzhhNjI3MzEwM2QxN2MzOWEwYjYxMjZlMjI2Y2VjNzBlMzMzMzdm
NGJjNmEzODA2NzQwMWI1NGEzM2U3OGVhZCcKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL3NoYS0yNTYuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvc2hhLTI1Ni5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MzBjNWFkMGI2NjM2N2FhZjBiYTJlMWRi
NmE3MWZiOWU1MDQwNThkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvc2hhLTI1Ni5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNDEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4K
LTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxz
Y3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBjcnlwdG8uc3VidGxlLmRpZ2VzdC4iKTsKLQotanNU
ZXN0SXNBc3luYyA9IHRydWU7Ci0KLVByb21pc2UucmVzb2x2ZShudWxsKS50aGVuKGZ1bmN0aW9u
KCkgewotICAgIGRlYnVnKCJTSEEyNTYgb2YgW10iKTsKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRs
ZS5kaWdlc3QoJ3NoYS0yNTYnLCBuZXcgVWludDhBcnJheShbXSkpOwotfSkudGhlbihmdW5jdGlv
bihyZXN1bHQpIHsKLSAgICBkaWdlc3QgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9I
ZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkiLCAiJ2UzYjBjNDQyOThmYzFjMTQ5YWZi
ZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUnIik7Ci0KLSAgICBk
ZWJ1ZygiU0hBMjU2IG9mIFsweDBdIikKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3Qo
e25hbWU6ICdzaGEtMjU2J30sIG5ldyBVaW50OEFycmF5KFswXSkpOwotfSkudGhlbihmdW5jdGlv
bihyZXN1bHQpIHsKLSAgICBkaWdlc3QgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9I
ZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkiLCAiJzZlMzQwYjljZmZiMzdhOTg5Y2E1
NDRlNmJiNzgwYTJjNzg5MDFkM2ZiMzM3Mzg3Njg1MTFhMzA2MTdhZmEwMWQnIik7Ci0KLSAgICBk
ZWJ1ZygiU0hBMjU2IG9mIFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMF0iKTsKLSAg
ICB2YXIgZGF0YSA9IG5ldyBVaW50OEFycmF5KFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5
LCAxMF0pOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0yNTYn
fSwgZGF0YSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGRpZ2VzdCA9IHJlc3Vs
dDsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3Qp
KSIsICInNzhhNjI3MzEwM2QxN2MzOWEwYjYxMjZlMjI2Y2VjNzBlMzMzMzdmNGJjNmEzODA2NzQw
MWI1NGEzM2U3OGVhZCciKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUv
c2hhLTM4NC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3NoYS0zODQt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMGM1Y2UyOTUxMTlh
OWQxODlkNjg1NWM1MzE0M2YwZjM0ZWQ2OWFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvc2hhLTM4NC1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi1UZXN0IGNyeXB0by5zdWJ0
bGUuZGlnZXN0LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotU0hBMzg0IG9mIFtd
Ci1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkgaXMgJzM4YjA2
MGE3NTFhYzk2Mzg0Y2Q5MzI3ZWIxYjFlMzZhMjFmZGI3MTExNGJlMDc0MzRjMGNjN2JmNjNmNmUx
ZGEyNzRlZGViZmU3NmY2NWZiZDUxYWQyZjE0ODk4Yjk1YicKLVNIQTM4NCBvZiBbMHgwXQotUEFT
UyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIGlzICdiZWMwMjFiNGYz
NjhlMzA2OTEzNGUwMTJjMmI0MzA3MDgzZDNhOWJkZDIwNmUyNGU1ZjBkODZlMTNkNjYzNjY1NTkz
M2VjMmI0MTM0NjU5NjY4MTdhOWMyMDhhMTE3MTcnCi1TSEEzODQgb2YgWzAsIDEsIDIsIDMsIDQs
IDUsIDYsIDcsIDgsIDksIDEwXQotUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5
KGRpZ2VzdCkpIGlzICc4OWJmY2Y1NjlhZTRhZjcxODUxMGRhNzhjNjc0MTQxMDlmNTczOWJiNWM0
MGQ1MWM5YzhjNTBlMmIyY2VlODZmMmY4MGM4YjlkNjhmN2MwMTIwMWEwNzE0NTcyZmU2MDInCi1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9zaGEtMzg0Lmh0bWwgYi9MYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL3NoYS0zODQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNTViOGMzNzg5ZDNlMDJhOGNlOTg0MGNmMTUxMmUzMDU1MGNjNjFkYy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL3NoYS0zODQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgY3J5
cHRvLnN1YnRsZS5kaWdlc3QuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1Qcm9taXNl
LnJlc29sdmUobnVsbCkudGhlbihmdW5jdGlvbigpIHsKLSAgICBkZWJ1ZygiU0hBMzg0IG9mIFtd
Iik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0KCdzaGEtMzg0JywgbmV3IFVpbnQ4
QXJyYXkoW10pKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZGlnZXN0ID0gcmVz
dWx0OwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2Vz
dCkpIiwgIiczOGIwNjBhNzUxYWM5NjM4NGNkOTMyN2ViMWIxZTM2YTIxZmRiNzExMTRiZTA3NDM0
YzBjYzdiZjYzZjZlMWRhMjc0ZWRlYmZlNzZmNjVmYmQ1MWFkMmYxNDg5OGI5NWInIik7Ci0KLSAg
ICBkZWJ1ZygiU0hBMzg0IG9mIFsweDBdIikKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdl
c3Qoe25hbWU6ICdzaGEtMzg0J30sIG5ldyBVaW50OEFycmF5KFswXSkpOwotfSkudGhlbihmdW5j
dGlvbihyZXN1bHQpIHsKLSAgICBkaWdlc3QgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVz
VG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkiLCAiJ2JlYzAyMWI0ZjM2OGUzMDY5
MTM0ZTAxMmMyYjQzMDcwODNkM2E5YmRkMjA2ZTI0ZTVmMGQ4NmUxM2Q2NjM2NjU1OTMzZWMyYjQx
MzQ2NTk2NjgxN2E5YzIwOGExMTcxNyciKTsKLQotICAgIGRlYnVnKCJTSEEzODQgb2YgWzAsIDEs
IDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXSIpOwotICAgIHZhciBkYXRhID0gbmV3IFVpbnQ4
QXJyYXkoWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXSk7Ci0gICAgcmV0dXJuIGNy
eXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTM4NCd9LCBkYXRhKTsKLX0pLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7Ci0gICAgZGlnZXN0ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJieXRl
c1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIiwgIic4OWJmY2Y1NjlhZTRhZjcx
ODUxMGRhNzhjNjc0MTQxMDlmNTczOWJiNWM0MGQ1MWM5YzhjNTBlMmIyY2VlODZmMmY4MGM4Yjlk
NjhmN2MwMTIwMWEwNzE0NTcyZmU2MDInIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwv
c2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlw
dG8vc3VidGxlL3NoYS01MTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRs
ZS9zaGEtNTEyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTE0
N2ZkOTY4OTI4YzcxZWQwYzg5YTA2NzdmMTEyOGU4ZjBkNDVjYS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3No
YS01MTItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotVGVzdCBj
cnlwdG8uc3VidGxlLmRpZ2VzdC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVNI
QTUxMiBvZiBbXQotUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkp
IGlzICdjZjgzZTEzNTdlZWZiOGJkZjE1NDI4NTBkNjZkODAwN2Q2MjBlNDA1MGI1NzE1ZGM4M2Y0
YTkyMWQzNmNlOWNlNDdkMGQxM2M1ZDg1ZjJiMGZmODMxOGQyODc3ZWVjMmY2M2I5MzFiZDQ3NDE3
YTgxYTUzODMyN2FmOTI3ZGEzZScKLVNIQTUxMiBvZiBbMHgwXQotUEFTUyBieXRlc1RvSGV4U3Ry
aW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIGlzICdiODI0NGQwMjg5ODFkNjkzYWY3YjQ1NmFm
OGVmYTRjYWQ2M2QyODJlMTlmZjE0OTQyYzI0NmU1MGQ5MzUxZDIyNzA0YTgwMmE3MWMzNTgwYjYz
NzBkZTRjZWIyOTNjMzI0YTg0MjMzNDI1NTdkNGU1YzM4NDM4ZjBlMzY5MTBlZScKLVNIQTUxMiBv
ZiBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdCi1QQVNTIGJ5dGVzVG9IZXhTdHJp
bmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkgaXMgJzhmZmFlZTBjY2NjMTYyODUxZmFmMDUxYWUz
ODY2N2VlZmQ0MjNjMDE2NGM1MDA1NWY4YWRlMDBhZmMzNzA1ZTNjZGViOTkwMDAwNGIwZTQyNmNh
NjZhYjYzYWEzYjk5YjA3NTI3M2Y0NGZkMzdjMjJhMzU1NWM2ZmQxZjM3Y2NiJwotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvc2hhLTUxMi5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRv
L3N1YnRsZS9zaGEtNTEyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZjNmNm
NGM5ODBhZWNmYWU5OGU1MTNmNmFiMDg0Y2EzZTEzMDNlMWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9zaGEt
NTEyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IGNyeXB0by5zdWJ0
bGUuZGlnZXN0LiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotUHJvbWlzZS5yZXNvbHZl
KG51bGwpLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgZGVidWcoIlNIQTUxMiBvZiBbXSIpOwotICAg
IHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCgnc2hhLTUxMicsIG5ldyBVaW50OEFycmF5KFtd
KSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGRpZ2VzdCA9IHJlc3VsdDsKLSAg
ICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSIsICIn
Y2Y4M2UxMzU3ZWVmYjhiZGYxNTQyODUwZDY2ZDgwMDdkNjIwZTQwNTBiNTcxNWRjODNmNGE5MjFk
MzZjZTljZTQ3ZDBkMTNjNWQ4NWYyYjBmZjgzMThkMjg3N2VlYzJmNjNiOTMxYmQ0NzQxN2E4MWE1
MzgzMjdhZjkyN2RhM2UnIik7Ci0KLSAgICBkZWJ1ZygiU0hBNTEyIG9mIFsweDBdIikKLSAgICBy
ZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtNTEyJ30sIG5ldyBVaW50OEFy
cmF5KFswXSkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBkaWdlc3QgPSByZXN1
bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0
KSkiLCAiJ2I4MjQ0ZDAyODk4MWQ2OTNhZjdiNDU2YWY4ZWZhNGNhZDYzZDI4MmUxOWZmMTQ5NDJj
MjQ2ZTUwZDkzNTFkMjI3MDRhODAyYTcxYzM1ODBiNjM3MGRlNGNlYjI5M2MzMjRhODQyMzM0MjU1
N2Q0ZTVjMzg0MzhmMGUzNjkxMGVlJyIpOwotCi0gICAgZGVidWcoIlNIQTUxMiBvZiBbMCwgMSwg
MiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdIik7Ci0gICAgdmFyIGRhdGEgPSBuZXcgVWludDhB
cnJheShbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdKTsKLSAgICByZXR1cm4gY3J5
cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtNTEyJ30sIGRhdGEpOwotfSkudGhlbihmdW5j
dGlvbihyZXN1bHQpIHsKLSAgICBkaWdlc3QgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVz
VG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkiLCAiJzhmZmFlZTBjY2NjMTYyODUx
ZmFmMDUxYWUzODY2N2VlZmQ0MjNjMDE2NGM1MDA1NWY4YWRlMDBhZmMzNzA1ZTNjZGViOTkwMDAw
NGIwZTQyNmNhNjZhYjYzYWEzYjk5YjA3NTI3M2Y0NGZkMzdjMjJhMzU1NWM2ZmQxZjM3Y2NiJyIp
OwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS91bmltcGxlbWVudGVkLXVu
d3JhcC1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3VuaW1w
bGVtZW50ZWQtdW53cmFwLWNyYXNoLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzA4ZThkZjIzMDUzNTMzMGQzNDVkMzFmY2Y0NDAyMzkxOGZlOGNkNS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlw
dG8vc3VidGxlL3VuaW1wbGVtZW50ZWQtdW53cmFwLWNyYXNoLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDkgKzAsMCBAQAotTWFrZSBzdXJlIHRoYXQgdW53cmFwIGRvZXMgbm90IGNh
dXNlIGEgY3Jhc2guCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS91bmltcGxlbWVudGVkLXVud3JhcC1jcmFzaC5odG1sIGIv
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS91bmltcGxlbWVudGVkLXVud3JhcC1jcmFzaC5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlM2JhY2I0YWIzNWQ1NmZkYjE0Yjg5ZTBj
MzliMzJhMTNlYjU4Y2EzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvdW5pbXBsZW1lbnRlZC11bndyYXAtY3Jh
c2guaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiTWFrZSBzdXJlIHRoYXQgdW53
cmFwIGRvZXMgbm90IGNhdXNlIGEgY3Jhc2guIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwot
Ci1jcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiQUVTLUtXIiwgbGVuZ3RoOiAyNTZ9
LCBmYWxzZSwgWyJ3cmFwS2V5Il0pLnRoZW4oZnVuY3Rpb24od3JhcHBpbmdLZXkpIHsKLSAgICBy
ZXR1cm4gY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogIkhNQUMiLCBoYXNoOiB7bmFt
ZTogIlNIQS0yNTYifX0sIHRydWUsIFsic2lnbiIsICJ2ZXJpZnkiXSkudGhlbihmdW5jdGlvbihh
ZXNLZXkpIHsKLSAgICAgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUud3JhcEtleSgicmF3IiwgYWVz
S2V5LCB3cmFwcGluZ0tleSwge25hbWU6ICJBRVMtS1cifSk7Ci0gICAgfSk7Ci19KS50aGVuKGZp
bmlzaEpTVGVzdCwgZmluaXNoSlNUZXN0KTsgLy8gT0sgaWYgdGhlIGJyb3dzZXIgZG9lcyBub3Qg
Y3Jhc2guCi08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS91bndyYXBLZXktY2hlY2stdXNhZ2UtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS91bndyYXBLZXktY2hlY2stdXNhZ2UtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZjMwNTAyYmI1ZjllZjAyNTVlYTIz
Njg0NGQ1MGUxZGY3MThjOGZhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvdW53cmFwS2V5LWNoZWNrLXVzYWdl
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLUNPTlNPTEUgTUVT
U0FHRTogbGluZSAxOiBLZXkgdXNhZ2VzIGRvIG5vdCBpbmNsdWRlICd1bndyYXBLZXknCi1WZXJp
ZnkgdGhhdCB1c2FnZSBpcyByZXNwZWN0ZWQgaW4gdW53cmFwS2V5IG9wZXJhdGlvbi4KLQotT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUltcG9ydGluZyBSU0Ega2V5cy4uLgotSW1wb3J0
aW5nIGFuIEFFUyBrZXkuLi4KLVdyYXBwaW5nIGl0Li4uCi1VbndyYXBwaW5nIGl0Li4uCi1QQVNT
IGNyeXB0by5zdWJ0bGUudW53cmFwS2V5KCJyYXciLCB3cmFwcGVkS2V5LCBwcml2YXRlS2V5LCB3
cmFwQWxnb3JpdGhtLCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlw
dCJdKSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3IgKERPTSBFeGNlcHRpb24gOSk6
IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS91bndyYXBLZXktY2hlY2stdXNhZ2UuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvdW53cmFwS2V5LWNoZWNrLXVzYWdlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDNhYjAyNmJlYWJhMWUyYmZjOTM4ZDc5MDMyNTA3Y2RjYWY3OWExZGQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS91bndyYXBLZXktY2hlY2stdXNhZ2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDY3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0Pgot
ZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IHVzYWdlIGlzIHJlc3BlY3RlZCBpbiB1bndyYXBLZXkg
b3BlcmF0aW9uLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIHB1YmxpY0tleUpT
T04gPSB7Ci0gICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSU0EtT0FFUCIsCi0gICAgbjogInJj
Q1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wt
UjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFx
UnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmkt
Nzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNM
UFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdr
T2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIs
Ci0gICAgZTogIkFRQUIiCi19OwotCi12YXIgcHJpdmF0ZUtleUpTT04gPSB7Ci0gICAga3R5OiAi
UlNBIiwKLSAgICBhbGc6ICJSU0EtT0FFUCIsCi0gICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6
cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5
YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdY
U1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2da
RExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5I
LWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2
Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCi0gICAgZTogIkFRQUIiLAot
ICAgIGQ6ICJlTkxTMzdhQ3o3UlhTTlBEX0R0TEJKNmo1VDhjU3hkelJCQ2pQYUk2V2NHcUpwMTZs
cTNVVHd1b0RMQXFsQTlvR1ltMjM4ZHNJV3B1dWNQX2xRdGJXZS03U3B4b0k2X3ZtWUdmN1lWVUh2
MS1ERjlxaU9tU3JNbWR4TW5WT3pZWFk4UmFUNnRoUGpuX0o1Y2ZMVjJ4SV9Md3NyTXRtcGRTeU5s
Z1gwelRVaHd0dWFoZ0FLTUVDaFlqSDJFbmpIZEh3NnNZMi13QXBkY1FJN1VMRTBvbzVSemJRWnBt
dWhjTjloaUJjMEwzaGhGMHFvNTBtYmwwMl82NV9HUTdEcFZrWEJ4TmdSQkx6bFBhYm16ekcyb0Fo
ZmVmTGdZbVNDMW9wYUNrWEU2dlJXUU5XTkw0NVJaTlpGWU0zdW9KZ2hPTXFHZW9jTTBCcGpkQ2hI
clBPbEZ2U1EiLAotICAgIHA6ICI0bWlUdUFqS01lSDV1SjVLQjM5N1FVd2hia1lFZ1NiY0EybWlm
bVNrdkUyMDE4Z2I1NXFrQkhLMWVWcnlmMV9tNDNMTmxjNk9fYWs2Z2Z6ZFpJWnZTNU5DR2pQbDBx
MDlwbFVwdThxRk9Tc3BCd0E2N3FHSDc2bEZsWkxuX2Q0eWdsUzd3ZkxydTRfNVlzOHFMTHMtRHFW
THZpd3Bvc09ueXlXcXdNNUFYcDAiLAotICAgIHE6ICJ4SFlyemtpdnRtbnpfc0djaG5XR2MwcS1w
RE9rS2ljcHRScHYycE1GSUlYeG5GWDVhTWVFWElaalZ1alh0d1V5MVVsRklOMkdaSlN2eTVLSjc5
bXVfWHlObkZITXplZEgtQTNlZTN1OGgxVVVyWkYtdlV1MV9lNFVfeDY3Tk4xZGVkelVTS3luTjdw
RmwzT2t1U2hNQldHVi1jd3pPUGRjVkFmVnVabHhVTWMiLAotICAgIGRwOiAiZkJ6RHpZRFVCbUJR
R29wN0huMGR2Zl9UMjdWNlJxcGN0V28wNzRDUVpjRmJQMmF0RlZ0S1NqM3ZpV1QzeGlkMlZIemNn
aURIZGZwTTNuRVZsRU8xd3dJb25HQ1N2ZGpHRU9aaWlGVk9qclpBT1Z4QThndU9qeXlGdnFiWGtl
MDZWd1BJSVZ2ZktlU1UyenVoYlBfXzF0dDZGX2Z4b3c0S2IyeG9uR1QwR0drIiwKLSAgICBkcTog
ImptRTJEaUlQZGh3RGdMWEFRcElhQnFRODFiTzNYZlZUX0xSVUxBd3d3d2xQdVFWMTQ4SDA0emxo
OVRKNlkyR1pIWW9rVjFVMGVPQnBKeGZrYjdkTFl0cEpwdWlCalJmNHlJVUVvR2xra0lfUWxKbkZT
RnItWWpHUmRmTkhxV0JreGxTTVpMNzcwUjltSUFUbmRHa0g3ejV4LXI5S3dCWkZDNEZDRzJoZ196
RSIsCi0gICAgcWk6ICJZQ1hfcEx3Yk1CQTFUaFZIMFdjd21ueXRxTmNyTUNFd1RtN0J5QTJlVTZu
V2JRclVMdmY3bTlfa3pmTFVjanNucEFWbEJRRzVKTVhNeTBTcTRwdHdieXdzYTUtRzhLQU9PT1Iy
TDN2NGhDLUV5czlmdGdGTV8zaTBvNDBlZVFINGIzaGFQYm50ckllTWc4SXpsT3VWWUtmOS0yUXVL
RG9XZVJkZDdOc2R4VGsiCi19OwotdmFyIHdyYXBBbGdvcml0aG0gPSB7bmFtZTogIlJTQS1PQUVQ
IiwgaGFzaDogInNoYS0xIn07Ci12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotdmFyIG5vbkV4dHJh
Y3RhYmxlID0gZmFsc2U7Ci0KLWRlYnVnKCJJbXBvcnRpbmcgUlNBIGtleXMuLi4iKTsKLWNyeXB0
by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lm
eShwdWJsaWNLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbIndyYXBLZXkiXSkudGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKLSAgICBwdWJsaWNLZXkgPSByZXN1bHQ7Ci0gICAgcmV0dXJuIGNy
eXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmlu
Z2lmeShwcml2YXRlS2V5SlNPTikpLCBudWxsLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRl
Y3J5cHQiLCAid3JhcEtleSJdKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgcHJp
dmF0ZUtleSA9IHJlc3VsdDsKLQotICAgIGRlYnVnKCJJbXBvcnRpbmcgYW4gQUVTIGtleS4uLiIp
OwotICAgIGFlc0tleURhdGEgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjYwM2RlYjEwMTVjYTcx
YmUyYjczYWVmMDg1N2Q3NzgxMWYzNTJjMDczYjYxMDhkNzJkOTgxMGEzMDkxNGRmZjQiKTsKLSAg
ICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGFlc0tleURhdGEsICJhZXMt
Y2JjIiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0IiwgIndyYXBLZXkiLCAidW53
cmFwS2V5Il0pCi19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGFlc0tleSA9IHJlc3Vs
dDsKLQotICAgIGRlYnVnKCJXcmFwcGluZyBpdC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3Vi
dGxlLndyYXBLZXkoInJhdyIsIGFlc0tleSwgcHVibGljS2V5LCB3cmFwQWxnb3JpdGhtKTsKLX0p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgd3JhcHBlZEtleSA9IHJlc3VsdDsKLQotICAg
IGRlYnVnKCJVbndyYXBwaW5nIGl0Li4uIik7Ci0gICAgLy8gcHJpdmF0ZUtleSBsYWNrcyB1bndy
YXBLZXkgdXNhZ2UuCi0gICAgc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUudW53cmFwS2V5KCJy
YXciLCB3cmFwcGVkS2V5LCBwcml2YXRlS2V5LCB3cmFwQWxnb3JpdGhtLCAiYWVzLWNiYyIsIGV4
dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKScpOwotCi0gICAgZmluaXNoSlNUZXN0
KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL3dyYXBLZXktY2hlY2stdXNhZ2UtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS93cmFwS2V5LWNoZWNrLXVzYWdlLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGY0NzRiMWJhOTM2ODk4OWM0YWNjMzUw
MzgxOWFhNGYxYmYxMjEwMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3dyYXBLZXktY2hlY2stdXNhZ2UtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE6IEtleSB1c2FnZXMgZG8gbm90IGluY2x1ZGUgJ3dyYXBLZXknCi1WZXJpZnkgdGhh
dCB1c2FnZSBpcyByZXNwZWN0ZWQgaW4gd3JhcEtleSBvcGVyYXRpb24uCi0KLU9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KLQotCi1JbXBvcnRpbmcgYW4gUlNBIGtleS4uLgotSW1wb3J0aW5nIGFu
IEFFUyBrZXkuLi4KLVdyYXBwaW5nIGl0Li4uCi1QQVNTIGNyeXB0by5zdWJ0bGUud3JhcEtleSgi
cmF3IiwgYWVzS2V5LCBwdWJsaWNLZXksIHdyYXBBbGdvcml0aG0pIHRocmV3IGV4Y2VwdGlvbiBO
b3RTdXBwb3J0ZWRFcnJvciAoRE9NIEV4Y2VwdGlvbiA5KTogVGhlIG9wZXJhdGlvbiBpcyBub3Qg
c3VwcG9ydGVkLi4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01Q
TEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3dyYXBLZXktY2hl
Y2stdXNhZ2UuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvd3JhcEtleS1jaGVjay11
c2FnZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwN2U2YTFmOTBjZjc1ZjRl
MzI2NTU1OWI0N2E5OTY5ZWY0ODJmMTdmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvd3JhcEtleS1jaGVjay11
c2FnZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgdXNh
Z2UgaXMgcmVzcGVjdGVkIGluIHdyYXBLZXkgb3BlcmF0aW9uLiIpOwotCi1qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKLQotdmFyIHB1YmxpY0tleUpTT04gPSB7Ci0gICAga3R5OiAiUlNBIiwKLSAgICBh
bGc6ICJSU0EtT0FFUCIsCi0gICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhR
TGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxT
SElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1
TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFP
Z3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdi
R3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAw
Mm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCi0gICAgZTogIkFRQUIiCi19OwotCi12YXIgd3Jh
cEFsZ29yaXRobSA9IHtuYW1lOiAiUlNBLU9BRVAiLCBoYXNoOiAic2hhLTEifTsKLXZhciBleHRy
YWN0YWJsZSA9IHRydWU7Ci12YXIgbm9uRXh0cmFjdGFibGUgPSBmYWxzZTsKLQotZGVidWcoIklt
cG9ydGluZyBhbiBSU0Ega2V5Li4uIik7Ci1jcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwg
YXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHVibGljS2V5SlNPTikpLCBudWxsLCBl
eHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAidW53cmFwS2V5Il0pLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7Ci0gICAgcHVibGljS2V5ID0gcmVzdWx0OwotCi0gICAgZGVidWcoIklt
cG9ydGluZyBhbiBBRVMga2V5Li4uIik7Ci0gICAgYWVzS2V5RGF0YSA9IGhleFN0cmluZ1RvVWlu
dDhBcnJheSgiNjAzZGViMTAxNWNhNzFiZTJiNzNhZWYwODU3ZDc3ODExZjM1MmMwNzNiNjEwOGQ3
MmQ5ODEwYTMwOTE0ZGZmNCIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgi
cmF3IiwgYWVzS2V5RGF0YSwgImFlcy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRl
Y3J5cHQiLCAid3JhcEtleSIsICJ1bndyYXBLZXkiXSkKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0
KSB7Ci0gICAgYWVzS2V5ID0gcmVzdWx0OwotCi0gICAgZGVidWcoIldyYXBwaW5nIGl0Li4uIik7
Ci0gICAgLy8gcHVibGljS2V5IGxhY2tzIHdyYXBLZXkgdXNhZ2UuCi0gICAgc2hvdWxkVGhyb3co
J2NyeXB0by5zdWJ0bGUud3JhcEtleSgicmF3IiwgYWVzS2V5LCBwdWJsaWNLZXksIHdyYXBBbGdv
cml0aG0pJyk7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Fl
cy1jYmMtMTkyLWVuY3J5cHQtZGVjcnlwdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL2Flcy1jYmMtMTkyLWVuY3J5cHQtZGVjcnlwdC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTc3ZjI3ZGExMTE4ODk2OTZlNmM0OGExMWQ5YmE5MWMzODEwOWIzMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy0x
OTItZW5jcnlwdC1kZWNyeXB0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitUZXN0IEFF
Uy1DQkMgZW5jcnlwdCBhbmQgZGVjcnlwdCBmdW5jdGlvbnMgd2l0aCBhIDI1NiBiaXQga2V5Lgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworSW1wb3J0aW5nIGEgcmF3IEFFUyBrZXkg
ZnJvbSBzdHJpbmcgbGl0ZXJhbC4uLgorUEFTUyBrZXkudHlwZSBpcyAnc2VjcmV0JworUEFTUyBr
ZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQorUEFTUyBrZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0FFUy1D
QkMnCitQQVNTIGtleS5hbGdvcml0aG0ubGVuZ3RoIGlzIDE5MgorUEFTUyBrZXkudXNhZ2VzIGlz
IFsnZGVjcnlwdCcsICdlbmNyeXB0J10KK1VzaW5nIHRoZSBrZXkgdG8gZW5jcnlwdCBwbGFpbnRl
eHQuLi4KK1BBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShlbmNyeXB0aW9uUmVz
dWx0KSkgaXMgJzRmMDIxZGIyNDNiYzYzM2Q3MTc4MTgzYTlmYTA3MWU4YjRkOWFkYTlhZDdkZWRm
NGU1ZTczODc2M2Y2OTE0NWE1NzFiMjQyMDEyZmI3YWUwN2ZhOWJhYWMzZGYxMDJlMDA4YjBlMjc5
ODg1OTg4ODFkOTIwYTllNjRmNTYxNWNkNjEyY2NkNzkyMjRiMzUwOTM1ZDQ1ZGQ2YTk4ZjgxNzYn
CitEZWNyeXB0aW5nIGl0IGJhY2suLi4KK1BBU1MgbmV3IFVpbnQ4QXJyYXkoZGVjcnlwdGlvblJl
c3VsdCkgaXMgcGxhaW50ZXh0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9hZXMtY2JjLTE5Mi1lbmNyeXB0LWRlY3J5cHQuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by93
ZWJraXRTdWJ0bGUvYWVzLWNiYy0xOTItZW5jcnlwdC1kZWNyeXB0Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZWVhZTJhNGE1N2ExMzk3MTc4MzY3MDZlY2JkNDgzN2JmNmU5MDJmNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy0xOTItZW5jcnlwdC1k
ZWNyeXB0Lmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCBBRVMtQ0JDIGVuY3J5cHQgYW5kIGRl
Y3J5cHQgZnVuY3Rpb25zIHdpdGggYSAyNTYgYml0IGtleS4iKTsKKworanNUZXN0SXNBc3luYyA9
IHRydWU7CisKK3ZhciBrZXlEYXRhID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCI4ZTczYjBmN2Rh
MGU2NDUyYzgxMGYzMmI4MDkwNzllNTYyZjhlYWQyNTIyYzZiN2IiKTsKK3ZhciBpdiA9IGhleFN0
cmluZ1RvVWludDhBcnJheSgiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYiKTsKK3Zh
ciBwbGFpbnRleHQgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjZiYzFiZWUyMmU0MDlmOTZlOTNk
N2UxMTczOTMxNzJhYWUyZDhhNTcxZTAzYWM5YzllYjc2ZmFjNDVhZjhlNTEzMGM4MWM0NmEzNWNl
NDExZTVmYmMxMTkxYTBhNTJlZmY2OWYyNDQ1ZGY0ZjliMTdhZDJiNDE3YmU2NmMzNzEwIik7Cit2
YXIgZXh0cmFjdGFibGUgPSB0cnVlOworCitkZWJ1ZygiSW1wb3J0aW5nIGEgcmF3IEFFUyBrZXkg
ZnJvbSBzdHJpbmcgbGl0ZXJhbC4uLiIpOworY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIs
IGtleURhdGEsICJhZXMtY2JjIiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAga2V5ID0gcmVzdWx0OworICAgIHNob3VsZEJl
KCJrZXkudHlwZSIsICInc2VjcmV0JyIpOworICAgIHNob3VsZEJlKCJrZXkuZXh0cmFjdGFibGUi
LCAidHJ1ZSIpOworICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FFUy1DQkMn
Iik7CisgICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjE5MiIpOworICAgIHNo
b3VsZEJlKCJrZXkudXNhZ2VzIiwgIlsnZGVjcnlwdCcsICdlbmNyeXB0J10iKTsKKworICAgIGRl
YnVnKCJVc2luZyB0aGUga2V5IHRvIGVuY3J5cHQgcGxhaW50ZXh0Li4uIik7CisgICAgcmV0dXJu
IGNyeXB0by5zdWJ0bGUuZW5jcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXksIHBs
YWludGV4dCk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGVuY3J5cHRpb25SZXN1
bHQgPSByZXN1bHQ7CisgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJy
YXkoZW5jcnlwdGlvblJlc3VsdCkpIiwgIic0ZjAyMWRiMjQzYmM2MzNkNzE3ODE4M2E5ZmEwNzFl
OGI0ZDlhZGE5YWQ3ZGVkZjRlNWU3Mzg3NjNmNjkxNDVhNTcxYjI0MjAxMmZiN2FlMDdmYTliYWFj
M2RmMTAyZTAwOGIwZTI3OTg4NTk4ODgxZDkyMGE5ZTY0ZjU2MTVjZDYxMmNjZDc5MjI0YjM1MDkz
NWQ0NWRkNmE5OGY4MTc2JyIpOworCisgICAgZGVidWcoIkRlY3J5cHRpbmcgaXQgYmFjay4uLiIp
OworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRlY3J5cHQoe25hbWU6ICJhZXMtY2JjIiwgaXY6
IGl2fSwga2V5LCByZXN1bHQpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBkZWNy
eXB0aW9uUmVzdWx0ID0gcmVzdWx0OworICAgIHNob3VsZEJlKCJuZXcgVWludDhBcnJheShkZWNy
eXB0aW9uUmVzdWx0KSIsICJwbGFpbnRleHQiKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7
Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLTI1Ni1lbmNyeXB0LWRlY3J5cHQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLTI1Ni1lbmNyeXB0
LWRlY3J5cHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwOGI1NWJkYzIzZjdmMzQwN2Y1NGZh
ODQ4MDRhZjlkNGI5YTA2NzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL2Flcy1jYmMtMjU2LWVuY3J5cHQtZGVjcnlwdC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxOSBAQAorVGVzdCBBRVMtQ0JDIGVuY3J5cHQgYW5kIGRlY3J5cHQgZnVuY3Rpb25z
IHdpdGggYSAyNTYgYml0IGtleS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0lt
cG9ydGluZyBhIHJhdyBBRVMga2V5IGZyb20gc3RyaW5nIGxpdGVyYWwuLi4KK1BBU1Mga2V5LnR5
cGUgaXMgJ3NlY3JldCcKK1BBU1Mga2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKK1BBU1Mga2V5LmFs
Z29yaXRobS5uYW1lIGlzICdBRVMtQ0JDJworUEFTUyBrZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyAy
NTYKK1BBU1Mga2V5LnVzYWdlcyBpcyBbJ2RlY3J5cHQnLCAnZW5jcnlwdCddCitVc2luZyB0aGUg
a2V5IHRvIGVuY3J5cHQgcGxhaW50ZXh0Li4uCitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVp
bnQ4QXJyYXkoZW5jcnlwdGlvblJlc3VsdCkpIGlzICdmNThjNGMwNGQ2ZTVmMWJhNzc5ZWFiZmI1
ZjdiZmJkNjljZmM0ZTk2N2VkYjgwOGQ2NzlmNzc3YmM2NzAyYzdkMzlmMjMzNjlhOWQ5YmFjZmE1
MzBlMjYzMDQyMzE0NjFiMmViMDVlMmMzOWJlOWZjZGE2YzE5MDc4YzZhOWQxYjNmNDYxNzk2ZDZi
MGQ2YjJlMGMyYTcyYjRkODBlNjQ0JworRGVjcnlwdGluZyBpdCBiYWNrLi4uCitQQVNTIG5ldyBV
aW50OEFycmF5KGRlY3J5cHRpb25SZXN1bHQpIGlzIHBsYWludGV4dAorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy0yNTYtZW5jcnlwdC1kZWNyeXB0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtMjU2LWVuY3J5cHQtZGVj
cnlwdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5NDdiZDRiN2UyODA3OWY1OGQ0ZDAxYTVlNDcwNTY0MDFi
NDZmMmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L2Flcy1jYmMtMjU2LWVuY3J5cHQtZGVjcnlwdC5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24u
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3Qg
QUVTLUNCQyBlbmNyeXB0IGFuZCBkZWNyeXB0IGZ1bmN0aW9ucyB3aXRoIGEgMjU2IGJpdCBrZXku
Iik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIga2V5RGF0YSA9IGhleFN0cmluZ1Rv
VWludDhBcnJheSgiNjAzZGViMTAxNWNhNzFiZTJiNzNhZWYwODU3ZDc3ODExZjM1MmMwNzNiNjEw
OGQ3MmQ5ODEwYTMwOTE0ZGZmNCIpOwordmFyIGl2ID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCIw
MDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIpOwordmFyIHBsYWludGV4dCA9IGhleFN0
cmluZ1RvVWludDhBcnJheSgiNmJjMWJlZTIyZTQwOWY5NmU5M2Q3ZTExNzM5MzE3MmFhZTJkOGE1
NzFlMDNhYzljOWViNzZmYWM0NWFmOGU1MTMwYzgxYzQ2YTM1Y2U0MTFlNWZiYzExOTFhMGE1MmVm
ZjY5ZjI0NDVkZjRmOWIxN2FkMmI0MTdiZTY2YzM3MTAiKTsKK3ZhciBleHRyYWN0YWJsZSA9IHRy
dWU7CisKK2RlYnVnKCJJbXBvcnRpbmcgYSByYXcgQUVTIGtleSBmcm9tIHN0cmluZyBsaXRlcmFs
Li4uIik7CitjcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3Iiwga2V5RGF0YSwgImFlcy1jYmMi
LCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSkudGhlbihmdW5jdGlvbihyZXN1
bHQpIHsKKyAgICBrZXkgPSByZXN1bHQ7CisgICAgc2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNy
ZXQnIik7CisgICAgc2hvdWxkQmUoImtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7CisgICAgc2hv
dWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIsICInQUVTLUNCQyciKTsKKyAgICBzaG91bGRCZSgi
a2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMjU2Iik7CisgICAgc2hvdWxkQmUoImtleS51c2FnZXMi
LCAiWydkZWNyeXB0JywgJ2VuY3J5cHQnXSIpOworCisgICAgZGVidWcoIlVzaW5nIHRoZSBrZXkg
dG8gZW5jcnlwdCBwbGFpbnRleHQuLi4iKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5lbmNy
eXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtleSwgcGxhaW50ZXh0KTsKK30pLnRoZW4o
ZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgZW5jcnlwdGlvblJlc3VsdCA9IHJlc3VsdDsKKyAgICBz
aG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShlbmNyeXB0aW9uUmVzdWx0
KSkiLCAiJ2Y1OGM0YzA0ZDZlNWYxYmE3NzllYWJmYjVmN2JmYmQ2OWNmYzRlOTY3ZWRiODA4ZDY3
OWY3NzdiYzY3MDJjN2QzOWYyMzM2OWE5ZDliYWNmYTUzMGUyNjMwNDIzMTQ2MWIyZWIwNWUyYzM5
YmU5ZmNkYTZjMTkwNzhjNmE5ZDFiM2Y0NjE3OTZkNmIwZDZiMmUwYzJhNzJiNGQ4MGU2NDQnIik7
CisKKyAgICBkZWJ1ZygiRGVjcnlwdGluZyBpdCBiYWNrLi4uIik7CisgICAgcmV0dXJuIGNyeXB0
by5zdWJ0bGUuZGVjcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXksIHJlc3VsdCk7
Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGRlY3J5cHRpb25SZXN1bHQgPSByZXN1
bHQ7CisgICAgc2hvdWxkQmUoIm5ldyBVaW50OEFycmF5KGRlY3J5cHRpb25SZXN1bHQpIiwgInBs
YWludGV4dCIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorCis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L2Flcy1jYmMtZW5jcnlwdC1kZWNyeXB0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0
by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5cHQtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjY2YjMxNTA3MWQ1NDg4Njc2Yjc0ZWFlMDQ5OGZlYmE3MWNkNTkwZDgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtZW5jcnlw
dC1kZWNyeXB0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI0IEBACitUZXN0IEFFUy1DQkMgZW5j
cnlwdCBhbmQgZGVjcnlwdCBmdW5jdGlvbnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitJbXBvcnRpbmcgYSByYXcgQUVTIGtleSBmcm9tIHN0cmluZyBsaXRlcmFsLi4uCitQQVNT
IGtleS50eXBlIGlzICdzZWNyZXQnCitQQVNTIGtleS5leHRyYWN0YWJsZSBpcyB0cnVlCitQQVNT
IGtleS5hbGdvcml0aG0ubmFtZSBpcyAnQUVTLUNCQycKK1BBU1Mga2V5LmFsZ29yaXRobS5sZW5n
dGggaXMgMTI4CitQQVNTIGtleS51c2FnZXMgaXMgWydkZWNyeXB0JywgJ2VuY3J5cHQnXQorVXNp
bmcgdGhlIGtleSB0byBlbmNyeXB0IHBsYWludGV4dC4uLgorUEFTUyBieXRlc1RvSGV4U3RyaW5n
KG5ldyBVaW50OEFycmF5KGVuY3J5cHRpb25SZXN1bHQpKSBpcyAnNzY0OWFiYWM4MTE5YjI0NmNl
ZTk4ZTliMTJlOTE5N2Q1MDg2Y2I5YjUwNzIxOWVlOTVkYjExM2E5MTc2NzhiMjczYmVkNmI4ZTNj
MTc0M2I3MTE2ZTY5ZTIyMjI5NTE2M2ZmMWNhYTE2ODFmYWMwOTEyMGVjYTMwNzU4NmUxYTc4Y2I4
MjgwNzIzMGUxMzIxZDNmYWUwMGQxOGNjMjAxMicKK0RlY3J5cHRpbmcgaXQgYmFjay4uLgorUEFT
UyBuZXcgVWludDhBcnJheShkZWNyeXB0aW9uUmVzdWx0KSBpcyBwbGFpbnRleHQKK1Rlc3Rpbmcg
aW5pdGlhbGl6YXRpb24gdmVjdG9yIGJpbmRpbmdzLi4uCitQQVNTIGNyeXB0by5zdWJ0bGUuZW5j
cnlwdCh7bmFtZTogJ0FFUy1DQkMnLCBpdjogbnVsbH0sIGtleSwgcGxhaW50ZXh0KSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBPbmx5IEFycmF5QnVmZmVyIGFuZCBBcnJheUJ1ZmZlclZpZXcg
b2JqZWN0cyBjYW4gYmUgcGFzc2VkIGFzIENyeXB0b09wZXJhdGlvbkRhdGEuCitQQVNTIGNyeXB0
by5zdWJ0bGUuZW5jcnlwdCh7bmFtZTogJ0FFUy1DQkMnfSwga2V5LCBwbGFpbnRleHQpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE9ubHkgQXJyYXlCdWZmZXIgYW5kIEFycmF5QnVmZmVyVmll
dyBvYmplY3RzIGNhbiBiZSBwYXNzZWQgYXMgQ3J5cHRvT3BlcmF0aW9uRGF0YS4KK1BBU1MgY3J5
cHRvLnN1YnRsZS5lbmNyeXB0KHtuYW1lOiAnQUVTLUNCQycsIGl2OiAzfSwga2V5LCBwbGFpbnRl
eHQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE9ubHkgQXJyYXlCdWZmZXIgYW5kIEFycmF5
QnVmZmVyVmlldyBvYmplY3RzIGNhbiBiZSBwYXNzZWQgYXMgQ3J5cHRvT3BlcmF0aW9uRGF0YS4K
K1BBU1MgY3J5cHRvLnN1YnRsZS5lbmNyeXB0KHtuYW1lOiAnQUVTLUNCQycsIGl2OiBuZXcgVWlu
dDhBcnJheShbMF0pfSwga2V5LCBwbGFpbnRleHQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogQUVT
LUNCQyBpbml0aWFsaXphdGlvbiBkYXRhIG11c3QgYmUgMTYgYnl0ZXMuCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWVuY3J5cHQtZGVjcnlwdC13aXRoLXBh
ZGRpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMt
Y2JjLWVuY3J5cHQtZGVjcnlwdC13aXRoLXBhZGRpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjMyZmRmYmFhNGUyMGRlNjIzZGViODk3NWY4ZDA0MGIxZDU0MjlmNGYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtZW5jcnlwdC1kZWNy
eXB0LXdpdGgtcGFkZGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorVGVzdCBBRVMt
Q0JDIGVuY3J5cHQgYW5kIGRlY3J5cHQgZnVuY3Rpb25zIG9uIGEgcGxhaW50ZXh0IHRoYXQgaXMg
bm90IGEgbXVsdGlwbGUgb2YgYmxvY2sgc2l6ZSBpbiBsZW5ndGguCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitJbXBvcnRpbmcgYSByYXcgQUVTIGtleSBmcm9tIHN0cmluZyBsaXRl
cmFsLi4uCitQQVNTIGtleS50eXBlIGlzICdzZWNyZXQnCitQQVNTIGtleS5leHRyYWN0YWJsZSBp
cyB0cnVlCitQQVNTIGtleS5hbGdvcml0aG0ubmFtZSBpcyAnQUVTLUNCQycKK1BBU1Mga2V5LmFs
Z29yaXRobS5sZW5ndGggaXMgMTI4CitQQVNTIGtleS51c2FnZXMgaXMgWydkZWNyeXB0JywgJ2Vu
Y3J5cHQnXQorVXNpbmcgdGhlIGtleSB0byBlbmNyeXB0IHBsYWludGV4dC4uLgorUEFTUyBieXRl
c1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGN5cGhlcnRleHQpKSBpcyAnNjMwMTk5YzVmMjAy
Y2M3MTY3YmI4NGM2YzcyYjM0OWQnCitEZWNyeXB0aW5nIGl0IGJhY2suLi4KK1BBU1MgbmV3IFVp
bnQ4QXJyYXkoZGVjcnlwdGlvblJlc3VsdCkgaXMgcGxhaW50ZXh0CitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWVuY3J5cHQtZGVjcnlwdC13aXRoLXBhZGRp
bmcuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1lbmNyeXB0
LWRlY3J5cHQtd2l0aC1wYWRkaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmFiNjQ2MGE2ZjNiZTY4YWUx
OGRjMGZlZjAxZTRmZjNjMzEzMWMyYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5cHQtd2l0aC1wYWRkaW5nLmh0
bWwKQEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxz
Y3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCBBRVMtQ0JDIGVuY3J5cHQgYW5kIGRlY3J5cHQgZnVu
Y3Rpb25zIG9uIGEgcGxhaW50ZXh0IHRoYXQgaXMgbm90IGEgbXVsdGlwbGUgb2YgYmxvY2sgc2l6
ZSBpbiBsZW5ndGguIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIga2V5RGF0YSA9
IGhleFN0cmluZ1RvVWludDhBcnJheSgiMmI3ZTE1MTYyOGFlZDJhNmFiZjcxNTg4MDljZjRmM2Mi
KTsKK3ZhciBpdiA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAwMTAyMDMwNDA1MDYwNzA4MDkw
YTBiMGMwZDBlMGYiKTsKK3ZhciBwbGFpbnRleHQgPSBhc2NpaVRvVWludDhBcnJheSgidGVzdCIp
OwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKKworZGVidWcoIkltcG9ydGluZyBhIHJhdyBBRVMg
a2V5IGZyb20gc3RyaW5nIGxpdGVyYWwuLi4iKTsKK2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJy
YXciLCBrZXlEYXRhLCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlw
dCJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGtleSA9IHJlc3VsdDsKKyAgICBzaG91
bGRCZSgia2V5LnR5cGUiLCAiJ3NlY3JldCciKTsKKyAgICBzaG91bGRCZSgia2V5LmV4dHJhY3Rh
YmxlIiwgInRydWUiKTsKKyAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidBRVMt
Q0JDJyIpOworICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLmxlbmd0aCIsICIxMjgiKTsKKyAg
ICBzaG91bGRCZSgia2V5LnVzYWdlcyIsICJbJ2RlY3J5cHQnLCAnZW5jcnlwdCddIik7CisKKyAg
ICBkZWJ1ZygiVXNpbmcgdGhlIGtleSB0byBlbmNyeXB0IHBsYWludGV4dC4uLiIpOworICAgIHJl
dHVybiBjcnlwdG8uc3VidGxlLmVuY3J5cHQoe25hbWU6ICJhZXMtY2JjIiwgaXY6IGl2fSwga2V5
LCBwbGFpbnRleHQpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBjeXBoZXJ0ZXh0
ID0gcmVzdWx0OworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5
KGN5cGhlcnRleHQpKSIsICInNjMwMTk5YzVmMjAyY2M3MTY3YmI4NGM2YzcyYjM0OWQnIik7CisK
KyAgICBkZWJ1ZygiRGVjcnlwdGluZyBpdCBiYWNrLi4uIik7CisgICAgcmV0dXJuIGNyeXB0by5z
dWJ0bGUuZGVjcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXksIHJlc3VsdCk7Cit9
KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGRlY3J5cHRpb25SZXN1bHQgPSByZXN1bHQ7
CisgICAgc2hvdWxkQmUoIm5ldyBVaW50OEFycmF5KGRlY3J5cHRpb25SZXN1bHQpIiwgInBsYWlu
dGV4dCIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMt
Y2JjLWVuY3J5cHQtZGVjcnlwdC5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9hZXMtY2JjLWVuY3J5cHQtZGVjcnlwdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2N2Y0MjdlMzliMDM5
NmU4ZDQ5MTY3ZmEyNDk5OGQ0MjA2MDIwMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtZW5jcnlwdC1kZWNyeXB0Lmh0bWwKQEAgLTAs
MCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+Citk
ZXNjcmlwdGlvbigiVGVzdCBBRVMtQ0JDIGVuY3J5cHQgYW5kIGRlY3J5cHQgZnVuY3Rpb25zLiIp
OworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGtleURhdGEgPSBoZXhTdHJpbmdUb1Vp
bnQ4QXJyYXkoIjJiN2UxNTE2MjhhZWQyYTZhYmY3MTU4ODA5Y2Y0ZjNjIik7Cit2YXIgaXYgPSBo
ZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmIik7
Cit2YXIgcGxhaW50ZXh0ID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCI2YmMxYmVlMjJlNDA5Zjk2
ZTkzZDdlMTE3MzkzMTcyYWFlMmQ4YTU3MWUwM2FjOWM5ZWI3NmZhYzQ1YWY4ZTUxMzBjODFjNDZh
MzVjZTQxMWU1ZmJjMTE5MWEwYTUyZWZmNjlmMjQ0NWRmNGY5YjE3YWQyYjQxN2JlNjZjMzcxMCIp
OwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKKworZGVidWcoIkltcG9ydGluZyBhIHJhdyBBRVMg
a2V5IGZyb20gc3RyaW5nIGxpdGVyYWwuLi4iKTsKK2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJy
YXciLCBrZXlEYXRhLCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlw
dCJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGtleSA9IHJlc3VsdDsKKyAgICBzaG91
bGRCZSgia2V5LnR5cGUiLCAiJ3NlY3JldCciKTsKKyAgICBzaG91bGRCZSgia2V5LmV4dHJhY3Rh
YmxlIiwgInRydWUiKTsKKyAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidBRVMt
Q0JDJyIpOworICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLmxlbmd0aCIsICIxMjgiKTsKKyAg
ICBzaG91bGRCZSgia2V5LnVzYWdlcyIsICJbJ2RlY3J5cHQnLCAnZW5jcnlwdCddIik7CisKKyAg
ICBkZWJ1ZygiVXNpbmcgdGhlIGtleSB0byBlbmNyeXB0IHBsYWludGV4dC4uLiIpOworICAgIHJl
dHVybiBjcnlwdG8uc3VidGxlLmVuY3J5cHQoe25hbWU6ICJhZXMtY2JjIiwgaXY6IGl2fSwga2V5
LCBwbGFpbnRleHQpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBlbmNyeXB0aW9u
UmVzdWx0ID0gcmVzdWx0OworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50
OEFycmF5KGVuY3J5cHRpb25SZXN1bHQpKSIsICInNzY0OWFiYWM4MTE5YjI0NmNlZTk4ZTliMTJl
OTE5N2Q1MDg2Y2I5YjUwNzIxOWVlOTVkYjExM2E5MTc2NzhiMjczYmVkNmI4ZTNjMTc0M2I3MTE2
ZTY5ZTIyMjI5NTE2M2ZmMWNhYTE2ODFmYWMwOTEyMGVjYTMwNzU4NmUxYTc4Y2I4MjgwNzIzMGUx
MzIxZDNmYWUwMGQxOGNjMjAxMiciKTsKKworICAgIGRlYnVnKCJEZWNyeXB0aW5nIGl0IGJhY2su
Li4iKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kZWNyeXB0KHtuYW1lOiAiYWVzLWNiYyIs
IGl2OiBpdn0sIGtleSwgcmVzdWx0KTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAg
ZGVjcnlwdGlvblJlc3VsdCA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgibmV3IFVpbnQ4QXJyYXko
ZGVjcnlwdGlvblJlc3VsdCkiLCAicGxhaW50ZXh0Iik7CisKKyAgICBkZWJ1ZygiVGVzdGluZyBp
bml0aWFsaXphdGlvbiB2ZWN0b3IgYmluZGluZ3MuLi4iKTsKKyAgICBzaG91bGRUaHJvdygiY3J5
cHRvLnN1YnRsZS5lbmNyeXB0KHtuYW1lOiAnQUVTLUNCQycsIGl2OiBudWxsfSwga2V5LCBwbGFp
bnRleHQpIik7CisgICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZW5jcnlwdCh7bmFtZTog
J0FFUy1DQkMnfSwga2V5LCBwbGFpbnRleHQpIik7CisgICAgc2hvdWxkVGhyb3coImNyeXB0by5z
dWJ0bGUuZW5jcnlwdCh7bmFtZTogJ0FFUy1DQkMnLCBpdjogM30sIGtleSwgcGxhaW50ZXh0KSIp
OworICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmVuY3J5cHQoe25hbWU6ICdBRVMtQ0JD
JywgaXY6IG5ldyBVaW50OEFycmF5KFswXSl9LCBrZXksIHBsYWludGV4dCkiKTsKKworICAgIGZp
bmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWdlbmVyYXRlLWtl
eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMt
Z2VuZXJhdGUta2V5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTY2OTcyNDRiMmM2Y2EyNGQy
YjBhYmEzZWEzNjk0OTU4YzQ5M2EwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5
cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWdlbmVyYXRlLWtleS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxOSBAQAorVGVzdCBnZW5lcmF0aW5nIGFuIEFFUyBrZXkgdXNpbmcgQUVTLUNCQyBhbGdv
cml0aG0uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGNyeXB0by5zdWJ0
bGUuZ2VuZXJhdGVLZXkoImFlcy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5
cHQiXSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY3J5cHRv
LnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImFlcy1jYmMifSwgZXh0cmFjdGFibGUsIFsiZW5j
cnlwdCIsICJkZWNyeXB0Il0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFZhbHVlIE5hTiBp
cyBvdXRzaWRlIHRoZSByYW5nZSBbMCwgNjU1MzVdLgorUEFTUyBjcnlwdG8uc3VidGxlLmdlbmVy
YXRlS2V5KHtuYW1lOiAiYWVzLWNiYyIsIGxlbmd0aDogdW5kZWZpbmVkfSwgZXh0cmFjdGFibGUs
IFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFZhbHVl
IE5hTiBpcyBvdXRzaWRlIHRoZSByYW5nZSBbMCwgNjU1MzVdLgorUEFTUyBjcnlwdG8uc3VidGxl
LmdlbmVyYXRlS2V5KHtuYW1lOiAiYWVzLWNiYyIsIGxlbmd0aDoge319LCBleHRyYWN0YWJsZSwg
WyJlbmNyeXB0IiwgImRlY3J5cHQiXSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVmFsdWUg
TmFOIGlzIG91dHNpZGUgdGhlIHJhbmdlIFswLCA2NTUzNV0uCitHZW5lcmF0aW5nIGEga2V5Li4u
CitQQVNTIGtleS50eXBlIGlzICdzZWNyZXQnCitQQVNTIGtleS5leHRyYWN0YWJsZSBpcyB0cnVl
CitQQVNTIGtleS5hbGdvcml0aG0ubmFtZSBpcyAnQUVTLUNCQycKK1BBU1Mga2V5LmFsZ29yaXRo
bS5sZW5ndGggaXMgMTI4CitQQVNTIGtleS51c2FnZXMgaXMgWydkZWNyeXB0JywgJ2VuY3J5cHQn
XQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1nZW5lcmF0
ZS1rZXkuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1nZW5l
cmF0ZS1rZXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMzYyYzhmOTQyMWJjN2YwZDdmN2MwODk2M2JlNGU2
M2Q5NjQ3Y2NlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1
YnRsZS9hZXMtY2JjLWdlbmVyYXRlLWtleS5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgZ2Vu
ZXJhdGluZyBhbiBBRVMga2V5IHVzaW5nIEFFUy1DQkMgYWxnb3JpdGhtLiIpOworCitqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKKworc2hvdWxkVGhyb3co
J2NyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoImFlcy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNy
eXB0IiwgImRlY3J5cHQiXSknKTsKK3Nob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmdlbmVyYXRl
S2V5KHtuYW1lOiAiYWVzLWNiYyJ9LCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQi
XSknKTsKK3Nob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiYWVz
LWNiYyIsIGxlbmd0aDogdW5kZWZpbmVkfSwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNy
eXB0Il0pJyk7CitzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTog
ImFlcy1jYmMiLCBsZW5ndGg6IHt9fSwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0
Il0pJyk7CisKK2RlYnVnKCJHZW5lcmF0aW5nIGEga2V5Li4uIik7CitjcnlwdG8uc3VidGxlLmdl
bmVyYXRlS2V5KHtuYW1lOiAiYWVzLWNiYyIsIGxlbmd0aDogMTI4fSwgZXh0cmFjdGFibGUsIFsi
ZW5jcnlwdCIsICJkZWNyeXB0Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAga2V5ID0g
cmVzdWx0OworCisgICAgc2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7CisgICAgc2hv
dWxkQmUoImtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7CisgICAgc2hvdWxkQmUoImtleS5hbGdv
cml0aG0ubmFtZSIsICInQUVTLUNCQyciKTsKKyAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5s
ZW5ndGgiLCAiMTI4Iik7CisgICAgc2hvdWxkQmUoImtleS51c2FnZXMiLCAiWydkZWNyeXB0Jywg
J2VuY3J5cHQnXSIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorCis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3Vi
dGxlL2Flcy1jYmMtaW1wb3J0LWp3ay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL2Flcy1jYmMtaW1wb3J0LWp3ay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDBkZmI2NDI2MzAzOTlkNTJjOGFlNmE5ZGMyMmFlZGFlMTEwOGVhMQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1pbXBvcnQtandrLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitUZXN0IGltcG9ydGluZyBhIEpXSyBrZXkgZm9y
IEFFUy1DQkMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitJbXBvcnRpbmcgYSBr
ZXkuLi4KKworUEFTUyBrZXkudHlwZSBpcyAnc2VjcmV0JworUEFTUyBrZXkuZXh0cmFjdGFibGUg
aXMgZmFsc2UKK1BBU1Mga2V5LmFsZ29yaXRobS5uYW1lIGlzICdBRVMtQ0JDJworUEFTUyBrZXku
YWxnb3JpdGhtLmxlbmd0aCBpcyAxOTIKK1BBU1Mga2V5LnVzYWdlcyBpcyBbImVuY3J5cHQiXQor
CitVc2luZyB0aGUga2V5IHRvIGVuY3J5cHQgcGxhaW50ZXh0Li4uCitQQVNTIGJ5dGVzVG9IZXhT
dHJpbmcobmV3IFVpbnQ4QXJyYXkoZW5jcnlwdGlvblJlc3VsdCkpIGlzICc0ZjAyMWRiMjQzYmM2
MzNkNzE3ODE4M2E5ZmEwNzFlOGI0ZDlhZGE5YWQ3ZGVkZjRlNWU3Mzg3NjNmNjkxNDVhNTcxYjI0
MjAxMmZiN2FlMDdmYTliYWFjM2RmMTAyZTAwOGIwZTI3OTg4NTk4ODgxZDkyMGE5ZTY0ZjU2MTVj
ZDYxMmNjZDc5MjI0YjM1MDkzNWQ0NWRkNmE5OGY4MTc2JworUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1pbXBvcnQtandrLmh0bWwgYi9MYXlvdXRUZXN0cy9j
cnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtaW1wb3J0LWp3ay5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJk
MDhjYzM3NTViOTA5MGQzYzI3NjA2OTZhMGQxNGRlOWMxZGM4MmUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtaW1wb3J0LWp3ay5odG1s
CkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2Ny
aXB0PgorZGVzY3JpcHRpb24oIlRlc3QgaW1wb3J0aW5nIGEgSldLIGtleSBmb3IgQUVTLUNCQy4i
KTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBleHRyYWN0YWJsZSA9IHRydWU7CisK
K3ZhciBpdiA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBi
MGMwZDBlMGYiKTsKK3ZhciBwbGFpbnRleHQgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjZiYzFi
ZWUyMmU0MDlmOTZlOTNkN2UxMTczOTMxNzJhYWUyZDhhNTcxZTAzYWM5YzllYjc2ZmFjNDVhZjhl
NTEzMGM4MWM0NmEzNWNlNDExZTVmYmMxMTkxYTBhNTJlZmY2OWYyNDQ1ZGY0ZjliMTdhZDJiNDE3
YmU2NmMzNzEwIik7CisKK3ZhciBqd2tLZXkgPSB7CisgICAgImt0eSI6ICJvY3QiLAorICAgICJh
bGciOiAiQTE5MkNCQyIsCisgICAgInVzZSI6ICJlbmMiLAorICAgICJleHQiOiB0cnVlLAorICAg
ICJrIjogImpuT3c5OW9PWkZMSUVQTXJnSkI1NVdMNDZ0SlNMR3Q3IgorfTsKKwordmFyIGp3a0tl
eUFzQXJyYXlCdWZmZXIgPSBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShqd2tLZXkp
KTsKKworZGVidWcoIkltcG9ydGluZyBhIGtleS4uLlxuIik7CitjcnlwdG8uc3VidGxlLmltcG9y
dEtleSgiandrIiwgandrS2V5QXNBcnJheUJ1ZmZlciwgbnVsbCwgZmFsc2UsIFsiZW5jcnlwdCJd
KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGtleSA9IHJlc3VsdDsKKworICAgIHNob3Vs
ZEJlKCJrZXkudHlwZSIsICInc2VjcmV0JyIpOworICAgIHNob3VsZEJlKCJrZXkuZXh0cmFjdGFi
bGUiLCAiZmFsc2UiKTsKKyAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidBRVMt
Q0JDJyIpOworICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLmxlbmd0aCIsICIxOTIiKTsKKyAg
ICBzaG91bGRCZSgia2V5LnVzYWdlcyIsICdbImVuY3J5cHQiXScpOworCisgICAgZGVidWcoIlxu
VXNpbmcgdGhlIGtleSB0byBlbmNyeXB0IHBsYWludGV4dC4uLiIpOworICAgIHJldHVybiBjcnlw
dG8uc3VidGxlLmVuY3J5cHQoe25hbWU6ICJhZXMtY2JjIiwgaXY6IGl2fSwga2V5LCBwbGFpbnRl
eHQpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBlbmNyeXB0aW9uUmVzdWx0ID0g
cmVzdWx0OworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGVu
Y3J5cHRpb25SZXN1bHQpKSIsICInNGYwMjFkYjI0M2JjNjMzZDcxNzgxODNhOWZhMDcxZThiNGQ5
YWRhOWFkN2RlZGY0ZTVlNzM4NzYzZjY5MTQ1YTU3MWIyNDIwMTJmYjdhZTA3ZmE5YmFhYzNkZjEw
MmUwMDhiMGUyNzk4ODU5ODg4MWQ5MjBhOWU2NGY1NjE1Y2Q2MTJjY2Q3OTIyNGIzNTA5MzVkNDVk
ZDZhOThmODE3NiciKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+CisKKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvYWVzLWNiYy1pbnZhbGlkLWxlbmd0aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL2Flcy1jYmMtaW52YWxpZC1sZW5ndGgtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmEwMmE1ZjIwNTYwNzhhYjdmNGMwMjRkNDdhMTc4NWE5ODc3MzUxOTYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtaW52YWxp
ZC1sZW5ndGgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3QgYW4gdW5zdXBwb3J0
ZWQgQUVTIGtleSBsZW5ndGguCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitJbXBv
cnRpbmcgYSByYXcgQUVTIGtleSBmcm9tIHN0cmluZyBsaXRlcmFsLi4uCitQQVNTIGtleS50eXBl
IGlzICdzZWNyZXQnCitQQVNTIGtleS5leHRyYWN0YWJsZSBpcyB0cnVlCitQQVNTIGtleS5hbGdv
cml0aG0ubmFtZSBpcyAnQUVTLUNCQycKK1BBU1Mga2V5LmFsZ29yaXRobS5sZW5ndGggaXMgMTc2
CitQQVNTIGtleS51c2FnZXMgaXMgWydkZWNyeXB0JywgJ2VuY3J5cHQnXQorVXNpbmcgdGhlIGtl
eSB0byBlbmNyeXB0IHBsYWludGV4dC4uLgorRmFpbGVkLCBhcyBleHBlY3RlZC4gTm90ZSB0aGF0
IHRoZSBzcGVjIGRvZXNuJ3QgYXBwZWFyIHRvIGNsZWFybHkgZGVmaW5lIHdoaWNoIHN0ZXAgc2hv
dWxkIGZhaWwuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2Jj
LWludmFsaWQtbGVuZ3RoLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Fl
cy1jYmMtaW52YWxpZC1sZW5ndGguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDdhODljODEzYmU5ZTE4M2Y1
Y2FhMDQ2NWUzMzcxMmFlZjNmODhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5
cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWludmFsaWQtbGVuZ3RoLmh0bWwKQEAgLTAsMCArMSw0
MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbigiVGVzdCBhbiB1bnN1cHBvcnRlZCBBRVMga2V5IGxlbmd0aC4iKTsKKworanNUZXN0SXNB
c3luYyA9IHRydWU7CisKK3ZhciBrZXlEYXRhID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCI4ZTcz
YjBmN2RhMGU2NDUyYzgxMGYzMmI4MDkwNzllNTYyZjhlYWQyNTIyYyIpOwordmFyIGl2ID0gaGV4
U3RyaW5nVG9VaW50OEFycmF5KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIpOwor
dmFyIHBsYWludGV4dCA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiNmJjMWJlZTIyZTQwOWY5NmU5
M2Q3ZTExNzM5MzE3MmFhZTJkOGE1NzFlMDNhYzljOWViNzZmYWM0NWFmOGU1MTMwYzgxYzQ2YTM1
Y2U0MTFlNWZiYzExOTFhMGE1MmVmZjY5ZjI0NDVkZjRmOWIxN2FkMmI0MTdiZTY2YzM3MTAiKTsK
K3ZhciBleHRyYWN0YWJsZSA9IHRydWU7CisKK2RlYnVnKCJJbXBvcnRpbmcgYSByYXcgQUVTIGtl
eSBmcm9tIHN0cmluZyBsaXRlcmFsLi4uIik7CitjcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3
Iiwga2V5RGF0YSwgImFlcy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQi
XSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBrZXkgPSByZXN1bHQ7CisgICAgc2hvdWxk
QmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7CisgICAgc2hvdWxkQmUoImtleS5leHRyYWN0YWJs
ZSIsICJ0cnVlIik7CisgICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIsICInQUVTLUNC
QyciKTsKKyAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMTc2Iik7CisgICAg
c2hvdWxkQmUoImtleS51c2FnZXMiLCAiWydkZWNyeXB0JywgJ2VuY3J5cHQnXSIpOworCisgICAg
ZGVidWcoIlVzaW5nIHRoZSBrZXkgdG8gZW5jcnlwdCBwbGFpbnRleHQuLi4iKTsKKyAgICByZXR1
cm4gY3J5cHRvLnN1YnRsZS5lbmNyeXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtleSwg
W3BsYWludGV4dF0pOworfSkudGhlbih1bmRlZmluZWQsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAg
IGRlYnVnKCJGYWlsZWQsIGFzIGV4cGVjdGVkLiBOb3RlIHRoYXQgdGhlIHNwZWMgZG9lc24ndCBh
cHBlYXIgdG8gY2xlYXJseSBkZWZpbmUgd2hpY2ggc3RlcCBzaG91bGQgZmFpbC4iKTsKKworICAg
IGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXVud3JhcC1m
YWlsdXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVz
LWNiYy11bndyYXAtZmFpbHVyZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWU4MTEyZDgyMDAw
OTllM2E5MjNlNzIyMTA2MDc2ZWQ0NTdmN2I4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy11bndyYXAtZmFpbHVyZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMyBAQAorVGVzdCB1bndyYXBwaW5nIGFuIFJTQSBrZXkgd2l0aCBBRVMt
Q0JDLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworSW1wb3J0aW5nIGFuIHVud3Jh
cHBpbmcga2V5Li4uCitQQVNTIHVud3JhcHBpbmdLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0FFUy1D
QkMnCitVbndyYXBwaW5nIGEga2V5Li4uCitQQVNTIFByb21pc2UgcmVqZWN0ZWQKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtdW53cmFwLWZhaWx1cmUuaHRt
bCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy11bndyYXAtZmFpbHVy
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmY3ZmNmNGZlOWM0ZTRlYjBkMDVhYjE5MDgwOWE3ZmFhY2IwOWQ2
NDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Fl
cy1jYmMtdW53cmFwLWZhaWx1cmUuaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IHVud3JhcHBp
bmcgYW4gUlNBIGtleSB3aXRoIEFFUy1DQkMuIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOwor
Cit2YXIgZXh0cmFjdGFibGUgPSB0cnVlOwordmFyIG5vbkV4dHJhY3RhYmxlID0gZmFsc2U7CisK
K3ZhciB1bndyYXBwaW5nS2V5T2N0ZXRzID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCIyYTAwZTBl
Nzc2ZTk0ZTRkYzg5YmY5NDdjZWJkZWJlMSIpOwordmFyIHdyYXBwZWRLZXkgPSBoZXhTdHJpbmdU
b1VpbnQ4QXJyYXkoImI0OTBkZWRiM2FiYzNmZDU0NWUxNDY1MzhlNmNjM2NhIik7IC8vIEFuIGVt
cHR5IGVuY3J5cHRlZCBKU09OLgorCitkZWJ1ZygiSW1wb3J0aW5nIGFuIHVud3JhcHBpbmcga2V5
Li4uIik7CitjcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3IiwgdW53cmFwcGluZ0tleU9jdGV0
cywgIkFFUy1DQkMiLCBub25FeHRyYWN0YWJsZSwgWyJ1bndyYXBLZXkiXSkudGhlbihmdW5jdGlv
bihyZXN1bHQpIHsKKyAgICB1bndyYXBwaW5nS2V5ID0gcmVzdWx0OworICAgIHNob3VsZEJlKCJ1
bndyYXBwaW5nS2V5LmFsZ29yaXRobS5uYW1lIiwgIidBRVMtQ0JDJyIpOworICAgIHZhciB1bndy
YXBBbGdvcml0aG0gPSB7bmFtZTogIkFFUy1DQkMiLCBpdjogaGV4U3RyaW5nVG9VaW50OEFycmF5
KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIpfTsKKyAgICBkZWJ1ZygiVW53cmFw
cGluZyBhIGtleS4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLnVud3JhcEtleSgiandr
Iiwgd3JhcHBlZEtleSwgdW53cmFwcGluZ0tleSwgdW53cmFwQWxnb3JpdGhtLCBudWxsLCBleHRy
YWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSIsICJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcCIs
ICJ1bndyYXAiXSk7Cit9KS50aGVuKHVuZGVmaW5lZCwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAg
dGVzdFBhc3NlZCgiUHJvbWlzZSByZWplY3RlZCIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7
CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtdW53cmFwLXJzYS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtdW53cmFwLXJzYS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2UwMWMxMTkzNjhiZDU3ZDM1NDM1NmYxMThkNTgyNDBmMGFkMzNk
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVz
LWNiYy11bndyYXAtcnNhLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIwIEBACitUZXN0IHVud3Jh
cHBpbmcgYW4gUlNBIGtleSB3aXRoIEFFUy1DQkMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitJbXBvcnRpbmcgYW4gdW53cmFwcGluZyBrZXkuLi4KK1BBU1MgdW53cmFwcGluZ0tl
eS5hbGdvcml0aG0ubmFtZSBpcyAnQUVTLUNCQycKK1Vud3JhcHBpbmcgYSBrZXkuLi4KK1BBU1Mg
dW53cmFwcGVkS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgS2V5XScKK1BBU1MgdW53cmFwcGVk
S2V5LnR5cGUgaXMgJ3B1YmxpYycKK1BBU1MgdW53cmFwcGVkS2V5LnVzYWdlcyBpcyBbJ3NpZ24n
LCd2ZXJpZnknXQorUEFTUyB1bndyYXBwZWRLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JTQVNTQS1Q
S0NTMS12MV81JworUEFTUyB1bndyYXBwZWRLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGggaXMg
MjA0OAorUEFTUyBCYXNlNjRVUkwuc3RyaW5naWZ5KHVud3JhcHBlZEtleS5hbGdvcml0aG0ucHVi
bGljRXhwb25lbnQpIGlzIHB1YmxpY0tleUpTT04uZQorUEFTUyB1bndyYXBwZWRLZXkuYWxnb3Jp
dGhtLmhhc2gubmFtZSBpcyAnU0hBLTI1NicKK1BBU1MgdW53cmFwcGVkS2V5LmV4dHJhY3RhYmxl
IGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2Jj
LXVud3JhcC1yc2EuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNi
Yy11bndyYXAtcnNhLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGRkNzNhZjNkN2YwNjdiOTA1NmI4ZTQ3ZTcz
YTA4ODZjZDk2ZjEwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJr
aXRTdWJ0bGUvYWVzLWNiYy11bndyYXAtcnNhLmh0bWwKQEAgLTAsMCArMSw1NiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCB1
bndyYXBwaW5nIGFuIFJTQSBrZXkgd2l0aCBBRVMtQ0JDLiIpOworCitqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKK3ZhciBub25FeHRyYWN0YWJsZSA9IGZh
bHNlOworCit2YXIgcHVibGljS2V5SlNPTiA9IHsKKyAgICBrdHk6ICJSU0EiLAorICAgIGFsZzog
IlJTMjU2IiwKKyAgICBuOiAicmNDVUN2N09jMUhWYW0xREloQ3pxa25UaFdhd09wOFFMazhaaXky
cDEwQnlqUUZDYWpvRml5dUFXbC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6SXpjLU1iTFNISUdnV1FH
TzIxbEdpSW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVNc0RoRDZz
MmdWOW13SGtydGtDeHRNV2RCaS03N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5ODli
RnljOHRPT0VJYjB4VVNmUFN6M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5M0Jp
dzY0cXVuM2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3MktVcDAybUpEWmlp
eWlnbHhNTF9pMy1fQ2VlY0N3IiwKKyAgICBlOiAiQVFBQiIsCisgICAgZXh0OiBmYWxzZSwKKyAg
ICB1c2U6ICJzaWciCit9OworCit2YXIgdW53cmFwcGluZ0tleU9jdGV0cyA9IGhleFN0cmluZ1Rv
VWludDhBcnJheSgiMmEwMGUwZTc3NmU5NGU0ZGM4OWJmOTQ3Y2ViZGViZTEiKTsKK3ZhciB3cmFw
cGVkS2V5ID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCIzNTExZjYwMjhkYjA0ZWE5N2U3Y2ZhZDNj
NGNjNjA4MzdiY2VmZjI1Y2I2Yzg4MjkyZmJjYjQ1NDc1NzBhZmRjMzJlNDAwM2ZlNGQ2NWYxZTdk
ZjYwZGMxZmRiM2RmMzZjM2Y1OGFiMjI4ZTMzYWEzMTAwNTg1MmQ0NmQwYzJhZDEzMTg0MzVhMDcx
YmJiNWJiYjA1NjUwZWE2M2Q1NTE2OThiMGMwNDBkZDk1ZWQwZDM3OWI1ZTJlY2NiNTQ1YWU1NjIw
YWNiODA1MTE3NGNkMmFkNjQ3MzI4YWQ5OWRjZDQ2MmZlYzQwNzQ4NzI0ZWIxZTY4ZjIwOWY3Nzlm
YWEyYzM1YjRkNGQxYjY2MDRhNzRlNjJhMTg0NjI0OWVhNjE5Mjk1NGE1YWYxMGM3MWViZmVhNzk5
NDgxNDI0NDFlZDMwN2U5ZjUyZTc5N2E1MWE4MDA3YTZmODdiNTdjNTFmOWU3ZWVmNTRiN2U0YTFm
ODE4YmE2YWMyNWVlNTkzNWMyM2IzMjUzZDZkOWQyMjIyNjJjNzljY2RiNzE0N2Q5YzA3NTI3YzIy
ZmU3YTRhYjkxYWYyMDQ3OWVkZjU5MzBiM2MwNTNjMGEwYjI3MDkyY2ZiNTMyMDM2MzNkMDFkY2Y2
ZTMzM2I1YmU3YzE5MzNjMzIxYzk1M2Y5NjJiOTM0ZWJlZmQ5ZGY4Y2NhNmMwYTI1ZmNkNWZiOTYx
MDU0MzVjNDJkOTkwMjQwNmY4MmJjOGRhYThlYzEyZmE4NWQ5YWZhNjVhZGJmZTNmNjA4MjhlZjY0
YWRhZjQzYWQ4ZTNiMGFmMTA0Y2JmYWZkOTk0MzIzNzMyYmJhMDhmODRkNWNhYzFkMTU3YjI3NjIz
M2RmZmVjYWZlNDc5NDJiODNjODVlYWQ2ZDU4ODZjNmJhZGY1MzRkNGEzMmQzZjU0NWU4MDMyZGQ1
ZTQxOWQ3YmZmM2FjZGUyYzM3YTk2ZmMzNGZkYTg3NDdkODk1MDBiZjlmN2VmNDU4NzNjNmIzYjI3
NDFhYWY3NGZmOTZhMmY5NTAwMjhmMzhlYjYyZjFiZTkzNmZlMGE5OTRlYmZhOTI4MDIxYzBjOTYx
NzJkODQ1ODRlIik7CisKK2RlYnVnKCJJbXBvcnRpbmcgYW4gdW53cmFwcGluZyBrZXkuLi4iKTsK
K2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCB1bndyYXBwaW5nS2V5T2N0ZXRzLCAiQUVT
LUNCQyIsIG5vbkV4dHJhY3RhYmxlLCBbInVud3JhcEtleSJdKS50aGVuKGZ1bmN0aW9uKHJlc3Vs
dCkgeworICAgIHVud3JhcHBpbmdLZXkgPSByZXN1bHQ7CisgICAgc2hvdWxkQmUoInVud3JhcHBp
bmdLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FFUy1DQkMnIik7CisgICAgdmFyIHVud3JhcEFsZ29y
aXRobSA9IHtuYW1lOiAiQUVTLUNCQyIsIGl2OiBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAwMDEw
MjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmIil9OworICAgIGRlYnVnKCJVbndyYXBwaW5nIGEg
a2V5Li4uIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUudW53cmFwS2V5KCJqd2siLCB3cmFw
cGVkS2V5LCB1bndyYXBwaW5nS2V5LCB1bndyYXBBbGdvcml0aG0sIG51bGwsIGV4dHJhY3RhYmxl
LCBbInNpZ24iLCAidmVyaWZ5IiwgImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ3cmFwIiwgInVud3Jh
cCJdKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgdW53cmFwcGVkS2V5ID0gcmVz
dWx0OworCisgICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS50b1N0cmluZygpIiwgIidbb2JqZWN0
IEtleV0nIik7CisgICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS50eXBlIiwgIidwdWJsaWMnIik7
CisgICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS51c2FnZXMiLCAiWydzaWduJywndmVyaWZ5J10i
KTsKKyAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5LmFsZ29yaXRobS5uYW1lIiwgIidSU0FTU0Et
UEtDUzEtdjFfNSciKTsKKyAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5LmFsZ29yaXRobS5tb2R1
bHVzTGVuZ3RoIiwgIjIwNDgiKTsKKyAgICBzaG91bGRCZSgiQmFzZTY0VVJMLnN0cmluZ2lmeSh1
bndyYXBwZWRLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSIsICJwdWJsaWNLZXlKU09OLmUi
KTsKKyAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5LmFsZ29yaXRobS5oYXNoLm5hbWUiLCAiJ1NI
QS0yNTYnIik7CisgICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS5leHRyYWN0YWJsZSIsICJmYWxz
ZSIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1j
YmMtd3JhcC1yc2EtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9hZXMtY2JjLXdyYXAtcnNhLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYTM0ZmRmYTUzM2Ew
NDlmNzA2NjAxYmFmMDgwMzFmM2U0ODY1ZmI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE0IEBACitUZXN0IHdyYXBwaW5nIGFuIFJTQSBrZXkgd2l0aCBBRVMtQ0JDLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworSW1wb3J0aW5nIGEga2V5IHRvIHdyYXAuLi4K
K1BBU1Mga2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScKK0ltcG9ydGlu
ZyBhIGtleSBlbmNyeXB0aW9uIGtleS4uLgorUEFTUyB3cmFwcGluZ0tleS5hbGdvcml0aG0ubmFt
ZSBpcyAnQUVTLUNCQycKK1BBU1Mgd3JhcHBlZEtleS50b1N0cmluZygpIGlzICdbb2JqZWN0IEFy
cmF5QnVmZmVyXScKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1j
YmMtd3JhcC1yc2Etbm9uLWV4dHJhY3RhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy13cmFwLXJzYS1ub24tZXh0cmFjdGFibGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjgyNmE2NDhhNzAzMTQ1NTYyYWUyOWFiYzhlYTQ3OTJiMzQ4NzVm
ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Fl
cy1jYmMtd3JhcC1yc2Etbm9uLWV4dHJhY3RhYmxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1
IEBACitUZXN0IHdyYXBwaW5nIGFuIFJTQSBrZXkgd2l0aCBBRVMtQ0JDLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworSW1wb3J0aW5nIGEga2V5IHRvIHdyYXAuLi4KK1BBU1Mga2V5
LmFsZ29yaXRobS5uYW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScKK0ltcG9ydGluZyBhIGtleSBl
bmNyeXB0aW9uIGtleS4uLgorUEFTUyB3cmFwcGluZ0tleS5hbGdvcml0aG0ubmFtZSBpcyAnQUVT
LUNCQycKK3dyYXBwaW5nIHRoZSBrZXkuLi4KK1BBU1MgUmVqZWN0ZWQKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtd3JhcC1yc2Etbm9uLWV4dHJhY3RhYmxl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtd3JhcC1yc2Et
bm9uLWV4dHJhY3RhYmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmQ1MTE3MzRmNTFjYWVmYmVjOGQyNmFi
ZjRlODE2ZTUwYWFkYmQ3NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93
ZWJraXRTdWJ0bGUvYWVzLWNiYy13cmFwLXJzYS1ub24tZXh0cmFjdGFibGUuaHRtbApAQCAtMCww
ICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCJUZXN0IHdyYXBwaW5nIGFuIFJTQSBrZXkgd2l0aCBBRVMtQ0JDLiIpOworCitq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKK3ZhciBub25F
eHRyYWN0YWJsZSA9IGZhbHNlOworCit2YXIgcHVibGljS2V5SlNPTiA9IHsKKyAgICBrdHk6ICJS
U0EiLAorICAgIGFsZzogIlJTMjU2IiwKKyAgICBuOiAicmNDVUN2N09jMUhWYW0xREloQ3pxa25U
aFdhd09wOFFMazhaaXkycDEwQnlqUUZDYWpvRml5dUFXbC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6
SXpjLU1iTFNISUdnV1FHTzIxbEdpSW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91N1hTU0xE
b1JuUjBRRzVNc0RoRDZzMmdWOW13SGtydGtDeHRNV2RCaS03N2FzOHdHbWxOUmxkY09TZ1pETEs4
VW5DU2dBMU9ndVo5ODliRnljOHRPT0VJYjB4VVNmUFN6M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4
NTdPU2N5V2JHeUV5M0JpdzY0cXVuM2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtOczZSLU15
eXE3MktVcDAybUpEWmlpeWlnbHhNTF9pMy1fQ2VlY0N3IiwKKyAgICBlOiAiQVFBQiIsCisgICAg
ZXh0OiBmYWxzZSwKKyAgICB1c2U6ICJzaWciCit9OworCit2YXIgandrS2V5QXNBcnJheUJ1ZmZl
ciA9IGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KHB1YmxpY0tleUpTT04pKTsKK3Zh
ciB3cmFwcGluZ0tleU9jdGV0cyA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiMmEwMGUwZTc3NmU5
NGU0ZGM4OWJmOTQ3Y2ViZGViZTEiKTsKKworZGVidWcoIkltcG9ydGluZyBhIGtleSB0byB3cmFw
Li4uIik7CitjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgandrS2V5QXNBcnJheUJ1ZmZl
ciwgbnVsbCwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSkudGhlbihmdW5jdGlvbihy
ZXN1bHQpIHsKKyAgICBrZXkgPSByZXN1bHQ7CisgICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0u
bmFtZSIsICInUlNBU1NBLVBLQ1MxLXYxXzUnIik7CisgICAgZGVidWcoIkltcG9ydGluZyBhIGtl
eSBlbmNyeXB0aW9uIGtleS4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtl
eSgicmF3Iiwgd3JhcHBpbmdLZXlPY3RldHMsICJBRVMtQ0JDIiwgbm9uRXh0cmFjdGFibGUsIFsi
d3JhcEtleSJdKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgd3JhcHBpbmdLZXkg
PSByZXN1bHQ7CisgICAgc2hvdWxkQmUoIndyYXBwaW5nS2V5LmFsZ29yaXRobS5uYW1lIiwgIidB
RVMtQ0JDJyIpOworICAgIHZhciB3cmFwQWxnb3JpdGhtID0ge25hbWU6ICJBRVMtQ0JDIiwgaXY6
IGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYi
KX07CisgICAgZGVidWcoIndyYXBwaW5nIHRoZSBrZXkuLi4iKTsKKyAgICByZXR1cm4gY3J5cHRv
LnN1YnRsZS53cmFwS2V5KCJqd2siLCBrZXksIHdyYXBwaW5nS2V5LCB3cmFwQWxnb3JpdGhtKTsK
K30pLnRoZW4odW5kZWZpbmVkLCBmdW5jdGlvbigpIHsKKyAgICB0ZXN0UGFzc2VkKCJSZWplY3Rl
ZCIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1j
YmMtd3JhcC1yc2EuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNi
Yy13cmFwLXJzYS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3MWY3OGE2ODBjZjdlNzUwYjM5ZjBlY2QyNGNi
MjY1NDhiOGYzZWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL2Flcy1jYmMtd3JhcC1yc2EuaHRtbApAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IHdyYXBw
aW5nIGFuIFJTQSBrZXkgd2l0aCBBRVMtQ0JDLiIpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKK3ZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOwor
Cit2YXIgcHVibGljS2V5SlNPTiA9IHsKKyAgICBrdHk6ICJSU0EiLAorICAgIGFsZzogIlJTMjU2
IiwKKyAgICBuOiAicmNDVUN2N09jMUhWYW0xREloQ3pxa25UaFdhd09wOFFMazhaaXkycDEwQnlq
UUZDYWpvRml5dUFXbC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6SXpjLU1iTFNISUdnV1FHTzIxbEdp
SW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVNc0RoRDZzMmdWOW13
SGtydGtDeHRNV2RCaS03N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5ODliRnljOHRP
T0VJYjB4VVNmUFN6M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5M0JpdzY0cXVu
M2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3MktVcDAybUpEWmlpeWlnbHhN
TF9pMy1fQ2VlY0N3IiwKKyAgICBlOiAiQVFBQiIsCisgICAgZXh0OiB0cnVlLAorICAgIHVzZTog
InNpZyIKK307CisKK3ZhciBqd2tLZXlBc0FycmF5QnVmZmVyID0gYXNjaWlUb1VpbnQ4QXJyYXko
SlNPTi5zdHJpbmdpZnkocHVibGljS2V5SlNPTikpOwordmFyIHdyYXBwaW5nS2V5T2N0ZXRzID0g
aGV4U3RyaW5nVG9VaW50OEFycmF5KCIyYTAwZTBlNzc2ZTk0ZTRkYzg5YmY5NDdjZWJkZWJlMSIp
OworCitkZWJ1ZygiSW1wb3J0aW5nIGEga2V5IHRvIHdyYXAuLi4iKTsKK2NyeXB0by5zdWJ0bGUu
aW1wb3J0S2V5KCJqd2siLCBqd2tLZXlBc0FycmF5QnVmZmVyLCBudWxsLCBleHRyYWN0YWJsZSwg
WyJzaWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGtleSA9IHJl
c3VsdDsKKyAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidSU0FTU0EtUEtDUzEt
djFfNSciKTsKKyAgICBkZWJ1ZygiSW1wb3J0aW5nIGEga2V5IGVuY3J5cHRpb24ga2V5Li4uIik7
CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCB3cmFwcGluZ0tleU9j
dGV0cywgIkFFUy1DQkMiLCBub25FeHRyYWN0YWJsZSwgWyJ3cmFwS2V5Il0pOworfSkudGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKKyAgICB3cmFwcGluZ0tleSA9IHJlc3VsdDsKKyAgICBzaG91bGRC
ZSgid3JhcHBpbmdLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FFUy1DQkMnIik7CisgICAgdmFyIHdy
YXBBbGdvcml0aG0gPSB7bmFtZTogIkFFUy1DQkMiLCBpdjogaGV4U3RyaW5nVG9VaW50OEFycmF5
KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIpfTsKKyAgICByZXR1cm4gY3J5cHRv
LnN1YnRsZS53cmFwS2V5KCJqd2siLCBrZXksIHdyYXBwaW5nS2V5LCB3cmFwQWxnb3JpdGhtKTsK
K30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgd3JhcHBlZEtleSA9IHJlc3VsdDsKKyAg
ICBzaG91bGRCZSgid3JhcHBlZEtleS50b1N0cmluZygpIiwgIidbb2JqZWN0IEFycmF5QnVmZmVy
XSciKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworCis8L3NjcmlwdD4KKworPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMt
Y2JjLXdyb25nLWtleS1jbGFzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL2Flcy1jYmMtd3Jvbmcta2V5LWNsYXNzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kNTRjMGY5MThjNzE1ODU0MDc0MDg0NDA4NDcyZTZiNGRlNzFlNTUwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXdyb25nLWtleS1j
bGFzcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdCBjYWxsaW5nIEFFUy1DQkMg
ZW5jcnlwdCB3aXRoIGEgSE1BQyBrZXkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitJbXBvcnRpbmcgYSByYXcgSE1BQyBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJhbC4uLgorVXNpbmcg
dGhlIGtleSB0byBlbmNyeXB0IHBsYWludGV4dC4uLgorUEFTUyBjcnlwdG8uc3VidGxlLmVuY3J5
cHQoe25hbWU6ICJhZXMtY2JjIiwgaXY6IGl2fSwga2V5LCBwbGFpbnRleHQpIHRocmV3IGV4Y2Vw
dGlvbiBOb3RTdXBwb3J0ZWRFcnJvciAoRE9NIEV4Y2VwdGlvbiA5KTogVGhlIG9wZXJhdGlvbiBp
cyBub3Qgc3VwcG9ydGVkLi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L2Flcy1jYmMtd3Jvbmcta2V5LWNsYXNzLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL2Flcy1jYmMtd3Jvbmcta2V5LWNsYXNzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzI0YjNlNzJl
ZWVjNmU5ZmU2Njk1ZDQ1ZDk1NDBlNWRmNDFkOTM3NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy13cm9uZy1rZXktY2xhc3MuaHRtbApA
QCAtMCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCJUZXN0IGNhbGxpbmcgQUVTLUNCQyBlbmNyeXB0IHdpdGggYSBITUFD
IGtleS4iKTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBpdiA9IGhleFN0cmluZ1Rv
VWludDhBcnJheSgiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYiKTsKK3ZhciBwbGFp
bnRleHQgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjZiYzFiZWUyMmU0MDlmOTZlOTNkN2UxMTcz
OTMxNzJhYWUyZDhhNTcxZTAzYWM5YzllYjc2ZmFjNDVhZjhlNTEzMGM4MWM0NmEzNWNlNDExZTVm
YmMxMTkxYTBhNTJlZmY2OWYyNDQ1ZGY0ZjliMTdhZDJiNDE3YmU2NmMzNzEwIik7Cit2YXIgaG1h
Y0tleSA9IGFzY2lpVG9VaW50OEFycmF5KCdhJyk7Cit2YXIgZXh0cmFjdGFibGUgPSB0cnVlOwor
CitkZWJ1ZygiSW1wb3J0aW5nIGEgcmF3IEhNQUMga2V5IGZyb20gc3RyaW5nIGxpdGVyYWwuLi4i
KTsKK2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBobWFjS2V5LCB7bmFtZTogJ2htYWMn
LCBoYXNoOiB7bmFtZTogJ3NoYS0xJ319LCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSIs
ICJlbmNyeXB0IiwgImRlY3J5cHQiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBrZXkg
PSByZXN1bHQ7CisgICAgZGVidWcoIlVzaW5nIHRoZSBrZXkgdG8gZW5jcnlwdCBwbGFpbnRleHQu
Li4iKTsKKyAgICBzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5lbmNyeXB0KHtuYW1lOiAiYWVz
LWNiYyIsIGl2OiBpdn0sIGtleSwgcGxhaW50ZXh0KScpCisKKyAgICBmaW5pc2hKU1Rlc3QoKTsK
K30pOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtZXhwb3J0LWtleS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODNlZDExMzM3ZDA5MjZjZjRiYmE4MDE4ODg2ZmFmMzYyMDZhOWMwNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWV4cG9y
dC1rZXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzggQEAKK1Rlc3QgZXhwb3J0aW5nIGFuIEFF
UyBrZXkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGNyeXB0by5zdWJ0
bGUuZXhwb3J0S2V5KCJyYXciKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdo
IGFyZ3VtZW50cy4KK1BBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoInJhdyIsIG51bGwpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNyeXB0by5zdWJ0bGUu
ZXhwb3J0S2V5KCJyYXciLCB1bmRlZmluZWQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5
cGUgZXJyb3IuCitQQVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJyYXciLCB7fSkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY3J5cHRvLnN1YnRsZS5leHBv
cnRLZXkoInJhdyIsIDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCisK
K0ltcG9ydGluZyBhIEpXSyBrZXkuLi4KK1BBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkobnVs
bCwga2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQuCitQ
QVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KHVuZGVmaW5lZCwga2V5KSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQuCitQQVNTIGNyeXB0by5zdWJ0bGUuZXhw
b3J0S2V5KHt9LCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVua25vd24ga2V5IGZv
cm1hdC4KK1BBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoIiIsIGtleSkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0LgorUEFTUyBjcnlwdG8uc3VidGxlLmV4
cG9ydEtleSgiZm9vYmFyIiwga2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3du
IGtleSBmb3JtYXQuCisKK0V4cG9ydGluZyB0aGUga2V5IGFzIHJhdyBkYXRhLi4uCitQQVNTIGJ5
dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZXhwb3J0ZWREYXRhKSkgaXMgJzhlNzNiMGY3
ZGEwZTY0NTJjODEwZjMyYjgwOTA3OWU1NjJmOGVhZDI1MjJjNmI3YicKK0V4cG9ydGluZyB0aGUg
a2V5IGFzIEpXSy4uLgorUEFTUyBleHBvcnRlZEpXSy5rdHkgaXMgJ29jdCcKK1BBU1MgZXhwb3J0
ZWRKV0suayBpcyAnam5Pdzk5b09aRkxJRVBNcmdKQjU1V0w0NnRKU0xHdDcnCitQQVNTIGV4cG9y
dGVkSldLLmFsZyBpcyAnQTE5MkNCQycKK1BBU1MgZXhwb3J0ZWRKV0suZXh0IGlzIHRydWUKK1BB
U1MgZXhwb3J0ZWRKV0sudXNlIGlzIHVuZGVmaW5lZAorUEFTUyBleHBvcnRlZEpXSy5rZXlfb3Bz
IGlzIFsnZW5jcnlwdCcsICdkZWNyeXB0JywgJ3dyYXBLZXknLCAndW53cmFwS2V5J10KKworSW1w
b3J0aW5nIGEga2V5IHRoYXQncyBub3QgZXh0cmFjdGFibGUuLi4KKworVHJ5aW5nIHRvIGV4cG9y
dCBhcyByYXcuLi4KK1BBU1MgUmVqZWN0ZWQsIGFzIGV4cGVjdGVkCitUcnlpbmcgdG8gZXhwb3J0
IGFzIGp3ay4uLgorUEFTUyBSZWplY3RlZCwgYXMgZXhwZWN0ZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1leHBvcnQta2V5Lmh0bWwgYi9MYXlvdXRUZXN0cy9j
cnlwdG8vd2Via2l0U3VidGxlL2Flcy1leHBvcnQta2V5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzlkOTYx
NmM3NjcyMTg5YmRiNmI1NjZjMDY4ZTliYTRmN2YyNDc2NgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWV4cG9ydC1rZXkuaHRtbApAQCAtMCww
ICsxLDg2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCJUZXN0IGV4cG9ydGluZyBhbiBBRVMga2V5LiIpOworCitqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKK3ZhciBub25FeHRyYWN0YWJsZSA9
IGZhbHNlOworCit2YXIgandrS2V5ID0geworICAgIGt0eTogIm9jdCIsCisgICAgazogImpuT3c5
OW9PWkZMSUVQTXJnSkI1NVdMNDZ0SlNMR3Q3IgorfTsKKwordmFyIGp3a0tleUFzQXJyYXlCdWZm
ZXIgPSBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShqd2tLZXkpKTsKKworc2hvdWxk
VGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJyYXciKScpOworc2hvdWxkVGhyb3coJ2Ny
eXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJyYXciLCBudWxsKScpOworc2hvdWxkVGhyb3coJ2NyeXB0
by5zdWJ0bGUuZXhwb3J0S2V5KCJyYXciLCB1bmRlZmluZWQpJyk7CitzaG91bGRUaHJvdygnY3J5
cHRvLnN1YnRsZS5leHBvcnRLZXkoInJhdyIsIHt9KScpOworc2hvdWxkVGhyb3coJ2NyeXB0by5z
dWJ0bGUuZXhwb3J0S2V5KCJyYXciLCAxKScpOworCitkZWJ1ZygiXG5JbXBvcnRpbmcgYSBKV0sg
a2V5Li4uIik7CitjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgandrS2V5QXNBcnJheUJ1
ZmZlciwgIkFFUy1DQkMiLCBleHRyYWN0YWJsZSwgWydlbmNyeXB0JywgJ2RlY3J5cHQnLCAnd3Jh
cEtleScsICd1bndyYXBLZXknXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBrZXkgPSBy
ZXN1bHQ7CisKKyAgICBzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkobnVsbCwg
a2V5KScpOworICAgIHNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmV4cG9ydEtleSh1bmRlZmlu
ZWQsIGtleSknKTsKKyAgICBzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoe30s
IGtleSknKTsKKyAgICBzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoIiIsIGtl
eSknKTsKKyAgICBzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoImZvb2JhciIs
IGtleSknKTsKKworICAgIGRlYnVnKCJcbkV4cG9ydGluZyB0aGUga2V5IGFzIHJhdyBkYXRhLi4u
Iik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJyYXciLCBrZXkpOworfSku
dGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBleHBvcnRlZERhdGEgPSByZXN1bHQ7CisgICAg
c2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZXhwb3J0ZWREYXRhKSki
LCAiJzhlNzNiMGY3ZGEwZTY0NTJjODEwZjMyYjgwOTA3OWU1NjJmOGVhZDI1MjJjNmI3YiciKTsK
KworICAgIGRlYnVnKCJFeHBvcnRpbmcgdGhlIGtleSBhcyBKV0suLi4iKTsKKyAgICByZXR1cm4g
Y3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoImp3ayIsIGtleSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJl
c3VsdCkgeworICAgIGV4cG9ydGVkSldLID0gSlNPTi5wYXJzZShieXRlc1RvQVNDSUlTdHJpbmco
cmVzdWx0KSk7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmt0eSIsICInb2N0JyIpOworICAg
IHNob3VsZEJlKCJleHBvcnRlZEpXSy5rIiwgIidqbk93OTlvT1pGTElFUE1yZ0pCNTVXTDQ2dEpT
TEd0NyciKTsKKyAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suYWxnIiwgIidBMTkyQ0JDJyIpOwor
ICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5leHQiLCAidHJ1ZSIpOworICAgIHNob3VsZEJlKCJl
eHBvcnRlZEpXSy51c2UiLCAidW5kZWZpbmVkIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldL
LmtleV9vcHMiLCAiWydlbmNyeXB0JywgJ2RlY3J5cHQnLCAnd3JhcEtleScsICd1bndyYXBLZXkn
XSIpOworCisgICAgZGVidWcoIlxuSW1wb3J0aW5nIGEga2V5IHRoYXQncyBub3QgZXh0cmFjdGFi
bGUuLi4iKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a0tl
eUFzQXJyYXlCdWZmZXIsICJBRVMtQ0JDIiwgbm9uRXh0cmFjdGFibGUsIFsnZW5jcnlwdCcsICdk
ZWNyeXB0JywgJ3dyYXBLZXknLCAndW53cmFwS2V5J10pCit9KS50aGVuKGZ1bmN0aW9uKHJlc3Vs
dCkgeworICAgIGtleSA9IHJlc3VsdDsKKworICAgIGRlYnVnKCJcblRyeWluZyB0byBleHBvcnQg
YXMgcmF3Li4uIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJyYXciLCBr
ZXkpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICB0ZXN0RmFpbGVkKCJQcm9taXNl
IHdhc24ndCByZWplY3RlZCIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSwgZnVuY3Rpb24oKSB7
CisgICAgdGVzdFBhc3NlZCgiUmVqZWN0ZWQsIGFzIGV4cGVjdGVkIik7CisKKyAgICBkZWJ1Zygi
VHJ5aW5nIHRvIGV4cG9ydCBhcyBqd2suLi4iKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5l
eHBvcnRLZXkoImp3ayIsIGtleSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHRl
c3RGYWlsZWQoIlByb21pc2Ugd2Fzbid0IHJlamVjdGVkIik7CisgICAgZmluaXNoSlNUZXN0KCk7
Cit9LCBmdW5jdGlvbigpIHsKKyAgICB0ZXN0UGFzc2VkKCJSZWplY3RlZCwgYXMgZXhwZWN0ZWQi
KTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMta3ct
a2V5LW1hbmlwdWxhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL2Flcy1rdy1rZXktbWFuaXB1bGF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
Y2ViZjMwZDI3MTk0Y2IzYmUwYTU4NThiYTQyYmFlNzExZDczZDJkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMta3cta2V5LW1hbmlwdWxhdGlv
bi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNSBAQAorVGVzdCBnZW5lcmF0aW5nLCBpbXBvcnRp
bmcgYW5kIGV4cG9ydGluZyBrZXlzIGZvciBBRVMtS1cuIFRlc3QgdGhhdCB0aGV5IGNhbid0IGJl
IHVzZWQgd2l0aCBhbm90aGVyIGFsZ29yaXRobS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK0dlbmVyYXRpbmcgYSBrZXkuLi4KK1BBU1Mga2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmpl
Y3QgS2V5XScKK1BBU1Mga2V5LnR5cGUgaXMgJ3NlY3JldCcKK1BBU1Mga2V5LmFsZ29yaXRobS5u
YW1lIGlzICdBRVMtS1cnCitQQVNTIGtleS5hbGdvcml0aG0ubGVuZ3RoIGlzIDI1NgorCitUZXN0
aW5nIHRoYXQgdGhlIGtleSBjYW4ndCBiZSB1c2VkIHdpdGggQUVTLUNCQy4uLgorUEFTUyBjcnlw
dG8uc3VidGxlLmVuY3J5cHQoe25hbWU6ICJhZXMtY2JjIiwgaXY6IGl2fSwga2V5LCBoZXhTdHJp
bmdUb1VpbnQ4QXJyYXkoIjAwIikpIHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvciAo
RE9NIEV4Y2VwdGlvbiA5KTogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KKworRXhw
b3J0aW5nIHRoZSBrZXkgdG8gcmF3Li4uCitQQVNTIGV4cG9ydGVkS2V5LnRvU3RyaW5nKCkgaXMg
J1tvYmplY3QgQXJyYXlCdWZmZXJdJworSW1wb3J0aW5nIGl0IGJhY2suLi4KK1BBU1MgaW1wb3J0
ZWRLZXkudG9TdHJpbmcoKSBpcyAnW29iamVjdCBLZXldJworUEFTUyBpbXBvcnRlZEtleS50eXBl
IGlzICdzZWNyZXQnCitQQVNTIGltcG9ydGVkS2V5LmFsZ29yaXRobS5uYW1lIGlzICdBRVMtS1cn
CitQQVNTIGltcG9ydGVkS2V5LmFsZ29yaXRobS5sZW5ndGggaXMgMjU2CitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMta3cta2V5LW1hbmlwdWxhdGlvbi5odG1sIGIv
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMta3cta2V5LW1hbmlwdWxhdGlvbi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjExYzBlY2I1MmE2ODE3YTg2NDMwODQxZTFiNGY2MjAxOTZkZmY1MTcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1r
dy1rZXktbWFuaXB1bGF0aW9uLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCBnZW5lcmF0aW5n
LCBpbXBvcnRpbmcgYW5kIGV4cG9ydGluZyBrZXlzIGZvciBBRVMtS1cuIFRlc3QgdGhhdCB0aGV5
IGNhbid0IGJlIHVzZWQgd2l0aCBhbm90aGVyIGFsZ29yaXRobS4iKTsKKworanNUZXN0SXNBc3lu
YyA9IHRydWU7CisKK3ZhciBleHRyYWN0YWJsZSA9IHRydWU7CisKK2RlYnVnKCJHZW5lcmF0aW5n
IGEga2V5Li4uIik7CitjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiYWVzLWt3Iiwg
bGVuZ3RoOiAyNTZ9LCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtl
eSIsICJ1bndyYXBLZXkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBrZXkgPSByZXN1
bHQ7CisgICAgc2hvdWxkQmUoImtleS50b1N0cmluZygpIiwgIidbb2JqZWN0IEtleV0nIik7Cisg
ICAgc2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7CisgICAgc2hvdWxkQmUoImtleS5h
bGdvcml0aG0ubmFtZSIsICInQUVTLUtXJyIpOworICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGht
Lmxlbmd0aCIsICIyNTYiKTsKKworICAgIGRlYnVnKCJcblRlc3RpbmcgdGhhdCB0aGUga2V5IGNh
bid0IGJlIHVzZWQgd2l0aCBBRVMtQ0JDLi4uIik7CisgICAgaXYgPSBoZXhTdHJpbmdUb1VpbnQ4
QXJyYXkoIjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmIik7CisgICAgc2hvdWxkVGhy
b3coJ2NyeXB0by5zdWJ0bGUuZW5jcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXks
IGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAiKSknKTsKKworICAgIGRlYnVnKCJcbkV4cG9ydGlu
ZyB0aGUga2V5IHRvIHJhdy4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmV4cG9ydEtl
eSgncmF3Jywga2V5KTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgZXhwb3J0ZWRL
ZXkgPSByZXN1bHQ7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkS2V5LnRvU3RyaW5nKCkiLCAiJ1tv
YmplY3QgQXJyYXlCdWZmZXJdJyIpOworICAgIGRlYnVnKCJJbXBvcnRpbmcgaXQgYmFjay4uLiIp
OworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgncmF3JywgZXhwb3J0ZWRLZXks
ICJhZXMta3ciLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSIs
ICJ1bndyYXBLZXkiXSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGltcG9ydGVk
S2V5ID0gcmVzdWx0OworCisgICAgc2hvdWxkQmUoImltcG9ydGVkS2V5LnRvU3RyaW5nKCkiLCAi
J1tvYmplY3QgS2V5XSciKTsKKyAgICBzaG91bGRCZSgiaW1wb3J0ZWRLZXkudHlwZSIsICInc2Vj
cmV0JyIpOworICAgIHNob3VsZEJlKCJpbXBvcnRlZEtleS5hbGdvcml0aG0ubmFtZSIsICInQUVT
LUtXJyIpOworICAgIHNob3VsZEJlKCJpbXBvcnRlZEtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjI1
NiIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1r
dy13cmFwLXVud3JhcC1hZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9hZXMta3ctd3JhcC11bndyYXAtYWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
NGVlMjA1ZWQ1NTg5MmJiYzVhYTlmOGIxM2VkMDE3NDFiM2Q5NGI2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMta3ctd3JhcC11bndyYXAtYWVz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIyIEBACitUZXN0IHdyYXBwaW5nIGFuZCB1bndyYXBw
aW5nIGtleXMgd2l0aCBBRVMtS1cuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitJ
bXBvcnRpbmcga2V5IGVuY3J5cHRpb24ga2V5Li4uCitJbXBvcnRpbmcgYSBrZXkgdG8gYmUgd3Jh
cHBlZC4uLgorV3JhcHBpbmcgaXQuLi4KK1BBU1MgYnl0ZXNUb0hleFN0cmluZyh3cmFwcGVkS2V5
KSBpcyAnMWZhNjhiMGE4MTEyYjQ0N2FlZjM0YmQ4ZmI1YTdiODI5ZDNlODYyMzcxZDJjZmU1Jwor
VW53cmFwcGluZyBpdC4uLgorUEFTUyB1bndyYXBwZWRLZXkudG9TdHJpbmcoKSBpcyAnW29iamVj
dCBLZXldJworUEFTUyB1bndyYXBwZWRLZXkudHlwZSBpcyAnc2VjcmV0JworUEFTUyB1bndyYXBw
ZWRLZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQorUEFTUyB1bndyYXBwZWRLZXkuYWxnb3JpdGhtLm5h
bWUgaXMgJ0FFUy1DQkMnCitQQVNTIHVud3JhcHBlZEtleS5hbGdvcml0aG0ubGVuZ3RoIGlzIDEy
OAorUEFTUyB1bndyYXBwZWRLZXkudXNhZ2VzIGlzIFsnZGVjcnlwdCcsICdlbmNyeXB0JywgJ3Vu
d3JhcEtleScsICd3cmFwS2V5J10KK0V4cG9ydGluZyBpdC4uLgorUEFTUyBieXRlc1RvSGV4U3Ry
aW5nKHVud3JhcHBlZEtleURhdGEpIGlzIGJ5dGVzVG9IZXhTdHJpbmcoa2V5RGF0YSkKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1rdy13cmFwLXVud3JhcC1hZXMu
aHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWt3LXdyYXAtdW53cmFw
LWFlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjN2VlMmY1ODgyMDM2YWVkZWZjOWNmMzI4ODQ3M2EwMGU4
NDkzZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L2Flcy1rdy13cmFwLXVud3JhcC1hZXMuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IHdyYXBw
aW5nIGFuZCB1bndyYXBwaW5nIGtleXMgd2l0aCBBRVMtS1cuIik7CisKK2pzVGVzdElzQXN5bmMg
PSB0cnVlOworCit2YXIga2VrRGF0YSA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAwMTAyMDMw
NDA1MDYwNzA4MDkwQTBCMEMwRDBFMEYiKTsKK3ZhciBrZXlEYXRhID0gaGV4U3RyaW5nVG9VaW50
OEFycmF5KCIwMDExMjIzMzQ0NTU2Njc3ODg5OUFBQkJDQ0RERUVGRiIpOwordmFyIGV4dHJhY3Rh
YmxlID0gdHJ1ZTsKKworZGVidWcoIkltcG9ydGluZyBrZXkgZW5jcnlwdGlvbiBrZXkuLi4iKTsK
K2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBrZWtEYXRhLCAiYWVzLWt3IiwgZXh0cmFj
dGFibGUsIFsid3JhcEtleSIsICJ1bndyYXBLZXkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsK
KyAgICBrZWsgPSByZXN1bHQ7CisKKyAgICBkZWJ1ZygiSW1wb3J0aW5nIGEga2V5IHRvIGJlIHdy
YXBwZWQuLi4iKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGtl
eURhdGEsICJhZXMtY2JjIiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0IiwgIndy
YXBLZXkiLCAidW53cmFwS2V5Il0pOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBr
ZXkgPSByZXN1bHQ7CisKKyAgICBkZWJ1ZygiV3JhcHBpbmcgaXQuLi4iKTsKKyAgICByZXR1cm4g
Y3J5cHRvLnN1YnRsZS53cmFwS2V5KCJyYXciLCBrZXksIGtlaywgImFlcy1rdyIpOworfSkudGhl
bihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICB3cmFwcGVkS2V5ID0gcmVzdWx0OworICAgIHNob3Vs
ZEJlKCJieXRlc1RvSGV4U3RyaW5nKHdyYXBwZWRLZXkpIiwgIicxZmE2OGIwYTgxMTJiNDQ3YWVm
MzRiZDhmYjVhN2I4MjlkM2U4NjIzNzFkMmNmZTUnIik7IC8vIFJlc3VsdCBmcm9tIFJGQyAzMzk0
LgorCisgICAgZGVidWcoIlVud3JhcHBpbmcgaXQuLi4iKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1
YnRsZS51bndyYXBLZXkoInJhdyIsIHdyYXBwZWRLZXksIGtlaywgImFlcy1rdyIsICJhZXMtY2Jj
IiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0IiwgIndyYXBLZXkiLCAidW53cmFw
S2V5Il0pOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICB1bndyYXBwZWRLZXkgPSBy
ZXN1bHQ7CisgICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS50b1N0cmluZygpIiwgIidbb2JqZWN0
IEtleV0nIik7CisgICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS50eXBlIiwgIidzZWNyZXQnIik7
CisgICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7CisgICAg
c2hvdWxkQmUoInVud3JhcHBlZEtleS5hbGdvcml0aG0ubmFtZSIsICInQUVTLUNCQyciKTsKKyAg
ICBzaG91bGRCZSgidW53cmFwcGVkS2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMTI4Iik7CisgICAg
c2hvdWxkQmUoInVud3JhcHBlZEtleS51c2FnZXMiLCAiWydkZWNyeXB0JywgJ2VuY3J5cHQnLCAn
dW53cmFwS2V5JywgJ3dyYXBLZXknXSIpOworCisgICAgZGVidWcoIkV4cG9ydGluZyBpdC4uLiIp
OworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgicmF3IiwgdW53cmFwcGVkS2V5
KTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgdW53cmFwcGVkS2V5RGF0YSA9IHJl
c3VsdDsKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyh1bndyYXBwZWRLZXlEYXRhKSIs
ICJieXRlc1RvSGV4U3RyaW5nKGtleURhdGEpIik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30p
OworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLXBvc3RNZXNzYWdlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLXBvc3RNZXNzYWdlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mMGQwNTliZGNmZTMwOGRiMDMwYzE2YjRlMTBjMTU5NjQ3ZjQ1ZjNjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtcG9zdE1l
c3NhZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3Qgc2VuZGluZyBjcnlwdG8g
a2V5cyB2aWEgcG9zdE1lc3NhZ2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIGtleS50eXBlIGlzICdzZWNyZXQnCitQQVNTIGtleS5leHRyYWN0YWJsZSBpcyB0cnVlCitQ
QVNTIGtleS5hbGdvcml0aG0ubmFtZSBpcyAnQUVTLUNCQycKK1BBU1Mga2V5LmFsZ29yaXRobS5s
ZW5ndGggaXMgMTI4CitQQVNTIGtleS51c2FnZXMgaXMgWyJkZWNyeXB0IiwgImVuY3J5cHQiLCAi
c2lnbiIsICJ2ZXJpZnkiXQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUv
YWVzLXBvc3RNZXNzYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Fl
cy1wb3N0TWVzc2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzMDhmODk5MGRjYjY5YzEwMjY1MTFkNzdl
NjQ0NjQ5NTExYTQzYTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL2Flcy1wb3N0TWVzc2FnZS5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0PgorCitkZXNjcmlwdGlvbigiVGVzdCBzZW5kaW5nIGNyeXB0byBrZXlzIHZpYSBwb3N0TWVz
c2FnZS4iKTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3dpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24oZXZ0KSB7CisgICAga2V5ID0gZXZ0LmRhdGE7CisgICAg
c2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7CisgICAgc2hvdWxkQmUoImtleS5leHRy
YWN0YWJsZSIsICJ0cnVlIik7CisgICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIsICIn
QUVTLUNCQyciKTsKKyAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMTI4Iik7
CisgICAgc2hvdWxkQmUoImtleS51c2FnZXMiLCAnWyJkZWNyeXB0IiwgImVuY3J5cHQiLCAic2ln
biIsICJ2ZXJpZnkiXScpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9LCBmYWxzZSk7CisKK2lt
cG9ydFRlc3RLZXlzKCkudGhlbihmdW5jdGlvbihrZXlzKSB7CisgICAgcG9zdE1lc3NhZ2Uoa2V5
cy5hZXNDYmMsICIqIik7Cit9KTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hcmd1bWVudC1jb252ZXJzaW9u
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYXJndW1lbnQt
Y29udmVyc2lvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDg3NzFiMjdhZjg5NjMwZTA4OGM2
OGY0NmNjNzdiNzczNWEwZmI4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0
by93ZWJraXRTdWJ0bGUvYXJndW1lbnQtY29udmVyc2lvbi1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzOCBAQAorVGVzdCBjcnlwdG8uc3VidGxlIGFyZ3VtZW50IGNvbnZlcnNpb24KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKKworUGFzc2luZyBhbGdvcml0aG0gbmFtZSBhcyBhIHN0
cmluZyBvYmplY3QuLi4KK1BBU1MgLi4uc3VjY2VlZGVkCisKK1Bhc3NpbmcgYWxnb3JpdGhtIG5h
bWUgYXMgYSBzdHJpbmcgb2JqZWN0IGluIGEgZGljdGlvbmFyeS4uLgorUEFTUyAuLi5zdWNjZWVk
ZWQKKworUGFzc2luZyBhbGdvcml0aG0gbmFtZSBhcyBhbiBvYmplY3Qgd2l0aCB0b1N0cmluZwor
UEFTUyAuLi5zdWNjZWVkZWQKKworUGFzc2luZyBpbnZhbGlkIGRhdGEgdG8gZGlnZXN0KCkKK1BB
U1MgY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9KSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kaWdl
c3Qoe25hbWU6ICdzaGEtMSd9LCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBPbmx5
IEFycmF5QnVmZmVyIGFuZCBBcnJheUJ1ZmZlclZpZXcgb2JqZWN0cyBjYW4gYmUgcGFzc2VkIGFz
IENyeXB0b09wZXJhdGlvbkRhdGEuCitQQVNTIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAn
c2hhLTEnfSwgMTApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE9ubHkgQXJyYXlCdWZmZXIg
YW5kIEFycmF5QnVmZmVyVmlldyBvYmplY3RzIGNhbiBiZSBwYXNzZWQgYXMgQ3J5cHRvT3BlcmF0
aW9uRGF0YS4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCBbMTBd
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBPbmx5IEFycmF5QnVmZmVyIGFuZCBBcnJheUJ1
ZmZlclZpZXcgb2JqZWN0cyBjYW4gYmUgcGFzc2VkIGFzIENyeXB0b09wZXJhdGlvbkRhdGEuCitQ
QVNTIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTEnfSwgW25ldyBVaW50OEFycmF5
KFswXSldKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBPbmx5IEFycmF5QnVmZmVyIGFuZCBB
cnJheUJ1ZmZlclZpZXcgb2JqZWN0cyBjYW4gYmUgcGFzc2VkIGFzIENyeXB0b09wZXJhdGlvbkRh
dGEuCisKK1Bhc3NpbmcgaW52YWxpZCBhbGdvcml0aG1JZGVudGlmaWVycyB0byBkaWdlc3QoKQor
UEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7IHRvU3RyaW5nOmZ1bmN0aW9uKCkgeyByZXR1cm4g
J3NoYS0xJyB9IH0sIGRhdGEpIHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvciAoRE9N
IEV4Y2VwdGlvbiA5KTogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KK1BBU1MgY3J5
cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICcnfSwgZGF0YSkgdGhyZXcgZXhjZXB0aW9uIE5vdFN1
cHBvcnRlZEVycm9yIChET00gRXhjZXB0aW9uIDkpOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBw
b3J0ZWQuLgorUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogbnVsbH0sIGRhdGEpIHRo
cmV3IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvciAoRE9NIEV4Y2VwdGlvbiA5KTogVGhlIG9w
ZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25h
bWU6IHVuZGVmaW5lZH0sIGRhdGEpIHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvciAo
RE9NIEV4Y2VwdGlvbiA5KTogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KK1BBU1Mg
Y3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEnfSwgZGF0YSkgdGhyZXcgZXhjZXB0aW9u
IE5vdFN1cHBvcnRlZEVycm9yIChET00gRXhjZXB0aW9uIDkpOiBUaGUgb3BlcmF0aW9uIGlzIG5v
dCBzdXBwb3J0ZWQuLgorUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogMX0sIGRhdGEp
IHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvciAoRE9NIEV4Y2VwdGlvbiA5KTogVGhl
IG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kaWdlc3Qo
JycsIGRhdGEpIHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvciAoRE9NIEV4Y2VwdGlv
biA5KTogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KK1BBU1MgY3J5cHRvLnN1YnRs
ZS5kaWdlc3QobnVsbCwgZGF0YSkgdGhyZXcgZXhjZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yIChE
T00gRXhjZXB0aW9uIDkpOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgorUEFTUyBj
cnlwdG8uc3VidGxlLmRpZ2VzdCh1bmRlZmluZWQsIGRhdGEpIHRocmV3IGV4Y2VwdGlvbiBOb3RT
dXBwb3J0ZWRFcnJvciAoRE9NIEV4Y2VwdGlvbiA5KTogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3Vw
cG9ydGVkLi4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kaWdlc3QoMSwgZGF0YSkgdGhyZXcgZXhjZXB0
aW9uIE5vdFN1cHBvcnRlZEVycm9yIChET00gRXhjZXB0aW9uIDkpOiBUaGUgb3BlcmF0aW9uIGlz
IG5vdCBzdXBwb3J0ZWQuLgorUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7fSwgZGF0YSkgdGhy
ZXcgZXhjZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yIChET00gRXhjZXB0aW9uIDkpOiBUaGUgb3Bl
cmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJr
aXRTdWJ0bGUvYXJndW1lbnQtY29udmVyc2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9hcmd1bWVudC1jb252ZXJzaW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjdkY2Y5ZWRk
MjNlNTc1MmNhNTQ5YTEzMzZhODM5ODVmMGViOGIyMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYXJndW1lbnQtY29udmVyc2lvbi5odG1sCkBAIC0w
LDAgKzEsNTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oIlRlc3QgY3J5cHRvLnN1YnRsZSBhcmd1bWVudCBjb252ZXJzaW9uIik7CisK
K2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitQcm9taXNlLnJlc29sdmUobnVsbCkudGhlbihmdW5j
dGlvbigpIHsKKyAgICBkZWJ1ZygiXG5QYXNzaW5nIGFsZ29yaXRobSBuYW1lIGFzIGEgc3RyaW5n
IG9iamVjdC4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdChuZXcgU3RyaW5n
KCdzaGEtMScpLCBuZXcgVWludDhBcnJheShbXSkpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQp
IHsKKyAgICB0ZXN0UGFzc2VkKCIuLi5zdWNjZWVkZWQiKTsKKyAgICBkZWJ1ZygiXG5QYXNzaW5n
IGFsZ29yaXRobSBuYW1lIGFzIGEgc3RyaW5nIG9iamVjdCBpbiBhIGRpY3Rpb25hcnkuLi4iKTsK
KyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6IG5ldyBTdHJpbmcoJ3NoYS0x
Jyl9LCBuZXcgVWludDhBcnJheShbXSkpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAg
ICB0ZXN0UGFzc2VkKCIuLi5zdWNjZWVkZWQiKTsKKyAgICBkZWJ1ZygiXG5QYXNzaW5nIGFsZ29y
aXRobSBuYW1lIGFzIGFuIG9iamVjdCB3aXRoIHRvU3RyaW5nIik7CisgICAgcmV0dXJuIGNyeXB0
by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiB7IHRvU3RyaW5nOmZ1bmN0aW9uKCkgeyByZXR1cm4gJ3No
YS0xJyB9IH0gfSwgbmV3IFVpbnQ4QXJyYXkoW10pKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0
KSB7CisgICAgdGVzdFBhc3NlZCgiLi4uc3VjY2VlZGVkIik7CisKKyAgICBkZWJ1ZygiXG5QYXNz
aW5nIGludmFsaWQgZGF0YSB0byBkaWdlc3QoKSIpOworICAgIHNob3VsZFRocm93KCJjcnlwdG8u
c3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30pIik7CisgICAgc2hvdWxkVGhyb3coImNyeXB0
by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTEnfSwgbnVsbCkiKTsKKyAgICBzaG91bGRUaHJv
dygiY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCAxMCkiKTsKKyAgICBzaG91
bGRUaHJvdygiY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCBbMTBdKSIpOwor
ICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30sIFtu
ZXcgVWludDhBcnJheShbMF0pXSkiKTsKKworICAgIGRlYnVnKCJcblBhc3NpbmcgaW52YWxpZCBh
bGdvcml0aG1JZGVudGlmaWVycyB0byBkaWdlc3QoKSIpOworICAgIGRhdGEgPSBuZXcgVWludDhB
cnJheShbMF0pOworICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7IHRvU3Ry
aW5nOmZ1bmN0aW9uKCkgeyByZXR1cm4gJ3NoYS0xJyB9IH0sIGRhdGEpIik7IC8vIEFsZ29yaXRo
bSBub3JtYWxpemF0aW9uIGRvZXNuJ3QgYXR0ZW1wdCB0byBjYWxsIHRvU3RyaW5nLgorICAgIHNo
b3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJyd9LCBkYXRhKSIpOworICAg
IHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogbnVsbH0sIGRhdGEpIik7
CisgICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiB1bmRlZmluZWR9
LCBkYXRhKSIpOworICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTog
J3NoYSd9LCBkYXRhKSIpOworICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7
bmFtZTogMX0sIGRhdGEpIik7CisgICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0
KCcnLCBkYXRhKSIpOworICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdChudWxs
LCBkYXRhKSIpOworICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh1bmRlZmlu
ZWQsIGRhdGEpIik7CisgICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KDEsIGRh
dGEpIik7CisgICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KHt9LCBkYXRhKSIp
OworfSkudGhlbihmaW5pc2hKU1Rlc3QpOworCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hcnJheS1idWZm
ZXItdmlldy1vZmZzZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1
YnRsZS9hcnJheS1idWZmZXItdmlldy1vZmZzZXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYw
OTQzZTViZjQ3NTE4MWIzMWVhMjE5MjhmNzliOGI4NjhkM2QwZGIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2FycmF5LWJ1ZmZlci12aWV3LW9mZnNl
dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCB0aGF0IGFuIEFycmF5QnVmZmVy
VmlldyB3aXRoIG9mZnNldCBpcyBwcm9jZXNzZWQgY29ycmVjdGx5LgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRp
Z2VzdCkpIGlzICcyYzdlN2MzODRmNzgyOTY5NDI4MmIxZTNhNjIxNmRlZjgwODJkMDU1JworUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYXJyYXktYnVmZmVyLXZpZXctb2Zm
c2V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2FycmF5LWJ1ZmZlci12
aWV3LW9mZnNldC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwYjk5MDQ1ODNkZGZiMTQ4ZmYwYmMyNzc2NWNi
MWJhZjEzNGUwYzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL2FycmF5LWJ1ZmZlci12aWV3LW9mZnNldC5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21t
b24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRl
c3QgdGhhdCBhbiBBcnJheUJ1ZmZlclZpZXcgd2l0aCBvZmZzZXQgaXMgcHJvY2Vzc2VkIGNvcnJl
Y3RseS4iKTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK1Byb21pc2UucmVzb2x2ZShudWxs
KS50aGVuKGZ1bmN0aW9uKCkgeworICAgIHZhciBvcmlnaW5hbERhdGEgPSBuZXcgVWludDhBcnJh
eShbMHhmLCAweGYsIDB4ZiwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDB4Ziwg
MHhmLCAweGZdKTsKKyAgICB2YXIgc2xpY2VkRGF0YSA9IG5ldyBVaW50OEFycmF5KG9yaWdpbmFs
RGF0YS5idWZmZXIsIDMsIDExKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25h
bWU6ICdzaGEtMSd9LCBzbGljZWREYXRhKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Cisg
ICAgZGlnZXN0ID0gcmVzdWx0OworICAgIC8vIEV4cGVjdGVkIHJlc3VsdCBmb3IgWzAsIDEsIDIs
IDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXS4KKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmlu
ZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSIsICInMmM3ZTdjMzg0Zjc4Mjk2OTQyODJiMWUzYTYy
MTZkZWY4MDgyZDA1NSciKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+CisK
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRT
dWJ0bGUvZ2MtMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L2djLTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5MWUxOTYyNzA0ODAzYWIzNGYwZDE5ZjVm
N2Y2N2Y0NGI2OWYyYWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL2djLTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3QgdGhhdCB3
aW5kb3cuY3J5cHRvLnN1YnRsZSB3cmFwcGVyIHByZXNlcnZlcyBjdXN0b20gcHJvcGVydGllcy4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgW29iamVjdCBDcnlwdG9dIGlz
IGRlZmluZWQuCitQQVNTIFtvYmplY3QgV2ViS2l0U3VidGxlQ3J5cHRvXSBpcyBkZWZpbmVkLgor
UEFTUyBhbm90aGVyV2luZG93Q3J5cHRvLndlYmtpdFN1YnRsZS5mb28gaXMgImJhciIKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2djLTIuaHRtbCBiL0xheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvZ2MtMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxMjk5MjA2ODJiODkw
N2EzNTNiNTZmYzhjMjM4MWI1MGUwNDI1NzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL2djLTIuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3QgdGhhdCB3aW5kb3cuY3J5cHRv
LnN1YnRsZSB3cmFwcGVyIHByZXNlcnZlcyBjdXN0b20gcHJvcGVydGllcy4iKTsKK2pzVGVzdElz
QXN5bmMgPSB0cnVlOworCit2YXIgYW5vdGhlcldpbmRvd0NyeXB0bzsKKworZnVuY3Rpb24gc3Rh
cnRUZXN0KCkKK3sKKyAgICBhbm90aGVyV2luZG93Q3J5cHRvID0gZnJhbWVzWzBdLmNyeXB0bzsK
KyAgICBzaG91bGRCZURlZmluZWQoYW5vdGhlcldpbmRvd0NyeXB0byk7CisgICAgc2hvdWxkQmVE
ZWZpbmVkKGFub3RoZXJXaW5kb3dDcnlwdG8ud2Via2l0U3VidGxlKTsKKworICAgIGFub3RoZXJX
aW5kb3dDcnlwdG8ud2Via2l0U3VidGxlLmZvbyA9ICJiYXIiOworICAgIGRvY3VtZW50LmJvZHku
cmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpWzBdKTsK
KyAgICBnYygpOworICAgIHNldFRpbWVvdXQoY29udGludWVUZXN0LCAxMCk7Cit9CisKK2Z1bmN0
aW9uIGNvbnRpbnVlVGVzdCgpCit7CisgICAgZ2MoKTsKKyAgICBzZXRUaW1lb3V0KGZpbmlzaFRl
c3QsIDEwKTsKK30KKworZnVuY3Rpb24gZmluaXNoVGVzdCgpCit7CisgICAgZ2MoKTsKKyAgICBz
aG91bGRCZSgnYW5vdGhlcldpbmRvd0NyeXB0by53ZWJraXRTdWJ0bGUuZm9vJywgJyJiYXIiJyk7
CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3dpbmRvdy5vbmxvYWQgPSBzdGFydFRlc3Q7CisK
Kzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9ImFib3V0OmJsYW5rIj48L2lmcmFtZT4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvZ2Mt
My1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2djLTMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwNGMxYTU3M2JhM2VkNmY3MWU0N2ZmYTMxZThlY2E2NTc5
YmIyZDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L2djLTMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgdGhhdCB3aW5kb3cuY3J5
cHRvIHdyYXBwZXIgcHJvdGVjdHMgYWxsIGRlcGVuZGVuY2llcywgc28gaXQgY2FuIGFsd2F5cyBi
ZSB1c2VkIHRvIGNyZWF0ZSBjcnlwdG8uc3VidGxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBbb2JqZWN0IENyeXB0b10gaXMgZGVmaW5lZC4KK1BBU1MgW29iamVjdCBX
ZWJLaXRTdWJ0bGVDcnlwdG9dIGlzIGRlZmluZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9nYy0zLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L2djLTMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNmUwNzQwYTliNmYwYTg5ZjQ2ZGQxM2Y0MGIwYTJjNWVj
ZGY3NTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9nYy0zLmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisK
K2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgd2luZG93LmNyeXB0byB3cmFwcGVyIHByb3RlY3RzIGFs
bCBkZXBlbmRlbmNpZXMsIHNvIGl0IGNhbiBhbHdheXMgYmUgdXNlZCB0byBjcmVhdGUgY3J5cHRv
LnN1YnRsZS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIgYW5vdGhlcldpbmRvd0Ny
eXB0bzsKKworZnVuY3Rpb24gc3RhcnRUZXN0KCkKK3sKKyAgICBhbm90aGVyV2luZG93Q3J5cHRv
ID0gZnJhbWVzWzBdLmNyeXB0bzsKKyAgICBzaG91bGRCZURlZmluZWQoYW5vdGhlcldpbmRvd0Ny
eXB0byk7CisgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgiaWZyYW1lIilbMF0pOworICAgIGdjKCk7CisgICAgc2V0VGltZW91dChjb250
aW51ZVRlc3QsIDEwKTsKK30KKworZnVuY3Rpb24gY29udGludWVUZXN0KCkKK3sKKyAgICBnYygp
OworICAgIHNldFRpbWVvdXQoZmluaXNoVGVzdCwgMTApOworfQorCitmdW5jdGlvbiBmaW5pc2hU
ZXN0KCkKK3sKKyAgICBnYygpOworICAgIHNob3VsZEJlRGVmaW5lZChhbm90aGVyV2luZG93Q3J5
cHRvLndlYmtpdFN1YnRsZSk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3dpbmRvdy5vbmxv
YWQgPSBzdGFydFRlc3Q7CisKKzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9ImFib3V0OmJsYW5rIj48
L2lmcmFtZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0
by93ZWJraXRTdWJ0bGUvZ2MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9nYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzU5ZDBhMWU1MjBlZWUyYTY4ZmE4
ZDhkOTc5NzFhZmYwN2FlODQ3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0
by93ZWJraXRTdWJ0bGUvZ2MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgdGhh
dCB3aW5kb3cuY3J5cHRvLnN1YnRsZSB3cmFwcGVyIHByZXNlcnZlcyBjdXN0b20gcHJvcGVydGll
cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgd2luZG93LmNyeXB0by53
ZWJraXRTdWJ0bGUuZm9vIGlzICJiYXIiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9nYy5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmEyMzViMGJkZTlkY2U3MGM2MDg4YTZhMDliODY5ZjI1MDNlNGQ0ZWIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2djLmh0bWwK
QEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9u
KCJUZXN0IHRoYXQgd2luZG93LmNyeXB0by5zdWJ0bGUgd3JhcHBlciBwcmVzZXJ2ZXMgY3VzdG9t
IHByb3BlcnRpZXMuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gc3RhcnRU
ZXN0KCkKK3sKKyAgICB3aW5kb3cuY3J5cHRvLndlYmtpdFN1YnRsZS5mb28gPSAiYmFyIjsKKyAg
ICBnYygpOworICAgIHNldFRpbWVvdXQoY29udGludWVUZXN0LCAxMCk7Cit9CisKK2Z1bmN0aW9u
IGNvbnRpbnVlVGVzdCgpCit7CisgICAgZ2MoKTsKKyAgICBzZXRUaW1lb3V0KGZpbmlzaFRlc3Qs
IDEwKTsKK30KKworZnVuY3Rpb24gZmluaXNoVGVzdCgpCit7CisgICAgZ2MoKTsKKyAgICBzaG91
bGRCZSgnd2luZG93LmNyeXB0by53ZWJraXRTdWJ0bGUuZm9vJywgJyJiYXIiJyk7CisgICAgZmlu
aXNoSlNUZXN0KCk7Cit9CisKK3dpbmRvdy5vbmxvYWQgPSBzdGFydFRlc3Q7CisKKzwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9obWFjLWNoZWNrLWFsZ29yaXRobS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9j
cnlwdG8vd2Via2l0U3VidGxlL2htYWMtY2hlY2stYWxnb3JpdGhtLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kNGQzZjQ1NmQyNGJmNDM2YjAxNTE4NjU0ZGY2NTZiZGVmYzhhMTdhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWNoZWNrLWFs
Z29yaXRobS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdCB0aGF0IEhNQUMgb3Bl
cmF0aW9ucyBvbmx5IHdvcmsgd2hlbiBoYXNoIGZ1bmN0aW9ucyBtYXRjaCBiZXR3ZWVuIGludm9j
YXRpb24gYW5kIGtleS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0ltcG9ydGlu
ZyBhIHJhdyBITUFDIFNIQS0xIGtleSBmcm9tIHN0cmluZyBsaXRlcmFsLi4uCitEb25lCitQQVNT
IGNyeXB0by5zdWJ0bGUuc2lnbih7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0xJ319
LCBrZXksIGFzY2lpVG9VaW50OEFycmF5KCdmb28nKSkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24u
CitQQVNTIGNyeXB0by5zdWJ0bGUuc2lnbih7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFtZTogJ3No
YS0yNTYnfX0sIGtleSwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2ZvbycpKSB0aHJldyBleGNlcHRpb24g
Tm90U3VwcG9ydGVkRXJyb3IgKERPTSBFeGNlcHRpb24gOSk6IFRoZSBvcGVyYXRpb24gaXMgbm90
IHN1cHBvcnRlZC4uCitQQVNTIGNyeXB0by5zdWJ0bGUudmVyaWZ5KHtuYW1lOiAnaG1hYycsIGhh
c2g6IHtuYW1lOiAnc2hhLTEnfX0sIGtleSwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2Zha2Ugc2lnbmF0
dXJlJyksIGFzY2lpVG9VaW50OEFycmF5KCdmb28nKSkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24u
CitQQVNTIGNyeXB0by5zdWJ0bGUudmVyaWZ5KHtuYW1lOiAnaG1hYycsIGhhc2g6IHtuYW1lOiAn
c2hhLTI1Nid9fSwga2V5LCBhc2NpaVRvVWludDhBcnJheSgnZmFrZSBzaWduYXR1cmUnKSwgYXNj
aWlUb1VpbnQ4QXJyYXkoJ2ZvbycpKSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3Ig
KERPTSBFeGNlcHRpb24gOSk6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWNoZWNrLWFsZ29yaXRobS5o
dG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWNoZWNrLWFsZ29yaXRo
bS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmU5ODAyNzMzMWQ5NzhjNDk1N2ZhODliYmZlYzMzMDY4Y2RkMGVi
NGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2ht
YWMtY2hlY2stYWxnb3JpdGhtLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IEhNQUMg
b3BlcmF0aW9ucyBvbmx5IHdvcmsgd2hlbiBoYXNoIGZ1bmN0aW9ucyBtYXRjaCBiZXR3ZWVuIGlu
dm9jYXRpb24gYW5kIGtleS4iKTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBobWFj
S2V5ID0gYXNjaWlUb1VpbnQ4QXJyYXkoJ2EnKTsKK3ZhciBleHRyYWN0YWJsZSA9IHRydWU7CisK
K2RlYnVnKCJJbXBvcnRpbmcgYSByYXcgSE1BQyBTSEEtMSBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJh
bC4uLiIpOworY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGhtYWNLZXksIHtuYW1lOiAn
aG1hYycsIGhhc2g6IHtuYW1lOiAnc2hhLTEnfX0sIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVy
aWZ5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgZGVidWcoIkRvbmUiKTsKKyAgICBr
ZXkgPSByZXN1bHQ7CisKKyAgICBzaG91bGROb3RUaHJvdygiY3J5cHRvLnN1YnRsZS5zaWduKHtu
YW1lOiAnaG1hYycsIGhhc2g6IHtuYW1lOiAnc2hhLTEnfX0sIGtleSwgYXNjaWlUb1VpbnQ4QXJy
YXkoJ2ZvbycpKSIpOworICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLnNpZ24oe25hbWU6
ICdobWFjJywgaGFzaDoge25hbWU6ICdzaGEtMjU2J319LCBrZXksIGFzY2lpVG9VaW50OEFycmF5
KCdmb28nKSkiKTsKKworICAgIHNob3VsZE5vdFRocm93KCJjcnlwdG8uc3VidGxlLnZlcmlmeSh7
bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0xJ319LCBrZXksIGFzY2lpVG9VaW50OEFy
cmF5KCdmYWtlIHNpZ25hdHVyZScpLCBhc2NpaVRvVWludDhBcnJheSgnZm9vJykpIik7CisgICAg
c2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUudmVyaWZ5KHtuYW1lOiAnaG1hYycsIGhhc2g6IHtu
YW1lOiAnc2hhLTI1Nid9fSwga2V5LCBhc2NpaVRvVWludDhBcnJheSgnZmFrZSBzaWduYXR1cmUn
KSwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2ZvbycpKSIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9
KTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtZXhwb3J0LWtleS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtZXhwb3J0LWtleS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTA1ODRkYmU2ZmM2NzZiYzFiMmQ2MmI1MDljNWYwMGM3NTdhMjhmOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1leHBv
cnQta2V5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMxIEBACitUZXN0IGV4cG9ydGluZyBhbiBB
RVMga2V5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworSW1wb3J0aW5nIGEgSldL
IGtleS4uLgorUEFTUyBjcnlwdG8uc3VidGxlLmV4cG9ydEtleShudWxsLCBrZXkpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IFVua25vd24ga2V5IGZvcm1hdC4KK1BBU1MgY3J5cHRvLnN1YnRs
ZS5leHBvcnRLZXkodW5kZWZpbmVkLCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVu
a25vd24ga2V5IGZvcm1hdC4KK1BBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoe30sIGtleSkg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0LgorUEFTUyBjcnlw
dG8uc3VidGxlLmV4cG9ydEtleSgiIiwga2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBV
bmtub3duIGtleSBmb3JtYXQuCitQQVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJmb29iYXIi
LCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVua25vd24ga2V5IGZvcm1hdC4KK0V4
cG9ydGluZyB0aGUga2V5IGFzIHJhdyBkYXRhLi4uCitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3
IFVpbnQ4QXJyYXkoZXhwb3J0ZWREYXRhKSkgaXMgJzZhMThlNDlmZWZmN2YzYjdlMDllYzg5Yjdm
NmRlYWIyZjZhMThlNDlmZWZmN2YzYjdlMDllYzg5YjdmNmRlYWInCitFeHBvcnRpbmcgdGhlIGtl
eSBhcyBKV0suLi4KK1BBU1MgZXhwb3J0ZWRKV0sua3R5IGlzICdvY3QnCitQQVNTIGV4cG9ydGVk
SldLLmsgaXMgJ2FoamtuLV8zODdmZ25zaWJmMjNxc3ZhaGprbi1fMzg3Zmduc2liZjIzcXMnCitQ
QVNTIGV4cG9ydGVkSldLLmFsZyBpcyAnSFMyNTYnCitQQVNTIGV4cG9ydGVkSldLLmV4dCBpcyB0
cnVlCitQQVNTIGV4cG9ydGVkSldLLnVzZSBpcyB1bmRlZmluZWQKK1BBU1MgZXhwb3J0ZWRKV0su
a2V5X29wcyBpcyBbJ3NpZ24nLCAndmVyaWZ5J10KKworSW1wb3J0aW5nIGEga2V5IHRoYXQncyBu
b3QgZXh0cmFjdGFibGUuLi4KKworVHJ5aW5nIHRvIGV4cG9ydCBhcyByYXcuLi4KK1BBU1MgUmVq
ZWN0ZWQsIGFzIGV4cGVjdGVkCitUcnlpbmcgdG8gZXhwb3J0IGFzIGp3ay4uLgorUEFTUyBSZWpl
Y3RlZCwgYXMgZXhwZWN0ZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L2htYWMtZXhwb3J0LWtleS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9o
bWFjLWV4cG9ydC1rZXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZGU3NWRhMDUyNmJhODQ0NmRiOWUzNThk
MzQwZDllZGQwNmExZmZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9obWFjLWV4cG9ydC1rZXkuaHRtbApAQCAtMCwwICsxLDgwIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IGV4
cG9ydGluZyBhbiBBRVMga2V5LiIpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGV4
dHJhY3RhYmxlID0gdHJ1ZTsKK3ZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOworCit2YXIgandr
S2V5ID0geworICAgICJrdHkiOiAib2N0IiwKKyAgICAiayI6ICJhaGprbi1fMzg3Zmduc2liZjIz
cXN2YWhqa24tXzM4N2ZnbnNpYmYyM3FzIgorfTsKKwordmFyIGp3a0tleUFzQXJyYXlCdWZmZXIg
PSBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShqd2tLZXkpKTsKKworZGVidWcoIklt
cG9ydGluZyBhIEpXSyBrZXkuLi4iKTsKK2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBq
d2tLZXlBc0FycmF5QnVmZmVyLCB7IG5hbWU6ICJITUFDIiwgaGFzaDogIlNIQS0yNTYiIH0sIGV4
dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Cisg
ICAga2V5ID0gcmVzdWx0OworCisgICAgc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0
S2V5KG51bGwsIGtleSknKTsKKyAgICBzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5leHBvcnRL
ZXkodW5kZWZpbmVkLCBrZXkpJyk7CisgICAgc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhw
b3J0S2V5KHt9LCBrZXkpJyk7CisgICAgc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0
S2V5KCIiLCBrZXkpJyk7CisgICAgc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5
KCJmb29iYXIiLCBrZXkpJyk7CisKKyAgICBkZWJ1ZygiRXhwb3J0aW5nIHRoZSBrZXkgYXMgcmF3
IGRhdGEuLi4iKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoInJhdyIsIGtl
eSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGV4cG9ydGVkRGF0YSA9IHJlc3Vs
dDsKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShleHBvcnRl
ZERhdGEpKSIsICInNmExOGU0OWZlZmY3ZjNiN2UwOWVjODliN2Y2ZGVhYjJmNmExOGU0OWZlZmY3
ZjNiN2UwOWVjODliN2Y2ZGVhYiciKTsKKworICAgIGRlYnVnKCJFeHBvcnRpbmcgdGhlIGtleSBh
cyBKV0suLi4iKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoImp3ayIsIGtl
eSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGV4cG9ydGVkSldLID0gSlNPTi5w
YXJzZShieXRlc1RvQVNDSUlTdHJpbmcocmVzdWx0KSk7CisgICAgc2hvdWxkQmUoImV4cG9ydGVk
SldLLmt0eSIsICInb2N0JyIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rIiwgIidhaGpr
bi1fMzg3Zmduc2liZjIzcXN2YWhqa24tXzM4N2ZnbnNpYmYyM3FzJyIpOworICAgIHNob3VsZEJl
KCJleHBvcnRlZEpXSy5hbGciLCAiJ0hTMjU2JyIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpX
Sy5leHQiLCAidHJ1ZSIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy51c2UiLCAidW5kZWZp
bmVkIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmtleV9vcHMiLCAiWydzaWduJywgJ3Zl
cmlmeSddIik7CisKKyAgICBkZWJ1ZygiXG5JbXBvcnRpbmcgYSBrZXkgdGhhdCdzIG5vdCBleHRy
YWN0YWJsZS4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwg
andrS2V5QXNBcnJheUJ1ZmZlciwgeyBuYW1lOiAiSE1BQyIsIGhhc2g6ICJTSEEtMjU2IiB9LCBu
b25FeHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVz
dWx0KSB7CisgICAga2V5ID0gcmVzdWx0OworCisgICAgZGVidWcoIlxuVHJ5aW5nIHRvIGV4cG9y
dCBhcyByYXcuLi4iKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoInJhdyIs
IGtleSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHRlc3RGYWlsZWQoIlByb21p
c2Ugd2Fzbid0IHJlamVjdGVkIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9LCBmdW5jdGlvbigp
IHsKKyAgICB0ZXN0UGFzc2VkKCJSZWplY3RlZCwgYXMgZXhwZWN0ZWQiKTsKKworICAgIGRlYnVn
KCJUcnlpbmcgdG8gZXhwb3J0IGFzIGp3ay4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxl
LmV4cG9ydEtleSgiandrIiwga2V5KTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAg
dGVzdEZhaWxlZCgiUHJvbWlzZSB3YXNuJ3QgcmVqZWN0ZWQiKTsKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKK30sIGZ1bmN0aW9uKCkgeworICAgIHRlc3RQYXNzZWQoIlJlamVjdGVkLCBhcyBleHBlY3Rl
ZCIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMt
Z2VuZXJhdGUta2V5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvaG1hYy1nZW5lcmF0ZS1rZXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViZDMxYmQwYTdh
NzIxNmY2ZDQwYjFmNmY1NTg5MGUwYWQxM2FjZTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtZ2VuZXJhdGUta2V5LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDI3IEBACitUZXN0IGdlbmVyYXRpbmcgYSBITUFDIGtleS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSgiaG1h
YyIsIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6
ICJobWFjIn0sIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pIHRocmV3IGV4Y2VwdGlv
biBOb3RTdXBwb3J0ZWRFcnJvciAoRE9NIEV4Y2VwdGlvbiA5KTogVGhlIG9wZXJhdGlvbiBpcyBu
b3Qgc3VwcG9ydGVkLi4KK1BBU1MgY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImht
YWMiLCBsZW5ndGg6IHVuZGVmaW5lZH0sIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0p
IHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvciAoRE9NIEV4Y2VwdGlvbiA5KTogVGhl
IG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KK1BBU1MgY3J5cHRvLnN1YnRsZS5nZW5lcmF0
ZUtleSh7bmFtZTogImhtYWMiLCBsZW5ndGg6IHt9fSwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2
ZXJpZnkiXSkgdGhyZXcgZXhjZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yIChET00gRXhjZXB0aW9u
IDkpOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgorCitHZW5lcmF0aW5nIGEga2V5
IHdpdGggZGVmYXVsdCBsZW5ndGguLi4KK1BBU1Mga2V5LnR5cGUgaXMgJ3NlY3JldCcKK1BBU1Mg
a2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKK1BBU1Mga2V5LmFsZ29yaXRobS5uYW1lIGlzICdITUFD
JworUEFTUyBrZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyA2NAorUEFTUyBrZXkudXNhZ2VzIGlzIFsi
c2lnbiIsICJ2ZXJpZnkiXQorCitHZW5lcmF0aW5nIGEga2V5IHdpdGggY3VzdG9tIGxlbmd0aC4u
LgorUEFTUyBrZXkudHlwZSBpcyAnc2VjcmV0JworUEFTUyBrZXkuZXh0cmFjdGFibGUgaXMgdHJ1
ZQorUEFTUyBrZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0hNQUMnCitQQVNTIGtleS5hbGdvcml0aG0u
bGVuZ3RoIGlzIDUKK1BBU1Mga2V5LnVzYWdlcyBpcyBbInNpZ24iXQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1nZW5lcmF0ZS1rZXkuaHRtbCBiL0xheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1nZW5lcmF0ZS1rZXkuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zYWZjNTY4NWMxNzhhMTIzN2E2YTkzNjAwYzRmMDlhM2E5MTg4ODliCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWdlbmVyYXRlLWtleS5o
dG1sCkBAIC0wLDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8
c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgZ2VuZXJhdGluZyBhIEhNQUMga2V5LiIpOworCitq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKKworc2hvdWxk
VGhyb3coJ2NyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoImhtYWMiLCBleHRyYWN0YWJsZSwgWyJz
aWduIiwgInZlcmlmeSJdKScpOworc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZ2VuZXJhdGVL
ZXkoe25hbWU6ICJobWFjIn0sIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pJyk7Citz
aG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImhtYWMiLCBsZW5n
dGg6IHVuZGVmaW5lZH0sIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pJyk7CitzaG91
bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImhtYWMiLCBsZW5ndGg6
IHt9fSwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSknKTsKKworZGVidWcoIlxuR2Vu
ZXJhdGluZyBhIGtleSB3aXRoIGRlZmF1bHQgbGVuZ3RoLi4uIik7CitjcnlwdG8uc3VidGxlLmdl
bmVyYXRlS2V5KHtuYW1lOiAiaG1hYyIsIGhhc2g6ICJzaGEtMSJ9LCBleHRyYWN0YWJsZSwgWyJz
aWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGtleSA9IHJlc3Vs
dDsKKworICAgIHNob3VsZEJlKCJrZXkudHlwZSIsICInc2VjcmV0JyIpOworICAgIHNob3VsZEJl
KCJrZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIpOworICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGht
Lm5hbWUiLCAiJ0hNQUMnIik7CisgICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubGVuZ3RoIiwg
IjY0Iik7CisgICAgc2hvdWxkQmUoImtleS51c2FnZXMiLCAnWyJzaWduIiwgInZlcmlmeSJdJyk7
CisKKyAgICBkZWJ1ZygiXG5HZW5lcmF0aW5nIGEga2V5IHdpdGggY3VzdG9tIGxlbmd0aC4uLiIp
OworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiaG1hYyIsIGhh
c2g6ICJzaGEtMSIsIGxlbmd0aDogNX0sIGV4dHJhY3RhYmxlLCBbInNpZ24iXSk7Cit9KS50aGVu
KGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGtleSA9IHJlc3VsdDsKKworICAgIHNob3VsZEJlKCJr
ZXkudHlwZSIsICInc2VjcmV0JyIpOworICAgIHNob3VsZEJlKCJrZXkuZXh0cmFjdGFibGUiLCAi
dHJ1ZSIpOworICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0hNQUMnIik7Cisg
ICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjUiKTsKKyAgICBzaG91bGRCZSgi
a2V5LnVzYWdlcyIsICdbInNpZ24iXScpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3Nj
cmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9obWFjLWltcG9ydC1qd2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWltcG9ydC1qd2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjg5Y2IyNTMzMWU0ZmQ3MTE4MDY1MzdlM2NjYmUwNjg4NGVjZTg4OTMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtaW1wb3J0LWp3ay1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMiBAQAorVGVzdCBpbXBvcnRpbmcgYSBKV0sga2V5IGZv
ciBITUFDLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworSW1wb3J0aW5nIGEga2V5
Li4uCisKK1BBU1Mga2V5LnR5cGUgaXMgJ3NlY3JldCcKK1BBU1Mga2V5LmV4dHJhY3RhYmxlIGlz
IGZhbHNlCitQQVNTIGtleS5hbGdvcml0aG0ubmFtZSBpcyAnSE1BQycKK1BBU1Mga2V5LmFsZ29y
aXRobS5sZW5ndGggaXMgMzIKK1BBU1Mga2V5LnVzYWdlcyBpcyBbInNpZ24iLCAidmVyaWZ5Il0K
KworVXNpbmcgdGhlIGtleSB0byBzaWduIG1lc3NhZ2UgJ2ZvbycuLi4KK1BBU1MgYnl0ZXNUb0hl
eFN0cmluZyhuZXcgVWludDhBcnJheShzaWduYXR1cmUpKSBpcyAnZTAzNzM2ZmUwOTg4OTJiMmEy
ZGE3NzgxMjQzMWY3YzAxNGQzMmUyZmQ2OWYzYmNmZjg4M2FjOTIzYThmYTJkYScKKworVmVyaWZ5
aW5nIHRoZSBzaWduYXR1cmUuLi4KK1BBU1MgdmVyaWZpY2F0aW9uUmVzdWx0IGlzIHRydWUKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtaW1wb3J0LWp3ay5odG1s
IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWltcG9ydC1qd2suaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jYjM5ZjNhNTlmMGIzNWVmZTY5YmIxMjgyYzQ4ZDUyOTgyYWQ0NmFiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWltcG9y
dC1qd2suaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IGltcG9ydGluZyBhIEpXSyBrZXkgZm9y
IEhNQUMuIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIgZXh0cmFjdGFibGUgPSB0
cnVlOworCit2YXIgaG1hY0tleSA9IHsKKyAgICAia3R5IjogIm9jdCIsCisgICAgImFsZyI6ICJI
UzI1NiIsCisgICAgInVzZSI6ICJzaWciLAorICAgICJleHQiOiBmYWxzZSwKKyAgICAiayI6ICJh
aGprbi1fMzg3Zmduc2liZjIzcXN2YWhqa24tXzM4N2ZnbnNpYmYyM3FzIgorfTsKKwordmFyIGht
YWNLZXlBc0FycmF5QnVmZmVyID0gYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkoaG1h
Y0tleSkpOworCitkZWJ1ZygiSW1wb3J0aW5nIGEga2V5Li4uXG4iKTsKK2NyeXB0by5zdWJ0bGUu
aW1wb3J0S2V5KCJqd2siLCBobWFjS2V5QXNBcnJheUJ1ZmZlciwgbnVsbCwgZXh0cmFjdGFibGUs
IFsic2lnbiIsICJ2ZXJpZnkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBrZXkgPSBy
ZXN1bHQ7CisKKyAgICBzaG91bGRCZSgia2V5LnR5cGUiLCAiJ3NlY3JldCciKTsKKyAgICBzaG91
bGRCZSgia2V5LmV4dHJhY3RhYmxlIiwgImZhbHNlIik7CisgICAgc2hvdWxkQmUoImtleS5hbGdv
cml0aG0ubmFtZSIsICInSE1BQyciKTsKKyAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5sZW5n
dGgiLCAiMzIiKTsKKyAgICBzaG91bGRCZSgia2V5LnVzYWdlcyIsICdbInNpZ24iLCAidmVyaWZ5
Il0nKTsKKworICAgIGRlYnVnKCJcblVzaW5nIHRoZSBrZXkgdG8gc2lnbiBtZXNzYWdlICdmb28n
Li4uIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuc2lnbihrZXkuYWxnb3JpdGhtLCBrZXks
IGFzY2lpVG9VaW50OEFycmF5KCdmb28nKSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewor
ICAgIHNpZ25hdHVyZSA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhu
ZXcgVWludDhBcnJheShzaWduYXR1cmUpKSIsICInZTAzNzM2ZmUwOTg4OTJiMmEyZGE3NzgxMjQz
MWY3YzAxNGQzMmUyZmQ2OWYzYmNmZjg4M2FjOTIzYThmYTJkYSciKTsKKworICAgIGRlYnVnKCJc
blZlcmlmeWluZyB0aGUgc2lnbmF0dXJlLi4uIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUu
dmVyaWZ5KGtleS5hbGdvcml0aG0sIGtleSwgcmVzdWx0LCBhc2NpaVRvVWludDhBcnJheSgnZm9v
JykpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICB2ZXJpZmljYXRpb25SZXN1bHQg
PSByZXN1bHQ7CisgICAgc2hvdWxkQmUoInZlcmlmaWNhdGlvblJlc3VsdCIsICJ0cnVlIik7Cisg
ICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtcG9zdE1lc3Nh
Z2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXBv
c3RNZXNzYWdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZWNhZWI5MWFlOWExODNhMGY5YmI0
MDU1YzRkZTEzMDUxZjNhMWZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9obWFjLXBvc3RNZXNzYWdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0
IEBACitUZXN0IHNlbmRpbmcgY3J5cHRvIGtleXMgdmlhIHBvc3RNZXNzYWdlLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBrZXkudHlwZSBpcyAnc2VjcmV0JworUEFTUyBr
ZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQorUEFTUyBrZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0hNQUMn
CitQQVNTIGtleS5hbGdvcml0aG0ubGVuZ3RoIGlzIDE2CitQQVNTIGtleS51c2FnZXMgaXMgWyJk
ZWNyeXB0IiwgImVuY3J5cHQiLCAic2lnbiIsICJ2ZXJpZnkiXQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1wb3N0TWVzc2FnZS5odG1sIGIvTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXBvc3RNZXNzYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDA4
OGMxYjBkNjZmOGMzYzczYjg5OWE3ZmU3ZDY5ODZlYTdhNWM5MAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1wb3N0TWVzc2FnZS5odG1sCkBA
IC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGVzdCBzZW5kaW5n
IGNyeXB0byBrZXlzIHZpYSBwb3N0TWVzc2FnZS4iKTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7
CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24oZXZ0KSB7Cisg
ICAga2V5ID0gZXZ0LmRhdGE7CisgICAgc2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7
CisgICAgc2hvdWxkQmUoImtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7CisgICAgc2hvdWxkQmUo
ImtleS5hbGdvcml0aG0ubmFtZSIsICInSE1BQyciKTsKKyAgICBzaG91bGRCZSgia2V5LmFsZ29y
aXRobS5sZW5ndGgiLCAiMTYiKTsKKyAgICBzaG91bGRCZSgia2V5LnVzYWdlcyIsICdbImRlY3J5
cHQiLCAiZW5jcnlwdCIsICJzaWduIiwgInZlcmlmeSJdJyk7CisKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKK30sIGZhbHNlKTsKKworaW1wb3J0VGVzdEtleXMoKS50aGVuKGZ1bmN0aW9uKGtleXMpIHsK
KyAgICBwb3N0TWVzc2FnZShrZXlzLmhtYWNTaGExLCAiKiIpOworfSk7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvaG1hYy1zaWduLXZlcmlmeS1lbXB0eS1rZXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXNpZ24tdmVyaWZ5LWVtcHR5LWtleS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDNkNWRhNzRiZWViYzk5MTU0YTdiOWZhNjRkY2FiN2UwYTA3OTJlYgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1z
aWduLXZlcmlmeS1lbXB0eS1rZXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKK1Rlc3Qg
SE1BQyBzaWduIGFuZCB2ZXJpZnkgZnVuY3Rpb25zIHdpdGggYW4gZW1wdHkga2V5LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworSW1wb3J0aW5nIGEgcmF3IEhNQUMga2V5IGZyb20g
c3RyaW5nIGxpdGVyYWwuLi4KK1BBU1Mga2V5LnR5cGUgaXMgJ3NlY3JldCcKK1BBU1Mga2V5LmV4
dHJhY3RhYmxlIGlzIHRydWUKK1BBU1Mga2V5LmFsZ29yaXRobS5uYW1lIGlzICdITUFDJworUEFT
UyBrZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyAwCitQQVNTIGtleS5hbGdvcml0aG0uaGFzaC5uYW1l
IGlzICdTSEEtMScKK1BBU1Mga2V5LnVzYWdlcyBpcyBbJ3NpZ24nLCAndmVyaWZ5J10KK1VzaW5n
IHRoZSBrZXkgdG8gc2lnbiAnZm9vJy4uLgorUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50
OEFycmF5KHNpZ25hdHVyZSkpIGlzICdhM2NjNzcwZmMwMzNlMmNiNDE5ZDQyYjY0ZTAwODFhM2Jk
M2JlMzBlJworVmVyaWZ5aW5nIHRoZSBzaWduYXR1cmUuLi4KK1BBU1MgdmVyaWZpY2F0aW9uUmVz
dWx0IGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMt
c2lnbi12ZXJpZnktZW1wdHkta2V5Lmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3Vi
dGxlL2htYWMtc2lnbi12ZXJpZnktZW1wdHkta2V5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDg1ZTZkMDVj
NGM2YTExYTM1ZjNhNzUyNmJhYzVkYzllNDA3MGQzNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1zaWduLXZlcmlmeS1lbXB0eS1rZXkuaHRt
bApAQCAtMCwwICsxLDQ2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNj
cmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IEhNQUMgc2lnbiBhbmQgdmVyaWZ5IGZ1bmN0aW9ucyB3
aXRoIGFuIGVtcHR5IGtleS4iKTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBobWFj
S2V5ID0gYXNjaWlUb1VpbnQ4QXJyYXkoJycpOwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKKwor
ZGVidWcoIkltcG9ydGluZyBhIHJhdyBITUFDIGtleSBmcm9tIHN0cmluZyBsaXRlcmFsLi4uIik7
CitjcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3IiwgaG1hY0tleSwge25hbWU6ICdobWFjJywg
aGFzaDoge25hbWU6ICdzaGEtMSd9fSwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSku
dGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBrZXkgPSByZXN1bHQ7CisgICAgc2hvdWxkQmUo
ImtleS50eXBlIiwgIidzZWNyZXQnIik7CisgICAgc2hvdWxkQmUoImtleS5leHRyYWN0YWJsZSIs
ICJ0cnVlIik7CisgICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIsICInSE1BQyciKTsK
KyAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMCIpOyAvLyBTZWUgPGh0dHBz
Oi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9MjMwOTg+LgorICAgIHNo
b3VsZEJlKCJrZXkuYWxnb3JpdGhtLmhhc2gubmFtZSIsICInU0hBLTEnIik7CisgICAgc2hvdWxk
QmUoImtleS51c2FnZXMiLCAiWydzaWduJywgJ3ZlcmlmeSddIik7CisKKyAgICBkZWJ1ZygiVXNp
bmcgdGhlIGtleSB0byBzaWduICdmb28nLi4uIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUu
c2lnbihrZXkuYWxnb3JpdGhtLCBrZXksIGFzY2lpVG9VaW50OEFycmF5KCdmb28nKSk7Cit9KS50
aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHNpZ25hdHVyZSA9IHJlc3VsdDsKKyAgICBzaG91
bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShzaWduYXR1cmUpKSIsICInYTNj
Yzc3MGZjMDMzZTJjYjQxOWQ0MmI2NGUwMDgxYTNiZDNiZTMwZSciKTsKKworICAgIGRlYnVnKCJW
ZXJpZnlpbmcgdGhlIHNpZ25hdHVyZS4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLnZl
cmlmeShrZXkuYWxnb3JpdGhtLCBrZXksIHJlc3VsdCwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2Zvbycp
KTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgdmVyaWZpY2F0aW9uUmVzdWx0ID0g
cmVzdWx0OworICAgIHNob3VsZEJlKCJ2ZXJpZmljYXRpb25SZXN1bHQiLCAidHJ1ZSIpOworICAg
IGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXNpZ24tdmVyaWZ5
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1zaWdu
LXZlcmlmeS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMThkYTdlNzJjOWZiOGU0OWIxYTRiMmNl
MGNiOWFiZWYwNTYzOWI5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93
ZWJraXRTdWJ0bGUvaG1hYy1zaWduLXZlcmlmeS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBA
QAorVGVzdCBITUFDIHNpZ24gYW5kIHZlcmlmeSBmdW5jdGlvbnMuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitJbXBvcnRpbmcgYSByYXcgSE1BQyBrZXkgZnJvbSBzdHJpbmcgbGl0
ZXJhbC4uLgorUEFTUyBrZXkudHlwZSBpcyAnc2VjcmV0JworUEFTUyBrZXkuZXh0cmFjdGFibGUg
aXMgdHJ1ZQorUEFTUyBrZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0hNQUMnCitQQVNTIGtleS5hbGdv
cml0aG0ubGVuZ3RoIGlzIDEKK1BBU1Mga2V5LmFsZ29yaXRobS5oYXNoLm5hbWUgaXMgJ1NIQS0x
JworUEFTUyBrZXkudXNhZ2VzIGlzIFsnc2lnbicsICd2ZXJpZnknXQorVXNpbmcgdGhlIGtleSB0
byBzaWduICdmb28nLi4uCitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoc2ln
bmF0dXJlKSkgaXMgJ2JlYmJjMDJlNDZiMGY4MTE4M2Y0MGMyNWRjZTIzZTUwNDVkNjU1MTknCitW
ZXJpZnlpbmcgdGhlIHNpZ25hdHVyZS4uLgorUEFTUyB2ZXJpZmljYXRpb25SZXN1bHQgaXMgdHJ1
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1zaWduLXZlcmlm
eS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXNpZ24tdmVyaWZ5
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOGQxOTk1NDI2ZTMwNGY0YzYwYTc3YWE3NTJmODM1ZWM4MTM0ZmYw
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1h
Yy1zaWduLXZlcmlmeS5odG1sCkBAIC0wLDAgKzEsNDYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgSE1BQyBzaWduIGFuZCB2
ZXJpZnkgZnVuY3Rpb25zLiIpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGhtYWNL
ZXkgPSBhc2NpaVRvVWludDhBcnJheSgnYScpOwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKKwor
ZGVidWcoIkltcG9ydGluZyBhIHJhdyBITUFDIGtleSBmcm9tIHN0cmluZyBsaXRlcmFsLi4uIik7
CitjcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3IiwgaG1hY0tleSwge25hbWU6ICdobWFjJywg
aGFzaDoge25hbWU6ICdzaGEtMSd9fSwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSku
dGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBrZXkgPSByZXN1bHQ7CisgICAgc2hvdWxkQmUo
ImtleS50eXBlIiwgIidzZWNyZXQnIik7CisgICAgc2hvdWxkQmUoImtleS5leHRyYWN0YWJsZSIs
ICJ0cnVlIik7CisgICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIsICInSE1BQyciKTsK
KyAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMSIpOyAvLyBTZWUgPGh0dHBz
Oi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9MjMwOTg+LgorICAgIHNo
b3VsZEJlKCJrZXkuYWxnb3JpdGhtLmhhc2gubmFtZSIsICInU0hBLTEnIik7CisgICAgc2hvdWxk
QmUoImtleS51c2FnZXMiLCAiWydzaWduJywgJ3ZlcmlmeSddIik7CisKKyAgICBkZWJ1ZygiVXNp
bmcgdGhlIGtleSB0byBzaWduICdmb28nLi4uIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUu
c2lnbihrZXkuYWxnb3JpdGhtLCBrZXksIGFzY2lpVG9VaW50OEFycmF5KCdmb28nKSk7Cit9KS50
aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHNpZ25hdHVyZSA9IHJlc3VsdDsKKyAgICBzaG91
bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShzaWduYXR1cmUpKSIsICInYmVi
YmMwMmU0NmIwZjgxMTgzZjQwYzI1ZGNlMjNlNTA0NWQ2NTUxOSciKTsKKworICAgIGRlYnVnKCJW
ZXJpZnlpbmcgdGhlIHNpZ25hdHVyZS4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLnZl
cmlmeShrZXkuYWxnb3JpdGhtLCBrZXksIHJlc3VsdCwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2Zvbycp
KTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgdmVyaWZpY2F0aW9uUmVzdWx0ID0g
cmVzdWx0OworICAgIHNob3VsZEJlKCJ2ZXJpZmljYXRpb25SZXN1bHQiLCAidHJ1ZSIpOworICAg
IGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9pbXBvcnQtandrLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaW1wb3J0LWp3ay1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZTRlNTFhZjc2MGE2MmI2MzEwNWVkMGIyZjIwOGFlYTI5ODZl
MzNjMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUv
aW1wb3J0LWp3ay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMCBAQAorVGVzdCBlcnJvciBoYW5k
bGluZyBmb3IgSldLIGltcG9ydC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCcnKSwg
bnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogSW52YWxpZCBKV0sgc2VyaWFsaXphdGlv
bi4KK1BBU1MgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5
KCd7JyksIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEludmFsaWQgSldLIHNlcmlh
bGl6YXRpb24uCitQQVNTIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWlu
dDhBcnJheSgnbnVsbCcpLCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBJbnZhbGlk
IEpXSyBzZXJpYWxpemF0aW9uLgorUEFTUyBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwg
YXNjaWlUb1VpbnQ4QXJyYXkoJ3VuZGVmaW5lZCcpLCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBJbnZhbGlkIEpXSyBzZXJpYWxpemF0aW9uLgorUEFTUyBjcnlwdG8uc3VidGxlLmlt
cG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoJ3t9JyksIG51bGwpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IE5laXRoZXIga2V5IG5vciBmdW5jdGlvbiBhcmd1bWVudCBoYXMgY3J5
cHRvIGFsZ29yaXRobSBzcGVjaWZpZWQuCitQQVNTIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJq
d2siLCBhc2NpaVRvVWludDhBcnJheSgne30nKSwgImFlcy1jYmMiKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBSZXF1aXJlZCBKV0sgImt0eSIgbWVtYmVyIGlzIG1pc3NpbmcuCitQQVNTIGNy
eXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgneyAia3R5Ijog
ImZvb2JhciIsICJhbGciOiAiSFMyNTYiLCAidXNlIjogInNpZyIsICJrIjogImFoamtuMjMzODdm
Z25zaWJmMjNxc3ZhaGprbjM3Mzg3Zmduc2liZjIzcXMiIH0nKSwgbnVsbCkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVW5zdXBwb3J0ZWQgSldLIGtleSB0eXBlIGZvb2Jhci4KK1BBU1MgY3J5
cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7ICJrdHkiOiAi
b2N0IiwgImFsZyI6ICJmb29iYXIiLCAidXNlIjogInNpZyIsICJrIjogImFoamtuMjMzODdmZ25z
aWJmMjNxc3ZhaGprbjM3Mzg3Zmduc2liZjIzcXMiIH0nKSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVW5zdXBwb3J0ZWQgSldLIGFsZ29yaXRobSBmb29iYXIuCitQQVNTIGNyeXB0
by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgneyAia3R5IjogIm9j
dCIsICJhbGciOiAiSFMyNTYiLCAidXNlIjogInNpZyIsICJleHQiOiBmYWxzZSwgImsiOiAiYWhq
a24yMzM4N2ZnbnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfScpLCAiYWVzLWNiYyIp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFsZ29yaXRobSBzcGVjaWZpZWQgaW4ga2V5IGlz
IG5vdCBjb21wYXRpYmxlIHdpdGggb25lIHBhc3NlZCB0byBpbXBvcnRLZXkgYXMgYXJndW1lbnQu
CitQQVNTIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgn
eyAia3R5IjogIm9jdCIsICJhbGciOiAiSFMyNTYiLCAidXNlIjogInNpZyIsICJleHQiOiBmYWxz
ZSwgImsiOiAiYWhqa24yMzM4N2ZnbnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfScp
LCB7IG5hbWU6ICJobWFjIiwgaGFzaDogInNoYS0xIiB9KSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBBbGdvcml0aG0gc3BlY2lmaWVkIGluIGtleSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIG9u
ZSBwYXNzZWQgdG8gaW1wb3J0S2V5IGFzIGFyZ3VtZW50LgorUEFTUyBjcnlwdG8uc3VidGxlLmlt
cG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjog
IkhTMjU2IiB9JyksIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFNlY3JldCBrZXkg
ZGF0YSBpcyBub3QgcHJlc2VudCBpcyBKV0suCitQQVNTIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5
KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgneyAia3R5IjogIm9jdCIsICJhbGciOiAiQTEyOENC
QyIgfScpLCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBTZWNyZXQga2V5IGRhdGEg
aXMgbm90IHByZXNlbnQgaXMgSldLLgorUEFTUyBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandr
IiwgYXNjaWlUb1VpbnQ4QXJyYXkoJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkhTMjU2IiwgInVz
ZSI6ICJzaWciLCAiZXh0IjogZmFsc2UsICJrIjogIjEyMzQiIH0nKSwgbnVsbCkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogS2V5IHNpemUgaXMgbm90IHZhbGlkIGZvciBIUzI1Ni4KK1BBU1Mg
Y3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7ICJrdHki
OiAib2N0IiwgImFsZyI6ICJBMTI4Q0JDIiwgInVzZSI6ICJzaWciLCAiZXh0IjogZmFsc2UsICJr
IjogIjEyMzQiIH0nKSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogS2V5IHNpemUg
aXMgbm90IHZhbGlkIGZvciBBMTI4Q0JDLgorUEFTUyBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgi
andrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkExMjhDQkMi
LCAidXNlIjogInNpZyIsICJleHQiOiBmYWxzZSwgImsiOiAiYWhqa24yMzM4N2ZnbnNpYmYyM3Fz
dmFoamtuMzczODdmZ25zaWJmMjNxcyIgfScpLCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBLZXkgc2l6ZSBpcyBub3QgdmFsaWQgZm9yIEExMjhDQkMuCitQQVNTIGNyeXB0by5zdWJ0
bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgneyAia3R5IjogIm9jdCIsICJh
bGciOiAiSFMyNTYiLCAidXNlIjogInNpZyIsICJleHQiOiBmYWxzZSwgImsiOiAiYWhqa24yMzM4
N2YrbnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfScpLCBudWxsKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBDYW5ub3QgZGVjb2RlIGJhc2U2NHVybCBrZXkgZGF0YSBpbiBKV0su
CitQQVNTIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgn
eyAia3R5IjogMSwgImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwgImV4dCI6IGZhbHNlLCAi
ayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9JyksIG51
bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEV4cGVjdGVkIGEgc3RyaW5nIHZhbHVlIGZv
ciAia3R5IiBKU09OIGtleS4KK1BBU1MgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFz
Y2lpVG9VaW50OEFycmF5KCd7ICJrdHkiOiAib2N0IiwgImFsZyI6IDEsICJ1c2UiOiAic2lnIiwg
ImV4dCI6IGZhbHNlLCAiayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNp
YmYyM3FzIiB9JyksIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEV4cGVjdGVkIGEg
c3RyaW5nIHZhbHVlIGZvciAiYWxnIiBKU09OIGtleS4KK1BBU1MgY3J5cHRvLnN1YnRsZS5pbXBv
cnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7ICJrdHkiOiAib2N0IiwgImFsZyI6ICJI
UzI1NiIsICJ1c2UiOiAxLCAiZXh0IjogZmFsc2UsICJrIjogImFoamtuMjMzODdmZ25zaWJmMjNx
c3ZhaGprbjM3Mzg3Zmduc2liZjIzcXMiIH0nKSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogRXhwZWN0ZWQgYSBzdHJpbmcgdmFsdWUgZm9yICJ1c2UiIEpTT04ga2V5LgorUEFTUyBj
cnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoJ3sgImt0eSI6
ICJvY3QiLCAiYWxnIjogIkhTMjU2IiwgInVzZSI6ICJzaWciLCAiZXh0IjogImZhbHNlIiwgImsi
OiAiYWhqa24yMzM4N2ZnbnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfScpLCBudWxs
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBFeHBlY3RlZCBhIGJvb2xlYW4gdmFsdWUgZm9y
ICJleHQiIEpTT04ga2V5LgorUEFTUyBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNj
aWlUb1VpbnQ4QXJyYXkoJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkhTMjU2IiwgInVzZSI6ICJz
aWciLCAiZXh0IjogZmFsc2UsICJrIjogMSB9JyksIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IEV4cGVjdGVkIGEgc3RyaW5nIHZhbHVlIGZvciAiayIgSlNPTiBrZXkuCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9pbXBvcnQtandrLmh0bWwgYi9MYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2ltcG9ydC1qd2suaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDNh
MjQwOTM2ZmMzY2JlMGIxZTI1MWIyM2YzNGY3YjZhMWNlYzVlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9pbXBvcnQtandrLmh0bWwKQEAgLTAsMCAr
MSw1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigiVGVzdCBlcnJvciBoYW5kbGluZyBmb3IgSldLIGltcG9ydC4iKTsKKworc2hvdWxk
VGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShc
J1wnKSwgbnVsbCknKQorc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2si
LCBhc2NpaVRvVWludDhBcnJheShcJ3tcJyksIG51bGwpJykKK3Nob3VsZFRocm93KCdjcnlwdG8u
c3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoXCdudWxsXCcpLCBudWxs
KScpCitzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9V
aW50OEFycmF5KFwndW5kZWZpbmVkXCcpLCBudWxsKScpCitzaG91bGRUaHJvdygnY3J5cHRvLnN1
YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KFwne31cJyksIG51bGwpJykK
K3Nob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4
QXJyYXkoXCd7fVwnKSwgImFlcy1jYmMiKScpCisKKy8vIFVua25vd24vaW52YWxpZCBKV0sgdmFs
dWVzLgorc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRv
VWludDhBcnJheShcJ3sgImt0eSI6ICJmb29iYXIiLCAiYWxnIjogIkhTMjU2IiwgInVzZSI6ICJz
aWciLCAiayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9
XCcpLCBudWxsKScpCitzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIs
IGFzY2lpVG9VaW50OEFycmF5KFwneyAia3R5IjogIm9jdCIsICJhbGciOiAiZm9vYmFyIiwgInVz
ZSI6ICJzaWciLCAiayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYy
M3FzIiB9XCcpLCBudWxsKScpCisKKy8vIEFsZ29yaXRobSBtaXNtYXRjaC4KK3Nob3VsZFRocm93
KCdjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoXCd7ICJr
dHkiOiAib2N0IiwgImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwgImV4dCI6IGZhbHNlLCAi
ayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9XCcpLCAi
YWVzLWNiYyIpJykKK3Nob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwg
YXNjaWlUb1VpbnQ4QXJyYXkoXCd7ICJrdHkiOiAib2N0IiwgImFsZyI6ICJIUzI1NiIsICJ1c2Ui
OiAic2lnIiwgImV4dCI6IGZhbHNlLCAiayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24z
NzM4N2ZnbnNpYmYyM3FzIiB9XCcpLCB7IG5hbWU6ICJobWFjIiwgaGFzaDogInNoYS0xIiB9KScp
CisKKy8vIE5vIGtleSBkYXRhLgorc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5
KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkhTMjU2
IiB9XCcpLCBudWxsKScpCitzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3
ayIsIGFzY2lpVG9VaW50OEFycmF5KFwneyAia3R5IjogIm9jdCIsICJhbGciOiAiQTEyOENCQyIg
fVwnKSwgbnVsbCknKQorCisvLyBLZXkgZGF0YSBsZW5ndGggaXMgaW5jb3JyZWN0LCBub3QgYWxs
b3dlZCBpbiBKV0suCitzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIs
IGFzY2lpVG9VaW50OEFycmF5KFwneyAia3R5IjogIm9jdCIsICJhbGciOiAiSFMyNTYiLCAidXNl
IjogInNpZyIsICJleHQiOiBmYWxzZSwgImsiOiAiMTIzNCIgfVwnKSwgbnVsbCknKQorc2hvdWxk
VGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShc
J3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkExMjhDQkMiLCAidXNlIjogInNpZyIsICJleHQiOiBm
YWxzZSwgImsiOiAiMTIzNCIgfVwnKSwgbnVsbCknKQorc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0
bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ3sgImt0eSI6ICJvY3QiLCAi
YWxnIjogIkExMjhDQkMiLCAidXNlIjogInNpZyIsICJleHQiOiBmYWxzZSwgImsiOiAiYWhqa24y
MzM4N2ZnbnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfVwnKSwgbnVsbCknKQorCisv
LyBLZXkgZGF0YSBpcyBub3QgdmFsaWQgYmFzZTY0dXJsLgorc2hvdWxkVGhyb3coJ2NyeXB0by5z
dWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ3sgImt0eSI6ICJvY3Qi
LCAiYWxnIjogIkhTMjU2IiwgInVzZSI6ICJzaWciLCAiZXh0IjogZmFsc2UsICJrIjogImFoamtu
MjMzODdmK25zaWJmMjNxc3ZhaGprbjM3Mzg3Zmduc2liZjIzcXMiIH1cJyksIG51bGwpJykKKwor
Ly8gSW5jb3JyZWN0IGRhdGEgdHlwZXMuCitzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5pbXBv
cnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KFwneyAia3R5IjogMSwgImFsZyI6ICJIUzI1
NiIsICJ1c2UiOiAic2lnIiwgImV4dCI6IGZhbHNlLCAiayI6ICJhaGprbjIzMzg3Zmduc2liZjIz
cXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9XCcpLCBudWxsKScpCitzaG91bGRUaHJvdygnY3J5
cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KFwneyAia3R5Ijog
Im9jdCIsICJhbGciOiAxLCAidXNlIjogInNpZyIsICJleHQiOiBmYWxzZSwgImsiOiAiYWhqa24y
MzM4N2ZnbnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfVwnKSwgbnVsbCknKQorc2hv
dWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJh
eShcJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkhTMjU2IiwgInVzZSI6IDEsICJleHQiOiBmYWxz
ZSwgImsiOiAiYWhqa24yMzM4N2ZnbnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfVwn
KSwgbnVsbCknKQorc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBh
c2NpaVRvVWludDhBcnJheShcJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkhTMjU2IiwgInVzZSI6
ICJzaWciLCAiZXh0IjogImZhbHNlIiwgImsiOiAiYWhqa24yMzM4N2ZnbnNpYmYyM3FzdmFoamtu
MzczODdmZ25zaWJmMjNxcyIgfVwnKSwgbnVsbCknKQorc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0
bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ3sgImt0eSI6ICJvY3QiLCAi
YWxnIjogIkhTMjU2IiwgInVzZSI6ICJzaWciLCAiZXh0IjogZmFsc2UsICJrIjogMSB9XCcpLCBu
dWxsKScpCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9qd2stZXhwb3J0LXVzZS12YWx1ZXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9qd2stZXhwb3J0LXVzZS12YWx1
ZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3MzdkYWZkMGY4MTA1NjUyYjVjOTg4MWQ4MGEz
NWRmMDMwZDU2NGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL2p3ay1leHBvcnQtdXNlLXZhbHVlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1MyBA
QAorVGVzdCBleHBvcnRpbmcga2V5cyB3aXRoIHZhcmlvdXMgdXNhZ2VzIHRvIEpXSy4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2VuY3J5cHQ6CitQQVNTIGp3ay51c2UgaXMgdW5k
ZWZpbmVkCitQQVNTIGp3ay5rZXlfb3BzIGlzIFsiZW5jcnlwdCJdCisKK2RlY3J5cHQ6CitQQVNT
IGp3ay51c2UgaXMgdW5kZWZpbmVkCitQQVNTIGp3ay5rZXlfb3BzIGlzIFsiZGVjcnlwdCJdCisK
K2VuY3J5cHQsZGVjcnlwdDoKK1BBU1MgandrLnVzZSBpcyB1bmRlZmluZWQKK1BBU1MgandrLmtl
eV9vcHMgaXMgWyJlbmNyeXB0IiwiZGVjcnlwdCJdCisKK3dyYXBLZXk6CitQQVNTIGp3ay51c2Ug
aXMgdW5kZWZpbmVkCitQQVNTIGp3ay5rZXlfb3BzIGlzIFsid3JhcEtleSJdCisKK3Vud3JhcEtl
eToKK1BBU1MgandrLnVzZSBpcyB1bmRlZmluZWQKK1BBU1MgandrLmtleV9vcHMgaXMgWyJ1bndy
YXBLZXkiXQorCit3cmFwS2V5LHVud3JhcEtleToKK1BBU1MgandrLnVzZSBpcyB1bmRlZmluZWQK
K1BBU1MgandrLmtleV9vcHMgaXMgWyJ3cmFwS2V5IiwidW53cmFwS2V5Il0KKworZW5jcnlwdCxk
ZWNyeXB0LHdyYXBLZXk6CitQQVNTIGp3ay51c2UgaXMgdW5kZWZpbmVkCitQQVNTIGp3ay5rZXlf
b3BzIGlzIFsiZW5jcnlwdCIsImRlY3J5cHQiLCJ3cmFwS2V5Il0KKworZW5jcnlwdCxkZWNyeXB0
LHdyYXBLZXksdW53cmFwS2V5OgorUEFTUyBqd2sudXNlIGlzIHVuZGVmaW5lZAorUEFTUyBqd2su
a2V5X29wcyBpcyBbImVuY3J5cHQiLCJkZWNyeXB0Iiwid3JhcEtleSIsInVud3JhcEtleSJdCisK
K3NpZ246CitQQVNTIGp3ay51c2UgaXMgdW5kZWZpbmVkCitQQVNTIGp3ay5rZXlfb3BzIGlzIFsi
c2lnbiJdCisKK3ZlcmlmeToKK1BBU1MgandrLnVzZSBpcyB1bmRlZmluZWQKK1BBU1MgandrLmtl
eV9vcHMgaXMgWyJ2ZXJpZnkiXQorCitzaWduLHZlcmlmeToKK1BBU1MgandrLnVzZSBpcyB1bmRl
ZmluZWQKK1BBU1MgandrLmtleV9vcHMgaXMgWyJzaWduIiwidmVyaWZ5Il0KKworUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvandrLWV4cG9ydC11c2UtdmFsdWVzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2p3ay1leHBvcnQtdXNlLXZhbHVlcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJlOWEyYTIyMjExMDE1NjViZDVkYWM5MTdlZjhmZmY4OTQ4YWZkN2MK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2p3ay1l
eHBvcnQtdXNlLXZhbHVlcy5odG1sCkBAIC0wLDAgKzEsNjQgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgZXhwb3J0aW5nIGtl
eXMgd2l0aCB2YXJpb3VzIHVzYWdlcyB0byBKV0suIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVl
OworCit2YXIgZXh0cmFjdGFibGUgPSB0cnVlOworCit2YXIgYWVzS2V5QXNBcnJheUJ1ZmZlciA9
IEJhc2U2NFVSTC5wYXJzZSgiam5Pdzk5b09aRkxJRVBNcmdKQjU1V0w0NnRKU0xHdDciKTsKK3Zh
ciBobWFjS2V5QXNBcnJheUJ1ZmZlciA9IEJhc2U2NFVSTC5wYXJzZSgiYWhqa24tXzM4N2ZnbnNp
YmYyM3FzdmFoamtuLV8zODdmZ25zaWJmMjNxcyIpOworCitmdW5jdGlvbiB0ZXN0V2l0aEFFU0NC
Qyh1c2FnZXMsIGV4cGVjdGVkS2V5T3BzKQoreworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmlt
cG9ydEtleSgicmF3IiwgYWVzS2V5QXNBcnJheUJ1ZmZlciwgIkFFUy1DQkMiLCBleHRyYWN0YWJs
ZSwgdXNhZ2VzKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICByZXR1cm4gY3J5cHRv
LnN1YnRsZS5leHBvcnRLZXkoImp3ayIsIHJlc3VsdCk7CisgICAgfSkudGhlbihmdW5jdGlvbihy
ZXN1bHQpIHsKKyAgICAgICAgandrID0gSlNPTi5wYXJzZShieXRlc1RvQVNDSUlTdHJpbmcocmVz
dWx0KSk7CisgICAgICAgIGRlYnVnKHVzYWdlcyArICI6Iik7CisgICAgICAgIHNob3VsZEJlKCJq
d2sudXNlIiwgInVuZGVmaW5lZCIpOworICAgICAgICBzaG91bGRCZSgiandrLmtleV9vcHMiLCBK
U09OLnN0cmluZ2lmeShleHBlY3RlZEtleU9wcykpOworICAgICAgICBkZWJ1ZygiIik7CisgICAg
fSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RXaXRoSE1BQyh1c2FnZXMsIGV4cGVjdGVkS2V5T3BzKQor
eworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3IiwgaG1hY0tleUFzQXJy
YXlCdWZmZXIsIHtuYW1lOiAnaG1hYycsIGhhc2g6IHtuYW1lOiAnc2hhLTI1Nid9fSwgZXh0cmFj
dGFibGUsIHVzYWdlcykudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgcmV0dXJuIGNy
eXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJqd2siLCByZXN1bHQpOworICAgIH0pLnRoZW4oZnVuY3Rp
b24ocmVzdWx0KSB7CisgICAgICAgIGp3ayA9IEpTT04ucGFyc2UoYnl0ZXNUb0FTQ0lJU3RyaW5n
KHJlc3VsdCkpOworICAgICAgICBkZWJ1Zyh1c2FnZXMgKyAiOiIpOworICAgICAgICBzaG91bGRC
ZSgiandrLnVzZSIsICJ1bmRlZmluZWQiKTsKKyAgICAgICAgc2hvdWxkQmUoImp3ay5rZXlfb3Bz
IiwgSlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWRLZXlPcHMpKTsKKyAgICAgICAgZGVidWcoIiIpOwor
ICAgIH0pOworfQorCitQcm9taXNlLmFsbChbCisgICAgdGVzdFdpdGhBRVNDQkMoWyJlbmNyeXB0
Il0sIFsiZW5jcnlwdCJdKSwKKyAgICB0ZXN0V2l0aEFFU0NCQyhbImRlY3J5cHQiXSwgWyJkZWNy
eXB0Il0pLAorICAgIHRlc3RXaXRoQUVTQ0JDKFsiZW5jcnlwdCIsICJkZWNyeXB0Il0sIFsiZW5j
cnlwdCIsICJkZWNyeXB0Il0pLAorICAgIHRlc3RXaXRoQUVTQ0JDKFsid3JhcEtleSJdLCBbIndy
YXBLZXkiXSksCisgICAgdGVzdFdpdGhBRVNDQkMoWyJ1bndyYXBLZXkiXSwgWyJ1bndyYXBLZXki
XSksCisgICAgdGVzdFdpdGhBRVNDQkMoWyJ3cmFwS2V5IiwgInVud3JhcEtleSJdLCBbIndyYXBL
ZXkiLCAidW53cmFwS2V5Il0pLAorICAgIHRlc3RXaXRoQUVTQ0JDKFsiZW5jcnlwdCIsICJkZWNy
eXB0IiwgIndyYXBLZXkiXSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSJdKSwKKyAg
ICB0ZXN0V2l0aEFFU0NCQyhbImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ3cmFwS2V5IiwgInVud3Jh
cEtleSJdLCBbImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ3cmFwS2V5IiwgInVud3JhcEtleSJdKSwK
KyAgICB0ZXN0V2l0aEhNQUMoWyJzaWduIl0sIFsic2lnbiJdKSwKKyAgICB0ZXN0V2l0aEhNQUMo
WyJ2ZXJpZnkiXSwgWyJ2ZXJpZnkiXSksCisgICAgdGVzdFdpdGhITUFDKFsic2lnbiIsICJ2ZXJp
ZnkiXSwgWyJzaWduIiwgInZlcmlmeSJdKSwKK10pLnRoZW4oZnVuY3Rpb24oKSB7IGZpbmlzaEpT
VGVzdCgpOyB9ICk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9qd2staW1wb3J0LXVzZS12YWx1ZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9qd2staW1wb3J0LXVz
ZS12YWx1ZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhZWRkYWE3YTViZTJhYWM1ZGZkY2Uz
MjI0NDM3Y2E3YTc3NzU1N2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL2p3ay1pbXBvcnQtdXNlLXZhbHVlcy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw1MyBAQAorVGVzdCBpbXBvcnRpbmcga2V5cyB3aXRoIHZhcmlvdXMgdXNlcyBmcm9tIEpXSy4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFdpdGhBRVNDQkMoWyJl
bmNyeXB0Il0sIHtrZXlfb3BzOiBbImVuY3J5cHQiLCAiZW5jcnlwdCJdfSkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogSldLIGtleV9vcHMgY29udGFpbnMgYSBkdXBsaWNhdGUgb3BlcmF0aW9u
LgorCit7ImtleV9vcHMiOlsiZW5jcnlwdCJdfToKK1BBU1Mga2V5LnVzYWdlcyBpcyBbImVuY3J5
cHQiXQorCit7ImtleV9vcHMiOlsiZGVjcnlwdCJdfToKK1BBU1Mga2V5LnVzYWdlcyBpcyBbImRl
Y3J5cHQiXQorCit7ImtleV9vcHMiOlsiZW5jcnlwdCIsImRlY3J5cHQiXX06CitQQVNTIGtleS51
c2FnZXMgaXMgWyJkZWNyeXB0IiwiZW5jcnlwdCJdCisKK3sia2V5X29wcyI6WyJ3cmFwS2V5Il19
OgorUEFTUyBrZXkudXNhZ2VzIGlzIFsid3JhcEtleSJdCisKK3sia2V5X29wcyI6WyJ1bndyYXBL
ZXkiXX06CitQQVNTIGtleS51c2FnZXMgaXMgWyJ1bndyYXBLZXkiXQorCit7ImtleV9vcHMiOlsi
d3JhcEtleSIsInVud3JhcEtleSJdfToKK1BBU1Mga2V5LnVzYWdlcyBpcyBbInVud3JhcEtleSIs
IndyYXBLZXkiXQorCit7ImtleV9vcHMiOlsiZW5jcnlwdCIsImRlY3J5cHQiLCJ3cmFwS2V5Il19
OgorUEFTUyBrZXkudXNhZ2VzIGlzIFsiZGVjcnlwdCIsImVuY3J5cHQiLCJ3cmFwS2V5Il0KKwor
eyJ1c2UiOiJlbmMifToKK1BBU1Mga2V5LnVzYWdlcyBpcyBbImRlY3J5cHQiLCJlbmNyeXB0Iiwi
dW53cmFwS2V5Iiwid3JhcEtleSJdCisKK3sia2V5X29wcyI6WyJzaWduIl19OgorUEFTUyBrZXku
dXNhZ2VzIGlzIFsic2lnbiJdCisKK3sia2V5X29wcyI6WyJ2ZXJpZnkiXX06CitQQVNTIGtleS51
c2FnZXMgaXMgWyJ2ZXJpZnkiXQorCit7InVzZSI6InNpZyJ9OgorUEFTUyBrZXkudXNhZ2VzIGlz
IFsic2lnbiIsInZlcmlmeSJdCisKK3sia2V5X29wcyI6WyInZW5jcnlwdCciXX06CitQQVNTIGtl
eS51c2FnZXMgaXMgW10KKworeyJrZXlfb3BzIjpbImVuY3J5cHQgIl19OgorUEFTUyBrZXkudXNh
Z2VzIGlzIFtdCisKK3sia2V5X29wcyI6WyJFbmNyeXB0Il19OgorUEFTUyBrZXkudXNhZ2VzIGlz
IFtdCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2p3ay1pbXBvcnQt
dXNlLXZhbHVlcy5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9qd2staW1w
b3J0LXVzZS12YWx1ZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMmJmMTMyNTM5MjY4MTE2MDY5ODA2ZDkz
OWNhN2VhYTFlYzkyODk3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9qd2staW1wb3J0LXVzZS12YWx1ZXMuaHRtbApAQCAtMCwwICsxLDk1IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29t
bW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJU
ZXN0IGltcG9ydGluZyBrZXlzIHdpdGggdmFyaW91cyB1c2VzIGZyb20gSldLLiIpOworCitqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKKwordmFyIGFlc0tl
eUFzSlNPTiA9IHsKKyAgICAiYWxnIjogIkExOTJDQkMiLAorICAgICJleHQiOiB0cnVlLAorICAg
ICJrdHkiOiAib2N0IiwKKyAgICAiayI6ICJqbk93OTlvT1pGTElFUE1yZ0pCNTVXTDQ2dEpTTEd0
NyIKK307CisKK3ZhciBobWFjS2V5QXNKU09OID0geworICAgICJhbGciOiAiSFMyNTYiLAorICAg
ICJleHQiOiB0cnVlLAorICAgICJrdHkiOiAib2N0IiwKKyAgICAiayI6ICJhaGprbi1fMzg3Zmdu
c2liZjIzcXN2YWhqa24tXzM4N2ZnbnNpYmYyM3FzIgorfTsKKworZnVuY3Rpb24gdGVzdFdpdGhB
RVNDQkMoZXhwZWN0ZWRVc2FnZXMsIGp3a1VzYWdlcykKK3sKKyAgICBpZiAoandrVXNhZ2VzLmtl
eV9vcHMpIHsKKyAgICAgICAgYWVzS2V5QXNKU09OLmtleV9vcHMgPSBqd2tVc2FnZXMua2V5X29w
czsKKyAgICAgICAgZGVsZXRlIGFlc0tleUFzSlNPTi51c2U7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgZGVsZXRlIGFlc0tleUFzSlNPTi5rZXlfb3BzOworICAgICAgICBhZXNLZXlBc0pTT04udXNl
ID0gandrVXNhZ2VzLnVzZTsKKyAgICB9CisKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBv
cnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KGFlc0tleUFzSlNP
TikpLCAiQUVTLUNCQyIsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ3cmFw
S2V5IiwgInVud3JhcEtleSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICBrZXkg
PSByZXN1bHQ7CisgICAgICAgIGRlYnVnKEpTT04uc3RyaW5naWZ5KGp3a1VzYWdlcykgKyAiOiIp
OworICAgICAgICBzaG91bGRCZSgia2V5LnVzYWdlcyIsIEpTT04uc3RyaW5naWZ5KGV4cGVjdGVk
VXNhZ2VzKSk7CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gdGVz
dFdpdGhITUFDKGV4cGVjdGVkVXNhZ2VzLCBqd2tVc2FnZXMpCit7CisgICAgaWYgKGp3a1VzYWdl
cy5rZXlfb3BzKSB7CisgICAgICAgIGhtYWNLZXlBc0pTT04ua2V5X29wcyA9IGp3a1VzYWdlcy5r
ZXlfb3BzOworICAgICAgICBkZWxldGUgaG1hY0tleUFzSlNPTi51c2U7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgZGVsZXRlIGhtYWNLZXlBc0pTT04ua2V5X29wczsKKyAgICAgICAgaG1hY0tleUFz
SlNPTi51c2UgPSBqd2tVc2FnZXMudXNlOworICAgIH0KKworICAgIHJldHVybiBjcnlwdG8uc3Vi
dGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkoaG1h
Y0tleUFzSlNPTikpLCB7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0yNTYnfX0sIGV4
dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Cisg
ICAgICAgIGtleSA9IHJlc3VsdDsKKyAgICAgICAgZGVidWcoSlNPTi5zdHJpbmdpZnkoandrVXNh
Z2VzKSArICI6Iik7CisgICAgICAgIHNob3VsZEJlKCJrZXkudXNhZ2VzIiwgSlNPTi5zdHJpbmdp
ZnkoZXhwZWN0ZWRVc2FnZXMpKTsKKyAgICAgICAgZGVidWcoIiIpOworICAgIH0pOworfQorCisv
LyBEdXBsaWNhdGVzIGFyZSBub3QgYWxsb3dlZC4gV2UgY3VycmVudGx5IHJhaXNlIGFuIGV4Y2Vw
dGlvbiwgYWx0aG91Z2ggd2Ugc2hvdWxkIHJlamVjdCB0aGUgcHJvbWlzZSBpbnN0ZWFkLgorc2hv
dWxkVGhyb3coJ3Rlc3RXaXRoQUVTQ0JDKFsiZW5jcnlwdCJdLCB7a2V5X29wczogWyJlbmNyeXB0
IiwgImVuY3J5cHQiXX0pJyk7CitkZWJ1ZygiIik7CisKK1Byb21pc2UuYWxsKFsKKyAgICB0ZXN0
V2l0aEFFU0NCQyhbImVuY3J5cHQiXSwge2tleV9vcHM6IFsiZW5jcnlwdCJdfSksCisgICAgdGVz
dFdpdGhBRVNDQkMoWyJkZWNyeXB0Il0sIHtrZXlfb3BzOiBbImRlY3J5cHQiXX0pLAorICAgIHRl
c3RXaXRoQUVTQ0JDKFsiZGVjcnlwdCIsICJlbmNyeXB0Il0sIHtrZXlfb3BzOiBbImVuY3J5cHQi
LCAiZGVjcnlwdCJdfSksCisgICAgdGVzdFdpdGhBRVNDQkMoWyJ3cmFwS2V5Il0sIHtrZXlfb3Bz
OiBbIndyYXBLZXkiXX0pLAorICAgIHRlc3RXaXRoQUVTQ0JDKFsidW53cmFwS2V5Il0sIHtrZXlf
b3BzOiBbInVud3JhcEtleSJdfSksCisgICAgdGVzdFdpdGhBRVNDQkMoWyJ1bndyYXBLZXkiLCAi
d3JhcEtleSJdLCB7a2V5X29wczogWyJ3cmFwS2V5IiwgInVud3JhcEtleSJdfSksCisgICAgdGVz
dFdpdGhBRVNDQkMoWyJkZWNyeXB0IiwgImVuY3J5cHQiLCAid3JhcEtleSJdLCB7a2V5X29wczog
WyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSJdfSksCisgICAgdGVzdFdpdGhBRVNDQkMo
WyJkZWNyeXB0IiwgImVuY3J5cHQiLCAidW53cmFwS2V5IiwgIndyYXBLZXkiXSwge3VzZTogImVu
YyJ9KSwKKyAgICB0ZXN0V2l0aEhNQUMoWyJzaWduIl0sIHtrZXlfb3BzOiBbInNpZ24iXX0pLAor
ICAgIHRlc3RXaXRoSE1BQyhbInZlcmlmeSJdLCB7a2V5X29wczogWyJ2ZXJpZnkiXX0pLAorICAg
IHRlc3RXaXRoSE1BQyhbInNpZ24iLCAidmVyaWZ5Il0sIHt1c2U6ICJzaWcifSksCisKKy8vIFVu
a25vd24ga2V5X29wcyBzdHJpbmdzIGFyZSBpZ25vcmVkLgorICAgIHRlc3RXaXRoQUVTQ0JDKFtd
LCB7a2V5X29wczogWyInZW5jcnlwdCciXX0pLAorICAgIHRlc3RXaXRoQUVTQ0JDKFtdLCB7a2V5
X29wczogWyJlbmNyeXB0ICJdfSksCisgICAgdGVzdFdpdGhBRVNDQkMoW10sIHtrZXlfb3BzOiBb
IkVuY3J5cHQiXX0pLAorCitdKS50aGVuKGZ1bmN0aW9uKCkgeyBmaW5pc2hKU1Rlc3QoKTsgfSAp
OworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvcG9zdE1lc3NhZ2Utd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcG9zdE1lc3NhZ2Utd29ya2VyLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42MGNkMzAyMGNiMTQ0ZGE3ZmJlYTdhZDFhYjNhZGUzM2UxZjQzMTFj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9wb3N0
TWVzc2FnZS13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3Qgc2VuZGlu
ZyBjcnlwdG8ga2V5cyB2aWEgcG9zdE1lc3NhZ2UgdG8gYSB3b3JrZXIuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitGQUlMIENoZWNrIGZhaWxlZCBpbiB3b3JrZXI6IGtleSBpcyBu
dWxsCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9wb3N0TWVzc2FnZS13
b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcG9zdE1lc3NhZ2Ut
d29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDc1ZWJmMzM5MjI2YzFjNTU1NGE3ZTQ2NmU2NWE1MTg0
NThhMjQ1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvcG9zdE1lc3NhZ2Utd29ya2VyLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHNlbmRpbmcgY3J5cHRvIGtleXMgdmlhIHBvc3RNZXNzYWdl
IHRvIGEgd29ya2VyLiIpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaW1wb3J0VGVzdEtl
eXMoKS50aGVuKGZ1bmN0aW9uKGtleXMpIHsKKyAgICB2YXIgd29ya2VyID0gbmV3IFdvcmtlcigi
cmVzb3VyY2VzL3Bvc3RNZXNzYWdlLXdvcmtlci5qcyIpOworICAgIHdvcmtlci5vbm1lc3NhZ2Ug
PSBmdW5jdGlvbihldnQpIHsKKyAgICAgICAgaWYgKCFldnQuZGF0YS5yZXN1bHQpIHsKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkNoZWNrIGZhaWxlZCBpbiB3b3JrZXI6ICIgKyBldnQuZGF0YS5t
ZXNzYWdlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkFsbCBj
aGVja3MgcGFzc2VkIGluIHdvcmtlciIpOworICAgICAgICAgICAga2V5ID0gZXZ0LmRhdGEua2V5
OworICAgICAgICAgICAgc2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7CisgICAgICAg
ICAgICBzaG91bGRCZSgia2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKKyAgICAgICAgICAgIHNo
b3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0hNQUMnIik7CisgICAgICAgICAgICBzaG91
bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMTYiKTsKKyAgICAgICAgICAgIHNob3VsZEJl
KCJrZXkudXNhZ2VzIiwgJ1siZGVjcnlwdCIsICJlbmNyeXB0IiwgInNpZ24iLCAidmVyaWZ5Il0n
KTsKKyAgICAgICAgfQorICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9CisgICAgd29ya2Vy
LnBvc3RNZXNzYWdlKGtleXMuaG1hY1NoYTEpOworfSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcmVzb3Vy
Y2VzL2NvbW1vbi5qcyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcmVzb3VyY2Vz
L2NvbW1vbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjBiMThjYmQxMDAwMTg3MjA2OTY2YWQ5MjFmNzIxMGMz
NmFmNTAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9yZXNvdXJjZXMvY29tbW9uLmpzCkBAIC0wLDAgKzEsMTA1IEBACitmdW5jdGlvbiBpbXBvcnRU
ZXN0S2V5cygpCit7CisgICAgdmFyIGtleUZvcm1hdCA9ICJyYXciOworICAgIHZhciBkYXRhID0g
YXNjaWlUb1VpbnQ4QXJyYXkoIjE2IGJ5dGVzIG9mIGtleSEiKTsKKyAgICB2YXIgZXh0cmFjdGFi
bGUgPSB0cnVlOworICAgIHZhciBrZXlVc2FnZXMgPSBbJ2VuY3J5cHQnLCAnZGVjcnlwdCcsICdz
aWduJywgJ3ZlcmlmeSddOworCisgICAgdmFyIGhtYWNQcm9taXNlID0gY3J5cHRvLnN1YnRsZS5p
bXBvcnRLZXkoa2V5Rm9ybWF0LCBkYXRhLCB7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFtZTogJ3No
YS0xJ319LCBleHRyYWN0YWJsZSwga2V5VXNhZ2VzKTsKKyAgICB2YXIgYWVzQ2JjUHJvbWlzZSA9
IGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KGtleUZvcm1hdCwgZGF0YSwge25hbWU6ICdBRVMtQ0JD
J30sIGV4dHJhY3RhYmxlLCBrZXlVc2FnZXMpOworICAgIHZhciBhZXNDYmNKdXN0RGVjcnlwdCA9
IGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KGtleUZvcm1hdCwgZGF0YSwge25hbWU6ICdBRVMtQ0JD
J30sIGZhbHNlLCBbJ2RlY3J5cHQnXSk7CisKKyAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2htYWNQ
cm9taXNlLCBhZXNDYmNQcm9taXNlLCBhZXNDYmNKdXN0RGVjcnlwdF0pLnRoZW4oZnVuY3Rpb24o
cmVzdWx0cykgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgaG1hY1NoYTE6IHJlc3Vs
dHNbMF0sCisgICAgICAgICAgICBhZXNDYmM6IHJlc3VsdHNbMV0sCisgICAgICAgICAgICBhZXND
YmNKdXN0RGVjcnlwdDogcmVzdWx0c1syXSwKKyAgICAgICAgfTsKKyAgICB9KTsKK30KKworLy8g
VmVyaWZpZXMgdGhhdCB0aGUgZ2l2ZW4gImJ5dGVzIiBob2xkcyB0aGUgc2FtZSB2YWx1ZSBhcyAi
ZXhwZWN0ZWRIZXhTdHJpbmciLgorLy8gImJ5dGVzIiBjYW4gYmUgYW55dGhpbmcgcmVjb2duaXpl
ZCBieSAiYnl0ZXNUb0hleFN0cmluZygpIi4KK2Z1bmN0aW9uIGJ5dGVzU2hvdWxkTWF0Y2hIZXhT
dHJpbmcodGVzdERlc2NyaXB0aW9uLCBleHBlY3RlZEhleFN0cmluZywgYnl0ZXMpCit7CisgICAg
ZXhwZWN0ZWRIZXhTdHJpbmcgPSAiWyIgKyBleHBlY3RlZEhleFN0cmluZy50b0xvd2VyQ2FzZSgp
ICsgIl0iOworICAgIHZhciBhY3R1YWxIZXhTdHJpbmcgPSAiWyIgKyBieXRlc1RvSGV4U3RyaW5n
KGJ5dGVzKSArICJdIjsKKworICAgIGlmIChhY3R1YWxIZXhTdHJpbmcgPT09IGV4cGVjdGVkSGV4
U3RyaW5nKSB7CisgICAgICAgIGRlYnVnKCJQQVNTOiAiICsgdGVzdERlc2NyaXB0aW9uICsgIiBz
aG91bGQgYmUgIiArIGV4cGVjdGVkSGV4U3RyaW5nICsgIiBhbmQgd2FzIik7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgZGVidWcoIkZBSUw6ICIgKyB0ZXN0RGVzY3JpcHRpb24gKyAiIHNob3VsZCBi
ZSAiICsgZXhwZWN0ZWRIZXhTdHJpbmcgKyAiIGJ1dCB3YXMgIiArIGFjdHVhbEhleFN0cmluZyk7
CisgICAgfQorfQorCisvLyBCdWlsZHMgYSBoZXggc3RyaW5nIHJlcHJlc2VudGF0aW9uIGZvciBh
biBhcnJheS1saWtlIGlucHV0LgorLy8gImJ5dGVzIiBjYW4gYmUgYW4gQXJyYXkgb2YgYnl0ZXMs
IGFuIEFycmF5QnVmZmVyLCBvciBhbnkgVHlwZWRBcnJheS4KKy8vIFRoZSBvdXRwdXQgbG9va3Mg
bGlrZSB0aGlzOgorLy8gICAgYWIwMzRjOTkKK2Z1bmN0aW9uIGJ5dGVzVG9IZXhTdHJpbmcoYnl0
ZXMpCit7CisgICAgaWYgKCFieXRlcykKKyAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICBieXRl
cyA9IG5ldyBVaW50OEFycmF5KGJ5dGVzKTsKKyAgICB2YXIgaGV4Qnl0ZXMgPSBbXTsKKworICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIGJ5
dGVTdHJpbmcgPSBieXRlc1tpXS50b1N0cmluZygxNik7CisgICAgICAgIGlmIChieXRlU3RyaW5n
Lmxlbmd0aCA8IDIpCisgICAgICAgICAgICBieXRlU3RyaW5nID0gIjAiICsgYnl0ZVN0cmluZzsK
KyAgICAgICAgaGV4Qnl0ZXMucHVzaChieXRlU3RyaW5nKTsKKyAgICB9CisKKyAgICByZXR1cm4g
aGV4Qnl0ZXMuam9pbigiIik7Cit9CisKK2Z1bmN0aW9uIGJ5dGVzVG9BU0NJSVN0cmluZyhieXRl
cykKK3sKKyAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLCBuZXcgVWlu
dDhBcnJheShieXRlcykpOworfQorCitmdW5jdGlvbiBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoaGV4
U3RyaW5nKQoreworICAgIGlmIChoZXhTdHJpbmcubGVuZ3RoICUgMiAhPSAwKQorICAgICAgICB0
aHJvdyAiSW52YWxpZCBoZXhTdHJpbmciOworICAgIHZhciBhcnJheUJ1ZmZlciA9IG5ldyBVaW50
OEFycmF5KGhleFN0cmluZy5sZW5ndGggLyAyKTsKKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
aGV4U3RyaW5nLmxlbmd0aDsgaSArPSAyKSB7CisgICAgICAgIHZhciBieXRlVmFsdWUgPSBwYXJz
ZUludChoZXhTdHJpbmcuc3Vic3RyKGksIDIpLCAxNik7CisgICAgICAgIGlmIChieXRlVmFsdWUg
PT0gTmFOKQorICAgICAgICAgICAgdGhyb3cgIkludmFsaWQgaGV4U3RyaW5nIjsKKyAgICAgICAg
YXJyYXlCdWZmZXJbaS8yXSA9IGJ5dGVWYWx1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gYXJyYXlC
dWZmZXI7Cit9CisKK2Z1bmN0aW9uIGFzY2lpVG9VaW50OEFycmF5KHN0cikKK3sKKyAgICB2YXIg
Y2hhcnMgPSBbXTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7ICsraSkKKyAg
ICAgICAgY2hhcnMucHVzaChzdHIuY2hhckNvZGVBdChpKSk7CisgICAgcmV0dXJuIG5ldyBVaW50
OEFycmF5KGNoYXJzKTsKK30KKworZnVuY3Rpb24gZmFpbEFuZEZpbmlzaEpTVGVzdChlcnJvcikK
K3sKKyAgICBpZiAoZXJyb3IpCisgICAgICAgZGVidWcoZXJyb3IpOworICAgIGZpbmlzaEpTVGVz
dCgpOworfQorCit2YXIgQmFzZTY0VVJMID0geworICAgIHN0cmluZ2lmeTogZnVuY3Rpb24gKGEp
IHsKKyAgICAgICAgdmFyIGJhc2U2NHN0cmluZyA9IGJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZS5h
cHBseSgwLCBhKSk7CisgICAgICAgIHJldHVybiBiYXNlNjRzdHJpbmcucmVwbGFjZSgvPS9nLCAi
IikucmVwbGFjZSgvXCsvZywgIi0iKS5yZXBsYWNlKC9cLy9nLCAiXyIpOworICAgIH0sCisgICAg
cGFyc2U6IGZ1bmN0aW9uIChzKSB7CisgICAgICAgIHMgPSBzLnJlcGxhY2UoLy0vZywgIisiKS5y
ZXBsYWNlKC9fL2csICIvIikucmVwbGFjZSgvXHMvZywgJycpOworICAgICAgICByZXR1cm4gbmV3
IFVpbnQ4QXJyYXkoQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGF0b2IocyksIGZ1bmN0aW9uIChj
KSB7IHJldHVybiBjLmNoYXJDb2RlQXQoMCkgfSkpOworICAgIH0KK307CisKK2lmICghY3J5cHRv
LnN1YnRsZSkKKyAgICBjcnlwdG8uc3VidGxlID0gY3J5cHRvLndlYmtpdFN1YnRsZTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcmVzb3VyY2VzL3Bvc3RNZXNz
YWdlLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcmVzb3VyY2Vz
L3Bvc3RNZXNzYWdlLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYTBiZWMyY2FiM2ZkNjM2OWY2Y2M0
ZTJjMWEzMmUzZGM5MjYzNjU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9yZXNvdXJjZXMvcG9zdE1lc3NhZ2Utd29ya2VyLmpzCkBAIC0wLDAgKzEs
MTYgQEAKK29ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2dCkKK3sKKyAgICB2YXIga2V5ID0gZXZ0LmRh
dGE7CisgICAgaWYgKCFrZXkpCisgICAgICAgIHBvc3RNZXNzYWdlKHsgcmVzdWx0OmZhbHNlLCBt
ZXNzYWdlOidrZXkgaXMgJyArIGtleSB9KTsKKyAgICBpZiAoa2V5LnR5cGUgIT0gJ3NlY3JldCcp
CisgICAgICAgIHBvc3RNZXNzYWdlKHsgcmVzdWx0OmZhbHNlLCBtZXNzYWdlOidrZXkudHlwZSBz
aG91bGQgYmUgInNlY3JldCInIH0pOworICAgIGVsc2UgaWYgKCFrZXkuZXh0cmFjdGFibGUpCisg
ICAgICAgIHBvc3RNZXNzYWdlKHsgcmVzdWx0OmZhbHNlLCBtZXNzYWdlOidrZXkuZXh0cmFjdGFi
bGUgc2hvdWxkIGJlIHRydWUnIH0pOworICAgIGVsc2UgaWYgKGtleS5hbGdvcml0aG0ubmFtZSAh
PSAiSE1BQyIpCisgICAgICAgIHBvc3RNZXNzYWdlKHsgcmVzdWx0OmZhbHNlLCBtZXNzYWdlOidr
ZXkuYWxnb3JpdGhtLm5hbWUgc2hvdWxkIGJlICJITUFDIicgfSk7CisgICAgZWxzZSBpZiAoa2V5
LnVzYWdlcy50b1N0cmluZygpICE9ICJkZWNyeXB0LGVuY3J5cHQsc2lnbix2ZXJpZnkiKQorICAg
ICAgICBwb3N0TWVzc2FnZSh7IHJlc3VsdDpmYWxzZSwgbWVzc2FnZTona2V5LnVzYWdlcyBzaG91
bGQgYmUgWyJkZWNyeXB0IiwgImVuY3J5cHQiLCAic2lnbiIsICJ2ZXJpZnkiXScgfSk7CisgICAg
ZWxzZQorICAgICAgICBwb3N0TWVzc2FnZSh7IHJlc3VsdDp0cnVlLCBrZXk6a2V5IH0pOworfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yZXNvdXJjZXMvcnNh
LWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS5qcyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRT
dWJ0bGUvcmVzb3VyY2VzL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTc2ZWVmMjMwMmFmMmYwNmIzYzIwZTA2ZTNjYjU3OTY2ZDRkOTc4YQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcmVzb3VyY2VzL3JzYS1pbmRl
eGVkZGItbm9uLWV4cG9ydGFibGUuanMKQEAgLTAsMCArMSw2MSBAQAorZGVzY3JpcHRpb24oIlRl
c3Qgc3RvcmluZyBhIHByaXZhdGUgUlNBIGtleSBpbiBJbmRleGVkREIsIGFuZCByZXRyaWV2aW5n
IGl0LiIpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIHByaXZhdGVLZXlKU09OID0g
eworICAgIGt0eTogIlJTQSIsCisgICAgYWxnOiAiUlMyNTYiLAorICAgIG46ICJyY0NVQ3Y3T2Mx
SFZhbTFESWhDenFrblRoV2F3T3A4UUxrOFppeTJwMTBCeWpRRkNham9GaXl1QVdsLVIxV1haYWY0
eGl0TFJyYWNUOWFncHpJemMtTWJMU0hJR2dXUUdPMjFsR2lJbXk1ZnRaLUQ4YkhBcVJ6MnkxNXB6
RDRjNENFb3U3WFNTTERvUm5SMFFHNU1zRGhENnMyZ1Y5bXdIa3J0a0N4dE1XZEJpLTc3YXM4d0dt
bE5SbGRjT1NnWkRMSzhVbkNTZ0ExT2d1Wjk4OWJGeWM4dE9PRUliMHhVU2ZQU3ozTFBTQ255WXo2
OGFEam1LVmVOSC1pZzg1N09TY3lXYkd5RXkzQml3NjRxdW4zanVVbE5Xc0ozem5na09kdGVZV3l0
eDVRcjRYS05zNlItTXl5cTcyS1VwMDJtSkRaaWl5aWdseE1MX2kzLV9DZWVjQ3ciLAorICAgIGU6
ICJBUUFCIiwKKyAgICBkOiAiZU5MUzM3YUN6N1JYU05QRF9EdExCSjZqNVQ4Y1N4ZHpSQkNqUGFJ
NldjR3FKcDE2bHEzVVR3dW9ETEFxbEE5b0dZbTIzOGRzSVdwdXVjUF9sUXRiV2UtN1NweG9JNl92
bVlHZjdZVlVIdjEtREY5cWlPbVNyTW1keE1uVk96WVhZOFJhVDZ0aFBqbl9KNWNmTFYyeElfTHdz
ck10bXBkU3lObGdYMHpUVWh3dHVhaGdBS01FQ2hZakgyRW5qSGRIdzZzWTItd0FwZGNRSTdVTEUw
b281UnpiUVpwbXVoY045aGlCYzBMM2hoRjBxbzUwbWJsMDJfNjVfR1E3RHBWa1hCeE5nUkJMemxQ
YWJtenpHMm9BaGZlZkxnWW1TQzFvcGFDa1hFNnZSV1FOV05MNDVSWk5aRllNM3VvSmdoT01xR2Vv
Y00wQnBqZENoSHJQT2xGdlNRIiwKKyAgICBwOiAiNG1pVHVBaktNZUg1dUo1S0IzOTdRVXdoYmtZ
RWdTYmNBMm1pZm1Ta3ZFMjAxOGdiNTVxa0JISzFlVnJ5ZjFfbTQzTE5sYzZPX2FrNmdmemRaSVp2
UzVOQ0dqUGwwcTA5cGxVcHU4cUZPU3NwQndBNjdxR0g3NmxGbFpMbl9kNHlnbFM3d2ZMcnU0XzVZ
czhxTExzLURxVkx2aXdwb3NPbnl5V3F3TTVBWHAwIiwKKyAgICBxOiAieEhZcnpraXZ0bW56X3NH
Y2huV0djMHEtcERPa0tpY3B0UnB2MnBNRklJWHhuRlg1YU1lRVhJWmpWdWpYdHdVeTFVbEZJTjJH
WkpTdnk1S0o3OW11X1h5Tm5GSE16ZWRILUEzZWUzdThoMVVVclpGLXZVdTFfZTRVX3g2N05OMWRl
ZHpVU0t5bk43cEZsM09rdVNoTUJXR1YtY3d6T1BkY1ZBZlZ1Wmx4VU1jIiwKKyAgICBkcDogImZC
ekR6WURVQm1CUUdvcDdIbjBkdmZfVDI3VjZScXBjdFdvMDc0Q1FaY0ZiUDJhdEZWdEtTajN2aVdU
M3hpZDJWSHpjZ2lESGRmcE0zbkVWbEVPMXd3SW9uR0NTdmRqR0VPWmlpRlZPanJaQU9WeEE4Z3VP
anl5RnZxYlhrZTA2VndQSUlWdmZLZVNVMnp1aGJQX18xdHQ2Rl9meG93NEtiMnhvbkdUMEdHayIs
CisgICAgZHE6ICJqbUUyRGlJUGRod0RnTFhBUXBJYUJxUTgxYk8zWGZWVF9MUlVMQXd3d3dsUHVR
VjE0OEgwNHpsaDlUSjZZMkdaSFlva1YxVTBlT0JwSnhma2I3ZExZdHBKcHVpQmpSZjR5SVVFb0ds
a2tJX1FsSm5GU0ZyLVlqR1JkZk5IcVdCa3hsU01aTDc3MFI5bUlBVG5kR2tIN3o1eC1yOUt3QlpG
QzRGQ0cyaGdfekUiLAorICAgIHFpOiAiWUNYX3BMd2JNQkExVGhWSDBXY3dtbnl0cU5jck1DRXdU
bTdCeUEyZVU2bldiUXJVTHZmN205X2t6ZkxVY2pzbnBBVmxCUUc1Sk1YTXkwU3E0cHR3Ynl3c2E1
LUc4S0FPT09SMkwzdjRoQy1FeXM5ZnRnRk1fM2kwbzQwZWVRSDRiM2hhUGJudHJJZU1nOEl6bE91
VllLZjktMlF1S0RvV2VSZGQ3TnNkeFRrIgorfTsKKworY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXko
Imp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KHByaXZhdGVLZXlKU09OKSks
IG51bGwsIGZhbHNlLCBbInNpZ24iLCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24oa2V5KSB7Cisg
ICAgdmFyIG9wZW5SZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oImNyeXB0b19zdWJ0bGUiKTsKKyAg
ICBvcGVuUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgeworICAgICAg
ICB2YXIgb2JqZWN0U3RvcmUgPSBldmVudC50YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3Jl
KCJyc2EtaW5kZXhlZGRiIik7CisgICAgfQorICAgIG9wZW5SZXF1ZXN0Lm9uZXJyb3IgPSBmdW5j
dGlvbihldmVudCkgeworICAgICAgICB0ZXN0RmFpbGVkKCJDb3VsZCBub3Qgb3BlbiBkYXRhYmFz
ZTogIiArIGV2ZW50LnRhcmdldC5lcnJvci5uYW1lKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgfQorICAgIG9wZW5SZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgc3RvcmVLZXkoKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBzdG9yZUtleSgpIHsKKyAgICAgICAgdmFyIG9iamVjdFN0b3Jl
ID0gZGIudHJhbnNhY3Rpb24oInJzYS1pbmRleGVkZGIiLCAicmVhZHdyaXRlIikub2JqZWN0U3Rv
cmUoInJzYS1pbmRleGVkZGIiKTsKKyAgICAgICAgdmFyIHJlcSA9IG9iamVjdFN0b3JlLnB1dChr
ZXksICJteWtleSIpOworICAgICAgICByZXEub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb3VsZCBub3QgcHV0IGEga2V5IGludG8gZGF0YWJhc2U6
ICIgKyBldmVudC50YXJnZXQuZXJyb3IubmFtZSk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICAgICAgfQorICAgICAgICByZXEub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsg
cmVhZEtleSgpOyB9CisgICAgfQorCisgICAgZnVuY3Rpb24gcmVhZEtleSgpIHsKKyAgICAgICAg
dmFyIG9iamVjdFN0b3JlID0gZGIudHJhbnNhY3Rpb24oInJzYS1pbmRleGVkZGIiKS5vYmplY3RT
dG9yZSgicnNhLWluZGV4ZWRkYiIpOworICAgICAgICB2YXIgcmVxID0gb2JqZWN0U3RvcmUuZ2V0
KCJteWtleSIpOworICAgICAgICByZXEub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJDb3VsZCBub3QgZ2V0IGEga2V5IGZyb20gZGF0YWJhc2U6ICIg
KyBldmVudC50YXJnZXQuZXJyb3IubmFtZSk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICAgICAgfQorICAgICAgICByZXEub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAg
ICAgICAgICAgIHdpbmRvdy5yZXRyaWV2ZWRLZXkgPSBldmVudC50YXJnZXQucmVzdWx0OworICAg
ICAgICAgICAgc2hvdWxkQmUoInJldHJpZXZlZEtleS50eXBlIiwgIidwcml2YXRlJyIpOworICAg
ICAgICAgICAgc2hvdWxkQmUoInJldHJpZXZlZEtleS5leHRyYWN0YWJsZSIsICJmYWxzZSIpOwor
ICAgICAgICAgICAgc2hvdWxkQmUoInJldHJpZXZlZEtleS5hbGdvcml0aG0ubmFtZSIsICInUlNB
U1NBLVBLQ1MxLXYxXzUnIik7CisgICAgICAgICAgICBzaG91bGRCZSgicmV0cmlldmVkS2V5LmFs
Z29yaXRobS5tb2R1bHVzTGVuZ3RoIiwgIjIwNDgiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJi
eXRlc1RvSGV4U3RyaW5nKHJldHJpZXZlZEtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwg
IicwMTAwMDEnIik7CisgICAgICAgICAgICBzaG91bGRCZSgicmV0cmlldmVkS2V5LnVzYWdlcyIs
ICdbInNpZ24iLCAidmVyaWZ5Il0nKTsKKworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgICAgIH0KKyAgICB9Cit9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJr
aXRTdWJ0bGUvcmVzb3VyY2VzL3JzYS1pbmRleGVkZGIuanMgYi9MYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL3Jlc291cmNlcy9yc2EtaW5kZXhlZGRiLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxMTI0
MTYzNGRiOTNmOTRiOWE5Y2Y2Y2I5ZjU0YzdiNjcwM2M4NDAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3Jlc291cmNlcy9yc2EtaW5kZXhlZGRiLmpz
CkBAIC0wLDAgKzEsNjEgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IHN0b3JpbmcgYSBwcml2YXRlIFJT
QSBrZXkgaW4gSW5kZXhlZERCLCBhbmQgcmV0cmlldmluZyBpdC4iKTsKKworanNUZXN0SXNBc3lu
YyA9IHRydWU7CisKK3ZhciBwcml2YXRlS2V5SlNPTiA9IHsKKyAgICBrdHk6ICJSU0EiLAorICAg
IGFsZzogIlJTMjU2IiwKKyAgICBuOiAicmNDVUN2N09jMUhWYW0xREloQ3pxa25UaFdhd09wOFFM
azhaaXkycDEwQnlqUUZDYWpvRml5dUFXbC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6SXpjLU1iTFNI
SUdnV1FHTzIxbEdpSW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVN
c0RoRDZzMmdWOW13SGtydGtDeHRNV2RCaS03N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5DU2dBMU9n
dVo5ODliRnljOHRPT0VJYjB4VVNmUFN6M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JH
eUV5M0JpdzY0cXVuM2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3MktVcDAy
bUpEWmlpeWlnbHhNTF9pMy1fQ2VlY0N3IiwKKyAgICBlOiAiQVFBQiIsCisgICAgZDogImVOTFMz
N2FDejdSWFNOUERfRHRMQko2ajVUOGNTeGR6UkJDalBhSTZXY0dxSnAxNmxxM1VUd3VvRExBcWxB
OW9HWW0yMzhkc0lXcHV1Y1BfbFF0YldlLTdTcHhvSTZfdm1ZR2Y3WVZVSHYxLURGOXFpT21Tck1t
ZHhNblZPellYWThSYVQ2dGhQam5fSjVjZkxWMnhJX0x3c3JNdG1wZFN5TmxnWDB6VFVod3R1YWhn
QUtNRUNoWWpIMkVuakhkSHc2c1kyLXdBcGRjUUk3VUxFMG9vNVJ6YlFacG11aGNOOWhpQmMwTDNo
aEYwcW81MG1ibDAyXzY1X0dRN0RwVmtYQnhOZ1JCTHpsUGFibXp6RzJvQWhmZWZMZ1ltU0Mxb3Bh
Q2tYRTZ2UldRTldOTDQ1UlpOWkZZTTN1b0pnaE9NcUdlb2NNMEJwamRDaEhyUE9sRnZTUSIsCisg
ICAgcDogIjRtaVR1QWpLTWVINXVKNUtCMzk3UVV3aGJrWUVnU2JjQTJtaWZtU2t2RTIwMThnYjU1
cWtCSEsxZVZyeWYxX200M0xObGM2T19hazZnZnpkWkladlM1TkNHalBsMHEwOXBsVXB1OHFGT1Nz
cEJ3QTY3cUdINzZsRmxaTG5fZDR5Z2xTN3dmTHJ1NF81WXM4cUxMcy1EcVZMdml3cG9zT255eVdx
d001QVhwMCIsCisgICAgcTogInhIWXJ6a2l2dG1uel9zR2NobldHYzBxLXBET2tLaWNwdFJwdjJw
TUZJSVh4bkZYNWFNZUVYSVpqVnVqWHR3VXkxVWxGSU4yR1pKU3Z5NUtKNzltdV9YeU5uRkhNemVk
SC1BM2VlM3U4aDFVVXJaRi12VXUxX2U0VV94NjdOTjFkZWR6VVNLeW5ON3BGbDNPa3VTaE1CV0dW
LWN3ek9QZGNWQWZWdVpseFVNYyIsCisgICAgZHA6ICJmQnpEellEVUJtQlFHb3A3SG4wZHZmX1Qy
N1Y2UnFwY3RXbzA3NENRWmNGYlAyYXRGVnRLU2ozdmlXVDN4aWQyVkh6Y2dpREhkZnBNM25FVmxF
TzF3d0lvbkdDU3ZkakdFT1ppaUZWT2pyWkFPVnhBOGd1T2p5eUZ2cWJYa2UwNlZ3UElJVnZmS2VT
VTJ6dWhiUF9fMXR0NkZfZnhvdzRLYjJ4b25HVDBHR2siLAorICAgIGRxOiAiam1FMkRpSVBkaHdE
Z0xYQVFwSWFCcVE4MWJPM1hmVlRfTFJVTEF3d3d3bFB1UVYxNDhIMDR6bGg5VEo2WTJHWkhZb2tW
MVUwZU9CcEp4ZmtiN2RMWXRwSnB1aUJqUmY0eUlVRW9HbGtrSV9RbEpuRlNGci1ZakdSZGZOSHFX
Qmt4bFNNWkw3NzBSOW1JQVRuZEdrSDd6NXgtcjlLd0JaRkM0RkNHMmhnX3pFIiwKKyAgICBxaTog
IllDWF9wTHdiTUJBMVRoVkgwV2N3bW55dHFOY3JNQ0V3VG03QnlBMmVVNm5XYlFyVUx2ZjdtOV9r
emZMVWNqc25wQVZsQlFHNUpNWE15MFNxNHB0d2J5d3NhNS1HOEtBT09PUjJMM3Y0aEMtRXlzOWZ0
Z0ZNXzNpMG80MGVlUUg0YjNoYVBibnRySWVNZzhJemxPdVZZS2Y5LTJRdUtEb1dlUmRkN05zZHhU
ayIKK307CisKK2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJh
eShKU09OLnN0cmluZ2lmeShwcml2YXRlS2V5SlNPTikpLCBudWxsLCB0cnVlLCBbInNpZ24iLCAi
dmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24oa2V5KSB7CisgICAgdmFyIG9wZW5SZXF1ZXN0ID0gaW5k
ZXhlZERCLm9wZW4oImNyeXB0b19zdWJ0bGUiKTsKKyAgICBvcGVuUmVxdWVzdC5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBldmVu
dC50YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJyc2EtaW5kZXhlZGRiIik7CisgICAg
fQorICAgIG9wZW5SZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICB0
ZXN0RmFpbGVkKCJDb3VsZCBub3Qgb3BlbiBkYXRhYmFzZTogIiArIGV2ZW50LnRhcmdldC5lcnJv
ci5uYW1lKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQorICAgIG9wZW5SZXF1ZXN0
Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQudGFyZ2V0
LnJlc3VsdDsKKyAgICAgICAgc3RvcmVLZXkoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdG9y
ZUtleSgpIHsKKyAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGIudHJhbnNhY3Rpb24oInJzYS1p
bmRleGVkZGIiLCAicmVhZHdyaXRlIikub2JqZWN0U3RvcmUoInJzYS1pbmRleGVkZGIiKTsKKyAg
ICAgICAgdmFyIHJlcSA9IG9iamVjdFN0b3JlLnB1dChrZXksICJteWtleSIpOworICAgICAgICBy
ZXEub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJD
b3VsZCBub3QgcHV0IGEga2V5IGludG8gZGF0YWJhc2U6ICIgKyBldmVudC50YXJnZXQuZXJyb3Iu
bmFtZSk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorICAgICAgICBy
ZXEub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsgcmVhZEtleSgpOyB9CisgICAgfQorCisg
ICAgZnVuY3Rpb24gcmVhZEtleSgpIHsKKyAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGIudHJh
bnNhY3Rpb24oInJzYS1pbmRleGVkZGIiKS5vYmplY3RTdG9yZSgicnNhLWluZGV4ZWRkYiIpOwor
ICAgICAgICB2YXIgcmVxID0gb2JqZWN0U3RvcmUuZ2V0KCJteWtleSIpOworICAgICAgICByZXEu
b25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb3Vs
ZCBub3QgZ2V0IGEga2V5IGZyb20gZGF0YWJhc2U6ICIgKyBldmVudC50YXJnZXQuZXJyb3IubmFt
ZSk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorICAgICAgICByZXEu
b25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIHdpbmRvdy5yZXRyaWV2
ZWRLZXkgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgc2hvdWxkQmUoInJldHJp
ZXZlZEtleS50eXBlIiwgIidwcml2YXRlJyIpOworICAgICAgICAgICAgc2hvdWxkQmUoInJldHJp
ZXZlZEtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7CisgICAgICAgICAgICBzaG91bGRCZSgicmV0
cmlldmVkS2V5LmFsZ29yaXRobS5uYW1lIiwgIidSU0FTU0EtUEtDUzEtdjFfNSciKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXRyaWV2ZWRLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAi
MjA0OCIpOworICAgICAgICAgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcocmV0cmlldmVk
S2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAxMDAwMSciKTsKKyAgICAgICAgICAg
IHNob3VsZEJlKCJyZXRyaWV2ZWRLZXkudXNhZ2VzIiwgJ1sic2lnbiIsICJ2ZXJpZnkiXScpOwor
CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorICAgIH0KK30pOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtZXhwb3J0LWdlbmVy
YXRlZC1rZXlzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUv
cnNhLWV4cG9ydC1nZW5lcmF0ZWQta2V5cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQ0Yjg0
NzQ2NjdjNTJhNDg4OWM4MThkN2Q2OWNmZjExNTM0NWEzOAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1nZW5lcmF0ZWQta2V5cy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMiBAQAorVGVzdCBleHBvcnRpbmcgYSBnZW5lcmF0ZWQg
UlNBIGtleXBhaXIgd2l0aCBoYXNoLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
CitHZW5lcmF0aW5nIFJTQS1QS0NTMS12MS41IGtleVBhaXIuLi4KK1BBU1MgY3J5cHRvLnN1YnRs
ZS5leHBvcnRLZXkobnVsbCwga2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3du
IGtleSBmb3JtYXQuCitQQVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KHVuZGVmaW5lZCwga2V5
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQuCitQQVNTIGNy
eXB0by5zdWJ0bGUuZXhwb3J0S2V5KHt9LCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IFVua25vd24ga2V5IGZvcm1hdC4KK1BBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoIiIsIGtl
eSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0LgorUEFTUyBj
cnlwdG8uc3VidGxlLmV4cG9ydEtleSgiZm9vYmFyIiwga2V5KSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQuCitQQVNTIGtleS5wdWJsaWNLZXkuYWxnb3JpdGht
Lmhhc2gubmFtZSBpcyBkZWZpbmVkLgorUEFTUyBrZXkucHJpdmF0ZUtleS5hbGdvcml0aG0uaGFz
aC5uYW1lIGlzIGRlZmluZWQuCisKK0V4cG9ydGluZyBwdWJsaWMga2V5IGFzIEpXSy4uLgorUEFT
UyBleHBvcnRlZEpXSy5rdHkgaXMgJ1JTQScKK1BBU1MgZXhwb3J0ZWRKV0suYWxnIGlzICdSUzI1
NicKK1BBU1MgZXhwb3J0ZWRKV0suZXh0IGlzIHRydWUKK1BBU1MgZXhwb3J0ZWRKV0sudXNlIGlz
IHVuZGVmaW5lZAorUEFTUyBleHBvcnRlZEpXSy5rZXlfb3BzIGlzIFsnc2lnbicsICd2ZXJpZnkn
XQorCitFeHBvcnRpbmcgcHJpdmF0ZSBrZXkgYXMgSldLLi4uCitQQVNTIGV4cG9ydGVkSldLLmt0
eSBpcyAnUlNBJworUEFTUyBleHBvcnRlZEpXSy5hbGcgaXMgJ1JTMjU2JworUEFTUyBleHBvcnRl
ZEpXSy5leHQgaXMgdHJ1ZQorUEFTUyBleHBvcnRlZEpXSy51c2UgaXMgdW5kZWZpbmVkCitQQVNT
IGV4cG9ydGVkSldLLmtleV9vcHMgaXMgWydzaWduJywgJ3ZlcmlmeSddCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtZXhwb3J0LWdlbmVyYXRlZC1rZXlzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQtZ2VuZXJhdGVkLWtl
eXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41ZTI2N2VmNzY2YjBmMjM1NjliMWNhMjY5MTY0YTE3ZTcyODFm
ZjYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9y
c2EtZXhwb3J0LWdlbmVyYXRlZC1rZXlzLmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCBleHBv
cnRpbmcgYSBnZW5lcmF0ZWQgUlNBIGtleXBhaXIgd2l0aCBoYXNoLiIpOworCitqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKKwordmFyIGFsZ29yaXRobSA9
IHsKKyAgICBuYW1lOiAiUlNBU1NBLVBLQ1MxLXYxXzUiLAorICAgIG1vZHVsdXNMZW5ndGg6ICIy
MDQ4IiwKKyAgICBwdWJsaWNFeHBvbmVudDogbmV3IFVpbnQ4QXJyYXkoWzEsIDAsIDFdKSwgLy8g
Ml4xNiArIDEgKDY1NTM3KQorICAgIGhhc2g6IHsgbmFtZTogIlNIQS0yNTYiIH0KK307CisKK2Rl
YnVnKCJcbkdlbmVyYXRpbmcgUlNBLVBLQ1MxLXYxLjUga2V5UGFpci4uLiIpOworY3J5cHRvLnN1
YnRsZS5nZW5lcmF0ZUtleShhbGdvcml0aG0sIGV4dHJhY3RhYmxlLCBbJ3NpZ24nLCAndmVyaWZ5
J10pCisudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBrZXkgPSByZXN1bHQ7CisKKyAgICBz
aG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkobnVsbCwga2V5KScpOworICAgIHNo
b3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmV4cG9ydEtleSh1bmRlZmluZWQsIGtleSknKTsKKyAg
ICBzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoe30sIGtleSknKTsKKyAgICBz
aG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoIiIsIGtleSknKTsKKyAgICBzaG91
bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoImZvb2JhciIsIGtleSknKTsKKyAgICBz
aG91bGRCZURlZmluZWQoJ2tleS5wdWJsaWNLZXkuYWxnb3JpdGhtLmhhc2gubmFtZScpOworICAg
IHNob3VsZEJlRGVmaW5lZCgna2V5LnByaXZhdGVLZXkuYWxnb3JpdGhtLmhhc2gubmFtZScpOwor
CisgICAgZGVidWcoIlxuRXhwb3J0aW5nIHB1YmxpYyBrZXkgYXMgSldLLi4uIik7CisgICAgcmV0
dXJuIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJqd2siLCBrZXkucHVibGljS2V5KTsKK30pLnRo
ZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgZXhwb3J0ZWRKV0sgPSBKU09OLnBhcnNlKGJ5dGVz
VG9BU0NJSVN0cmluZyhyZXN1bHQpKTsKKworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rdHki
LCAiJ1JTQSciKTsKKyAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suYWxnIiwgIidSUzI1NiciKTsK
KyAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suZXh0IiwgInRydWUiKTsKKyAgICBzaG91bGRCZSgi
ZXhwb3J0ZWRKV0sudXNlIiwgInVuZGVmaW5lZCIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpX
Sy5rZXlfb3BzIiwgIlsnc2lnbicsICd2ZXJpZnknXSIpOworCisgICAgZGVidWcoIlxuRXhwb3J0
aW5nIHByaXZhdGUga2V5IGFzIEpXSy4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmV4
cG9ydEtleSgiandrIiwga2V5LnByaXZhdGVLZXkpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQp
IHsKKyAgICBleHBvcnRlZEpXSyA9IEpTT04ucGFyc2UoYnl0ZXNUb0FTQ0lJU3RyaW5nKHJlc3Vs
dCkpOworCisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmt0eSIsICInUlNBJyIpOworICAgIHNo
b3VsZEJlKCJleHBvcnRlZEpXSy5hbGciLCAiJ1JTMjU2JyIpOworICAgIHNob3VsZEJlKCJleHBv
cnRlZEpXSy5leHQiLCAidHJ1ZSIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy51c2UiLCAi
dW5kZWZpbmVkIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmtleV9vcHMiLCAiWydzaWdu
JywgJ3ZlcmlmeSddIik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+CisK
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRT
dWJ0bGUvcnNhLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9yc2EtZXhwb3J0LWtleS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmVlN2I3
YWNmNjM4Yzk2Yzk4NmQ2MThjNzZiZGU3ZDgzOTc4NDU3MQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMjUgQEAKK1Rlc3QgZXhwb3J0aW5nIGFuIFJTQSBrZXkuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCisKK0ltcG9ydGluZyBhIEpXSyBrZXkuLi4KK1BBU1MgY3J5
cHRvLnN1YnRsZS5leHBvcnRLZXkobnVsbCwga2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBVbmtub3duIGtleSBmb3JtYXQuCitQQVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KHVuZGVm
aW5lZCwga2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQu
CitQQVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KHt9LCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IFVua25vd24ga2V5IGZvcm1hdC4KK1BBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRL
ZXkoIiIsIGtleSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0
LgorUEFTUyBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgiZm9vYmFyIiwga2V5KSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQuCisKK0V4cG9ydGluZyB0aGUga2V5
IGFzIEpXSy4uLgorUEFTUyBleHBvcnRlZEpXSy5rdHkgaXMgJ1JTQScKK1BBU1MgZXhwb3J0ZWRK
V0subiBpcyBwdWJsaWNLZXlKU09OLm4KK1BBU1MgZXhwb3J0ZWRKV0suZSBpcyBwdWJsaWNLZXlK
U09OLmUKK1BBU1MgZXhwb3J0ZWRKV0suYWxnIGlzICdSUzI1NicKK1BBU1MgZXhwb3J0ZWRKV0su
ZXh0IGlzIHRydWUKK1BBU1MgZXhwb3J0ZWRKV0sudXNlIGlzIHVuZGVmaW5lZAorUEFTUyBleHBv
cnRlZEpXSy5rZXlfb3BzIGlzIFsnc2lnbicsICd2ZXJpZnknXQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1rZXkuaHRtbCBiL0xheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1rZXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTY1YmNm
ZmRhMjFkYTY5MmViNWFhZDg4YzZjNTQ1NzA1MTg0ZjEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtZXhwb3J0LWtleS5odG1sCkBAIC0wLDAg
KzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oIlRlc3QgZXhwb3J0aW5nIGFuIFJTQSBrZXkuIik7CisKK2pzVGVzdElzQXN5bmMg
PSB0cnVlOworCit2YXIgZXh0cmFjdGFibGUgPSB0cnVlOwordmFyIG5vbkV4dHJhY3RhYmxlID0g
ZmFsc2U7CisKK3ZhciBwdWJsaWNLZXlKU09OID0geworICAgIGt0eTogIlJTQSIsCisgICAgYWxn
OiAiUlMyNTYiLAorICAgIG46ICJyY0NVQ3Y3T2MxSFZhbTFESWhDenFrblRoV2F3T3A4UUxrOFpp
eTJwMTBCeWpRRkNham9GaXl1QVdsLVIxV1haYWY0eGl0TFJyYWNUOWFncHpJemMtTWJMU0hJR2dX
UUdPMjFsR2lJbXk1ZnRaLUQ4YkhBcVJ6MnkxNXB6RDRjNENFb3U3WFNTTERvUm5SMFFHNU1zRGhE
NnMyZ1Y5bXdIa3J0a0N4dE1XZEJpLTc3YXM4d0dtbE5SbGRjT1NnWkRMSzhVbkNTZ0ExT2d1Wjk4
OWJGeWM4dE9PRUliMHhVU2ZQU3ozTFBTQ255WXo2OGFEam1LVmVOSC1pZzg1N09TY3lXYkd5RXkz
Qml3NjRxdW4zanVVbE5Xc0ozem5na09kdGVZV3l0eDVRcjRYS05zNlItTXl5cTcyS1VwMDJtSkRa
aWl5aWdseE1MX2kzLV9DZWVjQ3ciLAorICAgIGU6ICJBUUFCIgorfTsKKwordmFyIGp3a0tleUFz
QXJyYXlCdWZmZXIgPSBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShwdWJsaWNLZXlK
U09OKSk7CisKK2RlYnVnKCJcbkltcG9ydGluZyBhIEpXSyBrZXkuLi4iKTsKK2NyeXB0by5zdWJ0
bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tLZXlBc0FycmF5QnVmZmVyLCAiUlNBU1NBLVBLQ1MxLXYx
XzUiLCBleHRyYWN0YWJsZSwgWydzaWduJywgJ3ZlcmlmeSddKS50aGVuKGZ1bmN0aW9uKHJlc3Vs
dCkgeworICAgIGtleSA9IHJlc3VsdDsKKworICAgIHNob3VsZFRocm93KCdjcnlwdG8uc3VidGxl
LmV4cG9ydEtleShudWxsLCBrZXkpJyk7CisgICAgc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUu
ZXhwb3J0S2V5KHVuZGVmaW5lZCwga2V5KScpOworICAgIHNob3VsZFRocm93KCdjcnlwdG8uc3Vi
dGxlLmV4cG9ydEtleSh7fSwga2V5KScpOworICAgIHNob3VsZFRocm93KCdjcnlwdG8uc3VidGxl
LmV4cG9ydEtleSgiIiwga2V5KScpOworICAgIHNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmV4
cG9ydEtleSgiZm9vYmFyIiwga2V5KScpOworCisgICAgZGVidWcoIlxuRXhwb3J0aW5nIHRoZSBr
ZXkgYXMgSldLLi4uIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJqd2si
LCBrZXkpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBleHBvcnRlZEpXSyA9IEpT
T04ucGFyc2UoYnl0ZXNUb0FTQ0lJU3RyaW5nKHJlc3VsdCkpOworCisgICAgc2hvdWxkQmUoImV4
cG9ydGVkSldLLmt0eSIsICInUlNBJyIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5uIiwg
InB1YmxpY0tleUpTT04ubiIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5lIiwgInB1Ymxp
Y0tleUpTT04uZSIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5hbGciLCAiJ1JTMjU2JyIp
OworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5leHQiLCAidHJ1ZSIpOworICAgIHNob3VsZEJl
KCJleHBvcnRlZEpXSy51c2UiLCAidW5kZWZpbmVkIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVk
SldLLmtleV9vcHMiLCAiWydzaWduJywgJ3ZlcmlmeSddIik7CisKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKK30pOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1wcml2YXRlLWtleS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQtcHJpdmF0
ZS1rZXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0NmVhMzM3YmVjYzliYzE0ZmExODgzODRh
YzhiNjg0M2ViZGQ3YmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL3JzYS1leHBvcnQtcHJpdmF0ZS1rZXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MjcgQEAKK1Rlc3QgZXhwb3J0aW5nIGEgcHJpdmF0ZSBSU0Ega2V5LgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworCitJbXBvcnRpbmcgYSBKV0sga2V5Li4uCisKK0V4cG9ydGluZyB0
aGUga2V5IGFzIEpXSy4uLgorUEFTUyBleHBvcnRlZEpXSy5rdHkgaXMgJ1JTQScKK1BBU1MgZXhw
b3J0ZWRKV0subiBpcyBwcml2YXRlS2V5SlNPTi5uCitQQVNTIGV4cG9ydGVkSldLLmUgaXMgcHJp
dmF0ZUtleUpTT04uZQorUEFTUyBleHBvcnRlZEpXSy5kIGlzIHByaXZhdGVLZXlKU09OLmQKK1BB
U1MgZXhwb3J0ZWRKV0sucCBpcyBwcml2YXRlS2V5SlNPTi5wCitQQVNTIGV4cG9ydGVkSldLLnEg
aXMgcHJpdmF0ZUtleUpTT04ucQorUEFTUyBleHBvcnRlZEpXSy5kcCBpcyBwcml2YXRlS2V5SlNP
Ti5kcAorUEFTUyBleHBvcnRlZEpXSy5kcSBpcyBwcml2YXRlS2V5SlNPTi5kcQorUEFTUyBleHBv
cnRlZEpXSy5xaSBpcyBwcml2YXRlS2V5SlNPTi5xaQorUEFTUyBleHBvcnRlZEpXSy5vdGggaXMg
cHJpdmF0ZUtleUpTT04ub3RoCitQQVNTIGV4cG9ydGVkSldLLmFsZyBpcyBwcml2YXRlS2V5SlNP
Ti5hbGcKK1BBU1MgZXhwb3J0ZWRKV0suZXh0IGlzIHRydWUKK1BBU1MgZXhwb3J0ZWRKV0sua2V5
X29wcyBpcyBbJ3NpZ24nLCAndmVyaWZ5J10KK1BBU1MgZXhwb3J0ZWRKV0sudXNlIGlzIHVuZGVm
aW5lZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1w
cml2YXRlLWtleS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtZXhw
b3J0LXByaXZhdGUta2V5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWMyZDg3MTgyNWFjYTUxOTBlNjZjMDgy
MTFiZDBhZGYzZDNkMGVlMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93
ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1wcml2YXRlLWtleS5odG1sCkBAIC0wLDAgKzEsNjUgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9j
b21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24o
IlRlc3QgZXhwb3J0aW5nIGEgcHJpdmF0ZSBSU0Ega2V5LiIpOworCitqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKK3ZhciBub25FeHRyYWN0YWJsZSA9IGZh
bHNlOworCisvLyBFeGFtcGxlIGZyb20gSldLIHNwZWNpZmljYXRpb24uCit2YXIgcHJpdmF0ZUtl
eUpTT04gPSB7CisgICAgImt0eSI6IlJTQSIsCisgICAgIm4iOiIwdng3YWdvZWJHY1FTdXVQaUxK
WFpwdE45bm5kclFtYlhFcHMyYWlBRmJXaE03OExoV3g0Y2JiZkFBdFZUODZ6d3UxUks3YVBGRnh1
aERSMUw2dFNvY19CSkVDUGViV0tSWGpCWkNpRlY0bjNva25qaE1zdG42NHRaXzJXLTVKc0dZNEhj
NW45eUJYQXJ3bDkzbHF0N19STjV3NkNmMGg0UXlRNXYtNjVZR2pRUjBfRkRXMlF2enFZMzY4UVFN
aWNBdGFTcXpzOEtKWmduWWI5YzdkMHpnZEFaSHp1NnFNUXZSTDVoYWpybjFuOTFDYk9wYklTRDA4
cU5MeXJka3QtYkZUV2hBSTR2TVFGaDZXZVp1MGZNNGxGZDJOY1J3cjNYUGtzSU5IYVEtR194Qm5p
SXFidzBMczFqRjQ0LWNzRkN1ci1rRWdVOGF3YXBKektucURLZ3ciLAorICAgICJlIjoiQVFBQiIs
CisgICAgImQiOiJYNGNUdGVKWV9nbjRGWVBzWEI4cmRYaXg1dndzZzFGTE41RTNFYUc2UkpvVkgt
SExMS0Q5TTdkeDVvbzdHVVJrbmNobnJSd2VVa0M3aFQ1ZkpMTTBXYkZBS05MV1kydnY3QjZOcVhT
elV2eFQwX1lTZnFpandwM1JUemxCYUN4V3A0ZG9GazVOMm84R3lfbkhOS3JvQURJa0o0NnBSVW9o
c1h5d2JSZUFkWWFNd0ZzOXR2OGRfY1BWWTNpMDdhM3Q4TU42VE53bTBkU2F3bTl2NDdVaUNsM1Nr
NVppRzd4b2pQTHU0c2JnMVUyang0SUJUTkJ6bmJKU3pGSEs2NmpUOGJna3Vxc2swR2pza0RKazE5
WjRxd2p3YnNubjRqMldCaWkzUkwtVXMybEdWa1k4ZmtGem1lMXowSGJJa2Z6MFk2bXFuT1l0cWMw
WDRqZmNLb0FDOFEiLAorICAgICJwIjoiODNpLTdJdk1HWG9NWENza3Y3M1RLcjg2MzdGaU83WjI3
enY4b2o2cGJXVVF5TFBRQlF4dFBWbndEMjBSLTYwZVREbUQydWpuTXQ1UG9xTXJtOFJmbU5oVldE
dGpqTW1DTWpPcFNYaWNGSGo3WE91VklZUXlxVldsV0VoNmROMzZHVlpZazkzTjhCYzl2WTQxeHk4
QjlSenpPR1ZRelh2TkV2bjdPMG5WYmZzIiwKKyAgICAicSI6IjNkZk9SOWN1WXEtMFMtbWtGTHpn
SXRnTUVmRnpCMnEzaFdlaE11RzBvQ3VxbmIzdm9iTHl1bXFqVlpRTzFkSXJkd2dUbkNkcFl6QmNP
Zlc1cjM3MEFGWGppV2Z0X05HRWlvdm9uaXpoS3BvOVZWUzc4VHpGZ3hrSWRyZWNSZXpzWi0xa1lk
X3MxcURieHRrREVnZkFJVEFHOUxVbkFEdW40dkljYjZ5ZWx4ayIsCisgICAgImRwIjoiRzRzUFhr
YzZZYTl5OG9KVzlfSUxqNHh1cHB1MGx6aV9IN1ZUa1M4eGo1U2RYM2NvRTBvaW1Zd3hJaTJlbVRB
dWUwVU9hNWRwZ0ZHeUJKNGM4dFEyVkY0MDJYUnVnS0RUUDhha1loRm81dEFBNzdRZV9ObXR1WVpj
M0MzbTNJMjRHMkd2UjVzU0R4VXlBTjJ6cThMZm45RVVtczZyWTNPYjhZZWlLa1RpQmowIiwKKyAg
ICAiZHEiOiJzOWxBSDlmZ2dCc29GUjhPYWMyUl9FMmd3MjgyclQya0dPQWh2SWxsRVRFMWVmckE2
aHVVVXZNZkJjTXBuOGxxZVc2dnp6bllZNVNTUUY3cE1kQ19hZ0kzbkc4SWJwMUJVYjBKVWlyYVJO
cVVmTGhjUWJfZDlHRjREaDdlNzRXYlJzb2JSb251alRZTjF4Q2FQNlRPNjFqdldyWC1MMTh0eFh3
NDk0UV9jZ2siLAorICAgICJxaSI6Ikd5TV9wNkpyWHlTaXoxdG9GZ0tiV1YtSmRJM2pRNHlwdTly
Yk1XeDNyUUpCZm10MEZvWXpnVUlaRVZGRWNPcXdlbVJOODF6b0RBYWEtQmswS1dOR0RqSkhaRGRE
bUZoVzNBTjdsSS1wdXhrX21IWkdKMTFyeHlSOE81NVhMU2UzU1BtUmZLd1pJNnlVMjRaeHZRS0ZZ
SXRkbGRVS0d6TzZJYTZ6VEtoQVZSVSIsCisgICAgImFsZyI6IlJTMjU2IiwKKyAgICAia2lkIjoi
MjAxMS0wNC0yOSIKK30KK3ZhciBqd2tLZXlBc0FycmF5QnVmZmVyID0gYXNjaWlUb1VpbnQ4QXJy
YXkoSlNPTi5zdHJpbmdpZnkocHJpdmF0ZUtleUpTT04pKTsKKworZGVidWcoIlxuSW1wb3J0aW5n
IGEgSldLIGtleS4uLiIpOworY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a0tleUFz
QXJyYXlCdWZmZXIsICJSU0FTU0EtUEtDUzEtdjFfNSIsIGV4dHJhY3RhYmxlLCBbJ3NpZ24nLCAn
dmVyaWZ5J10pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAga2V5ID0gcmVzdWx0OworCisg
ICAgZGVidWcoIlxuRXhwb3J0aW5nIHRoZSBrZXkgYXMgSldLLi4uIik7CisgICAgcmV0dXJuIGNy
eXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJqd2siLCBrZXkpOworfSkudGhlbihmdW5jdGlvbihyZXN1
bHQpIHsKKyAgICBleHBvcnRlZEpXSyA9IEpTT04ucGFyc2UoYnl0ZXNUb0FTQ0lJU3RyaW5nKHJl
c3VsdCkpOworCisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmt0eSIsICInUlNBJyIpOworICAg
IHNob3VsZEJlKCJleHBvcnRlZEpXSy5uIiwgInByaXZhdGVLZXlKU09OLm4iKTsKKyAgICBzaG91
bGRCZSgiZXhwb3J0ZWRKV0suZSIsICJwcml2YXRlS2V5SlNPTi5lIik7CisgICAgc2hvdWxkQmUo
ImV4cG9ydGVkSldLLmQiLCAicHJpdmF0ZUtleUpTT04uZCIpOworICAgIHNob3VsZEJlKCJleHBv
cnRlZEpXSy5wIiwgInByaXZhdGVLZXlKU09OLnAiKTsKKyAgICBzaG91bGRCZSgiZXhwb3J0ZWRK
V0sucSIsICJwcml2YXRlS2V5SlNPTi5xIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmRw
IiwgInByaXZhdGVLZXlKU09OLmRwIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmRxIiwg
InByaXZhdGVLZXlKU09OLmRxIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLnFpIiwgInBy
aXZhdGVLZXlKU09OLnFpIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLm90aCIsICJwcml2
YXRlS2V5SlNPTi5vdGgiKTsKKyAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suYWxnIiwgInByaXZh
dGVLZXlKU09OLmFsZyIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5leHQiLCAidHJ1ZSIp
OworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rZXlfb3BzIiwgIlsnc2lnbicsICd2ZXJpZnkn
XSIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy51c2UiLCAidW5kZWZpbmVkIik7CisKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVk
ZGItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiMTJkZmYwYWJlNTMyZDkwZjQ0NzQ4ZDM2YTQ0
NzNhNmRjYTBjOTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL3JzYS1pbmRleGVkZGItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3Qg
c3RvcmluZyBhIHByaXZhdGUgUlNBIGtleSBpbiBJbmRleGVkREIsIGFuZCByZXRyaWV2aW5nIGl0
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZXRyaWV2ZWRLZXkudHlw
ZSBpcyAncHJpdmF0ZScKK1BBU1MgcmV0cmlldmVkS2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKK1BB
U1MgcmV0cmlldmVkS2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScKK1BB
U1MgcmV0cmlldmVkS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIGlzIDIwNDgKK1BBU1MgYnl0
ZXNUb0hleFN0cmluZyhyZXRyaWV2ZWRLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAn
MDEwMDAxJworUEFTUyByZXRyaWV2ZWRLZXkudXNhZ2VzIGlzIFsic2lnbiIsICJ2ZXJpZnkiXQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24t
ZXhwb3J0YWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVj
Njk0YzIwMmNkNzEzOGMyMTk4N2RlZWVkZjU4Nzk0YTI4MjQ2MGEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGItbm9uLWV4cG9y
dGFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3Qgc3RvcmluZyBhIHByaXZh
dGUgUlNBIGtleSBpbiBJbmRleGVkREIsIGFuZCByZXRyaWV2aW5nIGl0LgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZXRyaWV2ZWRLZXkudHlwZSBpcyAncHJpdmF0ZScK
K1BBU1MgcmV0cmlldmVkS2V5LmV4dHJhY3RhYmxlIGlzIGZhbHNlCitQQVNTIHJldHJpZXZlZEtl
eS5hbGdvcml0aG0ubmFtZSBpcyAnUlNBU1NBLVBLQ1MxLXYxXzUnCitQQVNTIHJldHJpZXZlZEtl
eS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4CitQQVNTIGJ5dGVzVG9IZXhTdHJpbmco
cmV0cmlldmVkS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKK1BBU1Mg
cmV0cmlldmVkS2V5LnVzYWdlcyBpcyBbInNpZ24iLCAidmVyaWZ5Il0KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUtcHJp
dmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1p
bmRleGVkZGItbm9uLWV4cG9ydGFibGUtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NWM2OTRjMjAyY2Q3MTM4YzIxOTg3ZGVlZWRmNTg3OTRhMjgyNDYwYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhw
b3J0YWJsZS1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0IHN0b3Jp
bmcgYSBwcml2YXRlIFJTQSBrZXkgaW4gSW5kZXhlZERCLCBhbmQgcmV0cmlldmluZyBpdC4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmV0cmlldmVkS2V5LnR5cGUgaXMg
J3ByaXZhdGUnCitQQVNTIHJldHJpZXZlZEtleS5leHRyYWN0YWJsZSBpcyBmYWxzZQorUEFTUyBy
ZXRyaWV2ZWRLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JTQVNTQS1QS0NTMS12MV81JworUEFTUyBy
ZXRyaWV2ZWRLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGggaXMgMjA0OAorUEFTUyBieXRlc1Rv
SGV4U3RyaW5nKHJldHJpZXZlZEtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcwMTAw
MDEnCitQQVNTIHJldHJpZXZlZEtleS51c2FnZXMgaXMgWyJzaWduIiwgInZlcmlmeSJdCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBv
cnRhYmxlLXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNh
LWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjYxOGNh
YWQ3MjZjNmVmMmZkZGIyYzRhY2UzMTk5ZmU2ODJmNjZiNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJs
ZS1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdD4KK2VuYWJsZVByaXZhdGVCcm93c2luZyA9IHRydWU7Cis8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFi
bGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGItbm9uLWV4cG9y
dGFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYmJkOWU3N2ExN2MxNzdmNjBkMjAzN2Y3M2JlNTkzNjgz
M2M1NzlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1v
bi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRl
eGVkZGItcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3Vi
dGxlL3JzYS1pbmRleGVkZGItcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGIxMmRm
ZjBhYmU1MzJkOTBmNDQ3NDhkMzZhNDQ3M2E2ZGNhMGM5MgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1wcml2YXRlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0IHN0b3JpbmcgYSBwcml2YXRlIFJTQSBrZXkg
aW4gSW5kZXhlZERCLCBhbmQgcmV0cmlldmluZyBpdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgcmV0cmlldmVkS2V5LnR5cGUgaXMgJ3ByaXZhdGUnCitQQVNTIHJldHJp
ZXZlZEtleS5leHRyYWN0YWJsZSBpcyB0cnVlCitQQVNTIHJldHJpZXZlZEtleS5hbGdvcml0aG0u
bmFtZSBpcyAnUlNBU1NBLVBLQ1MxLXYxXzUnCitQQVNTIHJldHJpZXZlZEtleS5hbGdvcml0aG0u
bW9kdWx1c0xlbmd0aCBpcyAyMDQ4CitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcocmV0cmlldmVkS2V5
LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKK1BBU1MgcmV0cmlldmVkS2V5
LnVzYWdlcyBpcyBbInNpZ24iLCAidmVyaWZ5Il0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGItcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5
cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
NDRjZTg4Yzc1NDE0ZDk3YWUwN2RlYzVhYWNlYWI5NWVlZGVmOTdiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUu
aHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0PgorZW5hYmxlUHJpdmF0ZUJyb3dzaW5nID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcnNhLWluZGV4ZWRkYi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3Jz
YS1pbmRleGVkZGIuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWlu
ZGV4ZWRkYi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyODZlMGY4Njc2ZGM0MjUyYmY3OWZlNzFjYWU3YmQy
MmI2YTZjMTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3Vi
dGxlL3JzYS1pbmRleGVkZGIuaHRtbApAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9yc2EtaW5kZXhlZGRi
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtZ2VuZXJhdGUtbm9uLWV4dHJhY3RhYmxlLWtl
eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVw
LWdlbmVyYXRlLW5vbi1leHRyYWN0YWJsZS1rZXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3
OWI0MjM5Nzk1OWY2OWNiMDg3NDg0Y2JjNDUzNTYxYmYzZTQ1ODgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLWdlbmVyYXRlLW5vbi1l
eHRyYWN0YWJsZS1rZXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK1Rlc3QgdGhhdCBl
dmVuIHdoZW4gbm9uLWV4dHJhY3RhYmlsaXR5IGlzIHJlcXVlc3RlZCwgdGhlIHB1YmxpYyBrZXkg
aXMgc3RpbGwgZXh0cmFjdGFibGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitH
ZW5lcmF0aW5nIGEga2V5IHBhaXIuLi4KK1BBU1Mga2V5UGFpci50b1N0cmluZygpIGlzICdbb2Jq
ZWN0IEtleVBhaXJdJworUEFTUyBrZXlQYWlyLnB1YmxpY0tleS50eXBlIGlzICdwdWJsaWMnCitQ
QVNTIGtleVBhaXIucHVibGljS2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKK1BBU1Mga2V5UGFpci5w
dWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JTQS1PQUVQJworUEFTUyBrZXlQYWlyLnB1Ymxp
Y0tleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4CitQQVNTIGJ5dGVzVG9IZXhTdHJp
bmcoa2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAx
JworUEFTUyBrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0uaGFzaCBpcyB1bmRlZmluZWQuCitQ
QVNTIGtleVBhaXIucHJpdmF0ZUtleS50eXBlIGlzICdwcml2YXRlJworUEFTUyBrZXlQYWlyLnBy
aXZhdGVLZXkuZXh0cmFjdGFibGUgaXMgZmFsc2UKK1BBU1Mga2V5UGFpci5wcml2YXRlS2V5LmFs
Z29yaXRobS5uYW1lIGlzICdSU0EtT0FFUCcKK1BBU1Mga2V5UGFpci5wcml2YXRlS2V5LmFsZ29y
aXRobS5tb2R1bHVzTGVuZ3RoIGlzIDIwNDgKK1BBU1MgYnl0ZXNUb0hleFN0cmluZyhrZXlQYWly
LnByaXZhdGVLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJworUEFTUyBr
ZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLmhhc2ggaXMgdW5kZWZpbmVkLgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtZ2VuZXJhdGUtbm9uLWV4dHJh
Y3RhYmxlLWtleS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2Fl
cC1nZW5lcmF0ZS1ub24tZXh0cmFjdGFibGUta2V5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzgyYTVjYjFj
MGVhMTdmOGM0ZWU1ZWYyNjQzM2FjY2U1ODZiN2I3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtZ2VuZXJhdGUtbm9uLWV4dHJhY3Rh
YmxlLWtleS5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBldmVuIHdoZW4gbm9uLWV4
dHJhY3RhYmlsaXR5IGlzIHJlcXVlc3RlZCwgdGhlIHB1YmxpYyBrZXkgaXMgc3RpbGwgZXh0cmFj
dGFibGUuIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIgYWxnb3JpdGhtS2V5R2Vu
ID0geworICAgIG5hbWU6ICJSU0EtT0FFUCIsCisgICAgLy8gUnNhS2V5R2VuUGFyYW1zCisgICAg
bW9kdWx1c0xlbmd0aDogMjA0OCwKKyAgICBwdWJsaWNFeHBvbmVudDogbmV3IFVpbnQ4QXJyYXko
WzB4MDEsIDB4MDAsIDB4MDFdKSwgIC8vIEVxdWl2YWxlbnQgdG8gNjU1MzcKK307Cit2YXIgbm9u
RXh0cmFjdGFibGUgPSBmYWxzZTsKKworZGVidWcoIkdlbmVyYXRpbmcgYSBrZXkgcGFpci4uLiIp
OworY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleShhbGdvcml0aG1LZXlHZW4sIG5vbkV4dHJhY3Rh
YmxlLCBbXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBrZXlQYWlyID0gcmVzdWx0Owor
ICAgIHNob3VsZEJlKCJrZXlQYWlyLnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgS2V5UGFpcl0nIik7
CisgICAgc2hvdWxkQmUoImtleVBhaXIucHVibGljS2V5LnR5cGUiLCAiJ3B1YmxpYyciKTsKKyAg
ICBzaG91bGRCZSgia2V5UGFpci5wdWJsaWNLZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIpOworICAg
IHNob3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0ubmFtZSIsICInUlNBLU9BRVAn
Iik7CisgICAgc2hvdWxkQmUoImtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVu
Z3RoIiwgIjIwNDgiKTsKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhrZXlQYWlyLnB1
YmxpY0tleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwgIicwMTAwMDEnIik7CisgICAgc2hv
dWxkQmVVbmRlZmluZWQoImtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5oYXNoIik7CisgICAg
c2hvdWxkQmUoImtleVBhaXIucHJpdmF0ZUtleS50eXBlIiwgIidwcml2YXRlJyIpOworICAgIHNo
b3VsZEJlKCJrZXlQYWlyLnByaXZhdGVLZXkuZXh0cmFjdGFibGUiLCAiZmFsc2UiKTsKKyAgICBz
aG91bGRCZSgia2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5uYW1lIiwgIidSU0EtT0FFUCci
KTsKKyAgICBzaG91bGRCZSgia2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVu
Z3RoIiwgIjIwNDgiKTsKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhrZXlQYWlyLnBy
aXZhdGVLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSIsICInMDEwMDAxJyIpOworICAgIHNo
b3VsZEJlVW5kZWZpbmVkKCJrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLmhhc2giKTsKKwor
ICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2FlcC1rZXkt
bWFuaXB1bGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvcnNhLW9hZXAta2V5LW1hbmlwdWxhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmQ1
YjM4Mzg2ZGIyNTE5YTVmYjIyODgzMTBmMzM2Nzc5ZDAwZTVkMAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAta2V5LW1hbmlwdWxhdGlv
bi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NiBAQAorVGVzdCBnZW5lcmF0aW5nLCBpbXBvcnRp
bmcgYW5kIGV4cG9ydGluZyBSU0Ega2V5cyBmb3IgUlNBLU9BRVAuIFRlc3QgdGhhdCB0aGV5IGNh
bid0IGJlIHVzZWQgd2l0aCBhbm90aGVyIGFsZ29yaXRobS4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK0dlbmVyYXRpbmcgYSBrZXkgcGFpci4uLgorUEFTUyBrZXlQYWlyLnRvU3Ry
aW5nKCkgaXMgJ1tvYmplY3QgS2V5UGFpcl0nCitQQVNTIGtleVBhaXIucHVibGljS2V5LnR5cGUg
aXMgJ3B1YmxpYycKK1BBU1Mga2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JT
QS1PQUVQJworUEFTUyBrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBp
cyAyMDQ4CitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcoa2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGht
LnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJworUEFTUyBrZXlQYWlyLnB1YmxpY0tleS5hbGdv
cml0aG0uaGFzaCBpcyB1bmRlZmluZWQuCitQQVNTIGtleVBhaXIucHJpdmF0ZUtleS50eXBlIGlz
ICdwcml2YXRlJworUEFTUyBrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JT
QS1PQUVQJworUEFTUyBrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgg
aXMgMjA0OAorUEFTUyBieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0
aG0ucHVibGljRXhwb25lbnQpIGlzICcwMTAwMDEnCitQQVNTIGtleVBhaXIucHJpdmF0ZUtleS5h
bGdvcml0aG0uaGFzaCBpcyB1bmRlZmluZWQuCisKK1Rlc3RpbmcgdGhhdCB0aGUga2V5cyBjYW4n
dCBiZSB1c2VkIHdpdGggZGlmZmVyZW50IGFsZ29yaXRobXMuLi4KK1BBU1MgY3J5cHRvLnN1YnRs
ZS5lbmNyeXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtleVBhaXIucHJpdmF0ZUtleSwg
aGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMCIpKSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVk
RXJyb3IgKERPTSBFeGNlcHRpb24gOSk6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4u
CitQQVNTIGNyeXB0by5zdWJ0bGUuZW5jcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBr
ZXlQYWlyLnB1YmxpY0tleSwgaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMCIpKSB0aHJldyBleGNl
cHRpb24gTm90U3VwcG9ydGVkRXJyb3IgKERPTSBFeGNlcHRpb24gOSk6IFRoZSBvcGVyYXRpb24g
aXMgbm90IHN1cHBvcnRlZC4uCisKK1RyeWluZyB0byBleHBvcnQga2V5cyB0byByYXcuLi4KK1BB
U1MgUHJvbWlzZSByZWplY3RlZCBmb3IgZXhwb3J0aW5nIHB1YmxpYyBrZXkKK1BBU1MgUHJvbWlz
ZSByZWplY3RlZCBmb3IgZXhwb3J0aW5nIHByaXZhdGUga2V5CisKK0V4cG9ydGluZyBwdWJsaWMg
a2V5IHRvIEpXSy4uLgorUEFTUyBqd2tQdWJsaWNLZXkuYWxnIGlzICdSU0EtT0FFUCcKK1BBU1Mg
andrUHVibGljS2V5LmV4dCBpcyB0cnVlCitQQVNTIGp3a1B1YmxpY0tleS5rZXlfb3BzIGlzIFsn
ZW5jcnlwdCcsICdkZWNyeXB0JywgJ3dyYXBLZXknLCAndW53cmFwS2V5J10KK1BBU1MgandrUHVi
bGljS2V5LnVzZSBpcyB1bmRlZmluZWQKK1BBU1MgandrUHVibGljS2V5Lmt0eSBpcyAnUlNBJwor
UEFTUyBieXRlc1RvSGV4U3RyaW5nKEJhc2U2NFVSTC5wYXJzZShqd2tQdWJsaWNLZXkuZSkpIGlz
ICcwMTAwMDEnCisKK0ltcG9ydGluZyBpdCBiYWNrLi4uCitQQVNTIGV4cG9ydGVkUHVibGljS2V5
LnR5cGUgaXMgJ3B1YmxpYycKK1BBU1MgZXhwb3J0ZWRQdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUg
aXMgJ1JTQS1PQUVQJworUEFTUyBleHBvcnRlZFB1YmxpY0tleS5hbGdvcml0aG0ubW9kdWx1c0xl
bmd0aCBpcyAyMDQ4CitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcoZXhwb3J0ZWRQdWJsaWNLZXkuYWxn
b3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJworUEFTUyBleHBvcnRlZFB1YmxpY0tl
eS5hbGdvcml0aG0uaGFzaC5uYW1lIGlzICdTSEEtMScKK1BBU1MgZXhwb3J0ZWRQdWJsaWNLZXku
ZXh0cmFjdGFibGUgaXMgdHJ1ZQorUEFTUyBleHBvcnRlZFB1YmxpY0tleS51c2FnZXMgaXMgWydk
ZWNyeXB0JywnZW5jcnlwdCcsJ3Vud3JhcEtleScsJ3dyYXBLZXknXQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAta2V5LW1hbmlwdWxhdGlvbi5odG1sIGIv
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2FlcC1rZXktbWFuaXB1bGF0aW9u
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjdkMTE0OWU2ZWI5OTQzNDVlZjg2MDZlMWJjYmRkMjRlYzgyNDhj
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNh
LW9hZXAta2V5LW1hbmlwdWxhdGlvbi5odG1sCkBAIC0wLDAgKzEsODIgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgZ2VuZXJh
dGluZywgaW1wb3J0aW5nIGFuZCBleHBvcnRpbmcgUlNBIGtleXMgZm9yIFJTQS1PQUVQLiBUZXN0
IHRoYXQgdGhleSBjYW4ndCBiZSB1c2VkIHdpdGggYW5vdGhlciBhbGdvcml0aG0uIik7CisKK2pz
VGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIgYWxnb3JpdGhtS2V5R2VuID0geworICAgIG5hbWU6
ICJSU0EtT0FFUCIsCisgICAgLy8gUnNhS2V5R2VuUGFyYW1zCisgICAgbW9kdWx1c0xlbmd0aDog
MjA0OCwKKyAgICBwdWJsaWNFeHBvbmVudDogbmV3IFVpbnQ4QXJyYXkoWzB4MDEsIDB4MDAsIDB4
MDFdKSwgIC8vIEVxdWl2YWxlbnQgdG8gNjU1MzcKK307Cit2YXIgZXh0cmFjdGFibGUgPSB0cnVl
OworCitkZWJ1ZygiR2VuZXJhdGluZyBhIGtleSBwYWlyLi4uIik7CitjcnlwdG8uc3VidGxlLmdl
bmVyYXRlS2V5KGFsZ29yaXRobUtleUdlbiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNy
eXB0IiwgIndyYXBLZXkiLCAidW53cmFwS2V5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Cisg
ICAga2V5UGFpciA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgia2V5UGFpci50b1N0cmluZygpIiwg
Iidbb2JqZWN0IEtleVBhaXJdJyIpOworICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tleS50
eXBlIiwgIidwdWJsaWMnIik7CisgICAgc2hvdWxkQmUoImtleVBhaXIucHVibGljS2V5LmFsZ29y
aXRobS5uYW1lIiwgIidSU0EtT0FFUCciKTsKKyAgICBzaG91bGRCZSgia2V5UGFpci5wdWJsaWNL
ZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOworICAgIHNob3VsZEJlKCJieXRl
c1RvSGV4U3RyaW5nKGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCki
LCAiJzAxMDAwMSciKTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgia2V5UGFpci5wdWJsaWNLZXku
YWxnb3JpdGhtLmhhc2giKTsKKyAgICBzaG91bGRCZSgia2V5UGFpci5wcml2YXRlS2V5LnR5cGUi
LCAiJ3ByaXZhdGUnIik7CisgICAgc2hvdWxkQmUoImtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0
aG0ubmFtZSIsICInUlNBLU9BRVAnIik7CisgICAgc2hvdWxkQmUoImtleVBhaXIucHJpdmF0ZUtl
eS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCIsICIyMDQ4Iik7CisgICAgc2hvdWxkQmUoImJ5dGVz
VG9IZXhTdHJpbmcoa2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCki
LCAiJzAxMDAwMSciKTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgia2V5UGFpci5wcml2YXRlS2V5
LmFsZ29yaXRobS5oYXNoIik7CisKKyAgICBkZWJ1ZygiXG5UZXN0aW5nIHRoYXQgdGhlIGtleXMg
Y2FuJ3QgYmUgdXNlZCB3aXRoIGRpZmZlcmVudCBhbGdvcml0aG1zLi4uIik7CisgICAgaXYgPSBo
ZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmIik7
CisgICAgc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZW5jcnlwdCh7bmFtZTogImFlcy1jYmMi
LCBpdjogaXZ9LCBrZXlQYWlyLnByaXZhdGVLZXksIGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAi
KSknKTsKKyAgICBzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5lbmNyeXB0KHtuYW1lOiAiYWVz
LWNiYyIsIGl2OiBpdn0sIGtleVBhaXIucHVibGljS2V5LCBoZXhTdHJpbmdUb1VpbnQ4QXJyYXko
IjAwIikpJyk7CisKKyAgICBkZWJ1ZygiXG5UcnlpbmcgdG8gZXhwb3J0IGtleXMgdG8gcmF3Li4u
Iik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCdyYXcnLCBrZXlQYWlyLnB1
YmxpY0tleSk7Cit9KS50aGVuKHVuZGVmaW5lZCwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgdGVz
dFBhc3NlZCgiUHJvbWlzZSByZWplY3RlZCBmb3IgZXhwb3J0aW5nIHB1YmxpYyBrZXkiKTsKKyAg
ICByZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoJ3JhdycsIGtleVBhaXIucHJpdmF0ZUtl
eSk7Cit9KS50aGVuKHVuZGVmaW5lZCwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgdGVzdFBhc3Nl
ZCgiUHJvbWlzZSByZWplY3RlZCBmb3IgZXhwb3J0aW5nIHByaXZhdGUga2V5Iik7CisKKyAgICBk
ZWJ1ZygiXG5FeHBvcnRpbmcgcHVibGljIGtleSB0byBKV0suLi4iKTsKKyAgICByZXR1cm4gY3J5
cHRvLnN1YnRsZS5leHBvcnRLZXkoImp3ayIsIGtleVBhaXIucHVibGljS2V5KTsKK30pLnRoZW4o
ZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgandrUHVibGljS2V5QXJyYXkgPSByZXN1bHQ7CisgICAg
andrUHVibGljS2V5ID0gSlNPTi5wYXJzZShieXRlc1RvQVNDSUlTdHJpbmcoandrUHVibGljS2V5
QXJyYXkpKTsKKyAgICBzaG91bGRCZSgiandrUHVibGljS2V5LmFsZyIsICInUlNBLU9BRVAnIik7
CisgICAgc2hvdWxkQmUoImp3a1B1YmxpY0tleS5leHQiLCAidHJ1ZSIpOworICAgIHNob3VsZEJl
KCJqd2tQdWJsaWNLZXkua2V5X29wcyIsICJbJ2VuY3J5cHQnLCAnZGVjcnlwdCcsICd3cmFwS2V5
JywgJ3Vud3JhcEtleSddIik7CisgICAgc2hvdWxkQmUoImp3a1B1YmxpY0tleS51c2UiLCAidW5k
ZWZpbmVkIik7CisgICAgc2hvdWxkQmUoImp3a1B1YmxpY0tleS5rdHkiLCAiJ1JTQSciKTsKKyAg
ICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhCYXNlNjRVUkwucGFyc2UoandrUHVibGljS2V5
LmUpKSIsICInMDEwMDAxJyIpOworCisgICAgZGVidWcoIlxuSW1wb3J0aW5nIGl0IGJhY2suLi4i
KTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a1B1YmxpY0tl
eUFycmF5LCBudWxsLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtl
eSIsICJ1bndyYXBLZXkiXSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGV4cG9y
dGVkUHVibGljS2V5ID0gcmVzdWx0OworICAgIHNob3VsZEJlKCJleHBvcnRlZFB1YmxpY0tleS50
eXBlIiwgIidwdWJsaWMnIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkUHVibGljS2V5LmFsZ29y
aXRobS5uYW1lIiwgIidSU0EtT0FFUCciKTsKKyAgICBzaG91bGRCZSgiZXhwb3J0ZWRQdWJsaWNL
ZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOworICAgIHNob3VsZEJlKCJieXRl
c1RvSGV4U3RyaW5nKGV4cG9ydGVkUHVibGljS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCki
LCAiJzAxMDAwMSciKTsKKyAgICBzaG91bGRCZSgiZXhwb3J0ZWRQdWJsaWNLZXkuYWxnb3JpdGht
Lmhhc2gubmFtZSIsICInU0hBLTEnIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkUHVibGljS2V5
LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKKyAgICBzaG91bGRCZSgiZXhwb3J0ZWRQdWJsaWNLZXku
dXNhZ2VzIiwgIlsnZGVjcnlwdCcsJ2VuY3J5cHQnLCd1bndyYXBLZXknLCd3cmFwS2V5J10iKTsK
KworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2FlcC1w
bGFpbnRleHQtbGVuZ3RoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRT
dWJ0bGUvcnNhLW9hZXAtcGxhaW50ZXh0LWxlbmd0aC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NmNiNmNhNDU4NzQ3NjE3ZTMwNGJlMTlhYzNkNTE4NjhkNDI3MWRmNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtcGxhaW50ZXh0LWxl
bmd0aC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCB3aGF0IGhhcHBlbnMgd2hl
biB0cnlpbmcgdG8gZW5jcnlwdCBhIHRvbyBsYXJnZSBwbGFpbiB0ZXh0IHdpdGggUlNBLU9BRVAu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitJbXBvcnRpbmcgUlNBIGtleXMuLi4K
K0VuY3J5cHRpbmcgYSAyMTQgYnl0ZSBidWZmZXIgd2l0aCBSU0EtT0FFUCBTSEEtMSwgMjA0OCBi
aXQga2V5Li4uCitQQVNTIFN1Y2NlZWRlZAorRW5jcnlwdGluZyBhIDIxNSBieXRlIGJ1ZmZlci4u
LgorUEFTUyBSZWplY3RlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUv
cnNhLW9hZXAtcGxhaW50ZXh0LWxlbmd0aC5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9yc2Etb2FlcC1wbGFpbnRleHQtbGVuZ3RoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDFmMjEz
YjFlYmM3YjlhM2M5ZTY4NzJiMDM1ZDg4NjQyYzgxOWUzZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtcGxhaW50ZXh0LWxlbmd0aC5o
dG1sCkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8
c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3Qgd2hhdCBoYXBwZW5zIHdoZW4gdHJ5aW5nIHRvIGVu
Y3J5cHQgYSB0b28gbGFyZ2UgcGxhaW4gdGV4dCB3aXRoIFJTQS1PQUVQLiIpOworCitqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKwordmFyIHB1YmxpY0tleUpTT04gPSB7CisgICAga3R5OiAiUlNBIiwK
KyAgICBhbGc6ICJSU0EtT0FFUCIsCisgICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhX
YXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6
Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9S
blIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVu
Q1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3
T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlx
NzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCisgICAgZTogIkFRQUIiCit9OworCit2
YXIgcHJpdmF0ZUtleUpTT04gPSB7CisgICAga3R5OiAiUlNBIiwKKyAgICBhbGc6ICJSU0EtT0FF
UCIsCisgICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5
alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxH
aUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjlt
d0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0
T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1
bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4
TUxfaTMtX0NlZWNDdyIsCisgICAgZTogIkFRQUIiLAorICAgIGQ6ICJlTkxTMzdhQ3o3UlhTTlBE
X0R0TEJKNmo1VDhjU3hkelJCQ2pQYUk2V2NHcUpwMTZscTNVVHd1b0RMQXFsQTlvR1ltMjM4ZHNJ
V3B1dWNQX2xRdGJXZS03U3B4b0k2X3ZtWUdmN1lWVUh2MS1ERjlxaU9tU3JNbWR4TW5WT3pZWFk4
UmFUNnRoUGpuX0o1Y2ZMVjJ4SV9Md3NyTXRtcGRTeU5sZ1gwelRVaHd0dWFoZ0FLTUVDaFlqSDJF
bmpIZEh3NnNZMi13QXBkY1FJN1VMRTBvbzVSemJRWnBtdWhjTjloaUJjMEwzaGhGMHFvNTBtYmww
Ml82NV9HUTdEcFZrWEJ4TmdSQkx6bFBhYm16ekcyb0FoZmVmTGdZbVNDMW9wYUNrWEU2dlJXUU5X
Tkw0NVJaTlpGWU0zdW9KZ2hPTXFHZW9jTTBCcGpkQ2hIclBPbEZ2U1EiLAorICAgIHA6ICI0bWlU
dUFqS01lSDV1SjVLQjM5N1FVd2hia1lFZ1NiY0EybWlmbVNrdkUyMDE4Z2I1NXFrQkhLMWVWcnlm
MV9tNDNMTmxjNk9fYWs2Z2Z6ZFpJWnZTNU5DR2pQbDBxMDlwbFVwdThxRk9Tc3BCd0E2N3FHSDc2
bEZsWkxuX2Q0eWdsUzd3ZkxydTRfNVlzOHFMTHMtRHFWTHZpd3Bvc09ueXlXcXdNNUFYcDAiLAor
ICAgIHE6ICJ4SFlyemtpdnRtbnpfc0djaG5XR2MwcS1wRE9rS2ljcHRScHYycE1GSUlYeG5GWDVh
TWVFWElaalZ1alh0d1V5MVVsRklOMkdaSlN2eTVLSjc5bXVfWHlObkZITXplZEgtQTNlZTN1OGgx
VVVyWkYtdlV1MV9lNFVfeDY3Tk4xZGVkelVTS3luTjdwRmwzT2t1U2hNQldHVi1jd3pPUGRjVkFm
VnVabHhVTWMiLAorICAgIGRwOiAiZkJ6RHpZRFVCbUJRR29wN0huMGR2Zl9UMjdWNlJxcGN0V28w
NzRDUVpjRmJQMmF0RlZ0S1NqM3ZpV1QzeGlkMlZIemNnaURIZGZwTTNuRVZsRU8xd3dJb25HQ1N2
ZGpHRU9aaWlGVk9qclpBT1Z4QThndU9qeXlGdnFiWGtlMDZWd1BJSVZ2ZktlU1UyenVoYlBfXzF0
dDZGX2Z4b3c0S2IyeG9uR1QwR0drIiwKKyAgICBkcTogImptRTJEaUlQZGh3RGdMWEFRcElhQnFR
ODFiTzNYZlZUX0xSVUxBd3d3d2xQdVFWMTQ4SDA0emxoOVRKNlkyR1pIWW9rVjFVMGVPQnBKeGZr
YjdkTFl0cEpwdWlCalJmNHlJVUVvR2xra0lfUWxKbkZTRnItWWpHUmRmTkhxV0JreGxTTVpMNzcw
UjltSUFUbmRHa0g3ejV4LXI5S3dCWkZDNEZDRzJoZ196RSIsCisgICAgcWk6ICJZQ1hfcEx3Yk1C
QTFUaFZIMFdjd21ueXRxTmNyTUNFd1RtN0J5QTJlVTZuV2JRclVMdmY3bTlfa3pmTFVjanNucEFW
bEJRRzVKTVhNeTBTcTRwdHdieXdzYTUtRzhLQU9PT1IyTDN2NGhDLUV5czlmdGdGTV8zaTBvNDBl
ZVFINGIzaGFQYm50ckllTWc4SXpsT3VWWUtmOS0yUXVLRG9XZVJkZDdOc2R4VGsiCit9OwordmFy
IGVuY3J5cHRBbGdvcml0aG0gPSB7bmFtZTogIlJTQS1PQUVQIiwgaGFzaDogInNoYS0xIn07Cit2
YXIgZXh0cmFjdGFibGUgPSB0cnVlOwordmFyIG5vbkV4dHJhY3RhYmxlID0gZmFsc2U7CisKK2Rl
YnVnKCJJbXBvcnRpbmcgUlNBIGtleXMuLi4iKTsKK2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJq
d2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShwdWJsaWNLZXlKU09OKSksIG51
bGwsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKS50aGVuKGZ1bmN0aW9uKHJl
c3VsdCkgeworICAgIHB1YmxpY0tleSA9IHJlc3VsdDsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRs
ZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KHByaXZh
dGVLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKTsK
K30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgcHJpdmF0ZUtleSA9IHJlc3VsdDsKKwor
ICAgIGRlYnVnKCJFbmNyeXB0aW5nIGEgMjE0IGJ5dGUgYnVmZmVyIHdpdGggUlNBLU9BRVAgU0hB
LTEsIDIwNDggYml0IGtleS4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmVuY3J5cHQo
e25hbWU6ICJSU0EtT0FFUCIsIGhhc2g6ICJTSEEtMSJ9LCBwdWJsaWNLZXksIG5ldyBVaW50OEFy
cmF5KDIxNCkpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICB0ZXN0UGFzc2VkKCJT
dWNjZWVkZWQiKTsKKyAgICBkZWJ1ZygiRW5jcnlwdGluZyBhIDIxNSBieXRlIGJ1ZmZlci4uLiIp
OworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmVuY3J5cHQoe25hbWU6ICJSU0EtT0FFUCIsIGhh
c2g6ICJTSEEtMSJ9LCBwdWJsaWNLZXksIG5ldyBVaW50OEFycmF5KDIxNSkpOworfSkudGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKKyAgICB0ZXN0RmFpbGVkKCJTdWNjZWVkZWQiKTsKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKK30sIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHRlc3RQYXNzZWQoIlJlamVj
dGVkIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1v
YWVwLXdyYXAtdW53cmFwLWFlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL3JzYS1vYWVwLXdyYXAtdW53cmFwLWFlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uM2Y5NThkNjI2YjVjYjk2ZDcwN2M3MGEzNjViYTI5Mjk5Nzc0MzlhZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtd3JhcC11bndy
YXAtYWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM0IEBACitUZXN0IHdyYXBwaW5nIGFuZCB1
bndyYXBwaW5nIEFFUyBrZXlzIHdpdGggUlNBLU9BRVAuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitJbXBvcnRpbmcgUlNBIGtleXMuLi4KK0ltcG9ydGluZyBhbiBBRVMga2V5Li4u
CitXcmFwcGluZyBpdC4uLgorUEFTUyB3cmFwcGVkS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3Qg
QXJyYXlCdWZmZXJdJworVW53cmFwcGluZyBpdC4uLgorUEFTUyB1bndyYXBwZWRLZXkudG9TdHJp
bmcoKSBpcyAnW29iamVjdCBLZXldJworUEFTUyB1bndyYXBwZWRLZXkudHlwZSBpcyAnc2VjcmV0
JworUEFTUyB1bndyYXBwZWRLZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQorUEFTUyB1bndyYXBwZWRL
ZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0FFUy1DQkMnCitQQVNTIHVud3JhcHBlZEtleS5hbGdvcml0
aG0ubGVuZ3RoIGlzIDI1NgorUEFTUyB1bndyYXBwZWRLZXkudXNhZ2VzIGlzIFsnZGVjcnlwdCcs
ICdlbmNyeXB0J10KK0V4cG9ydGluZyBpdC4uLgorUEFTUyBieXRlc1RvSGV4U3RyaW5nKHVud3Jh
cHBlZEtleURhdGEpIGlzIGJ5dGVzVG9IZXhTdHJpbmcoYWVzS2V5RGF0YSkKKworV3JhcHBpbmcg
dGhlIHNhbWUga2V5IGFzIEpXSy4uLgorUEFTUyB3cmFwcGVkS2V5LnRvU3RyaW5nKCkgaXMgJ1tv
YmplY3QgQXJyYXlCdWZmZXJdJworVW53cmFwcGluZyBpdC4uLgorUEFTUyB1bndyYXBwZWRLZXku
dG9TdHJpbmcoKSBpcyAnW29iamVjdCBLZXldJworUEFTUyB1bndyYXBwZWRLZXkudHlwZSBpcyAn
c2VjcmV0JworUEFTUyB1bndyYXBwZWRLZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQorUEFTUyB1bndy
YXBwZWRLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0FFUy1DQkMnCitQQVNTIHVud3JhcHBlZEtleS5h
bGdvcml0aG0ubGVuZ3RoIGlzIDI1NgorUEFTUyB1bndyYXBwZWRLZXkudXNhZ2VzIGlzIFsnZGVj
cnlwdCcsICdlbmNyeXB0J10KK0V4cG9ydGluZyBpdC4uLgorUEFTUyBieXRlc1RvSGV4U3RyaW5n
KHVud3JhcHBlZEtleURhdGEpIGlzIGJ5dGVzVG9IZXhTdHJpbmcoYWVzS2V5RGF0YSkKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLXdyYXAtdW53cmFwLWFl
cy5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2FlcC13cmFwLXVu
d3JhcC1hZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xM2U2NWM1MDNkMTg4NTE5MGRjODI1OGQ1MjgyN2Y4
ODkyMjg1ODEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1
YnRsZS9yc2Etb2FlcC13cmFwLXVud3JhcC1hZXMuaHRtbApAQCAtMCwwICsxLDEwMyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1v
bi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVz
dCB3cmFwcGluZyBhbmQgdW53cmFwcGluZyBBRVMga2V5cyB3aXRoIFJTQS1PQUVQLiIpOworCitq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIHB1YmxpY0tleUpTT04gPSB7CisgICAga3R5OiAi
UlNBIiwKKyAgICBhbGc6ICJSU0EtT0FFUCIsCisgICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6
cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5
YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdY
U1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2da
RExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5I
LWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2
Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCisgICAgZTogIkFRQUIiCit9
OworCit2YXIgcHJpdmF0ZUtleUpTT04gPSB7CisgICAga3R5OiAiUlNBIiwKKyAgICBhbGc6ICJS
U0EtT0FFUCIsCisgICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5
MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dR
R08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2
czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5
YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNC
aXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFpp
aXlpZ2x4TUxfaTMtX0NlZWNDdyIsCisgICAgZTogIkFRQUIiLAorICAgIGQ6ICJlTkxTMzdhQ3o3
UlhTTlBEX0R0TEJKNmo1VDhjU3hkelJCQ2pQYUk2V2NHcUpwMTZscTNVVHd1b0RMQXFsQTlvR1lt
MjM4ZHNJV3B1dWNQX2xRdGJXZS03U3B4b0k2X3ZtWUdmN1lWVUh2MS1ERjlxaU9tU3JNbWR4TW5W
T3pZWFk4UmFUNnRoUGpuX0o1Y2ZMVjJ4SV9Md3NyTXRtcGRTeU5sZ1gwelRVaHd0dWFoZ0FLTUVD
aFlqSDJFbmpIZEh3NnNZMi13QXBkY1FJN1VMRTBvbzVSemJRWnBtdWhjTjloaUJjMEwzaGhGMHFv
NTBtYmwwMl82NV9HUTdEcFZrWEJ4TmdSQkx6bFBhYm16ekcyb0FoZmVmTGdZbVNDMW9wYUNrWEU2
dlJXUU5XTkw0NVJaTlpGWU0zdW9KZ2hPTXFHZW9jTTBCcGpkQ2hIclBPbEZ2U1EiLAorICAgIHA6
ICI0bWlUdUFqS01lSDV1SjVLQjM5N1FVd2hia1lFZ1NiY0EybWlmbVNrdkUyMDE4Z2I1NXFrQkhL
MWVWcnlmMV9tNDNMTmxjNk9fYWs2Z2Z6ZFpJWnZTNU5DR2pQbDBxMDlwbFVwdThxRk9Tc3BCd0E2
N3FHSDc2bEZsWkxuX2Q0eWdsUzd3ZkxydTRfNVlzOHFMTHMtRHFWTHZpd3Bvc09ueXlXcXdNNUFY
cDAiLAorICAgIHE6ICJ4SFlyemtpdnRtbnpfc0djaG5XR2MwcS1wRE9rS2ljcHRScHYycE1GSUlY
eG5GWDVhTWVFWElaalZ1alh0d1V5MVVsRklOMkdaSlN2eTVLSjc5bXVfWHlObkZITXplZEgtQTNl
ZTN1OGgxVVVyWkYtdlV1MV9lNFVfeDY3Tk4xZGVkelVTS3luTjdwRmwzT2t1U2hNQldHVi1jd3pP
UGRjVkFmVnVabHhVTWMiLAorICAgIGRwOiAiZkJ6RHpZRFVCbUJRR29wN0huMGR2Zl9UMjdWNlJx
cGN0V28wNzRDUVpjRmJQMmF0RlZ0S1NqM3ZpV1QzeGlkMlZIemNnaURIZGZwTTNuRVZsRU8xd3dJ
b25HQ1N2ZGpHRU9aaWlGVk9qclpBT1Z4QThndU9qeXlGdnFiWGtlMDZWd1BJSVZ2ZktlU1UyenVo
YlBfXzF0dDZGX2Z4b3c0S2IyeG9uR1QwR0drIiwKKyAgICBkcTogImptRTJEaUlQZGh3RGdMWEFR
cElhQnFRODFiTzNYZlZUX0xSVUxBd3d3d2xQdVFWMTQ4SDA0emxoOVRKNlkyR1pIWW9rVjFVMGVP
QnBKeGZrYjdkTFl0cEpwdWlCalJmNHlJVUVvR2xra0lfUWxKbkZTRnItWWpHUmRmTkhxV0JreGxT
TVpMNzcwUjltSUFUbmRHa0g3ejV4LXI5S3dCWkZDNEZDRzJoZ196RSIsCisgICAgcWk6ICJZQ1hf
cEx3Yk1CQTFUaFZIMFdjd21ueXRxTmNyTUNFd1RtN0J5QTJlVTZuV2JRclVMdmY3bTlfa3pmTFVj
anNucEFWbEJRRzVKTVhNeTBTcTRwdHdieXdzYTUtRzhLQU9PT1IyTDN2NGhDLUV5czlmdGdGTV8z
aTBvNDBlZVFINGIzaGFQYm50ckllTWc4SXpsT3VWWUtmOS0yUXVLRG9XZVJkZDdOc2R4VGsiCit9
OwordmFyIHdyYXBBbGdvcml0aG0gPSB7bmFtZTogIlJTQS1PQUVQIiwgaGFzaDogInNoYS0xIn07
Cit2YXIgZXh0cmFjdGFibGUgPSB0cnVlOwordmFyIG5vbkV4dHJhY3RhYmxlID0gZmFsc2U7CisK
K2RlYnVnKCJJbXBvcnRpbmcgUlNBIGtleXMuLi4iKTsKK2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5
KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShwdWJsaWNLZXlKU09OKSks
IG51bGwsIGV4dHJhY3RhYmxlLCBbIndyYXBLZXkiLCAidW53cmFwS2V5Il0pLnRoZW4oZnVuY3Rp
b24ocmVzdWx0KSB7CisgICAgcHVibGljS2V5ID0gcmVzdWx0OworICAgIHJldHVybiBjcnlwdG8u
c3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnko
cHJpdmF0ZUtleUpTT04pKSwgbnVsbCwgZXh0cmFjdGFibGUsIFsid3JhcEtleSIsICJ1bndyYXBL
ZXkiXSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHByaXZhdGVLZXkgPSByZXN1
bHQ7CisKKyAgICBkZWJ1ZygiSW1wb3J0aW5nIGFuIEFFUyBrZXkuLi4iKTsKKyAgICBhZXNLZXlE
YXRhID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCI2MDNkZWIxMDE1Y2E3MWJlMmI3M2FlZjA4NTdk
Nzc4MTFmMzUyYzA3M2I2MTA4ZDcyZDk4MTBhMzA5MTRkZmY0Iik7CisgICAgcmV0dXJuIGNyeXB0
by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBhZXNLZXlEYXRhLCAiYWVzLWNiYyIsIGV4dHJhY3Rh
YmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ3cmFwS2V5IiwgInVud3JhcEtleSJdKQorfSku
dGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBhZXNLZXkgPSByZXN1bHQ7CisgICAgZGVidWco
IldyYXBwaW5nIGl0Li4uIik7CisKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS53cmFwS2V5KCJy
YXciLCBhZXNLZXksIHB1YmxpY0tleSwgd3JhcEFsZ29yaXRobSk7Cit9KS50aGVuKGZ1bmN0aW9u
KHJlc3VsdCkgeworICAgIHdyYXBwZWRLZXkgPSByZXN1bHQ7CisgICAgc2hvdWxkQmUoIndyYXBw
ZWRLZXkudG9TdHJpbmcoKSIsICInW29iamVjdCBBcnJheUJ1ZmZlcl0nIik7CisKKyAgICBkZWJ1
ZygiVW53cmFwcGluZyBpdC4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLnVud3JhcEtl
eSgicmF3Iiwgd3JhcHBlZEtleSwgcHJpdmF0ZUtleSwgd3JhcEFsZ29yaXRobSwgImFlcy1jYmMi
LCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSk7Cit9KS50aGVuKGZ1bmN0aW9u
KHJlc3VsdCkgeworICAgIHVud3JhcHBlZEtleSA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgidW53
cmFwcGVkS2V5LnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgS2V5XSciKTsKKyAgICBzaG91bGRCZSgi
dW53cmFwcGVkS2V5LnR5cGUiLCAiJ3NlY3JldCciKTsKKyAgICBzaG91bGRCZSgidW53cmFwcGVk
S2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKKyAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5LmFs
Z29yaXRobS5uYW1lIiwgIidBRVMtQ0JDJyIpOworICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXku
YWxnb3JpdGhtLmxlbmd0aCIsICIyNTYiKTsKKyAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5LnVz
YWdlcyIsICJbJ2RlY3J5cHQnLCAnZW5jcnlwdCddIik7CisKKyAgICBkZWJ1ZygiRXhwb3J0aW5n
IGl0Li4uIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJyYXciLCB1bndy
YXBwZWRLZXkpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICB1bndyYXBwZWRLZXlE
YXRhID0gcmVzdWx0OworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKHVud3JhcHBlZEtl
eURhdGEpIiwgImJ5dGVzVG9IZXhTdHJpbmcoYWVzS2V5RGF0YSkiKTsKKworICAgIGRlYnVnKCJc
bldyYXBwaW5nIHRoZSBzYW1lIGtleSBhcyBKV0suLi4iKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1
YnRsZS53cmFwS2V5KCJqd2siLCBhZXNLZXksIHB1YmxpY0tleSwgd3JhcEFsZ29yaXRobSk7Cit9
KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHdyYXBwZWRLZXkgPSByZXN1bHQ7CisgICAg
c2hvdWxkQmUoIndyYXBwZWRLZXkudG9TdHJpbmcoKSIsICInW29iamVjdCBBcnJheUJ1ZmZlcl0n
Iik7CisKKyAgICBkZWJ1ZygiVW53cmFwcGluZyBpdC4uLiIpOworICAgIHJldHVybiBjcnlwdG8u
c3VidGxlLnVud3JhcEtleSgiandrIiwgd3JhcHBlZEtleSwgcHJpdmF0ZUtleSwgd3JhcEFsZ29y
aXRobSwgImFlcy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSk7Cit9
KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHVud3JhcHBlZEtleSA9IHJlc3VsdDsKKyAg
ICBzaG91bGRCZSgidW53cmFwcGVkS2V5LnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgS2V5XSciKTsK
KyAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5LnR5cGUiLCAiJ3NlY3JldCciKTsKKyAgICBzaG91
bGRCZSgidW53cmFwcGVkS2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKKyAgICBzaG91bGRCZSgi
dW53cmFwcGVkS2V5LmFsZ29yaXRobS5uYW1lIiwgIidBRVMtQ0JDJyIpOworICAgIHNob3VsZEJl
KCJ1bndyYXBwZWRLZXkuYWxnb3JpdGhtLmxlbmd0aCIsICIyNTYiKTsKKyAgICBzaG91bGRCZSgi
dW53cmFwcGVkS2V5LnVzYWdlcyIsICJbJ2RlY3J5cHQnLCAnZW5jcnlwdCddIik7CisKKyAgICBk
ZWJ1ZygiRXhwb3J0aW5nIGl0Li4uIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZXhwb3J0
S2V5KCJyYXciLCB1bndyYXBwZWRLZXkpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAg
ICB1bndyYXBwZWRLZXlEYXRhID0gcmVzdWx0OworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3Ry
aW5nKHVud3JhcHBlZEtleURhdGEpIiwgImJ5dGVzVG9IZXhTdHJpbmcoYWVzS2V5RGF0YSkiKTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLXBvc3RNZXNz
YWdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLXBv
c3RNZXNzYWdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNTM1OTJlOGFjZGIzZWM1MzdhODM1
MGEyMzE5ODgxNzdkYjI0ZGUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9yc2EtcG9zdE1lc3NhZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzIg
QEAKK1Rlc3Qgc2VuZGluZyBjcnlwdG8ga2V5cyB2aWEgcG9zdE1lc3NhZ2UuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitLZXkgcmVjZWl2ZWQgaW4gYSBtZXNzYWdlOgorUEFTUyBr
ZXkudHlwZSBpcyAncHJpdmF0ZScKK1BBU1Mga2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKK1BBU1Mg
a2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScKK1BBU1Mga2V5LmFsZ29y
aXRobS5tb2R1bHVzTGVuZ3RoIGlzIDIwNDgKK1BBU1MgYnl0ZXNUb0hleFN0cmluZyhrZXkuYWxn
b3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJworUEFTUyBrZXkudXNhZ2VzIGlzIFsi
c2lnbiIsICJ2ZXJpZnkiXQorCitFeHBvcnRlZCBiYWNrIHRvIEpXSzoKK1BBU1MgZXhwb3J0ZWRK
V0sua3R5IGlzICdSU0EnCitQQVNTIGV4cG9ydGVkSldLLmFsZyBpcyAnUlMyNTYnCitQQVNTIGV4
cG9ydGVkSldLLmV4dCBpcyB0cnVlCitQQVNTIGV4cG9ydGVkSldLLmtleV9vcHMgaXMgWydzaWdu
JywndmVyaWZ5J10KK1BBU1MgZXhwb3J0ZWRKV0sudXNlIGlzIHVuZGVmaW5lZAorUEFTUyBleHBv
cnRlZEpXSy5uIGlzIHByaXZhdGVLZXlKU09OLm4KK1BBU1MgZXhwb3J0ZWRKV0suZSBpcyBwcml2
YXRlS2V5SlNPTi5lCitQQVNTIGV4cG9ydGVkSldLLmQgaXMgcHJpdmF0ZUtleUpTT04uZAorUEFT
UyBleHBvcnRlZEpXSy5wIGlzIHByaXZhdGVLZXlKU09OLnAKK1BBU1MgZXhwb3J0ZWRKV0sucSBp
cyBwcml2YXRlS2V5SlNPTi5xCitQQVNTIGV4cG9ydGVkSldLLmRwIGlzIHByaXZhdGVLZXlKU09O
LmRwCitQQVNTIGV4cG9ydGVkSldLLmRxIGlzIHByaXZhdGVLZXlKU09OLmRxCitQQVNTIGV4cG9y
dGVkSldLLnFpIGlzIHByaXZhdGVLZXlKU09OLnFpCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL3JzYS1wb3N0TWVzc2FnZS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9yc2EtcG9zdE1lc3NhZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzNlYTdlNGJj
ZGMwMWFmNTE2NjY5MmZiNjJhNmUyNGRhYTcwNTk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtcG9zdE1lc3NhZ2UuaHRtbApAQCAtMCwwICsx
LDY2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3Qgc2VuZGluZyBjcnlwdG8g
a2V5cyB2aWEgcG9zdE1lc3NhZ2UuIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIg
cHJpdmF0ZUtleUpTT04gPSB7CisgICAga3R5OiAiUlNBIiwKKyAgICBhbGc6ICJSUzI1NiIsCisg
ICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fq
b0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVm
dFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRr
Q3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIw
eFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVs
TldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMt
X0NlZWNDdyIsCisgICAgZTogIkFRQUIiLAorICAgIGQ6ICJlTkxTMzdhQ3o3UlhTTlBEX0R0TEJK
Nmo1VDhjU3hkelJCQ2pQYUk2V2NHcUpwMTZscTNVVHd1b0RMQXFsQTlvR1ltMjM4ZHNJV3B1dWNQ
X2xRdGJXZS03U3B4b0k2X3ZtWUdmN1lWVUh2MS1ERjlxaU9tU3JNbWR4TW5WT3pZWFk4UmFUNnRo
UGpuX0o1Y2ZMVjJ4SV9Md3NyTXRtcGRTeU5sZ1gwelRVaHd0dWFoZ0FLTUVDaFlqSDJFbmpIZEh3
NnNZMi13QXBkY1FJN1VMRTBvbzVSemJRWnBtdWhjTjloaUJjMEwzaGhGMHFvNTBtYmwwMl82NV9H
UTdEcFZrWEJ4TmdSQkx6bFBhYm16ekcyb0FoZmVmTGdZbVNDMW9wYUNrWEU2dlJXUU5XTkw0NVJa
TlpGWU0zdW9KZ2hPTXFHZW9jTTBCcGpkQ2hIclBPbEZ2U1EiLAorICAgIHA6ICI0bWlUdUFqS01l
SDV1SjVLQjM5N1FVd2hia1lFZ1NiY0EybWlmbVNrdkUyMDE4Z2I1NXFrQkhLMWVWcnlmMV9tNDNM
TmxjNk9fYWs2Z2Z6ZFpJWnZTNU5DR2pQbDBxMDlwbFVwdThxRk9Tc3BCd0E2N3FHSDc2bEZsWkxu
X2Q0eWdsUzd3ZkxydTRfNVlzOHFMTHMtRHFWTHZpd3Bvc09ueXlXcXdNNUFYcDAiLAorICAgIHE6
ICJ4SFlyemtpdnRtbnpfc0djaG5XR2MwcS1wRE9rS2ljcHRScHYycE1GSUlYeG5GWDVhTWVFWEla
alZ1alh0d1V5MVVsRklOMkdaSlN2eTVLSjc5bXVfWHlObkZITXplZEgtQTNlZTN1OGgxVVVyWkYt
dlV1MV9lNFVfeDY3Tk4xZGVkelVTS3luTjdwRmwzT2t1U2hNQldHVi1jd3pPUGRjVkFmVnVabHhV
TWMiLAorICAgIGRwOiAiZkJ6RHpZRFVCbUJRR29wN0huMGR2Zl9UMjdWNlJxcGN0V28wNzRDUVpj
RmJQMmF0RlZ0S1NqM3ZpV1QzeGlkMlZIemNnaURIZGZwTTNuRVZsRU8xd3dJb25HQ1N2ZGpHRU9a
aWlGVk9qclpBT1Z4QThndU9qeXlGdnFiWGtlMDZWd1BJSVZ2ZktlU1UyenVoYlBfXzF0dDZGX2Z4
b3c0S2IyeG9uR1QwR0drIiwKKyAgICBkcTogImptRTJEaUlQZGh3RGdMWEFRcElhQnFRODFiTzNY
ZlZUX0xSVUxBd3d3d2xQdVFWMTQ4SDA0emxoOVRKNlkyR1pIWW9rVjFVMGVPQnBKeGZrYjdkTFl0
cEpwdWlCalJmNHlJVUVvR2xra0lfUWxKbkZTRnItWWpHUmRmTkhxV0JreGxTTVpMNzcwUjltSUFU
bmRHa0g3ejV4LXI5S3dCWkZDNEZDRzJoZ196RSIsCisgICAgcWk6ICJZQ1hfcEx3Yk1CQTFUaFZI
MFdjd21ueXRxTmNyTUNFd1RtN0J5QTJlVTZuV2JRclVMdmY3bTlfa3pmTFVjanNucEFWbEJRRzVK
TVhNeTBTcTRwdHdieXdzYTUtRzhLQU9PT1IyTDN2NGhDLUV5czlmdGdGTV8zaTBvNDBlZVFINGIz
aGFQYm50ckllTWc4SXpsT3VWWUtmOS0yUXVLRG9XZVJkZDdOc2R4VGsiCit9OworCit3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uKGV2dCkgeworICAgIGRlYnVnKCJL
ZXkgcmVjZWl2ZWQgaW4gYSBtZXNzYWdlOiIpOworICAgIGtleSA9IGV2dC5kYXRhOworICAgIHNo
b3VsZEJlKCJrZXkudHlwZSIsICIncHJpdmF0ZSciKTsKKyAgICBzaG91bGRCZSgia2V5LmV4dHJh
Y3RhYmxlIiwgInRydWUiKTsKKyAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidS
U0FTU0EtUEtDUzEtdjFfNSciKTsKKyAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5tb2R1bHVz
TGVuZ3RoIiwgIjIwNDgiKTsKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhrZXkuYWxn
b3JpdGhtLnB1YmxpY0V4cG9uZW50KSIsICInMDEwMDAxJyIpOworICAgIHNob3VsZEJlKCJrZXku
dXNhZ2VzIiwgJ1sic2lnbiIsICJ2ZXJpZnkiXScpOworCisgICAgY3J5cHRvLnN1YnRsZS5leHBv
cnRLZXkoImp3ayIsIGtleSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgZXhwb3J0
ZWRKV0sgPSBKU09OLnBhcnNlKGJ5dGVzVG9BU0NJSVN0cmluZyhyZXN1bHQpKTsKKyAgICAgICAg
ZGVidWcoIlxuRXhwb3J0ZWQgYmFjayB0byBKV0s6Iik7CisgICAgICAgIHNob3VsZEJlKCJleHBv
cnRlZEpXSy5rdHkiLCAiJ1JTQSciKTsKKyAgICAgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmFs
ZyIsICInUlMyNTYnIik7CisgICAgICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5leHQiLCAidHJ1
ZSIpOworICAgICAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sua2V5X29wcyIsICJbJ3NpZ24nLCd2
ZXJpZnknXSIpOworICAgICAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sudXNlIiwgInVuZGVmaW5l
ZCIpOworICAgICAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0subiIsICJwcml2YXRlS2V5SlNPTi5u
Iik7CisgICAgICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5lIiwgInByaXZhdGVLZXlKU09OLmUi
KTsKKyAgICAgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmQiLCAicHJpdmF0ZUtleUpTT04uZCIp
OworICAgICAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sucCIsICJwcml2YXRlS2V5SlNPTi5wIik7
CisgICAgICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5xIiwgInByaXZhdGVLZXlKU09OLnEiKTsK
KyAgICAgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmRwIiwgInByaXZhdGVLZXlKU09OLmRwIik7
CisgICAgICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5kcSIsICJwcml2YXRlS2V5SlNPTi5kcSIp
OworICAgICAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sucWkiLCAicHJpdmF0ZUtleUpTT04ucWki
KTsKKyAgICAgICAgZGVidWcoIiIpOworCisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0p
OworfSwgZmFsc2UpOworCitjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1Vp
bnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHJpdmF0ZUtleUpTT04pKSwgbnVsbCwgdHJ1ZSwgWyJz
aWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHBvc3RNZXNzYWdl
KHJlc3VsdCwgIioiKTsKK30pOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtZGVj
cnlwdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYWVz
LXBrY3MxLXYxXzUtZGVjcnlwdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ1MDQ4NGRhMDZi
OTFjMDJmNDcyNzY0ZDFlMWZmY2Q5YmVlMTY2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhZXMtcGtjczEtdjFfNS1kZWNyeXB0LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0IGRlY3J5cHRpbmcgYSBrbm93biBtZXNzYWdlIHdp
dGggUlNBRVMtUEtDUzEtdjFfNS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0lt
cG9ydGluZyBhbiBSU0Ega2V5Li4uCitEZWNyeXB0aW5nLi4uCitQQVNTIGJ5dGVzVG9IZXhTdHJp
bmcobmV3IFVpbnQ4QXJyYXkobWVzc2FnZSkpIGlzICcyYWFjZWM4NmY0MjNkZDkyNWVjMTU4ODIy
YTc0OGNiZTZjMzFhMCcKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3Jz
YWVzLXBrY3MxLXYxXzUtZGVjcnlwdC5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1
YnRsZS9yc2Flcy1wa2NzMS12MV81LWRlY3J5cHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMDcwMGY0MTQx
ZTAyMzM4YzE1ZmIyZTgwNjUzNjM1NWM3MTY3ZTJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Flcy1wa2NzMS12MV81LWRlY3J5cHQuaHRtbApA
QCAtMCwwICsxLDQ5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCJUZXN0IGRlY3J5cHRpbmcgYSBrbm93biBtZXNzYWdlIHdpdGggUlNB
RVMtUEtDUzEtdjFfNS4iKTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBwcml2YXRl
S2V5SlNPTiA9IHsKKyAgICBrdHk6ICJSU0EiLAorICAgIGFsZzogIlJTQTFfNSIsCisgICAgbjog
QmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoImRjZmExMGZmYTc0NjY1
YWVlZjg3MDk3NGVhOTliMmNlNTQ1NDdjNjdmNDJhYWE2ZGQwMWEyZWQzMWZkMmMyNDJhZjVkOTYw
YjFmODk2ZWZiYTM1NDNkNjU1NGI3YjEyNjg3YTVjNjg4NTY4ZjMyZTAyNmM1MzJkMjU5OTNiOTdh
N2MyODQyZWMyYjhlMTIzNWVlZTI0MTRkMjU4MDZjNmZiYWU0Mzg5NTRlYmE5ZDI3NTVkZmZlZWIx
YjQ3NzAwOTU3ODE1YThhMjMzZjk3YjFhMmM3MTRiM2UyYmUyZTQyZDhiZTMwYjE5NjE1ODJlYTk5
NDg5MTBlMGM3OTdjNTBmYzRiYjQ1NWYwZmM0NWU1ZTM0ZTYzOTZhYzViMmQ0NjIzOTM2NWM3ZjNk
YWFmMDkwOTQwMGQ2MWNmOWUwY2E4MDgzZWFmMzM1YTZmY2ViNjg2M2MxY2MwY2Y1YTE3MWFmZjM1
ZDk3ZWNiNjBlZjI1MWM3ZWMyYzhhNTg4MzYxZGM0MTI2NmE0YjdlZDM4YjAyNmNlMGQ1Mzc4NjQ0
OWRiYjExYTA2ZWEzM2NjZjFlY2E1NzUyMDFlZDFhYTQ3M2VkMTE4N2VjMWQ4YTc0NGVhMzQ1YmVk
N2VhMDBlZTRlODFiYmE0NjQ4NjAxZGQ1MzdkYzkxMDE1ZDMxZjBjMmMxIikpLAorICAgIGU6IEJh
c2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMTAwMDEiKSksCisgICAg
ZDogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjIxOTUwODUxY2Rm
MjUzMjAzMThiMzA1YWZhMGYzNzFmMDdhZTVhNDRiMzE0ZWJkNzI5ZjVkY2IxNWRhN2ZhMzk0N2Fj
ZGQ5MTVkYWVkNTc0YmQxNmRmODhiZjg1ZjYxMDYwYjM4NzE3MmZhZTZlMDEyNjJiMzg2NGMyZDNj
MjJmOTRlMDRhODE1OTQyMmI0ZWQyNzljNDhhNGM5ZDc2N2Q0OTY2MDcxYTViYmY1ZDA0M2UxNmZm
NDZlYzFiYTA3MTZmMDBiYmM5N2JmZjVkNTY5M2UyMTRlOTljOTcyMWYxMmIzZWM2MjgyYWUyYTQ4
NTcyMWI5NmRkY2Y3NDAzZmEwMzdkMGM1N2FiNDYzYzQ0OGRlNWNjMTIyNjVhZGQ4ODZkMzExZWE4
ZDhhNTkwM2ZhNTZjNWYxYzljZjJlYjExY2I2NTdhMWE3ZDNlNDEzNTJkYzNlNjg2ODk4YzRjZTQz
MDVlOGI2MzhlMWIwOGEyYTg2Y2M5ZWI5ODY2ZjM0OTlhYzc3YjYxMzZiODFjYjI3NmQ2MTRjZmVi
N2I2ZWQzZjNiYzc3NWU0NmMwMDA2NmViZWVlMmNmZjcxNjZiNTc1MjA1OTg5NDdmZjYyMTAzMjBi
Mjg4ZmI0ZjJjM2Y4ZmU5N2IyNzk0MTRlYmY3MjAzMDAwYTE5ZmMwNDI0ODc1IikpLAorICAgIHA6
IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJmMTIzYmZlNTNkZTk3
YTU2OWQ5MWFkY2Y1NTZmYTYyNWFkMzBmM2ZkM2Q4MTFmOWU5MWU2YWY0NGI2ZTc4MGNiMGYzMjc4
MjlmYjIxMTkwYWUyODA2NjQ2ZDcyOGNkOWI2NTMxMTMyYjFlYmZlZjEyNzI5OTMwNjBmMWNlNzBi
MTI0MzkzMDkxZWU4NTkzYjcyNzM2N2VkYmJhMDA5ZWM1YmUxN2M0YWNlZTEyMGM4NDEyNjdkNDc2
MzFhMTZjMzZhNmQxYzk5OTczYzFiMGI1YTgzNWJmMzlmZWFmZThmNjQyMWZkOWMyYTkwYmMyNzk3
NjY1OWU2N2JjODMxMjRkIikpLAorICAgIHE6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5n
VG9VaW50OEFycmF5KCJlYTk4MzliN2UzN2VhODliYmRhMjdlNGM5MzQ3MWNiNGZkOTIxODlhMGE5
NmJjYjRkNzU2OTNmMThhNWMyZjc0MmFmOWUzNmZkZTY3OWZiZDllYWUzNDVmYTI2OTUyN2I2OTY1
MDIxYzRiZGY1NGQ2ODViZjA4OTYwY2M5NzZmNjhkY2EyMWNlYmY0NGYyNjhhNTlkYWI4ZDFhMjVl
NTE5ZjUxNDdlMWY0NWZlMjg3ZDc0Y2Y3MjViZWMxMzI2ZDM0MjEyYzU2Y2Y0ZmZmYTIwMmY1N2I2
OGVlOGNjYTk0M2YzYzEzOGM0Y2RlMzNiZGYyYzk0NDBkZjY1MzIyNDQ1IikpLAorICAgIGRwOiBC
YXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiY2EwYzliNjBiOGU0YTYw
NjY3NTZjNjVkMjA4ODQxOWRmNjI1M2I3YjY4OGE4NWY0ZjZlOTY0ZDg1ZGFkNTJhNDUyNjI4Njdm
MWU5NjE4MDY5ZmNjZDg2NWU5Mjg5ZTQ2ZTM5ZTIwMjI5NDRjNWM0NDg3ZDM0NWNmMjUyZDQ2MGQ5
NzdkNzdlZGZlZmVkYmNiYWU0NmEyM2FmN2ZhNDcwZjA3N2RhMGU1MDk0MjA0NGNiMWEzNjA0OTdj
YzI3NjBhYzBmMmFkNGEyZmNkMGU4NGQ3YTFkOTRkZmRkMjY1OGZkOWNlMTg0NzVjMWZhNzVlZTBj
ZWJhZDBjZjBhYzA0ZCIpKSwKKyAgICBkcTogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdU
b1VpbnQ4QXJyYXkoIjUyODE3MTIzM2M0ZTRhNmM2M2I4Njc2NGY1MTMzODg0NmFmZGRiY2IyOTU4
MzQ0YzAxYzQwMDRhMWRkODI4MTQ1YTFkMDJhMTUwN2RlZjRmNTgyNDdhNjRmYzEwYzBhMjg4YzFh
ZTg5NTcyMWQ3OGI4ZjA0NGRiN2MwMGQ4NmRhNTVhOWI2NTQyOTJlY2Q3NjgyNzBiZTY5ZTRiZDU5
MjJkNGVmZmQxZjcwOTU1Zjk2MjdlM2UxOWI3NDllOTNiNDBlZjNkZDFkNjFkOTM5MTVlMmIwOWQ5
MzBiNGIxNzY4YmZhY2MwMTM2ZjM5YjBjZmRmYjRkMDUwMDExZTJlNjUiKSksCisgICAgcWk6IEJh
c2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJkZjJlYjIzMjJjYzJkYWFi
ZjRkMTQ2NTUwOGY0MTUyMWNkYTdjZWZmMjNlYmU2MWQwMGQ0NDFlZTcyOGRkYTVkMTZjN2JmOTIw
Y2Q5NWYzNGJlYjRmZTMyZWU4MTdlZjMzNjJlMGJjZDFkMTI0NWY3YjA3NzkzZWFhMTkwZGM1YTM3
ZmRhZjRjNjhlMmNhMTM5NzJkN2Y1MTQ4Yjc5NmI2ZmI2ZDdhZGRhMDdiZDJjZDEzYmU5OGNlYmVk
MWVkYzZjYTQxMmUzOTUzNTBjNTlhMWQ4NDJiYzRhYTJmM2MwYjI0M2ZkZTdkZmQ5NTM1NmYyNDM5
MjUxYTExNzJjNDVlIikpCit9OworCit2YXIgZXh0cmFjdGFibGUgPSB0cnVlOwordmFyIG5vbkV4
dHJhY3RhYmxlID0gZmFsc2U7CisKK2RlYnVnKCJJbXBvcnRpbmcgYW4gUlNBIGtleS4uLiIpOwor
Y3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3Ry
aW5naWZ5KHByaXZhdGVLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbImRlY3J5cHQiXSku
dGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBwcml2YXRlS2V5ID0gcmVzdWx0OworCisgICAg
ZGVidWcoIkRlY3J5cHRpbmcuLi4iKTsKKyAgICBlbmNyeXB0ZWRNZXNzYWdlID0gaGV4U3RyaW5n
VG9VaW50OEFycmF5KCI2MDQyZTc0NTU4OWFmMDNhZjg3NTIwZjkzYzQ1ZDhjMzU5ODVhZGExMTYx
YTM3ZDgyMmU5Zjk0NjBmYzc1ZmNmMDE3OWQ4NDkxYjhmNWQxZTRkZThjZWIzMWUwN2M0ODY1YzVh
M2VmZGJiYjY5YTg4MDNiODllZTY1YTQzMGE1ODA5YzcwNzU2OTE1MGI1ODBiYjY4NmE5NGM1NTQx
YzQ2YWRjZDgyNzk2MGNlMjQ0ZmY2ODgzODdkMTYxNmU4NWI0ZDE3ODBjNjQ4MzYwNmNmOTI0YjU0
ZjA4MGNmNDE1NGU2NjgyOWJmNmU1MzI0ODEwNDhlYzQxZmFkYzA3ZDc1NWJiMzRiYjI4MTQ1MjE5
Y2IzMGQ0N2QwZDYxODcwOTE4MGU5MDMwM2ZmOWVmMDkwMThiZWQzZGE3NTc2MWRhNzk0ODExZjk2
YmM5ZThkN2M0YmExYjU5NDZiZGEwYmQzMTNmYWVjNGM5OTNlZDI3NDhlZWQ4Y2NlNGJkYjUyMGJh
N2RiMTY1ZjlmZTU2YWE4NDU0ZDZmZjMzODc0ZmVlZWJmMjlkZTJkZjViN2YwMGFhMWQ5ZmIwNzNm
YzQwNjdiNThkYzUwNjI0ZTEyN2Y3MTFkZGUyY2MyY2ZkYWI0OTE5Y2NmMjhjODM2NjBkZmMyMjdi
MGY1MDBlYzFmOTA0ZiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRlY3J5cHQoIlJTQUVT
LVBLQ1MxLXYxXzUiLCBwcml2YXRlS2V5LCBlbmNyeXB0ZWRNZXNzYWdlKTsKK30pLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7CisgICAgbWVzc2FnZSA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgiYnl0
ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShtZXNzYWdlKSkiLCAiJzJhYWNlYzg2ZjQyM2Rk
OTI1ZWMxNTg4MjJhNzQ4Y2JlNmMzMWEwJyIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsK
Kzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
cnlwdG8vd2Via2l0U3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtd3JhcC11bndyYXAtYWVzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhZXMtcGtjczEtdjFf
NS13cmFwLXVud3JhcC1hZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2YjQ0MTZjOTBkZThi
M2ZhYjczMWYxYjE4YTlhZDc4NGE0YjUwNjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtd3JhcC11bndyYXAtYWVzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDM0IEBACitUZXN0IHdyYXBwaW5nIGFuZCB1bndyYXBwaW5n
IGFuIEFFUyBrZXkgd2l0aCBSU0FFUy1QS0NTMS12MV81LgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworSW1wb3J0aW5nIFJTQSBrZXlzLi4uCitJbXBvcnRpbmcgYW4gQUVTIGtleS4u
LgorV3JhcHBpbmcgaXQuLi4KK1BBU1Mgd3JhcHBlZEtleS50b1N0cmluZygpIGlzICdbb2JqZWN0
IEFycmF5QnVmZmVyXScKK1Vud3JhcHBpbmcgaXQuLi4KK1BBU1MgdW53cmFwcGVkS2V5LnRvU3Ry
aW5nKCkgaXMgJ1tvYmplY3QgS2V5XScKK1BBU1MgdW53cmFwcGVkS2V5LnR5cGUgaXMgJ3NlY3Jl
dCcKK1BBU1MgdW53cmFwcGVkS2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKK1BBU1MgdW53cmFwcGVk
S2V5LmFsZ29yaXRobS5uYW1lIGlzICdBRVMtQ0JDJworUEFTUyB1bndyYXBwZWRLZXkuYWxnb3Jp
dGhtLmxlbmd0aCBpcyAyNTYKK1BBU1MgdW53cmFwcGVkS2V5LnVzYWdlcyBpcyBbJ2RlY3J5cHQn
LCAnZW5jcnlwdCddCitFeHBvcnRpbmcgaXQuLi4KK1BBU1MgYnl0ZXNUb0hleFN0cmluZyh1bndy
YXBwZWRLZXlEYXRhKSBpcyBieXRlc1RvSGV4U3RyaW5nKGFlc0tleURhdGEpCisKK1dyYXBwaW5n
IHRoZSBzYW1lIGtleSBhcyBKV0suLi4KK1BBU1Mgd3JhcHBlZEtleS50b1N0cmluZygpIGlzICdb
b2JqZWN0IEFycmF5QnVmZmVyXScKK1Vud3JhcHBpbmcgaXQuLi4KK1BBU1MgdW53cmFwcGVkS2V5
LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgS2V5XScKK1BBU1MgdW53cmFwcGVkS2V5LnR5cGUgaXMg
J3NlY3JldCcKK1BBU1MgdW53cmFwcGVkS2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKK1BBU1MgdW53
cmFwcGVkS2V5LmFsZ29yaXRobS5uYW1lIGlzICdBRVMtQ0JDJworUEFTUyB1bndyYXBwZWRLZXku
YWxnb3JpdGhtLmxlbmd0aCBpcyAyNTYKK1BBU1MgdW53cmFwcGVkS2V5LnVzYWdlcyBpcyBbJ2Rl
Y3J5cHQnLCAnZW5jcnlwdCddCitFeHBvcnRpbmcgaXQuLi4KK1BBU1MgYnl0ZXNUb0hleFN0cmlu
Zyh1bndyYXBwZWRLZXlEYXRhKSBpcyBieXRlc1RvSGV4U3RyaW5nKGFlc0tleURhdGEpCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Flcy1wa2NzMS12MV81LXdyYXAt
dW53cmFwLWFlcy5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Flcy1w
a2NzMS12MV81LXdyYXAtdW53cmFwLWFlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmZmE4MWMxYmI1NGUy
NDM2ZDBhMTJjNjlhNjEzOTM5MWU4OGVmMzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtd3JhcC11bndyYXAtYWVzLmh0
bWwKQEAgLTAsMCArMSwxMDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8
c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3Qgd3JhcHBpbmcgYW5kIHVud3JhcHBpbmcgYW4gQUVT
IGtleSB3aXRoIFJTQUVTLVBLQ1MxLXYxXzUuIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOwor
Cit2YXIgcHVibGljS2V5SlNPTiA9IHsKKyAgICBrdHk6ICJSU0EiLAorICAgIGFsZzogIlJTQTFf
NSIsCisgICAgbjogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoImRj
ZmExMGZmYTc0NjY1YWVlZjg3MDk3NGVhOTliMmNlNTQ1NDdjNjdmNDJhYWE2ZGQwMWEyZWQzMWZk
MmMyNDJhZjVkOTYwYjFmODk2ZWZiYTM1NDNkNjU1NGI3YjEyNjg3YTVjNjg4NTY4ZjMyZTAyNmM1
MzJkMjU5OTNiOTdhN2MyODQyZWMyYjhlMTIzNWVlZTI0MTRkMjU4MDZjNmZiYWU0Mzg5NTRlYmE5
ZDI3NTVkZmZlZWIxYjQ3NzAwOTU3ODE1YThhMjMzZjk3YjFhMmM3MTRiM2UyYmUyZTQyZDhiZTMw
YjE5NjE1ODJlYTk5NDg5MTBlMGM3OTdjNTBmYzRiYjQ1NWYwZmM0NWU1ZTM0ZTYzOTZhYzViMmQ0
NjIzOTM2NWM3ZjNkYWFmMDkwOTQwMGQ2MWNmOWUwY2E4MDgzZWFmMzM1YTZmY2ViNjg2M2MxY2Mw
Y2Y1YTE3MWFmZjM1ZDk3ZWNiNjBlZjI1MWM3ZWMyYzhhNTg4MzYxZGM0MTI2NmE0YjdlZDM4YjAy
NmNlMGQ1Mzc4NjQ0OWRiYjExYTA2ZWEzM2NjZjFlY2E1NzUyMDFlZDFhYTQ3M2VkMTE4N2VjMWQ4
YTc0NGVhMzQ1YmVkN2VhMDBlZTRlODFiYmE0NjQ4NjAxZGQ1MzdkYzkxMDE1ZDMxZjBjMmMxIikp
LAorICAgIGU6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMTAw
MDEiKSkKK307CisKK3ZhciBwcml2YXRlS2V5SlNPTiA9IHsKKyAgICBrdHk6ICJSU0EiLAorICAg
IGFsZzogIlJTQTFfNSIsCisgICAgbjogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1Vp
bnQ4QXJyYXkoImRjZmExMGZmYTc0NjY1YWVlZjg3MDk3NGVhOTliMmNlNTQ1NDdjNjdmNDJhYWE2
ZGQwMWEyZWQzMWZkMmMyNDJhZjVkOTYwYjFmODk2ZWZiYTM1NDNkNjU1NGI3YjEyNjg3YTVjNjg4
NTY4ZjMyZTAyNmM1MzJkMjU5OTNiOTdhN2MyODQyZWMyYjhlMTIzNWVlZTI0MTRkMjU4MDZjNmZi
YWU0Mzg5NTRlYmE5ZDI3NTVkZmZlZWIxYjQ3NzAwOTU3ODE1YThhMjMzZjk3YjFhMmM3MTRiM2Uy
YmUyZTQyZDhiZTMwYjE5NjE1ODJlYTk5NDg5MTBlMGM3OTdjNTBmYzRiYjQ1NWYwZmM0NWU1ZTM0
ZTYzOTZhYzViMmQ0NjIzOTM2NWM3ZjNkYWFmMDkwOTQwMGQ2MWNmOWUwY2E4MDgzZWFmMzM1YTZm
Y2ViNjg2M2MxY2MwY2Y1YTE3MWFmZjM1ZDk3ZWNiNjBlZjI1MWM3ZWMyYzhhNTg4MzYxZGM0MTI2
NmE0YjdlZDM4YjAyNmNlMGQ1Mzc4NjQ0OWRiYjExYTA2ZWEzM2NjZjFlY2E1NzUyMDFlZDFhYTQ3
M2VkMTE4N2VjMWQ4YTc0NGVhMzQ1YmVkN2VhMDBlZTRlODFiYmE0NjQ4NjAxZGQ1MzdkYzkxMDE1
ZDMxZjBjMmMxIikpLAorICAgIGU6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50
OEFycmF5KCIwMTAwMDEiKSksCisgICAgZDogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdU
b1VpbnQ4QXJyYXkoIjIxOTUwODUxY2RmMjUzMjAzMThiMzA1YWZhMGYzNzFmMDdhZTVhNDRiMzE0
ZWJkNzI5ZjVkY2IxNWRhN2ZhMzk0N2FjZGQ5MTVkYWVkNTc0YmQxNmRmODhiZjg1ZjYxMDYwYjM4
NzE3MmZhZTZlMDEyNjJiMzg2NGMyZDNjMjJmOTRlMDRhODE1OTQyMmI0ZWQyNzljNDhhNGM5ZDc2
N2Q0OTY2MDcxYTViYmY1ZDA0M2UxNmZmNDZlYzFiYTA3MTZmMDBiYmM5N2JmZjVkNTY5M2UyMTRl
OTljOTcyMWYxMmIzZWM2MjgyYWUyYTQ4NTcyMWI5NmRkY2Y3NDAzZmEwMzdkMGM1N2FiNDYzYzQ0
OGRlNWNjMTIyNjVhZGQ4ODZkMzExZWE4ZDhhNTkwM2ZhNTZjNWYxYzljZjJlYjExY2I2NTdhMWE3
ZDNlNDEzNTJkYzNlNjg2ODk4YzRjZTQzMDVlOGI2MzhlMWIwOGEyYTg2Y2M5ZWI5ODY2ZjM0OTlh
Yzc3YjYxMzZiODFjYjI3NmQ2MTRjZmViN2I2ZWQzZjNiYzc3NWU0NmMwMDA2NmViZWVlMmNmZjcx
NjZiNTc1MjA1OTg5NDdmZjYyMTAzMjBiMjg4ZmI0ZjJjM2Y4ZmU5N2IyNzk0MTRlYmY3MjAzMDAw
YTE5ZmMwNDI0ODc1IikpLAorICAgIHA6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9V
aW50OEFycmF5KCJmMTIzYmZlNTNkZTk3YTU2OWQ5MWFkY2Y1NTZmYTYyNWFkMzBmM2ZkM2Q4MTFm
OWU5MWU2YWY0NGI2ZTc4MGNiMGYzMjc4MjlmYjIxMTkwYWUyODA2NjQ2ZDcyOGNkOWI2NTMxMTMy
YjFlYmZlZjEyNzI5OTMwNjBmMWNlNzBiMTI0MzkzMDkxZWU4NTkzYjcyNzM2N2VkYmJhMDA5ZWM1
YmUxN2M0YWNlZTEyMGM4NDEyNjdkNDc2MzFhMTZjMzZhNmQxYzk5OTczYzFiMGI1YTgzNWJmMzlm
ZWFmZThmNjQyMWZkOWMyYTkwYmMyNzk3NjY1OWU2N2JjODMxMjRkIikpLAorICAgIHE6IEJhc2U2
NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJlYTk4MzliN2UzN2VhODliYmRh
MjdlNGM5MzQ3MWNiNGZkOTIxODlhMGE5NmJjYjRkNzU2OTNmMThhNWMyZjc0MmFmOWUzNmZkZTY3
OWZiZDllYWUzNDVmYTI2OTUyN2I2OTY1MDIxYzRiZGY1NGQ2ODViZjA4OTYwY2M5NzZmNjhkY2Ey
MWNlYmY0NGYyNjhhNTlkYWI4ZDFhMjVlNTE5ZjUxNDdlMWY0NWZlMjg3ZDc0Y2Y3MjViZWMxMzI2
ZDM0MjEyYzU2Y2Y0ZmZmYTIwMmY1N2I2OGVlOGNjYTk0M2YzYzEzOGM0Y2RlMzNiZGYyYzk0NDBk
ZjY1MzIyNDQ1IikpLAorICAgIGRwOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWlu
dDhBcnJheSgiY2EwYzliNjBiOGU0YTYwNjY3NTZjNjVkMjA4ODQxOWRmNjI1M2I3YjY4OGE4NWY0
ZjZlOTY0ZDg1ZGFkNTJhNDUyNjI4NjdmMWU5NjE4MDY5ZmNjZDg2NWU5Mjg5ZTQ2ZTM5ZTIwMjI5
NDRjNWM0NDg3ZDM0NWNmMjUyZDQ2MGQ5NzdkNzdlZGZlZmVkYmNiYWU0NmEyM2FmN2ZhNDcwZjA3
N2RhMGU1MDk0MjA0NGNiMWEzNjA0OTdjYzI3NjBhYzBmMmFkNGEyZmNkMGU4NGQ3YTFkOTRkZmRk
MjY1OGZkOWNlMTg0NzVjMWZhNzVlZTBjZWJhZDBjZjBhYzA0ZCIpKSwKKyAgICBkcTogQmFzZTY0
VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjUyODE3MTIzM2M0ZTRhNmM2M2I4
Njc2NGY1MTMzODg0NmFmZGRiY2IyOTU4MzQ0YzAxYzQwMDRhMWRkODI4MTQ1YTFkMDJhMTUwN2Rl
ZjRmNTgyNDdhNjRmYzEwYzBhMjg4YzFhZTg5NTcyMWQ3OGI4ZjA0NGRiN2MwMGQ4NmRhNTVhOWI2
NTQyOTJlY2Q3NjgyNzBiZTY5ZTRiZDU5MjJkNGVmZmQxZjcwOTU1Zjk2MjdlM2UxOWI3NDllOTNi
NDBlZjNkZDFkNjFkOTM5MTVlMmIwOWQ5MzBiNGIxNzY4YmZhY2MwMTM2ZjM5YjBjZmRmYjRkMDUw
MDExZTJlNjUiKSksCisgICAgcWk6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50
OEFycmF5KCJkZjJlYjIzMjJjYzJkYWFiZjRkMTQ2NTUwOGY0MTUyMWNkYTdjZWZmMjNlYmU2MWQw
MGQ0NDFlZTcyOGRkYTVkMTZjN2JmOTIwY2Q5NWYzNGJlYjRmZTMyZWU4MTdlZjMzNjJlMGJjZDFk
MTI0NWY3YjA3NzkzZWFhMTkwZGM1YTM3ZmRhZjRjNjhlMmNhMTM5NzJkN2Y1MTQ4Yjc5NmI2ZmI2
ZDdhZGRhMDdiZDJjZDEzYmU5OGNlYmVkMWVkYzZjYTQxMmUzOTUzNTBjNTlhMWQ4NDJiYzRhYTJm
M2MwYjI0M2ZkZTdkZmQ5NTM1NmYyNDM5MjUxYTExNzJjNDVlIikpCit9OwordmFyIHdyYXBBbGdv
cml0aG0gPSB7bmFtZTogIlJTQUVTLVBLQ1MxLXYxXzUifTsKK3ZhciBleHRyYWN0YWJsZSA9IHRy
dWU7Cit2YXIgbm9uRXh0cmFjdGFibGUgPSBmYWxzZTsKKworZGVidWcoIkltcG9ydGluZyBSU0Eg
a2V5cy4uLiIpOworY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFy
cmF5KEpTT04uc3RyaW5naWZ5KHB1YmxpY0tleUpTT04pKSwgbnVsbCwgZXh0cmFjdGFibGUsIFsi
d3JhcEtleSIsICJ1bndyYXBLZXkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBwdWJs
aWNLZXkgPSByZXN1bHQ7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2si
LCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShwcml2YXRlS2V5SlNPTikpLCBudWxs
LCBleHRyYWN0YWJsZSwgWyJ3cmFwS2V5IiwgInVud3JhcEtleSJdKTsKK30pLnRoZW4oZnVuY3Rp
b24ocmVzdWx0KSB7CisgICAgcHJpdmF0ZUtleSA9IHJlc3VsdDsKKworICAgIGRlYnVnKCJJbXBv
cnRpbmcgYW4gQUVTIGtleS4uLiIpOworICAgIGFlc0tleURhdGEgPSBoZXhTdHJpbmdUb1VpbnQ4
QXJyYXkoIjYwM2RlYjEwMTVjYTcxYmUyYjczYWVmMDg1N2Q3NzgxMWYzNTJjMDczYjYxMDhkNzJk
OTgxMGEzMDkxNGRmZjQiKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJh
dyIsIGFlc0tleURhdGEsICJhZXMtY2JjIiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNy
eXB0IiwgIndyYXBLZXkiLCAidW53cmFwS2V5Il0pCit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkg
eworICAgIGFlc0tleSA9IHJlc3VsdDsKKyAgICBkZWJ1ZygiV3JhcHBpbmcgaXQuLi4iKTsKKwor
ICAgIHJldHVybiBjcnlwdG8uc3VidGxlLndyYXBLZXkoInJhdyIsIGFlc0tleSwgcHVibGljS2V5
LCB3cmFwQWxnb3JpdGhtKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgd3JhcHBl
ZEtleSA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgid3JhcHBlZEtleS50b1N0cmluZygpIiwgIidb
b2JqZWN0IEFycmF5QnVmZmVyXSciKTsKKworICAgIGRlYnVnKCJVbndyYXBwaW5nIGl0Li4uIik7
CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUudW53cmFwS2V5KCJyYXciLCB3cmFwcGVkS2V5LCBw
cml2YXRlS2V5LCB3cmFwQWxnb3JpdGhtLCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVuY3J5
cHQiLCAiZGVjcnlwdCJdKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgdW53cmFw
cGVkS2V5ID0gcmVzdWx0OworICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkudG9TdHJpbmcoKSIs
ICInW29iamVjdCBLZXldJyIpOworICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkudHlwZSIsICIn
c2VjcmV0JyIpOworICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkuZXh0cmFjdGFibGUiLCAidHJ1
ZSIpOworICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FFUy1D
QkMnIik7CisgICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjI1
NiIpOworICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkudXNhZ2VzIiwgIlsnZGVjcnlwdCcsICdl
bmNyeXB0J10iKTsKKworICAgIGRlYnVnKCJFeHBvcnRpbmcgaXQuLi4iKTsKKyAgICByZXR1cm4g
Y3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoInJhdyIsIHVud3JhcHBlZEtleSk7Cit9KS50aGVuKGZ1
bmN0aW9uKHJlc3VsdCkgeworICAgIHVud3JhcHBlZEtleURhdGEgPSByZXN1bHQ7CisgICAgc2hv
dWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcodW53cmFwcGVkS2V5RGF0YSkiLCAiYnl0ZXNUb0hleFN0
cmluZyhhZXNLZXlEYXRhKSIpOworCisgICAgZGVidWcoIlxuV3JhcHBpbmcgdGhlIHNhbWUga2V5
IGFzIEpXSy4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLndyYXBLZXkoImp3ayIsIGFl
c0tleSwgcHVibGljS2V5LCB3cmFwQWxnb3JpdGhtKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0
KSB7CisgICAgd3JhcHBlZEtleSA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgid3JhcHBlZEtleS50
b1N0cmluZygpIiwgIidbb2JqZWN0IEFycmF5QnVmZmVyXSciKTsKKworICAgIGRlYnVnKCJVbndy
YXBwaW5nIGl0Li4uIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUudW53cmFwS2V5KCJqd2si
LCB3cmFwcGVkS2V5LCBwcml2YXRlS2V5LCB3cmFwQWxnb3JpdGhtLCAiYWVzLWNiYyIsIGV4dHJh
Y3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0
KSB7CisgICAgdW53cmFwcGVkS2V5ID0gcmVzdWx0OworICAgIHNob3VsZEJlKCJ1bndyYXBwZWRL
ZXkudG9TdHJpbmcoKSIsICInW29iamVjdCBLZXldJyIpOworICAgIHNob3VsZEJlKCJ1bndyYXBw
ZWRLZXkudHlwZSIsICInc2VjcmV0JyIpOworICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkuZXh0
cmFjdGFibGUiLCAidHJ1ZSIpOworICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkuYWxnb3JpdGht
Lm5hbWUiLCAiJ0FFUy1DQkMnIik7CisgICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS5hbGdvcml0
aG0ubGVuZ3RoIiwgIjI1NiIpOworICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkudXNhZ2VzIiwg
IlsnZGVjcnlwdCcsICdlbmNyeXB0J10iKTsKKworICAgIGRlYnVnKCJFeHBvcnRpbmcgaXQuLi4i
KTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoInJhdyIsIHVud3JhcHBlZEtl
eSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHVud3JhcHBlZEtleURhdGEgPSBy
ZXN1bHQ7CisgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcodW53cmFwcGVkS2V5RGF0YSki
LCAiYnl0ZXNUb0hleFN0cmluZyhhZXNLZXlEYXRhKSIpOworICAgIGZpbmlzaEpTVGVzdCgpOwor
fSk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1rZXktZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEt
djFfNS1nZW5lcmF0ZS1rZXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3NGFhYjExYTQ3NTIy
MzdkNWRjOTRkNDNhZGE3MWRhZTI2ZTZhYjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwyNCBAQAorVGVzdCBnZW5lcmF0aW5nIGFuIFJTQSBrZXkgcGFp
ciBmb3IgUlNBU1NBLVBLQ1MxLXYxXzUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitHZW5lcmF0aW5nIGEga2V5IHBhaXIuLi4KK1BBU1Mga2V5UGFpci50b1N0cmluZygpIGlzICdb
b2JqZWN0IEtleVBhaXJdJworUEFTUyBrZXlQYWlyLnB1YmxpY0tleS50eXBlIGlzICdwdWJsaWMn
CitQQVNTIGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FTU0EtUEtDUzEt
djFfNScKK1BBU1Mga2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGggaXMg
MjA0OAorUEFTUyBieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5w
dWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKK1BBU1Mga2V5UGFpci5wdWJsaWNLZXkuYWxnb3Jp
dGhtLmhhc2ggaXMgdW5kZWZpbmVkLgorUEFTUyBrZXlQYWlyLnByaXZhdGVLZXkudHlwZSBpcyAn
cHJpdmF0ZScKK1BBU1Mga2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FT
U0EtUEtDUzEtdjFfNScKK1BBU1Mga2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5tb2R1bHVz
TGVuZ3RoIGlzIDIwNDgKK1BBU1MgYnl0ZXNUb0hleFN0cmluZyhrZXlQYWlyLnByaXZhdGVLZXku
YWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJworUEFTUyBrZXlQYWlyLnByaXZh
dGVLZXkuYWxnb3JpdGhtLmhhc2ggaXMgdW5kZWZpbmVkLgorCitUZXN0aW5nIHRoYXQgY3VzdG9t
IGF0dHJpYnV0ZXMgb24ga2V5cyBzdXJ2aXZlIGdhcmJhZ2UgY29sbGVjdGlvbi4uLgorUEFTUyBr
ZXlQYWlyLnB1YmxpY0tleS5mb28gaXMgJ2JhcicKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS13aXRoLWxlYWRpbmct
emVyb2VzLWluLWV4cG9uZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJr
aXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5LXdpdGgtbGVhZGluZy16ZXJv
ZXMtaW4tZXhwb25lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0NTVjZDA2YmU0YjE0ZGZk
YWNmMjM4NzNlODg4M2E1YWNkMTk5MGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9j
cnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS13aXRoLWxl
YWRpbmctemVyb2VzLWluLWV4cG9uZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitU
ZXN0IGdlbmVyYXRpbmcgYW4gUlNBIGtleSBwYWlyIGZvciBSU0FTU0EtUEtDUzEtdjFfNSB3aGVu
IGV4cG9uZW50IGhhcyBsZWFkaW5nIHplcm9lcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK0dlbmVyYXRpbmcgYSBrZXkgcGFpci4uLgorUEFTUyBrZXlQYWlyLnRvU3RyaW5nKCkg
aXMgJ1tvYmplY3QgS2V5UGFpcl0nCitQQVNTIGtleVBhaXIucHVibGljS2V5LnR5cGUgaXMgJ3B1
YmxpYycKK1BBU1Mga2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JTQVNTQS1Q
S0NTMS12MV81JworUEFTUyBrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0
aCBpcyAyMDQ4CitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcoa2V5UGFpci5wdWJsaWNLZXkuYWxnb3Jp
dGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJworUEFTUyBieXRlc1RvSGV4U3RyaW5nKGtl
eVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcwMTAwMDEnCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1n
ZW5lcmF0ZS1rZXktd2l0aC1sZWFkaW5nLXplcm9lcy1pbi1leHBvbmVudC5odG1sIGIvTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1rZXkt
d2l0aC1sZWFkaW5nLXplcm9lcy1pbi1leHBvbmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5Mzc3MmE5
NGI5YWYxYjU0YWU0ZTU1OTI2MTc0MWNkNzNmZjYxNzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtl
eS13aXRoLWxlYWRpbmctemVyb2VzLWluLWV4cG9uZW50Lmh0bWwKQEAgLTAsMCArMSw0MCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Nv
bW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigi
VGVzdCBnZW5lcmF0aW5nIGFuIFJTQSBrZXkgcGFpciBmb3IgUlNBU1NBLVBLQ1MxLXYxXzUgd2hl
biBleHBvbmVudCBoYXMgbGVhZGluZyB6ZXJvZXMuIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVl
OworCit2YXIgYWxnb3JpdGhtS2V5R2VuID0geworICAgIG5hbWU6ICJSU0FTU0EtUEtDUzEtdjFf
NSIsCisgICAgLy8gUnNhS2V5R2VuUGFyYW1zCisgICAgbW9kdWx1c0xlbmd0aDogMjA0OCwKKyAg
ICBwdWJsaWNFeHBvbmVudDogbmV3IFVpbnQ4QXJyYXkoWzB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDEsIDB4MDAsIDB4MDFdKSwgIC8vIEVxdWl2YWxlbnQgdG8gNjU1MzcKK307Cit2
YXIgZXh0cmFjdGFibGUgPSB0cnVlOworCitkZWJ1ZygiR2VuZXJhdGluZyBhIGtleSBwYWlyLi4u
Iik7CitjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KGFsZ29yaXRobUtleUdlbiwgZXh0cmFjdGFi
bGUsIFsic2lnbiIsICJ2ZXJpZnkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBrZXlQ
YWlyID0gcmVzdWx0OworICAgIHNob3VsZEJlKCJrZXlQYWlyLnRvU3RyaW5nKCkiLCAiJ1tvYmpl
Y3QgS2V5UGFpcl0nIik7CisgICAgc2hvdWxkQmUoImtleVBhaXIucHVibGljS2V5LnR5cGUiLCAi
J3B1YmxpYyciKTsKKyAgICBzaG91bGRCZSgia2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm5h
bWUiLCAiJ1JTQVNTQS1QS0NTMS12MV81JyIpOworICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1Ymxp
Y0tleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCIsICIyMDQ4Iik7CisgICAgc2hvdWxkQmUoImJ5
dGVzVG9IZXhTdHJpbmcoa2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50
KSIsICInMDEwMDAxJyIpOworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIu
cHJpdmF0ZUtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwgIicwMTAwMDEnIik7CisKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYx
XzUtZ2VuZXJhdGUta2V5Lmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3Jz
YXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzN2Y3MmRlZDU4
NTQwMjZhYjgzNGExM2EyZTM4NDAzMzU2NzM2ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS5o
dG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8
c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgZ2VuZXJhdGluZyBhbiBSU0Ega2V5IHBhaXIgZm9y
IFJTQVNTQS1QS0NTMS12MV81LiIpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGFs
Z29yaXRobUtleUdlbiA9IHsKKyAgICBuYW1lOiAiUlNBU1NBLVBLQ1MxLXYxXzUiLAorICAgIC8v
IFJzYUtleUdlblBhcmFtcworICAgIG1vZHVsdXNMZW5ndGg6IDIwNDgsCisgICAgcHVibGljRXhw
b25lbnQ6IG5ldyBVaW50OEFycmF5KFsweDAxLCAweDAwLCAweDAxXSksICAvLyBFcXVpdmFsZW50
IHRvIDY1NTM3Cit9OwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKKworZGVidWcoIkdlbmVyYXRp
bmcgYSBrZXkgcGFpci4uLiIpOworY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleShhbGdvcml0aG1L
ZXlHZW4sIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24ocmVz
dWx0KSB7CisgICAga2V5UGFpciA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgia2V5UGFpci50b1N0
cmluZygpIiwgIidbb2JqZWN0IEtleVBhaXJdJyIpOworICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1
YmxpY0tleS50eXBlIiwgIidwdWJsaWMnIik7CisgICAgc2hvdWxkQmUoImtleVBhaXIucHVibGlj
S2V5LmFsZ29yaXRobS5uYW1lIiwgIidSU0FTU0EtUEtDUzEtdjFfNSciKTsKKyAgICBzaG91bGRC
ZSgia2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOwor
ICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRo
bS5wdWJsaWNFeHBvbmVudCkiLCAiJzAxMDAwMSciKTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgi
a2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLmhhc2giKTsKKyAgICBzaG91bGRCZSgia2V5UGFp
ci5wcml2YXRlS2V5LnR5cGUiLCAiJ3ByaXZhdGUnIik7CisgICAgc2hvdWxkQmUoImtleVBhaXIu
cHJpdmF0ZUtleS5hbGdvcml0aG0ubmFtZSIsICInUlNBU1NBLVBLQ1MxLXYxXzUnIik7CisgICAg
c2hvdWxkQmUoImtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCIsICIy
MDQ4Iik7CisgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcoa2V5UGFpci5wcml2YXRlS2V5
LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAxMDAwMSciKTsKKyAgICBzaG91bGRCZVVu
ZGVmaW5lZCgia2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5oYXNoIik7CisKKyAgICBkZWJ1
ZygiXG5UZXN0aW5nIHRoYXQgY3VzdG9tIGF0dHJpYnV0ZXMgb24ga2V5cyBzdXJ2aXZlIGdhcmJh
Z2UgY29sbGVjdGlvbi4uLiIpOworICAgIGtleVBhaXIucHVibGljS2V5LmZvbyA9ICJiYXIiOwor
ICAgIGdjKCk7CisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgZ2MoKTsKKyAg
ICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHNob3VsZEJlKCJrZXlQ
YWlyLnB1YmxpY0tleS5mb28iLCAiJ2JhciciKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgp
OworICAgICAgICB9LCAwKTsKKyAgICB9LCAwKTsKK30pOworPC9zY3JpcHQ+CisKKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNh
c3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2stZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmIyY2NiNDc4OTdlMWUyMGRhOTg1NjEyMGJkNTExYTg5YjI3ZWQyZjcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1w
a2NzMS12MV81LWltcG9ydC1qd2stZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjYgQEAKK1Rlc3Qg
aW1wb3J0aW5nIGFuIFJTQSBrZXkgZm9yIFJTQVNTQS1QS0NTMS12MV81LgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworSW1wb3J0aW5nIGEgcHVibGljIGtleS4uLgorUEFTUyBwdWJs
aWNLZXkudG9TdHJpbmcoKSBpcyAnW29iamVjdCBLZXldJworUEFTUyBwdWJsaWNLZXkudHlwZSBp
cyAncHVibGljJworUEFTUyBwdWJsaWNLZXkudXNhZ2VzIGlzIFsnc2lnbicsJ3ZlcmlmeSddCitQ
QVNTIHB1YmxpY0tleS5hbGdvcml0aG0ubmFtZSBpcyAnUlNBU1NBLVBLQ1MxLXYxXzUnCitQQVNT
IHB1YmxpY0tleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4CitQQVNTIGJ5dGVzVG9I
ZXhTdHJpbmcocHVibGljS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScK
K1BBU1MgcHVibGljS2V5LmFsZ29yaXRobS5oYXNoLm5hbWUgaXMgJ1NIQS0yNTYnCisKK0ltcG9y
dGluZyBhIHByaXZhdGUga2V5Li4uCitQQVNTIHByaXZhdGVLZXkudG9TdHJpbmcoKSBpcyAnW29i
amVjdCBLZXldJworUEFTUyBwcml2YXRlS2V5LnR5cGUgaXMgJ3ByaXZhdGUnCitQQVNTIHByaXZh
dGVLZXkudXNhZ2VzIGlzIFsnc2lnbicsJ3ZlcmlmeSddCitQQVNTIHByaXZhdGVLZXkuYWxnb3Jp
dGhtLm5hbWUgaXMgJ1JTQVNTQS1QS0NTMS12MV81JworUEFTUyBwcml2YXRlS2V5LmFsZ29yaXRo
bS5tb2R1bHVzTGVuZ3RoIGlzIDIwNDgKK1BBU1MgYnl0ZXNUb0hleFN0cmluZyhwcml2YXRlS2V5
LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKK1BBU1MgcHJpdmF0ZUtleS5h
bGdvcml0aG0uaGFzaC5uYW1lIGlzICdTSEEtMjU2JworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0
by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1zbWFsbC1rZXktZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEt
djFfNS1pbXBvcnQtandrLXNtYWxsLWtleS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzM5NTJi
MjQwNmRkNjZhMTFhNjA0ZTJmMDVhZWQ0MDA0MmNkNjMwMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3
ay1zbWFsbC1rZXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0Ega2V5IG9mIHNpemUg
MjA0OCBiaXRzIG9yIGxhcmdlciBNVVNUIGJlIHVzZWQgd2l0aCBSUzI1NiwgUlMzODQsIFJTNTEy
IEpXSyBhbGdvcml0aG1zLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBj
cnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJp
bmdpZnkocHVibGljS2V5SlNPTikpLCBudWxsLCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlm
eSJdKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBLZXkgc2l6ZSBpcyBub3QgdmFsaWQgZm9y
IFJTMjU2LgorUEFTUyBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4
QXJyYXkoSlNPTi5zdHJpbmdpZnkocHJpdmF0ZUtleUpTT04pKSwgbnVsbCwgZXh0cmFjdGFibGUs
IFsic2lnbiIsICJ2ZXJpZnkiXSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogS2V5IHNpemUg
aXMgbm90IHZhbGlkIGZvciBSUzUxMi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2stc21hbGwta2V5Lmh0bWwgYi9MYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2st
c21hbGwta2V5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTQ4OTY3YzgyZWM4YWMxNDVmNDdkMjkyNGY4Mzg2
OWY4NjJkM2ZmZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRT
dWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1zbWFsbC1rZXkuaHRtbApAQCAtMCww
ICsxLDQ0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCJBIGtleSBvZiBzaXplIDIwNDggYml0cyBvciBsYXJnZXIgTVVTVCBiZSB1c2Vk
IHdpdGggUlMyNTYsIFJTMzg0LCBSUzUxMiBKV0sgYWxnb3JpdGhtcy4iKTsKKwordmFyIGV4dHJh
Y3RhYmxlID0gdHJ1ZTsKKworLy8gb3BlbnNzbCBnZW5yc2EgMTAyNCA+MTAyNC5wZW0KKy8vIG9w
ZW5zc2wgYXNuMXBhcnNlIC1pbiAxMDI0LnBlbQordmFyIHB1YmxpY0tleUpTT04gPSB7CisgICAg
a3R5OiAiUlNBIiwKKyAgICBhbGc6ICJSUzI1NiIsCisgICAgbjogQmFzZTY0VVJMLnN0cmluZ2lm
eShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIkI3RjEwM0Y4NDEyQ0NEMjZGNUQ1NEZDMzE1N0NEOENF
MUYxMzRGNEVBQkYwQTA0MjM1MEJERDdGMDBGRUEyQjc3RUVGMTk5MTVCMTBBQTI0MTdCQjJDQjRF
QzFENTdCOTY2MUEyMDA3MjQ2OUI5REY5QzZFODlDQjM1Q0NDODU0M0NDNDA3NzBEQ0MzMEQwQkJG
RjFCRjlEQTFFMjU0OUY0MDQ3NkVEQURCOTMxMjk4NURBRThDNzUyN0MxQzEyQUFGRURGNDU4NDk4
OTk2OENEQ0M5RUZFQjE5NzQzOEM1MzREMUJGQUFDMzBCMUQ0MUY3NUVBREI4NkNDNTgxQjkiKSks
CisgICAgZTogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAxMDAw
MSIpKQorfTsKKwordmFyIHByaXZhdGVLZXlKU09OID0geworICAgIGt0eTogIlJTQSIsCisgICAg
YWxnOiAiUlM1MTIiLAorICAgIG46IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50
OEFycmF5KCJCN0YxMDNGODQxMkNDRDI2RjVENTRGQzMxNTdDRDhDRTFGMTM0RjRFQUJGMEEwNDIz
NTBCREQ3RjAwRkVBMkI3N0VFRjE5OTE1QjEwQUEyNDE3QkIyQ0I0RUMxRDU3Qjk2NjFBMjAwNzI0
NjlCOURGOUM2RTg5Q0IzNUNDQzg1NDNDQzQwNzcwRENDMzBEMEJCRkYxQkY5REExRTI1NDlGNDA0
NzZFREFEQjkzMTI5ODVEQUU4Qzc1MjdDMUMxMkFBRkVERjQ1ODQ5ODk5NjhDRENDOUVGRUIxOTc0
MzhDNTM0RDFCRkFBQzMwQjFENDFGNzVFQURCODZDQzU4MUI5IikpLAorICAgIGU6IEJhc2U2NFVS
TC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMTAwMDEiKSksCisgICAgZDogQmFz
ZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjVCQTZGNEYyNkIwRjM2QkRC
NUZBNkVCRUU2RTMwOTY4NTMyNTlDRkJCNzQyQjNBN0E5QTREQURERTA5MjAwNjNFQzE0OTkyOUNC
MzU1NzgxOUE2RDgyNEUzN0U0M0IwNEJGMzIzRjQ5MkZDNDlBODAyODAzMTAxN0I4MUJFQ0E4RUMy
QTg1QUJDRjE5MzUwMUQ4MERDMjUxREI4ODYzQjg2NzNEOEI2NzcyREIyRDJBRTA4Q0QxODI5QzNG
NTQyMTQxNDYxQ0FDRTRFOEExRjExMkFEMTNGRjRBNEREODY1QTg5QUVBOTRFOTg0RDQ4N0U1Nzk4
RUYwNzY0M0I5Q0QiKSksCisgICAgcDogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1Vp
bnQ4QXJyYXkoIkUwNkJGRTU3MjJBNjhFNUQ1OTdERDhEQjkzNzQ4M0NCQTM1MkFCODE3MjA5Mjc1
QURBRDEwMzc3MkI3QThFRjRFQTk0NjMxMUEyQjUxODA1OTU5ODE4Q0VCMzYyRjI1N0Q2OTk4QjQ3
NUZFQTlFMzRGMkEzMDIwNUI1RjVBN0ZGIikpLAorICAgIHE6IEJhc2U2NFVSTC5zdHJpbmdpZnko
aGV4U3RyaW5nVG9VaW50OEFycmF5KCJEMUQyREJEQjFGNERDQkZFOEQxNkNERDJDRjgzQzdCNUZB
REZDNzg5MUYyMkZDNTI3QkYyMDhGODFCOTJGMjU0MzU2OUMzQUQyMjIyNEI4MkQ0MDdERUI2NUY2
NTFEMDlEMjU1OEZFRThCQzZFNURBNTFGNkYxMzIwNkNDMTY0NyIpKSwKKyAgICBkcDogQmFzZTY0
VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjczRUNCNEYzRDNBRDRGNkFCRUY4
NzdENTZDODRDQTMzOUQ4OEVEOThBRjBDMzU2RDA0MENFNThBNjA0NjJEQTQyQkFDM0NDNDc2NTRB
RjM0RUI0MjI2QzY1NkY5NkM4RjlEMDVCMTYxNEMxNTg4NjU3NzU0NjY4RTA2QTBGRjg3IikpLAor
ICAgIGRxOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiNUI5QzVB
Q0RCMzNGM0U1RkU3QUUxQjMzN0REMzI1QjEzOEQ1RDdDMkYwQ0I0RkFCOUJERTMzMzg1MEExQkEx
ODM2MzFGNTczNzQ0MUQxMDI1MDFEMTc4QTNDRTA2MkVCNTRFMDcyQjU0RTY2MEIxOTY1NEMxMjQ3
MkI1Qzk0MjUiKSksCisgICAgcWk6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50
OEFycmF5KCJENkE5MjBCMjQxMTc4OTIzQzU5QkNCRDFBODE1NzY0NjE5MjI1QTkwRjJDMDkwQTlG
QkQ1OTRBNjE1NjE1NDJEMERGMTc5NTkwNDEzQzI2QzhBNzJGQzZFMTRFQzYzQTM3NzE2OTk3MDY3
MUIzQTFFQjVFNEY0REYxQTRDQTcyNSIpKQorfTsKKworc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0
bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShwdWJs
aWNLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pJyk7Citz
aG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFy
cmF5KEpTT04uc3RyaW5naWZ5KHByaXZhdGVLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBb
InNpZ24iLCAidmVyaWZ5Il0pJyk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFf
NS1pbXBvcnQtandrLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNz
YS1wa2NzMS12MV81LWltcG9ydC1qd2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iN2JlODdmMjI4ZjA2MmEx
ODI4ZDJmMzEwYmIxNWQ3MWI3N2Q0NjE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1pbXBvcnQtandrLmh0bWwKQEAg
LTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVGVzdCBpbXBvcnRpbmcgYW4gUlNBIGtleSBmb3IgUlNBU1NBLVBLQ1Mx
LXYxXzUuIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIgZXh0cmFjdGFibGUgPSB0
cnVlOworCit2YXIgcHVibGljS2V5SlNPTiA9IHsKKyAgICBrdHk6ICJSU0EiLAorICAgIGFsZzog
IlJTMjU2IiwKKyAgICBuOiAicmNDVUN2N09jMUhWYW0xREloQ3pxa25UaFdhd09wOFFMazhaaXky
cDEwQnlqUUZDYWpvRml5dUFXbC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6SXpjLU1iTFNISUdnV1FH
TzIxbEdpSW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVNc0RoRDZz
MmdWOW13SGtydGtDeHRNV2RCaS03N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5ODli
RnljOHRPT0VJYjB4VVNmUFN6M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5M0Jp
dzY0cXVuM2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3MktVcDAybUpEWmlp
eWlnbHhNTF9pMy1fQ2VlY0N3IiwKKyAgICBlOiAiQVFBQiIKK307CisKK3ZhciBwcml2YXRlS2V5
SlNPTiA9IHsKKyAgICBrdHk6ICJSU0EiLAorICAgIGFsZzogIlJTMjU2IiwKKyAgICBuOiAicmND
VUN2N09jMUhWYW0xREloQ3pxa25UaFdhd09wOFFMazhaaXkycDEwQnlqUUZDYWpvRml5dUFXbC1S
MVdYWmFmNHhpdExScmFjVDlhZ3B6SXpjLU1iTFNISUdnV1FHTzIxbEdpSW15NWZ0Wi1EOGJIQXFS
ejJ5MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVNc0RoRDZzMmdWOW13SGtydGtDeHRNV2RCaS03
N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5ODliRnljOHRPT0VJYjB4VVNmUFN6M0xQ
U0NueVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5M0JpdzY0cXVuM2p1VWxOV3NKM3puZ2tP
ZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3MktVcDAybUpEWmlpeWlnbHhNTF9pMy1fQ2VlY0N3IiwK
KyAgICBlOiAiQVFBQiIsCisgICAgZDogImVOTFMzN2FDejdSWFNOUERfRHRMQko2ajVUOGNTeGR6
UkJDalBhSTZXY0dxSnAxNmxxM1VUd3VvRExBcWxBOW9HWW0yMzhkc0lXcHV1Y1BfbFF0YldlLTdT
cHhvSTZfdm1ZR2Y3WVZVSHYxLURGOXFpT21Tck1tZHhNblZPellYWThSYVQ2dGhQam5fSjVjZkxW
MnhJX0x3c3JNdG1wZFN5TmxnWDB6VFVod3R1YWhnQUtNRUNoWWpIMkVuakhkSHc2c1kyLXdBcGRj
UUk3VUxFMG9vNVJ6YlFacG11aGNOOWhpQmMwTDNoaEYwcW81MG1ibDAyXzY1X0dRN0RwVmtYQnhO
Z1JCTHpsUGFibXp6RzJvQWhmZWZMZ1ltU0Mxb3BhQ2tYRTZ2UldRTldOTDQ1UlpOWkZZTTN1b0pn
aE9NcUdlb2NNMEJwamRDaEhyUE9sRnZTUSIsCisgICAgcDogIjRtaVR1QWpLTWVINXVKNUtCMzk3
UVV3aGJrWUVnU2JjQTJtaWZtU2t2RTIwMThnYjU1cWtCSEsxZVZyeWYxX200M0xObGM2T19hazZn
ZnpkWkladlM1TkNHalBsMHEwOXBsVXB1OHFGT1NzcEJ3QTY3cUdINzZsRmxaTG5fZDR5Z2xTN3dm
THJ1NF81WXM4cUxMcy1EcVZMdml3cG9zT255eVdxd001QVhwMCIsCisgICAgcTogInhIWXJ6a2l2
dG1uel9zR2NobldHYzBxLXBET2tLaWNwdFJwdjJwTUZJSVh4bkZYNWFNZUVYSVpqVnVqWHR3VXkx
VWxGSU4yR1pKU3Z5NUtKNzltdV9YeU5uRkhNemVkSC1BM2VlM3U4aDFVVXJaRi12VXUxX2U0VV94
NjdOTjFkZWR6VVNLeW5ON3BGbDNPa3VTaE1CV0dWLWN3ek9QZGNWQWZWdVpseFVNYyIsCisgICAg
ZHA6ICJmQnpEellEVUJtQlFHb3A3SG4wZHZmX1QyN1Y2UnFwY3RXbzA3NENRWmNGYlAyYXRGVnRL
U2ozdmlXVDN4aWQyVkh6Y2dpREhkZnBNM25FVmxFTzF3d0lvbkdDU3ZkakdFT1ppaUZWT2pyWkFP
VnhBOGd1T2p5eUZ2cWJYa2UwNlZ3UElJVnZmS2VTVTJ6dWhiUF9fMXR0NkZfZnhvdzRLYjJ4b25H
VDBHR2siLAorICAgIGRxOiAiam1FMkRpSVBkaHdEZ0xYQVFwSWFCcVE4MWJPM1hmVlRfTFJVTEF3
d3d3bFB1UVYxNDhIMDR6bGg5VEo2WTJHWkhZb2tWMVUwZU9CcEp4ZmtiN2RMWXRwSnB1aUJqUmY0
eUlVRW9HbGtrSV9RbEpuRlNGci1ZakdSZGZOSHFXQmt4bFNNWkw3NzBSOW1JQVRuZEdrSDd6NXgt
cjlLd0JaRkM0RkNHMmhnX3pFIiwKKyAgICBxaTogIllDWF9wTHdiTUJBMVRoVkgwV2N3bW55dHFO
Y3JNQ0V3VG03QnlBMmVVNm5XYlFyVUx2ZjdtOV9remZMVWNqc25wQVZsQlFHNUpNWE15MFNxNHB0
d2J5d3NhNS1HOEtBT09PUjJMM3Y0aEMtRXlzOWZ0Z0ZNXzNpMG80MGVlUUg0YjNoYVBibnRySWVN
ZzhJemxPdVZZS2Y5LTJRdUtEb1dlUmRkN05zZHhUayIKK307CisKK2RlYnVnKCJJbXBvcnRpbmcg
YSBwdWJsaWMga2V5Li4uIik7CitjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlU
b1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHVibGljS2V5SlNPTikpLCBudWxsLCBleHRyYWN0
YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHB1
YmxpY0tleSA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgicHVibGljS2V5LnRvU3RyaW5nKCkiLCAi
J1tvYmplY3QgS2V5XSciKTsKKyAgICBzaG91bGRCZSgicHVibGljS2V5LnR5cGUiLCAiJ3B1Ymxp
YyciKTsKKyAgICBzaG91bGRCZSgicHVibGljS2V5LnVzYWdlcyIsICJbJ3NpZ24nLCd2ZXJpZnkn
XSIpOworICAgIHNob3VsZEJlKCJwdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ1JTQVNTQS1Q
S0NTMS12MV81JyIpOworICAgIHNob3VsZEJlKCJwdWJsaWNLZXkuYWxnb3JpdGhtLm1vZHVsdXNM
ZW5ndGgiLCAiMjA0OCIpOworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKHB1YmxpY0tl
eS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwgIicwMTAwMDEnIik7CisgICAgc2hvdWxkQmUo
InB1YmxpY0tleS5hbGdvcml0aG0uaGFzaC5uYW1lIiwgIidTSEEtMjU2JyIpOworICAgIGRlYnVn
KCJcbkltcG9ydGluZyBhIHByaXZhdGUga2V5Li4uIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0
bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShwcml2
YXRlS2V5SlNPTikpLCBudWxsLCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKTsKK30p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgcHJpdmF0ZUtleSA9IHJlc3VsdDsKKyAgICBz
aG91bGRCZSgicHJpdmF0ZUtleS50b1N0cmluZygpIiwgIidbb2JqZWN0IEtleV0nIik7CisgICAg
c2hvdWxkQmUoInByaXZhdGVLZXkudHlwZSIsICIncHJpdmF0ZSciKTsKKyAgICBzaG91bGRCZSgi
cHJpdmF0ZUtleS51c2FnZXMiLCAiWydzaWduJywndmVyaWZ5J10iKTsKKyAgICBzaG91bGRCZSgi
cHJpdmF0ZUtleS5hbGdvcml0aG0ubmFtZSIsICInUlNBU1NBLVBLQ1MxLXYxXzUnIik7CisgICAg
c2hvdWxkQmUoInByaXZhdGVLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOwor
ICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKHByaXZhdGVLZXkuYWxnb3JpdGhtLnB1Ymxp
Y0V4cG9uZW50KSIsICInMDEwMDAxJyIpOworICAgIHNob3VsZEJlKCJwcml2YXRlS2V5LmFsZ29y
aXRobS5oYXNoLm5hbWUiLCAiJ1NIQS0yNTYnIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsK
Kzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
cnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LXNpZ24tdmVyaWZ5LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUt
c2lnbi12ZXJpZnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5NjZjODYzODQzN2Y4ZGMzZmRk
ZjMwMTg2MzFlZDczZWUxZTBjYzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LXNpZ24tdmVyaWZ5LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDIxIEBACitUZXN0IGltcG9ydGluZyBhbiBSU0Ega2V5IGZvciBSU0FTU0Et
UEtDUzEtdjFfNS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0ltcG9ydGluZyBh
IHB1YmxpYyBrZXkuLi4KKworSW1wb3J0aW5nIGEgcHJpdmF0ZSBrZXkuLi4KKworU2lnbmluZyBz
b21lIHRleHQuLi4KK1BBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShzaWduYXR1
cmUpKSBpcyAnMGZkOWE4YWVmNGNjMTg3NmMwYjc2MjU0NTMzNmM2ZDFmYjMxNWFlMTZhZTRiNWU0
YmYzNGQzODRkODU4NWVhN2EwMWU3NmVhMDllZTdmN2VlOGQxYzEyMmU3ZGQxNWI3Yzk0YTU3M2Iy
YWEwNzIwM2U4ZDEzYmM2ZmQxNjE1NmNkOGU1ZjBjMTVhMTVkY2NiNjJkMTUyMTI3ZmNhMDk4ODJm
YjUzYmMzZTYwYWI1ODZkMTViOTVjZjQxMWUzYWFiNGExYzIzMWE3ZTkxYWFiMDllZTNkNGIxM2Qx
MWU5NzUwNWRkZmY3NzY4MzQ3MGRhNTEwZWU3NmU4YmQ1MzBjNTZhODVmOTAxNjI2YTVhNzEwZjcx
NmYxMTNkZmU5Y2Y2YzQ3M2VlMTZmYTI0OGFlYTM0ODBhMTAzM2FiZTMwZjRjMTI0MzI4OWE2NjFl
NjRkNzgxOGI1NTY5ODI4MDY4ODA5NzEzNTk2OGM2ZDRiMDI5NDk2ZDg1Y2FiMmE2N2U0Njk2NzM3
NzgxZjcwZTQzOTJjN2RmNzFiYmQ2YzkyNDY1OTQ3ZjAyOWExZGU0ODE2MGFjZWQxMWI1NzIxYjFj
ZDI1MDM5ZmUyYzE2YzJiMzhkZTczZGYzYjlhODNlM2VhNzU1ZmQwY2ZlNTFjYTA2YjYxZmFkZjZk
ODQ2NzdmOTUnCisKK1ZlcmlmeWluZyB0aGUgc2lnbmF0dXJlLi4uCitQQVNTIHZlcmlmaWNhdGlv
blJlc3VsdCBpcyB0cnVlCisKK1ZlcmlmeWluZyBhIGJhZCBzaWduYXR1cmUuLi4KK1BBU1MgdmVy
aWZpY2F0aW9uUmVzdWx0IGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1zaWduLXZlcmlmeS5odG1sIGIvTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1zaWduLXZlcmlmeS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjVhNjU1NmRkNjg5MTFjYWYzNzE5MGE2ZGI5MzE4OGNmMjRmOWE1MjAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2Nz
MS12MV81LXNpZ24tdmVyaWZ5Lmh0bWwKQEAgLTAsMCArMSw2OSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCBpbXBvcnRpbmcg
YW4gUlNBIGtleSBmb3IgUlNBU1NBLVBLQ1MxLXYxXzUuIik7CisKK2pzVGVzdElzQXN5bmMgPSB0
cnVlOworCit2YXIgZXh0cmFjdGFibGUgPSB0cnVlOworCit2YXIgcHVibGljS2V5SlNPTiA9IHsK
KyAgICBrdHk6ICJSU0EiLAorICAgIGFsZzogIlJTMjU2IiwKKyAgICBuOiBCYXNlNjRVUkwuc3Ry
aW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiQURDMDk0MEFGRUNFNzM1MUQ1NkE2RDQzMjIx
MEIzQUE0OUQzODU2NkIwM0E5RjEwMkU0RjE5OEIyREE5RDc0MDcyOEQwMTQyNkEzQTA1OEIyQjgw
NUE1RjkxRDU2NUQ5NjlGRTMxOEFEMkQxQURBNzEzRjVBODI5Q0M4Q0RDRjhDNkNCNDg3MjA2ODE2
NDA2M0I2RDY1MUEyMjI2Q0I5N0VENjdFMEZDNkM3MDJBNDczREIyRDc5QTczMEY4NzM4MDg0QTJF
RUQ3NDkyMkMzQTExOUQxRDEwMUI5MzJDMEUxMEZBQjM2ODE1RjY2QzA3OTJCQjY0MEIxQjRDNTlE
MDYyRkJCRURBQjNDQzA2OUE1MzUxOTVENzBFNEEwNjQzMkNBRjE0OUMyNEEwMDM1M0EwQjk5RjdD
RjVCMTcyNzNDQjRFMzg0MjFCRDMxNTEyN0NGNEIzRENCM0QyMEE3Qzk4Q0ZBRjFBMEUzOThBNTVF
MzQ3RkEyODNDRTdCMzkyNzMyNTlCMUIyMTMyREMxOEIwRUI4QUFFOUY3OEVFNTI1MzU2QjA5REYz
OUUwOTBFNzZENzk4NUIyQjcxRTUwQUY4NUNBMzZDRTkxRjhDQ0IyQUJCRDhBNTI5RDM2OTg5MEQ5
OEEyQ0EyODI1QzRDMkZGOEI3RkJGMDlFNzlDMEIiKSksCisgICAgZTogQmFzZTY0VVJMLnN0cmlu
Z2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAxMDAwMSIpKSwKK307CisKK3ZhciBwcml2YXRl
S2V5SlNPTiA9IHsKKyAgICBrdHk6ICJSU0EiLAorICAgIGFsZzogIlJTMjU2IiwKKyAgICBuOiBC
YXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiQURDMDk0MEFGRUNFNzM1
MUQ1NkE2RDQzMjIxMEIzQUE0OUQzODU2NkIwM0E5RjEwMkU0RjE5OEIyREE5RDc0MDcyOEQwMTQy
NkEzQTA1OEIyQjgwNUE1RjkxRDU2NUQ5NjlGRTMxOEFEMkQxQURBNzEzRjVBODI5Q0M4Q0RDRjhD
NkNCNDg3MjA2ODE2NDA2M0I2RDY1MUEyMjI2Q0I5N0VENjdFMEZDNkM3MDJBNDczREIyRDc5QTcz
MEY4NzM4MDg0QTJFRUQ3NDkyMkMzQTExOUQxRDEwMUI5MzJDMEUxMEZBQjM2ODE1RjY2QzA3OTJC
QjY0MEIxQjRDNTlEMDYyRkJCRURBQjNDQzA2OUE1MzUxOTVENzBFNEEwNjQzMkNBRjE0OUMyNEEw
MDM1M0EwQjk5RjdDRjVCMTcyNzNDQjRFMzg0MjFCRDMxNTEyN0NGNEIzRENCM0QyMEE3Qzk4Q0ZB
RjFBMEUzOThBNTVFMzQ3RkEyODNDRTdCMzkyNzMyNTlCMUIyMTMyREMxOEIwRUI4QUFFOUY3OEVF
NTI1MzU2QjA5REYzOUUwOTBFNzZENzk4NUIyQjcxRTUwQUY4NUNBMzZDRTkxRjhDQ0IyQUJCRDhB
NTI5RDM2OTg5MEQ5OEEyQ0EyODI1QzRDMkZGOEI3RkJGMDlFNzlDMEIiKSksCisgICAgZTogQmFz
ZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAxMDAwMSIpKSwKKyAgICBk
OiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiNzhEMkQyREZCNjgy
Q0ZCNDU3NDhEM0MzRkMzQjRCMDQ5RUEzRTUzRjFDNEIxNzczNDQxMEEzM0RBMjNBNTlDMUFBMjY5
RDdBOTZBREQ0NEYwQkE4MENCMDJBOTQwRjY4MTk4OUI2REZDNzZDMjE2QTZFQjlDM0ZGOTUwQjVC
NTlFRkJCNEE5QzY4MjNBRkVGOTk4MTlGRUQ4NTU0MUVGRDdFMEM1RjZBODhFOTkyQUNDOTlEQzRD
OUQ1M0IzNjE3NjNDNDVBNEZBQjYxM0UzOUZGMjc5NzFGMkQ1REIxMjNGMkYwQjJCMzJEOUE5NzUy
QzhEOTYwNUY0Q0QzNTIxQzJEQjlBODYwMDBBMzA0MEExNjIzMUY2MTI3OEM3NzQ3QzNBQjE4REJF
QzAwQTVENzEwMjNCNTBCMTM0QTI4RTUxQ0RCNDE5QTY2QkExNzBERjYxODgxNzM0MkY3ODYxMTc0
QUE4RTc0OTlCOTc0REJGRUI5RkM2NDNCMEU5NTY0NUMxQzREODExMDRCQ0U1M0RBNkU2Q0YzMUI2
QTAwODVGNzlGMkUwNjI2NDgyRDY4QTVBMEE0NUM0RUFGNDU2NDBENThEMkY4RTUxNjRENjQ1NjBD
REVFQTA5ODIxMzhDQTg2N0E4NzBDRDAxQTYzNzQyODQ3QUNGM0E1MTZGNDkiKSksCisgICAgcDog
QmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIkUyNjg5M0I4MDhDQTMx
RTFGOUI4OUU0QTA3N0Y3QjQxNEMyMTZFNDYwNDgxMjZEQzAzNjlBMjdFNjRBNEJDNERCNEQ3Qzgx
QkU3OUFBNDA0NzJCNTc5NUFGMjdGNUZFNkUzNzJDRDk1Q0U4RUZEQTkzQTgxRkNERDY0ODY2RjRC
OTM0MjFBMzNFNUQyQUQzREE2NTUyOUJCQ0E4NTM5MkIyOTA3MDAzQUVFQTE4N0VGQTk0NTk1OTJF
N0ZEREUzMjgyNTRCQkMxRjJFQkJCOEZGOTYyQ0YyQTJDQkIzRTBFQTU0QkJFMkMyOUEyQzNBN0NC
MjVBQUMwQ0U0MDVFOUQiKSksCisgICAgcTogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdU
b1VpbnQ4QXJyYXkoIkM0NzYyQkNFNDhBRkI2NjlGM0ZFQzE5Qzg2NzU4NjczNEFCRUE0MzNBNDJB
MjcyOUI1MUE2RkRBOTMwNTIwODVGMTlDNTVGOTY4Qzc4NDVDODY2MzU2RThEN0I3MDUzMkQ1NDk0
NTIwREQ4NjY0OTRBRkNCOTI4OUVGRDlBRUZEN0M4RDlDNTFDQ0NERTc0N0Y4MERERTdCN0JCQzg3
NTUxNEFEOTE3RUJENEJCNUZERUUxNEZGMUVCQjM0REQ1RDc5RENENDQ4QUNBNzM3QkE0NTk3NzNB
NEI5Mjg0QzA1NjE5NUY5Q0MzMzM4Rjc1QzU0MDdENUI5OTk3MTUwQzciKSksCisgICAgZHA6IEJh
c2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCI3QzFDQzNDRDgwRDQwNjYw
NTAxQThBN0IxRTdEMURCREZGRDNEQkI1N0E0NkFBNUNCNTZBMzRFRjgwOTA2NUMxNUIzRjY2QUQx
NTVCNEE0QTNERUY4OTY0RjdDNjI3NzY1NDdDREM4MjIwQzc3NUZBNENERTcxMTU5NDQzQjVDMzAy
Mjg5QzYwOTJCREQ4QzYxMEU2NjI4ODU1NEU4RUI2NDAzOTVDNDBGMjBCOEU4RjJDODVCRUE2RDc5
MUVEM0E1NzAzQzgyMTVCREYyOUU0OTREQjNCQTE2Q0ZGRkZENkRCN0ExN0Y3RjFBMzBFMEE2RjZD
Njg5QzY0RjQxODY5IikpLAorICAgIGRxOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1Rv
VWludDhBcnJheSgiOEU2MTM2MEUyMjBGNzYxQzAzODBCNUMwNDI5MjFBMDZBNDNDRDVCM0I3NURG
NTUzRkNCNDU0MkMwQzMwQzMwOTRGQjkwNTc1RTNDMUY0RTMzOTYxRjUzMjdBNjM2MTk5MUQ4QTI0
NTc1NTM0NzhFMDY5MjcxN0U0NkZCNzRCNjJEQTQ5QTZFODgxOEQxN0Y4Qzg4NTA0QTA2OTY0OTA4
RkQwOTQ5OUM1NDg1QUZFNjIzMTkxNzVGMzQ3QTk2MDY0QzY1NDhDNjRCRUZCRDExRjY2MjAwNEU3
NzQ2OTA3RUYzRTcxRkFCRjRBQzAxNjQ1MEI4MTQyMUI2ODYwRkYzMSIpKSwKKyAgICBxaTogQmFz
ZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjYwMjVGRkE0QkMxQjMwMTAz
NTRFMTU0N0QxNjczMDlBN0NBREE4RDcyQjMwMjEzMDRFNkVDMUM4MEQ5RTUzQTlENjZEMEFENDJF
RjdGQjlCREZFNENERjJENDcyM0IyN0E0MDU2NTA1MDFCOTI0QzVDQ0NCNDRBQUUyOUI3MDZGMkMy
QzZCOUY4NkYwQTAwRTM4RTQ3NjJGN0JGODg0MkY4NENBQ0Y1RkI2MDE0Q0ZGNzhCNEEzOEQxRTc5
MDFGODZGNzg1QTNEQjlFREFDODc4QzgzQzIzMzk0RUI5NTYwQTdGREZCNjQyRTI4M0ExNjc5MTc1
REVDREIxREM1MzkiKSkKK307CisKK3ZhciBkYXRhID0gYXNjaWlUb1VpbnQ4QXJyYXkoIkhlbGxv
LCB3b3JsZCEiKTsKKworZGVidWcoIkltcG9ydGluZyBhIHB1YmxpYyBrZXkuLi4iKTsKK2NyeXB0
by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lm
eShwdWJsaWNLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgcHVibGljS2V5ID0gcmVzdWx0OworICAgIGRl
YnVnKCJcbkltcG9ydGluZyBhIHByaXZhdGUga2V5Li4uIik7CisgICAgcmV0dXJuIGNyeXB0by5z
dWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShw
cml2YXRlS2V5SlNPTikpLCBudWxsLCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKTsK
K30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgcHJpdmF0ZUtleSA9IHJlc3VsdDsKKyAg
ICBkZWJ1ZygiXG5TaWduaW5nIHNvbWUgdGV4dC4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3Vi
dGxlLnNpZ24oeyBuYW1lOiAiUlNBU1NBLVBLQ1MxLXYxXzUiLCBoYXNoOiAiU0hBLTI1NiIgfSwg
cHJpdmF0ZUtleSwgZGF0YSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHNpZ25h
dHVyZSA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhB
cnJheShzaWduYXR1cmUpKSIsICInMGZkOWE4YWVmNGNjMTg3NmMwYjc2MjU0NTMzNmM2ZDFmYjMx
NWFlMTZhZTRiNWU0YmYzNGQzODRkODU4NWVhN2EwMWU3NmVhMDllZTdmN2VlOGQxYzEyMmU3ZGQx
NWI3Yzk0YTU3M2IyYWEwNzIwM2U4ZDEzYmM2ZmQxNjE1NmNkOGU1ZjBjMTVhMTVkY2NiNjJkMTUy
MTI3ZmNhMDk4ODJmYjUzYmMzZTYwYWI1ODZkMTViOTVjZjQxMWUzYWFiNGExYzIzMWE3ZTkxYWFi
MDllZTNkNGIxM2QxMWU5NzUwNWRkZmY3NzY4MzQ3MGRhNTEwZWU3NmU4YmQ1MzBjNTZhODVmOTAx
NjI2YTVhNzEwZjcxNmYxMTNkZmU5Y2Y2YzQ3M2VlMTZmYTI0OGFlYTM0ODBhMTAzM2FiZTMwZjRj
MTI0MzI4OWE2NjFlNjRkNzgxOGI1NTY5ODI4MDY4ODA5NzEzNTk2OGM2ZDRiMDI5NDk2ZDg1Y2Fi
MmE2N2U0Njk2NzM3NzgxZjcwZTQzOTJjN2RmNzFiYmQ2YzkyNDY1OTQ3ZjAyOWExZGU0ODE2MGFj
ZWQxMWI1NzIxYjFjZDI1MDM5ZmUyYzE2YzJiMzhkZTczZGYzYjlhODNlM2VhNzU1ZmQwY2ZlNTFj
YTA2YjYxZmFkZjZkODQ2NzdmOTUnIik7CisKKyAgICBkZWJ1ZygiXG5WZXJpZnlpbmcgdGhlIHNp
Z25hdHVyZS4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLnZlcmlmeSh7IG5hbWU6ICJS
U0FTU0EtUEtDUzEtdjFfNSIsIGhhc2g6ICJTSEEtMjU2IiB9LCBwdWJsaWNLZXksIHNpZ25hdHVy
ZSwgZGF0YSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHZlcmlmaWNhdGlvblJl
c3VsdCA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgidmVyaWZpY2F0aW9uUmVzdWx0IiwgInRydWUi
KTsKKyAgICBkZWJ1ZygiXG5WZXJpZnlpbmcgYSBiYWQgc2lnbmF0dXJlLi4uIik7CisgICAgcmV0
dXJuIGNyeXB0by5zdWJ0bGUudmVyaWZ5KHsgbmFtZTogIlJTQVNTQS1QS0NTMS12MV81IiwgaGFz
aDogIlNIQS0yNTYiIH0sIHB1YmxpY0tleSwgbmV3IFVpbnQ4QXJyYXkoMjU2KSwgZGF0YSk7Cit9
KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHZlcmlmaWNhdGlvblJlc3VsdCA9IHJlc3Vs
dDsKKyAgICBzaG91bGRCZSgidmVyaWZpY2F0aW9uUmVzdWx0IiwgImZhbHNlIik7CisgICAgZmlu
aXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3NoYS0xLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTEtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmM5MGU4NzM2MDI4MzAwYzE2NDZlOWU3N2M2OGYzOGVjY2Y3MmYxOTcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3NoYS0xLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE2IEBACitUZXN0IGNyeXB0by5zdWJ0bGUuZGlnZXN0LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU0hBMSBvZiBbXQorUEFTUyBieXRlc1RvSGV4U3Ry
aW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIGlzICdkYTM5YTNlZTVlNmI0YjBkMzI1NWJmZWY5
NTYwMTg5MGFmZDgwNzA5JworU0hBMSBvZiBbMHgwXQorUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5l
dyBVaW50OEFycmF5KGRpZ2VzdCkpIGlzICc1YmE5M2M5ZGIwY2ZmOTNmNTJiNTIxZDc0MjBlNDNm
NmVkYTI3ODRmJworU0hBMSBvZiBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdCitQ
QVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkgaXMgJzJjN2U3YzM4
NGY3ODI5Njk0MjgyYjFlM2E2MjE2ZGVmODA4MmQwNTUnCitQQVNTIGNyeXB0by5zdWJ0bGUuZ2Vu
ZXJhdGVLZXkoJ3NoYS0xJykgdGhyZXcgZXhjZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yIChET00g
RXhjZXB0aW9uIDkpOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTEuaHRtbCBiL0xheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvc2hhLTEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDMxMzYwNGZiZjc3YTAy
MjI0YmY4NTJhNTdlNGJmZmE4YjFjM2RmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMS5odG1sCkBAIC0wLDAgKzEsNDQgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgY3J5
cHRvLnN1YnRsZS5kaWdlc3QuIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitQcm9taXNl
LnJlc29sdmUobnVsbCkudGhlbihmdW5jdGlvbigpIHsKKyAgICBkZWJ1ZygiU0hBMSBvZiBbXSIp
OworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCgnc2hhLTEnLCBuZXcgVWludDhBcnJh
eShbXSkpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBkaWdlc3QgPSByZXN1bHQ7
CisgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSki
LCAiJ2RhMzlhM2VlNWU2YjRiMGQzMjU1YmZlZjk1NjAxODkwYWZkODA3MDknIik7CisKKyAgICBk
ZWJ1ZygiU0hBMSBvZiBbMHgwXSIpCisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHtu
YW1lOiAnc2hhLTEnfSwgbmV3IFVpbnQ4QXJyYXkoWzBdKSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJl
c3VsdCkgeworICAgIGRpZ2VzdCA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0
cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSIsICInNWJhOTNjOWRiMGNmZjkzZjUyYjUyMWQ3
NDIwZTQzZjZlZGEyNzg0ZiciKTsKKworICAgIGRlYnVnKCJTSEExIG9mIFswLCAxLCAyLCAzLCA0
LCA1LCA2LCA3LCA4LCA5LCAxMF0iKTsKKyAgICB2YXIgZGF0YSA9IG5ldyBVaW50OEFycmF5KFsw
LCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMF0pOworICAgIHJldHVybiBjcnlwdG8uc3Vi
dGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30sIGRhdGEpOworfSkudGhlbihmdW5jdGlvbihyZXN1
bHQpIHsKKyAgICBkaWdlc3QgPSByZXN1bHQ7CisgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJp
bmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkiLCAiJzJjN2U3YzM4NGY3ODI5Njk0MjgyYjFlM2E2
MjE2ZGVmODA4MmQwNTUnIik7CisKKyAgICAvLyBBbGwgU0hBLTEgY2FuIGRvIGlzIGRpZ2VzdC4K
KyAgICBzaG91bGRUaHJvdygiY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSgnc2hhLTEnKSIpOwor
ICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMjI0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTIyNC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZmQ1MDE0NWQ1NjM1YTU5YTgwYWFkODhmZGYyNTk0YzRjNzM5Y2Ew
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hh
LTIyNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdCBjcnlwdG8uc3VidGxlLmRp
Z2VzdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1NIQTIyNCBvZiBbXQorUEFT
UyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIGlzICdkMTRhMDI4YzJh
M2EyYmM5NDc2MTAyYmIyODgyMzRjNDE1YTJiMDFmODI4ZWE2MmFjNWIzZTQyZicKK1NIQTIyNCBv
ZiBbMHgwXQorUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIGlz
ICdmZmY5MjkyYjQyMDE2MTdiZGM0ZDMwNTNmY2UwMjczNDE2NmE2ODNkN2Q4NThhN2Y1ZjU5YjA3
MycKK1NIQTIyNCBvZiBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdCitQQVNTIGJ5
dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkgaXMgJzc2N2QwY2RjMTEwNzli
YThkY2EyNzZkZjVjNGI4NTUwN2RlNjdkY2U0N2VkYTRjZDkxOTZkMzEyJworUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTIyNC5odG1sIGIvTGF5b3V0VGVzdHMvY3J5
cHRvL3dlYmtpdFN1YnRsZS9zaGEtMjI0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzNmNDc2YmRjYzAyZTg2
YTQwMGVkMzc4MGY3YTU1ODI2NGZhMGJhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTIyNC5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24u
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3Qg
Y3J5cHRvLnN1YnRsZS5kaWdlc3QuIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitQcm9t
aXNlLnJlc29sdmUobnVsbCkudGhlbihmdW5jdGlvbigpIHsKKyAgICBkZWJ1ZygiU0hBMjI0IG9m
IFtdIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0KCdzaGEtMjI0JywgbmV3IFVp
bnQ4QXJyYXkoW10pKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgZGlnZXN0ID0g
cmVzdWx0OworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRp
Z2VzdCkpIiwgIidkMTRhMDI4YzJhM2EyYmM5NDc2MTAyYmIyODgyMzRjNDE1YTJiMDFmODI4ZWE2
MmFjNWIzZTQyZiciKTsKKworICAgIGRlYnVnKCJTSEEyMjQgb2YgWzB4MF0iKQorICAgIHJldHVy
biBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0yMjQnfSwgbmV3IFVpbnQ4QXJyYXko
WzBdKSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGRpZ2VzdCA9IHJlc3VsdDsK
KyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSIs
ICInZmZmOTI5MmI0MjAxNjE3YmRjNGQzMDUzZmNlMDI3MzQxNjZhNjgzZDdkODU4YTdmNWY1OWIw
NzMnIik7CisKKyAgICBkZWJ1ZygiU0hBMjI0IG9mIFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4
LCA5LCAxMF0iKTsKKyAgICB2YXIgZGF0YSA9IG5ldyBVaW50OEFycmF5KFswLCAxLCAyLCAzLCA0
LCA1LCA2LCA3LCA4LCA5LCAxMF0pOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7
bmFtZTogJ3NoYS0yMjQnfSwgZGF0YSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAg
IGRpZ2VzdCA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWlu
dDhBcnJheShkaWdlc3QpKSIsICInNzY3ZDBjZGMxMTA3OWJhOGRjYTI3NmRmNWM0Yjg1NTA3ZGU2
N2RjZTQ3ZWRhNGNkOTE5NmQzMTInIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2Ny
aXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL3NoYS0yNTYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9zaGEtMjU2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOWFiMjdhYjExOGEx
MTFkYzI1ZDIwMmVkOTZlODNhYjk5M2E5NDcyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMjU2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1
IEBACitUZXN0IGNyeXB0by5zdWJ0bGUuZGlnZXN0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworU0hBMjU2IG9mIFtdCitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJy
YXkoZGlnZXN0KSkgaXMgJ2UzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2
NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUnCitTSEEyNTYgb2YgWzB4MF0KK1BBU1MgYnl0ZXNUb0hl
eFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSBpcyAnNmUzNDBiOWNmZmIzN2E5ODljYTU0
NGU2YmI3ODBhMmM3ODkwMWQzZmIzMzczODc2ODUxMWEzMDYxN2FmYTAxZCcKK1NIQTI1NiBvZiBb
MCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdCitQQVNTIGJ5dGVzVG9IZXhTdHJpbmco
bmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkgaXMgJzc4YTYyNzMxMDNkMTdjMzlhMGI2MTI2ZTIyNmNl
YzcwZTMzMzM3ZjRiYzZhMzgwNjc0MDFiNTRhMzNlNzhlYWQnCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMjU2Lmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL3NoYS0yNTYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzBjNWFkMGI2NjM2N2FhZjBiYTJl
MWRiNmE3MWZiOWU1MDQwNThkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9zaGEtMjU2Lmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCBjcnlwdG8u
c3VidGxlLmRpZ2VzdC4iKTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK1Byb21pc2UucmVz
b2x2ZShudWxsKS50aGVuKGZ1bmN0aW9uKCkgeworICAgIGRlYnVnKCJTSEEyNTYgb2YgW10iKTsK
KyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3QoJ3NoYS0yNTYnLCBuZXcgVWludDhBcnJh
eShbXSkpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBkaWdlc3QgPSByZXN1bHQ7
CisgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSki
LCAiJ2UzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5
OTFiNzg1MmI4NTUnIik7CisKKyAgICBkZWJ1ZygiU0hBMjU2IG9mIFsweDBdIikKKyAgICByZXR1
cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMjU2J30sIG5ldyBVaW50OEFycmF5
KFswXSkpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBkaWdlc3QgPSByZXN1bHQ7
CisgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSki
LCAiJzZlMzQwYjljZmZiMzdhOTg5Y2E1NDRlNmJiNzgwYTJjNzg5MDFkM2ZiMzM3Mzg3Njg1MTFh
MzA2MTdhZmEwMWQnIik7CisKKyAgICBkZWJ1ZygiU0hBMjU2IG9mIFswLCAxLCAyLCAzLCA0LCA1
LCA2LCA3LCA4LCA5LCAxMF0iKTsKKyAgICB2YXIgZGF0YSA9IG5ldyBVaW50OEFycmF5KFswLCAx
LCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMF0pOworICAgIHJldHVybiBjcnlwdG8uc3VidGxl
LmRpZ2VzdCh7bmFtZTogJ3NoYS0yNTYnfSwgZGF0YSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3Vs
dCkgeworICAgIGRpZ2VzdCA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmlu
ZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSIsICInNzhhNjI3MzEwM2QxN2MzOWEwYjYxMjZlMjI2
Y2VjNzBlMzMzMzdmNGJjNmEzODA2NzQwMWI1NGEzM2U3OGVhZCciKTsKKyAgICBmaW5pc2hKU1Rl
c3QoKTsKK30pOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTM4NC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3NoYS0zODQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjAwYzVjZTI5NTExOWE5ZDE4OWQ2ODU1YzUzMTQzZjBmMzRlZDY5YWEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3NoYS0zODQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3QgY3J5cHRvLnN1YnRsZS5kaWdlc3QuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTSEEzODQgb2YgW10KK1BBU1MgYnl0ZXNUb0hleFN0
cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSBpcyAnMzhiMDYwYTc1MWFjOTYzODRjZDkzMjdl
YjFiMWUzNmEyMWZkYjcxMTE0YmUwNzQzNGMwY2M3YmY2M2Y2ZTFkYTI3NGVkZWJmZTc2ZjY1ZmJk
NTFhZDJmMTQ4OThiOTViJworU0hBMzg0IG9mIFsweDBdCitQQVNTIGJ5dGVzVG9IZXhTdHJpbmco
bmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkgaXMgJ2JlYzAyMWI0ZjM2OGUzMDY5MTM0ZTAxMmMyYjQz
MDcwODNkM2E5YmRkMjA2ZTI0ZTVmMGQ4NmUxM2Q2NjM2NjU1OTMzZWMyYjQxMzQ2NTk2NjgxN2E5
YzIwOGExMTcxNycKK1NIQTM4NCBvZiBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBd
CitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkgaXMgJzg5YmZj
ZjU2OWFlNGFmNzE4NTEwZGE3OGM2NzQxNDEwOWY1NzM5YmI1YzQwZDUxYzljOGM1MGUyYjJjZWU4
NmYyZjgwYzhiOWQ2OGY3YzAxMjAxYTA3MTQ1NzJmZTYwMicKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
cnlwdG8vd2Via2l0U3VidGxlL3NoYS0zODQuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJr
aXRTdWJ0bGUvc2hhLTM4NC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1YjhjMzc4OWQzZTAyYThjZTk4NDBj
ZjE1MTJlMzA1NTBjYzYxZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL3NoYS0zODQuaHRtbApAQCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IGNyeXB0by5z
dWJ0bGUuZGlnZXN0LiIpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworUHJvbWlzZS5yZXNv
bHZlKG51bGwpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgZGVidWcoIlNIQTM4NCBvZiBbXSIpOwor
ICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCgnc2hhLTM4NCcsIG5ldyBVaW50OEFycmF5
KFtdKSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGRpZ2VzdCA9IHJlc3VsdDsK
KyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSIs
ICInMzhiMDYwYTc1MWFjOTYzODRjZDkzMjdlYjFiMWUzNmEyMWZkYjcxMTE0YmUwNzQzNGMwY2M3
YmY2M2Y2ZTFkYTI3NGVkZWJmZTc2ZjY1ZmJkNTFhZDJmMTQ4OThiOTViJyIpOworCisgICAgZGVi
dWcoIlNIQTM4NCBvZiBbMHgwXSIpCisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHtu
YW1lOiAnc2hhLTM4NCd9LCBuZXcgVWludDhBcnJheShbMF0pKTsKK30pLnRoZW4oZnVuY3Rpb24o
cmVzdWx0KSB7CisgICAgZGlnZXN0ID0gcmVzdWx0OworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4
U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIiwgIidiZWMwMjFiNGYzNjhlMzA2OTEzNGUw
MTJjMmI0MzA3MDgzZDNhOWJkZDIwNmUyNGU1ZjBkODZlMTNkNjYzNjY1NTkzM2VjMmI0MTM0NjU5
NjY4MTdhOWMyMDhhMTE3MTcnIik7CisKKyAgICBkZWJ1ZygiU0hBMzg0IG9mIFswLCAxLCAyLCAz
LCA0LCA1LCA2LCA3LCA4LCA5LCAxMF0iKTsKKyAgICB2YXIgZGF0YSA9IG5ldyBVaW50OEFycmF5
KFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMF0pOworICAgIHJldHVybiBjcnlwdG8u
c3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0zODQnfSwgZGF0YSk7Cit9KS50aGVuKGZ1bmN0aW9u
KHJlc3VsdCkgeworICAgIGRpZ2VzdCA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hl
eFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSIsICInODliZmNmNTY5YWU0YWY3MTg1MTBk
YTc4YzY3NDE0MTA5ZjU3MzliYjVjNDBkNTFjOWM4YzUwZTJiMmNlZTg2ZjJmODBjOGI5ZDY4Zjdj
MDEyMDFhMDcxNDU3MmZlNjAyJyIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3Njcmlw
dD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9zaGEtNTEyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJr
aXRTdWJ0bGUvc2hhLTUxMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE0N2ZkOTY4OTI4Yzcx
ZWQwYzg5YTA2NzdmMTEyOGU4ZjBkNDVjYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTUxMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBA
QAorVGVzdCBjcnlwdG8uc3VidGxlLmRpZ2VzdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1NIQTUxMiBvZiBbXQorUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5
KGRpZ2VzdCkpIGlzICdjZjgzZTEzNTdlZWZiOGJkZjE1NDI4NTBkNjZkODAwN2Q2MjBlNDA1MGI1
NzE1ZGM4M2Y0YTkyMWQzNmNlOWNlNDdkMGQxM2M1ZDg1ZjJiMGZmODMxOGQyODc3ZWVjMmY2M2I5
MzFiZDQ3NDE3YTgxYTUzODMyN2FmOTI3ZGEzZScKK1NIQTUxMiBvZiBbMHgwXQorUEFTUyBieXRl
c1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIGlzICdiODI0NGQwMjg5ODFkNjkz
YWY3YjQ1NmFmOGVmYTRjYWQ2M2QyODJlMTlmZjE0OTQyYzI0NmU1MGQ5MzUxZDIyNzA0YTgwMmE3
MWMzNTgwYjYzNzBkZTRjZWIyOTNjMzI0YTg0MjMzNDI1NTdkNGU1YzM4NDM4ZjBlMzY5MTBlZScK
K1NIQTUxMiBvZiBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdCitQQVNTIGJ5dGVz
VG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkgaXMgJzhmZmFlZTBjY2NjMTYyODUx
ZmFmMDUxYWUzODY2N2VlZmQ0MjNjMDE2NGM1MDA1NWY4YWRlMDBhZmMzNzA1ZTNjZGViOTkwMDAw
NGIwZTQyNmNhNjZhYjYzYWEzYjk5YjA3NTI3M2Y0NGZkMzdjMjJhMzU1NWM2ZmQxZjM3Y2NiJwor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTUxMi5odG1sIGIvTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtNTEyLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmM2
Y2Y0Yzk4MGFlY2ZhZTk4ZTUxM2Y2YWIwODRjYTNlMTMwM2UxYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTUxMi5odG1sCkBAIC0wLDAgKzEs
NDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3Jp
cHRpb24oIlRlc3QgY3J5cHRvLnN1YnRsZS5kaWdlc3QuIik7CisKK2pzVGVzdElzQXN5bmMgPSB0
cnVlOworCitQcm9taXNlLnJlc29sdmUobnVsbCkudGhlbihmdW5jdGlvbigpIHsKKyAgICBkZWJ1
ZygiU0hBNTEyIG9mIFtdIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0KCdzaGEt
NTEyJywgbmV3IFVpbnQ4QXJyYXkoW10pKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Cisg
ICAgZGlnZXN0ID0gcmVzdWx0OworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBV
aW50OEFycmF5KGRpZ2VzdCkpIiwgIidjZjgzZTEzNTdlZWZiOGJkZjE1NDI4NTBkNjZkODAwN2Q2
MjBlNDA1MGI1NzE1ZGM4M2Y0YTkyMWQzNmNlOWNlNDdkMGQxM2M1ZDg1ZjJiMGZmODMxOGQyODc3
ZWVjMmY2M2I5MzFiZDQ3NDE3YTgxYTUzODMyN2FmOTI3ZGEzZSciKTsKKworICAgIGRlYnVnKCJT
SEE1MTIgb2YgWzB4MF0iKQorICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTog
J3NoYS01MTInfSwgbmV3IFVpbnQ4QXJyYXkoWzBdKSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3Vs
dCkgeworICAgIGRpZ2VzdCA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmlu
ZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSIsICInYjgyNDRkMDI4OTgxZDY5M2FmN2I0NTZhZjhl
ZmE0Y2FkNjNkMjgyZTE5ZmYxNDk0MmMyNDZlNTBkOTM1MWQyMjcwNGE4MDJhNzFjMzU4MGI2Mzcw
ZGU0Y2ViMjkzYzMyNGE4NDIzMzQyNTU3ZDRlNWMzODQzOGYwZTM2OTEwZWUnIik7CisKKyAgICBk
ZWJ1ZygiU0hBNTEyIG9mIFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMF0iKTsKKyAg
ICB2YXIgZGF0YSA9IG5ldyBVaW50OEFycmF5KFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5
LCAxMF0pOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS01MTIn
fSwgZGF0YSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGRpZ2VzdCA9IHJlc3Vs
dDsKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3Qp
KSIsICInOGZmYWVlMGNjY2MxNjI4NTFmYWYwNTFhZTM4NjY3ZWVmZDQyM2MwMTY0YzUwMDU1Zjhh
ZGUwMGFmYzM3MDVlM2NkZWI5OTAwMDA0YjBlNDI2Y2E2NmFiNjNhYTNiOTliMDc1MjczZjQ0ZmQz
N2MyMmEzNTU1YzZmZDFmMzdjY2InIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2Ny
aXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL3VuaW1wbGVtZW50ZWQtdW53cmFwLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvdW5pbXBsZW1lbnRlZC11bndyYXAtY3Jhc2gt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwOGU4ZGYyMzA1MzUzMzBkMzQ1ZDMxZmNmNDQwMjM5
MThmZThjZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3Vi
dGxlL3VuaW1wbGVtZW50ZWQtdW53cmFwLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkg
QEAKK01ha2Ugc3VyZSB0aGF0IHVud3JhcCBkb2VzIG5vdCBjYXVzZSBhIGNyYXNoLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJr
aXRTdWJ0bGUvdW5pbXBsZW1lbnRlZC11bndyYXAtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvdW5pbXBsZW1lbnRlZC11bndyYXAtY3Jhc2guaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lM2JhY2I0YWIzNWQ1NmZkYjE0Yjg5ZTBjMzliMzJhMTNlYjU4Y2EzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS91bmltcGxlbWVudGVkLXVu
d3JhcC1jcmFzaC5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiTWFrZSBzdXJlIHRoYXQgdW53cmFwIGRv
ZXMgbm90IGNhdXNlIGEgY3Jhc2guIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitjcnlw
dG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiQUVTLUtXIiwgbGVuZ3RoOiAyNTZ9LCBmYWxz
ZSwgWyJ3cmFwS2V5Il0pLnRoZW4oZnVuY3Rpb24od3JhcHBpbmdLZXkpIHsKKyAgICByZXR1cm4g
Y3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogIkhNQUMiLCBoYXNoOiB7bmFtZTogIlNI
QS0yNTYifX0sIHRydWUsIFsic2lnbiIsICJ2ZXJpZnkiXSkudGhlbihmdW5jdGlvbihhZXNLZXkp
IHsKKyAgICAgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUud3JhcEtleSgicmF3IiwgYWVzS2V5LCB3
cmFwcGluZ0tleSwge25hbWU6ICJBRVMtS1cifSk7CisgICAgfSk7Cit9KS50aGVuKGZpbmlzaEpT
VGVzdCwgZmluaXNoSlNUZXN0KTsgLy8gT0sgaWYgdGhlIGJyb3dzZXIgZG9lcyBub3QgY3Jhc2gu
Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS91bndyYXBLZXktY2hlY2stdXNhZ2UtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS91bndyYXBLZXktY2hlY2stdXNhZ2UtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmMzA1MDJiYjVmOWVmMDI1NWVhMjM2ODQ0ZDUwZTFkZjcx
OGM4ZmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L3Vud3JhcEtleS1jaGVjay11c2FnZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDE6IEtleSB1c2FnZXMgZG8gbm90IGluY2x1ZGUgJ3Vud3JhcEtl
eScKK1ZlcmlmeSB0aGF0IHVzYWdlIGlzIHJlc3BlY3RlZCBpbiB1bndyYXBLZXkgb3BlcmF0aW9u
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworSW1wb3J0aW5nIFJTQSBrZXlzLi4u
CitJbXBvcnRpbmcgYW4gQUVTIGtleS4uLgorV3JhcHBpbmcgaXQuLi4KK1Vud3JhcHBpbmcgaXQu
Li4KK1BBU1MgY3J5cHRvLnN1YnRsZS51bndyYXBLZXkoInJhdyIsIHdyYXBwZWRLZXksIHByaXZh
dGVLZXksIHdyYXBBbGdvcml0aG0sICJhZXMtY2JjIiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIs
ICJkZWNyeXB0Il0pIHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvciAoRE9NIEV4Y2Vw
dGlvbiA5KTogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3Vud3JhcEtleS1jaGVjay11c2FnZS5odG1sIGIvTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS91bndyYXBLZXktY2hlY2stdXNhZ2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zYWIwMjZiZWFiYTFlMmJmYzkzOGQ3OTAzMjUwN2NkY2FmNzlhMWRkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS91bndyYXBLZXkt
Y2hlY2stdXNhZ2UuaHRtbApAQCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCB1c2FnZSBpcyBy
ZXNwZWN0ZWQgaW4gdW53cmFwS2V5IG9wZXJhdGlvbi4iKTsKKworanNUZXN0SXNBc3luYyA9IHRy
dWU7CisKK3ZhciBwdWJsaWNLZXlKU09OID0geworICAgIGt0eTogIlJTQSIsCisgICAgYWxnOiAi
UlNBLU9BRVAiLAorICAgIG46ICJyY0NVQ3Y3T2MxSFZhbTFESWhDenFrblRoV2F3T3A4UUxrOFpp
eTJwMTBCeWpRRkNham9GaXl1QVdsLVIxV1haYWY0eGl0TFJyYWNUOWFncHpJemMtTWJMU0hJR2dX
UUdPMjFsR2lJbXk1ZnRaLUQ4YkhBcVJ6MnkxNXB6RDRjNENFb3U3WFNTTERvUm5SMFFHNU1zRGhE
NnMyZ1Y5bXdIa3J0a0N4dE1XZEJpLTc3YXM4d0dtbE5SbGRjT1NnWkRMSzhVbkNTZ0ExT2d1Wjk4
OWJGeWM4dE9PRUliMHhVU2ZQU3ozTFBTQ255WXo2OGFEam1LVmVOSC1pZzg1N09TY3lXYkd5RXkz
Qml3NjRxdW4zanVVbE5Xc0ozem5na09kdGVZV3l0eDVRcjRYS05zNlItTXl5cTcyS1VwMDJtSkRa
aWl5aWdseE1MX2kzLV9DZWVjQ3ciLAorICAgIGU6ICJBUUFCIgorfTsKKwordmFyIHByaXZhdGVL
ZXlKU09OID0geworICAgIGt0eTogIlJTQSIsCisgICAgYWxnOiAiUlNBLU9BRVAiLAorICAgIG46
ICJyY0NVQ3Y3T2MxSFZhbTFESWhDenFrblRoV2F3T3A4UUxrOFppeTJwMTBCeWpRRkNham9GaXl1
QVdsLVIxV1haYWY0eGl0TFJyYWNUOWFncHpJemMtTWJMU0hJR2dXUUdPMjFsR2lJbXk1ZnRaLUQ4
YkhBcVJ6MnkxNXB6RDRjNENFb3U3WFNTTERvUm5SMFFHNU1zRGhENnMyZ1Y5bXdIa3J0a0N4dE1X
ZEJpLTc3YXM4d0dtbE5SbGRjT1NnWkRMSzhVbkNTZ0ExT2d1Wjk4OWJGeWM4dE9PRUliMHhVU2ZQ
U3ozTFBTQ255WXo2OGFEam1LVmVOSC1pZzg1N09TY3lXYkd5RXkzQml3NjRxdW4zanVVbE5Xc0oz
em5na09kdGVZV3l0eDVRcjRYS05zNlItTXl5cTcyS1VwMDJtSkRaaWl5aWdseE1MX2kzLV9DZWVj
Q3ciLAorICAgIGU6ICJBUUFCIiwKKyAgICBkOiAiZU5MUzM3YUN6N1JYU05QRF9EdExCSjZqNVQ4
Y1N4ZHpSQkNqUGFJNldjR3FKcDE2bHEzVVR3dW9ETEFxbEE5b0dZbTIzOGRzSVdwdXVjUF9sUXRi
V2UtN1NweG9JNl92bVlHZjdZVlVIdjEtREY5cWlPbVNyTW1keE1uVk96WVhZOFJhVDZ0aFBqbl9K
NWNmTFYyeElfTHdzck10bXBkU3lObGdYMHpUVWh3dHVhaGdBS01FQ2hZakgyRW5qSGRIdzZzWTIt
d0FwZGNRSTdVTEUwb281UnpiUVpwbXVoY045aGlCYzBMM2hoRjBxbzUwbWJsMDJfNjVfR1E3RHBW
a1hCeE5nUkJMemxQYWJtenpHMm9BaGZlZkxnWW1TQzFvcGFDa1hFNnZSV1FOV05MNDVSWk5aRllN
M3VvSmdoT01xR2VvY00wQnBqZENoSHJQT2xGdlNRIiwKKyAgICBwOiAiNG1pVHVBaktNZUg1dUo1
S0IzOTdRVXdoYmtZRWdTYmNBMm1pZm1Ta3ZFMjAxOGdiNTVxa0JISzFlVnJ5ZjFfbTQzTE5sYzZP
X2FrNmdmemRaSVp2UzVOQ0dqUGwwcTA5cGxVcHU4cUZPU3NwQndBNjdxR0g3NmxGbFpMbl9kNHln
bFM3d2ZMcnU0XzVZczhxTExzLURxVkx2aXdwb3NPbnl5V3F3TTVBWHAwIiwKKyAgICBxOiAieEhZ
cnpraXZ0bW56X3NHY2huV0djMHEtcERPa0tpY3B0UnB2MnBNRklJWHhuRlg1YU1lRVhJWmpWdWpY
dHdVeTFVbEZJTjJHWkpTdnk1S0o3OW11X1h5Tm5GSE16ZWRILUEzZWUzdThoMVVVclpGLXZVdTFf
ZTRVX3g2N05OMWRlZHpVU0t5bk43cEZsM09rdVNoTUJXR1YtY3d6T1BkY1ZBZlZ1Wmx4VU1jIiwK
KyAgICBkcDogImZCekR6WURVQm1CUUdvcDdIbjBkdmZfVDI3VjZScXBjdFdvMDc0Q1FaY0ZiUDJh
dEZWdEtTajN2aVdUM3hpZDJWSHpjZ2lESGRmcE0zbkVWbEVPMXd3SW9uR0NTdmRqR0VPWmlpRlZP
anJaQU9WeEE4Z3VPanl5RnZxYlhrZTA2VndQSUlWdmZLZVNVMnp1aGJQX18xdHQ2Rl9meG93NEti
MnhvbkdUMEdHayIsCisgICAgZHE6ICJqbUUyRGlJUGRod0RnTFhBUXBJYUJxUTgxYk8zWGZWVF9M
UlVMQXd3d3dsUHVRVjE0OEgwNHpsaDlUSjZZMkdaSFlva1YxVTBlT0JwSnhma2I3ZExZdHBKcHVp
QmpSZjR5SVVFb0dsa2tJX1FsSm5GU0ZyLVlqR1JkZk5IcVdCa3hsU01aTDc3MFI5bUlBVG5kR2tI
N3o1eC1yOUt3QlpGQzRGQ0cyaGdfekUiLAorICAgIHFpOiAiWUNYX3BMd2JNQkExVGhWSDBXY3dt
bnl0cU5jck1DRXdUbTdCeUEyZVU2bldiUXJVTHZmN205X2t6ZkxVY2pzbnBBVmxCUUc1Sk1YTXkw
U3E0cHR3Ynl3c2E1LUc4S0FPT09SMkwzdjRoQy1FeXM5ZnRnRk1fM2kwbzQwZWVRSDRiM2hhUGJu
dHJJZU1nOEl6bE91VllLZjktMlF1S0RvV2VSZGQ3TnNkeFRrIgorfTsKK3ZhciB3cmFwQWxnb3Jp
dGhtID0ge25hbWU6ICJSU0EtT0FFUCIsIGhhc2g6ICJzaGEtMSJ9OwordmFyIGV4dHJhY3RhYmxl
ID0gdHJ1ZTsKK3ZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOworCitkZWJ1ZygiSW1wb3J0aW5n
IFJTQSBrZXlzLi4uIik7CitjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1Vp
bnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHVibGljS2V5SlNPTikpLCBudWxsLCBleHRyYWN0YWJs
ZSwgWyJ3cmFwS2V5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgcHVibGljS2V5ID0g
cmVzdWx0OworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlU
b1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHJpdmF0ZUtleUpTT04pKSwgbnVsbCwgZXh0cmFj
dGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0IiwgIndyYXBLZXkiXSk7Cit9KS50aGVuKGZ1bmN0
aW9uKHJlc3VsdCkgeworICAgIHByaXZhdGVLZXkgPSByZXN1bHQ7CisKKyAgICBkZWJ1ZygiSW1w
b3J0aW5nIGFuIEFFUyBrZXkuLi4iKTsKKyAgICBhZXNLZXlEYXRhID0gaGV4U3RyaW5nVG9VaW50
OEFycmF5KCI2MDNkZWIxMDE1Y2E3MWJlMmI3M2FlZjA4NTdkNzc4MTFmMzUyYzA3M2I2MTA4ZDcy
ZDk4MTBhMzA5MTRkZmY0Iik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJy
YXciLCBhZXNLZXlEYXRhLCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVj
cnlwdCIsICJ3cmFwS2V5IiwgInVud3JhcEtleSJdKQorfSkudGhlbihmdW5jdGlvbihyZXN1bHQp
IHsKKyAgICBhZXNLZXkgPSByZXN1bHQ7CisKKyAgICBkZWJ1ZygiV3JhcHBpbmcgaXQuLi4iKTsK
KyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS53cmFwS2V5KCJyYXciLCBhZXNLZXksIHB1YmxpY0tl
eSwgd3JhcEFsZ29yaXRobSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHdyYXBw
ZWRLZXkgPSByZXN1bHQ7CisKKyAgICBkZWJ1ZygiVW53cmFwcGluZyBpdC4uLiIpOworICAgIC8v
IHByaXZhdGVLZXkgbGFja3MgdW53cmFwS2V5IHVzYWdlLgorICAgIHNob3VsZFRocm93KCdjcnlw
dG8uc3VidGxlLnVud3JhcEtleSgicmF3Iiwgd3JhcHBlZEtleSwgcHJpdmF0ZUtleSwgd3JhcEFs
Z29yaXRobSwgImFlcy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSkn
KTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS93cmFwS2V5
LWNoZWNrLXVzYWdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvd3JhcEtleS1jaGVjay11c2FnZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGY0NzRiMWJh
OTM2ODk4OWM0YWNjMzUwMzgxOWFhNGYxYmYxMjEwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvd3JhcEtleS1jaGVjay11c2FnZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IEtleSB1c2FnZXMg
ZG8gbm90IGluY2x1ZGUgJ3dyYXBLZXknCitWZXJpZnkgdGhhdCB1c2FnZSBpcyByZXNwZWN0ZWQg
aW4gd3JhcEtleSBvcGVyYXRpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitJ
bXBvcnRpbmcgYW4gUlNBIGtleS4uLgorSW1wb3J0aW5nIGFuIEFFUyBrZXkuLi4KK1dyYXBwaW5n
IGl0Li4uCitQQVNTIGNyeXB0by5zdWJ0bGUud3JhcEtleSgicmF3IiwgYWVzS2V5LCBwdWJsaWNL
ZXksIHdyYXBBbGdvcml0aG0pIHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvciAoRE9N
IEV4Y2VwdGlvbiA5KTogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3dyYXBLZXktY2hlY2stdXNhZ2UuaHRtbCBi
L0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvd3JhcEtleS1jaGVjay11c2FnZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA3ZTZhMWY5MGNmNzVmNGUzMjY1NTU5YjQ3YTk5NjllZjQ4MmYxN2YKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3dyYXBLZXkt
Y2hlY2stdXNhZ2UuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCB1c2FnZSBpcyBy
ZXNwZWN0ZWQgaW4gd3JhcEtleSBvcGVyYXRpb24uIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVl
OworCit2YXIgcHVibGljS2V5SlNPTiA9IHsKKyAgICBrdHk6ICJSU0EiLAorICAgIGFsZzogIlJT
QS1PQUVQIiwKKyAgICBuOiAicmNDVUN2N09jMUhWYW0xREloQ3pxa25UaFdhd09wOFFMazhaaXky
cDEwQnlqUUZDYWpvRml5dUFXbC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6SXpjLU1iTFNISUdnV1FH
TzIxbEdpSW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVNc0RoRDZz
MmdWOW13SGtydGtDeHRNV2RCaS03N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5ODli
RnljOHRPT0VJYjB4VVNmUFN6M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5M0Jp
dzY0cXVuM2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3MktVcDAybUpEWmlp
eWlnbHhNTF9pMy1fQ2VlY0N3IiwKKyAgICBlOiAiQVFBQiIKK307CisKK3ZhciB3cmFwQWxnb3Jp
dGhtID0ge25hbWU6ICJSU0EtT0FFUCIsIGhhc2g6ICJzaGEtMSJ9OwordmFyIGV4dHJhY3RhYmxl
ID0gdHJ1ZTsKK3ZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOworCitkZWJ1ZygiSW1wb3J0aW5n
IGFuIFJTQSBrZXkuLi4iKTsKK2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRv
VWludDhBcnJheShKU09OLnN0cmluZ2lmeShwdWJsaWNLZXlKU09OKSksIG51bGwsIGV4dHJhY3Rh
YmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ1bndyYXBLZXkiXSkudGhlbihmdW5jdGlvbihy
ZXN1bHQpIHsKKyAgICBwdWJsaWNLZXkgPSByZXN1bHQ7CisKKyAgICBkZWJ1ZygiSW1wb3J0aW5n
IGFuIEFFUyBrZXkuLi4iKTsKKyAgICBhZXNLZXlEYXRhID0gaGV4U3RyaW5nVG9VaW50OEFycmF5
KCI2MDNkZWIxMDE1Y2E3MWJlMmI3M2FlZjA4NTdkNzc4MTFmMzUyYzA3M2I2MTA4ZDcyZDk4MTBh
MzA5MTRkZmY0Iik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBh
ZXNLZXlEYXRhLCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCIs
ICJ3cmFwS2V5IiwgInVud3JhcEtleSJdKQorfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAg
ICBhZXNLZXkgPSByZXN1bHQ7CisKKyAgICBkZWJ1ZygiV3JhcHBpbmcgaXQuLi4iKTsKKyAgICAv
LyBwdWJsaWNLZXkgbGFja3Mgd3JhcEtleSB1c2FnZS4KKyAgICBzaG91bGRUaHJvdygnY3J5cHRv
LnN1YnRsZS53cmFwS2V5KCJyYXciLCBhZXNLZXksIHB1YmxpY0tleSwgd3JhcEFsZ29yaXRobSkn
KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjNhMTQw
NzBmOTY1YTAwNzlhNTI4ZjVmNDU3Njg4MzljYWU5M2FkMS4uYTY2YTViYTc4OTlhMDNjNDgyZmE4
MjNlMTA5MTE2ZmI3YmM2OTgxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZs
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTM3MSw3ICszNzEsNyBAQCBzdG9yYWdlL2luZGV4ZWRkYi91bnByZWZpeC13
b3JrZXJzLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdv
cmtlci1pbmRleGVkZGItYWxsb3dlZC5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL3NlY3VyaXR5
L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLmh0bWwgWyBTa2lwIF0KIAotd2Via2l0Lm9y
Zy9iLzg3NjYxIGNyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi5odG1sIFsgU2tpcCBdCit3ZWJr
aXQub3JnL2IvODc2NjEgY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLmh0bWwgWyBT
a2lwIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLW9kZC1uYW1lcy5odG1sIFsgU2tpcCBd
CiAKICMgRUZMIHBvcnQgaGFzIG5vdCBzdXBwb3J0ZWQgc2VsZWN0aW9uIGdhcCBwYWludGluZyBz
aW5jZSByMjAwNDEyCkBAIC0xODE0LDE4ICsxODE0LDE4IEBAIHdlYmtpdC5vcmcvYi8xMTk3ODIg
ZmFzdC9mb3Jtcy9zZWFyY2gtc3R5bGVkLmh0bWwgWyBGYWlsdXJlIF0KIAogIyBjcnlwdG8uc3Vi
dGxlIGlzIG5vdCB5ZXQgZW5hYmxlZCwgYnV0IGRpZ2VzdCBhbGdvcml0aG1zIGFyZSBhbHJlYWR5
IGltcGxlbWVudGVkCiAjIGFuZCB0aGVpciB0ZXN0cyBhcmUgd2hpdGVsaXN0ZWQKLXdlYmtpdC5v
cmcvYi8xMzMxMjIgY3J5cHRvL3N1YnRsZSBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzEzMzMxOSBj
cnlwdG8vc3VidGxlL3NoYS0xLmh0bWwgWyBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMzMzMTkgY3J5
cHRvL3N1YnRsZS9zaGEtMjI0Lmh0bWwgWyBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMzMzMTkgY3J5
cHRvL3N1YnRsZS9zaGEtMjU2Lmh0bWwgWyBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMzMzMTkgY3J5
cHRvL3N1YnRsZS9zaGEtMzg0Lmh0bWwgWyBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMzMzMTkgY3J5
cHRvL3N1YnRsZS9zaGEtNTEyLmh0bWwgWyBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMzMzMjAgY3J5
cHRvL3N1YnRsZS9obWFjLWNoZWNrLWFsZ29yaXRobS5odG1sIFsgUGFzcyBdCi13ZWJraXQub3Jn
L2IvMTMzMzIwIGNyeXB0by9zdWJ0bGUvaG1hYy1leHBvcnQta2V5Lmh0bWwgWyBQYXNzIF0KLXdl
YmtpdC5vcmcvYi8xMzMzMjAgY3J5cHRvL3N1YnRsZS9obWFjLWdlbmVyYXRlLWtleS5odG1sIFsg
UGFzcyBdCi13ZWJraXQub3JnL2IvMTMzMzIwIGNyeXB0by9zdWJ0bGUvaG1hYy1pbXBvcnQtandr
Lmh0bWwgWyBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMzMzMjAgY3J5cHRvL3N1YnRsZS9obWFjLXNp
Z24tdmVyaWZ5LWVtcHR5LWtleS5odG1sIFsgUGFzcyBdCi13ZWJraXQub3JnL2IvMTMzMzIwIGNy
eXB0by9zdWJ0bGUvaG1hYy1zaWduLXZlcmlmeS5odG1sIFsgUGFzcyBdCit3ZWJraXQub3JnL2Iv
MTMzMTIyIGNyeXB0by93ZWJraXRTdWJ0bGUgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xMzMzMTkg
Y3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMS5odG1sIFsgUGFzcyBdCit3ZWJraXQub3JnL2IvMTMz
MzE5IGNyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTIyNC5odG1sIFsgUGFzcyBdCit3ZWJraXQub3Jn
L2IvMTMzMzE5IGNyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTI1Ni5odG1sIFsgUGFzcyBdCit3ZWJr
aXQub3JnL2IvMTMzMzE5IGNyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTM4NC5odG1sIFsgUGFzcyBd
Cit3ZWJraXQub3JnL2IvMTMzMzE5IGNyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTUxMi5odG1sIFsg
UGFzcyBdCit3ZWJraXQub3JnL2IvMTMzMzIwIGNyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1jaGVj
ay1hbGdvcml0aG0uaHRtbCBbIFBhc3MgXQord2Via2l0Lm9yZy9iLzEzMzMyMCBjcnlwdG8vd2Vi
a2l0U3VidGxlL2htYWMtZXhwb3J0LWtleS5odG1sIFsgUGFzcyBdCit3ZWJraXQub3JnL2IvMTMz
MzIwIGNyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1nZW5lcmF0ZS1rZXkuaHRtbCBbIFBhc3MgXQor
d2Via2l0Lm9yZy9iLzEzMzMyMCBjcnlwdG8vd2Via2l0U3VidGxlL2htYWMtaW1wb3J0LWp3ay5o
dG1sIFsgUGFzcyBdCit3ZWJraXQub3JnL2IvMTMzMzIwIGNyeXB0by93ZWJraXRTdWJ0bGUvaG1h
Yy1zaWduLXZlcmlmeS1lbXB0eS1rZXkuaHRtbCBbIFBhc3MgXQord2Via2l0Lm9yZy9iLzEzMzMy
MCBjcnlwdG8vd2Via2l0U3VidGxlL2htYWMtc2lnbi12ZXJpZnkuaHRtbCBbIFBhc3MgXQogCiAj
IE1pc3NpbmcgRUZMJ3MgYWNjZXNzaWJpbGl0eSBmdW5jdGlvbnMKIHdlYmtpdC5vcmcvYi8xMTE5
ODQgYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi11cGRhdGVzLWFsbGRlc2NlbmRhbnRzLmh0bWwg
WyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggZjk5MDg3ZDQ2ZjYxYjBkMzE3MzE2NzZlNDE0MmU4MzBjY2JmMGM0MC4uNDAzYTNkZTUzODhh
NzdlNDAzNDZkNzNmMzA2MTIwZTc3YjNiMTYyNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQwNSwxOCArNDA1LDE4IEBAIEJ1ZyhHVEspIGVkaXRpbmcv
c2VjdXJlLWlucHV0IFsgRmFpbHVyZSBdCiAKICMgY3J5cHRvLnN1YnRsZSBpcyBub3QgeWV0IGVu
YWJsZWQsIGJ1dCBkaWdlc3QgYWxnb3JpdGhtcyBhcmUgYWxyZWFkeSBpbXBsZW1lbnRlZAogIyBh
bmQgdGhlaXIgdGVzdHMgYXJlIHdoaXRlbGlzdGVkCi13ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0
by9zdWJ0bGUgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xMzMzMTkgY3J5cHRvL3N1YnRsZS9zaGEt
MS5odG1sIFsgUGFzcyBdCi13ZWJraXQub3JnL2IvMTMzMzE5IGNyeXB0by9zdWJ0bGUvc2hhLTIy
NC5odG1sIFsgUGFzcyBdCi13ZWJraXQub3JnL2IvMTMzMzE5IGNyeXB0by9zdWJ0bGUvc2hhLTI1
Ni5odG1sIFsgUGFzcyBdCi13ZWJraXQub3JnL2IvMTMzMzE5IGNyeXB0by9zdWJ0bGUvc2hhLTM4
NC5odG1sIFsgUGFzcyBdCi13ZWJraXQub3JnL2IvMTMzMzE5IGNyeXB0by9zdWJ0bGUvc2hhLTUx
Mi5odG1sIFsgUGFzcyBdCi13ZWJraXQub3JnL2IvMTMzMzIwIGNyeXB0by9zdWJ0bGUvaG1hYy1j
aGVjay1hbGdvcml0aG0uaHRtbCBbIFBhc3MgXQotd2Via2l0Lm9yZy9iLzEzMzMyMCBjcnlwdG8v
c3VidGxlL2htYWMtZXhwb3J0LWtleS5odG1sIFsgUGFzcyBdCi13ZWJraXQub3JnL2IvMTMzMzIw
IGNyeXB0by9zdWJ0bGUvaG1hYy1nZW5lcmF0ZS1rZXkuaHRtbCBbIFBhc3MgXQotd2Via2l0Lm9y
Zy9iLzEzMzMyMCBjcnlwdG8vc3VidGxlL2htYWMtaW1wb3J0LWp3ay5odG1sIFsgUGFzcyBdCi13
ZWJraXQub3JnL2IvMTMzMzIwIGNyeXB0by9zdWJ0bGUvaG1hYy1zaWduLXZlcmlmeS1lbXB0eS1r
ZXkuaHRtbCBbIFBhc3MgXQotd2Via2l0Lm9yZy9iLzEzMzMyMCBjcnlwdG8vc3VidGxlL2htYWMt
c2lnbi12ZXJpZnkuaHRtbCBbIFBhc3MgXQord2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd2Vi
a2l0U3VidGxlIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTMzMzE5IGNyeXB0by93ZWJraXRTdWJ0
bGUvc2hhLTEuaHRtbCBbIFBhc3MgXQord2Via2l0Lm9yZy9iLzEzMzMxOSBjcnlwdG8vd2Via2l0
U3VidGxlL3NoYS0yMjQuaHRtbCBbIFBhc3MgXQord2Via2l0Lm9yZy9iLzEzMzMxOSBjcnlwdG8v
d2Via2l0U3VidGxlL3NoYS0yNTYuaHRtbCBbIFBhc3MgXQord2Via2l0Lm9yZy9iLzEzMzMxOSBj
cnlwdG8vd2Via2l0U3VidGxlL3NoYS0zODQuaHRtbCBbIFBhc3MgXQord2Via2l0Lm9yZy9iLzEz
MzMxOSBjcnlwdG8vd2Via2l0U3VidGxlL3NoYS01MTIuaHRtbCBbIFBhc3MgXQord2Via2l0Lm9y
Zy9iLzEzMzMyMCBjcnlwdG8vd2Via2l0U3VidGxlL2htYWMtY2hlY2stYWxnb3JpdGhtLmh0bWwg
WyBQYXNzIF0KK3dlYmtpdC5vcmcvYi8xMzMzMjAgY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWV4
cG9ydC1rZXkuaHRtbCBbIFBhc3MgXQord2Via2l0Lm9yZy9iLzEzMzMyMCBjcnlwdG8vd2Via2l0
U3VidGxlL2htYWMtZ2VuZXJhdGUta2V5Lmh0bWwgWyBQYXNzIF0KK3dlYmtpdC5vcmcvYi8xMzMz
MjAgY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWltcG9ydC1qd2suaHRtbCBbIFBhc3MgXQord2Vi
a2l0Lm9yZy9iLzEzMzMyMCBjcnlwdG8vd2Via2l0U3VidGxlL2htYWMtc2lnbi12ZXJpZnktZW1w
dHkta2V5Lmh0bWwgWyBQYXNzIF0KK3dlYmtpdC5vcmcvYi8xMzMzMjAgY3J5cHRvL3dlYmtpdFN1
YnRsZS9obWFjLXNpZ24tdmVyaWZ5Lmh0bWwgWyBQYXNzIF0KIAogIyBRdWlja1RpbWUgcGx1Zy1p
biBub3QgcmVsZXZhbnQgdG8gdGhpcyBwb3J0CiBCdWcoR1RLKSBwbHVnaW5zL3F1aWNrdGltZS1w
bHVnaW4tcmVwbGFjZW1lbnQuaHRtbCBbIFNraXAgXQpAQCAtMjI0Miw3ICsyMjQyLDcgQEAgd2Vi
a2l0Lm9yZy9iLzEwNzgyNSBtZWRpYS9hdWRpby1kZWxldGUtd2hpbGUtc3RlcC1idXR0b24tY2xp
Y2tlZC5odG1sIFsgRmFpbHVyZQogd2Via2l0Lm9yZy9iLzEwNzgyNSBtZWRpYS9ub2Rlc0Zyb21S
ZWN0LXNoYWRvd0NvbnRlbnQuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzEwNzgyNSBt
ZWRpYS92aWRlby1jb250cm9scy1mdWxsc2NyZWVuLXZvbHVtZS5odG1sIFsgRmFpbHVyZSBdCiAK
LXdlYmtpdC5vcmcvYi8xMDcxOTQgY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLmh0bWwgWyBT
a2lwIF0KK3dlYmtpdC5vcmcvYi8xMDcxOTQgY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhl
ZGRiLmh0bWwgWyBTa2lwIF0KIAogIyBUZXN0IG1hcmtlZCBpbiBUZXN0RXhwZWN0YXRpb25zIGFz
IGZhaWxpbmcgb24gbm9uLXJldGluYSBkaXNwbGF5cywgcGFzc2luZyBvbiBHVEsgcG9ydAogd2Vi
a2l0Lm9yZy9iLzEyOTExMyBmYXN0L211bHRpY29sL25ld211bHRpY29sL2NsaXBwaW5nLmh0bWwg
WyBQYXNzIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3It
d2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9y
LXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGE0NmZhZmI0MzU3NTRhNjg4N2JlYjkxN2E0Njdi
ODIwOTAxMzEwMjUuLjFmOTNkNGJmOGY3NDQ5ZjYyYjQ4NDE2NzI2YTU3ODZhNzEwNTJkYmMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Itd2sxL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci13azEvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtMTAwNSw4ICsxMDA1LDEwIEBAIGFuaW1hdGlvbnMvc3VzcGVuZC1y
ZXN1bWUtYW5pbWF0aW9uLWV2ZW50cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5k
ZXhlZGRiCiBpbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcKIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCCi1jcnlwdG8vc3VidGxlL3JzYS1pbmRl
eGVkZGItbm9uLWV4cG9ydGFibGUuaHRtbAotY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLmh0
bWwKK2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS1wcml2
YXRlLmh0bWwKK2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJs
ZS5odG1sCitjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGItcHJpdmF0ZS5odG1sCitj
cnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGIuaHRtbAogZmFzdC9oaXN0b3J5L3BhZ2Ut
Y2FjaGUtaW5kZXhlZC1jbG9zZWQtZGIuaHRtbAogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtaW5k
ZXhlZC1vcGVuZWQtZGIuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9uby1pbmRleGVkZGItZnJv
bS1zYW5kYm94Lmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggYTk5NTQ0MzQzYzg5OTcyYzNjYTU1MzExZmU4ZDhjMzIxYzEwZGJl
YS4uZmJlODIzN2JiM2Y2ZmRjYmM5OTZiNzVkNDFjMTgyYzYwYTgxMzljNSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI1OSw3ICsyNTksMTAgQEAgaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLmh0bWwgWyBTa2lwIF0KIGh0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGItYWxsb3dlZC5o
dG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5k
ZXhlZGRiLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvc2VjdXJpdHkvbm8taW5kZXhlZGRiLWZy
b20tc2FuZGJveC5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGIuaHRt
bCBbIFNraXAgXQorY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRh
YmxlLXByaXZhdGUuaHRtbCBbIFNraXAgXQorY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhl
ZGRiLW5vbi1leHBvcnRhYmxlLmh0bWwgWyBTa2lwIF0KK2NyeXB0by93ZWJraXRTdWJ0bGUvcnNh
LWluZGV4ZWRkYi1wcml2YXRlLmh0bWwgWyBTa2lwIF0KK2NyeXB0by93ZWJraXRTdWJ0bGUvcnNh
LWluZGV4ZWRkYi5odG1sIFsgU2tpcCBdCiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1pbmRleGVk
LWNsb3NlZC1kYi5odG1sIFsgU2tpcCBdCiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1pbmRleGVk
LW9wZW5lZC1kYi5odG1sIFsgU2tpcCBdCiAKQEAgLTU5Myw3ICs1OTYsNyBAQCB3ZWJraXQub3Jn
L2IvOTg2OTYgcGx1Z2lucy9zbmFwc2hvdHRpbmcgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xMTY1
NTkgc3RvcmFnZS93ZWJzcWwvIFsgU2tpcCBdCiAKICMgVE9ETyBjcnlwdG8uc3VidGxlIGlzIG5v
dCB5ZXQgZW5hYmxlZAotY3J5cHRvL3N1YnRsZS8gWyBTa2lwIF0KK2NyeXB0by93ZWJraXRTdWJ0
bGUvIFsgU2tpcCBdCiAKICMgVE9ETyBNaXNzaW5nIFdlYlNwZWVjaCBpbXBsZW1lbnRhdGlvbgog
d2Via2l0Lm9yZy9iLzEzNjIyNCBmYXN0L3NwZWVjaHN5bnRoZXNpcyBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284298</attachid>
            <date>2016-07-21 19:09:48 -0700</date>
            <delta_ts>2016-07-22 11:48:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160067-20160721190848.patch</filename>
            <type>text/plain</type>
            <size>583211</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDEzMjVmMWU5NTIwZDI4
ZjQ4MGVkMjE5MWMzZWIyZDU4ODdmODZiMi4uYjRkZjc5MzQ2MzAzZTk0OTFjZjhkZmM0NmFiZmZk
YTA0OGQzNTk1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMCBAQAorMjAxNi0wNy0yMSAgSmll
d2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBTdWJ0bGVD
cnlwdG8gdG8gV2ViS2l0U3VidGxlQ3J5cHRvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjAwNjcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI3NDgz
NjE3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3RzOiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtMTkyLWVuY3J5cHQtZGVjcnlwdC5odG1s
CisgICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtMjU2LWVuY3J5cHQt
ZGVjcnlwdC5odG1sCisgICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMt
ZW5jcnlwdC1kZWNyeXB0LXdpdGgtcGFkZGluZy5odG1sCisgICAgICAgICAgICAgICBjcnlwdG8v
d2Via2l0U3VidGxlL2Flcy1jYmMtZW5jcnlwdC1kZWNyeXB0Lmh0bWwKKyAgICAgICAgICAgICAg
IGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1nZW5lcmF0ZS1rZXkuaHRtbAorICAgICAgICAg
ICAgICAgY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWltcG9ydC1qd2suaHRtbAorICAgICAg
ICAgICAgICAgY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWludmFsaWQtbGVuZ3RoLmh0bWwK
KyAgICAgICAgICAgICAgIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy11bndyYXAtZmFpbHVy
ZS5odG1sCisgICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtdW53cmFw
LXJzYS5odG1sCisgICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtd3Jh
cC1yc2Etbm9uLWV4dHJhY3RhYmxlLmh0bWwKKyAgICAgICAgICAgICAgIGNyeXB0by93ZWJraXRT
dWJ0bGUvYWVzLWNiYy13cmFwLXJzYS5odG1sCisgICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0
U3VidGxlL2Flcy1jYmMtd3Jvbmcta2V5LWNsYXNzLmh0bWwKKyAgICAgICAgICAgICAgIGNyeXB0
by93ZWJraXRTdWJ0bGUvYWVzLWV4cG9ydC1rZXkuaHRtbAorICAgICAgICAgICAgICAgY3J5cHRv
L3dlYmtpdFN1YnRsZS9hZXMta3cta2V5LW1hbmlwdWxhdGlvbi5odG1sCisgICAgICAgICAgICAg
ICBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1rdy13cmFwLXVud3JhcC1hZXMuaHRtbAorICAgICAg
ICAgICAgICAgY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtcG9zdE1lc3NhZ2UuaHRtbAorICAgICAg
ICAgICAgICAgY3J5cHRvL3dlYmtpdFN1YnRsZS9hcmd1bWVudC1jb252ZXJzaW9uLmh0bWwKKyAg
ICAgICAgICAgICAgIGNyeXB0by93ZWJraXRTdWJ0bGUvYXJyYXktYnVmZmVyLXZpZXctb2Zmc2V0
Lmh0bWwKKyAgICAgICAgICAgICAgIGNyeXB0by93ZWJraXRTdWJ0bGUvZ2MtMi5odG1sCisgICAg
ICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL2djLTMuaHRtbAorICAgICAgICAgICAgICAg
Y3J5cHRvL3dlYmtpdFN1YnRsZS9nYy5odG1sCisgICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0
U3VidGxlL2htYWMtY2hlY2stYWxnb3JpdGhtLmh0bWwKKyAgICAgICAgICAgICAgIGNyeXB0by93
ZWJraXRTdWJ0bGUvaG1hYy1leHBvcnQta2V5Lmh0bWwKKyAgICAgICAgICAgICAgIGNyeXB0by93
ZWJraXRTdWJ0bGUvaG1hYy1nZW5lcmF0ZS1rZXkuaHRtbAorICAgICAgICAgICAgICAgY3J5cHRv
L3dlYmtpdFN1YnRsZS9obWFjLWltcG9ydC1qd2suaHRtbAorICAgICAgICAgICAgICAgY3J5cHRv
L3dlYmtpdFN1YnRsZS9obWFjLXBvc3RNZXNzYWdlLmh0bWwKKyAgICAgICAgICAgICAgIGNyeXB0
by93ZWJraXRTdWJ0bGUvaG1hYy1zaWduLXZlcmlmeS1lbXB0eS1rZXkuaHRtbAorICAgICAgICAg
ICAgICAgY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXNpZ24tdmVyaWZ5Lmh0bWwKKyAgICAgICAg
ICAgICAgIGNyeXB0by93ZWJraXRTdWJ0bGUvaW1wb3J0LWp3ay5odG1sCisgICAgICAgICAgICAg
ICBjcnlwdG8vd2Via2l0U3VidGxlL2p3ay1leHBvcnQtdXNlLXZhbHVlcy5odG1sCisgICAgICAg
ICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL2p3ay1pbXBvcnQtdXNlLXZhbHVlcy5odG1sCisg
ICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL3Bvc3RNZXNzYWdlLXdvcmtlci5odG1s
CisgICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQtZ2VuZXJhdGVk
LWtleXMuaHRtbAorICAgICAgICAgICAgICAgY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtZXhwb3J0
LWtleS5odG1sCisgICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQt
cHJpdmF0ZS1rZXkuaHRtbAorICAgICAgICAgICAgICAgY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Et
aW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLXByaXZhdGUuaHRtbAorICAgICAgICAgICAgICAgY3J5
cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLmh0bWwKKyAgICAg
ICAgICAgICAgIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1wcml2YXRlLmh0bWwK
KyAgICAgICAgICAgICAgIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi5odG1sCisg
ICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLWdlbmVyYXRlLW5vbi1l
eHRyYWN0YWJsZS1rZXkuaHRtbAorICAgICAgICAgICAgICAgY3J5cHRvL3dlYmtpdFN1YnRsZS9y
c2Etb2FlcC1rZXktbWFuaXB1bGF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGNyeXB0by93ZWJr
aXRTdWJ0bGUvcnNhLW9hZXAtcGxhaW50ZXh0LWxlbmd0aC5odG1sCisgICAgICAgICAgICAgICBj
cnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLXdyYXAtdW53cmFwLWFlcy5odG1sCisgICAgICAg
ICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1wb3N0TWVzc2FnZS5odG1sCisgICAgICAg
ICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtZGVjcnlwdC5odG1s
CisgICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtd3Jh
cC11bndyYXAtYWVzLmh0bWwKKyAgICAgICAgICAgICAgIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNh
c3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5LXdpdGgtbGVhZGluZy16ZXJvZXMtaW4tZXhwb25l
bnQuaHRtbAorICAgICAgICAgICAgICAgY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEt
djFfNS1nZW5lcmF0ZS1rZXkuaHRtbAorICAgICAgICAgICAgICAgY3J5cHRvL3dlYmtpdFN1YnRs
ZS9yc2Fzc2EtcGtjczEtdjFfNS1pbXBvcnQtandrLXNtYWxsLWtleS5odG1sCisgICAgICAgICAg
ICAgICBjcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2suaHRt
bAorICAgICAgICAgICAgICAgY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1z
aWduLXZlcmlmeS5odG1sCisgICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL3NoYS0x
Lmh0bWwKKyAgICAgICAgICAgICAgIGNyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTIyNC5odG1sCisg
ICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxlL3NoYS0yNTYuaHRtbAorICAgICAgICAg
ICAgICAgY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMzg0Lmh0bWwKKyAgICAgICAgICAgICAgIGNy
eXB0by93ZWJraXRTdWJ0bGUvc2hhLTUxMi5odG1sCisgICAgICAgICAgICAgICBjcnlwdG8vd2Vi
a2l0U3VidGxlL3VuaW1wbGVtZW50ZWQtdW53cmFwLWNyYXNoLmh0bWwKKyAgICAgICAgICAgICAg
IGNyeXB0by93ZWJraXRTdWJ0bGUvdW53cmFwS2V5LWNoZWNrLXVzYWdlLmh0bWwKKyAgICAgICAg
ICAgICAgIGNyeXB0by93ZWJraXRTdWJ0bGUvd3JhcEtleS1jaGVjay11c2FnZS5odG1sCisKKyAg
ICAgICAgUmVuYW1lIENsYXNzIFN1YnRsZUNyeXB0byB0byBXZWJLaXRTdWJ0bGVDcnlwdG8sIGFu
ZCBDcnlwdG8uc3VidGxlIHRvIENyeXB0by53ZWJraXRTdWJ0bGUgaW4gb3JkZXIKKyAgICAgICAg
dG8gbGV0IHRoZSBuZXcgaW1wbGVtZW50YXRpb24gdG8gcmV1c2UgdGhlIG5hbWUgU3VidGxlQ3J5
cHRvLiBUaGlzIHJlbmFtaW5nIHNob3VsZCBtYXRjaCB3aGF0IG91cgorICAgICAgICBjdXJyZW50
IEpTQmluZGluZ3MgdXNlLCBhbmQgdGhlcmVmb3JlIHNob3VsZCBub3QgaW50cm9kdWNlIGFueSBj
aGFuZ2Ugb2YgYmVoYXZvaXIuIAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6
CisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViS2l0U3VidGxl
Q3J5cHRvQ3VzdG9tLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUFsZ29y
aXRobUZyb21KU1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyeXB0b0tleUZvcm1hdEZyb21K
U1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyeXB0b0tleVVzYWdlc0Zyb21KU1ZhbHVlKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTV2ViS2l0U3VidGxlQ3J5cHRvOjplbmNyeXB0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTV2ViS2l0U3VidGxlQ3J5cHRvOjpkZWNyeXB0KToKKyAgICAgICAgKFdl
YkNvcmU6OkpTV2ViS2l0U3VidGxlQ3J5cHRvOjpzaWduKToKKyAgICAgICAgKFdlYkNvcmU6OkpT
V2ViS2l0U3VidGxlQ3J5cHRvOjp2ZXJpZnkpOgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJLaXRT
dWJ0bGVDcnlwdG86OmRpZ2VzdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1dlYktpdFN1YnRsZUNy
eXB0bzo6Z2VuZXJhdGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6aW1wb3J0S2V5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTV2ViS2l0U3VidGxlQ3J5cHRvOjppbXBvcnRLZXkpOgorICAgICAgICAo
V2ViQ29yZTo6ZXhwb3J0S2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkpTV2ViS2l0U3VidGxlQ3J5
cHRvOjpleHBvcnRLZXkpOgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJLaXRTdWJ0bGVDcnlwdG86
OndyYXBLZXkpOgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJLaXRTdWJ0bGVDcnlwdG86OnVud3Jh
cEtleSk6CisgICAgICAgICogY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5jcHA6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNwcC4KKyAgICAgICAgKFdl
YkNvcmU6OldlYktpdFN1YnRsZUNyeXB0bzo6V2ViS2l0U3VidGxlQ3J5cHRvKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYktpdFN1YnRsZUNyeXB0bzo6ZG9jdW1lbnQpOgorICAgICAgICAqIGNyeXB0
by9XZWJLaXRTdWJ0bGVDcnlwdG8uaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2NyeXB0
by9TdWJ0bGVDcnlwdG8uaC4KKyAgICAgICAgKFdlYkNvcmU6OldlYktpdFN1YnRsZUNyeXB0bzo6
Y3JlYXRlKToKKyAgICAgICAgKiBjcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmlkbDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uaWRsLgorICAgICAgICAq
IHBhZ2UvQ3J5cHRvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0bzo6d2Via2l0U3VidGxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0bzo6c3VidGxlKTogRGVsZXRlZC4KKyAgICAgICAg
KiBwYWdlL0NyeXB0by5oOgorICAgICAgICAqIHBhZ2UvQ3J5cHRvLmlkbDoKKwogMjAxNi0wNy0y
MCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHNv
bWUgIm1vZGVybkZvbyJzIGZyb20gSW5kZXhlZERCIGNvZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDdhNjYxZDYzNzllZTA0YmM5ZGI5OWZmMWI0MDAzOWMzNmI3N2ZkZjMuLjA0ZTc5Yjk1ZjQw
YzcyODUyZTliMDA5NDcwNjA4ZTZiZTBkZWIxOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0z
MTUsNyArMzE1LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKIAogICAgIGNyeXB0
by9DcnlwdG9LZXkuaWRsCiAgICAgY3J5cHRvL0NyeXB0b0tleVBhaXIuaWRsCi0gICAgY3J5cHRv
L1N1YnRsZUNyeXB0by5pZGwKKyAgICBjcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmlkbAogCiAg
ICAgY3NzL0NTU0NoYXJzZXRSdWxlLmlkbAogICAgIGNzcy9DU1NGb250RmFjZUxvYWRFdmVudC5p
ZGwKQEAgLTEyMTEsNyArMTIxMSw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5n
cy9qcy9KU1N0b3JhZ2VDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNTdHlsZVNoZWV0Q3Vz
dG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTU3R5bGVTaGVldExpc3RDdXN0b20uY3BwCi0gICAg
YmluZGluZ3MvanMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNU
ZXh0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcAog
ICAgIGJpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VzdG9tLmNwcApAQCAtMTIyNSw2ICsxMjI0LDcg
QEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q3VzdG9tLmNwcAor
ICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0U3VidGxlQ3J5cHRvQ3VzdG9tLmNwcAogICAgIGJpbmRp
bmdzL2pzL0pTV29ya2VyQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFs
U2NvcGVCYXNlLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20u
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKaW5kZXggZGYyZmQ5OTJhM2U3Y2Q2MDBhNmIw
OTAwNzBhZDlhMDMzMmU4MzkwYy4uOTA2MDlkY2U2ZmZmNDVlNTJmODU3ODFjMDRkMTRiNDMzMTcz
OGRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApAQCAtNDI3LDcgKzQyNyw2IEBACiAj
aW5jbHVkZSAiSlNTcGVlY2hTeW50aGVzaXNFdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNTcGVlY2hT
eW50aGVzaXNVdHRlcmFuY2UuY3BwIgogI2luY2x1ZGUgIkpTU3BlZWNoU3ludGhlc2lzVm9pY2Uu
Y3BwIgotI2luY2x1ZGUgIkpTU3VidGxlQ3J5cHRvLmNwcCIKICNpbmNsdWRlICJKU1NRTEVycm9y
LmNwcCIKICNpbmNsdWRlICJKU1NRTEV4Y2VwdGlvbi5jcHAiCiAjaW5jbHVkZSAiSlNTUUxSZXN1
bHRTZXQuY3BwIgpAQCAtNjQ2LDYgKzY0NSw3IEBACiAjaW5jbHVkZSAiSlNXZWJLaXROYW1lc3Bh
Y2UuY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVu
dC5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRQb2ludC5jcHAiCisjaW5jbHVkZSAiSlNXZWJLaXRT
dWJ0bGVDcnlwdG8uY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCIK
ICNpbmNsdWRlICJKU1dlYlNvY2tldC5jcHAiCiAjaW5jbHVkZSAiSlNXaGVlbEV2ZW50LmNwcCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDlkNDg5ZTI4MTE5ODhhNTFmZGM4N2Jh
ZTYzMmNiYjUwMjA0NDk2YWYuLjcxMzY1YmQ1NGEwNzI3YjMzNGVmMzk2MjEwYjU4ZmQzMGQwNWM3
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMjM1LDcgKzIzNSw3IEBAIE5P
Tl9TVkdfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvYW5pbWF0aW9uL0RvY3VtZW50
VGltZWxpbmUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2NyeXB0by9DcnlwdG9LZXkuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2NyeXB0by9DcnlwdG9LZXlQYWlyLmlkbCBcCi0gICAgJChXZWJDb3JlKS9j
cnlwdG8vU3VidGxlQ3J5cHRvLmlkbCBcCisgICAgJChXZWJDb3JlKS9jcnlwdG8vV2ViS2l0U3Vi
dGxlQ3J5cHRvLmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NTQ2hhcnNldFJ1bGUuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL2Nzcy9DU1NGb250RmFjZUxvYWRFdmVudC5pZGwgXAogICAgICQoV2Vi
Q29yZSkvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpp
bmRleCA1MTQ1MDRlNmVjMjVhYTVlNDNiOTkzOThkNWUzNWNlZWVhNzY2YWE0Li4yZDM2OTg2MGYw
YTM1NzM4NTgyOWQ3YWQ0YmZiMDc5MjU2NDdiYjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFr
ZQpAQCAtNDAzLDcgKzQwMyw3IEBAIGlmIChFTkFCTEVfU1VCVExFX0NSWVBUTykKICAgICAgICAg
Y3J5cHRvL0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcAogICAgICAgICBjcnlwdG8vQ3J5cHRv
S2V5LmNwcAogICAgICAgICBjcnlwdG8vQ3J5cHRvS2V5UGFpci5jcHAKLSAgICAgICAgY3J5cHRv
L1N1YnRsZUNyeXB0by5jcHAKKyAgICAgICAgY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5jcHAK
IAogICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcAog
ICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDY0NWFkZDFjZTM4ODg4YjA0ZDRhMmQ4OWFkYTBhN2M2
ZGUxOTk4NmIuLmFhYmQzMDVlZDFlYmQyYWUxZTExZjFjMDNjOTRjYjMxZDhjYTg0NjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC03OTcsNyArNzk3LDcgQEAgaWYgKEVOQUJMRV9TVUJU
TEVfQ1JZUFRPKQogICAgICAgICBjcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwCiAg
ICAgICAgIGNyeXB0by9DcnlwdG9LZXkuY3BwCiAgICAgICAgIGNyeXB0by9DcnlwdG9LZXlQYWly
LmNwcAotICAgICAgICBjcnlwdG8vU3VidGxlQ3J5cHRvLmNwcAorICAgICAgICBjcnlwdG8vV2Vi
S2l0U3VidGxlQ3J5cHRvLmNwcAogCiAgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobUFFU19DQkMuY3BwCiAgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobUFFU19LVy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNt
YWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggOWY2ZjQ5NmI2Y2M0
ZWY2ZTRiNzRkODRhYzBhYTlkZWE1NWEwMjM3Yi4uMzMxMDI1OGYwMTJmOWRjZmFhNTJjYmJjYjRl
ODEzZjlhNTQ1ZGIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21h
a2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTE5Niw3ICsxOTYs
NyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBjcnlwdG8vQ3J5cHRvQWxnb3Jp
dGhtUmVnaXN0cnkuY3BwCiAgICAgY3J5cHRvL0NyeXB0b0tleS5jcHAKICAgICBjcnlwdG8vQ3J5
cHRvS2V5UGFpci5jcHAKLSAgICBjcnlwdG8vU3VidGxlQ3J5cHRvLmNwcAorICAgIGNyeXB0by9X
ZWJLaXRTdWJ0bGVDcnlwdG8uY3BwCiAKICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1BRVNfQ0JDLmNwcAogICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFF
U19LVy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAwY2U2N2FiNTYzZjJkM2RjMGM5MDYyZjRiZTBkM2U3ODI3NzQ3OTAxLi4y
ZGE1YjRjYzViM2VlYWNhYmFlNTRhZWFkMWY2ZjFiMTM5NDNjYWZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzM4LDYgKzIz
MzgsMTEgQEAKIAkJNTUwQTBCQ0EwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM4MDg1
RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTU1Qjg3RUMxQ0FBRjBBQjAwMzQ5NDI1IC8qIElt
YWdlRGVjb2RlckNHLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU1NUI4N0VBMUNBQUYwQUIwMDM0OTQyNSAvKiBJbWFnZURlY29kZXJDRy5jcHAgKi87
IH07CiAJCTU1NUI4N0VEMUNBQUYwQUIwMDM0OTQyNSAvKiBJbWFnZURlY29kZXJDRy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU1Qjg3RUIxQ0FBRjBB
QjAwMzQ5NDI1IC8qIEltYWdlRGVjb2RlckNHLmggKi87IH07CisJCTU3MDlFOENEMUQ0MTNENDcw
MDMyNDRBQyAvKiBXZWJLaXRTdWJ0bGVDcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwOUU4Q0ExRDQxM0NFMzAwMzI0NEFDIC8qIFdlYktp
dFN1YnRsZUNyeXB0by5jcHAgKi87IH07CisJCTU3MDlFOENFMUQ0MTNENUIwMDMyNDRBQyAvKiBK
U1dlYktpdFN1YnRsZUNyeXB0b0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2NjE4MDc0NjA4MDAxMzI2NzQgLyogSlNXZWJLaXRT
dWJ0bGVDcnlwdG9DdXN0b20uY3BwICovOyB9OworCQk1NzA5RThDRjFENDEzRDlBMDAzMjQ0QUMg
LyogV2ViS2l0U3VidGxlQ3J5cHRvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1NzA5RThDQjFENDEzQ0UzMDAzMjQ0QUMgLyogV2ViS2l0U3VidGxlQ3J5
cHRvLmggKi87IH07CisJCTU3MEE5OURBMUQ0MTc0MDgwMDRFQzYzMCAvKiBKU1dlYktpdFN1YnRs
ZUNyeXB0by5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMUZGOEY2MjE4MDc0NUQ4MDAxMzI2NzQgLyogSlNXZWJLaXRTdWJ0bGVDcnlwdG8uY3BwICov
OyB9OworCQk1NzBBOTlEQjFENDFBMkYzMDA0RUM2MzAgLyogSlNXZWJLaXRTdWJ0bGVDcnlwdG8u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4RjYz
MTgwNzQ1RDgwMDEzMjY3NCAvKiBKU1dlYktpdFN1YnRsZUNyeXB0by5oICovOyB9OwogCQk1NzJB
N0YyMTFDNkU1NzE5MDA5QzYxNDkgLyogU2ltdWxhdGVkQ2xpY2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkE3RjIwMUM2RTU3MTkwMDlDNjE0OSAv
KiBTaW11bGF0ZWRDbGljay5oICovOyB9OwogCQk1NzJBN0YyMzFDNkU1QTY2MDA5QzYxNDkgLyog
U2ltdWxhdGVkQ2xpY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTcyQTdGMjIxQzZFNUE2NjAwOUM2MTQ5IC8qIFNpbXVsYXRlZENsaWNrLmNwcCAq
LzsgfTsKIAkJNTdFRjVFNjAxRDIwQzgzOTAwMTcxRTYwIC8qIFRleHRDb2RlY1JlcGxhY2VtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0VGNUU1
RjFEMjBDODM5MDAxNzFFNjAgLyogVGV4dENvZGVjUmVwbGFjZW1lbnQuaCAqLzsgfTsKQEAgLTY2
MzgsMTEgKzY2NDMsNiBAQAogCQlFMUZFMTM3RTE4NEQyNzAyMDA4OTJGMTMgLyogQ3J5cHRvQWxn
b3JpdGhtQUVTX0tXTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxRkUxMzdDMTg0RDI3MDIwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1BRVNf
S1dNYWMuY3BwICovOyB9OwogCQlFMUZGNTdBMzBGMDEyNTVCMDA4OTFFQkIgLyogVGhyZWFkR2xv
YmFsRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFGRjU3QTIwRjAxMjU1QjAwODkxRUJCIC8qIFRocmVhZEdsb2JhbERhdGEuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMUZGNTdBNjBGMDEyNTZC
MDA4OTFFQkIgLyogVGhyZWFkR2xvYmFsRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGNTdBNTBGMDEyNTZCMDA4OTFFQkIgLyogVGhyZWFk
R2xvYmFsRGF0YS5jcHAgKi87IH07Ci0JCUUxRkY4RjVGMTgwNzQ0MjEwMDEzMjY3NCAvKiBTdWJ0
bGVDcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTFGRjhGNUQxODA3NDQyMTAwMTMyNjc0IC8qIFN1YnRsZUNyeXB0by5jcHAgKi87IH07Ci0J
CUUxRkY4RjYwMTgwNzQ0MjEwMDEzMjY3NCAvKiBTdWJ0bGVDcnlwdG8uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4RjVFMTgwNzQ0MjEwMDEzMjY3
NCAvKiBTdWJ0bGVDcnlwdG8uaCAqLzsgfTsKLQkJRTFGRjhGNjQxODA3NDVEODAwMTMyNjc0IC8q
IEpTU3VidGxlQ3J5cHRvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxRkY4RjYyMTgwNzQ1RDgwMDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0by5jcHAg
Ki87IH07Ci0JCUUxRkY4RjY1MTgwNzQ1RDgwMDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0by5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRjhGNjMxODA3
NDVEODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvLmggKi87IH07Ci0JCUUxRkY4RjY4MTgwNzQ2
MDgwMDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2NjE4MDc0NjA4MDAxMzI2NzQgLyog
SlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwICovOyB9OwogCQlFMUZGOEY2QzE4MERCNUJFMDAxMzI2
NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRjhGNkExODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0
b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcCAqLzsgfTsKIAkJRTFGRjhGNkQxODBEQjVCRTAwMTMyNjc0
IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2QjE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxn
b3JpdGhtUmVnaXN0cnkuaCAqLzsgfTsKIAkJRTM4ODM4OTgxQkFEMTQ1RjAwRDYyRUUzIC8qIEpT
TW9kdWxlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzODgzODk0MUJBRDE0NUYwMEQ2MkVFMyAvKiBKU01vZHVsZUxvYWRlci5jcHAgKi87
IH07CkBAIC0xMDAxNCw2ICsxMDAxNCw5IEBACiAJCTU1NUI4N0VBMUNBQUYwQUIwMDM0OTQyNSAv
KiBJbWFnZURlY29kZXJDRy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBJbWFnZURlY29kZXJDRy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NUI4
N0VCMUNBQUYwQUIwMDM0OTQyNSAvKiBJbWFnZURlY29kZXJDRy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbWFnZURlY29kZXJDRy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1NUQ0MDhGNzFBN0M2MzE4MDBDNzg0NTAgLyogU1ZHSW1hZ2VDbGllbnRzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0ltYWdlQ2xpZW50cy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1NzA5RThDQTFENDEzQ0UzMDAzMjQ0QUMgLyogV2ViS2l0
U3VidGxlQ3J5cHRvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YktpdFN1YnRsZUNyeXB0by5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MDlF
OENCMUQ0MTNDRTMwMDMyNDRBQyAvKiBXZWJLaXRTdWJ0bGVDcnlwdG8uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0U3VidGxlQ3J5cHRvLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTU3MDlFOENDMUQ0MTNDRTMwMDMyNDRBQyAvKiBXZWJLaXRTdWJ0bGVD
cnlwdG8uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdFN1YnRsZUNyeXB0by5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkE3RjIwMUM2RTU3MTkwMDlDNjE0OSAv
KiBTaW11bGF0ZWRDbGljay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaW11
bGF0ZWRDbGljay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJBN0YyMjFDNkU1
QTY2MDA5QzYxNDkgLyogU2ltdWxhdGVkQ2xpY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU2ltdWxhdGVkQ2xpY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1N0VGNUU1RjFEMjBDODM5MDAxNzFFNjAgLyogVGV4dENvZGVjUmVwbGFjZW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENvZGVjUmVwbGFjZW1lbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNDA4LDggKzEzNDExLDggQEAKIAkJ
QjU3Q0I1MkMxODJBM0VFRDAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRCb3guY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5lRWxlbWVudEJveC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1OTVGRjQ2MTgyNENFRTMwMEZGNTFDRCAvKiBSZW5k
ZXJJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJJdGVy
YXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNTlDQTU5QUYxNzBEOEZBQTVC
OEM5QUQgLyogTWF0aE1MU2NyaXB0c0VsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTWF0aE1MU2NyaXB0c0VsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlCNTlDQTg0OUQ0MUU2RjY1RDgxMTk3QUIgLyogTWF0aE1MU2NyaXB0c0Vs
ZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF0aE1MU2NyaXB0c0Vs
ZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjU5Q0E1OUFGMTcwRDhGQUE1
QjhDQUJFIC8qIE1hdGhNTFBhZGRlZEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTWF0aE1MUGFkZGVkRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUI1OUNBODQ5RDQxRTZGNjVEODExOTdBQiAvKiBNYXRoTUxTY3JpcHRzRWxl
bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXRoTUxTY3JpcHRzRWxl
bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNTlDQTg0OUQ0MUU2RjY1RDgx
MTk4QkMgLyogTWF0aE1MUGFkZGVkRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNYXRoTUxQYWRkZWRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUI1OURENjk3MTE5MDI5RTUwMDdFOTY4NCAvKiBKU0RhdGFiYXNlQ2FsbGJhY2suaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNEYXRhYmFzZUNhbGxiYWNrLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1OURENjk4MTE5MDI5RTUwMDdFOTY4NCAvKiBKU0Rh
dGFiYXNlQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNEYXRhYmFzZUNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0
NzgyLDEyICsxNDc4NSw5IEBACiAJCUUxRkUxMzdDMTg0RDI3MDIwMDg5MkYxMyAvKiBDcnlwdG9B
bGdvcml0aG1BRVNfS1dNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ3J5cHRvQWxnb3JpdGhtQUVTX0tXTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTFGRjU3QTIwRjAxMjU1QjAwODkxRUJCIC8qIFRocmVhZEdsb2JhbERhdGEuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGhyZWFkR2xvYmFsRGF0YS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMUZGNTdBNTBGMDEyNTZCMDA4OTFFQkIgLyogVGhyZWFk
R2xvYmFsRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaHJl
YWRHbG9iYWxEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFGRjhGNUMx
ODA3MzY0QjAwMTMyNjc0IC8qIFN1YnRsZUNyeXB0by5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3VidGxlQ3J5cHRvLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFGRjhGNUQxODA3NDQyMTAwMTMyNjc0
IC8qIFN1YnRsZUNyeXB0by5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTdWJ0bGVDcnlwdG8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMUZGOEY1
RTE4MDc0NDIxMDAxMzI2NzQgLyogU3VidGxlQ3J5cHRvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFN1YnRsZUNyeXB0by5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlFMUZGOEY2MjE4MDc0NUQ4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlwdG8uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdWJ0bGVDcnlwdG8uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlFMUZGOEY2MzE4MDc0NUQ4MDAxMzI2NzQgLyogSlNTdWJ0
bGVDcnlwdG8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdWJ0bGVDcnlw
dG8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFGRjhGNjYxODA3NDYwODAwMTMy
Njc0IC8qIEpTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTFGRjhGNjIxODA3NDVEODAwMTMyNjc0IC8qIEpTV2ViS2l0U3VidGxlQ3J5
cHRvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0U3Vi
dGxlQ3J5cHRvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFGRjhGNjMxODA3
NDVEODAwMTMyNjc0IC8qIEpTV2ViS2l0U3VidGxlQ3J5cHRvLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTV2ViS2l0U3VidGxlQ3J5cHRvLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxRkY4RjY2MTgwNzQ2MDgwMDEzMjY3NCAvKiBKU1dlYktpdFN1YnRsZUNy
eXB0b0N1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dl
YktpdFN1YnRsZUNyeXB0b0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUxRkY4RjZBMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1SZWdp
c3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkY4RjZCMTgwREI1QkUw
MDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFMzg4Mzg5NDFCQUQxNDVGMDBENjJFRTMgLyogSlNNb2R1bGVMb2FkZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNb2R1bGVMb2FkZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI3NjQsNyArMjI3NjQsNiBAQAog
CQkJCUJDOThBMjdDMEMwQzk5NTAwMDRCRUJGNyAvKiBKU1N0eWxlU2hlZXRDdXN0b20uY3BwICov
LAogCQkJCUFENzI2RkVDMTZEOUY0QjkwMDNBNEU2RCAvKiBKU1N0eWxlU2hlZXRDdXN0b20uaCAq
LywKIAkJCQlBODRFQkQ3NzBDQjhDODkyMDAwNzk2MDkgLyogSlNTdHlsZVNoZWV0TGlzdEN1c3Rv
bS5jcHAgKi8sCi0JCQkJRTFGRjhGNjYxODA3NDYwODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRv
Q3VzdG9tLmNwcCAqLywKIAkJCQkwOEU0RkU0NTBFMkJENDE0MDBGNENBRTAgLyogSlNTVkdMZW5n
dGhDdXN0b20uY3BwICovLAogCQkJCUIyQzk2RDhDMEIzQUYyQjcwMDVFODBFQyAvKiBKU1NWR1Bh
dGhTZWdDdXN0b20uY3BwICovLAogCQkJCTA3RTExNzA2MTQ4OUVCRUIwMEVDNUFDRSAvKiBKU1Rl
eHRUcmFja0N1ZUN1c3RvbS5jcHAgKi8sCkBAIC0yMjc4MCw2ICsyMjc3OSw3IEBACiAJCQkJRDNG
M0QzNTkxQTY5QTNCMDAwNTlGQzJCIC8qIEpTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5j
cHAgKi8sCiAJCQkJRDNGM0QzNUExQTY5QTNCMDAwNTlGQzJCIC8qIEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZUN1c3RvbS5jcHAgKi8sCiAJCQkJNDlFRUQxNEMxMDUxOTcxQTAwMDk5RkFCIC8q
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCAqLywKKwkJCQlFMUZGOEY2NjE4MDc0
NjA4MDAxMzI2NzQgLyogSlNXZWJLaXRTdWJ0bGVDcnlwdG9DdXN0b20uY3BwICovLAogCQkJCUJD
Mjc1Qjc4MTFDNUQxQzMwMEM5MjA2QyAvKiBKU1dlYktpdFBvaW50Q3VzdG9tLmNwcCAqLywKIAkJ
CQlFMUNBNUNCQjBFOENEQ0FGMDBFOEVGOTAgLyogSlNXb3JrZXJDdXN0b20uY3BwICovLAogCQkJ
CUUxODI1OEFCMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNw
cCAqLywKQEAgLTIzNzg5LDkgKzIzNzg5LDkgQEAKIAkJCQlFMTk3MjcxNTE4MjA1NDlFMDA1OTJE
NTEgLyogQ3J5cHRvS2V5VHlwZS5oICovLAogCQkJCUUxNzJBRjZGMTgwRjI4OTUwMEZCQURCOSAv
KiBDcnlwdG9LZXlVc2FnZS5oICovLAogCQkJCUUxOERGMzM0MThBQUYxMkMwMDc3M0U1OSAvKiBT
ZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5oICovLAotCQkJCUUxRkY4RjVEMTgwNzQ0MjEwMDEzMjY3
NCAvKiBTdWJ0bGVDcnlwdG8uY3BwICovLAotCQkJCUUxRkY4RjVFMTgwNzQ0MjEwMDEzMjY3NCAv
KiBTdWJ0bGVDcnlwdG8uaCAqLywKLQkJCQlFMUZGOEY1QzE4MDczNjRCMDAxMzI2NzQgLyogU3Vi
dGxlQ3J5cHRvLmlkbCAqLywKKwkJCQk1NzA5RThDQTFENDEzQ0UzMDAzMjQ0QUMgLyogV2ViS2l0
U3VidGxlQ3J5cHRvLmNwcCAqLywKKwkJCQk1NzA5RThDQjFENDEzQ0UzMDAzMjQ0QUMgLyogV2Vi
S2l0U3VidGxlQ3J5cHRvLmggKi8sCisJCQkJNTcwOUU4Q0MxRDQxM0NFMzAwMzI0NEFDIC8qIFdl
YktpdFN1YnRsZUNyeXB0by5pZGwgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNyeXB0bzsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMzgwMyw4ICsyMzgwMyw4IEBACiAJCQkJRTE1N0E4
REYxODE3MzMxQzAwOUY4MjFEIC8qIEpTQ3J5cHRvS2V5LmggKi8sCiAJCQkJRTFGODBCOEIxODMx
NzJCNTAwNzg4NUMzIC8qIEpTQ3J5cHRvS2V5UGFpci5jcHAgKi8sCiAJCQkJRTFGODBCOEMxODMx
NzJCNTAwNzg4NUMzIC8qIEpTQ3J5cHRvS2V5UGFpci5oICovLAotCQkJCUUxRkY4RjYyMTgwNzQ1
RDgwMDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0by5jcHAgKi8sCi0JCQkJRTFGRjhGNjMxODA3NDVE
ODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvLmggKi8sCisJCQkJRTFGRjhGNjIxODA3NDVEODAw
MTMyNjc0IC8qIEpTV2ViS2l0U3VidGxlQ3J5cHRvLmNwcCAqLywKKwkJCQlFMUZGOEY2MzE4MDc0
NUQ4MDAxMzI2NzQgLyogSlNXZWJLaXRTdWJ0bGVDcnlwdG8uaCAqLywKIAkJCSk7CiAJCQluYW1l
ID0gQ3J5cHRvOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI2NTcyLDYgKzI2NTcy
LDggQEAKIAkJCQlBODcxRDQ1NjBBMTI3Q0JDMDBCMTJBNjggLyogSFRNTFBsdWdJbkVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQ0MTUyOTJFMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBN0NCMDBBMTkyQjlDMDBB
OEVGNUYgLyogSFRNTFByZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3MEE5OURCMUQ0
MUEyRjMwMDRFQzYzMCAvKiBKU1dlYktpdFN1YnRsZUNyeXB0by5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNTcwOUU4Q0YxRDQxM0Q5QTAwMzI0NEFDIC8qIFdlYktpdFN1YnRsZUNyeXB0by5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTc3QjM4NzMxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxQcmVsb2FkU2Nh
bm5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTQzQkY1OTkxMTQ5MjkwQTAwQzY0M0NBIC8qIEhU
TUxQcm9ncmVzc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4Q0ZGN0EzMEExNTY5Nzgw
MDBBNDIzNCAvKiBIVE1MUXVvdGVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI3MTM4LDcg
KzI3MTQwLDYgQEAKIAkJCQlCQ0UwMTM5QjBDMEJFRjE4MDA0Mzg2MEEgLyogSlNTdHlsZVNoZWV0
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBRDcyNkZFRTE2REExMUJDMDAzQTRFNkQgLyogSlNTdHls
ZVNoZWV0Q3VzdG9tLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODRFQkQ4MzBDQjhDOTc3MDAwNzk2
MDkgLyogSlNTdHlsZVNoZWV0TGlzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTFGRjhGNjUxODA3
NDVEODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjAx
MTEwODBBQjc3NDA1MDBEQjBFNjggLyogSlNTVkdBRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMjREOTEyOTIxM0NBOTUxRTAwRDIxOTE1IC8qIEpTU1ZHQWx0R2x5cGhEZWZFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk2NTE1RUM5MjBEOTcyM0ZGMDA2M0Q0OUEgLyogSlNTVkdBbHRH
bHlwaEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjgzNjYsNyArMjgzNjcsNiBAQAogCQkJ
CTFBRTk2QTkzMUQxQTBEREQwMEI4Njc2OCAvKiBKU0FwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxl
Y3RlZEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkIwMjBEQjUzMDA2MDAxREI3OTQg
LyogU3Vic3RpdHV0ZVJlc291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUU5NkE4QjFEMUEw
REREMDBCODY3NjggLyogSlNBcHBsZVBheVBheW1lbnRBdXRob3JpemVkRXZlbnQuaCBpbiBIZWFk
ZXJzICovLAotCQkJCUUxRkY4RjYwMTgwNzQ0MjEwMDEzMjY3NCAvKiBTdWJ0bGVDcnlwdG8uaCBp
biBIZWFkZXJzICovLAogCQkJCTkzQjJEODE2MEY5OTIwRDIwMDZBRTZCMiAvKiBTdWRkZW5UZXJt
aW5hdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdDMDc4NTAxMTY1RDVCRTAwM0EzMkVGIC8q
IFN1ZmZpeFRyZWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NjI3Qjk4MTRGQjU0MjQwMDJDRENB
MSAvKiBTdXBwbGVtZW50YWJsZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTMxMyw2ICsyOTMxMyw4
IEBACiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9
IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKKwkJCQk1NzA5RThDRTFENDEzRDVCMDAzMjQ0QUMg
LyogSlNXZWJLaXRTdWJ0bGVDcnlwdG9DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTcw
OUU4Q0QxRDQxM0Q0NzAwMzI0NEFDIC8qIFdlYktpdFN1YnRsZUNyeXB0by5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk0MUUxQjFEMDBGRjU5ODY5MDA1NzZCM0IgLyogQWJzdHJhY3RXb3JrZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzdGNTdBQjkxQTUwNzI2OTAwODc2Rjk4IC8qIEFjY2Vzc2li
aWxpdHlBUklBR3JpZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzN0Y1N0FCQTFBNTA3MjZGMDA4
NzZGOTggLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTMwMzM2LDYgKzMwMzM4LDcgQEAKIAkJCQkwNzA3NTY4QjE0MjI2MkQ2MDA0MTQxNjEgLyogSFRN
TFRyYWNrRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzdCMzcyNTEyMjg3MjE3MDBC
ODFGRjggLyogSFRNTFRyZWVCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4RUE3OUYz
MEExOTE2REYwMEE4RUY1RiAvKiBIVE1MVUxpc3RFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTU3MEE5OURBMUQ0MTc0MDgwMDRFQzYzMCAvKiBKU1dlYktpdFN1YnRsZUNyeXB0by5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlFNDQ2MTNBQTBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFZpZGVv
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MzlBQUZFQzFBMEMwQzhEMDA2MDVGOTkg
LyogSFRNTFdCUkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEI4QzU2RDQwRjI4NjI3
RjAwMDUwMkUxIC8qIEhUVFBIZWFkZXJNYXAuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDk0OSw4
ICszMDk1Miw2IEBACiAJCQkJQkM5OEEyN0QwQzBDOTk1MDAwNEJFQkY3IC8qIEpTU3R5bGVTaGVl
dEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODRFQkQ4NDBDQjhDOTc3MDAwNzk2MDkg
LyogSlNTdHlsZVNoZWV0TGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODRFQkQ3ODBDQjhD
ODkyMDAwNzk2MDkgLyogSlNTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlFMUZGOEY2NDE4MDc0NUQ4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlwdG8uY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJRTFGRjhGNjgxODA3NDYwODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRv
Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMDExMTA3MEFCNzc0MDUwMERCMEU2OCAv
KiBKU1NWR0FFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI0RDkxMjkxMTNDQTk1MUUw
MEQyMTkxNSAvKiBKU1NWR0FsdEdseXBoRGVmRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk2NTE1RUM5MTBEOTcyM0ZGMDA2M0Q0OUEgLyogSlNTVkdBbHRHbHlwaEVsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0zMjAwNyw3ICszMjAwOCw2IEBACiAJCQkJOTNFMjI3RTQwQUY1ODlB
RDAwRDQ4MzI0IC8qIFN1YnJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdF
MzdFRjJFMTMzOTIwODgwMEIyOTI1MCAvKiBTdWJyZXNvdXJjZUxvYWRlckNGLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTdFOEZBREM0MTk5QTk1QjEwMDcxNDk2OCAvKiBTdWJyZXNvdXJjZUxvYWRl
ckNvY29hLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJRTFGRjhGNUYxODA3NDQyMTAwMTMyNjc0IC8q
IFN1YnRsZUNyeXB0by5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0IyRDgxODBGOTkyMEVFMDA2
QUU2QjIgLyogU3VkZGVuVGVybWluYXRpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkwODc1NThD
NTEzQjRBNTdEMDBGNDkzMDcgLyogU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTYyQzEyMTdDMTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJs
ZVRpbWVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA2OWUxNTc4ZGNjYjRkZjc1Y2Q0YTg1MDk4YTkwYjgzNjQ3ZjQzODhhLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDgwNSAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTU3Vi
dGxlQ3J5cHRvLmgiCi0KLSNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQotI2luY2x1ZGUgIkNy
eXB0b0FsZ29yaXRobS5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaCIK
LSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oIgotI2luY2x1ZGUgIkNyeXB0b0tl
eURhdGEuaCIKLSNpbmNsdWRlICJDcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3LmgiCi0jaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiSlND
cnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmgiCi0jaW5jbHVkZSAiSlNDcnlwdG9LZXkuaCIKLSNp
bmNsdWRlICJKU0NyeXB0b0tleVBhaXIuaCIKLSNpbmNsdWRlICJKU0NyeXB0b0tleVNlcmlhbGl6
YXRpb25KV0suaCIKLSNpbmNsdWRlICJKU0NyeXB0b09wZXJhdGlvbkRhdGEuaCIKLSNpbmNsdWRl
ICJKU0RPTVByb21pc2UuaCIKLSNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+Ci0KLXVzaW5nIG5h
bWVzcGFjZSBKU0M7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotZW51bSBjbGFzcyBDcnlwdG9L
ZXlGb3JtYXQgewotICAgIC8vIEFuIHVuZm9ybWF0dGVkIHNlcXVlbmNlIG9mIGJ5dGVzLiBJbnRl
bmRlZCBmb3Igc2VjcmV0IGtleXMuCi0gICAgUmF3LAotCi0gICAgLy8gVGhlIERFUiBlbmNvZGlu
ZyBvZiB0aGUgUHJpdmF0ZUtleUluZm8gc3RydWN0dXJlIGZyb20gUkZDIDUyMDguCi0gICAgUEtD
UzgsCi0KLSAgICAvLyBUaGUgREVSIGVuY29kaW5nIG9mIHRoZSBTdWJqZWN0UHVibGljS2V5SW5m
byBzdHJ1Y3R1cmUgZnJvbSBSRkMgNTI4MC4KLSAgICBTUEtJLAotCi0gICAgLy8gVGhlIGtleSBp
cyByZXByZXNlbnRlZCBhcyBKU09OIGFjY29yZGluZyB0byB0aGUgSlNPTiBXZWIgS2V5IGZvcm1h
dC4KLSAgICBKV0sKLX07Ci0KLXN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGVB
bGdvcml0aG1Gcm9tSlNWYWx1ZShFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQotewot
ICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtSWRlbnRpZmllcjsKLSAgICBp
ZiAoIUpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Z2V0QWxnb3JpdGhtSWRlbnRpZmllcigm
c3RhdGUsIHZhbHVlLCBhbGdvcml0aG1JZGVudGlmaWVyKSkgewotICAgICAgICBBU1NFUlQoc3Rh
dGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAg
ICBhdXRvIHJlc3VsdCA9IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5OjpzaW5nbGV0b24oKS5jcmVh
dGUoYWxnb3JpdGhtSWRlbnRpZmllcik7Ci0gICAgaWYgKCFyZXN1bHQpCi0gICAgICAgIHNldERP
TUV4Y2VwdGlvbigmc3RhdGUsIE5PVF9TVVBQT1JURURfRVJSKTsKLSAgICByZXR1cm4gcmVzdWx0
OwotfQotCi1zdGF0aWMgYm9vbCBjcnlwdG9LZXlGb3JtYXRGcm9tSlNWYWx1ZShFeGVjU3RhdGUm
IHN0YXRlLCBKU1ZhbHVlIHZhbHVlLCBDcnlwdG9LZXlGb3JtYXQmIHJlc3VsdCkKLXsKLSAgICBT
dHJpbmcga2V5Rm9ybWF0U3RyaW5nID0gdmFsdWUudG9TdHJpbmcoJnN0YXRlKS0+dmFsdWUoJnN0
YXRlKTsKLSAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICBpZiAoa2V5Rm9ybWF0U3RyaW5nID09ICJyYXciKQotICAgICAgICByZXN1bHQgPSBD
cnlwdG9LZXlGb3JtYXQ6OlJhdzsKLSAgICBlbHNlIGlmIChrZXlGb3JtYXRTdHJpbmcgPT0gInBr
Y3M4IikKLSAgICAgICAgcmVzdWx0ID0gQ3J5cHRvS2V5Rm9ybWF0OjpQS0NTODsKLSAgICBlbHNl
IGlmIChrZXlGb3JtYXRTdHJpbmcgPT0gInNwa2kiKQotICAgICAgICByZXN1bHQgPSBDcnlwdG9L
ZXlGb3JtYXQ6OlNQS0k7Ci0gICAgZWxzZSBpZiAoa2V5Rm9ybWF0U3RyaW5nID09ICJqd2siKQot
ICAgICAgICByZXN1bHQgPSBDcnlwdG9LZXlGb3JtYXQ6OkpXSzsKLSAgICBlbHNlIHsKLSAgICAg
ICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBBU0NJSUxpdGVyYWwoIlVua25vd24ga2V5IGZvcm1h
dCIpKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0K
LQotc3RhdGljIGJvb2wgY3J5cHRvS2V5VXNhZ2VzRnJvbUpTVmFsdWUoRXhlY1N0YXRlJiBzdGF0
ZSwgSlNWYWx1ZSB2YWx1ZSwgQ3J5cHRvS2V5VXNhZ2UmIHJlc3VsdCkKLXsKLSAgICBpZiAoIWlz
SlNBcnJheSh2YWx1ZSkpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlKTsKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHJlc3VsdCA9IDA7Ci0KLSAgICBKU0FycmF5
KiBhcnJheSA9IGFzQXJyYXkodmFsdWUpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJy
YXktPmxlbmd0aCgpOyArK2kpIHsKLSAgICAgICAgSlNWYWx1ZSBlbGVtZW50ID0gYXJyYXktPmdl
dEluZGV4KCZzdGF0ZSwgaSk7Ci0gICAgICAgIFN0cmluZyB1c2FnZVN0cmluZyA9IGVsZW1lbnQu
dG9TdHJpbmcoJnN0YXRlKS0+dmFsdWUoJnN0YXRlKTsKLSAgICAgICAgaWYgKHN0YXRlLmhhZEV4
Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAodXNhZ2VT
dHJpbmcgPT0gImVuY3J5cHQiKQotICAgICAgICAgICAgcmVzdWx0IHw9IENyeXB0b0tleVVzYWdl
RW5jcnlwdDsKLSAgICAgICAgZWxzZSBpZiAodXNhZ2VTdHJpbmcgPT0gImRlY3J5cHQiKQotICAg
ICAgICAgICAgcmVzdWx0IHw9IENyeXB0b0tleVVzYWdlRGVjcnlwdDsKLSAgICAgICAgZWxzZSBp
ZiAodXNhZ2VTdHJpbmcgPT0gInNpZ24iKQotICAgICAgICAgICAgcmVzdWx0IHw9IENyeXB0b0tl
eVVzYWdlU2lnbjsKLSAgICAgICAgZWxzZSBpZiAodXNhZ2VTdHJpbmcgPT0gInZlcmlmeSIpCi0g
ICAgICAgICAgICByZXN1bHQgfD0gQ3J5cHRvS2V5VXNhZ2VWZXJpZnk7Ci0gICAgICAgIGVsc2Ug
aWYgKHVzYWdlU3RyaW5nID09ICJkZXJpdmVLZXkiKQotICAgICAgICAgICAgcmVzdWx0IHw9IENy
eXB0b0tleVVzYWdlRGVyaXZlS2V5OwotICAgICAgICBlbHNlIGlmICh1c2FnZVN0cmluZyA9PSAi
ZGVyaXZlQml0cyIpCi0gICAgICAgICAgICByZXN1bHQgfD0gQ3J5cHRvS2V5VXNhZ2VEZXJpdmVC
aXRzOwotICAgICAgICBlbHNlIGlmICh1c2FnZVN0cmluZyA9PSAid3JhcEtleSIpCi0gICAgICAg
ICAgICByZXN1bHQgfD0gQ3J5cHRvS2V5VXNhZ2VXcmFwS2V5OwotICAgICAgICBlbHNlIGlmICh1
c2FnZVN0cmluZyA9PSAidW53cmFwS2V5IikKLSAgICAgICAgICAgIHJlc3VsdCB8PSBDcnlwdG9L
ZXlVc2FnZVVud3JhcEtleTsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLUpTVmFsdWUg
SlNTdWJ0bGVDcnlwdG86OmVuY3J5cHQoRXhlY1N0YXRlJiBzdGF0ZSkKLXsKLSAgICBpZiAoc3Rh
dGUuYXJndW1lbnRDb3VudCgpIDwgMykKLSAgICAgICAgcmV0dXJuIHN0YXRlLnZtKCkudGhyb3dF
eGNlcHRpb24oJnN0YXRlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsK
LQotICAgIGF1dG8gYWxnb3JpdGhtID0gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUs
IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKLSAgICBpZiAoIWFsZ29yaXRobSkgewotICAg
ICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKLSAgICB9Ci0KLSAgICBhdXRvIHBhcmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRo
bURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JFbmNyeXB0KCZzdGF0ZSwgYWxnb3JpdGht
LT5pZGVudGlmaWVyKCksIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKLSAgICBpZiAoIXBh
cmFtZXRlcnMpIHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgUmVmUHRyPENyeXB0b0tleT4g
a2V5ID0gSlNDcnlwdG9LZXk6OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7
Ci0gICAgaWYgKCFrZXkpCi0gICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUpOwot
Ci0gICAgaWYgKCFrZXktPmFsbG93cyhDcnlwdG9LZXlVc2FnZUVuY3J5cHQpKSB7Ci0gICAgICAg
IHdyYXBwZWQoKS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpK
UywgTWVzc2FnZUxldmVsOjpFcnJvciwgQVNDSUlMaXRlcmFsKCJLZXkgdXNhZ2VzIGRvIG5vdCBp
bmNsdWRlICdlbmNyeXB0JyIpKTsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgTk9U
X1NVUFBPUlRFRF9FUlIpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0K
LSAgICBDcnlwdG9PcGVyYXRpb25EYXRhIGRhdGE7Ci0gICAgaWYgKCFjcnlwdG9PcGVyYXRpb25E
YXRhRnJvbUpTVmFsdWUoJnN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSwgZGF0YSkp
IHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgCi0gICAgSlNQcm9taXNlRGVmZXJyZWQqIHBy
b21pc2VEZWZlcnJlZCA9IEpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoJnN0YXRlLCBnbG9iYWxP
YmplY3QoKSk7Ci0gICAgRGVmZXJyZWRXcmFwcGVyIHdyYXBwZXIoJnN0YXRlLCBnbG9iYWxPYmpl
Y3QoKSwgcHJvbWlzZURlZmVycmVkKTsKLSAgICBhdXRvIHN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFw
cGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4mIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIGZ1
bGZpbGxQcm9taXNlV2l0aEFycmF5QnVmZmVyKHdyYXBwZXIsIHJlc3VsdC5kYXRhKCksIHJlc3Vs
dC5zaXplKCkpOwotICAgIH07Ci0gICAgYXV0byBmYWlsdXJlQ2FsbGJhY2sgPSBbd3JhcHBlcl0o
KSBtdXRhYmxlIHsKLSAgICAgICAgd3JhcHBlci5yZWplY3QobnVsbHB0cik7Ci0gICAgfTsKLQot
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGFsZ29yaXRobS0+ZW5jcnlwdCgqcGFyYW1l
dGVycywgKmtleSwgZGF0YSwgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1
cmVDYWxsYmFjayksIGVjKTsKLSAgICBpZiAoZWMpIHsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9u
KCZzdGF0ZSwgZWMpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAg
ICByZXR1cm4gcHJvbWlzZURlZmVycmVkLT5wcm9taXNlKCk7Ci19Ci0KLUpTVmFsdWUgSlNTdWJ0
bGVDcnlwdG86OmRlY3J5cHQoRXhlY1N0YXRlJiBzdGF0ZSkKLXsKLSAgICBpZiAoc3RhdGUuYXJn
dW1lbnRDb3VudCgpIDwgMykKLSAgICAgICAgcmV0dXJuIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRp
b24oJnN0YXRlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKLQotICAg
IGF1dG8gYWxnb3JpdGhtID0gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRl
LnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKLSAgICBpZiAoIWFsZ29yaXRobSkgewotICAgICAgICBB
U1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKLSAgICB9Ci0KLSAgICBhdXRvIHBhcmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rp
b25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZWNyeXB0KCZzdGF0ZSwgYWxnb3JpdGhtLT5pZGVu
dGlmaWVyKCksIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKLSAgICBpZiAoIXBhcmFtZXRl
cnMpIHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0g
SlNDcnlwdG9LZXk6OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7Ci0gICAg
aWYgKCFrZXkpCi0gICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUpOwotCi0gICAg
aWYgKCFrZXktPmFsbG93cyhDcnlwdG9LZXlVc2FnZURlY3J5cHQpKSB7Ci0gICAgICAgIHdyYXBw
ZWQoKS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVz
c2FnZUxldmVsOjpFcnJvciwgQVNDSUlMaXRlcmFsKCJLZXkgdXNhZ2VzIGRvIG5vdCBpbmNsdWRl
ICdkZWNyeXB0JyIpKTsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgTk9UX1NVUFBP
UlRFRF9FUlIpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBD
cnlwdG9PcGVyYXRpb25EYXRhIGRhdGE7Ci0gICAgaWYgKCFjcnlwdG9PcGVyYXRpb25EYXRhRnJv
bUpTVmFsdWUoJnN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSwgZGF0YSkpIHsKLSAg
ICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VEZWZlcnJl
ZCA9IEpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSk7Ci0g
ICAgRGVmZXJyZWRXcmFwcGVyIHdyYXBwZXIoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgcHJvbWlz
ZURlZmVycmVkKTsKLSAgICBhdXRvIHN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShjb25zdCBW
ZWN0b3I8dWludDhfdD4mIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIGZ1bGZpbGxQcm9taXNl
V2l0aEFycmF5QnVmZmVyKHdyYXBwZXIsIHJlc3VsdC5kYXRhKCksIHJlc3VsdC5zaXplKCkpOwot
ICAgIH07Ci0gICAgYXV0byBmYWlsdXJlQ2FsbGJhY2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxlIHsK
LSAgICAgICAgd3JhcHBlci5yZWplY3QobnVsbHB0cik7Ci0gICAgfTsKLQotICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwotICAgIGFsZ29yaXRobS0+ZGVjcnlwdCgqcGFyYW1ldGVycywgKmtleSwg
ZGF0YSwgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayks
IGVjKTsKLSAgICBpZiAoZWMpIHsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgZWMp
OwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcHJv
bWlzZURlZmVycmVkLT5wcm9taXNlKCk7Ci19Ci0KLUpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OnNp
Z24oRXhlY1N0YXRlJiBzdGF0ZSkKLXsKLSAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwg
MykKLSAgICAgICAgcmV0dXJuIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRlLCBjcmVh
dGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKLQotICAgIGF1dG8gYWxnb3JpdGht
ID0gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDApKTsKLSAgICBpZiAoIWFsZ29yaXRobSkgewotICAgICAgICBBU1NFUlQoc3RhdGUuaGFk
RXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAg
ICBhdXRvIHBhcmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBh
cmFtZXRlcnNGb3JTaWduKCZzdGF0ZSwgYWxnb3JpdGhtLT5pZGVudGlmaWVyKCksIHN0YXRlLnVu
Y2hlY2tlZEFyZ3VtZW50KDApKTsKLSAgICBpZiAoIXBhcmFtZXRlcnMpIHsKLSAgICAgICAgQVNT
RVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
Ci0gICAgfQotCi0gICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvV3Jh
cHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7Ci0gICAgaWYgKCFrZXkpCi0gICAgICAg
IHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUpOwotCi0gICAgaWYgKCFrZXktPmFsbG93cyhD
cnlwdG9LZXlVc2FnZVNpZ24pKSB7Ci0gICAgICAgIHdyYXBwZWQoKS5kb2N1bWVudCgpLT5hZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgQVND
SUlMaXRlcmFsKCJLZXkgdXNhZ2VzIGRvIG5vdCBpbmNsdWRlICdzaWduJyIpKTsKLSAgICAgICAg
c2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgTk9UX1NVUFBPUlRFRF9FUlIpOwotICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBDcnlwdG9PcGVyYXRpb25EYXRhIGRhdGE7
Ci0gICAgaWYgKCFjcnlwdG9PcGVyYXRpb25EYXRhRnJvbUpTVmFsdWUoJnN0YXRlLCBzdGF0ZS51
bmNoZWNrZWRBcmd1bWVudCgyKSwgZGF0YSkpIHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4
Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAg
SlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VEZWZlcnJlZCA9IEpTUHJvbWlzZURlZmVycmVkOjpj
cmVhdGUoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSk7Ci0gICAgRGVmZXJyZWRXcmFwcGVyIHdyYXBw
ZXIoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgcHJvbWlzZURlZmVycmVkKTsKLSAgICBhdXRvIHN1
Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4mIHJlc3VsdCkg
bXV0YWJsZSB7Ci0gICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEFycmF5QnVmZmVyKHdyYXBwZXIs
IHJlc3VsdC5kYXRhKCksIHJlc3VsdC5zaXplKCkpOwotICAgIH07Ci0gICAgYXV0byBmYWlsdXJl
Q2FsbGJhY2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxlIHsKLSAgICAgICAgd3JhcHBlci5yZWplY3Qo
bnVsbHB0cik7Ci0gICAgfTsKLQotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGFsZ29y
aXRobS0+c2lnbigqcGFyYW1ldGVycywgKmtleSwgZGF0YSwgV1RGTW92ZShzdWNjZXNzQ2FsbGJh
Y2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKLSAgICBpZiAoZWMpIHsKLSAgICAg
ICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgZWMpOwotICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcHJvbWlzZURlZmVycmVkLT5wcm9taXNlKCk7Ci19
Ci0KLUpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OnZlcmlmeShFeGVjU3RhdGUmIHN0YXRlKQotewot
ICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPCA0KQotICAgICAgICByZXR1cm4gc3RhdGUu
dm0oKS50aHJvd0V4Y2VwdGlvbigmc3RhdGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KCZzdGF0ZSkpOwotCi0gICAgYXV0byBhbGdvcml0aG0gPSBjcmVhdGVBbGdvcml0aG1Gcm9tSlNW
YWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwotICAgIGlmICghYWxnb3Jp
dGhtKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIGF1dG8gcGFyYW1ldGVycyA9IEpTQ3J5
cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvclZlcmlmeSgmc3RhdGUs
IGFsZ29yaXRobS0+aWRlbnRpZmllcigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7Ci0g
ICAgaWYgKCFwYXJhbWV0ZXJzKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24o
KSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIFJlZlB0cjxD
cnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoMSkpOwotICAgIGlmICgha2V5KQotICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3Io
JnN0YXRlKTsKLQotICAgIGlmICgha2V5LT5hbGxvd3MoQ3J5cHRvS2V5VXNhZ2VWZXJpZnkpKSB7
Ci0gICAgICAgIHdyYXBwZWQoKS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgQVNDSUlMaXRlcmFsKCJLZXkgdXNhZ2Vz
IGRvIG5vdCBpbmNsdWRlICd2ZXJpZnknIikpOwotICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0
YXRlLCBOT1RfU1VQUE9SVEVEX0VSUik7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwot
ICAgIH0KLQotICAgIENyeXB0b09wZXJhdGlvbkRhdGEgc2lnbmF0dXJlOwotICAgIGlmICghY3J5
cHRvT3BlcmF0aW9uRGF0YUZyb21KU1ZhbHVlKCZzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1l
bnQoMiksIHNpZ25hdHVyZSkpIHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigp
KTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgQ3J5cHRvT3Bl
cmF0aW9uRGF0YSBkYXRhOwotICAgIGlmICghY3J5cHRvT3BlcmF0aW9uRGF0YUZyb21KU1ZhbHVl
KCZzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMyksIGRhdGEpKSB7Ci0gICAgICAgIEFT
U0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwotICAgIH0KLQotICAgIEpTUHJvbWlzZURlZmVycmVkKiBwcm9taXNlRGVmZXJyZWQgPSBKU1By
b21pc2VEZWZlcnJlZDo6Y3JlYXRlKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCkpOwotICAgIERlZmVy
cmVkV3JhcHBlciB3cmFwcGVyKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHByb21pc2VEZWZlcnJl
ZCk7Ci0gICAgYXV0byBzdWNjZXNzQ2FsbGJhY2sgPSBbd3JhcHBlcl0oYm9vbCByZXN1bHQpIG11
dGFibGUgewotICAgICAgICB3cmFwcGVyLnJlc29sdmUocmVzdWx0KTsKLSAgICB9OwotICAgIGF1
dG8gZmFpbHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHdyYXBw
ZXIucmVqZWN0KG51bGxwdHIpOwotICAgIH07Ci0KLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
LSAgICBhbGdvcml0aG0tPnZlcmlmeSgqcGFyYW1ldGVycywgKmtleSwgc2lnbmF0dXJlLCBkYXRh
LCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMp
OwotICAgIGlmIChlYykgewotICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7Ci0g
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIHJldHVybiBwcm9taXNl
RGVmZXJyZWQtPnByb21pc2UoKTsKLX0KLQotSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6ZGlnZXN0
KEV4ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDIp
Ci0gICAgICAgIHJldHVybiBzdGF0ZS52bSgpLnRocm93RXhjZXB0aW9uKCZzdGF0ZSwgY3JlYXRl
Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7Ci0KLSAgICBhdXRvIGFsZ29yaXRobSA9
IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVu
dCgwKSk7Ci0gICAgaWYgKCFhbGdvcml0aG0pIHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4
Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAg
YXV0byBwYXJhbWV0ZXJzID0gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJh
bWV0ZXJzRm9yRGlnZXN0KCZzdGF0ZSwgYWxnb3JpdGhtLT5pZGVudGlmaWVyKCksIHN0YXRlLnVu
Y2hlY2tlZEFyZ3VtZW50KDApKTsKLSAgICBpZiAoIXBhcmFtZXRlcnMpIHsKLSAgICAgICAgQVNT
RVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
Ci0gICAgfQotCi0gICAgQ3J5cHRvT3BlcmF0aW9uRGF0YSBkYXRhOwotICAgIGlmICghY3J5cHRv
T3BlcmF0aW9uRGF0YUZyb21KU1ZhbHVlKCZzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MSksIGRhdGEpKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIEpTUHJvbWlzZURlZmVycmVk
KiBwcm9taXNlRGVmZXJyZWQgPSBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKCZzdGF0ZSwgZ2xv
YmFsT2JqZWN0KCkpOwotICAgIERlZmVycmVkV3JhcHBlciB3cmFwcGVyKCZzdGF0ZSwgZ2xvYmFs
T2JqZWN0KCksIHByb21pc2VEZWZlcnJlZCk7Ci0gICAgYXV0byBzdWNjZXNzQ2FsbGJhY2sgPSBb
d3JhcHBlcl0oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiByZXN1bHQpIG11dGFibGUgewotICAgICAg
ICBmdWxmaWxsUHJvbWlzZVdpdGhBcnJheUJ1ZmZlcih3cmFwcGVyLCByZXN1bHQuZGF0YSgpLCBy
ZXN1bHQuc2l6ZSgpKTsKLSAgICB9OwotICAgIGF1dG8gZmFpbHVyZUNhbGxiYWNrID0gW3dyYXBw
ZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOwotICAgIH07
Ci0KLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBhbGdvcml0aG0tPmRpZ2VzdCgqcGFy
YW1ldGVycywgZGF0YSwgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVD
YWxsYmFjayksIGVjKTsKLSAgICBpZiAoZWMpIHsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZz
dGF0ZSwgZWMpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBy
ZXR1cm4gcHJvbWlzZURlZmVycmVkLT5wcm9taXNlKCk7Ci19Ci0KLUpTVmFsdWUgSlNTdWJ0bGVD
cnlwdG86OmdlbmVyYXRlS2V5KEV4ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgaWYgKHN0YXRlLmFy
Z3VtZW50Q291bnQoKSA8IDEpCi0gICAgICAgIHJldHVybiBzdGF0ZS52bSgpLnRocm93RXhjZXB0
aW9uKCZzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7Ci0KLSAg
ICBhdXRvIGFsZ29yaXRobSA9IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0YXRlLCBzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7Ci0gICAgaWYgKCFhbGdvcml0aG0pIHsKLSAgICAgICAg
QVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7Ci0gICAgfQotCi0gICAgYXV0byBwYXJhbWV0ZXJzID0gSlNDcnlwdG9BbGdvcml0aG1EaWN0
aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yR2VuZXJhdGVLZXkoJnN0YXRlLCBhbGdvcml0aG0t
PmlkZW50aWZpZXIoKSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwotICAgIGlmICghcGFy
YW1ldGVycykgewotICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBib29sIGV4dHJhY3RhYmxlID0g
ZmFsc2U7Ci0gICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA+PSAyKSB7Ci0gICAgICAgIGV4
dHJhY3RhYmxlID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9Cb29sZWFuKCZzdGF0ZSk7
Ci0gICAgICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIENyeXB0b0tleVVzYWdlIGtleVVzYWdlcyA9IDA7
Ci0gICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA+PSAzKSB7Ci0gICAgICAgIGlmICghY3J5
cHRvS2V5VXNhZ2VzRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLmFyZ3VtZW50KDIpLCBrZXlVc2Fn
ZXMpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBKU1By
b21pc2VEZWZlcnJlZCogcHJvbWlzZURlZmVycmVkID0gSlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0
ZSgmc3RhdGUsIGdsb2JhbE9iamVjdCgpKTsKLSAgICBEZWZlcnJlZFdyYXBwZXIgd3JhcHBlcigm
c3RhdGUsIGdsb2JhbE9iamVjdCgpLCBwcm9taXNlRGVmZXJyZWQpOwotICAgIGF1dG8gc3VjY2Vz
c0NhbGxiYWNrID0gW3dyYXBwZXJdKENyeXB0b0tleSoga2V5LCBDcnlwdG9LZXlQYWlyKiBrZXlQ
YWlyKSBtdXRhYmxlIHsKLSAgICAgICAgQVNTRVJUKGtleSB8fCBrZXlQYWlyKTsKLSAgICAgICAg
QVNTRVJUKCFrZXkgfHwgIWtleVBhaXIpOwotICAgICAgICBpZiAoa2V5KQotICAgICAgICAgICAg
d3JhcHBlci5yZXNvbHZlKGtleSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHdyYXBwZXIu
cmVzb2x2ZShrZXlQYWlyKTsKLSAgICB9OwotICAgIGF1dG8gZmFpbHVyZUNhbGxiYWNrID0gW3dy
YXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOwotICAg
IH07Ci0KLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBhbGdvcml0aG0tPmdlbmVyYXRl
S2V5KCpwYXJhbWV0ZXJzLCBleHRyYWN0YWJsZSwga2V5VXNhZ2VzLCBXVEZNb3ZlKHN1Y2Nlc3ND
YWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwotICAgIGlmIChlYykgewot
ICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7Ci0gICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwotICAgIH0KLQotICAgIHJldHVybiBwcm9taXNlRGVmZXJyZWQtPnByb21pc2Uo
KTsKLX0KLQotc3RhdGljIHZvaWQgaW1wb3J0S2V5KEV4ZWNTdGF0ZSYgc3RhdGUsIENyeXB0b0tl
eUZvcm1hdCBrZXlGb3JtYXQsIENyeXB0b09wZXJhdGlvbkRhdGEgZGF0YSwgUmVmUHRyPENyeXB0
b0FsZ29yaXRobT4gYWxnb3JpdGhtLCBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4g
cGFyYW1ldGVycywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2Uga2V5VXNhZ2VzLCBD
cnlwdG9BbGdvcml0aG06OktleUNhbGxiYWNrIGNhbGxiYWNrLCBDcnlwdG9BbGdvcml0aG06OlZv
aWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2spCi17Ci0gICAgc3RkOjp1bmlxdWVfcHRyPENyeXB0
b0tleVNlcmlhbGl6YXRpb24+IGtleVNlcmlhbGl6YXRpb247Ci0gICAgc3dpdGNoIChrZXlGb3Jt
YXQpIHsKLSAgICBjYXNlIENyeXB0b0tleUZvcm1hdDo6UmF3OgotICAgICAgICBrZXlTZXJpYWxp
emF0aW9uID0gQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdzo6Y3JlYXRlKGRhdGEpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIENyeXB0b0tleUZvcm1hdDo6SldLOiB7Ci0gICAgICAgIFN0cmlu
ZyBqd2tTdHJpbmcgPSBTdHJpbmc6OmZyb21VVEY4KGRhdGEuZmlyc3QsIGRhdGEuc2Vjb25kKTsK
LSAgICAgICAgaWYgKGp3a1N0cmluZy5pc051bGwoKSkgewotICAgICAgICAgICAgdGhyb3dUeXBl
RXJyb3IoJnN0YXRlLCBBU0NJSUxpdGVyYWwoIkpXSyBKU09OIHNlcmlhbGl6YXRpb24gaXMgbm90
IHZhbGlkIFVURi04IikpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAg
IGtleVNlcmlhbGl6YXRpb24gPSBzdGQ6Om1ha2VfdW5pcXVlPEpTQ3J5cHRvS2V5U2VyaWFsaXph
dGlvbkpXSz4oJnN0YXRlLCBqd2tTdHJpbmcpOwotICAgICAgICBpZiAoc3RhdGUuaGFkRXhjZXB0
aW9uKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBk
ZWZhdWx0OgotICAgICAgICB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIEFTQ0lJTGl0ZXJhbCgiVW5z
dXBwb3J0ZWQga2V5IGZvcm1hdCBmb3IgaW1wb3J0IikpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgQVNTRVJUKGtleVNlcmlhbGl6YXRpb24pOwotCi0gICAgT3B0aW9uYWw8Q3J5cHRv
QWxnb3JpdGhtUGFpcj4gcmVjb25jaWxlZFJlc3VsdCA9IGtleVNlcmlhbGl6YXRpb24tPnJlY29u
Y2lsZUFsZ29yaXRobShhbGdvcml0aG0uZ2V0KCksIHBhcmFtZXRlcnMuZ2V0KCkpOwotICAgIGlm
ICghcmVjb25jaWxlZFJlc3VsdCkgewotICAgICAgICBpZiAoIXN0YXRlLmhhZEV4Y2VwdGlvbigp
KQotICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBBU0NJSUxpdGVyYWwoIkFsZ29y
aXRobSBzcGVjaWZpZWQgaW4ga2V5IGlzIG5vdCBjb21wYXRpYmxlIHdpdGggb25lIHBhc3NlZCB0
byBpbXBvcnRLZXkgYXMgYXJndW1lbnQiKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAg
aWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhbGdvcml0
aG0gPSByZWNvbmNpbGVkUmVzdWx0LT5hbGdvcml0aG07Ci0gICAgcGFyYW1ldGVycyA9IHJlY29u
Y2lsZWRSZXN1bHQtPnBhcmFtZXRlcnM7Ci0gICAgaWYgKCFhbGdvcml0aG0pIHsKLSAgICAgICAg
dGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBBU0NJSUxpdGVyYWwoIk5laXRoZXIga2V5IG5vciBmdW5j
dGlvbiBhcmd1bWVudCBoYXMgY3J5cHRvIGFsZ29yaXRobSBzcGVjaWZpZWQiKSk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0gICAgQVNTRVJUKHBhcmFtZXRlcnMpOwotCi0gICAga2V5U2VyaWFs
aXphdGlvbi0+cmVjb25jaWxlRXh0cmFjdGFibGUoZXh0cmFjdGFibGUpOwotICAgIGlmIChzdGF0
ZS5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAga2V5U2VyaWFsaXphdGlv
bi0+cmVjb25jaWxlVXNhZ2VzKGtleVVzYWdlcyk7Ci0gICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlv
bigpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvIGtleURhdGEgPSBrZXlTZXJpYWxpemF0
aW9uLT5rZXlEYXRhKCk7Ci0gICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBhbGdvcml0aG0tPmltcG9y
dEtleSgqcGFyYW1ldGVycywgKmtleURhdGEsIGV4dHJhY3RhYmxlLCBrZXlVc2FnZXMsIFdURk1v
dmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKLSAgICBpZiAoZWMp
Ci0gICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIGVjKTsKLX0KLQotSlNWYWx1ZSBKU1N1
YnRsZUNyeXB0bzo6aW1wb3J0S2V5KEV4ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgaWYgKHN0YXRl
LmFyZ3VtZW50Q291bnQoKSA8IDMpCi0gICAgICAgIHJldHVybiBzdGF0ZS52bSgpLnRocm93RXhj
ZXB0aW9uKCZzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7Ci0K
LSAgICBDcnlwdG9LZXlGb3JtYXQga2V5Rm9ybWF0OwotICAgIGlmICghY3J5cHRvS2V5Rm9ybWF0
RnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLmFyZ3VtZW50KDApLCBrZXlGb3JtYXQpKSB7Ci0gICAg
ICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwotICAgIH0KLQotICAgIENyeXB0b09wZXJhdGlvbkRhdGEgZGF0YTsKLSAgICBpZiAo
IWNyeXB0b09wZXJhdGlvbkRhdGFGcm9tSlNWYWx1ZSgmc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFy
Z3VtZW50KDEpLCBkYXRhKSkgewotICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkp
OwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBSZWZQdHI8Q3J5
cHRvQWxnb3JpdGhtPiBhbGdvcml0aG07Ci0gICAgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnM+IHBhcmFtZXRlcnM7Ci0gICAgaWYgKCFzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKS5p
c051bGwoKSkgewotICAgICAgICBhbGdvcml0aG0gPSBjcmVhdGVBbGdvcml0aG1Gcm9tSlNWYWx1
ZShzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikpOwotICAgICAgICBpZiAoIWFsZ29y
aXRobSkgewotICAgICAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAg
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICB9Ci0gICAgICAgIHBhcmFtZXRl
cnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JJbXBv
cnRLZXkoJnN0YXRlLCBhbGdvcml0aG0tPmlkZW50aWZpZXIoKSwgc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoMikpOwotICAgICAgICBpZiAoIXBhcmFtZXRlcnMpIHsKLSAgICAgICAgICAgIEFTU0VS
VChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGJvb2wgZXh0cmFjdGFibGUgPSBmYWxzZTsKLSAg
ICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpID49IDQpIHsKLSAgICAgICAgZXh0cmFjdGFibGUg
PSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgzKS50b0Jvb2xlYW4oJnN0YXRlKTsKLSAgICAgICAg
aWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7Ci0gICAgfQotCi0gICAgQ3J5cHRvS2V5VXNhZ2Uga2V5VXNhZ2VzID0gMDsKLSAgICBpZiAo
c3RhdGUuYXJndW1lbnRDb3VudCgpID49IDUpIHsKLSAgICAgICAgaWYgKCFjcnlwdG9LZXlVc2Fn
ZXNGcm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUuYXJndW1lbnQoNCksIGtleVVzYWdlcykpIHsKLSAg
ICAgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEpTUHJvbWlzZURlZmVy
cmVkKiBwcm9taXNlRGVmZXJyZWQgPSBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKCZzdGF0ZSwg
Z2xvYmFsT2JqZWN0KCkpOwotICAgIERlZmVycmVkV3JhcHBlciB3cmFwcGVyKCZzdGF0ZSwgZ2xv
YmFsT2JqZWN0KCksIHByb21pc2VEZWZlcnJlZCk7Ci0gICAgYXV0byBzdWNjZXNzQ2FsbGJhY2sg
PSBbd3JhcHBlcl0oQ3J5cHRvS2V5JiByZXN1bHQpIG11dGFibGUgewotICAgICAgICB3cmFwcGVy
LnJlc29sdmUocmVzdWx0KTsKLSAgICB9OwotICAgIGF1dG8gZmFpbHVyZUNhbGxiYWNrID0gW3dy
YXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOwotICAg
IH07Ci0KLSAgICBXZWJDb3JlOjppbXBvcnRLZXkoc3RhdGUsIGtleUZvcm1hdCwgZGF0YSwgV1RG
TW92ZShhbGdvcml0aG0pLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBleHRyYWN0YWJsZSwga2V5VXNh
Z2VzLCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSk7
Ci0gICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKLQotICAgIHJldHVybiBwcm9taXNlRGVmZXJyZWQtPnByb21pc2UoKTsKLX0KLQotc3Rh
dGljIHZvaWQgZXhwb3J0S2V5KEV4ZWNTdGF0ZSYgc3RhdGUsIENyeXB0b0tleUZvcm1hdCBrZXlG
b3JtYXQsIGNvbnN0IENyeXB0b0tleSYga2V5LCBDcnlwdG9BbGdvcml0aG06OlZlY3RvckNhbGxi
YWNrIGNhbGxiYWNrLCBDcnlwdG9BbGdvcml0aG06OlZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJh
Y2spCi17Ci0gICAgaWYgKCFrZXkuZXh0cmFjdGFibGUoKSkgewotICAgICAgICB0aHJvd1R5cGVF
cnJvcigmc3RhdGUsIEFTQ0lJTGl0ZXJhbCgiS2V5IGlzIG5vdCBleHRyYWN0YWJsZSIpKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHN3aXRjaCAoa2V5Rm9ybWF0KSB7Ci0gICAgY2Fz
ZSBDcnlwdG9LZXlGb3JtYXQ6OlJhdzogewotICAgICAgICBWZWN0b3I8dWludDhfdD4gcmVzdWx0
OwotICAgICAgICBpZiAoQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdzo6c2VyaWFsaXplKGtleSwg
cmVzdWx0KSkKLSAgICAgICAgICAgIGNhbGxiYWNrKHJlc3VsdCk7Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIGZhaWx1cmVDYWxsYmFjaygpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAg
Y2FzZSBDcnlwdG9LZXlGb3JtYXQ6OkpXSzogewotICAgICAgICBTdHJpbmcgcmVzdWx0ID0gSlND
cnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjpzZXJpYWxpemUoJnN0YXRlLCBrZXkpOwotICAgICAg
ICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IENTdHJpbmcgdXRmOFN0cmluZyA9IHJlc3VsdC51dGY4KFN0cmljdENvbnZlcnNpb24pOwotICAg
ICAgICBWZWN0b3I8dWludDhfdD4gcmVzdWx0QnVmZmVyOwotICAgICAgICByZXN1bHRCdWZmZXIu
YXBwZW5kKHV0ZjhTdHJpbmcuZGF0YSgpLCB1dGY4U3RyaW5nLmxlbmd0aCgpKTsKLSAgICAgICAg
Y2FsbGJhY2socmVzdWx0QnVmZmVyKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGRlZmF1
bHQ6Ci0gICAgICAgIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgQVNDSUlMaXRlcmFsKCJVbnN1cHBv
cnRlZCBrZXkgZm9ybWF0IGZvciBleHBvcnQiKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLX0K
LQotSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6ZXhwb3J0S2V5KEV4ZWNTdGF0ZSYgc3RhdGUpCi17
Ci0gICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDIpCi0gICAgICAgIHJldHVybiBzdGF0
ZS52bSgpLnRocm93RXhjZXB0aW9uKCZzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJy
b3IoJnN0YXRlKSk7Ci0KLSAgICBDcnlwdG9LZXlGb3JtYXQga2V5Rm9ybWF0OwotICAgIGlmICgh
Y3J5cHRvS2V5Rm9ybWF0RnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLmFyZ3VtZW50KDApLCBrZXlG
b3JtYXQpKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtl
eSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpOwot
ICAgIGlmICgha2V5KQotICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlKTsKLQot
ICAgIEpTUHJvbWlzZURlZmVycmVkKiBwcm9taXNlRGVmZXJyZWQgPSBKU1Byb21pc2VEZWZlcnJl
ZDo6Y3JlYXRlKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCkpOwotICAgIERlZmVycmVkV3JhcHBlciB3
cmFwcGVyKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHByb21pc2VEZWZlcnJlZCk7Ci0gICAgYXV0
byBzdWNjZXNzQ2FsbGJhY2sgPSBbd3JhcHBlcl0oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiByZXN1
bHQpIG11dGFibGUgewotICAgICAgICBmdWxmaWxsUHJvbWlzZVdpdGhBcnJheUJ1ZmZlcih3cmFw
cGVyLCByZXN1bHQuZGF0YSgpLCByZXN1bHQuc2l6ZSgpKTsKLSAgICB9OwotICAgIGF1dG8gZmFp
bHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHdyYXBwZXIucmVq
ZWN0KG51bGxwdHIpOwotICAgIH07Ci0KLSAgICBXZWJDb3JlOjpleHBvcnRLZXkoc3RhdGUsIGtl
eUZvcm1hdCwgKmtleSwgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVD
YWxsYmFjaykpOwotICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7Ci0KLSAgICByZXR1cm4gcHJvbWlzZURlZmVycmVkLT5wcm9taXNlKCk7
Ci19Ci0KLUpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OndyYXBLZXkoRXhlY1N0YXRlJiBzdGF0ZSkK
LXsKLSAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgNCkKLSAgICAgICAgcmV0dXJuIHN0
YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNF
cnJvcigmc3RhdGUpKTsKLQotICAgIENyeXB0b0tleUZvcm1hdCBrZXlGb3JtYXQ7Ci0gICAgaWYg
KCFjcnlwdG9LZXlGb3JtYXRGcm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUuYXJndW1lbnQoMCksIGtl
eUZvcm1hdCkpIHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgUmVmUHRyPENyeXB0b0tleT4g
a2V5ID0gSlNDcnlwdG9LZXk6OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7
Ci0gICAgaWYgKCFrZXkpCi0gICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUpOwot
Ci0gICAgUmVmUHRyPENyeXB0b0tleT4gd3JhcHBpbmdLZXkgPSBKU0NyeXB0b0tleTo6dG9XcmFw
cGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpKTsKLSAgICBpZiAoIWtleSkKLSAgICAgICAg
cmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSk7Ci0KLSAgICBpZiAoIXdyYXBwaW5nS2V5LT5h
bGxvd3MoQ3J5cHRvS2V5VXNhZ2VXcmFwS2V5KSkgewotICAgICAgICB3cmFwcGVkKCkuZG9jdW1l
bnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6
RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiS2V5IHVzYWdlcyBkbyBub3QgaW5jbHVkZSAnd3JhcEtleSci
KSk7Ci0gICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIE5PVF9TVVBQT1JURURfRVJSKTsK
LSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgYXV0byBhbGdvcml0
aG0gPSBjcmVhdGVBbGdvcml0aG1Gcm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoMykpOwotICAgIGlmICghYWxnb3JpdGhtKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5o
YWRFeGNlcHRpb24oKSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQot
ICAgIGF1dG8gcGFyYW1ldGVycyA9IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRl
UGFyYW1ldGVyc0ZvckVuY3J5cHQoJnN0YXRlLCBhbGdvcml0aG0tPmlkZW50aWZpZXIoKSwgc3Rh
dGUudW5jaGVja2VkQXJndW1lbnQoMykpOwotICAgIGlmICghcGFyYW1ldGVycykgewotICAgICAg
ICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKLSAgICB9Ci0KLSAgICBKU1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZURlZmVycmVkID0g
SlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSgmc3RhdGUsIGdsb2JhbE9iamVjdCgpKTsKLSAgICBE
ZWZlcnJlZFdyYXBwZXIgd3JhcHBlcigmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCBwcm9taXNlRGVm
ZXJyZWQpOwotCi0gICAgYXV0byBleHBvcnRTdWNjZXNzQ2FsbGJhY2sgPSBba2V5Rm9ybWF0LCBh
bGdvcml0aG0sIHBhcmFtZXRlcnMsIHdyYXBwaW5nS2V5LCB3cmFwcGVyXShjb25zdCBWZWN0b3I8
dWludDhfdD4mIGV4cG9ydGVkS2V5RGF0YSkgbXV0YWJsZSB7Ci0gICAgICAgIGF1dG8gZW5jcnlw
dFN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4mIGVuY3J5
cHRlZERhdGEpIG11dGFibGUgewotICAgICAgICAgICAgZnVsZmlsbFByb21pc2VXaXRoQXJyYXlC
dWZmZXIod3JhcHBlciwgZW5jcnlwdGVkRGF0YS5kYXRhKCksIGVuY3J5cHRlZERhdGEuc2l6ZSgp
KTsKLSAgICAgICAgfTsKLSAgICAgICAgYXV0byBlbmNyeXB0RmFpbHVyZUNhbGxiYWNrID0gW3dy
YXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICB3cmFwcGVyLnJlamVjdChudWxscHRyKTsK
LSAgICAgICAgfTsKLSAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgIGFsZ29y
aXRobS0+ZW5jcnlwdEZvcldyYXBLZXkoKnBhcmFtZXRlcnMsICp3cmFwcGluZ0tleSwgc3RkOjpt
YWtlX3BhaXIoZXhwb3J0ZWRLZXlEYXRhLmRhdGEoKSwgZXhwb3J0ZWRLZXlEYXRhLnNpemUoKSks
IFdURk1vdmUoZW5jcnlwdFN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZW5jcnlwdEZhaWx1cmVD
YWxsYmFjayksIGVjKTsKLSAgICAgICAgaWYgKGVjKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTog
UmVwb3J0IGZhaWx1cmUgZGV0YWlscyB0byBjb25zb2xlLCBhbmQgcG9zc2libHkgdG8gY2FsbGlu
ZyBzY3JpcHQgb25jZSB0aGVyZSBpcyBhIHN0YW5kYXJkaXplZCB3YXkgdG8gcGFzcyBlcnJvcnMg
dG8gV2ViQ3J5cHRvIHByb21pc2UgcmVqZWN0IGZ1bmN0aW9ucy4KLSAgICAgICAgICAgIHdyYXBw
ZXIucmVqZWN0KG51bGxwdHIpOwotICAgICAgICB9Ci0gICAgfTsKLQotICAgIGF1dG8gZXhwb3J0
RmFpbHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHdyYXBwZXIu
cmVqZWN0KG51bGxwdHIpOwotICAgIH07Ci0KLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAg
ICBXZWJDb3JlOjpleHBvcnRLZXkoc3RhdGUsIGtleUZvcm1hdCwgKmtleSwgV1RGTW92ZShleHBv
cnRTdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGV4cG9ydEZhaWx1cmVDYWxsYmFjaykpOwotICAg
IGlmIChlYykgewotICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7Ci0gICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIHJldHVybiBwcm9taXNlRGVmZXJy
ZWQtPnByb21pc2UoKTsKLX0KLQotSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6dW53cmFwS2V5KEV4
ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDUpCi0g
ICAgICAgIHJldHVybiBzdGF0ZS52bSgpLnRocm93RXhjZXB0aW9uKCZzdGF0ZSwgY3JlYXRlTm90
RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7Ci0KLSAgICBDcnlwdG9LZXlGb3JtYXQga2V5
Rm9ybWF0OwotICAgIGlmICghY3J5cHRvS2V5Rm9ybWF0RnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRl
LmFyZ3VtZW50KDApLCBrZXlGb3JtYXQpKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNl
cHRpb24oKSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIENy
eXB0b09wZXJhdGlvbkRhdGEgd3JhcHBlZEtleURhdGE7Ci0gICAgaWYgKCFjcnlwdG9PcGVyYXRp
b25EYXRhRnJvbUpTVmFsdWUoJnN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSwgd3Jh
cHBlZEtleURhdGEpKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0g
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIFJlZlB0cjxDcnlwdG9L
ZXk+IHVud3JhcHBpbmdLZXkgPSBKU0NyeXB0b0tleTo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDIpKTsKLSAgICBpZiAoIXVud3JhcHBpbmdLZXkpCi0gICAgICAgIHJldHVybiB0
aHJvd1R5cGVFcnJvcigmc3RhdGUpOwotCi0gICAgaWYgKCF1bndyYXBwaW5nS2V5LT5hbGxvd3Mo
Q3J5cHRvS2V5VXNhZ2VVbndyYXBLZXkpKSB7Ci0gICAgICAgIHdyYXBwZWQoKS5kb2N1bWVudCgp
LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJv
ciwgQVNDSUlMaXRlcmFsKCJLZXkgdXNhZ2VzIGRvIG5vdCBpbmNsdWRlICd1bndyYXBLZXknIikp
OwotICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBOT1RfU1VQUE9SVEVEX0VSUik7Ci0g
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIGF1dG8gdW53cmFwQWxn
b3JpdGhtID0gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDMpKTsKLSAgICBpZiAoIXVud3JhcEFsZ29yaXRobSkgewotICAgICAgICBBU1NF
UlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
LSAgICB9Ci0gICAgYXV0byB1bndyYXBBbGdvcml0aG1QYXJhbWV0ZXJzID0gSlNDcnlwdG9BbGdv
cml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRGVjcnlwdCgmc3RhdGUsIHVud3Jh
cEFsZ29yaXRobS0+aWRlbnRpZmllcigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgzKSk7Ci0g
ICAgaWYgKCF1bndyYXBBbGdvcml0aG1QYXJhbWV0ZXJzKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0
ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0K
LQotICAgIFJlZlB0cjxDcnlwdG9BbGdvcml0aG0+IHVud3JhcHBlZEtleUFsZ29yaXRobTsKLSAg
ICBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gdW53cmFwcGVkS2V5QWxnb3JpdGht
UGFyYW1ldGVyczsKLSAgICBpZiAoIXN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDQpLmlzTnVsbCgp
KSB7Ci0gICAgICAgIHVud3JhcHBlZEtleUFsZ29yaXRobSA9IGNyZWF0ZUFsZ29yaXRobUZyb21K
U1ZhbHVlKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCg0KSk7Ci0gICAgICAgIGlmICgh
dW53cmFwcGVkS2V5QWxnb3JpdGhtKSB7Ci0gICAgICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhj
ZXB0aW9uKCkpOwotICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgICAgIH0K
LSAgICAgICAgdW53cmFwcGVkS2V5QWxnb3JpdGhtUGFyYW1ldGVycyA9IEpTQ3J5cHRvQWxnb3Jp
dGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckltcG9ydEtleSgmc3RhdGUsIHVud3Jh
cHBlZEtleUFsZ29yaXRobS0+aWRlbnRpZmllcigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCg0
KSk7Ci0gICAgICAgIGlmICghdW53cmFwcGVkS2V5QWxnb3JpdGhtUGFyYW1ldGVycykgewotICAg
ICAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgYm9vbCBleHRyYWN0YWJs
ZSA9IGZhbHNlOwotICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPj0gNikgewotICAgICAg
ICBleHRyYWN0YWJsZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDUpLnRvQm9vbGVhbigmc3Rh
dGUpOwotICAgICAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBDcnlwdG9LZXlVc2FnZSBrZXlVc2FnZXMg
PSAwOwotICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPj0gNykgewotICAgICAgICBpZiAo
IWNyeXB0b0tleVVzYWdlc0Zyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS5hcmd1bWVudCg2KSwga2V5
VXNhZ2VzKSkgewotICAgICAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAg
ICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAg
SlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VEZWZlcnJlZCA9IEpTUHJvbWlzZURlZmVycmVkOjpj
cmVhdGUoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSk7Ci0gICAgRGVmZXJyZWRXcmFwcGVyIHdyYXBw
ZXIoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgcHJvbWlzZURlZmVycmVkKTsKLSAgICBTdHJvbmc8
SlNET01HbG9iYWxPYmplY3Q+IGRvbUdsb2JhbE9iamVjdChzdGF0ZS52bSgpLCBnbG9iYWxPYmpl
Y3QoKSk7Ci0KLSAgICBhdXRvIGRlY3J5cHRTdWNjZXNzQ2FsbGJhY2sgPSBbZG9tR2xvYmFsT2Jq
ZWN0LCBrZXlGb3JtYXQsIHVud3JhcHBlZEtleUFsZ29yaXRobSwgdW53cmFwcGVkS2V5QWxnb3Jp
dGhtUGFyYW1ldGVycywgZXh0cmFjdGFibGUsIGtleVVzYWdlcywgd3JhcHBlcl0oY29uc3QgVmVj
dG9yPHVpbnQ4X3Q+JiByZXN1bHQpIG11dGFibGUgewotICAgICAgICBhdXRvIGltcG9ydFN1Y2Nl
c3NDYWxsYmFjayA9IFt3cmFwcGVyXShDcnlwdG9LZXkmIGtleSkgbXV0YWJsZSB7Ci0gICAgICAg
ICAgICB3cmFwcGVyLnJlc29sdmUoa2V5KTsKLSAgICAgICAgfTsKLSAgICAgICAgYXV0byBpbXBv
cnRGYWlsdXJlQ2FsbGJhY2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIHdy
YXBwZXIucmVqZWN0KG51bGxwdHIpOwotICAgICAgICB9OwotICAgICAgICBFeGVjU3RhdGUmIHN0
YXRlID0gKmRvbUdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwotICAgICAgICBXZWJDb3JlOjpp
bXBvcnRLZXkoc3RhdGUsIGtleUZvcm1hdCwgc3RkOjptYWtlX3BhaXIocmVzdWx0LmRhdGEoKSwg
cmVzdWx0LnNpemUoKSksIHVud3JhcHBlZEtleUFsZ29yaXRobSwgdW53cmFwcGVkS2V5QWxnb3Jp
dGhtUGFyYW1ldGVycywgZXh0cmFjdGFibGUsIGtleVVzYWdlcywgV1RGTW92ZShpbXBvcnRTdWNj
ZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGltcG9ydEZhaWx1cmVDYWxsYmFjaykpOwotICAgICAgICBp
ZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBSZXBvcnQg
ZXhjZXB0aW9uIGRldGFpbHMgdG8gY29uc29sZSwgYW5kIHBvc3NpYmx5IHRvIGNhbGxpbmcgc2Ny
aXB0IG9uY2UgdGhlcmUgaXMgYSBzdGFuZGFyZGl6ZWQgd2F5IHRvIHBhc3MgZXJyb3JzIHRvIFdl
YkNyeXB0byBwcm9taXNlIHJlamVjdCBmdW5jdGlvbnMuCi0gICAgICAgICAgICBzdGF0ZS5jbGVh
ckV4Y2VwdGlvbigpOwotICAgICAgICAgICAgd3JhcHBlci5yZWplY3QobnVsbHB0cik7Ci0gICAg
ICAgIH0KLSAgICB9OwotCi0gICAgYXV0byBkZWNyeXB0RmFpbHVyZUNhbGxiYWNrID0gW3dyYXBw
ZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOwotICAgIH07
Ci0KLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICB1bndyYXBBbGdvcml0aG0tPmRlY3J5
cHRGb3JVbndyYXBLZXkoKnVud3JhcEFsZ29yaXRobVBhcmFtZXRlcnMsICp1bndyYXBwaW5nS2V5
LCB3cmFwcGVkS2V5RGF0YSwgV1RGTW92ZShkZWNyeXB0U3VjY2Vzc0NhbGxiYWNrKSwgV1RGTW92
ZShkZWNyeXB0RmFpbHVyZUNhbGxiYWNrKSwgZWMpOwotICAgIGlmIChlYykgewotICAgICAgICBz
ZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwotICAgIH0KLQotICAgIHJldHVybiBwcm9taXNlRGVmZXJyZWQtPnByb21pc2UoKTsKLX0KLQot
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0U3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0U3VidGxlQ3J5cHRvQ3VzdG9tLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xZThiYmMwYmE1YjM1NGRlZTZkOTZmOGRmYTdmYWMwMGE1MGQ0MTAyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRTdWJ0bGVDcnlwdG9D
dXN0b20uY3BwCkBAIC0wLDAgKzEsODA1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkpTV2ViS2l0U3VidGxlQ3J5cHRvLmgiCisKKyNpZiBFTkFCTEUoU1VC
VExFX0NSWVBUTykKKworI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobS5oIgorI2luY2x1ZGUgIkNy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1SZWdp
c3RyeS5oIgorI2luY2x1ZGUgIkNyeXB0b0tleURhdGEuaCIKKyNpbmNsdWRlICJDcnlwdG9LZXlT
ZXJpYWxpemF0aW9uUmF3LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFeGNl
cHRpb25Db2RlLmgiCisjaW5jbHVkZSAiSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmgiCisj
aW5jbHVkZSAiSlNDcnlwdG9LZXkuaCIKKyNpbmNsdWRlICJKU0NyeXB0b0tleVBhaXIuaCIKKyNp
bmNsdWRlICJKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suaCIKKyNpbmNsdWRlICJKU0NyeXB0
b09wZXJhdGlvbkRhdGEuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2UuaCIKKyNpbmNsdWRlIDxy
dW50aW1lL0Vycm9yLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworZW51bSBjbGFzcyBDcnlwdG9LZXlGb3JtYXQgeworICAgIC8vIEFuIHVuZm9ybWF0
dGVkIHNlcXVlbmNlIG9mIGJ5dGVzLiBJbnRlbmRlZCBmb3Igc2VjcmV0IGtleXMuCisgICAgUmF3
LAorCisgICAgLy8gVGhlIERFUiBlbmNvZGluZyBvZiB0aGUgUHJpdmF0ZUtleUluZm8gc3RydWN0
dXJlIGZyb20gUkZDIDUyMDguCisgICAgUEtDUzgsCisKKyAgICAvLyBUaGUgREVSIGVuY29kaW5n
IG9mIHRoZSBTdWJqZWN0UHVibGljS2V5SW5mbyBzdHJ1Y3R1cmUgZnJvbSBSRkMgNTI4MC4KKyAg
ICBTUEtJLAorCisgICAgLy8gVGhlIGtleSBpcyByZXByZXNlbnRlZCBhcyBKU09OIGFjY29yZGlu
ZyB0byB0aGUgSlNPTiBXZWIgS2V5IGZvcm1hdC4KKyAgICBKV0sKK307CisKK3N0YXRpYyBSZWZQ
dHI8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGVBbGdvcml0aG1Gcm9tSlNWYWx1ZShFeGVjU3RhdGUm
IHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQoreworICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
YWxnb3JpdGhtSWRlbnRpZmllcjsKKyAgICBpZiAoIUpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFy
eTo6Z2V0QWxnb3JpdGhtSWRlbnRpZmllcigmc3RhdGUsIHZhbHVlLCBhbGdvcml0aG1JZGVudGlm
aWVyKSkgeworICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBhdXRvIHJlc3VsdCA9IENyeXB0b0FsZ29yaXRo
bVJlZ2lzdHJ5OjpzaW5nbGV0b24oKS5jcmVhdGUoYWxnb3JpdGhtSWRlbnRpZmllcik7CisgICAg
aWYgKCFyZXN1bHQpCisgICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIE5PVF9TVVBQT1JU
RURfRVJSKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgYm9vbCBjcnlwdG9LZXlG
b3JtYXRGcm9tSlNWYWx1ZShFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlLCBDcnlwdG9L
ZXlGb3JtYXQmIHJlc3VsdCkKK3sKKyAgICBTdHJpbmcga2V5Rm9ybWF0U3RyaW5nID0gdmFsdWUu
dG9TdHJpbmcoJnN0YXRlKS0+dmFsdWUoJnN0YXRlKTsKKyAgICBpZiAoc3RhdGUuaGFkRXhjZXB0
aW9uKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoa2V5Rm9ybWF0U3RyaW5nID09
ICJyYXciKQorICAgICAgICByZXN1bHQgPSBDcnlwdG9LZXlGb3JtYXQ6OlJhdzsKKyAgICBlbHNl
IGlmIChrZXlGb3JtYXRTdHJpbmcgPT0gInBrY3M4IikKKyAgICAgICAgcmVzdWx0ID0gQ3J5cHRv
S2V5Rm9ybWF0OjpQS0NTODsKKyAgICBlbHNlIGlmIChrZXlGb3JtYXRTdHJpbmcgPT0gInNwa2ki
KQorICAgICAgICByZXN1bHQgPSBDcnlwdG9LZXlGb3JtYXQ6OlNQS0k7CisgICAgZWxzZSBpZiAo
a2V5Rm9ybWF0U3RyaW5nID09ICJqd2siKQorICAgICAgICByZXN1bHQgPSBDcnlwdG9LZXlGb3Jt
YXQ6OkpXSzsKKyAgICBlbHNlIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBBU0NJ
SUxpdGVyYWwoIlVua25vd24ga2V5IGZvcm1hdCIpKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIGJvb2wgY3J5cHRvS2V5VXNhZ2Vz
RnJvbUpTVmFsdWUoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSwgQ3J5cHRvS2V5VXNh
Z2UmIHJlc3VsdCkKK3sKKyAgICBpZiAoIWlzSlNBcnJheSh2YWx1ZSkpIHsKKyAgICAgICAgdGhy
b3dUeXBlRXJyb3IoJnN0YXRlKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAg
IHJlc3VsdCA9IDA7CisKKyAgICBKU0FycmF5KiBhcnJheSA9IGFzQXJyYXkodmFsdWUpOworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJyYXktPmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAg
SlNWYWx1ZSBlbGVtZW50ID0gYXJyYXktPmdldEluZGV4KCZzdGF0ZSwgaSk7CisgICAgICAgIFN0
cmluZyB1c2FnZVN0cmluZyA9IGVsZW1lbnQudG9TdHJpbmcoJnN0YXRlKS0+dmFsdWUoJnN0YXRl
KTsKKyAgICAgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICBpZiAodXNhZ2VTdHJpbmcgPT0gImVuY3J5cHQiKQorICAgICAgICAg
ICAgcmVzdWx0IHw9IENyeXB0b0tleVVzYWdlRW5jcnlwdDsKKyAgICAgICAgZWxzZSBpZiAodXNh
Z2VTdHJpbmcgPT0gImRlY3J5cHQiKQorICAgICAgICAgICAgcmVzdWx0IHw9IENyeXB0b0tleVVz
YWdlRGVjcnlwdDsKKyAgICAgICAgZWxzZSBpZiAodXNhZ2VTdHJpbmcgPT0gInNpZ24iKQorICAg
ICAgICAgICAgcmVzdWx0IHw9IENyeXB0b0tleVVzYWdlU2lnbjsKKyAgICAgICAgZWxzZSBpZiAo
dXNhZ2VTdHJpbmcgPT0gInZlcmlmeSIpCisgICAgICAgICAgICByZXN1bHQgfD0gQ3J5cHRvS2V5
VXNhZ2VWZXJpZnk7CisgICAgICAgIGVsc2UgaWYgKHVzYWdlU3RyaW5nID09ICJkZXJpdmVLZXki
KQorICAgICAgICAgICAgcmVzdWx0IHw9IENyeXB0b0tleVVzYWdlRGVyaXZlS2V5OworICAgICAg
ICBlbHNlIGlmICh1c2FnZVN0cmluZyA9PSAiZGVyaXZlQml0cyIpCisgICAgICAgICAgICByZXN1
bHQgfD0gQ3J5cHRvS2V5VXNhZ2VEZXJpdmVCaXRzOworICAgICAgICBlbHNlIGlmICh1c2FnZVN0
cmluZyA9PSAid3JhcEtleSIpCisgICAgICAgICAgICByZXN1bHQgfD0gQ3J5cHRvS2V5VXNhZ2VX
cmFwS2V5OworICAgICAgICBlbHNlIGlmICh1c2FnZVN0cmluZyA9PSAidW53cmFwS2V5IikKKyAg
ICAgICAgICAgIHJlc3VsdCB8PSBDcnlwdG9LZXlVc2FnZVVud3JhcEtleTsKKyAgICB9CisgICAg
cmV0dXJuIHRydWU7Cit9CisKK0pTVmFsdWUgSlNXZWJLaXRTdWJ0bGVDcnlwdG86OmVuY3J5cHQo
RXhlY1N0YXRlJiBzdGF0ZSkKK3sKKyAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgMykK
KyAgICAgICAgcmV0dXJuIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRlLCBjcmVhdGVO
b3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKKworICAgIGF1dG8gYWxnb3JpdGhtID0g
Y3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50
KDApKTsKKyAgICBpZiAoIWFsZ29yaXRobSkgeworICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhj
ZXB0aW9uKCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBh
dXRvIHBhcmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFt
ZXRlcnNGb3JFbmNyeXB0KCZzdGF0ZSwgYWxnb3JpdGhtLT5pZGVudGlmaWVyKCksIHN0YXRlLnVu
Y2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBpZiAoIXBhcmFtZXRlcnMpIHsKKyAgICAgICAgQVNT
RVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CisgICAgfQorCisgICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvV3Jh
cHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgaWYgKCFrZXkpCisgICAgICAg
IHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUpOworCisgICAgaWYgKCFrZXktPmFsbG93cyhD
cnlwdG9LZXlVc2FnZUVuY3J5cHQpKSB7CisgICAgICAgIHdyYXBwZWQoKS5kb2N1bWVudCgpLT5h
ZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwg
QVNDSUlMaXRlcmFsKCJLZXkgdXNhZ2VzIGRvIG5vdCBpbmNsdWRlICdlbmNyeXB0JyIpKTsKKyAg
ICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgTk9UX1NVUFBPUlRFRF9FUlIpOworICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBDcnlwdG9PcGVyYXRpb25EYXRh
IGRhdGE7CisgICAgaWYgKCFjcnlwdG9PcGVyYXRpb25EYXRhRnJvbUpTVmFsdWUoJnN0YXRlLCBz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSwgZGF0YSkpIHsKKyAgICAgICAgQVNTRVJUKHN0YXRl
LmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQor
CisgICAgCisgICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VEZWZlcnJlZCA9IEpTUHJvbWlz
ZURlZmVycmVkOjpjcmVhdGUoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSk7CisgICAgRGVmZXJyZWRX
cmFwcGVyIHdyYXBwZXIoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgcHJvbWlzZURlZmVycmVkKTsK
KyAgICBhdXRvIHN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShjb25zdCBWZWN0b3I8dWludDhf
dD4mIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEFycmF5QnVm
ZmVyKHdyYXBwZXIsIHJlc3VsdC5kYXRhKCksIHJlc3VsdC5zaXplKCkpOworICAgIH07CisgICAg
YXV0byBmYWlsdXJlQ2FsbGJhY2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgd3Jh
cHBlci5yZWplY3QobnVsbHB0cik7CisgICAgfTsKKworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OworICAgIGFsZ29yaXRobS0+ZW5jcnlwdCgqcGFyYW1ldGVycywgKmtleSwgZGF0YSwgV1RGTW92
ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKKyAgICBp
ZiAoZWMpIHsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgZWMpOworICAgICAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gcHJvbWlzZURlZmVycmVk
LT5wcm9taXNlKCk7Cit9CisKK0pTVmFsdWUgSlNXZWJLaXRTdWJ0bGVDcnlwdG86OmRlY3J5cHQo
RXhlY1N0YXRlJiBzdGF0ZSkKK3sKKyAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgMykK
KyAgICAgICAgcmV0dXJuIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRlLCBjcmVhdGVO
b3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKKworICAgIGF1dG8gYWxnb3JpdGhtID0g
Y3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50
KDApKTsKKyAgICBpZiAoIWFsZ29yaXRobSkgeworICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhj
ZXB0aW9uKCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBh
dXRvIHBhcmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFt
ZXRlcnNGb3JEZWNyeXB0KCZzdGF0ZSwgYWxnb3JpdGhtLT5pZGVudGlmaWVyKCksIHN0YXRlLnVu
Y2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBpZiAoIXBhcmFtZXRlcnMpIHsKKyAgICAgICAgQVNT
RVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CisgICAgfQorCisgICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvV3Jh
cHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgaWYgKCFrZXkpCisgICAgICAg
IHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUpOworCisgICAgaWYgKCFrZXktPmFsbG93cyhD
cnlwdG9LZXlVc2FnZURlY3J5cHQpKSB7CisgICAgICAgIHdyYXBwZWQoKS5kb2N1bWVudCgpLT5h
ZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwg
QVNDSUlMaXRlcmFsKCJLZXkgdXNhZ2VzIGRvIG5vdCBpbmNsdWRlICdkZWNyeXB0JyIpKTsKKyAg
ICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgTk9UX1NVUFBPUlRFRF9FUlIpOworICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBDcnlwdG9PcGVyYXRpb25EYXRh
IGRhdGE7CisgICAgaWYgKCFjcnlwdG9PcGVyYXRpb25EYXRhRnJvbUpTVmFsdWUoJnN0YXRlLCBz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSwgZGF0YSkpIHsKKyAgICAgICAgQVNTRVJUKHN0YXRl
LmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQor
CisgICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VEZWZlcnJlZCA9IEpTUHJvbWlzZURlZmVy
cmVkOjpjcmVhdGUoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSk7CisgICAgRGVmZXJyZWRXcmFwcGVy
IHdyYXBwZXIoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgcHJvbWlzZURlZmVycmVkKTsKKyAgICBh
dXRvIHN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4mIHJl
c3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEFycmF5QnVmZmVyKHdy
YXBwZXIsIHJlc3VsdC5kYXRhKCksIHJlc3VsdC5zaXplKCkpOworICAgIH07CisgICAgYXV0byBm
YWlsdXJlQ2FsbGJhY2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgd3JhcHBlci5y
ZWplY3QobnVsbHB0cik7CisgICAgfTsKKworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAg
IGFsZ29yaXRobS0+ZGVjcnlwdCgqcGFyYW1ldGVycywgKmtleSwgZGF0YSwgV1RGTW92ZShzdWNj
ZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKKyAgICBpZiAoZWMp
IHsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgZWMpOworICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gcHJvbWlzZURlZmVycmVkLT5wcm9t
aXNlKCk7Cit9CisKK0pTVmFsdWUgSlNXZWJLaXRTdWJ0bGVDcnlwdG86OnNpZ24oRXhlY1N0YXRl
JiBzdGF0ZSkKK3sKKyAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgMykKKyAgICAgICAg
cmV0dXJuIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRlLCBjcmVhdGVOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcigmc3RhdGUpKTsKKworICAgIGF1dG8gYWxnb3JpdGhtID0gY3JlYXRlQWxn
b3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAg
ICBpZiAoIWFsZ29yaXRobSkgeworICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkp
OworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBhdXRvIHBhcmFt
ZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JT
aWduKCZzdGF0ZSwgYWxnb3JpdGhtLT5pZGVudGlmaWVyKCksIHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDApKTsKKyAgICBpZiAoIXBhcmFtZXRlcnMpIHsKKyAgICAgICAgQVNTRVJUKHN0YXRlLmhh
ZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisg
ICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvV3JhcHBlZChzdGF0ZS51
bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgaWYgKCFrZXkpCisgICAgICAgIHJldHVybiB0aHJv
d1R5cGVFcnJvcigmc3RhdGUpOworCisgICAgaWYgKCFrZXktPmFsbG93cyhDcnlwdG9LZXlVc2Fn
ZVNpZ24pKSB7CisgICAgICAgIHdyYXBwZWQoKS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgQVNDSUlMaXRlcmFsKCJL
ZXkgdXNhZ2VzIGRvIG5vdCBpbmNsdWRlICdzaWduJyIpKTsKKyAgICAgICAgc2V0RE9NRXhjZXB0
aW9uKCZzdGF0ZSwgTk9UX1NVUFBPUlRFRF9FUlIpOworICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKKyAgICB9CisKKyAgICBDcnlwdG9PcGVyYXRpb25EYXRhIGRhdGE7CisgICAgaWYgKCFj
cnlwdG9PcGVyYXRpb25EYXRhRnJvbUpTVmFsdWUoJnN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1
bWVudCgyKSwgZGF0YSkpIHsKKyAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsK
KyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgSlNQcm9taXNlRGVm
ZXJyZWQqIHByb21pc2VEZWZlcnJlZCA9IEpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoJnN0YXRl
LCBnbG9iYWxPYmplY3QoKSk7CisgICAgRGVmZXJyZWRXcmFwcGVyIHdyYXBwZXIoJnN0YXRlLCBn
bG9iYWxPYmplY3QoKSwgcHJvbWlzZURlZmVycmVkKTsKKyAgICBhdXRvIHN1Y2Nlc3NDYWxsYmFj
ayA9IFt3cmFwcGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4mIHJlc3VsdCkgbXV0YWJsZSB7Cisg
ICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEFycmF5QnVmZmVyKHdyYXBwZXIsIHJlc3VsdC5kYXRh
KCksIHJlc3VsdC5zaXplKCkpOworICAgIH07CisgICAgYXV0byBmYWlsdXJlQ2FsbGJhY2sgPSBb
d3JhcHBlcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgd3JhcHBlci5yZWplY3QobnVsbHB0cik7Cisg
ICAgfTsKKworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIGFsZ29yaXRobS0+c2lnbigq
cGFyYW1ldGVycywgKmtleSwgZGF0YSwgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3Zl
KGZhaWx1cmVDYWxsYmFjayksIGVjKTsKKyAgICBpZiAoZWMpIHsKKyAgICAgICAgc2V0RE9NRXhj
ZXB0aW9uKCZzdGF0ZSwgZWMpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9
CisKKyAgICByZXR1cm4gcHJvbWlzZURlZmVycmVkLT5wcm9taXNlKCk7Cit9CisKK0pTVmFsdWUg
SlNXZWJLaXRTdWJ0bGVDcnlwdG86OnZlcmlmeShFeGVjU3RhdGUmIHN0YXRlKQoreworICAgIGlm
IChzdGF0ZS5hcmd1bWVudENvdW50KCkgPCA0KQorICAgICAgICByZXR1cm4gc3RhdGUudm0oKS50
aHJvd0V4Y2VwdGlvbigmc3RhdGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0
ZSkpOworCisgICAgYXV0byBhbGdvcml0aG0gPSBjcmVhdGVBbGdvcml0aG1Gcm9tSlNWYWx1ZShz
dGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIGlmICghYWxnb3JpdGhtKSB7
CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIGF1dG8gcGFyYW1ldGVycyA9IEpTQ3J5cHRvQWxn
b3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvclZlcmlmeSgmc3RhdGUsIGFsZ29y
aXRobS0+aWRlbnRpZmllcigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgaWYg
KCFwYXJhbWV0ZXJzKSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Cisg
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIFJlZlB0cjxDcnlwdG9L
ZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MSkpOworICAgIGlmICgha2V5KQorICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRl
KTsKKworICAgIGlmICgha2V5LT5hbGxvd3MoQ3J5cHRvS2V5VXNhZ2VWZXJpZnkpKSB7CisgICAg
ICAgIHdyYXBwZWQoKS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
OjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgQVNDSUlMaXRlcmFsKCJLZXkgdXNhZ2VzIGRvIG5v
dCBpbmNsdWRlICd2ZXJpZnknIikpOworICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBO
T1RfU1VQUE9SVEVEX0VSUik7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0K
KworICAgIENyeXB0b09wZXJhdGlvbkRhdGEgc2lnbmF0dXJlOworICAgIGlmICghY3J5cHRvT3Bl
cmF0aW9uRGF0YUZyb21KU1ZhbHVlKCZzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMiks
IHNpZ25hdHVyZSkpIHsKKyAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgQ3J5cHRvT3BlcmF0aW9u
RGF0YSBkYXRhOworICAgIGlmICghY3J5cHRvT3BlcmF0aW9uRGF0YUZyb21KU1ZhbHVlKCZzdGF0
ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMyksIGRhdGEpKSB7CisgICAgICAgIEFTU0VSVChz
dGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAg
IH0KKworICAgIEpTUHJvbWlzZURlZmVycmVkKiBwcm9taXNlRGVmZXJyZWQgPSBKU1Byb21pc2VE
ZWZlcnJlZDo6Y3JlYXRlKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCkpOworICAgIERlZmVycmVkV3Jh
cHBlciB3cmFwcGVyKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHByb21pc2VEZWZlcnJlZCk7Cisg
ICAgYXV0byBzdWNjZXNzQ2FsbGJhY2sgPSBbd3JhcHBlcl0oYm9vbCByZXN1bHQpIG11dGFibGUg
eworICAgICAgICB3cmFwcGVyLnJlc29sdmUocmVzdWx0KTsKKyAgICB9OworICAgIGF1dG8gZmFp
bHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIHdyYXBwZXIucmVq
ZWN0KG51bGxwdHIpOworICAgIH07CisKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBh
bGdvcml0aG0tPnZlcmlmeSgqcGFyYW1ldGVycywgKmtleSwgc2lnbmF0dXJlLCBkYXRhLCBXVEZN
b3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOworICAg
IGlmIChlYykgeworICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7CisgICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIHJldHVybiBwcm9taXNlRGVmZXJy
ZWQtPnByb21pc2UoKTsKK30KKworSlNWYWx1ZSBKU1dlYktpdFN1YnRsZUNyeXB0bzo6ZGlnZXN0
KEV4ZWNTdGF0ZSYgc3RhdGUpCit7CisgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDIp
CisgICAgICAgIHJldHVybiBzdGF0ZS52bSgpLnRocm93RXhjZXB0aW9uKCZzdGF0ZSwgY3JlYXRl
Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7CisKKyAgICBhdXRvIGFsZ29yaXRobSA9
IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVu
dCgwKSk7CisgICAgaWYgKCFhbGdvcml0aG0pIHsKKyAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4
Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAg
YXV0byBwYXJhbWV0ZXJzID0gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJh
bWV0ZXJzRm9yRGlnZXN0KCZzdGF0ZSwgYWxnb3JpdGhtLT5pZGVudGlmaWVyKCksIHN0YXRlLnVu
Y2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBpZiAoIXBhcmFtZXRlcnMpIHsKKyAgICAgICAgQVNT
RVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CisgICAgfQorCisgICAgQ3J5cHRvT3BlcmF0aW9uRGF0YSBkYXRhOworICAgIGlmICghY3J5cHRv
T3BlcmF0aW9uRGF0YUZyb21KU1ZhbHVlKCZzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MSksIGRhdGEpKSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIEpTUHJvbWlzZURlZmVycmVk
KiBwcm9taXNlRGVmZXJyZWQgPSBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKCZzdGF0ZSwgZ2xv
YmFsT2JqZWN0KCkpOworICAgIERlZmVycmVkV3JhcHBlciB3cmFwcGVyKCZzdGF0ZSwgZ2xvYmFs
T2JqZWN0KCksIHByb21pc2VEZWZlcnJlZCk7CisgICAgYXV0byBzdWNjZXNzQ2FsbGJhY2sgPSBb
d3JhcHBlcl0oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiByZXN1bHQpIG11dGFibGUgeworICAgICAg
ICBmdWxmaWxsUHJvbWlzZVdpdGhBcnJheUJ1ZmZlcih3cmFwcGVyLCByZXN1bHQuZGF0YSgpLCBy
ZXN1bHQuc2l6ZSgpKTsKKyAgICB9OworICAgIGF1dG8gZmFpbHVyZUNhbGxiYWNrID0gW3dyYXBw
ZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOworICAgIH07
CisKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBhbGdvcml0aG0tPmRpZ2VzdCgqcGFy
YW1ldGVycywgZGF0YSwgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVD
YWxsYmFjayksIGVjKTsKKyAgICBpZiAoZWMpIHsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZz
dGF0ZSwgZWMpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gcHJvbWlzZURlZmVycmVkLT5wcm9taXNlKCk7Cit9CisKK0pTVmFsdWUgSlNXZWJLaXRT
dWJ0bGVDcnlwdG86OmdlbmVyYXRlS2V5KEV4ZWNTdGF0ZSYgc3RhdGUpCit7CisgICAgaWYgKHN0
YXRlLmFyZ3VtZW50Q291bnQoKSA8IDEpCisgICAgICAgIHJldHVybiBzdGF0ZS52bSgpLnRocm93
RXhjZXB0aW9uKCZzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7
CisKKyAgICBhdXRvIGFsZ29yaXRobSA9IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0YXRl
LCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgaWYgKCFhbGdvcml0aG0pIHsKKyAg
ICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CisgICAgfQorCisgICAgYXV0byBwYXJhbWV0ZXJzID0gSlNDcnlwdG9BbGdvcml0
aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yR2VuZXJhdGVLZXkoJnN0YXRlLCBhbGdv
cml0aG0tPmlkZW50aWZpZXIoKSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIGlm
ICghcGFyYW1ldGVycykgeworICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwor
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBib29sIGV4dHJhY3Rh
YmxlID0gZmFsc2U7CisgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA+PSAyKSB7CisgICAg
ICAgIGV4dHJhY3RhYmxlID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9Cb29sZWFuKCZz
dGF0ZSk7CisgICAgICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIENyeXB0b0tleVVzYWdlIGtleVVzYWdl
cyA9IDA7CisgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA+PSAzKSB7CisgICAgICAgIGlm
ICghY3J5cHRvS2V5VXNhZ2VzRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLmFyZ3VtZW50KDIpLCBr
ZXlVc2FnZXMpKSB7CisgICAgICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwor
ICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBKU1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZURlZmVycmVkID0gSlNQcm9taXNlRGVmZXJyZWQ6
OmNyZWF0ZSgmc3RhdGUsIGdsb2JhbE9iamVjdCgpKTsKKyAgICBEZWZlcnJlZFdyYXBwZXIgd3Jh
cHBlcigmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCBwcm9taXNlRGVmZXJyZWQpOworICAgIGF1dG8g
c3VjY2Vzc0NhbGxiYWNrID0gW3dyYXBwZXJdKENyeXB0b0tleSoga2V5LCBDcnlwdG9LZXlQYWly
KiBrZXlQYWlyKSBtdXRhYmxlIHsKKyAgICAgICAgQVNTRVJUKGtleSB8fCBrZXlQYWlyKTsKKyAg
ICAgICAgQVNTRVJUKCFrZXkgfHwgIWtleVBhaXIpOworICAgICAgICBpZiAoa2V5KQorICAgICAg
ICAgICAgd3JhcHBlci5yZXNvbHZlKGtleSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHdy
YXBwZXIucmVzb2x2ZShrZXlQYWlyKTsKKyAgICB9OworICAgIGF1dG8gZmFpbHVyZUNhbGxiYWNr
ID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIp
OworICAgIH07CisKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBhbGdvcml0aG0tPmdl
bmVyYXRlS2V5KCpwYXJhbWV0ZXJzLCBleHRyYWN0YWJsZSwga2V5VXNhZ2VzLCBXVEZNb3ZlKHN1
Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOworICAgIGlmIChl
YykgeworICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7CisgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIHJldHVybiBwcm9taXNlRGVmZXJyZWQtPnBy
b21pc2UoKTsKK30KKworc3RhdGljIHZvaWQgaW1wb3J0S2V5KEV4ZWNTdGF0ZSYgc3RhdGUsIENy
eXB0b0tleUZvcm1hdCBrZXlGb3JtYXQsIENyeXB0b09wZXJhdGlvbkRhdGEgZGF0YSwgUmVmUHRy
PENyeXB0b0FsZ29yaXRobT4gYWxnb3JpdGhtLCBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVycz4gcGFyYW1ldGVycywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2Uga2V5VXNh
Z2VzLCBDcnlwdG9BbGdvcml0aG06OktleUNhbGxiYWNrIGNhbGxiYWNrLCBDcnlwdG9BbGdvcml0
aG06OlZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2spCit7CisgICAgc3RkOjp1bmlxdWVfcHRy
PENyeXB0b0tleVNlcmlhbGl6YXRpb24+IGtleVNlcmlhbGl6YXRpb247CisgICAgc3dpdGNoIChr
ZXlGb3JtYXQpIHsKKyAgICBjYXNlIENyeXB0b0tleUZvcm1hdDo6UmF3OgorICAgICAgICBrZXlT
ZXJpYWxpemF0aW9uID0gQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdzo6Y3JlYXRlKGRhdGEpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIENyeXB0b0tleUZvcm1hdDo6SldLOiB7CisgICAgICAg
IFN0cmluZyBqd2tTdHJpbmcgPSBTdHJpbmc6OmZyb21VVEY4KGRhdGEuZmlyc3QsIGRhdGEuc2Vj
b25kKTsKKyAgICAgICAgaWYgKGp3a1N0cmluZy5pc051bGwoKSkgeworICAgICAgICAgICAgdGhy
b3dUeXBlRXJyb3IoJnN0YXRlLCBBU0NJSUxpdGVyYWwoIkpXSyBKU09OIHNlcmlhbGl6YXRpb24g
aXMgbm90IHZhbGlkIFVURi04IikpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgICAgIGtleVNlcmlhbGl6YXRpb24gPSBzdGQ6Om1ha2VfdW5pcXVlPEpTQ3J5cHRvS2V5U2Vy
aWFsaXphdGlvbkpXSz4oJnN0YXRlLCBqd2tTdHJpbmcpOworICAgICAgICBpZiAoc3RhdGUuaGFk
RXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGJyZWFrOworICAgIH0K
KyAgICBkZWZhdWx0OgorICAgICAgICB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIEFTQ0lJTGl0ZXJh
bCgiVW5zdXBwb3J0ZWQga2V5IGZvcm1hdCBmb3IgaW1wb3J0IikpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgQVNTRVJUKGtleVNlcmlhbGl6YXRpb24pOworCisgICAgT3B0aW9uYWw8
Q3J5cHRvQWxnb3JpdGhtUGFpcj4gcmVjb25jaWxlZFJlc3VsdCA9IGtleVNlcmlhbGl6YXRpb24t
PnJlY29uY2lsZUFsZ29yaXRobShhbGdvcml0aG0uZ2V0KCksIHBhcmFtZXRlcnMuZ2V0KCkpOwor
ICAgIGlmICghcmVjb25jaWxlZFJlc3VsdCkgeworICAgICAgICBpZiAoIXN0YXRlLmhhZEV4Y2Vw
dGlvbigpKQorICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBBU0NJSUxpdGVyYWwo
IkFsZ29yaXRobSBzcGVjaWZpZWQgaW4ga2V5IGlzIG5vdCBjb21wYXRpYmxlIHdpdGggb25lIHBh
c3NlZCB0byBpbXBvcnRLZXkgYXMgYXJndW1lbnQiKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm47CisKKyAgICBh
bGdvcml0aG0gPSByZWNvbmNpbGVkUmVzdWx0LT5hbGdvcml0aG07CisgICAgcGFyYW1ldGVycyA9
IHJlY29uY2lsZWRSZXN1bHQtPnBhcmFtZXRlcnM7CisgICAgaWYgKCFhbGdvcml0aG0pIHsKKyAg
ICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBBU0NJSUxpdGVyYWwoIk5laXRoZXIga2V5IG5v
ciBmdW5jdGlvbiBhcmd1bWVudCBoYXMgY3J5cHRvIGFsZ29yaXRobSBzcGVjaWZpZWQiKSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgQVNTRVJUKHBhcmFtZXRlcnMpOworCisgICAga2V5
U2VyaWFsaXphdGlvbi0+cmVjb25jaWxlRXh0cmFjdGFibGUoZXh0cmFjdGFibGUpOworICAgIGlm
IChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAga2V5U2VyaWFs
aXphdGlvbi0+cmVjb25jaWxlVXNhZ2VzKGtleVVzYWdlcyk7CisgICAgaWYgKHN0YXRlLmhhZEV4
Y2VwdGlvbigpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGtleURhdGEgPSBrZXlTZXJp
YWxpemF0aW9uLT5rZXlEYXRhKCk7CisgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBhbGdvcml0aG0t
PmltcG9ydEtleSgqcGFyYW1ldGVycywgKmtleURhdGEsIGV4dHJhY3RhYmxlLCBrZXlVc2FnZXMs
IFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKKyAgICBp
ZiAoZWMpCisgICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIGVjKTsKK30KKworSlNWYWx1
ZSBKU1dlYktpdFN1YnRsZUNyeXB0bzo6aW1wb3J0S2V5KEV4ZWNTdGF0ZSYgc3RhdGUpCit7Cisg
ICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDMpCisgICAgICAgIHJldHVybiBzdGF0ZS52
bSgpLnRocm93RXhjZXB0aW9uKCZzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
JnN0YXRlKSk7CisKKyAgICBDcnlwdG9LZXlGb3JtYXQga2V5Rm9ybWF0OworICAgIGlmICghY3J5
cHRvS2V5Rm9ybWF0RnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLmFyZ3VtZW50KDApLCBrZXlGb3Jt
YXQpKSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIENyeXB0b09wZXJhdGlvbkRhdGEgZGF0
YTsKKyAgICBpZiAoIWNyeXB0b09wZXJhdGlvbkRhdGFGcm9tSlNWYWx1ZSgmc3RhdGUsIHN0YXRl
LnVuY2hlY2tlZEFyZ3VtZW50KDEpLCBkYXRhKSkgeworICAgICAgICBBU1NFUlQoc3RhdGUuaGFk
RXhjZXB0aW9uKCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAg
ICBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtPiBhbGdvcml0aG07CisgICAgUmVmUHRyPENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnM+IHBhcmFtZXRlcnM7CisgICAgaWYgKCFzdGF0ZS51bmNoZWNrZWRB
cmd1bWVudCgyKS5pc051bGwoKSkgeworICAgICAgICBhbGdvcml0aG0gPSBjcmVhdGVBbGdvcml0
aG1Gcm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikpOworICAgICAg
ICBpZiAoIWFsZ29yaXRobSkgeworICAgICAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlv
bigpKTsKKyAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgICAgICB9CisgICAg
ICAgIHBhcmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFt
ZXRlcnNGb3JJbXBvcnRLZXkoJnN0YXRlLCBhbGdvcml0aG0tPmlkZW50aWZpZXIoKSwgc3RhdGUu
dW5jaGVja2VkQXJndW1lbnQoMikpOworICAgICAgICBpZiAoIXBhcmFtZXRlcnMpIHsKKyAgICAg
ICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGJvb2wgZXh0cmFjdGFibGUg
PSBmYWxzZTsKKyAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpID49IDQpIHsKKyAgICAgICAg
ZXh0cmFjdGFibGUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgzKS50b0Jvb2xlYW4oJnN0YXRl
KTsKKyAgICAgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgQ3J5cHRvS2V5VXNhZ2Uga2V5VXNhZ2VzID0g
MDsKKyAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpID49IDUpIHsKKyAgICAgICAgaWYgKCFj
cnlwdG9LZXlVc2FnZXNGcm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUuYXJndW1lbnQoNCksIGtleVVz
YWdlcykpIHsKKyAgICAgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAg
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIEpT
UHJvbWlzZURlZmVycmVkKiBwcm9taXNlRGVmZXJyZWQgPSBKU1Byb21pc2VEZWZlcnJlZDo6Y3Jl
YXRlKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCkpOworICAgIERlZmVycmVkV3JhcHBlciB3cmFwcGVy
KCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHByb21pc2VEZWZlcnJlZCk7CisgICAgYXV0byBzdWNj
ZXNzQ2FsbGJhY2sgPSBbd3JhcHBlcl0oQ3J5cHRvS2V5JiByZXN1bHQpIG11dGFibGUgeworICAg
ICAgICB3cmFwcGVyLnJlc29sdmUocmVzdWx0KTsKKyAgICB9OworICAgIGF1dG8gZmFpbHVyZUNh
bGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIHdyYXBwZXIucmVqZWN0KG51
bGxwdHIpOworICAgIH07CisKKyAgICBXZWJDb3JlOjppbXBvcnRLZXkoc3RhdGUsIGtleUZvcm1h
dCwgZGF0YSwgV1RGTW92ZShhbGdvcml0aG0pLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBleHRyYWN0
YWJsZSwga2V5VXNhZ2VzLCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZmFpbHVy
ZUNhbGxiYWNrKSk7CisgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKKworICAgIHJldHVybiBwcm9taXNlRGVmZXJyZWQtPnByb21pc2Uo
KTsKK30KKworc3RhdGljIHZvaWQgZXhwb3J0S2V5KEV4ZWNTdGF0ZSYgc3RhdGUsIENyeXB0b0tl
eUZvcm1hdCBrZXlGb3JtYXQsIGNvbnN0IENyeXB0b0tleSYga2V5LCBDcnlwdG9BbGdvcml0aG06
OlZlY3RvckNhbGxiYWNrIGNhbGxiYWNrLCBDcnlwdG9BbGdvcml0aG06OlZvaWRDYWxsYmFjayBm
YWlsdXJlQ2FsbGJhY2spCit7CisgICAgaWYgKCFrZXkuZXh0cmFjdGFibGUoKSkgeworICAgICAg
ICB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIEFTQ0lJTGl0ZXJhbCgiS2V5IGlzIG5vdCBleHRyYWN0
YWJsZSIpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHN3aXRjaCAoa2V5Rm9ybWF0
KSB7CisgICAgY2FzZSBDcnlwdG9LZXlGb3JtYXQ6OlJhdzogeworICAgICAgICBWZWN0b3I8dWlu
dDhfdD4gcmVzdWx0OworICAgICAgICBpZiAoQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdzo6c2Vy
aWFsaXplKGtleSwgcmVzdWx0KSkKKyAgICAgICAgICAgIGNhbGxiYWNrKHJlc3VsdCk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIGZhaWx1cmVDYWxsYmFjaygpOworICAgICAgICBicmVhazsK
KyAgICB9CisgICAgY2FzZSBDcnlwdG9LZXlGb3JtYXQ6OkpXSzogeworICAgICAgICBTdHJpbmcg
cmVzdWx0ID0gSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjpzZXJpYWxpemUoJnN0YXRlLCBr
ZXkpOworICAgICAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIENTdHJpbmcgdXRmOFN0cmluZyA9IHJlc3VsdC51dGY4KFN0cmljdENvbnZl
cnNpb24pOworICAgICAgICBWZWN0b3I8dWludDhfdD4gcmVzdWx0QnVmZmVyOworICAgICAgICBy
ZXN1bHRCdWZmZXIuYXBwZW5kKHV0ZjhTdHJpbmcuZGF0YSgpLCB1dGY4U3RyaW5nLmxlbmd0aCgp
KTsKKyAgICAgICAgY2FsbGJhY2socmVzdWx0QnVmZmVyKTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorICAgIGRlZmF1bHQ6CisgICAgICAgIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgQVNDSUlMaXRl
cmFsKCJVbnN1cHBvcnRlZCBrZXkgZm9ybWF0IGZvciBleHBvcnQiKSk7CisgICAgICAgIGJyZWFr
OworICAgIH0KK30KKworSlNWYWx1ZSBKU1dlYktpdFN1YnRsZUNyeXB0bzo6ZXhwb3J0S2V5KEV4
ZWNTdGF0ZSYgc3RhdGUpCit7CisgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDIpCisg
ICAgICAgIHJldHVybiBzdGF0ZS52bSgpLnRocm93RXhjZXB0aW9uKCZzdGF0ZSwgY3JlYXRlTm90
RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7CisKKyAgICBDcnlwdG9LZXlGb3JtYXQga2V5
Rm9ybWF0OworICAgIGlmICghY3J5cHRvS2V5Rm9ybWF0RnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRl
LmFyZ3VtZW50KDApLCBrZXlGb3JtYXQpKSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNl
cHRpb24oKSk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIFJl
ZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQoc3RhdGUudW5jaGVj
a2VkQXJndW1lbnQoMSkpOworICAgIGlmICgha2V5KQorICAgICAgICByZXR1cm4gdGhyb3dUeXBl
RXJyb3IoJnN0YXRlKTsKKworICAgIEpTUHJvbWlzZURlZmVycmVkKiBwcm9taXNlRGVmZXJyZWQg
PSBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCkpOworICAg
IERlZmVycmVkV3JhcHBlciB3cmFwcGVyKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHByb21pc2VE
ZWZlcnJlZCk7CisgICAgYXV0byBzdWNjZXNzQ2FsbGJhY2sgPSBbd3JhcHBlcl0oY29uc3QgVmVj
dG9yPHVpbnQ4X3Q+JiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBmdWxmaWxsUHJvbWlzZVdp
dGhBcnJheUJ1ZmZlcih3cmFwcGVyLCByZXN1bHQuZGF0YSgpLCByZXN1bHQuc2l6ZSgpKTsKKyAg
ICB9OworICAgIGF1dG8gZmFpbHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7Cisg
ICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOworICAgIH07CisKKyAgICBXZWJDb3JlOjpl
eHBvcnRLZXkoc3RhdGUsIGtleUZvcm1hdCwgKmtleSwgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2sp
LCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjaykpOworICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24o
KSkKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisKKyAgICByZXR1cm4gcHJvbWlzZURl
ZmVycmVkLT5wcm9taXNlKCk7Cit9CisKK0pTVmFsdWUgSlNXZWJLaXRTdWJ0bGVDcnlwdG86Ondy
YXBLZXkoRXhlY1N0YXRlJiBzdGF0ZSkKK3sKKyAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgp
IDwgNCkKKyAgICAgICAgcmV0dXJuIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRlLCBj
cmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKKworICAgIENyeXB0b0tleUZv
cm1hdCBrZXlGb3JtYXQ7CisgICAgaWYgKCFjcnlwdG9LZXlGb3JtYXRGcm9tSlNWYWx1ZShzdGF0
ZSwgc3RhdGUuYXJndW1lbnQoMCksIGtleUZvcm1hdCkpIHsKKyAgICAgICAgQVNTRVJUKHN0YXRl
LmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQor
CisgICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvV3JhcHBlZChzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgaWYgKCFrZXkpCisgICAgICAgIHJldHVybiB0
aHJvd1R5cGVFcnJvcigmc3RhdGUpOworCisgICAgUmVmUHRyPENyeXB0b0tleT4gd3JhcHBpbmdL
ZXkgPSBKU0NyeXB0b0tleTo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpKTsK
KyAgICBpZiAoIWtleSkKKyAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSk7CisK
KyAgICBpZiAoIXdyYXBwaW5nS2V5LT5hbGxvd3MoQ3J5cHRvS2V5VXNhZ2VXcmFwS2V5KSkgewor
ICAgICAgICB3cmFwcGVkKCkuZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiS2V5IHVzYWdlcyBk
byBub3QgaW5jbHVkZSAnd3JhcEtleSciKSk7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3Rh
dGUsIE5PVF9TVVBQT1JURURfRVJSKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cisg
ICAgfQorCisgICAgYXV0byBhbGdvcml0aG0gPSBjcmVhdGVBbGdvcml0aG1Gcm9tSlNWYWx1ZShz
dGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMykpOworICAgIGlmICghYWxnb3JpdGhtKSB7
CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIGF1dG8gcGFyYW1ldGVycyA9IEpTQ3J5cHRvQWxn
b3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckVuY3J5cHQoJnN0YXRlLCBhbGdv
cml0aG0tPmlkZW50aWZpZXIoKSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMykpOworICAgIGlm
ICghcGFyYW1ldGVycykgeworICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwor
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBKU1Byb21pc2VEZWZl
cnJlZCogcHJvbWlzZURlZmVycmVkID0gSlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSgmc3RhdGUs
IGdsb2JhbE9iamVjdCgpKTsKKyAgICBEZWZlcnJlZFdyYXBwZXIgd3JhcHBlcigmc3RhdGUsIGds
b2JhbE9iamVjdCgpLCBwcm9taXNlRGVmZXJyZWQpOworCisgICAgYXV0byBleHBvcnRTdWNjZXNz
Q2FsbGJhY2sgPSBba2V5Rm9ybWF0LCBhbGdvcml0aG0sIHBhcmFtZXRlcnMsIHdyYXBwaW5nS2V5
LCB3cmFwcGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4mIGV4cG9ydGVkS2V5RGF0YSkgbXV0YWJs
ZSB7CisgICAgICAgIGF1dG8gZW5jcnlwdFN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShjb25z
dCBWZWN0b3I8dWludDhfdD4mIGVuY3J5cHRlZERhdGEpIG11dGFibGUgeworICAgICAgICAgICAg
ZnVsZmlsbFByb21pc2VXaXRoQXJyYXlCdWZmZXIod3JhcHBlciwgZW5jcnlwdGVkRGF0YS5kYXRh
KCksIGVuY3J5cHRlZERhdGEuc2l6ZSgpKTsKKyAgICAgICAgfTsKKyAgICAgICAgYXV0byBlbmNy
eXB0RmFpbHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7CisgICAgICAgICAgICB3
cmFwcGVyLnJlamVjdChudWxscHRyKTsKKyAgICAgICAgfTsKKyAgICAgICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7CisgICAgICAgIGFsZ29yaXRobS0+ZW5jcnlwdEZvcldyYXBLZXkoKnBhcmFtZXRl
cnMsICp3cmFwcGluZ0tleSwgc3RkOjptYWtlX3BhaXIoZXhwb3J0ZWRLZXlEYXRhLmRhdGEoKSwg
ZXhwb3J0ZWRLZXlEYXRhLnNpemUoKSksIFdURk1vdmUoZW5jcnlwdFN1Y2Nlc3NDYWxsYmFjayks
IFdURk1vdmUoZW5jcnlwdEZhaWx1cmVDYWxsYmFjayksIGVjKTsKKyAgICAgICAgaWYgKGVjKSB7
CisgICAgICAgICAgICAvLyBGSVhNRTogUmVwb3J0IGZhaWx1cmUgZGV0YWlscyB0byBjb25zb2xl
LCBhbmQgcG9zc2libHkgdG8gY2FsbGluZyBzY3JpcHQgb25jZSB0aGVyZSBpcyBhIHN0YW5kYXJk
aXplZCB3YXkgdG8gcGFzcyBlcnJvcnMgdG8gV2ViQ3J5cHRvIHByb21pc2UgcmVqZWN0IGZ1bmN0
aW9ucy4KKyAgICAgICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOworICAgICAgICB9Cisg
ICAgfTsKKworICAgIGF1dG8gZXhwb3J0RmFpbHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0
YWJsZSB7CisgICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOworICAgIH07CisKKyAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBXZWJDb3JlOjpleHBvcnRLZXkoc3RhdGUsIGtleUZv
cm1hdCwgKmtleSwgV1RGTW92ZShleHBvcnRTdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGV4cG9y
dEZhaWx1cmVDYWxsYmFjaykpOworICAgIGlmIChlYykgeworICAgICAgICBzZXRET01FeGNlcHRp
b24oJnN0YXRlLCBlYyk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKwor
ICAgIHJldHVybiBwcm9taXNlRGVmZXJyZWQtPnByb21pc2UoKTsKK30KKworSlNWYWx1ZSBKU1dl
YktpdFN1YnRsZUNyeXB0bzo6dW53cmFwS2V5KEV4ZWNTdGF0ZSYgc3RhdGUpCit7CisgICAgaWYg
KHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDUpCisgICAgICAgIHJldHVybiBzdGF0ZS52bSgpLnRo
cm93RXhjZXB0aW9uKCZzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRl
KSk7CisKKyAgICBDcnlwdG9LZXlGb3JtYXQga2V5Rm9ybWF0OworICAgIGlmICghY3J5cHRvS2V5
Rm9ybWF0RnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLmFyZ3VtZW50KDApLCBrZXlGb3JtYXQpKSB7
CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIENyeXB0b09wZXJhdGlvbkRhdGEgd3JhcHBlZEtl
eURhdGE7CisgICAgaWYgKCFjcnlwdG9PcGVyYXRpb25EYXRhRnJvbUpTVmFsdWUoJnN0YXRlLCBz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSwgd3JhcHBlZEtleURhdGEpKSB7CisgICAgICAgIEFT
U0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OworICAgIH0KKworICAgIFJlZlB0cjxDcnlwdG9LZXk+IHVud3JhcHBpbmdLZXkgPSBKU0NyeXB0
b0tleTo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpKTsKKyAgICBpZiAoIXVu
d3JhcHBpbmdLZXkpCisgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUpOworCisg
ICAgaWYgKCF1bndyYXBwaW5nS2V5LT5hbGxvd3MoQ3J5cHRvS2V5VXNhZ2VVbndyYXBLZXkpKSB7
CisgICAgICAgIHdyYXBwZWQoKS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgQVNDSUlMaXRlcmFsKCJLZXkgdXNhZ2Vz
IGRvIG5vdCBpbmNsdWRlICd1bndyYXBLZXknIikpOworICAgICAgICBzZXRET01FeGNlcHRpb24o
JnN0YXRlLCBOT1RfU1VQUE9SVEVEX0VSUik7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OworICAgIH0KKworICAgIGF1dG8gdW53cmFwQWxnb3JpdGhtID0gY3JlYXRlQWxnb3JpdGhtRnJv
bUpTVmFsdWUoc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDMpKTsKKyAgICBpZiAoIXVu
d3JhcEFsZ29yaXRobSkgeworICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwor
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisgICAgYXV0byB1bndyYXBBbGdv
cml0aG1QYXJhbWV0ZXJzID0gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJh
bWV0ZXJzRm9yRGVjcnlwdCgmc3RhdGUsIHVud3JhcEFsZ29yaXRobS0+aWRlbnRpZmllcigpLCBz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgzKSk7CisgICAgaWYgKCF1bndyYXBBbGdvcml0aG1QYXJh
bWV0ZXJzKSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIFJlZlB0cjxDcnlwdG9BbGdvcml0
aG0+IHVud3JhcHBlZEtleUFsZ29yaXRobTsKKyAgICBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycz4gdW53cmFwcGVkS2V5QWxnb3JpdGhtUGFyYW1ldGVyczsKKyAgICBpZiAoIXN0YXRl
LnVuY2hlY2tlZEFyZ3VtZW50KDQpLmlzTnVsbCgpKSB7CisgICAgICAgIHVud3JhcHBlZEtleUFs
Z29yaXRobSA9IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS51bmNoZWNr
ZWRBcmd1bWVudCg0KSk7CisgICAgICAgIGlmICghdW53cmFwcGVkS2V5QWxnb3JpdGhtKSB7Cisg
ICAgICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOworICAgICAgICAgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgICAgIH0KKyAgICAgICAgdW53cmFwcGVkS2V5QWxnb3Jp
dGhtUGFyYW1ldGVycyA9IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1l
dGVyc0ZvckltcG9ydEtleSgmc3RhdGUsIHVud3JhcHBlZEtleUFsZ29yaXRobS0+aWRlbnRpZmll
cigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCg0KSk7CisgICAgICAgIGlmICghdW53cmFwcGVk
S2V5QWxnb3JpdGhtUGFyYW1ldGVycykgeworICAgICAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4
Y2VwdGlvbigpKTsKKyAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgICAgICB9
CisgICAgfQorCisgICAgYm9vbCBleHRyYWN0YWJsZSA9IGZhbHNlOworICAgIGlmIChzdGF0ZS5h
cmd1bWVudENvdW50KCkgPj0gNikgeworICAgICAgICBleHRyYWN0YWJsZSA9IHN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDUpLnRvQm9vbGVhbigmc3RhdGUpOworICAgICAgICBpZiAoc3RhdGUuaGFk
RXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisK
KyAgICBDcnlwdG9LZXlVc2FnZSBrZXlVc2FnZXMgPSAwOworICAgIGlmIChzdGF0ZS5hcmd1bWVu
dENvdW50KCkgPj0gNykgeworICAgICAgICBpZiAoIWNyeXB0b0tleVVzYWdlc0Zyb21KU1ZhbHVl
KHN0YXRlLCBzdGF0ZS5hcmd1bWVudCg2KSwga2V5VXNhZ2VzKSkgeworICAgICAgICAgICAgQVNT
RVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOworICAgICAgICB9CisgICAgfQorCisgICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VE
ZWZlcnJlZCA9IEpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoJnN0YXRlLCBnbG9iYWxPYmplY3Qo
KSk7CisgICAgRGVmZXJyZWRXcmFwcGVyIHdyYXBwZXIoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwg
cHJvbWlzZURlZmVycmVkKTsKKyAgICBTdHJvbmc8SlNET01HbG9iYWxPYmplY3Q+IGRvbUdsb2Jh
bE9iamVjdChzdGF0ZS52bSgpLCBnbG9iYWxPYmplY3QoKSk7CisKKyAgICBhdXRvIGRlY3J5cHRT
dWNjZXNzQ2FsbGJhY2sgPSBbZG9tR2xvYmFsT2JqZWN0LCBrZXlGb3JtYXQsIHVud3JhcHBlZEtl
eUFsZ29yaXRobSwgdW53cmFwcGVkS2V5QWxnb3JpdGhtUGFyYW1ldGVycywgZXh0cmFjdGFibGUs
IGtleVVzYWdlcywgd3JhcHBlcl0oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiByZXN1bHQpIG11dGFi
bGUgeworICAgICAgICBhdXRvIGltcG9ydFN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShDcnlw
dG9LZXkmIGtleSkgbXV0YWJsZSB7CisgICAgICAgICAgICB3cmFwcGVyLnJlc29sdmUoa2V5KTsK
KyAgICAgICAgfTsKKyAgICAgICAgYXV0byBpbXBvcnRGYWlsdXJlQ2FsbGJhY2sgPSBbd3JhcHBl
cl0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOworICAg
ICAgICB9OworICAgICAgICBFeGVjU3RhdGUmIHN0YXRlID0gKmRvbUdsb2JhbE9iamVjdC0+Z2xv
YmFsRXhlYygpOworICAgICAgICBXZWJDb3JlOjppbXBvcnRLZXkoc3RhdGUsIGtleUZvcm1hdCwg
c3RkOjptYWtlX3BhaXIocmVzdWx0LmRhdGEoKSwgcmVzdWx0LnNpemUoKSksIHVud3JhcHBlZEtl
eUFsZ29yaXRobSwgdW53cmFwcGVkS2V5QWxnb3JpdGhtUGFyYW1ldGVycywgZXh0cmFjdGFibGUs
IGtleVVzYWdlcywgV1RGTW92ZShpbXBvcnRTdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGltcG9y
dEZhaWx1cmVDYWxsYmFjaykpOworICAgICAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpIHsK
KyAgICAgICAgICAgIC8vIEZJWE1FOiBSZXBvcnQgZXhjZXB0aW9uIGRldGFpbHMgdG8gY29uc29s
ZSwgYW5kIHBvc3NpYmx5IHRvIGNhbGxpbmcgc2NyaXB0IG9uY2UgdGhlcmUgaXMgYSBzdGFuZGFy
ZGl6ZWQgd2F5IHRvIHBhc3MgZXJyb3JzIHRvIFdlYkNyeXB0byBwcm9taXNlIHJlamVjdCBmdW5j
dGlvbnMuCisgICAgICAgICAgICBzdGF0ZS5jbGVhckV4Y2VwdGlvbigpOworICAgICAgICAgICAg
d3JhcHBlci5yZWplY3QobnVsbHB0cik7CisgICAgICAgIH0KKyAgICB9OworCisgICAgYXV0byBk
ZWNyeXB0RmFpbHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIHdy
YXBwZXIucmVqZWN0KG51bGxwdHIpOworICAgIH07CisKKyAgICBFeGNlcHRpb25Db2RlIGVjID0g
MDsKKyAgICB1bndyYXBBbGdvcml0aG0tPmRlY3J5cHRGb3JVbndyYXBLZXkoKnVud3JhcEFsZ29y
aXRobVBhcmFtZXRlcnMsICp1bndyYXBwaW5nS2V5LCB3cmFwcGVkS2V5RGF0YSwgV1RGTW92ZShk
ZWNyeXB0U3VjY2Vzc0NhbGxiYWNrKSwgV1RGTW92ZShkZWNyeXB0RmFpbHVyZUNhbGxiYWNrKSwg
ZWMpOworICAgIGlmIChlYykgeworICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7
CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIHJldHVybiBwcm9t
aXNlRGVmZXJyZWQtPnByb21pc2UoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDY4ZDgyMGMzYWRjNTg2ZWQzNzVhNTg5MWQ4YzI2ZDhhNDNkOWFhNTMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlN1YnRsZUNy
eXB0by5oIgotCi0jaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0KLSNpbmNsdWRlICJEb2N1bWVu
dC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVN1YnRsZUNyeXB0bzo6U3VidGxlQ3J5cHRv
KERvY3VtZW50JiBkb2N1bWVudCkKLSAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKCZk
b2N1bWVudCkKLXsKLX0KLQotRG9jdW1lbnQqIFN1YnRsZUNyeXB0bzo6ZG9jdW1lbnQoKSBjb25z
dAotewotICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKLX0KLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9TdWJ0bGVDcnlwdG8uaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQ2Y2NiN2Y5MTExMTg1ZWI3NDBiNDMwNWFk
ZjJhZWY4YjY5Mzg5Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmgKKysrIC9kZXYvbnVsbApA
QCAtMSw1MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBTdWJ0bGVDcnlwdG9faAotI2Rl
ZmluZSBTdWJ0bGVDcnlwdG9faAotCi0jaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2
ZXIuaCIgCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+Ci0KLSNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1jbGFzcyBEb2N1bWVudDsKLQotY2xhc3MgU3VidGxlQ3J5cHRvIDogcHVibGljIENvbnRleHRE
ZXN0cnVjdGlvbk9ic2VydmVyLCBwdWJsaWMgUmVmQ291bnRlZDxTdWJ0bGVDcnlwdG8+IHsKLXB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPFN1YnRsZUNyeXB0bz4gY3JlYXRlKERvY3VtZW50JiBkb2N1
bWVudCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdWJ0bGVDcnlwdG8oZG9jdW1lbnQpKTsgfQot
Ci0gICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgU3VidGxl
Q3J5cHRvKERvY3VtZW50Jik7Ci19OwotCi19Ci0KLSNlbmRpZgotCi0jZW5kaWYgLy8gU3VidGxl
Q3J5cHRvX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8u
aWRsIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5pZGwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGNmOGZmOGI2OTc4MzU4OTI1YjUxMWRmZWZmNDU1Y2Y1NWU3YjRl
MmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSw0MiAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIENvbmRpdGlvbmFsPVNVQlRMRV9DUllQVE8sCi0g
ICAgSW50ZXJmYWNlTmFtZT1XZWJLaXRTdWJ0bGVDcnlwdG8sCi0gICAgR2VuZXJhdGVJc1JlYWNo
YWJsZT1JbXBsRG9jdW1lbnQsCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCi1dIGludGVyZmFjZSBT
dWJ0bGVDcnlwdG8gewotICAgIFtDdXN0b21dIFByb21pc2UgZW5jcnlwdChBbGdvcml0aG1JZGVu
dGlmaWVyIGFsZ29yaXRobSwgS2V5IGtleSwgc2VxdWVuY2U8Q3J5cHRvT3BlcmF0aW9uRGF0YT4g
ZGF0YSk7Ci0gICAgW0N1c3RvbV0gUHJvbWlzZSBkZWNyeXB0KEFsZ29yaXRobUlkZW50aWZpZXIg
YWxnb3JpdGhtLCBLZXkga2V5LCBzZXF1ZW5jZTxDcnlwdG9PcGVyYXRpb25EYXRhPiBkYXRhKTsK
LSAgICBbQ3VzdG9tXSBQcm9taXNlIHNpZ24oQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0s
IEtleSBrZXksIHNlcXVlbmNlPENyeXB0b09wZXJhdGlvbkRhdGE+IGRhdGEpOwotICAgIFtDdXN0
b21dIFByb21pc2UgdmVyaWZ5KEFsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBLZXkga2V5
LCBDcnlwdG9PcGVyYXRpb25EYXRhIHNpZ25hdHVyZSwgc2VxdWVuY2U8Q3J5cHRvT3BlcmF0aW9u
RGF0YT4gZGF0YSk7Ci0gICAgW0N1c3RvbV0gUHJvbWlzZSBkaWdlc3QoQWxnb3JpdGhtSWRlbnRp
ZmllciBhbGdvcml0aG0sIHNlcXVlbmNlPENyeXB0b09wZXJhdGlvbkRhdGE+IGRhdGEpOwotICAg
IFtDdXN0b21dIFByb21pc2UgZ2VuZXJhdGVLZXkoQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0
aG0sIG9wdGlvbmFsIGJvb2xlYW4gZXh0cmFjdGFibGUsIG9wdGlvbmFsIHNlcXVlbmNlPEtleVVz
YWdlPiBrZXlVc2FnZXMpOwotICAgIFtDdXN0b21dIFByb21pc2UgaW1wb3J0S2V5KEtleUZvcm1h
dCBmb3JtYXQsIENyeXB0b09wZXJhdGlvbkRhdGEga2V5RGF0YSwgQWxnb3JpdGhtSWRlbnRpZmll
cj8gYWxnb3JpdGhtLCBvcHRpb25hbCBib29sZWFuIGV4dHJhY3RhYmxlLCBvcHRpb25hbCBzZXF1
ZW5jZTxLZXlVc2FnZT4ga2V5VXNhZ2VzKTsKLSAgICBbQ3VzdG9tXSBQcm9taXNlIGV4cG9ydEtl
eShLZXlGb3JtYXQgZm9ybWF0LCBLZXkga2V5KTsKLSAgICBbQ3VzdG9tXSBQcm9taXNlIHdyYXBL
ZXkoS2V5Rm9ybWF0IGZvcm1hdCwgS2V5IGtleSwgS2V5IHdyYXBwaW5nS2V5LCBBbGdvcml0aG1J
ZGVudGlmaWVyIHdyYXBBbGdvcml0aG0pOwotICAgIFtDdXN0b21dIFByb21pc2UgdW53cmFwS2V5
KEtleUZvcm1hdCBmb3JtYXQsIENyeXB0b09wZXJhdGlvbkRhdGEgd3JhcHBlZEtleSwgS2V5IHVu
d3JhcHBpbmdLZXksIEFsZ29yaXRobUlkZW50aWZpZXIgdW53cmFwQWxnb3JpdGhtLCBBbGdvcml0
aG1JZGVudGlmaWVyPyB1bndyYXBwZWRLZXlBbGdvcml0aG0sIG9wdGlvbmFsIGJvb2xlYW4gZXh0
cmFjdGFibGUsIG9wdGlvbmFsIHNlcXVlbmNlPEtleVVzYWdlPiBrZXlVc2FnZXMpOwotfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uY3BwIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
M2I2OGFmOWNjNWMzM2UxNjg0ZjllYmU3Yzg1NGEwMjM1OTJiNDkyOAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uY3BwCkBAIC0wLDAg
KzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
S2l0U3VidGxlQ3J5cHRvLmgiCisKKyNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKKworI2luY2x1
ZGUgIkRvY3VtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2ViS2l0U3VidGxlQ3J5
cHRvOjpXZWJLaXRTdWJ0bGVDcnlwdG8oRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogQ29udGV4
dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmRvY3VtZW50KQoreworfQorCitEb2N1bWVudCogV2ViS2l0
U3VidGxlQ3J5cHRvOjpkb2N1bWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvd25jYXN0PERv
Y3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworfQorCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5oIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkMDE2
MGY3YjNhNjdhNTNlNjc5Yzc2MzE0MzFjZjA0NzJjYTQ2N2UKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmgKQEAgLTAsMCArMSw1MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViS2l0U3VidGxlQ3J5cHRvX2gKKyNkZWZpbmUgV2Vi
S2l0U3VidGxlQ3J5cHRvX2gKKworI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVy
LmgiIAorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgorCisjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgRG9jdW1lbnQ7CisKK2NsYXNzIFdlYktpdFN1YnRsZUNyeXB0byA6IHB1YmxpYyBDb250
ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciwgcHVibGljIFJlZkNvdW50ZWQ8V2ViS2l0U3VidGxlQ3J5
cHRvPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJLaXRTdWJ0bGVDcnlwdG8+IGNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViS2l0U3VidGxl
Q3J5cHRvKGRvY3VtZW50KSk7IH0KKworICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0Owor
Citwcml2YXRlOgorICAgIFdlYktpdFN1YnRsZUNyeXB0byhEb2N1bWVudCYpOworfTsKKworfQor
CisjZW5kaWYKKworI2VuZGlmIC8vIFdlYktpdFN1YnRsZUNyeXB0b19oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1NTczODM0OTI4
MDNhZWY0YmMyNDY3NmVkNTdkYjBlYWRhYzUwNTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmlkbApAQCAtMCwwICsxLDQxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVNVQlRMRV9DUllQVE8sCisgICAgR2VuZXJh
dGVJc1JlYWNoYWJsZT1JbXBsRG9jdW1lbnQsCisgICAgTm9JbnRlcmZhY2VPYmplY3QsCitdIGlu
dGVyZmFjZSBXZWJLaXRTdWJ0bGVDcnlwdG8geworICAgIFtDdXN0b21dIFByb21pc2UgZW5jcnlw
dChBbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgS2V5IGtleSwgc2VxdWVuY2U8Q3J5cHRv
T3BlcmF0aW9uRGF0YT4gZGF0YSk7CisgICAgW0N1c3RvbV0gUHJvbWlzZSBkZWNyeXB0KEFsZ29y
aXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBLZXkga2V5LCBzZXF1ZW5jZTxDcnlwdG9PcGVyYXRp
b25EYXRhPiBkYXRhKTsKKyAgICBbQ3VzdG9tXSBQcm9taXNlIHNpZ24oQWxnb3JpdGhtSWRlbnRp
ZmllciBhbGdvcml0aG0sIEtleSBrZXksIHNlcXVlbmNlPENyeXB0b09wZXJhdGlvbkRhdGE+IGRh
dGEpOworICAgIFtDdXN0b21dIFByb21pc2UgdmVyaWZ5KEFsZ29yaXRobUlkZW50aWZpZXIgYWxn
b3JpdGhtLCBLZXkga2V5LCBDcnlwdG9PcGVyYXRpb25EYXRhIHNpZ25hdHVyZSwgc2VxdWVuY2U8
Q3J5cHRvT3BlcmF0aW9uRGF0YT4gZGF0YSk7CisgICAgW0N1c3RvbV0gUHJvbWlzZSBkaWdlc3Qo
QWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIHNlcXVlbmNlPENyeXB0b09wZXJhdGlvbkRh
dGE+IGRhdGEpOworICAgIFtDdXN0b21dIFByb21pc2UgZ2VuZXJhdGVLZXkoQWxnb3JpdGhtSWRl
bnRpZmllciBhbGdvcml0aG0sIG9wdGlvbmFsIGJvb2xlYW4gZXh0cmFjdGFibGUsIG9wdGlvbmFs
IHNlcXVlbmNlPEtleVVzYWdlPiBrZXlVc2FnZXMpOworICAgIFtDdXN0b21dIFByb21pc2UgaW1w
b3J0S2V5KEtleUZvcm1hdCBmb3JtYXQsIENyeXB0b09wZXJhdGlvbkRhdGEga2V5RGF0YSwgQWxn
b3JpdGhtSWRlbnRpZmllcj8gYWxnb3JpdGhtLCBvcHRpb25hbCBib29sZWFuIGV4dHJhY3RhYmxl
LCBvcHRpb25hbCBzZXF1ZW5jZTxLZXlVc2FnZT4ga2V5VXNhZ2VzKTsKKyAgICBbQ3VzdG9tXSBQ
cm9taXNlIGV4cG9ydEtleShLZXlGb3JtYXQgZm9ybWF0LCBLZXkga2V5KTsKKyAgICBbQ3VzdG9t
XSBQcm9taXNlIHdyYXBLZXkoS2V5Rm9ybWF0IGZvcm1hdCwgS2V5IGtleSwgS2V5IHdyYXBwaW5n
S2V5LCBBbGdvcml0aG1JZGVudGlmaWVyIHdyYXBBbGdvcml0aG0pOworICAgIFtDdXN0b21dIFBy
b21pc2UgdW53cmFwS2V5KEtleUZvcm1hdCBmb3JtYXQsIENyeXB0b09wZXJhdGlvbkRhdGEgd3Jh
cHBlZEtleSwgS2V5IHVud3JhcHBpbmdLZXksIEFsZ29yaXRobUlkZW50aWZpZXIgdW53cmFwQWxn
b3JpdGhtLCBBbGdvcml0aG1JZGVudGlmaWVyPyB1bndyYXBwZWRLZXlBbGdvcml0aG0sIG9wdGlv
bmFsIGJvb2xlYW4gZXh0cmFjdGFibGUsIG9wdGlvbmFsIHNlcXVlbmNlPEtleVVzYWdlPiBrZXlV
c2FnZXMpOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmNwcAppbmRleCA1YWFhNzA5YmQxZmQ0MjU1MzBk
NDdhNTgyNDA1ZWYwYWUzYWEwNGE3Li4wYTk0ZmQ5YWU4Yzk4YWRlYmE5NzNmMDYzMmYyZGVjMGU1
ODg3YmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uY3BwCkBAIC0zMyw3ICszMyw3IEBACiAKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJT
dWJ0bGVDcnlwdG8uaCIKKyNpbmNsdWRlICJXZWJLaXRTdWJ0bGVDcnlwdG8uaCIKICNpbmNsdWRl
IDxydW50aW1lL0FycmF5QnVmZmVyVmlldy5oPgogI2luY2x1ZGUgPHd0Zi9DcnlwdG9ncmFwaGlj
YWxseVJhbmRvbU51bWJlci5oPgogCkBAIC02NywxMyArNjcsMTMgQEAgdm9pZCBDcnlwdG86Omdl
dFJhbmRvbVZhbHVlcyhBcnJheUJ1ZmZlclZpZXcqIGFycmF5LCBFeGNlcHRpb25Db2RlJiBlYykK
IH0KIAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotU3VidGxlQ3J5cHRvKiBDcnlwdG86OnN1
YnRsZSgpCitXZWJLaXRTdWJ0bGVDcnlwdG8qIENyeXB0bzo6d2Via2l0U3VidGxlKCkKIHsKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIGlmICghbV9zdWJ0bGUpCi0gICAgICAgIG1f
c3VidGxlID0gU3VidGxlQ3J5cHRvOjpjcmVhdGUoKmRvY3VtZW50KCkpOworICAgIGlmICghbV93
ZWJraXRTdWJ0bGUpCisgICAgICAgIG1fd2Via2l0U3VidGxlID0gV2ViS2l0U3VidGxlQ3J5cHRv
OjpjcmVhdGUoKmRvY3VtZW50KCkpOwogCi0gICAgcmV0dXJuIG1fc3VidGxlLmdldCgpOworICAg
IHJldHVybiBtX3dlYmtpdFN1YnRsZS5nZXQoKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8u
aAppbmRleCBhZjBmYzA0Njg3MWU5MmVmZTYxYmQ2MDNjZjI1ZjU3ZTc5ZWE5NDgyLi45NmQ5MmQz
MjczYjllNGFmNjM0ZDg1ZTExZjUxZWI4OTY5ZmU1ZTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NyeXB0by5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmgKQEAg
LTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdHlwZWRlZiBpbnQgRXhjZXB0aW9u
Q29kZTsKIAogY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBTdWJ0bGVDcnlwdG87CitjbGFzcyBXZWJL
aXRTdWJ0bGVDcnlwdG87CiAKIGNsYXNzIENyeXB0byA6IHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlciwgcHVibGljIFJlZkNvdW50ZWQ8Q3J5cHRvPiB7CiBwdWJsaWM6CkBAIC01Nywx
NCArNTcsMTQgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0UmFuZG9tVmFsdWVzKEpTQzo6QXJyYXlC
dWZmZXJWaWV3KiwgRXhjZXB0aW9uQ29kZSYpOwogCiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8p
Ci0gICAgU3VidGxlQ3J5cHRvKiBzdWJ0bGUoKTsKKyAgICBXZWJLaXRTdWJ0bGVDcnlwdG8qIHdl
YmtpdFN1YnRsZSgpOwogI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgQ3J5cHRvKERvY3VtZW50Jik7
CiAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLSAgICBSZWZQdHI8U3VidGxlQ3J5cHRvPiBt
X3N1YnRsZTsKKyAgICBSZWZQdHI8V2ViS2l0U3VidGxlQ3J5cHRvPiBtX3dlYmtpdFN1YnRsZTsK
ICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uaWRs
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uaWRsCmluZGV4IGNmZTYwZmM4N2Y0NzQ0ZGMy
YzJiOWUwOTFjOWFhNzJmM2IwNTYyYjIuLjYzYTFlMzBmZDc4MjA3NWY4MTMyNmIyYTYwMjlmYmQx
MGEyYmE2ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5pZGwKQEAgLTMyLDUgKzMyLDUgQEAKIF0gaW50
ZXJmYWNlIENyeXB0byB7CiAgICAgW0N1c3RvbSwgUmFpc2VzRXhjZXB0aW9uXSBBcnJheUJ1ZmZl
clZpZXcgZ2V0UmFuZG9tVmFsdWVzKEFycmF5QnVmZmVyVmlldyBhcnJheSk7CiAKLSAgICBbQ29u
ZGl0aW9uYWw9U1VCVExFX0NSWVBUTywgSW1wbGVtZW50ZWRBcz1zdWJ0bGVdIHJlYWRvbmx5IGF0
dHJpYnV0ZSBTdWJ0bGVDcnlwdG8gd2Via2l0U3VidGxlOworICAgIFtDb25kaXRpb25hbD1TVUJU
TEVfQ1JZUFRPXSByZWFkb25seSBhdHRyaWJ1dGUgV2ViS2l0U3VidGxlQ3J5cHRvIHdlYmtpdFN1
YnRsZTsKIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggODJiODMyM2E5MmU4MTc1MTg5Y2M4ZThkNDIxZDdiZTY1ZGI0ODli
MC4uZWQ5ZjcyNmY3ZjJlM2ZhODhmZDAxODNkYzE2MzFiMmUzYmNjZDU2ZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3MCBAQAorMjAxNi0wNy0yMSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJlbmFtZSBTdWJ0bGVDcnlwdG8gdG8gV2ViS2l0U3VidGxlQ3J5cHRvCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjAwNjcKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI3NDgzNjE3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBjcnlwdG8vc3VidGxlIHRvIGNyeXB0by93
ZWJraXRTdWJ0bGUuCisKKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtMTky
LWVuY3J5cHQtZGVjcnlwdC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9j
cnlwdG8vc3VidGxlL2Flcy1jYmMtMTkyLWVuY3J5cHQtZGVjcnlwdC1leHBlY3RlZC50eHQuCisg
ICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLTE5Mi1lbmNyeXB0LWRlY3J5cHQu
aHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy0xOTIt
ZW5jcnlwdC1kZWNyeXB0Lmh0bWwuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMt
Y2JjLTI1Ni1lbmNyeXB0LWRlY3J5cHQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLTI1Ni1lbmNyeXB0LWRlY3J5cHQtZXhwZWN0ZWQu
dHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy0yNTYtZW5jcnlwdC1k
ZWNyeXB0Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1j
YmMtMjU2LWVuY3J5cHQtZGVjcnlwdC5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0
bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5cHQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLWVuY3J5cHQtZGVjcnlwdC1leHBlY3RlZC50
eHQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWVuY3J5cHQtZGVjcnlw
dC13aXRoLXBhZGRpbmctZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9hZXMtY2JjLWVuY3J5cHQtZGVjcnlwdC13aXRoLXBhZGRpbmctZXhwZWN0ZWQu
dHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5
cHQtd2l0aC1wYWRkaW5nLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL2Flcy1jYmMtZW5jcnlwdC1kZWNyeXB0LXdpdGgtcGFkZGluZy5odG1sLgorICAgICAgICAq
IGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5cHQuaHRtbDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5cHQu
aHRtbC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtZ2VuZXJhdGUta2V5
LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVz
LWNiYy1nZW5lcmF0ZS1rZXktZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRT
dWJ0bGUvYWVzLWNiYy1nZW5lcmF0ZS1rZXkuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2NyeXB0by9zdWJ0bGUvYWVzLWNiYy1nZW5lcmF0ZS1rZXkuaHRtbC4KKyAgICAgICAgKiBjcnlw
dG8vd2Via2l0U3VidGxlL2Flcy1jYmMtaW1wb3J0LWp3ay1leHBlY3RlZC50eHQ6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtaW1wb3J0LWp3ay1leHBlY3Rl
ZC50eHQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWltcG9ydC1qd2su
aHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy1pbXBv
cnQtandrLmh0bWwuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWludmFs
aWQtbGVuZ3RoLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9z
dWJ0bGUvYWVzLWNiYy1pbnZhbGlkLWxlbmd0aC1leHBlY3RlZC50eHQuCisgICAgICAgICogY3J5
cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWludmFsaWQtbGVuZ3RoLmh0bWw6IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtaW52YWxpZC1sZW5ndGguaHRtbC4K
KyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtdW53cmFwLWZhaWx1cmUtZXhw
ZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2Jj
LXVud3JhcC1mYWlsdXJlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3Vi
dGxlL2Flcy1jYmMtdW53cmFwLWZhaWx1cmUuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2NyeXB0by9zdWJ0bGUvYWVzLWNiYy11bndyYXAtZmFpbHVyZS5odG1sLgorICAgICAgICAqIGNy
eXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy11bndyYXAtcnNhLWV4cGVjdGVkLnR4dDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy11bndyYXAtcnNhLWV4cGVj
dGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtdW53cmFwLXJz
YS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXVu
d3JhcC1yc2EuaHRtbC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtd3Jh
cC1yc2EtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRs
ZS9hZXMtY2JjLXdyYXAtcnNhLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0
U3VidGxlL2Flcy1jYmMtd3JhcC1yc2Etbm9uLWV4dHJhY3RhYmxlLWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy13cmFwLXJzYS1ub24t
ZXh0cmFjdGFibGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUv
YWVzLWNiYy13cmFwLXJzYS1ub24tZXh0cmFjdGFibGUuaHRtbDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy13cmFwLXJzYS1ub24tZXh0cmFjdGFibGUuaHRt
bC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtd3JhcC1yc2EuaHRtbDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy13cmFwLXJzYS5o
dG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy13cm9uZy1rZXktY2xh
c3MtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9h
ZXMtY2JjLXdyb25nLWtleS1jbGFzcy1leHBlY3RlZC50eHQuCisgICAgICAgICogY3J5cHRvL3dl
YmtpdFN1YnRsZS9hZXMtY2JjLXdyb25nLWtleS1jbGFzcy5odG1sOiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXdyb25nLWtleS1jbGFzcy5odG1sLgorICAg
ICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0OiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtZXhwb3J0LWtleS1leHBl
Y3RlZC50eHQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtZXhwb3J0LWtleS5o
dG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtZXhwb3J0LWtl
eS5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWt3LWtleS1tYW5pcHVs
YXRpb24tZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRs
ZS9hZXMta3cta2V5LW1hbmlwdWxhdGlvbi1leHBlY3RlZC50eHQuCisgICAgICAgICogY3J5cHRv
L3dlYmtpdFN1YnRsZS9hZXMta3cta2V5LW1hbmlwdWxhdGlvbi5odG1sOiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMta3cta2V5LW1hbmlwdWxhdGlvbi5odG1sLgor
ICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWt3LXdyYXAtdW53cmFwLWFlcy1leHBl
Y3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1rdy13
cmFwLXVud3JhcC1hZXMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0
bGUvYWVzLWt3LXdyYXAtdW53cmFwLWFlcy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
Y3J5cHRvL3N1YnRsZS9hZXMta3ctd3JhcC11bndyYXAtYWVzLmh0bWwuCisgICAgICAgICogY3J5
cHRvL3dlYmtpdFN1YnRsZS9hZXMtcG9zdE1lc3NhZ2UtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtcG9zdE1lc3NhZ2UtZXhwZWN0ZWQudHh0
LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLXBvc3RNZXNzYWdlLmh0bWw6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1wb3N0TWVzc2FnZS5odG1s
LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYXJndW1lbnQtY29udmVyc2lvbi1leHBl
Y3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2FyZ3VtZW50
LWNvbnZlcnNpb24tZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUv
YXJndW1lbnQtY29udmVyc2lvbi5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRv
L3N1YnRsZS9hcmd1bWVudC1jb252ZXJzaW9uLmh0bWwuCisgICAgICAgICogY3J5cHRvL3dlYmtp
dFN1YnRsZS9hcnJheS1idWZmZXItdmlldy1vZmZzZXQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hcnJheS1idWZmZXItdmlldy1vZmZzZXQtZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYXJyYXktYnVmZmVyLXZp
ZXctb2Zmc2V0Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Fy
cmF5LWJ1ZmZlci12aWV3LW9mZnNldC5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0
bGUvZ2MtMi1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL2djLTItZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvZ2Mt
Mi5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy0yLmh0bWwu
CisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy0zLWV4cGVjdGVkLnR4dDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MtMy1leHBlY3RlZC50eHQuCisgICAg
ICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy0zLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL2djLTMuaHRtbC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3Vi
dGxlL2djLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvZ2MtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvZ2MuaHRt
bDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MuaHRtbC4KKyAgICAg
ICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2htYWMtY2hlY2stYWxnb3JpdGhtLWV4cGVjdGVkLnR4
dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1hYy1jaGVjay1hbGdv
cml0aG0tZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1j
aGVjay1hbGdvcml0aG0uaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvaG1hYy1jaGVjay1hbGdvcml0aG0uaHRtbC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3Vi
dGxlL2htYWMtZXhwb3J0LWtleS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL2htYWMtZXhwb3J0LWtleS1leHBlY3RlZC50eHQuCisgICAgICAgICog
Y3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWV4cG9ydC1rZXkuaHRtbDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1hYy1leHBvcnQta2V5Lmh0bWwuCisgICAgICAgICog
Y3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWdlbmVyYXRlLWtleS1leHBlY3RlZC50eHQ6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtZ2VuZXJhdGUta2V5LWV4cGVj
dGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2htYWMtZ2VuZXJhdGUta2V5
Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtZ2VuZXJh
dGUta2V5Lmh0bWwuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWltcG9ydC1q
d2stZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9o
bWFjLWltcG9ydC1qd2stZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0
bGUvaG1hYy1pbXBvcnQtandrLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8v
c3VidGxlL2htYWMtaW1wb3J0LWp3ay5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0
bGUvaG1hYy1wb3N0TWVzc2FnZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL2htYWMtcG9zdE1lc3NhZ2UtZXhwZWN0ZWQudHh0LgorICAgICAgICAq
IGNyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1wb3N0TWVzc2FnZS5odG1sOiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLXBvc3RNZXNzYWdlLmh0bWwuCisgICAgICAg
ICogY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXNpZ24tdmVyaWZ5LWVtcHR5LWtleS1leHBlY3Rl
ZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtc2lnbi12
ZXJpZnktZW1wdHkta2V5LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3Vi
dGxlL2htYWMtc2lnbi12ZXJpZnktZW1wdHkta2V5Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtc2lnbi12ZXJpZnktZW1wdHkta2V5Lmh0bWwuCisgICAg
ICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXNpZ24tdmVyaWZ5LWV4cGVjdGVkLnR4dDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1hYy1zaWduLXZlcmlmeS1l
eHBlY3RlZC50eHQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXNpZ24tdmVy
aWZ5Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtc2ln
bi12ZXJpZnkuaHRtbC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2ltcG9ydC1qd2st
ZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9pbXBv
cnQtandrLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2ltcG9y
dC1qd2suaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaW1wb3J0
LWp3ay5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvandrLWV4cG9ydC11c2Ut
dmFsdWVzLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvandrLWV4cG9ydC11c2UtdmFsdWVzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8v
d2Via2l0U3VidGxlL2p3ay1leHBvcnQtdXNlLXZhbHVlcy5odG1sOiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9qd2stZXhwb3J0LXVzZS12YWx1ZXMuaHRtbC4KKyAgICAg
ICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2p3ay1pbXBvcnQtdXNlLXZhbHVlcy1leHBlY3RlZC50
eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2p3ay1pbXBvcnQtdXNl
LXZhbHVlcy1leHBlY3RlZC50eHQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9qd2st
aW1wb3J0LXVzZS12YWx1ZXMuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9z
dWJ0bGUvandrLWltcG9ydC11c2UtdmFsdWVzLmh0bWwuCisgICAgICAgICogY3J5cHRvL3dlYmtp
dFN1YnRsZS9wb3N0TWVzc2FnZS13b3JrZXItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9wb3N0TWVzc2FnZS13b3JrZXItZXhwZWN0ZWQudHh0Lgor
ICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcG9zdE1lc3NhZ2Utd29ya2VyLmh0bWw6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3Bvc3RNZXNzYWdlLXdvcmtlci5o
dG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcmVzb3VyY2VzL2NvbW1vbi5qczog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcmVzb3VyY2VzL2NvbW1vbi5q
cy4KKyAgICAgICAgKGltcG9ydFRlc3RLZXlzKToKKyAgICAgICAgKGJ5dGVzVG9IZXhTdHJpbmcp
OgorICAgICAgICAoYnl0ZXNUb0FTQ0lJU3RyaW5nKToKKyAgICAgICAgKGhleFN0cmluZ1RvVWlu
dDhBcnJheSk6CisgICAgICAgIChhc2NpaVRvVWludDhBcnJheSk6CisgICAgICAgIChmYWlsQW5k
RmluaXNoSlNUZXN0KToKKyAgICAgICAgKEJhc2U2NFVSTC5zdHJpbmdpZnkpOgorICAgICAgICAo
QmFzZTY0VVJMLik6CisgICAgICAgIChCYXNlNjRVUkwpOgorICAgICAgICAqIGNyeXB0by93ZWJr
aXRTdWJ0bGUvcmVzb3VyY2VzL3Bvc3RNZXNzYWdlLXdvcmtlci5qczogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcmVzb3VyY2VzL3Bvc3RNZXNzYWdlLXdvcmtlci5qcy4K
KyAgICAgICAgKG9ubWVzc2FnZSk6CisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yZXNv
dXJjZXMvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS5qczogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2NyeXB0by9zdWJ0bGUvcmVzb3VyY2VzL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFi
bGUuanMuCisgICAgICAgIChzdHJpbmdfYXBwZWFyZWRfaGVyZS50aGVuLm9wZW5SZXF1ZXN0Lm9u
dXBncmFkZW5lZWRlZCk6CisgICAgICAgIChzdHJpbmdfYXBwZWFyZWRfaGVyZS50aGVuLm9wZW5S
ZXF1ZXN0Lm9uZXJyb3IpOgorICAgICAgICAoc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbi5vcGVu
UmVxdWVzdC5vbnN1Y2Nlc3MpOgorICAgICAgICAoc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbi5z
dG9yZUtleS5yZXEub25lcnJvcik6CisgICAgICAgIChzdHJpbmdfYXBwZWFyZWRfaGVyZS50aGVu
LnN0b3JlS2V5LnJlcS5vbnN1Y2Nlc3MpOgorICAgICAgICAoc3RyaW5nX2FwcGVhcmVkX2hlcmUu
dGhlbi5zdG9yZUtleSk6CisgICAgICAgIChzdHJpbmdfYXBwZWFyZWRfaGVyZS50aGVuLnJlYWRL
ZXkucmVxLm9uZXJyb3IpOgorICAgICAgICAoc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbi5yZWFk
S2V5LnJlcS5vbnN1Y2Nlc3MpOgorICAgICAgICAoc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbi5y
ZWFkS2V5KToKKyAgICAgICAgKHN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4pOgorICAgICAgICAq
IGNyeXB0by93ZWJraXRTdWJ0bGUvcmVzb3VyY2VzL3JzYS1pbmRleGVkZGIuanM6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3Jlc291cmNlcy9yc2EtaW5kZXhlZGRiLmpz
LgorICAgICAgICAoc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbi5vcGVuUmVxdWVzdC5vbnVwZ3Jh
ZGVuZWVkZWQpOgorICAgICAgICAoc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbi5vcGVuUmVxdWVz
dC5vbmVycm9yKToKKyAgICAgICAgKHN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4ub3BlblJlcXVl
c3Qub25zdWNjZXNzKToKKyAgICAgICAgKHN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4uc3RvcmVL
ZXkucmVxLm9uZXJyb3IpOgorICAgICAgICAoc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbi5zdG9y
ZUtleS5yZXEub25zdWNjZXNzKToKKyAgICAgICAgKHN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4u
c3RvcmVLZXkpOgorICAgICAgICAoc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbi5yZWFkS2V5LnJl
cS5vbmVycm9yKToKKyAgICAgICAgKHN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4ucmVhZEtleS5y
ZXEub25zdWNjZXNzKToKKyAgICAgICAgKHN0cmluZ19hcHBlYXJlZF9oZXJlLnRoZW4ucmVhZEtl
eSk6CisgICAgICAgIChzdHJpbmdfYXBwZWFyZWRfaGVyZS50aGVuKToKKyAgICAgICAgKiBjcnlw
dG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQtZ2VuZXJhdGVkLWtleXMtZXhwZWN0ZWQudHh0OiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0LWdlbmVyYXRl
ZC1rZXlzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1l
eHBvcnQtZ2VuZXJhdGVkLWtleXMuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvcnNhLWV4cG9ydC1nZW5lcmF0ZWQta2V5cy5odG1sLgorICAgICAgICAqIGNyeXB0
by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0LWtleS1leHBlY3RlZC50eHQuCisg
ICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtZXhwb3J0LWtleS5odG1sOiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0LWtleS5odG1sLgorICAg
ICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1wcml2YXRlLWtleS1leHBlY3Rl
ZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1leHBvcnQt
cHJpdmF0ZS1rZXktZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUv
cnNhLWV4cG9ydC1wcml2YXRlLWtleS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9yc2EtZXhwb3J0LXByaXZhdGUta2V5Lmh0bWwuCisgICAgICAgICogY3J5cHRv
L3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1leHBlY3RlZC50eHQuCisgICAg
ICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLWV4
cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWlu
ZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS1leHBlY3RlZC50eHQuCisgICAgICAgICogY3J5cHRvL3dl
YmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLXByaXZhdGUtZXhwZWN0ZWQu
dHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRi
LW5vbi1leHBvcnRhYmxlLXByaXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93
ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS1wcml2YXRlLmh0bWw6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItbm9uLWV4
cG9ydGFibGUtcHJpdmF0ZS5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNh
LWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
Y3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLmh0bWwuCisgICAgICAg
ICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUtZXhwZWN0ZWQudHh0
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLXBy
aXZhdGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWlu
ZGV4ZWRkYi1wcml2YXRlLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL3JzYS1pbmRleGVkZGItcHJpdmF0ZS5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRT
dWJ0bGUvcnNhLWluZGV4ZWRkYi5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRv
L3N1YnRsZS9yc2EtaW5kZXhlZGRiLmh0bWwuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRs
ZS9yc2Etb2FlcC1nZW5lcmF0ZS1ub24tZXh0cmFjdGFibGUta2V5LWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLW9hZXAtZ2VuZXJhdGUtbm9u
LWV4dHJhY3RhYmxlLWtleS1leHBlY3RlZC50eHQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1
YnRsZS9yc2Etb2FlcC1nZW5lcmF0ZS1ub24tZXh0cmFjdGFibGUta2V5Lmh0bWw6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1vYWVwLWdlbmVyYXRlLW5vbi1leHRy
YWN0YWJsZS1rZXkuaHRtbC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVw
LWtleS1tYW5pcHVsYXRpb24tZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
Y3J5cHRvL3N1YnRsZS9yc2Etb2FlcC1rZXktbWFuaXB1bGF0aW9uLWV4cGVjdGVkLnR4dC4KKyAg
ICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLWtleS1tYW5pcHVsYXRpb24uaHRt
bDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLW9hZXAta2V5LW1h
bmlwdWxhdGlvbi5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAt
cGxhaW50ZXh0LWxlbmd0aC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9j
cnlwdG8vc3VidGxlL3JzYS1vYWVwLXBsYWludGV4dC1sZW5ndGgtZXhwZWN0ZWQudHh0LgorICAg
ICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtcGxhaW50ZXh0LWxlbmd0aC5odG1s
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Etb2FlcC1wbGFpbnRl
eHQtbGVuZ3RoLmh0bWwuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2FlcC13
cmFwLXVud3JhcC1hZXMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9yc2Etb2FlcC13cmFwLXVud3JhcC1hZXMtZXhwZWN0ZWQudHh0LgorICAgICAg
ICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtd3JhcC11bndyYXAtYWVzLmh0bWw6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1vYWVwLXdyYXAtdW53cmFw
LWFlcy5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhLXBvc3RNZXNzYWdl
LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNh
LXBvc3RNZXNzYWdlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxl
L3JzYS1wb3N0TWVzc2FnZS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS9yc2EtcG9zdE1lc3NhZ2UuaHRtbC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxl
L3JzYWVzLXBrY3MxLXYxXzUtZGVjcnlwdC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtZGVjcnlwdC1leHBlY3RlZC50
eHQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Flcy1wa2NzMS12MV81LWRlY3J5
cHQuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhZXMtcGtj
czEtdjFfNS1kZWNyeXB0Lmh0bWwuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fl
cy1wa2NzMS12MV81LXdyYXAtdW53cmFwLWFlcy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtd3JhcC11bndyYXAtYWVz
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYWVzLXBrY3Mx
LXYxXzUtd3JhcC11bndyYXAtYWVzLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlw
dG8vc3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtd3JhcC11bndyYXAtYWVzLmh0bWwuCisgICAgICAg
ICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1rZXktZXhw
ZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Fzc2Et
cGtjczEtdjFfNS1nZW5lcmF0ZS1rZXktZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93
ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5LXdpdGgtbGVhZGluZy16
ZXJvZXMtaW4tZXhwb25lbnQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
Y3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1rZXktd2l0aC1sZWFkaW5n
LXplcm9lcy1pbi1leHBvbmVudC1leHBlY3RlZC50eHQuCisgICAgICAgICogY3J5cHRvL3dlYmtp
dFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1rZXktd2l0aC1sZWFkaW5nLXplcm9l
cy1pbi1leHBvbmVudC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRs
ZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1rZXktd2l0aC1sZWFkaW5nLXplcm9lcy1pbi1l
eHBvbmVudC5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3Mx
LXYxXzUtZ2VuZXJhdGUta2V5Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8v
c3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS5odG1sLgorICAgICAgICAqIGNy
eXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1leHBlY3RlZC50
eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12
MV81LWltcG9ydC1qd2stZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0
bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1zbWFsbC1rZXktZXhwZWN0ZWQudHh0OiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1p
bXBvcnQtandrLXNtYWxsLWtleS1leHBlY3RlZC50eHQuCisgICAgICAgICogY3J5cHRvL3dlYmtp
dFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1pbXBvcnQtandrLXNtYWxsLWtleS5odG1sOiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1pbXBv
cnQtandrLXNtYWxsLWtleS5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNh
c3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
Y3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1pbXBvcnQtandrLmh0bWwuCisgICAgICAg
ICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1zaWduLXZlcmlmeS1leHBl
Y3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1w
a2NzMS12MV81LXNpZ24tdmVyaWZ5LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vd2Vi
a2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LXNpZ24tdmVyaWZ5Lmh0bWw6IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LXNpZ24tdmVyaWZ5
Lmh0bWwuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMS1leHBlY3RlZC50eHQ6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3NoYS0xLWV4cGVjdGVkLnR4
dC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3NoYS0xLmh0bWw6IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3NoYS0xLmh0bWwuCisgICAgICAgICogY3J5cHRv
L3dlYmtpdFN1YnRsZS9zaGEtMjI0LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL2NyeXB0by9zdWJ0bGUvc2hhLTIyNC1leHBlY3RlZC50eHQuCisgICAgICAgICogY3J5cHRv
L3dlYmtpdFN1YnRsZS9zaGEtMjI0Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlw
dG8vc3VidGxlL3NoYS0yMjQuaHRtbC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3No
YS0yNTYtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRs
ZS9zaGEtMjU2LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3No
YS0yNTYuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvc2hhLTI1
Ni5odG1sLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTM4NC1leHBlY3RlZC50
eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3NoYS0zODQtZXhwZWN0
ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTM4NC5odG1sOiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9zaGEtMzg0Lmh0bWwuCisgICAgICAg
ICogY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtNTEyLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvc2hhLTUxMi1leHBlY3RlZC50eHQuCisgICAgICAg
ICogY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtNTEyLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL3NoYS01MTIuaHRtbC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0
U3VidGxlL3VuaW1wbGVtZW50ZWQtdW53cmFwLWNyYXNoLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvdW5pbXBsZW1lbnRlZC11bndyYXAtY3Jhc2gt
ZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvdW5pbXBsZW1lbnRl
ZC11bndyYXAtY3Jhc2guaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvdW5pbXBsZW1lbnRlZC11bndyYXAtY3Jhc2guaHRtbC4KKyAgICAgICAgKiBjcnlwdG8vd2Vi
a2l0U3VidGxlL3Vud3JhcEtleS1jaGVjay11c2FnZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3Vud3JhcEtleS1jaGVjay11c2FnZS1leHBlY3Rl
ZC50eHQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS91bndyYXBLZXktY2hlY2stdXNh
Z2UuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvdW53cmFwS2V5
LWNoZWNrLXVzYWdlLmh0bWwuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS93cmFwS2V5
LWNoZWNrLXVzYWdlLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvd3JhcEtleS1jaGVjay11c2FnZS1leHBlY3RlZC50eHQuCisgICAgICAgICogY3J5
cHRvL3dlYmtpdFN1YnRsZS93cmFwS2V5LWNoZWNrLXVzYWdlLmh0bWw6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3dyYXBLZXktY2hlY2stdXNhZ2UuaHRtbC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdr
MS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRp
b25zOgorCiAyMDE2LTA3LTIwICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgRml4IHRpbWVvdXQgb2YgaW1wb3J0ZWQvdzNjL1dlYkNyeXB0b0FQSS9pZGxoYXJu
ZXNzLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy0x
OTItZW5jcnlwdC1kZWNyeXB0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvYWVzLWNiYy0xOTItZW5jcnlwdC1kZWNyeXB0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMTc3ZjI3ZGExMTE4ODk2OTZlNmM0OGExMWQ5YmE5MWMzODEwOWIz
Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtMTkyLWVuY3J5cHQtZGVjcnlwdC1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UZXN0IEFFUy1DQkMgZW5jcnlwdCBh
bmQgZGVjcnlwdCBmdW5jdGlvbnMgd2l0aCBhIDI1NiBiaXQga2V5LgotCi1PbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCi0KLQotSW1wb3J0aW5nIGEgcmF3IEFFUyBrZXkgZnJvbSBzdHJpbmcgbGl0
ZXJhbC4uLgotUEFTUyBrZXkudHlwZSBpcyAnc2VjcmV0JwotUEFTUyBrZXkuZXh0cmFjdGFibGUg
aXMgdHJ1ZQotUEFTUyBrZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0FFUy1DQkMnCi1QQVNTIGtleS5h
bGdvcml0aG0ubGVuZ3RoIGlzIDE5MgotUEFTUyBrZXkudXNhZ2VzIGlzIFsnZGVjcnlwdCcsICdl
bmNyeXB0J10KLVVzaW5nIHRoZSBrZXkgdG8gZW5jcnlwdCBwbGFpbnRleHQuLi4KLVBBU1MgYnl0
ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShlbmNyeXB0aW9uUmVzdWx0KSkgaXMgJzRmMDIx
ZGIyNDNiYzYzM2Q3MTc4MTgzYTlmYTA3MWU4YjRkOWFkYTlhZDdkZWRmNGU1ZTczODc2M2Y2OTE0
NWE1NzFiMjQyMDEyZmI3YWUwN2ZhOWJhYWMzZGYxMDJlMDA4YjBlMjc5ODg1OTg4ODFkOTIwYTll
NjRmNTYxNWNkNjEyY2NkNzkyMjRiMzUwOTM1ZDQ1ZGQ2YTk4ZjgxNzYnCi1EZWNyeXB0aW5nIGl0
IGJhY2suLi4KLVBBU1MgbmV3IFVpbnQ4QXJyYXkoZGVjcnlwdGlvblJlc3VsdCkgaXMgcGxhaW50
ZXh0Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLTE5Mi1lbmNyeXB0
LWRlY3J5cHQuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy0xOTItZW5j
cnlwdC1kZWNyeXB0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlYWUyYTRh
NTdhMTM5NzE3ODM2NzA2ZWNiZDQ4MzdiZjZlOTAyZjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2Jj
LTE5Mi1lbmNyeXB0LWRlY3J5cHQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9j
b21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24o
IlRlc3QgQUVTLUNCQyBlbmNyeXB0IGFuZCBkZWNyeXB0IGZ1bmN0aW9ucyB3aXRoIGEgMjU2IGJp
dCBrZXkuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIga2V5RGF0YSA9IGhleFN0
cmluZ1RvVWludDhBcnJheSgiOGU3M2IwZjdkYTBlNjQ1MmM4MTBmMzJiODA5MDc5ZTU2MmY4ZWFk
MjUyMmM2YjdiIik7Ci12YXIgaXYgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAwMDEwMjAzMDQw
NTA2MDcwODA5MGEwYjBjMGQwZTBmIik7Ci12YXIgcGxhaW50ZXh0ID0gaGV4U3RyaW5nVG9VaW50
OEFycmF5KCI2YmMxYmVlMjJlNDA5Zjk2ZTkzZDdlMTE3MzkzMTcyYWFlMmQ4YTU3MWUwM2FjOWM5
ZWI3NmZhYzQ1YWY4ZTUxMzBjODFjNDZhMzVjZTQxMWU1ZmJjMTE5MWEwYTUyZWZmNjlmMjQ0NWRm
NGY5YjE3YWQyYjQxN2JlNjZjMzcxMCIpOwotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLQotZGVi
dWcoIkltcG9ydGluZyBhIHJhdyBBRVMga2V5IGZyb20gc3RyaW5nIGxpdGVyYWwuLi4iKTsKLWNy
eXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBrZXlEYXRhLCAiYWVzLWNiYyIsIGV4dHJhY3Rh
YmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAg
IGtleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgia2V5LnR5cGUiLCAiJ3NlY3JldCciKTsKLSAg
ICBzaG91bGRCZSgia2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKLSAgICBzaG91bGRCZSgia2V5
LmFsZ29yaXRobS5uYW1lIiwgIidBRVMtQ0JDJyIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3Jp
dGhtLmxlbmd0aCIsICIxOTIiKTsKLSAgICBzaG91bGRCZSgia2V5LnVzYWdlcyIsICJbJ2RlY3J5
cHQnLCAnZW5jcnlwdCddIik7Ci0KLSAgICBkZWJ1ZygiVXNpbmcgdGhlIGtleSB0byBlbmNyeXB0
IHBsYWludGV4dC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmVuY3J5cHQoe25hbWU6
ICJhZXMtY2JjIiwgaXY6IGl2fSwga2V5LCBwbGFpbnRleHQpOwotfSkudGhlbihmdW5jdGlvbihy
ZXN1bHQpIHsKLSAgICBlbmNyeXB0aW9uUmVzdWx0ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJi
eXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGVuY3J5cHRpb25SZXN1bHQpKSIsICInNGYw
MjFkYjI0M2JjNjMzZDcxNzgxODNhOWZhMDcxZThiNGQ5YWRhOWFkN2RlZGY0ZTVlNzM4NzYzZjY5
MTQ1YTU3MWIyNDIwMTJmYjdhZTA3ZmE5YmFhYzNkZjEwMmUwMDhiMGUyNzk4ODU5ODg4MWQ5MjBh
OWU2NGY1NjE1Y2Q2MTJjY2Q3OTIyNGIzNTA5MzVkNDVkZDZhOThmODE3NiciKTsKLQotICAgIGRl
YnVnKCJEZWNyeXB0aW5nIGl0IGJhY2suLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5k
ZWNyeXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtleSwgcmVzdWx0KTsKLX0pLnRoZW4o
ZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZGVjcnlwdGlvblJlc3VsdCA9IHJlc3VsdDsKLSAgICBz
aG91bGRCZSgibmV3IFVpbnQ4QXJyYXkoZGVjcnlwdGlvblJlc3VsdCkiLCAicGxhaW50ZXh0Iik7
Ci0KLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy0yNTYtZW5j
cnlwdC1kZWNyeXB0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVz
LWNiYy0yNTYtZW5jcnlwdC1kZWNyeXB0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZDA4YjU1YmRjMjNmN2YzNDA3ZjU0ZmE4NDgwNGFmOWQ0YjlhMDY3NC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9j
cnlwdG8vc3VidGxlL2Flcy1jYmMtMjU2LWVuY3J5cHQtZGVjcnlwdC1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UZXN0IEFFUy1DQkMgZW5jcnlwdCBhbmQgZGVj
cnlwdCBmdW5jdGlvbnMgd2l0aCBhIDI1NiBiaXQga2V5LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCi0KLQotSW1wb3J0aW5nIGEgcmF3IEFFUyBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJhbC4u
LgotUEFTUyBrZXkudHlwZSBpcyAnc2VjcmV0JwotUEFTUyBrZXkuZXh0cmFjdGFibGUgaXMgdHJ1
ZQotUEFTUyBrZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0FFUy1DQkMnCi1QQVNTIGtleS5hbGdvcml0
aG0ubGVuZ3RoIGlzIDI1NgotUEFTUyBrZXkudXNhZ2VzIGlzIFsnZGVjcnlwdCcsICdlbmNyeXB0
J10KLVVzaW5nIHRoZSBrZXkgdG8gZW5jcnlwdCBwbGFpbnRleHQuLi4KLVBBU1MgYnl0ZXNUb0hl
eFN0cmluZyhuZXcgVWludDhBcnJheShlbmNyeXB0aW9uUmVzdWx0KSkgaXMgJ2Y1OGM0YzA0ZDZl
NWYxYmE3NzllYWJmYjVmN2JmYmQ2OWNmYzRlOTY3ZWRiODA4ZDY3OWY3NzdiYzY3MDJjN2QzOWYy
MzM2OWE5ZDliYWNmYTUzMGUyNjMwNDIzMTQ2MWIyZWIwNWUyYzM5YmU5ZmNkYTZjMTkwNzhjNmE5
ZDFiM2Y0NjE3OTZkNmIwZDZiMmUwYzJhNzJiNGQ4MGU2NDQnCi1EZWNyeXB0aW5nIGl0IGJhY2su
Li4KLVBBU1MgbmV3IFVpbnQ4QXJyYXkoZGVjcnlwdGlvblJlc3VsdCkgaXMgcGxhaW50ZXh0Ci1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLTI1Ni1lbmNyeXB0LWRlY3J5
cHQuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy0yNTYtZW5jcnlwdC1k
ZWNyeXB0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU5NDdiZDRiN2UyODA3
OWY1OGQ0ZDAxYTVlNDcwNTY0MDFiNDZmMmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLTI1Ni1l
bmNyeXB0LWRlY3J5cHQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24u
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
LTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3Qg
QUVTLUNCQyBlbmNyeXB0IGFuZCBkZWNyeXB0IGZ1bmN0aW9ucyB3aXRoIGEgMjU2IGJpdCBrZXku
Iik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIga2V5RGF0YSA9IGhleFN0cmluZ1Rv
VWludDhBcnJheSgiNjAzZGViMTAxNWNhNzFiZTJiNzNhZWYwODU3ZDc3ODExZjM1MmMwNzNiNjEw
OGQ3MmQ5ODEwYTMwOTE0ZGZmNCIpOwotdmFyIGl2ID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCIw
MDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIpOwotdmFyIHBsYWludGV4dCA9IGhleFN0
cmluZ1RvVWludDhBcnJheSgiNmJjMWJlZTIyZTQwOWY5NmU5M2Q3ZTExNzM5MzE3MmFhZTJkOGE1
NzFlMDNhYzljOWViNzZmYWM0NWFmOGU1MTMwYzgxYzQ2YTM1Y2U0MTFlNWZiYzExOTFhMGE1MmVm
ZjY5ZjI0NDVkZjRmOWIxN2FkMmI0MTdiZTY2YzM3MTAiKTsKLXZhciBleHRyYWN0YWJsZSA9IHRy
dWU7Ci0KLWRlYnVnKCJJbXBvcnRpbmcgYSByYXcgQUVTIGtleSBmcm9tIHN0cmluZyBsaXRlcmFs
Li4uIik7Ci1jcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3Iiwga2V5RGF0YSwgImFlcy1jYmMi
LCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSkudGhlbihmdW5jdGlvbihyZXN1
bHQpIHsKLSAgICBrZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNy
ZXQnIik7Ci0gICAgc2hvdWxkQmUoImtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7Ci0gICAgc2hv
dWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIsICInQUVTLUNCQyciKTsKLSAgICBzaG91bGRCZSgi
a2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMjU2Iik7Ci0gICAgc2hvdWxkQmUoImtleS51c2FnZXMi
LCAiWydkZWNyeXB0JywgJ2VuY3J5cHQnXSIpOwotCi0gICAgZGVidWcoIlVzaW5nIHRoZSBrZXkg
dG8gZW5jcnlwdCBwbGFpbnRleHQuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5lbmNy
eXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtleSwgcGxhaW50ZXh0KTsKLX0pLnRoZW4o
ZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZW5jcnlwdGlvblJlc3VsdCA9IHJlc3VsdDsKLSAgICBz
aG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShlbmNyeXB0aW9uUmVzdWx0
KSkiLCAiJ2Y1OGM0YzA0ZDZlNWYxYmE3NzllYWJmYjVmN2JmYmQ2OWNmYzRlOTY3ZWRiODA4ZDY3
OWY3NzdiYzY3MDJjN2QzOWYyMzM2OWE5ZDliYWNmYTUzMGUyNjMwNDIzMTQ2MWIyZWIwNWUyYzM5
YmU5ZmNkYTZjMTkwNzhjNmE5ZDFiM2Y0NjE3OTZkNmIwZDZiMmUwYzJhNzJiNGQ4MGU2NDQnIik7
Ci0KLSAgICBkZWJ1ZygiRGVjcnlwdGluZyBpdCBiYWNrLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0
by5zdWJ0bGUuZGVjcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXksIHJlc3VsdCk7
Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGRlY3J5cHRpb25SZXN1bHQgPSByZXN1
bHQ7Ci0gICAgc2hvdWxkQmUoIm5ldyBVaW50OEFycmF5KGRlY3J5cHRpb25SZXN1bHQpIiwgInBs
YWludGV4dCIpOwotCi0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1j
YmMtZW5jcnlwdC1kZWNyeXB0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5cHQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA2NmIzMTUwNzFkNTQ4ODY3NmI3NGVhZTA0OThmZWJhNzFjZDU5MGQ4Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2NyeXB0by9zdWJ0bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5cHQtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotVGVzdCBBRVMtQ0JDIGVuY3J5cHQgYW5kIGRlY3J5
cHQgZnVuY3Rpb25zLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotSW1wb3J0aW5n
IGEgcmF3IEFFUyBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJhbC4uLgotUEFTUyBrZXkudHlwZSBpcyAn
c2VjcmV0JwotUEFTUyBrZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQotUEFTUyBrZXkuYWxnb3JpdGht
Lm5hbWUgaXMgJ0FFUy1DQkMnCi1QQVNTIGtleS5hbGdvcml0aG0ubGVuZ3RoIGlzIDEyOAotUEFT
UyBrZXkudXNhZ2VzIGlzIFsnZGVjcnlwdCcsICdlbmNyeXB0J10KLVVzaW5nIHRoZSBrZXkgdG8g
ZW5jcnlwdCBwbGFpbnRleHQuLi4KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJh
eShlbmNyeXB0aW9uUmVzdWx0KSkgaXMgJzc2NDlhYmFjODExOWIyNDZjZWU5OGU5YjEyZTkxOTdk
NTA4NmNiOWI1MDcyMTllZTk1ZGIxMTNhOTE3Njc4YjI3M2JlZDZiOGUzYzE3NDNiNzExNmU2OWUy
MjIyOTUxNjNmZjFjYWExNjgxZmFjMDkxMjBlY2EzMDc1ODZlMWE3OGNiODI4MDcyMzBlMTMyMWQz
ZmFlMDBkMThjYzIwMTInCi1EZWNyeXB0aW5nIGl0IGJhY2suLi4KLVBBU1MgbmV3IFVpbnQ4QXJy
YXkoZGVjcnlwdGlvblJlc3VsdCkgaXMgcGxhaW50ZXh0Ci1UZXN0aW5nIGluaXRpYWxpemF0aW9u
IHZlY3RvciBiaW5kaW5ncy4uLgotUEFTUyBjcnlwdG8uc3VidGxlLmVuY3J5cHQoe25hbWU6ICdB
RVMtQ0JDJywgaXY6IG51bGx9LCBrZXksIHBsYWludGV4dCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogT25seSBBcnJheUJ1ZmZlciBhbmQgQXJyYXlCdWZmZXJWaWV3IG9iamVjdHMgY2FuIGJl
IHBhc3NlZCBhcyBDcnlwdG9PcGVyYXRpb25EYXRhLgotUEFTUyBjcnlwdG8uc3VidGxlLmVuY3J5
cHQoe25hbWU6ICdBRVMtQ0JDJ30sIGtleSwgcGxhaW50ZXh0KSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBPbmx5IEFycmF5QnVmZmVyIGFuZCBBcnJheUJ1ZmZlclZpZXcgb2JqZWN0cyBjYW4g
YmUgcGFzc2VkIGFzIENyeXB0b09wZXJhdGlvbkRhdGEuCi1QQVNTIGNyeXB0by5zdWJ0bGUuZW5j
cnlwdCh7bmFtZTogJ0FFUy1DQkMnLCBpdjogM30sIGtleSwgcGxhaW50ZXh0KSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBPbmx5IEFycmF5QnVmZmVyIGFuZCBBcnJheUJ1ZmZlclZpZXcgb2Jq
ZWN0cyBjYW4gYmUgcGFzc2VkIGFzIENyeXB0b09wZXJhdGlvbkRhdGEuCi1QQVNTIGNyeXB0by5z
dWJ0bGUuZW5jcnlwdCh7bmFtZTogJ0FFUy1DQkMnLCBpdjogbmV3IFVpbnQ4QXJyYXkoWzBdKX0s
IGtleSwgcGxhaW50ZXh0KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEFFUy1DQkMgaW5pdGlhbGl6
YXRpb24gZGF0YSBtdXN0IGJlIDE2IGJ5dGVzLgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9z
dWJ0bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5cHQtd2l0aC1wYWRkaW5nLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5cHQtd2l0aC1w
YWRkaW5nLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzJmZGZi
YWE0ZTIwZGU2MjNkZWI4OTc1ZjhkMDQwYjFkNTQyOWY0Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1j
YmMtZW5jcnlwdC1kZWNyeXB0LXdpdGgtcGFkZGluZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwxOSArMCwwIEBACi1UZXN0IEFFUy1DQkMgZW5jcnlwdCBhbmQgZGVjcnlwdCBmdW5j
dGlvbnMgb24gYSBwbGFpbnRleHQgdGhhdCBpcyBub3QgYSBtdWx0aXBsZSBvZiBibG9jayBzaXpl
IGluIGxlbmd0aC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUltcG9ydGluZyBh
IHJhdyBBRVMga2V5IGZyb20gc3RyaW5nIGxpdGVyYWwuLi4KLVBBU1Mga2V5LnR5cGUgaXMgJ3Nl
Y3JldCcKLVBBU1Mga2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKLVBBU1Mga2V5LmFsZ29yaXRobS5u
YW1lIGlzICdBRVMtQ0JDJwotUEFTUyBrZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyAxMjgKLVBBU1Mg
a2V5LnVzYWdlcyBpcyBbJ2RlY3J5cHQnLCAnZW5jcnlwdCddCi1Vc2luZyB0aGUga2V5IHRvIGVu
Y3J5cHQgcGxhaW50ZXh0Li4uCi1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXko
Y3lwaGVydGV4dCkpIGlzICc2MzAxOTljNWYyMDJjYzcxNjdiYjg0YzZjNzJiMzQ5ZCcKLURlY3J5
cHRpbmcgaXQgYmFjay4uLgotUEFTUyBuZXcgVWludDhBcnJheShkZWNyeXB0aW9uUmVzdWx0KSBp
cyBwbGFpbnRleHQKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01Q
TEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtZW5j
cnlwdC1kZWNyeXB0LXdpdGgtcGFkZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRs
ZS9hZXMtY2JjLWVuY3J5cHQtZGVjcnlwdC13aXRoLXBhZGRpbmcuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYmFiNjQ2MGE2ZjNiZTY4YWUxOGRjMGZlZjAxZTRmZjNjMzEzMWMy
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtZW5jcnlwdC1kZWNyeXB0LXdpdGgtcGFkZGluZy5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBBRVMtQ0JDIGVuY3J5cHQg
YW5kIGRlY3J5cHQgZnVuY3Rpb25zIG9uIGEgcGxhaW50ZXh0IHRoYXQgaXMgbm90IGEgbXVsdGlw
bGUgb2YgYmxvY2sgc2l6ZSBpbiBsZW5ndGguIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwot
Ci12YXIga2V5RGF0YSA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiMmI3ZTE1MTYyOGFlZDJhNmFi
ZjcxNTg4MDljZjRmM2MiKTsKLXZhciBpdiA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAwMTAy
MDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYiKTsKLXZhciBwbGFpbnRleHQgPSBhc2NpaVRvVWlu
dDhBcnJheSgidGVzdCIpOwotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLQotZGVidWcoIkltcG9y
dGluZyBhIHJhdyBBRVMga2V5IGZyb20gc3RyaW5nIGxpdGVyYWwuLi4iKTsKLWNyeXB0by5zdWJ0
bGUuaW1wb3J0S2V5KCJyYXciLCBrZXlEYXRhLCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVu
Y3J5cHQiLCAiZGVjcnlwdCJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtleSA9IHJl
c3VsdDsKLSAgICBzaG91bGRCZSgia2V5LnR5cGUiLCAiJ3NlY3JldCciKTsKLSAgICBzaG91bGRC
ZSgia2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKLSAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRo
bS5uYW1lIiwgIidBRVMtQ0JDJyIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLmxlbmd0
aCIsICIxMjgiKTsKLSAgICBzaG91bGRCZSgia2V5LnVzYWdlcyIsICJbJ2RlY3J5cHQnLCAnZW5j
cnlwdCddIik7Ci0KLSAgICBkZWJ1ZygiVXNpbmcgdGhlIGtleSB0byBlbmNyeXB0IHBsYWludGV4
dC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmVuY3J5cHQoe25hbWU6ICJhZXMtY2Jj
IiwgaXY6IGl2fSwga2V5LCBwbGFpbnRleHQpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsK
LSAgICBjeXBoZXJ0ZXh0ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5n
KG5ldyBVaW50OEFycmF5KGN5cGhlcnRleHQpKSIsICInNjMwMTk5YzVmMjAyY2M3MTY3YmI4NGM2
YzcyYjM0OWQnIik7Ci0KLSAgICBkZWJ1ZygiRGVjcnlwdGluZyBpdCBiYWNrLi4uIik7Ci0gICAg
cmV0dXJuIGNyeXB0by5zdWJ0bGUuZGVjcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBr
ZXksIHJlc3VsdCk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGRlY3J5cHRpb25S
ZXN1bHQgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoIm5ldyBVaW50OEFycmF5KGRlY3J5cHRpb25S
ZXN1bHQpIiwgInBsYWludGV4dCIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3Njcmlw
dD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS9hZXMtY2JjLWVuY3J5cHQtZGVjcnlwdC5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS9hZXMtY2JjLWVuY3J5cHQtZGVjcnlwdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBlNjdmNDI3ZTM5YjAzOTZlOGQ0OTE2N2ZhMjQ5OThkNDIwNjAyMDE0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5cHQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDU0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0Pgot
ZGVzY3JpcHRpb24oIlRlc3QgQUVTLUNCQyBlbmNyeXB0IGFuZCBkZWNyeXB0IGZ1bmN0aW9ucy4i
KTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBrZXlEYXRhID0gaGV4U3RyaW5nVG9V
aW50OEFycmF5KCIyYjdlMTUxNjI4YWVkMmE2YWJmNzE1ODgwOWNmNGYzYyIpOwotdmFyIGl2ID0g
aGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIp
OwotdmFyIHBsYWludGV4dCA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiNmJjMWJlZTIyZTQwOWY5
NmU5M2Q3ZTExNzM5MzE3MmFhZTJkOGE1NzFlMDNhYzljOWViNzZmYWM0NWFmOGU1MTMwYzgxYzQ2
YTM1Y2U0MTFlNWZiYzExOTFhMGE1MmVmZjY5ZjI0NDVkZjRmOWIxN2FkMmI0MTdiZTY2YzM3MTAi
KTsKLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci0KLWRlYnVnKCJJbXBvcnRpbmcgYSByYXcgQUVT
IGtleSBmcm9tIHN0cmluZyBsaXRlcmFsLi4uIik7Ci1jcnlwdG8uc3VidGxlLmltcG9ydEtleSgi
cmF3Iiwga2V5RGF0YSwgImFlcy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5
cHQiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBrZXkgPSByZXN1bHQ7Ci0gICAgc2hv
dWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7Ci0gICAgc2hvdWxkQmUoImtleS5leHRyYWN0
YWJsZSIsICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIsICInQUVT
LUNCQyciKTsKLSAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMTI4Iik7Ci0g
ICAgc2hvdWxkQmUoImtleS51c2FnZXMiLCAiWydkZWNyeXB0JywgJ2VuY3J5cHQnXSIpOwotCi0g
ICAgZGVidWcoIlVzaW5nIHRoZSBrZXkgdG8gZW5jcnlwdCBwbGFpbnRleHQuLi4iKTsKLSAgICBy
ZXR1cm4gY3J5cHRvLnN1YnRsZS5lbmNyeXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtl
eSwgcGxhaW50ZXh0KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZW5jcnlwdGlv
blJlc3VsdCA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWlu
dDhBcnJheShlbmNyeXB0aW9uUmVzdWx0KSkiLCAiJzc2NDlhYmFjODExOWIyNDZjZWU5OGU5YjEy
ZTkxOTdkNTA4NmNiOWI1MDcyMTllZTk1ZGIxMTNhOTE3Njc4YjI3M2JlZDZiOGUzYzE3NDNiNzEx
NmU2OWUyMjIyOTUxNjNmZjFjYWExNjgxZmFjMDkxMjBlY2EzMDc1ODZlMWE3OGNiODI4MDcyMzBl
MTMyMWQzZmFlMDBkMThjYzIwMTInIik7Ci0KLSAgICBkZWJ1ZygiRGVjcnlwdGluZyBpdCBiYWNr
Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGVjcnlwdCh7bmFtZTogImFlcy1jYmMi
LCBpdjogaXZ9LCBrZXksIHJlc3VsdCk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAg
IGRlY3J5cHRpb25SZXN1bHQgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoIm5ldyBVaW50OEFycmF5
KGRlY3J5cHRpb25SZXN1bHQpIiwgInBsYWludGV4dCIpOwotCi0gICAgZGVidWcoIlRlc3Rpbmcg
aW5pdGlhbGl6YXRpb24gdmVjdG9yIGJpbmRpbmdzLi4uIik7Ci0gICAgc2hvdWxkVGhyb3coImNy
eXB0by5zdWJ0bGUuZW5jcnlwdCh7bmFtZTogJ0FFUy1DQkMnLCBpdjogbnVsbH0sIGtleSwgcGxh
aW50ZXh0KSIpOwotICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmVuY3J5cHQoe25hbWU6
ICdBRVMtQ0JDJ30sIGtleSwgcGxhaW50ZXh0KSIpOwotICAgIHNob3VsZFRocm93KCJjcnlwdG8u
c3VidGxlLmVuY3J5cHQoe25hbWU6ICdBRVMtQ0JDJywgaXY6IDN9LCBrZXksIHBsYWludGV4dCki
KTsKLSAgICBzaG91bGRUaHJvdygiY3J5cHRvLnN1YnRsZS5lbmNyeXB0KHtuYW1lOiAnQUVTLUNC
QycsIGl2OiBuZXcgVWludDhBcnJheShbMF0pfSwga2V5LCBwbGFpbnRleHQpIik7Ci0KLSAgICBm
aW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy1nZW5lcmF0ZS1rZXktZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLWdlbmVyYXRlLWtl
eS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA1NjY5NzI0NGIy
YzZjYTI0ZDJiMGFiYTNlYTM2OTQ5NThjNDkzYTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLWdl
bmVyYXRlLWtleS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1U
ZXN0IGdlbmVyYXRpbmcgYW4gQUVTIGtleSB1c2luZyBBRVMtQ0JDIGFsZ29yaXRobS4KLQotT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtl
eSgiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjcnlwdG8uc3VidGxlLmdlbmVy
YXRlS2V5KHtuYW1lOiAiYWVzLWNiYyJ9LCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5
cHQiXSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVmFsdWUgTmFOIGlzIG91dHNpZGUgdGhl
IHJhbmdlIFswLCA2NTUzNV0uCi1QQVNTIGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6
ICJhZXMtY2JjIiwgbGVuZ3RoOiB1bmRlZmluZWR9LCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0Iiwg
ImRlY3J5cHQiXSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVmFsdWUgTmFOIGlzIG91dHNp
ZGUgdGhlIHJhbmdlIFswLCA2NTUzNV0uCi1QQVNTIGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXko
e25hbWU6ICJhZXMtY2JjIiwgbGVuZ3RoOiB7fX0sIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAi
ZGVjcnlwdCJdKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBWYWx1ZSBOYU4gaXMgb3V0c2lk
ZSB0aGUgcmFuZ2UgWzAsIDY1NTM1XS4KLUdlbmVyYXRpbmcgYSBrZXkuLi4KLVBBU1Mga2V5LnR5
cGUgaXMgJ3NlY3JldCcKLVBBU1Mga2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKLVBBU1Mga2V5LmFs
Z29yaXRobS5uYW1lIGlzICdBRVMtQ0JDJwotUEFTUyBrZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyAx
MjgKLVBBU1Mga2V5LnVzYWdlcyBpcyBbJ2RlY3J5cHQnLCAnZW5jcnlwdCddCi1QQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLWdlbmVyYXRlLWtleS5odG1sIGIvTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLWdlbmVyYXRlLWtleS5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlMzYyYzhmOTQyMWJjN2YwZDdmN2MwODk2M2JlNGU2M2Q5NjQ3
Y2NlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy1nZW5lcmF0ZS1rZXkuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDM5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+
Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08
c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgZ2VuZXJhdGluZyBhbiBBRVMga2V5IHVzaW5nIEFF
Uy1DQkMgYWxnb3JpdGhtLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGV4dHJh
Y3RhYmxlID0gdHJ1ZTsKLQotc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXko
ImFlcy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSknKTsKLXNob3Vs
ZFRocm93KCdjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiYWVzLWNiYyJ9LCBleHRy
YWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSknKTsKLXNob3VsZFRocm93KCdjcnlwdG8u
c3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiYWVzLWNiYyIsIGxlbmd0aDogdW5kZWZpbmVkfSwg
ZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pJyk7Ci1zaG91bGRUaHJvdygnY3J5
cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImFlcy1jYmMiLCBsZW5ndGg6IHt9fSwgZXh0
cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pJyk7Ci0KLWRlYnVnKCJHZW5lcmF0aW5n
IGEga2V5Li4uIik7Ci1jcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiYWVzLWNiYyIs
IGxlbmd0aDogMTI4fSwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pLnRoZW4o
ZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0OwotCi0gICAgc2hvdWxkQmUoImtl
eS50eXBlIiwgIidzZWNyZXQnIik7Ci0gICAgc2hvdWxkQmUoImtleS5leHRyYWN0YWJsZSIsICJ0
cnVlIik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIsICInQUVTLUNCQyciKTsK
LSAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMTI4Iik7Ci0gICAgc2hvdWxk
QmUoImtleS51c2FnZXMiLCAiWydkZWNyeXB0JywgJ2VuY3J5cHQnXSIpOwotCi0gICAgZmluaXNo
SlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtaW1wb3J0LWp3ay1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtaW1wb3J0LWp3ay1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwZGZiNjQyNjMwMzk5ZDUyYzhh
ZTZhOWRjMjJhZWRhZTExMDhlYTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLWltcG9ydC1qd2st
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGVzdCBpbXBvcnRp
bmcgYSBKV0sga2V5IGZvciBBRVMtQ0JDLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0K
LQotSW1wb3J0aW5nIGEga2V5Li4uCi0KLVBBU1Mga2V5LnR5cGUgaXMgJ3NlY3JldCcKLVBBU1Mg
a2V5LmV4dHJhY3RhYmxlIGlzIGZhbHNlCi1QQVNTIGtleS5hbGdvcml0aG0ubmFtZSBpcyAnQUVT
LUNCQycKLVBBU1Mga2V5LmFsZ29yaXRobS5sZW5ndGggaXMgMTkyCi1QQVNTIGtleS51c2FnZXMg
aXMgWyJlbmNyeXB0Il0KLQotVXNpbmcgdGhlIGtleSB0byBlbmNyeXB0IHBsYWludGV4dC4uLgot
UEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGVuY3J5cHRpb25SZXN1bHQpKSBp
cyAnNGYwMjFkYjI0M2JjNjMzZDcxNzgxODNhOWZhMDcxZThiNGQ5YWRhOWFkN2RlZGY0ZTVlNzM4
NzYzZjY5MTQ1YTU3MWIyNDIwMTJmYjdhZTA3ZmE5YmFhYzNkZjEwMmUwMDhiMGUyNzk4ODU5ODg4
MWQ5MjBhOWU2NGY1NjE1Y2Q2MTJjY2Q3OTIyNGIzNTA5MzVkNDVkZDZhOThmODE3NicKLVBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtaW1wb3J0LWp3ay5odG1sIGIvTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLWltcG9ydC1qd2suaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMmQwOGNjMzc1NWI5MDkwZDNjMjc2MDY5NmEwZDE0ZGU5YzFk
YzgyZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtaW1wb3J0LWp3ay5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4K
LTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxz
Y3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBpbXBvcnRpbmcgYSBKV0sga2V5IGZvciBBRVMtQ0JD
LiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsK
LQotdmFyIGl2ID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBh
MGIwYzBkMGUwZiIpOwotdmFyIHBsYWludGV4dCA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiNmJj
MWJlZTIyZTQwOWY5NmU5M2Q3ZTExNzM5MzE3MmFhZTJkOGE1NzFlMDNhYzljOWViNzZmYWM0NWFm
OGU1MTMwYzgxYzQ2YTM1Y2U0MTFlNWZiYzExOTFhMGE1MmVmZjY5ZjI0NDVkZjRmOWIxN2FkMmI0
MTdiZTY2YzM3MTAiKTsKLQotdmFyIGp3a0tleSA9IHsKLSAgICAia3R5IjogIm9jdCIsCi0gICAg
ImFsZyI6ICJBMTkyQ0JDIiwKLSAgICAidXNlIjogImVuYyIsCi0gICAgImV4dCI6IHRydWUsCi0g
ICAgImsiOiAiam5Pdzk5b09aRkxJRVBNcmdKQjU1V0w0NnRKU0xHdDciCi19OwotCi12YXIgandr
S2V5QXNBcnJheUJ1ZmZlciA9IGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KGp3a0tl
eSkpOwotCi1kZWJ1ZygiSW1wb3J0aW5nIGEga2V5Li4uXG4iKTsKLWNyeXB0by5zdWJ0bGUuaW1w
b3J0S2V5KCJqd2siLCBqd2tLZXlBc0FycmF5QnVmZmVyLCBudWxsLCBmYWxzZSwgWyJlbmNyeXB0
Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0OwotCi0gICAgc2hv
dWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7Ci0gICAgc2hvdWxkQmUoImtleS5leHRyYWN0
YWJsZSIsICJmYWxzZSIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FF
Uy1DQkMnIik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjE5MiIpOwot
ICAgIHNob3VsZEJlKCJrZXkudXNhZ2VzIiwgJ1siZW5jcnlwdCJdJyk7Ci0KLSAgICBkZWJ1Zygi
XG5Vc2luZyB0aGUga2V5IHRvIGVuY3J5cHQgcGxhaW50ZXh0Li4uIik7Ci0gICAgcmV0dXJuIGNy
eXB0by5zdWJ0bGUuZW5jcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXksIHBsYWlu
dGV4dCk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGVuY3J5cHRpb25SZXN1bHQg
PSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXko
ZW5jcnlwdGlvblJlc3VsdCkpIiwgIic0ZjAyMWRiMjQzYmM2MzNkNzE3ODE4M2E5ZmEwNzFlOGI0
ZDlhZGE5YWQ3ZGVkZjRlNWU3Mzg3NjNmNjkxNDVhNTcxYjI0MjAxMmZiN2FlMDdmYTliYWFjM2Rm
MTAyZTAwOGIwZTI3OTg4NTk4ODgxZDkyMGE5ZTY0ZjU2MTVjZDYxMmNjZDc5MjI0YjM1MDkzNWQ0
NWRkNmE5OGY4MTc2JyIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQot
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9h
ZXMtY2JjLWludmFsaWQtbGVuZ3RoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by9z
dWJ0bGUvYWVzLWNiYy1pbnZhbGlkLWxlbmd0aC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGEwMmE1ZjIwNTYwNzhhYjdmNGMwMjRkNDdhMTc4NWE5ODc3MzUxOTYu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLWludmFsaWQtbGVuZ3RoLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRlc3QgYW4gdW5zdXBwb3J0ZWQgQUVTIGtleSBs
ZW5ndGguCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1JbXBvcnRpbmcgYSByYXcg
QUVTIGtleSBmcm9tIHN0cmluZyBsaXRlcmFsLi4uCi1QQVNTIGtleS50eXBlIGlzICdzZWNyZXQn
Ci1QQVNTIGtleS5leHRyYWN0YWJsZSBpcyB0cnVlCi1QQVNTIGtleS5hbGdvcml0aG0ubmFtZSBp
cyAnQUVTLUNCQycKLVBBU1Mga2V5LmFsZ29yaXRobS5sZW5ndGggaXMgMTc2Ci1QQVNTIGtleS51
c2FnZXMgaXMgWydkZWNyeXB0JywgJ2VuY3J5cHQnXQotVXNpbmcgdGhlIGtleSB0byBlbmNyeXB0
IHBsYWludGV4dC4uLgotRmFpbGVkLCBhcyBleHBlY3RlZC4gTm90ZSB0aGF0IHRoZSBzcGVjIGRv
ZXNuJ3QgYXBwZWFyIHRvIGNsZWFybHkgZGVmaW5lIHdoaWNoIHN0ZXAgc2hvdWxkIGZhaWwuCi1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLWludmFsaWQtbGVuZ3RoLmh0
bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtaW52YWxpZC1sZW5ndGguaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWQ3YTg5YzgxM2JlOWUxODNmNWNhYTA0
NjVlMzM3MTJhZWYzZjg4ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtaW52YWxpZC1sZW5ndGgu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0
bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgYW4gdW5zdXBwb3J0ZWQg
QUVTIGtleSBsZW5ndGguIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIga2V5RGF0
YSA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiOGU3M2IwZjdkYTBlNjQ1MmM4MTBmMzJiODA5MDc5
ZTU2MmY4ZWFkMjUyMmMiKTsKLXZhciBpdiA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAwMTAy
MDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYiKTsKLXZhciBwbGFpbnRleHQgPSBoZXhTdHJpbmdU
b1VpbnQ4QXJyYXkoIjZiYzFiZWUyMmU0MDlmOTZlOTNkN2UxMTczOTMxNzJhYWUyZDhhNTcxZTAz
YWM5YzllYjc2ZmFjNDVhZjhlNTEzMGM4MWM0NmEzNWNlNDExZTVmYmMxMTkxYTBhNTJlZmY2OWYy
NDQ1ZGY0ZjliMTdhZDJiNDE3YmU2NmMzNzEwIik7Ci12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwot
Ci1kZWJ1ZygiSW1wb3J0aW5nIGEgcmF3IEFFUyBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJhbC4uLiIp
OwotY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGtleURhdGEsICJhZXMtY2JjIiwgZXh0
cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7
Ci0gICAga2V5ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJrZXkudHlwZSIsICInc2VjcmV0JyIp
OwotICAgIHNob3VsZEJlKCJrZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIpOwotICAgIHNob3VsZEJl
KCJrZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FFUy1DQkMnIik7Ci0gICAgc2hvdWxkQmUoImtleS5h
bGdvcml0aG0ubGVuZ3RoIiwgIjE3NiIpOwotICAgIHNob3VsZEJlKCJrZXkudXNhZ2VzIiwgIlsn
ZGVjcnlwdCcsICdlbmNyeXB0J10iKTsKLQotICAgIGRlYnVnKCJVc2luZyB0aGUga2V5IHRvIGVu
Y3J5cHQgcGxhaW50ZXh0Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZW5jcnlwdCh7
bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXksIFtwbGFpbnRleHRdKTsKLX0pLnRoZW4odW5k
ZWZpbmVkLCBmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBkZWJ1ZygiRmFpbGVkLCBhcyBleHBlY3Rl
ZC4gTm90ZSB0aGF0IHRoZSBzcGVjIGRvZXNuJ3QgYXBwZWFyIHRvIGNsZWFybHkgZGVmaW5lIHdo
aWNoIHN0ZXAgc2hvdWxkIGZhaWwuIik7Ci0KLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9z
Y3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvYWVzLWNiYy11bndyYXAtZmFpbHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtdW53cmFwLWZhaWx1cmUtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZTgxMTJkODIwMDA5OWUzYTkyM2U3MjIxMDYwNzZl
ZDQ1N2Y3Yjg3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy11bndyYXAtZmFpbHVyZS1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1UZXN0IHVud3JhcHBpbmcgYW4g
UlNBIGtleSB3aXRoIEFFUy1DQkMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1J
bXBvcnRpbmcgYW4gdW53cmFwcGluZyBrZXkuLi4KLVBBU1MgdW53cmFwcGluZ0tleS5hbGdvcml0
aG0ubmFtZSBpcyAnQUVTLUNCQycKLVVud3JhcHBpbmcgYSBrZXkuLi4KLVBBU1MgUHJvbWlzZSBy
ZWplY3RlZAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRF
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy11bndyYXAt
ZmFpbHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXVud3JhcC1m
YWlsdXJlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY3ZmNmNGZlOWM0ZTRl
YjBkMDVhYjE5MDgwOWE3ZmFhY2IwOWQ2NDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXVud3Jh
cC1mYWlsdXJlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IHVud3Jh
cHBpbmcgYW4gUlNBIGtleSB3aXRoIEFFUy1DQkMuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVl
OwotCi12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotdmFyIG5vbkV4dHJhY3RhYmxlID0gZmFsc2U7
Ci0KLXZhciB1bndyYXBwaW5nS2V5T2N0ZXRzID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCIyYTAw
ZTBlNzc2ZTk0ZTRkYzg5YmY5NDdjZWJkZWJlMSIpOwotdmFyIHdyYXBwZWRLZXkgPSBoZXhTdHJp
bmdUb1VpbnQ4QXJyYXkoImI0OTBkZWRiM2FiYzNmZDU0NWUxNDY1MzhlNmNjM2NhIik7IC8vIEFu
IGVtcHR5IGVuY3J5cHRlZCBKU09OLgotCi1kZWJ1ZygiSW1wb3J0aW5nIGFuIHVud3JhcHBpbmcg
a2V5Li4uIik7Ci1jcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3IiwgdW53cmFwcGluZ0tleU9j
dGV0cywgIkFFUy1DQkMiLCBub25FeHRyYWN0YWJsZSwgWyJ1bndyYXBLZXkiXSkudGhlbihmdW5j
dGlvbihyZXN1bHQpIHsKLSAgICB1bndyYXBwaW5nS2V5ID0gcmVzdWx0OwotICAgIHNob3VsZEJl
KCJ1bndyYXBwaW5nS2V5LmFsZ29yaXRobS5uYW1lIiwgIidBRVMtQ0JDJyIpOwotICAgIHZhciB1
bndyYXBBbGdvcml0aG0gPSB7bmFtZTogIkFFUy1DQkMiLCBpdjogaGV4U3RyaW5nVG9VaW50OEFy
cmF5KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIpfTsKLSAgICBkZWJ1ZygiVW53
cmFwcGluZyBhIGtleS4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLnVud3JhcEtleSgi
andrIiwgd3JhcHBlZEtleSwgdW53cmFwcGluZ0tleSwgdW53cmFwQWxnb3JpdGhtLCBudWxsLCBl
eHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSIsICJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3Jh
cCIsICJ1bndyYXAiXSk7Ci19KS50aGVuKHVuZGVmaW5lZCwgZnVuY3Rpb24ocmVzdWx0KSB7Ci0g
ICAgdGVzdFBhc3NlZCgiUHJvbWlzZSByZWplY3RlZCIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwot
fSk7Ci0KLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtdW53cmFwLXJzYS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtdW53cmFwLXJzYS1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlMDFjMTE5MzY4YmQ1N2QzNTQzNTZmMTE4ZDU4
MjQwZjBhZDMzZGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXVud3JhcC1yc2EtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGVzdCB1bndyYXBwaW5nIGFuIFJT
QSBrZXkgd2l0aCBBRVMtQ0JDLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotSW1w
b3J0aW5nIGFuIHVud3JhcHBpbmcga2V5Li4uCi1QQVNTIHVud3JhcHBpbmdLZXkuYWxnb3JpdGht
Lm5hbWUgaXMgJ0FFUy1DQkMnCi1VbndyYXBwaW5nIGEga2V5Li4uCi1QQVNTIHVud3JhcHBlZEtl
eS50b1N0cmluZygpIGlzICdbb2JqZWN0IEtleV0nCi1QQVNTIHVud3JhcHBlZEtleS50eXBlIGlz
ICdwdWJsaWMnCi1QQVNTIHVud3JhcHBlZEtleS51c2FnZXMgaXMgWydzaWduJywndmVyaWZ5J10K
LVBBU1MgdW53cmFwcGVkS2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScK
LVBBU1MgdW53cmFwcGVkS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIGlzIDIwNDgKLVBBU1Mg
QmFzZTY0VVJMLnN0cmluZ2lmeSh1bndyYXBwZWRLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50
KSBpcyBwdWJsaWNLZXlKU09OLmUKLVBBU1MgdW53cmFwcGVkS2V5LmFsZ29yaXRobS5oYXNoLm5h
bWUgaXMgJ1NIQS0yNTYnCi1QQVNTIHVud3JhcHBlZEtleS5leHRyYWN0YWJsZSBpcyBmYWxzZQot
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy11bndyYXAtcnNhLmh0bWwg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtdW53cmFwLXJzYS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZGQ3M2FmM2Q3ZjA2N2I5MDU2YjhlNDdlNzNhMDg4
NmNkOTZmMTA3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy11bndyYXAtcnNhLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
LQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IHVud3JhcHBpbmcgYW4gUlNBIGtleSB3aXRo
IEFFUy1DQkMuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIgZXh0cmFjdGFibGUg
PSB0cnVlOwotdmFyIG5vbkV4dHJhY3RhYmxlID0gZmFsc2U7Ci0KLXZhciBwdWJsaWNLZXlKU09O
ID0gewotICAgIGt0eTogIlJTQSIsCi0gICAgYWxnOiAiUlMyNTYiLAotICAgIG46ICJyY0NVQ3Y3
T2MxSFZhbTFESWhDenFrblRoV2F3T3A4UUxrOFppeTJwMTBCeWpRRkNham9GaXl1QVdsLVIxV1ha
YWY0eGl0TFJyYWNUOWFncHpJemMtTWJMU0hJR2dXUUdPMjFsR2lJbXk1ZnRaLUQ4YkhBcVJ6Mnkx
NXB6RDRjNENFb3U3WFNTTERvUm5SMFFHNU1zRGhENnMyZ1Y5bXdIa3J0a0N4dE1XZEJpLTc3YXM4
d0dtbE5SbGRjT1NnWkRMSzhVbkNTZ0ExT2d1Wjk4OWJGeWM4dE9PRUliMHhVU2ZQU3ozTFBTQ255
WXo2OGFEam1LVmVOSC1pZzg1N09TY3lXYkd5RXkzQml3NjRxdW4zanVVbE5Xc0ozem5na09kdGVZ
V3l0eDVRcjRYS05zNlItTXl5cTcyS1VwMDJtSkRaaWl5aWdseE1MX2kzLV9DZWVjQ3ciLAotICAg
IGU6ICJBUUFCIiwKLSAgICBleHQ6IGZhbHNlLAotICAgIHVzZTogInNpZyIKLX07Ci0KLXZhciB1
bndyYXBwaW5nS2V5T2N0ZXRzID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCIyYTAwZTBlNzc2ZTk0
ZTRkYzg5YmY5NDdjZWJkZWJlMSIpOwotdmFyIHdyYXBwZWRLZXkgPSBoZXhTdHJpbmdUb1VpbnQ4
QXJyYXkoIjM1MTFmNjAyOGRiMDRlYTk3ZTdjZmFkM2M0Y2M2MDgzN2JjZWZmMjVjYjZjODgyOTJm
YmNiNDU0NzU3MGFmZGMzMmU0MDAzZmU0ZDY1ZjFlN2RmNjBkYzFmZGIzZGYzNmMzZjU4YWIyMjhl
MzNhYTMxMDA1ODUyZDQ2ZDBjMmFkMTMxODQzNWEwNzFiYmI1YmJiMDU2NTBlYTYzZDU1MTY5OGIw
YzA0MGRkOTVlZDBkMzc5YjVlMmVjY2I1NDVhZTU2MjBhY2I4MDUxMTc0Y2QyYWQ2NDczMjhhZDk5
ZGNkNDYyZmVjNDA3NDg3MjRlYjFlNjhmMjA5Zjc3OWZhYTJjMzViNGQ0ZDFiNjYwNGE3NGU2MmEx
ODQ2MjQ5ZWE2MTkyOTU0YTVhZjEwYzcxZWJmZWE3OTk0ODE0MjQ0MWVkMzA3ZTlmNTJlNzk3YTUx
YTgwMDdhNmY4N2I1N2M1MWY5ZTdlZWY1NGI3ZTRhMWY4MThiYTZhYzI1ZWU1OTM1YzIzYjMyNTNk
NmQ5ZDIyMjI2MmM3OWNjZGI3MTQ3ZDljMDc1MjdjMjJmZTdhNGFiOTFhZjIwNDc5ZWRmNTkzMGIz
YzA1M2MwYTBiMjcwOTJjZmI1MzIwMzYzM2QwMWRjZjZlMzMzYjViZTdjMTkzM2MzMjFjOTUzZjk2
MmI5MzRlYmVmZDlkZjhjY2E2YzBhMjVmY2Q1ZmI5NjEwNTQzNWM0MmQ5OTAyNDA2ZjgyYmM4ZGFh
OGVjMTJmYTg1ZDlhZmE2NWFkYmZlM2Y2MDgyOGVmNjRhZGFmNDNhZDhlM2IwYWYxMDRjYmZhZmQ5
OTQzMjM3MzJiYmEwOGY4NGQ1Y2FjMWQxNTdiMjc2MjMzZGZmZWNhZmU0Nzk0MmI4M2M4NWVhZDZk
NTg4NmM2YmFkZjUzNGQ0YTMyZDNmNTQ1ZTgwMzJkZDVlNDE5ZDdiZmYzYWNkZTJjMzdhOTZmYzM0
ZmRhODc0N2Q4OTUwMGJmOWY3ZWY0NTg3M2M2YjNiMjc0MWFhZjc0ZmY5NmEyZjk1MDAyOGYzOGVi
NjJmMWJlOTM2ZmUwYTk5NGViZmE5MjgwMjFjMGM5NjE3MmQ4NDU4NGUiKTsKLQotZGVidWcoIklt
cG9ydGluZyBhbiB1bndyYXBwaW5nIGtleS4uLiIpOwotY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXko
InJhdyIsIHVud3JhcHBpbmdLZXlPY3RldHMsICJBRVMtQ0JDIiwgbm9uRXh0cmFjdGFibGUsIFsi
dW53cmFwS2V5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgdW53cmFwcGluZ0tleSA9
IHJlc3VsdDsKLSAgICBzaG91bGRCZSgidW53cmFwcGluZ0tleS5hbGdvcml0aG0ubmFtZSIsICIn
QUVTLUNCQyciKTsKLSAgICB2YXIgdW53cmFwQWxnb3JpdGhtID0ge25hbWU6ICJBRVMtQ0JDIiwg
aXY6IGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBl
MGYiKX07Ci0gICAgZGVidWcoIlVud3JhcHBpbmcgYSBrZXkuLi4iKTsKLSAgICByZXR1cm4gY3J5
cHRvLnN1YnRsZS51bndyYXBLZXkoImp3ayIsIHdyYXBwZWRLZXksIHVud3JhcHBpbmdLZXksIHVu
d3JhcEFsZ29yaXRobSwgbnVsbCwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiLCAiZW5j
cnlwdCIsICJkZWNyeXB0IiwgIndyYXAiLCAidW53cmFwIl0pOwotfSkudGhlbihmdW5jdGlvbihy
ZXN1bHQpIHsKLSAgICB1bndyYXBwZWRLZXkgPSByZXN1bHQ7Ci0KLSAgICBzaG91bGRCZSgidW53
cmFwcGVkS2V5LnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgS2V5XSciKTsKLSAgICBzaG91bGRCZSgi
dW53cmFwcGVkS2V5LnR5cGUiLCAiJ3B1YmxpYyciKTsKLSAgICBzaG91bGRCZSgidW53cmFwcGVk
S2V5LnVzYWdlcyIsICJbJ3NpZ24nLCd2ZXJpZnknXSIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBw
ZWRLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ1JTQVNTQS1QS0NTMS12MV81JyIpOwotICAgIHNob3Vs
ZEJlKCJ1bndyYXBwZWRLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOwotICAg
IHNob3VsZEJlKCJCYXNlNjRVUkwuc3RyaW5naWZ5KHVud3JhcHBlZEtleS5hbGdvcml0aG0ucHVi
bGljRXhwb25lbnQpIiwgInB1YmxpY0tleUpTT04uZSIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBw
ZWRLZXkuYWxnb3JpdGhtLmhhc2gubmFtZSIsICInU0hBLTI1NiciKTsKLSAgICBzaG91bGRCZSgi
dW53cmFwcGVkS2V5LmV4dHJhY3RhYmxlIiwgImZhbHNlIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7
Ci19KTsKLQotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy13cmFwLXJzYS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtd3JhcC1yc2EtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYTM0ZmRmYTUzM2EwNDlmNzA2NjAxYmFmMDgwMzFm
M2U0ODY1ZmI1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy13cmFwLXJzYS1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi1UZXN0IHdyYXBwaW5nIGFuIFJTQSBrZXkg
d2l0aCBBRVMtQ0JDLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotSW1wb3J0aW5n
IGEga2V5IHRvIHdyYXAuLi4KLVBBU1Mga2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FTU0EtUEtD
UzEtdjFfNScKLUltcG9ydGluZyBhIGtleSBlbmNyeXB0aW9uIGtleS4uLgotUEFTUyB3cmFwcGlu
Z0tleS5hbGdvcml0aG0ubmFtZSBpcyAnQUVTLUNCQycKLVBBU1Mgd3JhcHBlZEtleS50b1N0cmlu
ZygpIGlzICdbb2JqZWN0IEFycmF5QnVmZmVyXScKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8v
c3VidGxlL2Flcy1jYmMtd3JhcC1yc2Etbm9uLWV4dHJhY3RhYmxlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy13cmFwLXJzYS1ub24tZXh0cmFjdGFibGUt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MjZhNjQ4YTcwMzE0
NTU2MmFlMjlhYmM4ZWE0NzkyYjM0ODc1ZmUxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy13cmFw
LXJzYS1ub24tZXh0cmFjdGFibGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUg
KzAsMCBAQAotVGVzdCB3cmFwcGluZyBhbiBSU0Ega2V5IHdpdGggQUVTLUNCQy4KLQotT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUltcG9ydGluZyBhIGtleSB0byB3cmFwLi4uCi1QQVNT
IGtleS5hbGdvcml0aG0ubmFtZSBpcyAnUlNBU1NBLVBLQ1MxLXYxXzUnCi1JbXBvcnRpbmcgYSBr
ZXkgZW5jcnlwdGlvbiBrZXkuLi4KLVBBU1Mgd3JhcHBpbmdLZXkuYWxnb3JpdGhtLm5hbWUgaXMg
J0FFUy1DQkMnCi13cmFwcGluZyB0aGUga2V5Li4uCi1QQVNTIFJlamVjdGVkCi1QQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLW5vbi1leHRyYWN0YWJsZS5o
dG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLW5vbi1leHRy
YWN0YWJsZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZDUxMTczNGY1MWNh
ZWZiZWM4ZDI2YWJmNGU4MTZlNTBhYWRiZDc0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy13cmFw
LXJzYS1ub24tZXh0cmFjdGFibGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9j
b21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24o
IlRlc3Qgd3JhcHBpbmcgYW4gUlNBIGtleSB3aXRoIEFFUy1DQkMuIik7Ci0KLWpzVGVzdElzQXN5
bmMgPSB0cnVlOwotCi12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotdmFyIG5vbkV4dHJhY3RhYmxl
ID0gZmFsc2U7Ci0KLXZhciBwdWJsaWNLZXlKU09OID0gewotICAgIGt0eTogIlJTQSIsCi0gICAg
YWxnOiAiUlMyNTYiLAotICAgIG46ICJyY0NVQ3Y3T2MxSFZhbTFESWhDenFrblRoV2F3T3A4UUxr
OFppeTJwMTBCeWpRRkNham9GaXl1QVdsLVIxV1haYWY0eGl0TFJyYWNUOWFncHpJemMtTWJMU0hJ
R2dXUUdPMjFsR2lJbXk1ZnRaLUQ4YkhBcVJ6MnkxNXB6RDRjNENFb3U3WFNTTERvUm5SMFFHNU1z
RGhENnMyZ1Y5bXdIa3J0a0N4dE1XZEJpLTc3YXM4d0dtbE5SbGRjT1NnWkRMSzhVbkNTZ0ExT2d1
Wjk4OWJGeWM4dE9PRUliMHhVU2ZQU3ozTFBTQ255WXo2OGFEam1LVmVOSC1pZzg1N09TY3lXYkd5
RXkzQml3NjRxdW4zanVVbE5Xc0ozem5na09kdGVZV3l0eDVRcjRYS05zNlItTXl5cTcyS1VwMDJt
SkRaaWl5aWdseE1MX2kzLV9DZWVjQ3ciLAotICAgIGU6ICJBUUFCIiwKLSAgICBleHQ6IGZhbHNl
LAotICAgIHVzZTogInNpZyIKLX07Ci0KLXZhciBqd2tLZXlBc0FycmF5QnVmZmVyID0gYXNjaWlU
b1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHVibGljS2V5SlNPTikpOwotdmFyIHdyYXBwaW5n
S2V5T2N0ZXRzID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCIyYTAwZTBlNzc2ZTk0ZTRkYzg5YmY5
NDdjZWJkZWJlMSIpOwotCi1kZWJ1ZygiSW1wb3J0aW5nIGEga2V5IHRvIHdyYXAuLi4iKTsKLWNy
eXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tLZXlBc0FycmF5QnVmZmVyLCBudWxsLCBl
eHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewot
ICAgIGtleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidS
U0FTU0EtUEtDUzEtdjFfNSciKTsKLSAgICBkZWJ1ZygiSW1wb3J0aW5nIGEga2V5IGVuY3J5cHRp
b24ga2V5Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCB3
cmFwcGluZ0tleU9jdGV0cywgIkFFUy1DQkMiLCBub25FeHRyYWN0YWJsZSwgWyJ3cmFwS2V5Il0p
OwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB3cmFwcGluZ0tleSA9IHJlc3VsdDsK
LSAgICBzaG91bGRCZSgid3JhcHBpbmdLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FFUy1DQkMnIik7
Ci0gICAgdmFyIHdyYXBBbGdvcml0aG0gPSB7bmFtZTogIkFFUy1DQkMiLCBpdjogaGV4U3RyaW5n
VG9VaW50OEFycmF5KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIpfTsKLSAgICBk
ZWJ1Zygid3JhcHBpbmcgdGhlIGtleS4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLndy
YXBLZXkoImp3ayIsIGtleSwgd3JhcHBpbmdLZXksIHdyYXBBbGdvcml0aG0pOwotfSkudGhlbih1
bmRlZmluZWQsIGZ1bmN0aW9uKCkgewotICAgIHRlc3RQYXNzZWQoIlJlamVjdGVkIik7Ci0gICAg
ZmluaXNoSlNUZXN0KCk7Ci19KTsKLQotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy13cmFwLXJzYS5odG1s
IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3MWY3OGE2ODBjZjdlNzUwYjM5ZjBlY2QyNGNiMjY1
NDhiOGYzZWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw1MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQot
PHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IHdyYXBwaW5nIGFuIFJTQSBrZXkgd2l0aCBBRVMt
Q0JDLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGV4dHJhY3RhYmxlID0gdHJ1
ZTsKLXZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOwotCi12YXIgcHVibGljS2V5SlNPTiA9IHsK
LSAgICBrdHk6ICJSU0EiLAotICAgIGFsZzogIlJTMjU2IiwKLSAgICBuOiAicmNDVUN2N09jMUhW
YW0xREloQ3pxa25UaFdhd09wOFFMazhaaXkycDEwQnlqUUZDYWpvRml5dUFXbC1SMVdYWmFmNHhp
dExScmFjVDlhZ3B6SXpjLU1iTFNISUdnV1FHTzIxbEdpSW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0
YzRDRW91N1hTU0xEb1JuUjBRRzVNc0RoRDZzMmdWOW13SGtydGtDeHRNV2RCaS03N2FzOHdHbWxO
UmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5ODliRnljOHRPT0VJYjB4VVNmUFN6M0xQU0NueVl6Njhh
RGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5M0JpdzY0cXVuM2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1
UXI0WEtOczZSLU15eXE3MktVcDAybUpEWmlpeWlnbHhNTF9pMy1fQ2VlY0N3IiwKLSAgICBlOiAi
QVFBQiIsCi0gICAgZXh0OiB0cnVlLAotICAgIHVzZTogInNpZyIKLX07Ci0KLXZhciBqd2tLZXlB
c0FycmF5QnVmZmVyID0gYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHVibGljS2V5
SlNPTikpOwotdmFyIHdyYXBwaW5nS2V5T2N0ZXRzID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCIy
YTAwZTBlNzc2ZTk0ZTRkYzg5YmY5NDdjZWJkZWJlMSIpOwotCi1kZWJ1ZygiSW1wb3J0aW5nIGEg
a2V5IHRvIHdyYXAuLi4iKTsKLWNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tLZXlB
c0FycmF5QnVmZmVyLCBudWxsLCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKS50aGVu
KGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgia2V5
LmFsZ29yaXRobS5uYW1lIiwgIidSU0FTU0EtUEtDUzEtdjFfNSciKTsKLSAgICBkZWJ1ZygiSW1w
b3J0aW5nIGEga2V5IGVuY3J5cHRpb24ga2V5Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0
bGUuaW1wb3J0S2V5KCJyYXciLCB3cmFwcGluZ0tleU9jdGV0cywgIkFFUy1DQkMiLCBub25FeHRy
YWN0YWJsZSwgWyJ3cmFwS2V5Il0pOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB3
cmFwcGluZ0tleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgid3JhcHBpbmdLZXkuYWxnb3JpdGht
Lm5hbWUiLCAiJ0FFUy1DQkMnIik7Ci0gICAgdmFyIHdyYXBBbGdvcml0aG0gPSB7bmFtZTogIkFF
Uy1DQkMiLCBpdjogaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBh
MGIwYzBkMGUwZiIpfTsKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS53cmFwS2V5KCJqd2siLCBr
ZXksIHdyYXBwaW5nS2V5LCB3cmFwQWxnb3JpdGhtKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0
KSB7Ci0gICAgd3JhcHBlZEtleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgid3JhcHBlZEtleS50
b1N0cmluZygpIiwgIidbb2JqZWN0IEFycmF5QnVmZmVyXSciKTsKLSAgICBmaW5pc2hKU1Rlc3Qo
KTsKLX0pOwotCi08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXdyb25nLWtleS1jbGFzcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtd3Jvbmcta2V5LWNsYXNzLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDU0YzBmOTE4YzcxNTg1
NDA3NDA4NDQwODQ3MmU2YjRkZTcxZTU1MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtd3Jvbmct
a2V5LWNsYXNzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRl
c3QgY2FsbGluZyBBRVMtQ0JDIGVuY3J5cHQgd2l0aCBhIEhNQUMga2V5LgotCi1PbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCi0KLQotSW1wb3J0aW5nIGEgcmF3IEhNQUMga2V5IGZyb20gc3RyaW5n
IGxpdGVyYWwuLi4KLVVzaW5nIHRoZSBrZXkgdG8gZW5jcnlwdCBwbGFpbnRleHQuLi4KLVBBU1Mg
Y3J5cHRvLnN1YnRsZS5lbmNyeXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtleSwgcGxh
aW50ZXh0KSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3IgKERPTSBFeGNlcHRpb24g
OSk6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3J5cHRvL3N1YnRsZS9hZXMtY2JjLXdyb25nLWtleS1jbGFzcy5odG1sIGIvTGF5b3V0VGVzdHMv
Y3J5cHRvL3N1YnRsZS9hZXMtY2JjLXdyb25nLWtleS1jbGFzcy5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjMjRiM2U3MmVlZWM2ZTlmZTY2OTVkNDVkOTU0MGU1ZGY0MWQ5Mzc0
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy13cm9uZy1rZXktY2xhc3MuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDMzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+
Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08
c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgY2FsbGluZyBBRVMtQ0JDIGVuY3J5cHQgd2l0aCBh
IEhNQUMga2V5LiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGl2ID0gaGV4U3Ry
aW5nVG9VaW50OEFycmF5KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIpOwotdmFy
IHBsYWludGV4dCA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiNmJjMWJlZTIyZTQwOWY5NmU5M2Q3
ZTExNzM5MzE3MmFhZTJkOGE1NzFlMDNhYzljOWViNzZmYWM0NWFmOGU1MTMwYzgxYzQ2YTM1Y2U0
MTFlNWZiYzExOTFhMGE1MmVmZjY5ZjI0NDVkZjRmOWIxN2FkMmI0MTdiZTY2YzM3MTAiKTsKLXZh
ciBobWFjS2V5ID0gYXNjaWlUb1VpbnQ4QXJyYXkoJ2EnKTsKLXZhciBleHRyYWN0YWJsZSA9IHRy
dWU7Ci0KLWRlYnVnKCJJbXBvcnRpbmcgYSByYXcgSE1BQyBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJh
bC4uLiIpOwotY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGhtYWNLZXksIHtuYW1lOiAn
aG1hYycsIGhhc2g6IHtuYW1lOiAnc2hhLTEnfX0sIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVy
aWZ5IiwgImVuY3J5cHQiLCAiZGVjcnlwdCJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAg
IGtleSA9IHJlc3VsdDsKLSAgICBkZWJ1ZygiVXNpbmcgdGhlIGtleSB0byBlbmNyeXB0IHBsYWlu
dGV4dC4uLiIpOwotICAgIHNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmVuY3J5cHQoe25hbWU6
ICJhZXMtY2JjIiwgaXY6IGl2fSwga2V5LCBwbGFpbnRleHQpJykKLQotICAgIGZpbmlzaEpTVGVz
dCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtZXhwb3J0LWtleS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1leHBvcnQta2V5LWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODNlZDExMzM3ZDA5MjZjZjRiYmE4MDE4ODg2ZmFmMzYy
MDZhOWMwNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1leHBvcnQta2V5LWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLVRlc3QgZXhwb3J0aW5nIGFuIEFFUyBrZXkuCi0K
LU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0
S2V5KCJyYXciKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50
cy4KLVBBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoInJhdyIsIG51bGwpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5
KCJyYXciLCB1bmRlZmluZWQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3Iu
Ci1QQVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJyYXciLCB7fSkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoInJh
dyIsIDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi0KLUltcG9ydGlu
ZyBhIEpXSyBrZXkuLi4KLVBBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkobnVsbCwga2V5KSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQuCi1QQVNTIGNyeXB0
by5zdWJ0bGUuZXhwb3J0S2V5KHVuZGVmaW5lZCwga2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBVbmtub3duIGtleSBmb3JtYXQuCi1QQVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KHt9
LCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVua25vd24ga2V5IGZvcm1hdC4KLVBB
U1MgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoIiIsIGtleSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVW5rbm93biBrZXkgZm9ybWF0LgotUEFTUyBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgi
Zm9vYmFyIiwga2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtleSBmb3Jt
YXQuCi0KLUV4cG9ydGluZyB0aGUga2V5IGFzIHJhdyBkYXRhLi4uCi1QQVNTIGJ5dGVzVG9IZXhT
dHJpbmcobmV3IFVpbnQ4QXJyYXkoZXhwb3J0ZWREYXRhKSkgaXMgJzhlNzNiMGY3ZGEwZTY0NTJj
ODEwZjMyYjgwOTA3OWU1NjJmOGVhZDI1MjJjNmI3YicKLUV4cG9ydGluZyB0aGUga2V5IGFzIEpX
Sy4uLgotUEFTUyBleHBvcnRlZEpXSy5rdHkgaXMgJ29jdCcKLVBBU1MgZXhwb3J0ZWRKV0suayBp
cyAnam5Pdzk5b09aRkxJRVBNcmdKQjU1V0w0NnRKU0xHdDcnCi1QQVNTIGV4cG9ydGVkSldLLmFs
ZyBpcyAnQTE5MkNCQycKLVBBU1MgZXhwb3J0ZWRKV0suZXh0IGlzIHRydWUKLVBBU1MgZXhwb3J0
ZWRKV0sudXNlIGlzIHVuZGVmaW5lZAotUEFTUyBleHBvcnRlZEpXSy5rZXlfb3BzIGlzIFsnZW5j
cnlwdCcsICdkZWNyeXB0JywgJ3dyYXBLZXknLCAndW53cmFwS2V5J10KLQotSW1wb3J0aW5nIGEg
a2V5IHRoYXQncyBub3QgZXh0cmFjdGFibGUuLi4KLQotVHJ5aW5nIHRvIGV4cG9ydCBhcyByYXcu
Li4KLVBBU1MgUmVqZWN0ZWQsIGFzIGV4cGVjdGVkCi1UcnlpbmcgdG8gZXhwb3J0IGFzIGp3ay4u
LgotUEFTUyBSZWplY3RlZCwgYXMgZXhwZWN0ZWQKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8v
c3VidGxlL2Flcy1leHBvcnQta2V5Lmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Fl
cy1leHBvcnQta2V5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5ZDk2MTZj
NzY3MjE4OWJkYjZiNTY2YzA2OGU5YmE0ZjdmMjQ3NjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtZXhw
b3J0LWtleS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODYgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBleHBvcnRp
bmcgYW4gQUVTIGtleS4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBleHRyYWN0
YWJsZSA9IHRydWU7Ci12YXIgbm9uRXh0cmFjdGFibGUgPSBmYWxzZTsKLQotdmFyIGp3a0tleSA9
IHsKLSAgICBrdHk6ICJvY3QiLAotICAgIGs6ICJqbk93OTlvT1pGTElFUE1yZ0pCNTVXTDQ2dEpT
TEd0NyIKLX07Ci0KLXZhciBqd2tLZXlBc0FycmF5QnVmZmVyID0gYXNjaWlUb1VpbnQ4QXJyYXko
SlNPTi5zdHJpbmdpZnkoandrS2V5KSk7Ci0KLXNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmV4
cG9ydEtleSgicmF3IiknKTsKLXNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgi
cmF3IiwgbnVsbCknKTsKLXNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgicmF3
IiwgdW5kZWZpbmVkKScpOwotc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJy
YXciLCB7fSknKTsKLXNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgicmF3Iiwg
MSknKTsKLQotZGVidWcoIlxuSW1wb3J0aW5nIGEgSldLIGtleS4uLiIpOwotY3J5cHRvLnN1YnRs
ZS5pbXBvcnRLZXkoImp3ayIsIGp3a0tleUFzQXJyYXlCdWZmZXIsICJBRVMtQ0JDIiwgZXh0cmFj
dGFibGUsIFsnZW5jcnlwdCcsICdkZWNyeXB0JywgJ3dyYXBLZXknLCAndW53cmFwS2V5J10pLnRo
ZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0OwotCi0gICAgc2hvdWxkVGhy
b3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KG51bGwsIGtleSknKTsKLSAgICBzaG91bGRUaHJv
dygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkodW5kZWZpbmVkLCBrZXkpJyk7Ci0gICAgc2hvdWxk
VGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KHt9LCBrZXkpJyk7Ci0gICAgc2hvdWxkVGhy
b3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCIiLCBrZXkpJyk7Ci0gICAgc2hvdWxkVGhyb3co
J2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJmb29iYXIiLCBrZXkpJyk7Ci0KLSAgICBkZWJ1Zygi
XG5FeHBvcnRpbmcgdGhlIGtleSBhcyByYXcgZGF0YS4uLiIpOwotICAgIHJldHVybiBjcnlwdG8u
c3VidGxlLmV4cG9ydEtleSgicmF3Iiwga2V5KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7
Ci0gICAgZXhwb3J0ZWREYXRhID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3Ry
aW5nKG5ldyBVaW50OEFycmF5KGV4cG9ydGVkRGF0YSkpIiwgIic4ZTczYjBmN2RhMGU2NDUyYzgx
MGYzMmI4MDkwNzllNTYyZjhlYWQyNTIyYzZiN2InIik7Ci0KLSAgICBkZWJ1ZygiRXhwb3J0aW5n
IHRoZSBrZXkgYXMgSldLLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5
KCJqd2siLCBrZXkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBleHBvcnRlZEpX
SyA9IEpTT04ucGFyc2UoYnl0ZXNUb0FTQ0lJU3RyaW5nKHJlc3VsdCkpOwotICAgIHNob3VsZEJl
KCJleHBvcnRlZEpXSy5rdHkiLCAiJ29jdCciKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0su
ayIsICInam5Pdzk5b09aRkxJRVBNcmdKQjU1V0w0NnRKU0xHdDcnIik7Ci0gICAgc2hvdWxkQmUo
ImV4cG9ydGVkSldLLmFsZyIsICInQTE5MkNCQyciKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRK
V0suZXh0IiwgInRydWUiKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sudXNlIiwgInVuZGVm
aW5lZCIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rZXlfb3BzIiwgIlsnZW5jcnlwdCcs
ICdkZWNyeXB0JywgJ3dyYXBLZXknLCAndW53cmFwS2V5J10iKTsKLQotICAgIGRlYnVnKCJcbklt
cG9ydGluZyBhIGtleSB0aGF0J3Mgbm90IGV4dHJhY3RhYmxlLi4uIik7Ci0gICAgcmV0dXJuIGNy
eXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tLZXlBc0FycmF5QnVmZmVyLCAiQUVTLUNC
QyIsIG5vbkV4dHJhY3RhYmxlLCBbJ2VuY3J5cHQnLCAnZGVjcnlwdCcsICd3cmFwS2V5JywgJ3Vu
d3JhcEtleSddKQotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBrZXkgPSByZXN1bHQ7
Ci0KLSAgICBkZWJ1ZygiXG5UcnlpbmcgdG8gZXhwb3J0IGFzIHJhdy4uLiIpOwotICAgIHJldHVy
biBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgicmF3Iiwga2V5KTsKLX0pLnRoZW4oZnVuY3Rpb24o
cmVzdWx0KSB7Ci0gICAgdGVzdEZhaWxlZCgiUHJvbWlzZSB3YXNuJ3QgcmVqZWN0ZWQiKTsKLSAg
ICBmaW5pc2hKU1Rlc3QoKTsKLX0sIGZ1bmN0aW9uKCkgewotICAgIHRlc3RQYXNzZWQoIlJlamVj
dGVkLCBhcyBleHBlY3RlZCIpOwotCi0gICAgZGVidWcoIlRyeWluZyB0byBleHBvcnQgYXMgandr
Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJqd2siLCBrZXkpOwot
fSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB0ZXN0RmFpbGVkKCJQcm9taXNlIHdhc24n
dCByZWplY3RlZCIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSwgZnVuY3Rpb24oKSB7Ci0gICAg
dGVzdFBhc3NlZCgiUmVqZWN0ZWQsIGFzIGV4cGVjdGVkIik7Ci0KLSAgICBmaW5pc2hKU1Rlc3Qo
KTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWt3LWtleS1tYW5pcHVsYXRpb24tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMta3cta2V5LW1hbmlwdWxhdGlvbi1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjZWJmMzBkMjcxOTRjYjNi
ZTBhNTg1OGJhNDJiYWU3MTFkNzNkMmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMta3cta2V5LW1hbmlw
dWxhdGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1UZXN0
IGdlbmVyYXRpbmcsIGltcG9ydGluZyBhbmQgZXhwb3J0aW5nIGtleXMgZm9yIEFFUy1LVy4gVGVz
dCB0aGF0IHRoZXkgY2FuJ3QgYmUgdXNlZCB3aXRoIGFub3RoZXIgYWxnb3JpdGhtLgotCi1PbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotR2VuZXJhdGluZyBhIGtleS4uLgotUEFTUyBrZXku
dG9TdHJpbmcoKSBpcyAnW29iamVjdCBLZXldJwotUEFTUyBrZXkudHlwZSBpcyAnc2VjcmV0Jwot
UEFTUyBrZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0FFUy1LVycKLVBBU1Mga2V5LmFsZ29yaXRobS5s
ZW5ndGggaXMgMjU2Ci0KLVRlc3RpbmcgdGhhdCB0aGUga2V5IGNhbid0IGJlIHVzZWQgd2l0aCBB
RVMtQ0JDLi4uCi1QQVNTIGNyeXB0by5zdWJ0bGUuZW5jcnlwdCh7bmFtZTogImFlcy1jYmMiLCBp
djogaXZ9LCBrZXksIGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAiKSkgdGhyZXcgZXhjZXB0aW9u
IE5vdFN1cHBvcnRlZEVycm9yIChET00gRXhjZXB0aW9uIDkpOiBUaGUgb3BlcmF0aW9uIGlzIG5v
dCBzdXBwb3J0ZWQuLgotCi1FeHBvcnRpbmcgdGhlIGtleSB0byByYXcuLi4KLVBBU1MgZXhwb3J0
ZWRLZXkudG9TdHJpbmcoKSBpcyAnW29iamVjdCBBcnJheUJ1ZmZlcl0nCi1JbXBvcnRpbmcgaXQg
YmFjay4uLgotUEFTUyBpbXBvcnRlZEtleS50b1N0cmluZygpIGlzICdbb2JqZWN0IEtleV0nCi1Q
QVNTIGltcG9ydGVkS2V5LnR5cGUgaXMgJ3NlY3JldCcKLVBBU1MgaW1wb3J0ZWRLZXkuYWxnb3Jp
dGhtLm5hbWUgaXMgJ0FFUy1LVycKLVBBU1MgaW1wb3J0ZWRLZXkuYWxnb3JpdGhtLmxlbmd0aCBp
cyAyNTYKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1rdy1rZXktbWFuaXB1
bGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1rdy1rZXktbWFuaXB1
bGF0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExYzBlY2I1MmE2ODE3
YTg2NDMwODQxZTFiNGY2MjAxOTZkZmY1MTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMta3cta2V5LW1h
bmlwdWxhdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBnZW5l
cmF0aW5nLCBpbXBvcnRpbmcgYW5kIGV4cG9ydGluZyBrZXlzIGZvciBBRVMtS1cuIFRlc3QgdGhh
dCB0aGV5IGNhbid0IGJlIHVzZWQgd2l0aCBhbm90aGVyIGFsZ29yaXRobS4iKTsKLQotanNUZXN0
SXNBc3luYyA9IHRydWU7Ci0KLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci0KLWRlYnVnKCJHZW5l
cmF0aW5nIGEga2V5Li4uIik7Ci1jcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiYWVz
LWt3IiwgbGVuZ3RoOiAyNTZ9LCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAi
d3JhcEtleSIsICJ1bndyYXBLZXkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBrZXkg
PSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImtleS50b1N0cmluZygpIiwgIidbb2JqZWN0IEtleV0n
Iik7Ci0gICAgc2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7Ci0gICAgc2hvdWxkQmUo
ImtleS5hbGdvcml0aG0ubmFtZSIsICInQUVTLUtXJyIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxn
b3JpdGhtLmxlbmd0aCIsICIyNTYiKTsKLQotICAgIGRlYnVnKCJcblRlc3RpbmcgdGhhdCB0aGUg
a2V5IGNhbid0IGJlIHVzZWQgd2l0aCBBRVMtQ0JDLi4uIik7Ci0gICAgaXYgPSBoZXhTdHJpbmdU
b1VpbnQ4QXJyYXkoIjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmIik7Ci0gICAgc2hv
dWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZW5jcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9
LCBrZXksIGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAiKSknKTsKLQotICAgIGRlYnVnKCJcbkV4
cG9ydGluZyB0aGUga2V5IHRvIHJhdy4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmV4
cG9ydEtleSgncmF3Jywga2V5KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZXhw
b3J0ZWRLZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkS2V5LnRvU3RyaW5nKCki
LCAiJ1tvYmplY3QgQXJyYXlCdWZmZXJdJyIpOwotICAgIGRlYnVnKCJJbXBvcnRpbmcgaXQgYmFj
ay4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgncmF3JywgZXhwb3J0
ZWRLZXksICJhZXMta3ciLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3Jh
cEtleSIsICJ1bndyYXBLZXkiXSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGlt
cG9ydGVkS2V5ID0gcmVzdWx0OwotCi0gICAgc2hvdWxkQmUoImltcG9ydGVkS2V5LnRvU3RyaW5n
KCkiLCAiJ1tvYmplY3QgS2V5XSciKTsKLSAgICBzaG91bGRCZSgiaW1wb3J0ZWRLZXkudHlwZSIs
ICInc2VjcmV0JyIpOwotICAgIHNob3VsZEJlKCJpbXBvcnRlZEtleS5hbGdvcml0aG0ubmFtZSIs
ICInQUVTLUtXJyIpOwotICAgIHNob3VsZEJlKCJpbXBvcnRlZEtleS5hbGdvcml0aG0ubGVuZ3Ro
IiwgIjI1NiIpOwotCi0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1r
dy13cmFwLXVud3JhcC1hZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRs
ZS9hZXMta3ctd3JhcC11bndyYXAtYWVzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNDRlZTIwNWVkNTU4OTJiYmM1YWE5ZjhiMTNlZDAxNzQxYjNkOTRiNi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9j
cnlwdG8vc3VidGxlL2Flcy1rdy13cmFwLXVud3JhcC1hZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGVzdCB3cmFwcGluZyBhbmQgdW53cmFwcGluZyBrZXlz
IHdpdGggQUVTLUtXLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotSW1wb3J0aW5n
IGtleSBlbmNyeXB0aW9uIGtleS4uLgotSW1wb3J0aW5nIGEga2V5IHRvIGJlIHdyYXBwZWQuLi4K
LVdyYXBwaW5nIGl0Li4uCi1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcod3JhcHBlZEtleSkgaXMgJzFm
YTY4YjBhODExMmI0NDdhZWYzNGJkOGZiNWE3YjgyOWQzZTg2MjM3MWQyY2ZlNScKLVVud3JhcHBp
bmcgaXQuLi4KLVBBU1MgdW53cmFwcGVkS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgS2V5XScK
LVBBU1MgdW53cmFwcGVkS2V5LnR5cGUgaXMgJ3NlY3JldCcKLVBBU1MgdW53cmFwcGVkS2V5LmV4
dHJhY3RhYmxlIGlzIHRydWUKLVBBU1MgdW53cmFwcGVkS2V5LmFsZ29yaXRobS5uYW1lIGlzICdB
RVMtQ0JDJwotUEFTUyB1bndyYXBwZWRLZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyAxMjgKLVBBU1Mg
dW53cmFwcGVkS2V5LnVzYWdlcyBpcyBbJ2RlY3J5cHQnLCAnZW5jcnlwdCcsICd1bndyYXBLZXkn
LCAnd3JhcEtleSddCi1FeHBvcnRpbmcgaXQuLi4KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyh1bndy
YXBwZWRLZXlEYXRhKSBpcyBieXRlc1RvSGV4U3RyaW5nKGtleURhdGEpCi1QQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMta3ctd3JhcC11bndyYXAtYWVzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1rdy13cmFwLXVud3JhcC1hZXMuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZWM3ZWUyZjU4ODIwMzZhZWRlZmM5Y2YzMjg4NDczYTAwZTg0
OTNkOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1rdy13cmFwLXVud3JhcC1hZXMuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDU4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgot
Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3Qgd3JhcHBpbmcgYW5kIHVud3JhcHBpbmcga2V5
cyB3aXRoIEFFUy1LVy4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBrZWtEYXRh
ID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBBMEIwQzBEMEUw
RiIpOwotdmFyIGtleURhdGEgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAwMTEyMjMzNDQ1NTY2
Nzc4ODk5QUFCQkNDRERFRUZGIik7Ci12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotCi1kZWJ1Zygi
SW1wb3J0aW5nIGtleSBlbmNyeXB0aW9uIGtleS4uLiIpOwotY3J5cHRvLnN1YnRsZS5pbXBvcnRL
ZXkoInJhdyIsIGtla0RhdGEsICJhZXMta3ciLCBleHRyYWN0YWJsZSwgWyJ3cmFwS2V5IiwgInVu
d3JhcEtleSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtlayA9IHJlc3VsdDsKLQot
ICAgIGRlYnVnKCJJbXBvcnRpbmcgYSBrZXkgdG8gYmUgd3JhcHBlZC4uLiIpOwotICAgIHJldHVy
biBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3Iiwga2V5RGF0YSwgImFlcy1jYmMiLCBleHRy
YWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSIsICJ1bndyYXBLZXkiXSk7
Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtleSA9IHJlc3VsdDsKLQotICAgIGRl
YnVnKCJXcmFwcGluZyBpdC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLndyYXBLZXko
InJhdyIsIGtleSwga2VrLCAiYWVzLWt3Iik7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewot
ICAgIHdyYXBwZWRLZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmco
d3JhcHBlZEtleSkiLCAiJzFmYTY4YjBhODExMmI0NDdhZWYzNGJkOGZiNWE3YjgyOWQzZTg2MjM3
MWQyY2ZlNSciKTsgLy8gUmVzdWx0IGZyb20gUkZDIDMzOTQuCi0KLSAgICBkZWJ1ZygiVW53cmFw
cGluZyBpdC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLnVud3JhcEtleSgicmF3Iiwg
d3JhcHBlZEtleSwga2VrLCAiYWVzLWt3IiwgImFlcy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNy
eXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSIsICJ1bndyYXBLZXkiXSk7Ci19KS50aGVuKGZ1bmN0
aW9uKHJlc3VsdCkgewotICAgIHVud3JhcHBlZEtleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgi
dW53cmFwcGVkS2V5LnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgS2V5XSciKTsKLSAgICBzaG91bGRC
ZSgidW53cmFwcGVkS2V5LnR5cGUiLCAiJ3NlY3JldCciKTsKLSAgICBzaG91bGRCZSgidW53cmFw
cGVkS2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKLSAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5
LmFsZ29yaXRobS5uYW1lIiwgIidBRVMtQ0JDJyIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBwZWRL
ZXkuYWxnb3JpdGhtLmxlbmd0aCIsICIxMjgiKTsKLSAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5
LnVzYWdlcyIsICJbJ2RlY3J5cHQnLCAnZW5jcnlwdCcsICd1bndyYXBLZXknLCAnd3JhcEtleSdd
Iik7Ci0KLSAgICBkZWJ1ZygiRXhwb3J0aW5nIGl0Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5z
dWJ0bGUuZXhwb3J0S2V5KCJyYXciLCB1bndyYXBwZWRLZXkpOwotfSkudGhlbihmdW5jdGlvbihy
ZXN1bHQpIHsKLSAgICB1bndyYXBwZWRLZXlEYXRhID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJi
eXRlc1RvSGV4U3RyaW5nKHVud3JhcHBlZEtleURhdGEpIiwgImJ5dGVzVG9IZXhTdHJpbmcoa2V5
RGF0YSkiKTsKLQotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtcG9z
dE1lc3NhZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtcG9z
dE1lc3NhZ2UtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMGQw
NTliZGNmZTMwOGRiMDMwYzE2YjRlMTBjMTU5NjQ3ZjQ1ZjNjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVz
LXBvc3RNZXNzYWdlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAK
LVRlc3Qgc2VuZGluZyBjcnlwdG8ga2V5cyB2aWEgcG9zdE1lc3NhZ2UuCi0KLU9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGtleS50eXBlIGlzICdzZWNyZXQnCi1QQVNTIGtleS5l
eHRyYWN0YWJsZSBpcyB0cnVlCi1QQVNTIGtleS5hbGdvcml0aG0ubmFtZSBpcyAnQUVTLUNCQycK
LVBBU1Mga2V5LmFsZ29yaXRobS5sZW5ndGggaXMgMTI4Ci1QQVNTIGtleS51c2FnZXMgaXMgWyJk
ZWNyeXB0IiwgImVuY3J5cHQiLCAic2lnbiIsICJ2ZXJpZnkiXQotUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NyeXB0by9zdWJ0bGUvYWVzLXBvc3RNZXNzYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8v
c3VidGxlL2Flcy1wb3N0TWVzc2FnZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBjMzA4Zjg5OTBkY2I2OWMxMDI2NTExZDc3ZTY0NDY0OTUxMWE0M2E0Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvYWVzLXBvc3RNZXNzYWdlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
PgotPHNjcmlwdD4KLQotZGVzY3JpcHRpb24oIlRlc3Qgc2VuZGluZyBjcnlwdG8ga2V5cyB2aWEg
cG9zdE1lc3NhZ2UuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi13aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uKGV2dCkgewotICAgIGtleSA9IGV2dC5kYXRh
OwotICAgIHNob3VsZEJlKCJrZXkudHlwZSIsICInc2VjcmV0JyIpOwotICAgIHNob3VsZEJlKCJr
ZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5h
bWUiLCAiJ0FFUy1DQkMnIik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubGVuZ3RoIiwg
IjEyOCIpOwotICAgIHNob3VsZEJlKCJrZXkudXNhZ2VzIiwgJ1siZGVjcnlwdCIsICJlbmNyeXB0
IiwgInNpZ24iLCAidmVyaWZ5Il0nKTsKLQotICAgIGZpbmlzaEpTVGVzdCgpOwotfSwgZmFsc2Up
OwotCi1pbXBvcnRUZXN0S2V5cygpLnRoZW4oZnVuY3Rpb24oa2V5cykgewotICAgIHBvc3RNZXNz
YWdlKGtleXMuYWVzQ2JjLCAiKiIpOwotfSk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYXJndW1lbnQtY29udmVyc2lv
bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2FyZ3VtZW50LWNvbnZl
cnNpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkODc3MWIy
N2FmODk2MzBlMDg4YzY4ZjQ2Y2M3N2I3NzM1YTBmYjgxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYXJndW1l
bnQtY29udmVyc2lvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBA
Ci1UZXN0IGNyeXB0by5zdWJ0bGUgYXJndW1lbnQgY29udmVyc2lvbgotCi1PbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCi0KLQotCi1QYXNzaW5nIGFsZ29yaXRobSBuYW1lIGFzIGEgc3RyaW5nIG9i
amVjdC4uLgotUEFTUyAuLi5zdWNjZWVkZWQKLQotUGFzc2luZyBhbGdvcml0aG0gbmFtZSBhcyBh
IHN0cmluZyBvYmplY3QgaW4gYSBkaWN0aW9uYXJ5Li4uCi1QQVNTIC4uLnN1Y2NlZWRlZAotCi1Q
YXNzaW5nIGFsZ29yaXRobSBuYW1lIGFzIGFuIG9iamVjdCB3aXRoIHRvU3RyaW5nCi1QQVNTIC4u
LnN1Y2NlZWRlZAotCi1QYXNzaW5nIGludmFsaWQgZGF0YSB0byBkaWdlc3QoKQotUEFTUyBjcnlw
dG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgotUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFt
ZTogJ3NoYS0xJ30sIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE9ubHkgQXJyYXlC
dWZmZXIgYW5kIEFycmF5QnVmZmVyVmlldyBvYmplY3RzIGNhbiBiZSBwYXNzZWQgYXMgQ3J5cHRv
T3BlcmF0aW9uRGF0YS4KLVBBU1MgY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9
LCAxMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogT25seSBBcnJheUJ1ZmZlciBhbmQgQXJy
YXlCdWZmZXJWaWV3IG9iamVjdHMgY2FuIGJlIHBhc3NlZCBhcyBDcnlwdG9PcGVyYXRpb25EYXRh
LgotUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30sIFsxMF0pIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE9ubHkgQXJyYXlCdWZmZXIgYW5kIEFycmF5QnVmZmVyVmll
dyBvYmplY3RzIGNhbiBiZSBwYXNzZWQgYXMgQ3J5cHRvT3BlcmF0aW9uRGF0YS4KLVBBU1MgY3J5
cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCBbbmV3IFVpbnQ4QXJyYXkoWzBdKV0p
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE9ubHkgQXJyYXlCdWZmZXIgYW5kIEFycmF5QnVm
ZmVyVmlldyBvYmplY3RzIGNhbiBiZSBwYXNzZWQgYXMgQ3J5cHRvT3BlcmF0aW9uRGF0YS4KLQot
UGFzc2luZyBpbnZhbGlkIGFsZ29yaXRobUlkZW50aWZpZXJzIHRvIGRpZ2VzdCgpCi1QQVNTIGNy
eXB0by5zdWJ0bGUuZGlnZXN0KHsgdG9TdHJpbmc6ZnVuY3Rpb24oKSB7IHJldHVybiAnc2hhLTEn
IH0gfSwgZGF0YSkgdGhyZXcgZXhjZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yIChET00gRXhjZXB0
aW9uIDkpOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgotUEFTUyBjcnlwdG8uc3Vi
dGxlLmRpZ2VzdCh7bmFtZTogJyd9LCBkYXRhKSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVk
RXJyb3IgKERPTSBFeGNlcHRpb24gOSk6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4u
Ci1QQVNTIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiBudWxsfSwgZGF0YSkgdGhyZXcgZXhj
ZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yIChET00gRXhjZXB0aW9uIDkpOiBUaGUgb3BlcmF0aW9u
IGlzIG5vdCBzdXBwb3J0ZWQuLgotUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogdW5k
ZWZpbmVkfSwgZGF0YSkgdGhyZXcgZXhjZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yIChET00gRXhj
ZXB0aW9uIDkpOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgotUEFTUyBjcnlwdG8u
c3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYSd9LCBkYXRhKSB0aHJldyBleGNlcHRpb24gTm90U3Vw
cG9ydGVkRXJyb3IgKERPTSBFeGNlcHRpb24gOSk6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBv
cnRlZC4uCi1QQVNTIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAxfSwgZGF0YSkgdGhyZXcg
ZXhjZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yIChET00gRXhjZXB0aW9uIDkpOiBUaGUgb3BlcmF0
aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgotUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCgnJywgZGF0
YSkgdGhyZXcgZXhjZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yIChET00gRXhjZXB0aW9uIDkpOiBU
aGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgotUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2Vz
dChudWxsLCBkYXRhKSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3IgKERPTSBFeGNl
cHRpb24gOSk6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIGNyeXB0by5z
dWJ0bGUuZGlnZXN0KHVuZGVmaW5lZCwgZGF0YSkgdGhyZXcgZXhjZXB0aW9uIE5vdFN1cHBvcnRl
ZEVycm9yIChET00gRXhjZXB0aW9uIDkpOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQu
LgotUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCgxLCBkYXRhKSB0aHJldyBleGNlcHRpb24gTm90
U3VwcG9ydGVkRXJyb3IgKERPTSBFeGNlcHRpb24gOSk6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1
cHBvcnRlZC4uCi1QQVNTIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHt9LCBkYXRhKSB0aHJldyBleGNl
cHRpb24gTm90U3VwcG9ydGVkRXJyb3IgKERPTSBFeGNlcHRpb24gOSk6IFRoZSBvcGVyYXRpb24g
aXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hcmd1
bWVudC1jb252ZXJzaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2FyZ3VtZW50
LWNvbnZlcnNpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjdkY2Y5ZWRk
MjNlNTc1MmNhNTQ5YTEzMzZhODM5ODVmMGViOGIyMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2FyZ3VtZW50
LWNvbnZlcnNpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgY3J5
cHRvLnN1YnRsZSBhcmd1bWVudCBjb252ZXJzaW9uIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVl
OwotCi1Qcm9taXNlLnJlc29sdmUobnVsbCkudGhlbihmdW5jdGlvbigpIHsKLSAgICBkZWJ1Zygi
XG5QYXNzaW5nIGFsZ29yaXRobSBuYW1lIGFzIGEgc3RyaW5nIG9iamVjdC4uLiIpOwotICAgIHJl
dHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdChuZXcgU3RyaW5nKCdzaGEtMScpLCBuZXcgVWludDhB
cnJheShbXSkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB0ZXN0UGFzc2VkKCIu
Li5zdWNjZWVkZWQiKTsKLSAgICBkZWJ1ZygiXG5QYXNzaW5nIGFsZ29yaXRobSBuYW1lIGFzIGEg
c3RyaW5nIG9iamVjdCBpbiBhIGRpY3Rpb25hcnkuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLnN1
YnRsZS5kaWdlc3Qoe25hbWU6IG5ldyBTdHJpbmcoJ3NoYS0xJyl9LCBuZXcgVWludDhBcnJheShb
XSkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB0ZXN0UGFzc2VkKCIuLi5zdWNj
ZWVkZWQiKTsKLSAgICBkZWJ1ZygiXG5QYXNzaW5nIGFsZ29yaXRobSBuYW1lIGFzIGFuIG9iamVj
dCB3aXRoIHRvU3RyaW5nIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1l
OiB7IHRvU3RyaW5nOmZ1bmN0aW9uKCkgeyByZXR1cm4gJ3NoYS0xJyB9IH0gfSwgbmV3IFVpbnQ4
QXJyYXkoW10pKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgdGVzdFBhc3NlZCgi
Li4uc3VjY2VlZGVkIik7Ci0KLSAgICBkZWJ1ZygiXG5QYXNzaW5nIGludmFsaWQgZGF0YSB0byBk
aWdlc3QoKSIpOwotICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTog
J3NoYS0xJ30pIik7Ci0gICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1l
OiAnc2hhLTEnfSwgbnVsbCkiKTsKLSAgICBzaG91bGRUaHJvdygiY3J5cHRvLnN1YnRsZS5kaWdl
c3Qoe25hbWU6ICdzaGEtMSd9LCAxMCkiKTsKLSAgICBzaG91bGRUaHJvdygiY3J5cHRvLnN1YnRs
ZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCBbMTBdKSIpOwotICAgIHNob3VsZFRocm93KCJjcnlw
dG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30sIFtuZXcgVWludDhBcnJheShbMF0pXSki
KTsKLQotICAgIGRlYnVnKCJcblBhc3NpbmcgaW52YWxpZCBhbGdvcml0aG1JZGVudGlmaWVycyB0
byBkaWdlc3QoKSIpOwotICAgIGRhdGEgPSBuZXcgVWludDhBcnJheShbMF0pOwotICAgIHNob3Vs
ZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7IHRvU3RyaW5nOmZ1bmN0aW9uKCkgeyByZXR1
cm4gJ3NoYS0xJyB9IH0sIGRhdGEpIik7IC8vIEFsZ29yaXRobSBub3JtYWxpemF0aW9uIGRvZXNu
J3QgYXR0ZW1wdCB0byBjYWxsIHRvU3RyaW5nLgotICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3Vi
dGxlLmRpZ2VzdCh7bmFtZTogJyd9LCBkYXRhKSIpOwotICAgIHNob3VsZFRocm93KCJjcnlwdG8u
c3VidGxlLmRpZ2VzdCh7bmFtZTogbnVsbH0sIGRhdGEpIik7Ci0gICAgc2hvdWxkVGhyb3coImNy
eXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiB1bmRlZmluZWR9LCBkYXRhKSIpOwotICAgIHNob3Vs
ZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYSd9LCBkYXRhKSIpOwotICAg
IHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogMX0sIGRhdGEpIik7Ci0g
ICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KCcnLCBkYXRhKSIpOwotICAgIHNo
b3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdChudWxsLCBkYXRhKSIpOwotICAgIHNob3Vs
ZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh1bmRlZmluZWQsIGRhdGEpIik7Ci0gICAgc2hv
dWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KDEsIGRhdGEpIik7Ci0gICAgc2hvdWxkVGhy
b3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KHt9LCBkYXRhKSIpOwotfSkudGhlbihmaW5pc2hKU1Rl
c3QpOwotCi08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9hcnJheS1idWZmZXItdmlldy1vZmZzZXQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hcnJheS1idWZmZXItdmlldy1vZmZzZXQtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MDk0M2U1YmY0NzUxODFi
MzFlYTIxOTI4Zjc5YjhiODY4ZDNkMGRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYXJyYXktYnVmZmVyLXZp
ZXctb2Zmc2V0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVRl
c3QgdGhhdCBhbiBBcnJheUJ1ZmZlclZpZXcgd2l0aCBvZmZzZXQgaXMgcHJvY2Vzc2VkIGNvcnJl
Y3RseS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgYnl0ZXNUb0hleFN0
cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSBpcyAnMmM3ZTdjMzg0Zjc4Mjk2OTQyODJiMWUz
YTYyMTZkZWY4MDgyZDA1NScKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVT
VCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2FycmF5
LWJ1ZmZlci12aWV3LW9mZnNldC5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hcnJh
eS1idWZmZXItdmlldy1vZmZzZXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YTBiOTkwNDU4M2RkZmIxNDhmZjBiYzI3NzY1Y2IxYmFmMTM0ZTBjNC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L2FycmF5LWJ1ZmZlci12aWV3LW9mZnNldC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlw
dGlvbigiVGVzdCB0aGF0IGFuIEFycmF5QnVmZmVyVmlldyB3aXRoIG9mZnNldCBpcyBwcm9jZXNz
ZWQgY29ycmVjdGx5LiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotUHJvbWlzZS5yZXNv
bHZlKG51bGwpLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgdmFyIG9yaWdpbmFsRGF0YSA9IG5ldyBV
aW50OEFycmF5KFsweGYsIDB4ZiwgMHhmLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAx
MCwgMHhmLCAweGYsIDB4Zl0pOwotICAgIHZhciBzbGljZWREYXRhID0gbmV3IFVpbnQ4QXJyYXko
b3JpZ2luYWxEYXRhLmJ1ZmZlciwgMywgMTEpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRp
Z2VzdCh7bmFtZTogJ3NoYS0xJ30sIHNsaWNlZERhdGEpOwotfSkudGhlbihmdW5jdGlvbihyZXN1
bHQpIHsKLSAgICBkaWdlc3QgPSByZXN1bHQ7Ci0gICAgLy8gRXhwZWN0ZWQgcmVzdWx0IGZvciBb
MCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdLgotICAgIHNob3VsZEJlKCJieXRlc1Rv
SGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIiwgIicyYzdlN2MzODRmNzgyOTY5NDI4
MmIxZTNhNjIxNmRlZjgwODJkMDU1JyIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3Nj
cmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRv
L3N1YnRsZS9nYy0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2Mt
Mi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5MWUxOTYyNzA0
ODAzYWIzNGYwZDE5ZjVmN2Y2N2Y0NGI2OWYyYWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy0yLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRlc3QgdGhhdCB3aW5kb3cu
Y3J5cHRvLnN1YnRsZSB3cmFwcGVyIHByZXNlcnZlcyBjdXN0b20gcHJvcGVydGllcy4KLQotT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgW29iamVjdCBDcnlwdG9dIGlzIGRlZmlu
ZWQuCi1QQVNTIFtvYmplY3QgV2ViS2l0U3VidGxlQ3J5cHRvXSBpcyBkZWZpbmVkLgotUEFTUyBh
bm90aGVyV2luZG93Q3J5cHRvLndlYmtpdFN1YnRsZS5mb28gaXMgImJhciIKLVBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLTIuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvZ2MtMi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MTI5OTIwNjgyYjg5
MDdhMzUzYjU2ZmM4YzIzODFiNTBlMDQyNTc4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MtMi5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci0K
LWRlc2NyaXB0aW9uKCJUZXN0IHRoYXQgd2luZG93LmNyeXB0by5zdWJ0bGUgd3JhcHBlciBwcmVz
ZXJ2ZXMgY3VzdG9tIHByb3BlcnRpZXMuIik7Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFy
IGFub3RoZXJXaW5kb3dDcnlwdG87Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgYW5v
dGhlcldpbmRvd0NyeXB0byA9IGZyYW1lc1swXS5jcnlwdG87Ci0gICAgc2hvdWxkQmVEZWZpbmVk
KGFub3RoZXJXaW5kb3dDcnlwdG8pOwotICAgIHNob3VsZEJlRGVmaW5lZChhbm90aGVyV2luZG93
Q3J5cHRvLndlYmtpdFN1YnRsZSk7Ci0KLSAgICBhbm90aGVyV2luZG93Q3J5cHRvLndlYmtpdFN1
YnRsZS5mb28gPSAiYmFyIjsKLSAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUiKVswXSk7Ci0gICAgZ2MoKTsKLSAgICBzZXRU
aW1lb3V0KGNvbnRpbnVlVGVzdCwgMTApOwotfQotCi1mdW5jdGlvbiBjb250aW51ZVRlc3QoKQot
ewotICAgIGdjKCk7Ci0gICAgc2V0VGltZW91dChmaW5pc2hUZXN0LCAxMCk7Ci19Ci0KLWZ1bmN0
aW9uIGZpbmlzaFRlc3QoKQotewotICAgIGdjKCk7Ci0gICAgc2hvdWxkQmUoJ2Fub3RoZXJXaW5k
b3dDcnlwdG8ud2Via2l0U3VidGxlLmZvbycsICciYmFyIicpOwotICAgIGZpbmlzaEpTVGVzdCgp
OwotfQotCi13aW5kb3cub25sb2FkID0gc3RhcnRUZXN0OwotCi08L3NjcmlwdD4KLTxpZnJhbWUg
c3JjPSJhYm91dDpibGFuayI+PC9pZnJhbWU+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLTMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY3J5cHRvL3N1YnRsZS9nYy0zLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYjA0YzFhNTczYmEzZWQ2ZjcxZTQ3ZmZhMzFlOGVjYTY1NzliYjJkOC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlw
dG8vc3VidGxlL2djLTMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBA
QAotVGVzdCB0aGF0IHdpbmRvdy5jcnlwdG8gd3JhcHBlciBwcm90ZWN0cyBhbGwgZGVwZW5kZW5j
aWVzLCBzbyBpdCBjYW4gYWx3YXlzIGJlIHVzZWQgdG8gY3JlYXRlIGNyeXB0by5zdWJ0bGUuCi0K
LU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIFtvYmplY3QgQ3J5cHRvXSBpcyBk
ZWZpbmVkLgotUEFTUyBbb2JqZWN0IFdlYktpdFN1YnRsZUNyeXB0b10gaXMgZGVmaW5lZC4KLVBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLTMuaHRtbCBiL0xheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvZ2MtMy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNmUw
NzQwYTliNmYwYTg5ZjQ2ZGQxM2Y0MGIwYTJjNWVjZGY3NTQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2Mt
My5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxz
Y3JpcHQ+Ci0KLWRlc2NyaXB0aW9uKCJUZXN0IHRoYXQgd2luZG93LmNyeXB0byB3cmFwcGVyIHBy
b3RlY3RzIGFsbCBkZXBlbmRlbmNpZXMsIHNvIGl0IGNhbiBhbHdheXMgYmUgdXNlZCB0byBjcmVh
dGUgY3J5cHRvLnN1YnRsZS4iKTsKLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIgYW5vdGhl
cldpbmRvd0NyeXB0bzsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBhbm90aGVyV2lu
ZG93Q3J5cHRvID0gZnJhbWVzWzBdLmNyeXB0bzsKLSAgICBzaG91bGRCZURlZmluZWQoYW5vdGhl
cldpbmRvd0NyeXB0byk7Ci0gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIilbMF0pOwotICAgIGdjKCk7Ci0gICAgc2V0VGlt
ZW91dChjb250aW51ZVRlc3QsIDEwKTsKLX0KLQotZnVuY3Rpb24gY29udGludWVUZXN0KCkKLXsK
LSAgICBnYygpOwotICAgIHNldFRpbWVvdXQoZmluaXNoVGVzdCwgMTApOwotfQotCi1mdW5jdGlv
biBmaW5pc2hUZXN0KCkKLXsKLSAgICBnYygpOwotICAgIHNob3VsZEJlRGVmaW5lZChhbm90aGVy
V2luZG93Q3J5cHRvLndlYmtpdFN1YnRsZSk7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19Ci0KLXdp
bmRvdy5vbmxvYWQgPSBzdGFydFRlc3Q7Ci0KLTwvc2NyaXB0PgotPGlmcmFtZSBzcmM9ImFib3V0
OmJsYW5rIj48L2lmcmFtZT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NyeXB0by9zdWJ0bGUvZ2MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS9nYy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM1OWQw
YTFlNTIwZWVlMmE2OGZhOGQ4ZDk3OTcxYWZmMDdhZTg0N2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1UZXN0IHRoYXQgd2lu
ZG93LmNyeXB0by5zdWJ0bGUgd3JhcHBlciBwcmVzZXJ2ZXMgY3VzdG9tIHByb3BlcnRpZXMuCi0K
LU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHdpbmRvdy5jcnlwdG8ud2Via2l0
U3VidGxlLmZvbyBpcyAiYmFyIgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1U
RVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2Mu
aHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYTIzNWIwYmRlOWRjZTcwYzYwODhhNmEwOWI4NjlmMjUwM2U0ZDRlYi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL2djLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5PgotPHNjcmlwdD4KLQotZGVzY3JpcHRpb24oIlRlc3QgdGhhdCB3aW5kb3cu
Y3J5cHRvLnN1YnRsZSB3cmFwcGVyIHByZXNlcnZlcyBjdXN0b20gcHJvcGVydGllcy4iKTsKLWpz
VGVzdElzQXN5bmMgPSB0cnVlOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIHdpbmRv
dy5jcnlwdG8ud2Via2l0U3VidGxlLmZvbyA9ICJiYXIiOwotICAgIGdjKCk7Ci0gICAgc2V0VGlt
ZW91dChjb250aW51ZVRlc3QsIDEwKTsKLX0KLQotZnVuY3Rpb24gY29udGludWVUZXN0KCkKLXsK
LSAgICBnYygpOwotICAgIHNldFRpbWVvdXQoZmluaXNoVGVzdCwgMTApOwotfQotCi1mdW5jdGlv
biBmaW5pc2hUZXN0KCkKLXsKLSAgICBnYygpOwotICAgIHNob3VsZEJlKCd3aW5kb3cuY3J5cHRv
LndlYmtpdFN1YnRsZS5mb28nLCAnImJhciInKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQot
d2luZG93Lm9ubG9hZCA9IHN0YXJ0VGVzdDsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtY2hlY2stYWxnb3Jp
dGhtLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1hYy1jaGVjay1h
bGdvcml0aG0tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNGQz
ZjQ1NmQyNGJmNDM2YjAxNTE4NjU0ZGY2NTZiZGVmYzhhMTdhLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1h
Yy1jaGVjay1hbGdvcml0aG0tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAs
MCBAQAotVGVzdCB0aGF0IEhNQUMgb3BlcmF0aW9ucyBvbmx5IHdvcmsgd2hlbiBoYXNoIGZ1bmN0
aW9ucyBtYXRjaCBiZXR3ZWVuIGludm9jYXRpb24gYW5kIGtleS4KLQotT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgotCi0KLUltcG9ydGluZyBhIHJhdyBITUFDIFNIQS0xIGtleSBmcm9tIHN0cmlu
ZyBsaXRlcmFsLi4uCi1Eb25lCi1QQVNTIGNyeXB0by5zdWJ0bGUuc2lnbih7bmFtZTogJ2htYWMn
LCBoYXNoOiB7bmFtZTogJ3NoYS0xJ319LCBrZXksIGFzY2lpVG9VaW50OEFycmF5KCdmb28nKSkg
ZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCi1QQVNTIGNyeXB0by5zdWJ0bGUuc2lnbih7bmFtZTog
J2htYWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0yNTYnfX0sIGtleSwgYXNjaWlUb1VpbnQ4QXJyYXko
J2ZvbycpKSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3IgKERPTSBFeGNlcHRpb24g
OSk6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIGNyeXB0by5zdWJ0bGUu
dmVyaWZ5KHtuYW1lOiAnaG1hYycsIGhhc2g6IHtuYW1lOiAnc2hhLTEnfX0sIGtleSwgYXNjaWlU
b1VpbnQ4QXJyYXkoJ2Zha2Ugc2lnbmF0dXJlJyksIGFzY2lpVG9VaW50OEFycmF5KCdmb28nKSkg
ZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCi1QQVNTIGNyeXB0by5zdWJ0bGUudmVyaWZ5KHtuYW1l
OiAnaG1hYycsIGhhc2g6IHtuYW1lOiAnc2hhLTI1Nid9fSwga2V5LCBhc2NpaVRvVWludDhBcnJh
eSgnZmFrZSBzaWduYXR1cmUnKSwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2ZvbycpKSB0aHJldyBleGNl
cHRpb24gTm90U3VwcG9ydGVkRXJyb3IgKERPTSBFeGNlcHRpb24gOSk6IFRoZSBvcGVyYXRpb24g
aXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFj
LWNoZWNrLWFsZ29yaXRobS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLWNo
ZWNrLWFsZ29yaXRobS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOTgwMjcz
MzFkOTc4YzQ5NTdmYTg5YmJmZWMzMzA2OGNkZDBlYjRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1hYy1j
aGVjay1hbGdvcml0aG0uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24u
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
LTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3Qg
dGhhdCBITUFDIG9wZXJhdGlvbnMgb25seSB3b3JrIHdoZW4gaGFzaCBmdW5jdGlvbnMgbWF0Y2gg
YmV0d2VlbiBpbnZvY2F0aW9uIGFuZCBrZXkuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwot
Ci12YXIgaG1hY0tleSA9IGFzY2lpVG9VaW50OEFycmF5KCdhJyk7Ci12YXIgZXh0cmFjdGFibGUg
PSB0cnVlOwotCi1kZWJ1ZygiSW1wb3J0aW5nIGEgcmF3IEhNQUMgU0hBLTEga2V5IGZyb20gc3Ry
aW5nIGxpdGVyYWwuLi4iKTsKLWNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBobWFjS2V5
LCB7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0xJ319LCBleHRyYWN0YWJsZSwgWyJz
aWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGRlYnVnKCJEb25l
Iik7Ci0gICAga2V5ID0gcmVzdWx0OwotCi0gICAgc2hvdWxkTm90VGhyb3coImNyeXB0by5zdWJ0
bGUuc2lnbih7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0xJ319LCBrZXksIGFzY2lp
VG9VaW50OEFycmF5KCdmb28nKSkiKTsKLSAgICBzaG91bGRUaHJvdygiY3J5cHRvLnN1YnRsZS5z
aWduKHtuYW1lOiAnaG1hYycsIGhhc2g6IHtuYW1lOiAnc2hhLTI1Nid9fSwga2V5LCBhc2NpaVRv
VWludDhBcnJheSgnZm9vJykpIik7Ci0KLSAgICBzaG91bGROb3RUaHJvdygiY3J5cHRvLnN1YnRs
ZS52ZXJpZnkoe25hbWU6ICdobWFjJywgaGFzaDoge25hbWU6ICdzaGEtMSd9fSwga2V5LCBhc2Np
aVRvVWludDhBcnJheSgnZmFrZSBzaWduYXR1cmUnKSwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2Zvbycp
KSIpOwotICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLnZlcmlmeSh7bmFtZTogJ2htYWMn
LCBoYXNoOiB7bmFtZTogJ3NoYS0yNTYnfX0sIGtleSwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2Zha2Ug
c2lnbmF0dXJlJyksIGFzY2lpVG9VaW50OEFycmF5KCdmb28nKSkiKTsKLQotICAgIGZpbmlzaEpT
VGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MDU4NGRiZTZmYzY3NmJjMWIyZDYyYjUwOWM1
ZjAwYzc1N2EyOGY4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1hYy1leHBvcnQta2V5LWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLVRlc3QgZXhwb3J0aW5nIGFuIEFFUyBr
ZXkuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1JbXBvcnRpbmcgYSBKV0sga2V5
Li4uCi1QQVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KG51bGwsIGtleSkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0LgotUEFTUyBjcnlwdG8uc3VidGxlLmV4
cG9ydEtleSh1bmRlZmluZWQsIGtleSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVW5rbm93
biBrZXkgZm9ybWF0LgotUEFTUyBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSh7fSwga2V5KSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQuCi1QQVNTIGNyeXB0by5z
dWJ0bGUuZXhwb3J0S2V5KCIiLCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVua25v
d24ga2V5IGZvcm1hdC4KLVBBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoImZvb2JhciIsIGtl
eSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0LgotRXhwb3J0
aW5nIHRoZSBrZXkgYXMgcmF3IGRhdGEuLi4KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWlu
dDhBcnJheShleHBvcnRlZERhdGEpKSBpcyAnNmExOGU0OWZlZmY3ZjNiN2UwOWVjODliN2Y2ZGVh
YjJmNmExOGU0OWZlZmY3ZjNiN2UwOWVjODliN2Y2ZGVhYicKLUV4cG9ydGluZyB0aGUga2V5IGFz
IEpXSy4uLgotUEFTUyBleHBvcnRlZEpXSy5rdHkgaXMgJ29jdCcKLVBBU1MgZXhwb3J0ZWRKV0su
ayBpcyAnYWhqa24tXzM4N2ZnbnNpYmYyM3FzdmFoamtuLV8zODdmZ25zaWJmMjNxcycKLVBBU1Mg
ZXhwb3J0ZWRKV0suYWxnIGlzICdIUzI1NicKLVBBU1MgZXhwb3J0ZWRKV0suZXh0IGlzIHRydWUK
LVBBU1MgZXhwb3J0ZWRKV0sudXNlIGlzIHVuZGVmaW5lZAotUEFTUyBleHBvcnRlZEpXSy5rZXlf
b3BzIGlzIFsnc2lnbicsICd2ZXJpZnknXQotCi1JbXBvcnRpbmcgYSBrZXkgdGhhdCdzIG5vdCBl
eHRyYWN0YWJsZS4uLgotCi1UcnlpbmcgdG8gZXhwb3J0IGFzIHJhdy4uLgotUEFTUyBSZWplY3Rl
ZCwgYXMgZXhwZWN0ZWQKLVRyeWluZyB0byBleHBvcnQgYXMgandrLi4uCi1QQVNTIFJlamVjdGVk
LCBhcyBleHBlY3RlZAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENP
TVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1hYy1leHBv
cnQta2V5Lmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtZXhwb3J0LWtleS5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZGU3NWRhMDUyNmJhODQ0NmRiOWUz
NThkMzQwZDllZGQwNmExZmZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1hYy1leHBvcnQta2V5Lmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw4MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IGV4cG9ydGluZyBhbiBBRVMga2V5
LiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsK
LXZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOwotCi12YXIgandrS2V5ID0gewotICAgICJrdHki
OiAib2N0IiwKLSAgICAiayI6ICJhaGprbi1fMzg3Zmduc2liZjIzcXN2YWhqa24tXzM4N2ZnbnNp
YmYyM3FzIgotfTsKLQotdmFyIGp3a0tleUFzQXJyYXlCdWZmZXIgPSBhc2NpaVRvVWludDhBcnJh
eShKU09OLnN0cmluZ2lmeShqd2tLZXkpKTsKLQotZGVidWcoIkltcG9ydGluZyBhIEpXSyBrZXku
Li4iKTsKLWNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tLZXlBc0FycmF5QnVmZmVy
LCB7IG5hbWU6ICJITUFDIiwgaGFzaDogIlNIQS0yNTYiIH0sIGV4dHJhY3RhYmxlLCBbInNpZ24i
LCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0Owot
Ci0gICAgc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KG51bGwsIGtleSknKTsK
LSAgICBzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkodW5kZWZpbmVkLCBrZXkp
Jyk7Ci0gICAgc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KHt9LCBrZXkpJyk7
Ci0gICAgc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCIiLCBrZXkpJyk7Ci0g
ICAgc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJmb29iYXIiLCBrZXkpJyk7
Ci0KLSAgICBkZWJ1ZygiRXhwb3J0aW5nIHRoZSBrZXkgYXMgcmF3IGRhdGEuLi4iKTsKLSAgICBy
ZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoInJhdyIsIGtleSk7Ci19KS50aGVuKGZ1bmN0
aW9uKHJlc3VsdCkgewotICAgIGV4cG9ydGVkRGF0YSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgi
Ynl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShleHBvcnRlZERhdGEpKSIsICInNmExOGU0
OWZlZmY3ZjNiN2UwOWVjODliN2Y2ZGVhYjJmNmExOGU0OWZlZmY3ZjNiN2UwOWVjODliN2Y2ZGVh
YiciKTsKLQotICAgIGRlYnVnKCJFeHBvcnRpbmcgdGhlIGtleSBhcyBKV0suLi4iKTsKLSAgICBy
ZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoImp3ayIsIGtleSk7Ci19KS50aGVuKGZ1bmN0
aW9uKHJlc3VsdCkgewotICAgIGV4cG9ydGVkSldLID0gSlNPTi5wYXJzZShieXRlc1RvQVNDSUlT
dHJpbmcocmVzdWx0KSk7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmt0eSIsICInb2N0JyIp
OwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rIiwgIidhaGprbi1fMzg3Zmduc2liZjIzcXN2
YWhqa24tXzM4N2ZnbnNpYmYyM3FzJyIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5hbGci
LCAiJ0hTMjU2JyIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5leHQiLCAidHJ1ZSIpOwot
ICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy51c2UiLCAidW5kZWZpbmVkIik7Ci0gICAgc2hvdWxk
QmUoImV4cG9ydGVkSldLLmtleV9vcHMiLCAiWydzaWduJywgJ3ZlcmlmeSddIik7Ci0KLSAgICBk
ZWJ1ZygiXG5JbXBvcnRpbmcgYSBrZXkgdGhhdCdzIG5vdCBleHRyYWN0YWJsZS4uLiIpOwotICAg
IHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgandrS2V5QXNBcnJheUJ1ZmZl
ciwgeyBuYW1lOiAiSE1BQyIsIGhhc2g6ICJTSEEtMjU2IiB9LCBub25FeHRyYWN0YWJsZSwgWyJz
aWduIiwgInZlcmlmeSJdKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5ID0g
cmVzdWx0OwotCi0gICAgZGVidWcoIlxuVHJ5aW5nIHRvIGV4cG9ydCBhcyByYXcuLi4iKTsKLSAg
ICByZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoInJhdyIsIGtleSk7Ci19KS50aGVuKGZ1
bmN0aW9uKHJlc3VsdCkgewotICAgIHRlc3RGYWlsZWQoIlByb21pc2Ugd2Fzbid0IHJlamVjdGVk
Iik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19LCBmdW5jdGlvbigpIHsKLSAgICB0ZXN0UGFzc2Vk
KCJSZWplY3RlZCwgYXMgZXhwZWN0ZWQiKTsKLQotICAgIGRlYnVnKCJUcnlpbmcgdG8gZXhwb3J0
IGFzIGp3ay4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgiandrIiwg
a2V5KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgdGVzdEZhaWxlZCgiUHJvbWlz
ZSB3YXNuJ3QgcmVqZWN0ZWQiKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0sIGZ1bmN0aW9uKCkg
ewotICAgIHRlc3RQYXNzZWQoIlJlamVjdGVkLCBhcyBleHBlY3RlZCIpOwotCi0gICAgZmluaXNo
SlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtZ2VuZXJhdGUta2V5LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1hYy1nZW5lcmF0ZS1rZXktZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YmQzMWJkMGE3YTcyMTZmNmQ0MGIx
ZjZmNTU4OTBlMGFkMTNhY2U0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1hYy1nZW5lcmF0ZS1rZXktZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotVGVzdCBnZW5lcmF0aW5n
IGEgSE1BQyBrZXkuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGNyeXB0
by5zdWJ0bGUuZ2VuZXJhdGVLZXkoImhtYWMiLCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlm
eSJdKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjcnlwdG8u
c3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiaG1hYyJ9LCBleHRyYWN0YWJsZSwgWyJzaWduIiwg
InZlcmlmeSJdKSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3IgKERPTSBFeGNlcHRp
b24gOSk6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIGNyeXB0by5zdWJ0
bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJobWFjIiwgbGVuZ3RoOiB1bmRlZmluZWR9LCBleHRyYWN0
YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJy
b3IgKERPTSBFeGNlcHRpb24gOSk6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1Q
QVNTIGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJobWFjIiwgbGVuZ3RoOiB7fX0s
IGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pIHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBw
b3J0ZWRFcnJvciAoRE9NIEV4Y2VwdGlvbiA5KTogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9y
dGVkLi4KLQotR2VuZXJhdGluZyBhIGtleSB3aXRoIGRlZmF1bHQgbGVuZ3RoLi4uCi1QQVNTIGtl
eS50eXBlIGlzICdzZWNyZXQnCi1QQVNTIGtleS5leHRyYWN0YWJsZSBpcyB0cnVlCi1QQVNTIGtl
eS5hbGdvcml0aG0ubmFtZSBpcyAnSE1BQycKLVBBU1Mga2V5LmFsZ29yaXRobS5sZW5ndGggaXMg
NjQKLVBBU1Mga2V5LnVzYWdlcyBpcyBbInNpZ24iLCAidmVyaWZ5Il0KLQotR2VuZXJhdGluZyBh
IGtleSB3aXRoIGN1c3RvbSBsZW5ndGguLi4KLVBBU1Mga2V5LnR5cGUgaXMgJ3NlY3JldCcKLVBB
U1Mga2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKLVBBU1Mga2V5LmFsZ29yaXRobS5uYW1lIGlzICdI
TUFDJwotUEFTUyBrZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyA1Ci1QQVNTIGtleS51c2FnZXMgaXMg
WyJzaWduIl0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVU
RQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtZ2VuZXJhdGUt
a2V5Lmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtZ2VuZXJhdGUta2V5Lmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhZmM1Njg1YzE3OGExMjM3YTZhOTM2
MDBjNGYwOWEzYTkxODg4OWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLWdlbmVyYXRlLWtleS5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBnZW5lcmF0aW5nIGEgSE1BQyBr
ZXkuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIgZXh0cmFjdGFibGUgPSB0cnVl
OwotCi1zaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSgiaG1hYyIsIGV4dHJh
Y3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pJyk7Ci1zaG91bGRUaHJvdygnY3J5cHRvLnN1YnRs
ZS5nZW5lcmF0ZUtleSh7bmFtZTogImhtYWMifSwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJp
ZnkiXSknKTsKLXNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAi
aG1hYyIsIGxlbmd0aDogdW5kZWZpbmVkfSwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnki
XSknKTsKLXNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiaG1h
YyIsIGxlbmd0aDoge319LCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKScpOwotCi1k
ZWJ1ZygiXG5HZW5lcmF0aW5nIGEga2V5IHdpdGggZGVmYXVsdCBsZW5ndGguLi4iKTsKLWNyeXB0
by5zdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJobWFjIiwgaGFzaDogInNoYS0xIn0sIGV4dHJh
Y3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAg
a2V5ID0gcmVzdWx0OwotCi0gICAgc2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7Ci0g
ICAgc2hvdWxkQmUoImtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoImtl
eS5hbGdvcml0aG0ubmFtZSIsICInSE1BQyciKTsKLSAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRo
bS5sZW5ndGgiLCAiNjQiKTsKLSAgICBzaG91bGRCZSgia2V5LnVzYWdlcyIsICdbInNpZ24iLCAi
dmVyaWZ5Il0nKTsKLQotICAgIGRlYnVnKCJcbkdlbmVyYXRpbmcgYSBrZXkgd2l0aCBjdXN0b20g
bGVuZ3RoLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6
ICJobWFjIiwgaGFzaDogInNoYS0xIiwgbGVuZ3RoOiA1fSwgZXh0cmFjdGFibGUsIFsic2lnbiJd
KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0OwotCi0gICAg
c2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7Ci0gICAgc2hvdWxkQmUoImtleS5leHRy
YWN0YWJsZSIsICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIsICIn
SE1BQyciKTsKLSAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiNSIpOwotICAg
IHNob3VsZEJlKCJrZXkudXNhZ2VzIiwgJ1sic2lnbiJdJyk7Ci0gICAgZmluaXNoSlNUZXN0KCk7
Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtaW1wb3J0LWp3ay1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtaW1wb3J0LWp3ay1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5Y2IyNTMzMWU0ZmQ3MTE4MDY1MzdlM2NjYmUwNjg4NGVj
ZTg4OTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLWltcG9ydC1qd2stZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGVzdCBpbXBvcnRpbmcgYSBKV0sga2V5IGZvciBI
TUFDLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotSW1wb3J0aW5nIGEga2V5Li4u
Ci0KLVBBU1Mga2V5LnR5cGUgaXMgJ3NlY3JldCcKLVBBU1Mga2V5LmV4dHJhY3RhYmxlIGlzIGZh
bHNlCi1QQVNTIGtleS5hbGdvcml0aG0ubmFtZSBpcyAnSE1BQycKLVBBU1Mga2V5LmFsZ29yaXRo
bS5sZW5ndGggaXMgMzIKLVBBU1Mga2V5LnVzYWdlcyBpcyBbInNpZ24iLCAidmVyaWZ5Il0KLQot
VXNpbmcgdGhlIGtleSB0byBzaWduIG1lc3NhZ2UgJ2ZvbycuLi4KLVBBU1MgYnl0ZXNUb0hleFN0
cmluZyhuZXcgVWludDhBcnJheShzaWduYXR1cmUpKSBpcyAnZTAzNzM2ZmUwOTg4OTJiMmEyZGE3
NzgxMjQzMWY3YzAxNGQzMmUyZmQ2OWYzYmNmZjg4M2FjOTIzYThmYTJkYScKLQotVmVyaWZ5aW5n
IHRoZSBzaWduYXR1cmUuLi4KLVBBU1MgdmVyaWZpY2F0aW9uUmVzdWx0IGlzIHRydWUKLVBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtaW1wb3J0LWp3ay5odG1sIGIvTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLWltcG9ydC1qd2suaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggY2IzOWYzYTU5ZjBiMzVlZmU2OWJiMTI4MmM0OGQ1Mjk4MmFkNDZhYi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL2htYWMtaW1wb3J0LWp3ay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NTUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1k
ZXNjcmlwdGlvbigiVGVzdCBpbXBvcnRpbmcgYSBKV0sga2V5IGZvciBITUFDLiIpOwotCi1qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLQotdmFyIGhtYWNL
ZXkgPSB7Ci0gICAgImt0eSI6ICJvY3QiLAotICAgICJhbGciOiAiSFMyNTYiLAotICAgICJ1c2Ui
OiAic2lnIiwKLSAgICAiZXh0IjogZmFsc2UsCi0gICAgImsiOiAiYWhqa24tXzM4N2ZnbnNpYmYy
M3FzdmFoamtuLV8zODdmZ25zaWJmMjNxcyIKLX07Ci0KLXZhciBobWFjS2V5QXNBcnJheUJ1ZmZl
ciA9IGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KGhtYWNLZXkpKTsKLQotZGVidWco
IkltcG9ydGluZyBhIGtleS4uLlxuIik7Ci1jcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwg
aG1hY0tleUFzQXJyYXlCdWZmZXIsIG51bGwsIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5
Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0OwotCi0gICAgc2hv
dWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7Ci0gICAgc2hvdWxkQmUoImtleS5leHRyYWN0
YWJsZSIsICJmYWxzZSIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0hN
QUMnIik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjMyIik7Ci0gICAg
c2hvdWxkQmUoImtleS51c2FnZXMiLCAnWyJzaWduIiwgInZlcmlmeSJdJyk7Ci0KLSAgICBkZWJ1
ZygiXG5Vc2luZyB0aGUga2V5IHRvIHNpZ24gbWVzc2FnZSAnZm9vJy4uLiIpOwotICAgIHJldHVy
biBjcnlwdG8uc3VidGxlLnNpZ24oa2V5LmFsZ29yaXRobSwga2V5LCBhc2NpaVRvVWludDhBcnJh
eSgnZm9vJykpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBzaWduYXR1cmUgPSBy
ZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoc2ln
bmF0dXJlKSkiLCAiJ2UwMzczNmZlMDk4ODkyYjJhMmRhNzc4MTI0MzFmN2MwMTRkMzJlMmZkNjlm
M2JjZmY4ODNhYzkyM2E4ZmEyZGEnIik7Ci0KLSAgICBkZWJ1ZygiXG5WZXJpZnlpbmcgdGhlIHNp
Z25hdHVyZS4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLnZlcmlmeShrZXkuYWxnb3Jp
dGhtLCBrZXksIHJlc3VsdCwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2ZvbycpKTsKLX0pLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7Ci0gICAgdmVyaWZpY2F0aW9uUmVzdWx0ID0gcmVzdWx0OwotICAgIHNo
b3VsZEJlKCJ2ZXJpZmljYXRpb25SZXN1bHQiLCAidHJ1ZSIpOwotICAgIGZpbmlzaEpTVGVzdCgp
OwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLXBvc3RNZXNzYWdlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1hYy1wb3N0TWVzc2FnZS1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNlY2FlYjkxYWU5YTE4M2EwZjliYjQwNTVjNGRlMTMw
NTFmM2ExZmUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLXBvc3RNZXNzYWdlLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLVRlc3Qgc2VuZGluZyBjcnlwdG8ga2V5cyB2
aWEgcG9zdE1lc3NhZ2UuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGtl
eS50eXBlIGlzICdzZWNyZXQnCi1QQVNTIGtleS5leHRyYWN0YWJsZSBpcyB0cnVlCi1QQVNTIGtl
eS5hbGdvcml0aG0ubmFtZSBpcyAnSE1BQycKLVBBU1Mga2V5LmFsZ29yaXRobS5sZW5ndGggaXMg
MTYKLVBBU1Mga2V5LnVzYWdlcyBpcyBbImRlY3J5cHQiLCAiZW5jcnlwdCIsICJzaWduIiwgInZl
cmlmeSJdCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLXBvc3RNZXNzYWdl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtcG9zdE1lc3NhZ2UuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDA4OGMxYjBkNjZmOGMzYzczYjg5OWE3ZmU3
ZDY5ODZlYTdhNWM5MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtcG9zdE1lc3NhZ2UuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24u
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0PgotCi1kZXNjcmlwdGlvbigi
VGVzdCBzZW5kaW5nIGNyeXB0byBrZXlzIHZpYSBwb3N0TWVzc2FnZS4iKTsKLQotanNUZXN0SXNB
c3luYyA9IHRydWU7Ci0KLXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rp
b24oZXZ0KSB7Ci0gICAga2V5ID0gZXZ0LmRhdGE7Ci0gICAgc2hvdWxkQmUoImtleS50eXBlIiwg
IidzZWNyZXQnIik7Ci0gICAgc2hvdWxkQmUoImtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7Ci0g
ICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIsICInSE1BQyciKTsKLSAgICBzaG91bGRC
ZSgia2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMTYiKTsKLSAgICBzaG91bGRCZSgia2V5LnVzYWdl
cyIsICdbImRlY3J5cHQiLCAiZW5jcnlwdCIsICJzaWduIiwgInZlcmlmeSJdJyk7Ci0KLSAgICBm
aW5pc2hKU1Rlc3QoKTsKLX0sIGZhbHNlKTsKLQotaW1wb3J0VGVzdEtleXMoKS50aGVuKGZ1bmN0
aW9uKGtleXMpIHsKLSAgICBwb3N0TWVzc2FnZShrZXlzLmhtYWNTaGExLCAiKiIpOwotfSk7Ci08
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvaG1hYy1zaWduLXZlcmlmeS1lbXB0eS1rZXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLXNpZ24tdmVyaWZ5LWVtcHR5LWtleS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzZDVkYTc0YmVlYmM5OTE1NGE3Yjlm
YTY0ZGNhYjdlMGEwNzkyZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLXNpZ24tdmVyaWZ5LWVtcHR5
LWtleS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UZXN0IEhN
QUMgc2lnbiBhbmQgdmVyaWZ5IGZ1bmN0aW9ucyB3aXRoIGFuIGVtcHR5IGtleS4KLQotT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUltcG9ydGluZyBhIHJhdyBITUFDIGtleSBmcm9tIHN0
cmluZyBsaXRlcmFsLi4uCi1QQVNTIGtleS50eXBlIGlzICdzZWNyZXQnCi1QQVNTIGtleS5leHRy
YWN0YWJsZSBpcyB0cnVlCi1QQVNTIGtleS5hbGdvcml0aG0ubmFtZSBpcyAnSE1BQycKLVBBU1Mg
a2V5LmFsZ29yaXRobS5sZW5ndGggaXMgMAotUEFTUyBrZXkuYWxnb3JpdGhtLmhhc2gubmFtZSBp
cyAnU0hBLTEnCi1QQVNTIGtleS51c2FnZXMgaXMgWydzaWduJywgJ3ZlcmlmeSddCi1Vc2luZyB0
aGUga2V5IHRvIHNpZ24gJ2ZvbycuLi4KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhB
cnJheShzaWduYXR1cmUpKSBpcyAnYTNjYzc3MGZjMDMzZTJjYjQxOWQ0MmI2NGUwMDgxYTNiZDNi
ZTMwZScKLVZlcmlmeWluZyB0aGUgc2lnbmF0dXJlLi4uCi1QQVNTIHZlcmlmaWNhdGlvblJlc3Vs
dCBpcyB0cnVlCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExF
VEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLXNpZ24tdmVy
aWZ5LWVtcHR5LWtleS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLXNpZ24t
dmVyaWZ5LWVtcHR5LWtleS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwODVl
NmQwNWM0YzZhMTFhMzVmM2E3NTI2YmFjNWRjOWU0MDcwZDM0Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaG1h
Yy1zaWduLXZlcmlmeS1lbXB0eS1rZXkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRp
b24oIlRlc3QgSE1BQyBzaWduIGFuZCB2ZXJpZnkgZnVuY3Rpb25zIHdpdGggYW4gZW1wdHkga2V5
LiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGhtYWNLZXkgPSBhc2NpaVRvVWlu
dDhBcnJheSgnJyk7Ci12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotCi1kZWJ1ZygiSW1wb3J0aW5n
IGEgcmF3IEhNQUMga2V5IGZyb20gc3RyaW5nIGxpdGVyYWwuLi4iKTsKLWNyeXB0by5zdWJ0bGUu
aW1wb3J0S2V5KCJyYXciLCBobWFjS2V5LCB7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFtZTogJ3No
YS0xJ319LCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJl
c3VsdCkgewotICAgIGtleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgia2V5LnR5cGUiLCAiJ3Nl
Y3JldCciKTsKLSAgICBzaG91bGRCZSgia2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKLSAgICBz
aG91bGRCZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidITUFDJyIpOwotICAgIHNob3VsZEJlKCJr
ZXkuYWxnb3JpdGhtLmxlbmd0aCIsICIwIik7IC8vIFNlZSA8aHR0cHM6Ly93d3cudzMub3JnL0J1
Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0yMzA5OD4uCi0gICAgc2hvdWxkQmUoImtleS5hbGdv
cml0aG0uaGFzaC5uYW1lIiwgIidTSEEtMSciKTsKLSAgICBzaG91bGRCZSgia2V5LnVzYWdlcyIs
ICJbJ3NpZ24nLCAndmVyaWZ5J10iKTsKLQotICAgIGRlYnVnKCJVc2luZyB0aGUga2V5IHRvIHNp
Z24gJ2ZvbycuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5zaWduKGtleS5hbGdvcml0
aG0sIGtleSwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2ZvbycpKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVz
dWx0KSB7Ci0gICAgc2lnbmF0dXJlID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4
U3RyaW5nKG5ldyBVaW50OEFycmF5KHNpZ25hdHVyZSkpIiwgIidhM2NjNzcwZmMwMzNlMmNiNDE5
ZDQyYjY0ZTAwODFhM2JkM2JlMzBlJyIpOwotCi0gICAgZGVidWcoIlZlcmlmeWluZyB0aGUgc2ln
bmF0dXJlLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUudmVyaWZ5KGtleS5hbGdvcml0
aG0sIGtleSwgcmVzdWx0LCBhc2NpaVRvVWludDhBcnJheSgnZm9vJykpOwotfSkudGhlbihmdW5j
dGlvbihyZXN1bHQpIHsKLSAgICB2ZXJpZmljYXRpb25SZXN1bHQgPSByZXN1bHQ7Ci0gICAgc2hv
dWxkQmUoInZlcmlmaWNhdGlvblJlc3VsdCIsICJ0cnVlIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7
Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtc2lnbi12ZXJpZnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFjLXNpZ24tdmVyaWZ5LWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMThkYTdlNzJjOWZiOGU0OWIxYTRiMmNlMGNiOWFiZWYw
NTYzOWI5Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtc2lnbi12ZXJpZnktZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGVzdCBITUFDIHNpZ24gYW5kIHZlcmlmeSBm
dW5jdGlvbnMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1JbXBvcnRpbmcgYSBy
YXcgSE1BQyBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJhbC4uLgotUEFTUyBrZXkudHlwZSBpcyAnc2Vj
cmV0JwotUEFTUyBrZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQotUEFTUyBrZXkuYWxnb3JpdGhtLm5h
bWUgaXMgJ0hNQUMnCi1QQVNTIGtleS5hbGdvcml0aG0ubGVuZ3RoIGlzIDEKLVBBU1Mga2V5LmFs
Z29yaXRobS5oYXNoLm5hbWUgaXMgJ1NIQS0xJwotUEFTUyBrZXkudXNhZ2VzIGlzIFsnc2lnbics
ICd2ZXJpZnknXQotVXNpbmcgdGhlIGtleSB0byBzaWduICdmb28nLi4uCi1QQVNTIGJ5dGVzVG9I
ZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoc2lnbmF0dXJlKSkgaXMgJ2JlYmJjMDJlNDZiMGY4MTE4
M2Y0MGMyNWRjZTIzZTUwNDVkNjU1MTknCi1WZXJpZnlpbmcgdGhlIHNpZ25hdHVyZS4uLgotUEFT
UyB2ZXJpZmljYXRpb25SZXN1bHQgaXMgdHJ1ZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9z
dWJ0bGUvaG1hYy1zaWduLXZlcmlmeS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9o
bWFjLXNpZ24tdmVyaWZ5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhkMTk5
NTQyNmUzMDRmNGM2MGE3N2FhNzUyZjgzNWVjODEzNGZmMGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9obWFj
LXNpZ24tdmVyaWZ5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpz
Ij48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IEhN
QUMgc2lnbiBhbmQgdmVyaWZ5IGZ1bmN0aW9ucy4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7
Ci0KLXZhciBobWFjS2V5ID0gYXNjaWlUb1VpbnQ4QXJyYXkoJ2EnKTsKLXZhciBleHRyYWN0YWJs
ZSA9IHRydWU7Ci0KLWRlYnVnKCJJbXBvcnRpbmcgYSByYXcgSE1BQyBrZXkgZnJvbSBzdHJpbmcg
bGl0ZXJhbC4uLiIpOwotY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGhtYWNLZXksIHtu
YW1lOiAnaG1hYycsIGhhc2g6IHtuYW1lOiAnc2hhLTEnfX0sIGV4dHJhY3RhYmxlLCBbInNpZ24i
LCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0Owot
ICAgIHNob3VsZEJlKCJrZXkudHlwZSIsICInc2VjcmV0JyIpOwotICAgIHNob3VsZEJlKCJrZXku
ZXh0cmFjdGFibGUiLCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUi
LCAiJ0hNQUMnIik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjEiKTsg
Ly8gU2VlIDxodHRwczovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTIz
MDk4Pi4KLSAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5oYXNoLm5hbWUiLCAiJ1NIQS0xJyIp
OwotICAgIHNob3VsZEJlKCJrZXkudXNhZ2VzIiwgIlsnc2lnbicsICd2ZXJpZnknXSIpOwotCi0g
ICAgZGVidWcoIlVzaW5nIHRoZSBrZXkgdG8gc2lnbiAnZm9vJy4uLiIpOwotICAgIHJldHVybiBj
cnlwdG8uc3VidGxlLnNpZ24oa2V5LmFsZ29yaXRobSwga2V5LCBhc2NpaVRvVWludDhBcnJheSgn
Zm9vJykpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBzaWduYXR1cmUgPSByZXN1
bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoc2lnbmF0
dXJlKSkiLCAiJ2JlYmJjMDJlNDZiMGY4MTE4M2Y0MGMyNWRjZTIzZTUwNDVkNjU1MTknIik7Ci0K
LSAgICBkZWJ1ZygiVmVyaWZ5aW5nIHRoZSBzaWduYXR1cmUuLi4iKTsKLSAgICByZXR1cm4gY3J5
cHRvLnN1YnRsZS52ZXJpZnkoa2V5LmFsZ29yaXRobSwga2V5LCByZXN1bHQsIGFzY2lpVG9VaW50
OEFycmF5KCdmb28nKSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHZlcmlmaWNh
dGlvblJlc3VsdCA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgidmVyaWZpY2F0aW9uUmVzdWx0Iiwg
InRydWUiKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaW1wb3J0LWp3
ay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2ltcG9ydC1qd2stZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNGU1MWFmNzYwYTYyYjYz
MTA1ZWQwYjJmMjA4YWVhMjk4NmUzM2MyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvaW1wb3J0LWp3ay1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1UZXN0IGVycm9yIGhhbmRs
aW5nIGZvciBKV0sgaW1wb3J0LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFT
UyBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoJycpLCBu
dWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBJbnZhbGlkIEpXSyBzZXJpYWxpemF0aW9u
LgotUEFTUyBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXko
J3snKSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogSW52YWxpZCBKV0sgc2VyaWFs
aXphdGlvbi4KLVBBU1MgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50
OEFycmF5KCdudWxsJyksIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEludmFsaWQg
SldLIHNlcmlhbGl6YXRpb24uCi1QQVNTIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBh
c2NpaVRvVWludDhBcnJheSgndW5kZWZpbmVkJyksIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IEludmFsaWQgSldLIHNlcmlhbGl6YXRpb24uCi1QQVNTIGNyeXB0by5zdWJ0bGUuaW1w
b3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgne30nKSwgbnVsbCkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogTmVpdGhlciBrZXkgbm9yIGZ1bmN0aW9uIGFyZ3VtZW50IGhhcyBjcnlw
dG8gYWxnb3JpdGhtIHNwZWNpZmllZC4KLVBBU1MgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3
ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7fScpLCAiYWVzLWNiYyIpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IFJlcXVpcmVkIEpXSyAia3R5IiBtZW1iZXIgaXMgbWlzc2luZy4KLVBBU1MgY3J5
cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7ICJrdHkiOiAi
Zm9vYmFyIiwgImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwgImsiOiAiYWhqa24yMzM4N2Zn
bnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfScpLCBudWxsKSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBVbnN1cHBvcnRlZCBKV0sga2V5IHR5cGUgZm9vYmFyLgotUEFTUyBjcnlw
dG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoJ3sgImt0eSI6ICJv
Y3QiLCAiYWxnIjogImZvb2JhciIsICJ1c2UiOiAic2lnIiwgImsiOiAiYWhqa24yMzM4N2ZnbnNp
YmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfScpLCBudWxsKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBVbnN1cHBvcnRlZCBKV0sgYWxnb3JpdGhtIGZvb2Jhci4KLVBBU1MgY3J5cHRv
LnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7ICJrdHkiOiAib2N0
IiwgImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwgImV4dCI6IGZhbHNlLCAiayI6ICJhaGpr
bjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9JyksICJhZXMtY2JjIikg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQWxnb3JpdGhtIHNwZWNpZmllZCBpbiBrZXkgaXMg
bm90IGNvbXBhdGlibGUgd2l0aCBvbmUgcGFzc2VkIHRvIGltcG9ydEtleSBhcyBhcmd1bWVudC4K
LVBBU1MgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7
ICJrdHkiOiAib2N0IiwgImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwgImV4dCI6IGZhbHNl
LCAiayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9Jyks
IHsgbmFtZTogImhtYWMiLCBoYXNoOiAic2hhLTEiIH0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IEFsZ29yaXRobSBzcGVjaWZpZWQgaW4ga2V5IGlzIG5vdCBjb21wYXRpYmxlIHdpdGggb25l
IHBhc3NlZCB0byBpbXBvcnRLZXkgYXMgYXJndW1lbnQuCi1QQVNTIGNyeXB0by5zdWJ0bGUuaW1w
b3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgneyAia3R5IjogIm9jdCIsICJhbGciOiAi
SFMyNTYiIH0nKSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogU2VjcmV0IGtleSBk
YXRhIGlzIG5vdCBwcmVzZW50IGlzIEpXSy4KLVBBU1MgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXko
Imp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7ICJrdHkiOiAib2N0IiwgImFsZyI6ICJBMTI4Q0JD
IiB9JyksIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFNlY3JldCBrZXkgZGF0YSBp
cyBub3QgcHJlc2VudCBpcyBKV0suCi1QQVNTIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2si
LCBhc2NpaVRvVWludDhBcnJheSgneyAia3R5IjogIm9jdCIsICJhbGciOiAiSFMyNTYiLCAidXNl
IjogInNpZyIsICJleHQiOiBmYWxzZSwgImsiOiAiMTIzNCIgfScpLCBudWxsKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBLZXkgc2l6ZSBpcyBub3QgdmFsaWQgZm9yIEhTMjU2LgotUEFTUyBj
cnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoJ3sgImt0eSI6
ICJvY3QiLCAiYWxnIjogIkExMjhDQkMiLCAidXNlIjogInNpZyIsICJleHQiOiBmYWxzZSwgImsi
OiAiMTIzNCIgfScpLCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBLZXkgc2l6ZSBp
cyBub3QgdmFsaWQgZm9yIEExMjhDQkMuCi1QQVNTIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJq
d2siLCBhc2NpaVRvVWludDhBcnJheSgneyAia3R5IjogIm9jdCIsICJhbGciOiAiQTEyOENCQyIs
ICJ1c2UiOiAic2lnIiwgImV4dCI6IGZhbHNlLCAiayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2
YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9JyksIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IEtleSBzaXplIGlzIG5vdCB2YWxpZCBmb3IgQTEyOENCQy4KLVBBU1MgY3J5cHRvLnN1YnRs
ZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7ICJrdHkiOiAib2N0IiwgImFs
ZyI6ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwgImV4dCI6IGZhbHNlLCAiayI6ICJhaGprbjIzMzg3
Zituc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9JyksIG51bGwpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IENhbm5vdCBkZWNvZGUgYmFzZTY0dXJsIGtleSBkYXRhIGluIEpXSy4K
LVBBU1MgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7
ICJrdHkiOiAxLCAiYWxnIjogIkhTMjU2IiwgInVzZSI6ICJzaWciLCAiZXh0IjogZmFsc2UsICJr
IjogImFoamtuMjMzODdmZ25zaWJmMjNxc3ZhaGprbjM3Mzg3Zmduc2liZjIzcXMiIH0nKSwgbnVs
bCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogRXhwZWN0ZWQgYSBzdHJpbmcgdmFsdWUgZm9y
ICJrdHkiIEpTT04ga2V5LgotUEFTUyBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNj
aWlUb1VpbnQ4QXJyYXkoJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogMSwgInVzZSI6ICJzaWciLCAi
ZXh0IjogZmFsc2UsICJrIjogImFoamtuMjMzODdmZ25zaWJmMjNxc3ZhaGprbjM3Mzg3Zmduc2li
ZjIzcXMiIH0nKSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogRXhwZWN0ZWQgYSBz
dHJpbmcgdmFsdWUgZm9yICJhbGciIEpTT04ga2V5LgotUEFTUyBjcnlwdG8uc3VidGxlLmltcG9y
dEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkhT
MjU2IiwgInVzZSI6IDEsICJleHQiOiBmYWxzZSwgImsiOiAiYWhqa24yMzM4N2ZnbnNpYmYyM3Fz
dmFoamtuMzczODdmZ25zaWJmMjNxcyIgfScpLCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBFeHBlY3RlZCBhIHN0cmluZyB2YWx1ZSBmb3IgInVzZSIgSlNPTiBrZXkuCi1QQVNTIGNy
eXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgneyAia3R5Ijog
Im9jdCIsICJhbGciOiAiSFMyNTYiLCAidXNlIjogInNpZyIsICJleHQiOiAiZmFsc2UiLCAiayI6
ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9JyksIG51bGwp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEV4cGVjdGVkIGEgYm9vbGVhbiB2YWx1ZSBmb3Ig
ImV4dCIgSlNPTiBrZXkuCi1QQVNTIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2Np
aVRvVWludDhBcnJheSgneyAia3R5IjogIm9jdCIsICJhbGciOiAiSFMyNTYiLCAidXNlIjogInNp
ZyIsICJleHQiOiBmYWxzZSwgImsiOiAxIH0nKSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogRXhwZWN0ZWQgYSBzdHJpbmcgdmFsdWUgZm9yICJrIiBKU09OIGtleS4KLVBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2ltcG9ydC1qd2suaHRtbCBiL0xheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvaW1wb3J0LWp3ay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDNhMjQwOTM2ZmMzY2JlMGIxZTI1MWIyM2YzNGY3YjZhMWNlYzVlLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvaW1wb3J0LWp3ay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgot
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBl
cnJvciBoYW5kbGluZyBmb3IgSldLIGltcG9ydC4iKTsKLQotc2hvdWxkVGhyb3coJ2NyeXB0by5z
dWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ1wnKSwgbnVsbCknKQot
c2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhB
cnJheShcJ3tcJyksIG51bGwpJykKLXNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmltcG9ydEtl
eSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoXCdudWxsXCcpLCBudWxsKScpCi1zaG91bGRUaHJv
dygnY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KFwndW5k
ZWZpbmVkXCcpLCBudWxsKScpCi1zaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXko
Imp3ayIsIGFzY2lpVG9VaW50OEFycmF5KFwne31cJyksIG51bGwpJykKLXNob3VsZFRocm93KCdj
cnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoXCd7fVwnKSwg
ImFlcy1jYmMiKScpCi0KLS8vIFVua25vd24vaW52YWxpZCBKV0sgdmFsdWVzLgotc2hvdWxkVGhy
b3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ3sg
Imt0eSI6ICJmb29iYXIiLCAiYWxnIjogIkhTMjU2IiwgInVzZSI6ICJzaWciLCAiayI6ICJhaGpr
bjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9XCcpLCBudWxsKScpCi1z
aG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFy
cmF5KFwneyAia3R5IjogIm9jdCIsICJhbGciOiAiZm9vYmFyIiwgInVzZSI6ICJzaWciLCAiayI6
ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9XCcpLCBudWxs
KScpCi0KLS8vIEFsZ29yaXRobSBtaXNtYXRjaC4KLXNob3VsZFRocm93KCdjcnlwdG8uc3VidGxl
LmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoXCd7ICJrdHkiOiAib2N0IiwgImFs
ZyI6ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwgImV4dCI6IGZhbHNlLCAiayI6ICJhaGprbjIzMzg3
Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9XCcpLCAiYWVzLWNiYyIpJykKLXNo
b3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJy
YXkoXCd7ICJrdHkiOiAib2N0IiwgImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwgImV4dCI6
IGZhbHNlLCAiayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3Fz
IiB9XCcpLCB7IG5hbWU6ICJobWFjIiwgaGFzaDogInNoYS0xIiB9KScpCi0KLS8vIE5vIGtleSBk
YXRhLgotc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRv
VWludDhBcnJheShcJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkhTMjU2IiB9XCcpLCBudWxsKScp
Ci1zaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50
OEFycmF5KFwneyAia3R5IjogIm9jdCIsICJhbGciOiAiQTEyOENCQyIgfVwnKSwgbnVsbCknKQot
Ci0vLyBLZXkgZGF0YSBsZW5ndGggaXMgaW5jb3JyZWN0LCBub3QgYWxsb3dlZCBpbiBKV0suCi1z
aG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFy
cmF5KFwneyAia3R5IjogIm9jdCIsICJhbGciOiAiSFMyNTYiLCAidXNlIjogInNpZyIsICJleHQi
OiBmYWxzZSwgImsiOiAiMTIzNCIgfVwnKSwgbnVsbCknKQotc2hvdWxkVGhyb3coJ2NyeXB0by5z
dWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ3sgImt0eSI6ICJvY3Qi
LCAiYWxnIjogIkExMjhDQkMiLCAidXNlIjogInNpZyIsICJleHQiOiBmYWxzZSwgImsiOiAiMTIz
NCIgfVwnKSwgbnVsbCknKQotc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJq
d2siLCBhc2NpaVRvVWludDhBcnJheShcJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkExMjhDQkMi
LCAidXNlIjogInNpZyIsICJleHQiOiBmYWxzZSwgImsiOiAiYWhqa24yMzM4N2ZnbnNpYmYyM3Fz
dmFoamtuMzczODdmZ25zaWJmMjNxcyIgfVwnKSwgbnVsbCknKQotCi0vLyBLZXkgZGF0YSBpcyBu
b3QgdmFsaWQgYmFzZTY0dXJsLgotc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5
KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkhTMjU2
IiwgInVzZSI6ICJzaWciLCAiZXh0IjogZmFsc2UsICJrIjogImFoamtuMjMzODdmK25zaWJmMjNx
c3ZhaGprbjM3Mzg3Zmduc2liZjIzcXMiIH1cJyksIG51bGwpJykKLQotLy8gSW5jb3JyZWN0IGRh
dGEgdHlwZXMuCi1zaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFz
Y2lpVG9VaW50OEFycmF5KFwneyAia3R5IjogMSwgImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAic2ln
IiwgImV4dCI6IGZhbHNlLCAiayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2Zn
bnNpYmYyM3FzIiB9XCcpLCBudWxsKScpCi1zaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5pbXBv
cnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KFwneyAia3R5IjogIm9jdCIsICJhbGciOiAx
LCAidXNlIjogInNpZyIsICJleHQiOiBmYWxzZSwgImsiOiAiYWhqa24yMzM4N2ZnbnNpYmYyM3Fz
dmFoamtuMzczODdmZ25zaWJmMjNxcyIgfVwnKSwgbnVsbCknKQotc2hvdWxkVGhyb3coJ2NyeXB0
by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ3sgImt0eSI6ICJv
Y3QiLCAiYWxnIjogIkhTMjU2IiwgInVzZSI6IDEsICJleHQiOiBmYWxzZSwgImsiOiAiYWhqa24y
MzM4N2ZnbnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfVwnKSwgbnVsbCknKQotc2hv
dWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJh
eShcJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkhTMjU2IiwgInVzZSI6ICJzaWciLCAiZXh0Ijog
ImZhbHNlIiwgImsiOiAiYWhqa24yMzM4N2ZnbnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNx
cyIgfVwnKSwgbnVsbCknKQotc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJq
d2siLCBhc2NpaVRvVWludDhBcnJheShcJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkhTMjU2Iiwg
InVzZSI6ICJzaWciLCAiZXh0IjogZmFsc2UsICJrIjogMSB9XCcpLCBudWxsKScpCi08L3Njcmlw
dD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS9qd2stZXhwb3J0LXVzZS12YWx1ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9qd2stZXhwb3J0LXVzZS12YWx1ZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0NzM3ZGFmZDBmODEwNTY1MmI1Yzk4ODFkODBhMzVkZjAzMGQ1
NjRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2NyeXB0by9zdWJ0bGUvandrLWV4cG9ydC11c2UtdmFsdWVzLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLVRlc3QgZXhwb3J0aW5nIGtleXMgd2l0aCB2
YXJpb3VzIHVzYWdlcyB0byBKV0suCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1l
bmNyeXB0OgotUEFTUyBqd2sudXNlIGlzIHVuZGVmaW5lZAotUEFTUyBqd2sua2V5X29wcyBpcyBb
ImVuY3J5cHQiXQotCi1kZWNyeXB0OgotUEFTUyBqd2sudXNlIGlzIHVuZGVmaW5lZAotUEFTUyBq
d2sua2V5X29wcyBpcyBbImRlY3J5cHQiXQotCi1lbmNyeXB0LGRlY3J5cHQ6Ci1QQVNTIGp3ay51
c2UgaXMgdW5kZWZpbmVkCi1QQVNTIGp3ay5rZXlfb3BzIGlzIFsiZW5jcnlwdCIsImRlY3J5cHQi
XQotCi13cmFwS2V5OgotUEFTUyBqd2sudXNlIGlzIHVuZGVmaW5lZAotUEFTUyBqd2sua2V5X29w
cyBpcyBbIndyYXBLZXkiXQotCi11bndyYXBLZXk6Ci1QQVNTIGp3ay51c2UgaXMgdW5kZWZpbmVk
Ci1QQVNTIGp3ay5rZXlfb3BzIGlzIFsidW53cmFwS2V5Il0KLQotd3JhcEtleSx1bndyYXBLZXk6
Ci1QQVNTIGp3ay51c2UgaXMgdW5kZWZpbmVkCi1QQVNTIGp3ay5rZXlfb3BzIGlzIFsid3JhcEtl
eSIsInVud3JhcEtleSJdCi0KLWVuY3J5cHQsZGVjcnlwdCx3cmFwS2V5OgotUEFTUyBqd2sudXNl
IGlzIHVuZGVmaW5lZAotUEFTUyBqd2sua2V5X29wcyBpcyBbImVuY3J5cHQiLCJkZWNyeXB0Iiwi
d3JhcEtleSJdCi0KLWVuY3J5cHQsZGVjcnlwdCx3cmFwS2V5LHVud3JhcEtleToKLVBBU1Mgandr
LnVzZSBpcyB1bmRlZmluZWQKLVBBU1MgandrLmtleV9vcHMgaXMgWyJlbmNyeXB0IiwiZGVjcnlw
dCIsIndyYXBLZXkiLCJ1bndyYXBLZXkiXQotCi1zaWduOgotUEFTUyBqd2sudXNlIGlzIHVuZGVm
aW5lZAotUEFTUyBqd2sua2V5X29wcyBpcyBbInNpZ24iXQotCi12ZXJpZnk6Ci1QQVNTIGp3ay51
c2UgaXMgdW5kZWZpbmVkCi1QQVNTIGp3ay5rZXlfb3BzIGlzIFsidmVyaWZ5Il0KLQotc2lnbix2
ZXJpZnk6Ci1QQVNTIGp3ay51c2UgaXMgdW5kZWZpbmVkCi1QQVNTIGp3ay5rZXlfb3BzIGlzIFsi
c2lnbiIsInZlcmlmeSJdCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVT
VCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2p3ay1l
eHBvcnQtdXNlLXZhbHVlcy5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9qd2stZXhw
b3J0LXVzZS12YWx1ZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmU5YTJh
MjIyMTEwMTU2NWJkNWRhYzkxN2VmOGZmZjg5NDhhZmQ3Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2p3ay1l
eHBvcnQtdXNlLXZhbHVlcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1v
bi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVz
dCBleHBvcnRpbmcga2V5cyB3aXRoIHZhcmlvdXMgdXNhZ2VzIHRvIEpXSy4iKTsKLQotanNUZXN0
SXNBc3luYyA9IHRydWU7Ci0KLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci0KLXZhciBhZXNLZXlB
c0FycmF5QnVmZmVyID0gQmFzZTY0VVJMLnBhcnNlKCJqbk93OTlvT1pGTElFUE1yZ0pCNTVXTDQ2
dEpTTEd0NyIpOwotdmFyIGhtYWNLZXlBc0FycmF5QnVmZmVyID0gQmFzZTY0VVJMLnBhcnNlKCJh
aGprbi1fMzg3Zmduc2liZjIzcXN2YWhqa24tXzM4N2ZnbnNpYmYyM3FzIik7Ci0KLWZ1bmN0aW9u
IHRlc3RXaXRoQUVTQ0JDKHVzYWdlcywgZXhwZWN0ZWRLZXlPcHMpCi17Ci0gICAgcmV0dXJuIGNy
eXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBhZXNLZXlBc0FycmF5QnVmZmVyLCAiQUVTLUNC
QyIsIGV4dHJhY3RhYmxlLCB1c2FnZXMpLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgICAg
IHJldHVybiBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgiandrIiwgcmVzdWx0KTsKLSAgICB9KS50
aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgICAgICBqd2sgPSBKU09OLnBhcnNlKGJ5dGVzVG9B
U0NJSVN0cmluZyhyZXN1bHQpKTsKLSAgICAgICAgZGVidWcodXNhZ2VzICsgIjoiKTsKLSAgICAg
ICAgc2hvdWxkQmUoImp3ay51c2UiLCAidW5kZWZpbmVkIik7Ci0gICAgICAgIHNob3VsZEJlKCJq
d2sua2V5X29wcyIsIEpTT04uc3RyaW5naWZ5KGV4cGVjdGVkS2V5T3BzKSk7Ci0gICAgICAgIGRl
YnVnKCIiKTsKLSAgICB9KTsKLX0KLQotZnVuY3Rpb24gdGVzdFdpdGhITUFDKHVzYWdlcywgZXhw
ZWN0ZWRLZXlPcHMpCi17Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXci
LCBobWFjS2V5QXNBcnJheUJ1ZmZlciwge25hbWU6ICdobWFjJywgaGFzaDoge25hbWU6ICdzaGEt
MjU2J319LCBleHRyYWN0YWJsZSwgdXNhZ2VzKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAg
ICAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoImp3ayIsIHJlc3VsdCk7Ci0gICAg
fSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICAgICAgandrID0gSlNPTi5wYXJzZShieXRl
c1RvQVNDSUlTdHJpbmcocmVzdWx0KSk7Ci0gICAgICAgIGRlYnVnKHVzYWdlcyArICI6Iik7Ci0g
ICAgICAgIHNob3VsZEJlKCJqd2sudXNlIiwgInVuZGVmaW5lZCIpOwotICAgICAgICBzaG91bGRC
ZSgiandrLmtleV9vcHMiLCBKU09OLnN0cmluZ2lmeShleHBlY3RlZEtleU9wcykpOwotICAgICAg
ICBkZWJ1ZygiIik7Ci0gICAgfSk7Ci19Ci0KLVByb21pc2UuYWxsKFsKLSAgICB0ZXN0V2l0aEFF
U0NCQyhbImVuY3J5cHQiXSwgWyJlbmNyeXB0Il0pLAotICAgIHRlc3RXaXRoQUVTQ0JDKFsiZGVj
cnlwdCJdLCBbImRlY3J5cHQiXSksCi0gICAgdGVzdFdpdGhBRVNDQkMoWyJlbmNyeXB0IiwgImRl
Y3J5cHQiXSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSksCi0gICAgdGVzdFdpdGhBRVNDQkMoWyJ3
cmFwS2V5Il0sIFsid3JhcEtleSJdKSwKLSAgICB0ZXN0V2l0aEFFU0NCQyhbInVud3JhcEtleSJd
LCBbInVud3JhcEtleSJdKSwKLSAgICB0ZXN0V2l0aEFFU0NCQyhbIndyYXBLZXkiLCAidW53cmFw
S2V5Il0sIFsid3JhcEtleSIsICJ1bndyYXBLZXkiXSksCi0gICAgdGVzdFdpdGhBRVNDQkMoWyJl
bmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSJdLCBbImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ3
cmFwS2V5Il0pLAotICAgIHRlc3RXaXRoQUVTQ0JDKFsiZW5jcnlwdCIsICJkZWNyeXB0IiwgIndy
YXBLZXkiLCAidW53cmFwS2V5Il0sIFsiZW5jcnlwdCIsICJkZWNyeXB0IiwgIndyYXBLZXkiLCAi
dW53cmFwS2V5Il0pLAotICAgIHRlc3RXaXRoSE1BQyhbInNpZ24iXSwgWyJzaWduIl0pLAotICAg
IHRlc3RXaXRoSE1BQyhbInZlcmlmeSJdLCBbInZlcmlmeSJdKSwKLSAgICB0ZXN0V2l0aEhNQUMo
WyJzaWduIiwgInZlcmlmeSJdLCBbInNpZ24iLCAidmVyaWZ5Il0pLAotXSkudGhlbihmdW5jdGlv
bigpIHsgZmluaXNoSlNUZXN0KCk7IH0gKTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2p3ay1pbXBvcnQtdXNlLXZh
bHVlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2p3ay1pbXBvcnQt
dXNlLXZhbHVlcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRh
ZWRkYWE3YTViZTJhYWM1ZGZkY2UzMjI0NDM3Y2E3YTc3NzU1N2QuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9q
d2staW1wb3J0LXVzZS12YWx1ZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNTMg
KzAsMCBAQAotVGVzdCBpbXBvcnRpbmcga2V5cyB3aXRoIHZhcmlvdXMgdXNlcyBmcm9tIEpXSy4K
LQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgdGVzdFdpdGhBRVNDQkMoWyJl
bmNyeXB0Il0sIHtrZXlfb3BzOiBbImVuY3J5cHQiLCAiZW5jcnlwdCJdfSkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogSldLIGtleV9vcHMgY29udGFpbnMgYSBkdXBsaWNhdGUgb3BlcmF0aW9u
LgotCi17ImtleV9vcHMiOlsiZW5jcnlwdCJdfToKLVBBU1Mga2V5LnVzYWdlcyBpcyBbImVuY3J5
cHQiXQotCi17ImtleV9vcHMiOlsiZGVjcnlwdCJdfToKLVBBU1Mga2V5LnVzYWdlcyBpcyBbImRl
Y3J5cHQiXQotCi17ImtleV9vcHMiOlsiZW5jcnlwdCIsImRlY3J5cHQiXX06Ci1QQVNTIGtleS51
c2FnZXMgaXMgWyJkZWNyeXB0IiwiZW5jcnlwdCJdCi0KLXsia2V5X29wcyI6WyJ3cmFwS2V5Il19
OgotUEFTUyBrZXkudXNhZ2VzIGlzIFsid3JhcEtleSJdCi0KLXsia2V5X29wcyI6WyJ1bndyYXBL
ZXkiXX06Ci1QQVNTIGtleS51c2FnZXMgaXMgWyJ1bndyYXBLZXkiXQotCi17ImtleV9vcHMiOlsi
d3JhcEtleSIsInVud3JhcEtleSJdfToKLVBBU1Mga2V5LnVzYWdlcyBpcyBbInVud3JhcEtleSIs
IndyYXBLZXkiXQotCi17ImtleV9vcHMiOlsiZW5jcnlwdCIsImRlY3J5cHQiLCJ3cmFwS2V5Il19
OgotUEFTUyBrZXkudXNhZ2VzIGlzIFsiZGVjcnlwdCIsImVuY3J5cHQiLCJ3cmFwS2V5Il0KLQot
eyJ1c2UiOiJlbmMifToKLVBBU1Mga2V5LnVzYWdlcyBpcyBbImRlY3J5cHQiLCJlbmNyeXB0Iiwi
dW53cmFwS2V5Iiwid3JhcEtleSJdCi0KLXsia2V5X29wcyI6WyJzaWduIl19OgotUEFTUyBrZXku
dXNhZ2VzIGlzIFsic2lnbiJdCi0KLXsia2V5X29wcyI6WyJ2ZXJpZnkiXX06Ci1QQVNTIGtleS51
c2FnZXMgaXMgWyJ2ZXJpZnkiXQotCi17InVzZSI6InNpZyJ9OgotUEFTUyBrZXkudXNhZ2VzIGlz
IFsic2lnbiIsInZlcmlmeSJdCi0KLXsia2V5X29wcyI6WyInZW5jcnlwdCciXX06Ci1QQVNTIGtl
eS51c2FnZXMgaXMgW10KLQoteyJrZXlfb3BzIjpbImVuY3J5cHQgIl19OgotUEFTUyBrZXkudXNh
Z2VzIGlzIFtdCi0KLXsia2V5X29wcyI6WyJFbmNyeXB0Il19OgotUEFTUyBrZXkudXNhZ2VzIGlz
IFtdCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2p3ay1pbXBvcnQtdXNlLXZh
bHVlcy5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9qd2staW1wb3J0LXVzZS12YWx1
ZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDJiZjEzMjUzOTI2ODExNjA2
OTgwNmQ5MzljYTdlYWExZWM5Mjg5Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2p3ay1pbXBvcnQtdXNlLXZh
bHVlcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBpbXBvcnRpbmcg
a2V5cyB3aXRoIHZhcmlvdXMgdXNlcyBmcm9tIEpXSy4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRy
dWU7Ci0KLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci0KLXZhciBhZXNLZXlBc0pTT04gPSB7Ci0g
ICAgImFsZyI6ICJBMTkyQ0JDIiwKLSAgICAiZXh0IjogdHJ1ZSwKLSAgICAia3R5IjogIm9jdCIs
Ci0gICAgImsiOiAiam5Pdzk5b09aRkxJRVBNcmdKQjU1V0w0NnRKU0xHdDciCi19OwotCi12YXIg
aG1hY0tleUFzSlNPTiA9IHsKLSAgICAiYWxnIjogIkhTMjU2IiwKLSAgICAiZXh0IjogdHJ1ZSwK
LSAgICAia3R5IjogIm9jdCIsCi0gICAgImsiOiAiYWhqa24tXzM4N2ZnbnNpYmYyM3FzdmFoamtu
LV8zODdmZ25zaWJmMjNxcyIKLX07Ci0KLWZ1bmN0aW9uIHRlc3RXaXRoQUVTQ0JDKGV4cGVjdGVk
VXNhZ2VzLCBqd2tVc2FnZXMpCi17Ci0gICAgaWYgKGp3a1VzYWdlcy5rZXlfb3BzKSB7Ci0gICAg
ICAgIGFlc0tleUFzSlNPTi5rZXlfb3BzID0gandrVXNhZ2VzLmtleV9vcHM7Ci0gICAgICAgIGRl
bGV0ZSBhZXNLZXlBc0pTT04udXNlOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGRlbGV0ZSBhZXNL
ZXlBc0pTT04ua2V5X29wczsKLSAgICAgICAgYWVzS2V5QXNKU09OLnVzZSA9IGp3a1VzYWdlcy51
c2U7Ci0gICAgfQotCi0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBh
c2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShhZXNLZXlBc0pTT04pKSwgIkFFUy1DQkMi
LCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSIsICJ1bndyYXBL
ZXkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICAgICAga2V5ID0gcmVzdWx0OwotICAg
ICAgICBkZWJ1ZyhKU09OLnN0cmluZ2lmeShqd2tVc2FnZXMpICsgIjoiKTsKLSAgICAgICAgc2hv
dWxkQmUoImtleS51c2FnZXMiLCBKU09OLnN0cmluZ2lmeShleHBlY3RlZFVzYWdlcykpOwotICAg
ICAgICBkZWJ1ZygiIik7Ci0gICAgfSk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RXaXRoSE1BQyhleHBl
Y3RlZFVzYWdlcywgandrVXNhZ2VzKQotewotICAgIGlmIChqd2tVc2FnZXMua2V5X29wcykgewot
ICAgICAgICBobWFjS2V5QXNKU09OLmtleV9vcHMgPSBqd2tVc2FnZXMua2V5X29wczsKLSAgICAg
ICAgZGVsZXRlIGhtYWNLZXlBc0pTT04udXNlOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGRlbGV0
ZSBobWFjS2V5QXNKU09OLmtleV9vcHM7Ci0gICAgICAgIGhtYWNLZXlBc0pTT04udXNlID0gandr
VXNhZ2VzLnVzZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXko
Imp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KGhtYWNLZXlBc0pTT04pKSwg
e25hbWU6ICdobWFjJywgaGFzaDoge25hbWU6ICdzaGEtMjU2J319LCBleHRyYWN0YWJsZSwgWyJz
aWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgICAgICBrZXkgPSBy
ZXN1bHQ7Ci0gICAgICAgIGRlYnVnKEpTT04uc3RyaW5naWZ5KGp3a1VzYWdlcykgKyAiOiIpOwot
ICAgICAgICBzaG91bGRCZSgia2V5LnVzYWdlcyIsIEpTT04uc3RyaW5naWZ5KGV4cGVjdGVkVXNh
Z2VzKSk7Ci0gICAgICAgIGRlYnVnKCIiKTsKLSAgICB9KTsKLX0KLQotLy8gRHVwbGljYXRlcyBh
cmUgbm90IGFsbG93ZWQuIFdlIGN1cnJlbnRseSByYWlzZSBhbiBleGNlcHRpb24sIGFsdGhvdWdo
IHdlIHNob3VsZCByZWplY3QgdGhlIHByb21pc2UgaW5zdGVhZC4KLXNob3VsZFRocm93KCd0ZXN0
V2l0aEFFU0NCQyhbImVuY3J5cHQiXSwge2tleV9vcHM6IFsiZW5jcnlwdCIsICJlbmNyeXB0Il19
KScpOwotZGVidWcoIiIpOwotCi1Qcm9taXNlLmFsbChbCi0gICAgdGVzdFdpdGhBRVNDQkMoWyJl
bmNyeXB0Il0sIHtrZXlfb3BzOiBbImVuY3J5cHQiXX0pLAotICAgIHRlc3RXaXRoQUVTQ0JDKFsi
ZGVjcnlwdCJdLCB7a2V5X29wczogWyJkZWNyeXB0Il19KSwKLSAgICB0ZXN0V2l0aEFFU0NCQyhb
ImRlY3J5cHQiLCAiZW5jcnlwdCJdLCB7a2V5X29wczogWyJlbmNyeXB0IiwgImRlY3J5cHQiXX0p
LAotICAgIHRlc3RXaXRoQUVTQ0JDKFsid3JhcEtleSJdLCB7a2V5X29wczogWyJ3cmFwS2V5Il19
KSwKLSAgICB0ZXN0V2l0aEFFU0NCQyhbInVud3JhcEtleSJdLCB7a2V5X29wczogWyJ1bndyYXBL
ZXkiXX0pLAotICAgIHRlc3RXaXRoQUVTQ0JDKFsidW53cmFwS2V5IiwgIndyYXBLZXkiXSwge2tl
eV9vcHM6IFsid3JhcEtleSIsICJ1bndyYXBLZXkiXX0pLAotICAgIHRlc3RXaXRoQUVTQ0JDKFsi
ZGVjcnlwdCIsICJlbmNyeXB0IiwgIndyYXBLZXkiXSwge2tleV9vcHM6IFsiZW5jcnlwdCIsICJk
ZWNyeXB0IiwgIndyYXBLZXkiXX0pLAotICAgIHRlc3RXaXRoQUVTQ0JDKFsiZGVjcnlwdCIsICJl
bmNyeXB0IiwgInVud3JhcEtleSIsICJ3cmFwS2V5Il0sIHt1c2U6ICJlbmMifSksCi0gICAgdGVz
dFdpdGhITUFDKFsic2lnbiJdLCB7a2V5X29wczogWyJzaWduIl19KSwKLSAgICB0ZXN0V2l0aEhN
QUMoWyJ2ZXJpZnkiXSwge2tleV9vcHM6IFsidmVyaWZ5Il19KSwKLSAgICB0ZXN0V2l0aEhNQUMo
WyJzaWduIiwgInZlcmlmeSJdLCB7dXNlOiAic2lnIn0pLAotCi0vLyBVbmtub3duIGtleV9vcHMg
c3RyaW5ncyBhcmUgaWdub3JlZC4KLSAgICB0ZXN0V2l0aEFFU0NCQyhbXSwge2tleV9vcHM6IFsi
J2VuY3J5cHQnIl19KSwKLSAgICB0ZXN0V2l0aEFFU0NCQyhbXSwge2tleV9vcHM6IFsiZW5jcnlw
dCAiXX0pLAotICAgIHRlc3RXaXRoQUVTQ0JDKFtdLCB7a2V5X29wczogWyJFbmNyeXB0Il19KSwK
LQotXSkudGhlbihmdW5jdGlvbigpIHsgZmluaXNoSlNUZXN0KCk7IH0gKTsKLTwvc2NyaXB0Pgot
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L3Bvc3RNZXNzYWdlLXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL3Bvc3RNZXNzYWdlLXdvcmtlci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDYwY2QzMDIwY2IxNDRkYTdmYmVhN2FkMWFiM2FkZTMzZTFmNDMxMWMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9wb3N0TWVzc2FnZS13b3JrZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTAgKzAsMCBAQAotVGVzdCBzZW5kaW5nIGNyeXB0byBrZXlzIHZpYSBwb3N0TWVzc2Fn
ZSB0byBhIHdvcmtlci4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUZBSUwgQ2hl
Y2sgZmFpbGVkIGluIHdvcmtlcjoga2V5IGlzIG51bGwKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlw
dG8vc3VidGxlL3Bvc3RNZXNzYWdlLXdvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS9wb3N0TWVzc2FnZS13b3JrZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZDc1ZWJmMzM5MjI2YzFjNTU1NGE3ZTQ2NmU2NWE1MTg0NThhMjQ1YS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL3Bvc3RNZXNzYWdlLXdvcmtlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgi
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keT4KLTxzY3JpcHQ+Ci0KLWRlc2NyaXB0aW9uKCJUZXN0IHNlbmRpbmcgY3J5cHRvIGtleXMg
dmlhIHBvc3RNZXNzYWdlIHRvIGEgd29ya2VyLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
LQotaW1wb3J0VGVzdEtleXMoKS50aGVuKGZ1bmN0aW9uKGtleXMpIHsKLSAgICB2YXIgd29ya2Vy
ID0gbmV3IFdvcmtlcigicmVzb3VyY2VzL3Bvc3RNZXNzYWdlLXdvcmtlci5qcyIpOwotICAgIHdv
cmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldnQpIHsKLSAgICAgICAgaWYgKCFldnQuZGF0YS5y
ZXN1bHQpIHsKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNoZWNrIGZhaWxlZCBpbiB3b3JrZXI6
ICIgKyBldnQuZGF0YS5tZXNzYWdlKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRl
c3RQYXNzZWQoIkFsbCBjaGVja3MgcGFzc2VkIGluIHdvcmtlciIpOwotICAgICAgICAgICAga2V5
ID0gZXZ0LmRhdGEua2V5OwotICAgICAgICAgICAgc2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNy
ZXQnIik7Ci0gICAgICAgICAgICBzaG91bGRCZSgia2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsK
LSAgICAgICAgICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0hNQUMnIik7Ci0g
ICAgICAgICAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMTYiKTsKLSAgICAg
ICAgICAgIHNob3VsZEJlKCJrZXkudXNhZ2VzIiwgJ1siZGVjcnlwdCIsICJlbmNyeXB0IiwgInNp
Z24iLCAidmVyaWZ5Il0nKTsKLSAgICAgICAgfQotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAg
ICB9Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKGtleXMuaG1hY1NoYTEpOwotfSk7Ci08L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvcmVzb3VyY2VzL2NvbW1vbi5qcyBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcmVzb3Vy
Y2VzL2NvbW1vbi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTIwYjE4Y2JkMTAw
MDE4NzIwNjk2NmFkOTIxZjcyMTBjMzZhZjUwMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3Jlc291cmNlcy9j
b21tb24uanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMDUgKzAsMCBAQAotZnVuY3Rpb24gaW1wb3J0
VGVzdEtleXMoKQotewotICAgIHZhciBrZXlGb3JtYXQgPSAicmF3IjsKLSAgICB2YXIgZGF0YSA9
IGFzY2lpVG9VaW50OEFycmF5KCIxNiBieXRlcyBvZiBrZXkhIik7Ci0gICAgdmFyIGV4dHJhY3Rh
YmxlID0gdHJ1ZTsKLSAgICB2YXIga2V5VXNhZ2VzID0gWydlbmNyeXB0JywgJ2RlY3J5cHQnLCAn
c2lnbicsICd2ZXJpZnknXTsKLQotICAgIHZhciBobWFjUHJvbWlzZSA9IGNyeXB0by5zdWJ0bGUu
aW1wb3J0S2V5KGtleUZvcm1hdCwgZGF0YSwge25hbWU6ICdobWFjJywgaGFzaDoge25hbWU6ICdz
aGEtMSd9fSwgZXh0cmFjdGFibGUsIGtleVVzYWdlcyk7Ci0gICAgdmFyIGFlc0NiY1Byb21pc2Ug
PSBjcnlwdG8uc3VidGxlLmltcG9ydEtleShrZXlGb3JtYXQsIGRhdGEsIHtuYW1lOiAnQUVTLUNC
Qyd9LCBleHRyYWN0YWJsZSwga2V5VXNhZ2VzKTsKLSAgICB2YXIgYWVzQ2JjSnVzdERlY3J5cHQg
PSBjcnlwdG8uc3VidGxlLmltcG9ydEtleShrZXlGb3JtYXQsIGRhdGEsIHtuYW1lOiAnQUVTLUNC
Qyd9LCBmYWxzZSwgWydkZWNyeXB0J10pOwotCi0gICAgcmV0dXJuIFByb21pc2UuYWxsKFtobWFj
UHJvbWlzZSwgYWVzQ2JjUHJvbWlzZSwgYWVzQ2JjSnVzdERlY3J5cHRdKS50aGVuKGZ1bmN0aW9u
KHJlc3VsdHMpIHsKLSAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgIGhtYWNTaGExOiByZXN1
bHRzWzBdLAotICAgICAgICAgICAgYWVzQ2JjOiByZXN1bHRzWzFdLAotICAgICAgICAgICAgYWVz
Q2JjSnVzdERlY3J5cHQ6IHJlc3VsdHNbMl0sCi0gICAgICAgIH07Ci0gICAgfSk7Ci19Ci0KLS8v
IFZlcmlmaWVzIHRoYXQgdGhlIGdpdmVuICJieXRlcyIgaG9sZHMgdGhlIHNhbWUgdmFsdWUgYXMg
ImV4cGVjdGVkSGV4U3RyaW5nIi4KLS8vICJieXRlcyIgY2FuIGJlIGFueXRoaW5nIHJlY29nbml6
ZWQgYnkgImJ5dGVzVG9IZXhTdHJpbmcoKSIuCi1mdW5jdGlvbiBieXRlc1Nob3VsZE1hdGNoSGV4
U3RyaW5nKHRlc3REZXNjcmlwdGlvbiwgZXhwZWN0ZWRIZXhTdHJpbmcsIGJ5dGVzKQotewotICAg
IGV4cGVjdGVkSGV4U3RyaW5nID0gIlsiICsgZXhwZWN0ZWRIZXhTdHJpbmcudG9Mb3dlckNhc2Uo
KSArICJdIjsKLSAgICB2YXIgYWN0dWFsSGV4U3RyaW5nID0gIlsiICsgYnl0ZXNUb0hleFN0cmlu
ZyhieXRlcykgKyAiXSI7Ci0KLSAgICBpZiAoYWN0dWFsSGV4U3RyaW5nID09PSBleHBlY3RlZEhl
eFN0cmluZykgewotICAgICAgICBkZWJ1ZygiUEFTUzogIiArIHRlc3REZXNjcmlwdGlvbiArICIg
c2hvdWxkIGJlICIgKyBleHBlY3RlZEhleFN0cmluZyArICIgYW5kIHdhcyIpOwotICAgIH0gZWxz
ZSB7Ci0gICAgICAgIGRlYnVnKCJGQUlMOiAiICsgdGVzdERlc2NyaXB0aW9uICsgIiBzaG91bGQg
YmUgIiArIGV4cGVjdGVkSGV4U3RyaW5nICsgIiBidXQgd2FzICIgKyBhY3R1YWxIZXhTdHJpbmcp
OwotICAgIH0KLX0KLQotLy8gQnVpbGRzIGEgaGV4IHN0cmluZyByZXByZXNlbnRhdGlvbiBmb3Ig
YW4gYXJyYXktbGlrZSBpbnB1dC4KLS8vICJieXRlcyIgY2FuIGJlIGFuIEFycmF5IG9mIGJ5dGVz
LCBhbiBBcnJheUJ1ZmZlciwgb3IgYW55IFR5cGVkQXJyYXkuCi0vLyBUaGUgb3V0cHV0IGxvb2tz
IGxpa2UgdGhpczoKLS8vICAgIGFiMDM0Yzk5Ci1mdW5jdGlvbiBieXRlc1RvSGV4U3RyaW5nKGJ5
dGVzKQotewotICAgIGlmICghYnl0ZXMpCi0gICAgICAgIHJldHVybiBudWxsOwotCi0gICAgYnl0
ZXMgPSBuZXcgVWludDhBcnJheShieXRlcyk7Ci0gICAgdmFyIGhleEJ5dGVzID0gW107Ci0KLSAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBi
eXRlU3RyaW5nID0gYnl0ZXNbaV0udG9TdHJpbmcoMTYpOwotICAgICAgICBpZiAoYnl0ZVN0cmlu
Zy5sZW5ndGggPCAyKQotICAgICAgICAgICAgYnl0ZVN0cmluZyA9ICIwIiArIGJ5dGVTdHJpbmc7
Ci0gICAgICAgIGhleEJ5dGVzLnB1c2goYnl0ZVN0cmluZyk7Ci0gICAgfQotCi0gICAgcmV0dXJu
IGhleEJ5dGVzLmpvaW4oIiIpOwotfQotCi1mdW5jdGlvbiBieXRlc1RvQVNDSUlTdHJpbmcoYnl0
ZXMpCi17Ci0gICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgbmV3IFVp
bnQ4QXJyYXkoYnl0ZXMpKTsKLX0KLQotZnVuY3Rpb24gaGV4U3RyaW5nVG9VaW50OEFycmF5KGhl
eFN0cmluZykKLXsKLSAgICBpZiAoaGV4U3RyaW5nLmxlbmd0aCAlIDIgIT0gMCkKLSAgICAgICAg
dGhyb3cgIkludmFsaWQgaGV4U3RyaW5nIjsKLSAgICB2YXIgYXJyYXlCdWZmZXIgPSBuZXcgVWlu
dDhBcnJheShoZXhTdHJpbmcubGVuZ3RoIC8gMik7Ci0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGhleFN0cmluZy5sZW5ndGg7IGkgKz0gMikgewotICAgICAgICB2YXIgYnl0ZVZhbHVlID0gcGFy
c2VJbnQoaGV4U3RyaW5nLnN1YnN0cihpLCAyKSwgMTYpOwotICAgICAgICBpZiAoYnl0ZVZhbHVl
ID09IE5hTikKLSAgICAgICAgICAgIHRocm93ICJJbnZhbGlkIGhleFN0cmluZyI7Ci0gICAgICAg
IGFycmF5QnVmZmVyW2kvMl0gPSBieXRlVmFsdWU7Ci0gICAgfQotCi0gICAgcmV0dXJuIGFycmF5
QnVmZmVyOwotfQotCi1mdW5jdGlvbiBhc2NpaVRvVWludDhBcnJheShzdHIpCi17Ci0gICAgdmFy
IGNoYXJzID0gW107Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyArK2kpCi0g
ICAgICAgIGNoYXJzLnB1c2goc3RyLmNoYXJDb2RlQXQoaSkpOwotICAgIHJldHVybiBuZXcgVWlu
dDhBcnJheShjaGFycyk7Ci19Ci0KLWZ1bmN0aW9uIGZhaWxBbmRGaW5pc2hKU1Rlc3QoZXJyb3Ip
Ci17Ci0gICAgaWYgKGVycm9yKQotICAgICAgIGRlYnVnKGVycm9yKTsKLSAgICBmaW5pc2hKU1Rl
c3QoKTsKLX0KLQotdmFyIEJhc2U2NFVSTCA9IHsKLSAgICBzdHJpbmdpZnk6IGZ1bmN0aW9uIChh
KSB7Ci0gICAgICAgIHZhciBiYXNlNjRzdHJpbmcgPSBidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUu
YXBwbHkoMCwgYSkpOwotICAgICAgICByZXR1cm4gYmFzZTY0c3RyaW5nLnJlcGxhY2UoLz0vZywg
IiIpLnJlcGxhY2UoL1wrL2csICItIikucmVwbGFjZSgvXC8vZywgIl8iKTsKLSAgICB9LAotICAg
IHBhcnNlOiBmdW5jdGlvbiAocykgewotICAgICAgICBzID0gcy5yZXBsYWNlKC8tL2csICIrIiku
cmVwbGFjZSgvXy9nLCAiLyIpLnJlcGxhY2UoL1xzL2csICcnKTsKLSAgICAgICAgcmV0dXJuIG5l
dyBVaW50OEFycmF5KEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChhdG9iKHMpLCBmdW5jdGlvbiAo
YykgeyByZXR1cm4gYy5jaGFyQ29kZUF0KDApIH0pKTsKLSAgICB9Ci19OwotCi1pZiAoIWNyeXB0
by5zdWJ0bGUpCi0gICAgY3J5cHRvLnN1YnRsZSA9IGNyeXB0by53ZWJraXRTdWJ0bGU7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3Jlc291cmNlcy9wb3N0TWVzc2FnZS13
b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3Jlc291cmNlcy9wb3N0TWVzc2Fn
ZS13b3JrZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhMGJlYzJjYWIzZmQ2
MzY5ZjZjYzRlMmMxYTMyZTNkYzkyNjM2NTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yZXNvdXJjZXMvcG9z
dE1lc3NhZ2Utd29ya2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotb25tZXNz
YWdlID0gZnVuY3Rpb24oZXZ0KQotewotICAgIHZhciBrZXkgPSBldnQuZGF0YTsKLSAgICBpZiAo
IWtleSkKLSAgICAgICAgcG9zdE1lc3NhZ2UoeyByZXN1bHQ6ZmFsc2UsIG1lc3NhZ2U6J2tleSBp
cyAnICsga2V5IH0pOwotICAgIGlmIChrZXkudHlwZSAhPSAnc2VjcmV0JykKLSAgICAgICAgcG9z
dE1lc3NhZ2UoeyByZXN1bHQ6ZmFsc2UsIG1lc3NhZ2U6J2tleS50eXBlIHNob3VsZCBiZSAic2Vj
cmV0IicgfSk7Ci0gICAgZWxzZSBpZiAoIWtleS5leHRyYWN0YWJsZSkKLSAgICAgICAgcG9zdE1l
c3NhZ2UoeyByZXN1bHQ6ZmFsc2UsIG1lc3NhZ2U6J2tleS5leHRyYWN0YWJsZSBzaG91bGQgYmUg
dHJ1ZScgfSk7Ci0gICAgZWxzZSBpZiAoa2V5LmFsZ29yaXRobS5uYW1lICE9ICJITUFDIikKLSAg
ICAgICAgcG9zdE1lc3NhZ2UoeyByZXN1bHQ6ZmFsc2UsIG1lc3NhZ2U6J2tleS5hbGdvcml0aG0u
bmFtZSBzaG91bGQgYmUgIkhNQUMiJyB9KTsKLSAgICBlbHNlIGlmIChrZXkudXNhZ2VzLnRvU3Ry
aW5nKCkgIT0gImRlY3J5cHQsZW5jcnlwdCxzaWduLHZlcmlmeSIpCi0gICAgICAgIHBvc3RNZXNz
YWdlKHsgcmVzdWx0OmZhbHNlLCBtZXNzYWdlOidrZXkudXNhZ2VzIHNob3VsZCBiZSBbImRlY3J5
cHQiLCAiZW5jcnlwdCIsICJzaWduIiwgInZlcmlmeSJdJyB9KTsKLSAgICBlbHNlCi0gICAgICAg
IHBvc3RNZXNzYWdlKHsgcmVzdWx0OnRydWUsIGtleTprZXkgfSk7Ci19CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3Jlc291cmNlcy9yc2EtaW5kZXhlZGRiLW5vbi1leHBv
cnRhYmxlLmpzIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yZXNvdXJjZXMvcnNhLWluZGV4
ZWRkYi1ub24tZXhwb3J0YWJsZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTc2
ZWVmMjMwMmFmMmYwNmIzYzIwZTA2ZTNjYjU3OTY2ZDRkOTc4YS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3Jl
c291cmNlcy9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLmpzCisrKyAvZGV2L251bGwKQEAg
LTEsNjEgKzAsMCBAQAotZGVzY3JpcHRpb24oIlRlc3Qgc3RvcmluZyBhIHByaXZhdGUgUlNBIGtl
eSBpbiBJbmRleGVkREIsIGFuZCByZXRyaWV2aW5nIGl0LiIpOwotCi1qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKLQotdmFyIHByaXZhdGVLZXlKU09OID0gewotICAgIGt0eTogIlJTQSIsCi0gICAgYWxn
OiAiUlMyNTYiLAotICAgIG46ICJyY0NVQ3Y3T2MxSFZhbTFESWhDenFrblRoV2F3T3A4UUxrOFpp
eTJwMTBCeWpRRkNham9GaXl1QVdsLVIxV1haYWY0eGl0TFJyYWNUOWFncHpJemMtTWJMU0hJR2dX
UUdPMjFsR2lJbXk1ZnRaLUQ4YkhBcVJ6MnkxNXB6RDRjNENFb3U3WFNTTERvUm5SMFFHNU1zRGhE
NnMyZ1Y5bXdIa3J0a0N4dE1XZEJpLTc3YXM4d0dtbE5SbGRjT1NnWkRMSzhVbkNTZ0ExT2d1Wjk4
OWJGeWM4dE9PRUliMHhVU2ZQU3ozTFBTQ255WXo2OGFEam1LVmVOSC1pZzg1N09TY3lXYkd5RXkz
Qml3NjRxdW4zanVVbE5Xc0ozem5na09kdGVZV3l0eDVRcjRYS05zNlItTXl5cTcyS1VwMDJtSkRa
aWl5aWdseE1MX2kzLV9DZWVjQ3ciLAotICAgIGU6ICJBUUFCIiwKLSAgICBkOiAiZU5MUzM3YUN6
N1JYU05QRF9EdExCSjZqNVQ4Y1N4ZHpSQkNqUGFJNldjR3FKcDE2bHEzVVR3dW9ETEFxbEE5b0dZ
bTIzOGRzSVdwdXVjUF9sUXRiV2UtN1NweG9JNl92bVlHZjdZVlVIdjEtREY5cWlPbVNyTW1keE1u
Vk96WVhZOFJhVDZ0aFBqbl9KNWNmTFYyeElfTHdzck10bXBkU3lObGdYMHpUVWh3dHVhaGdBS01F
Q2hZakgyRW5qSGRIdzZzWTItd0FwZGNRSTdVTEUwb281UnpiUVpwbXVoY045aGlCYzBMM2hoRjBx
bzUwbWJsMDJfNjVfR1E3RHBWa1hCeE5nUkJMemxQYWJtenpHMm9BaGZlZkxnWW1TQzFvcGFDa1hF
NnZSV1FOV05MNDVSWk5aRllNM3VvSmdoT01xR2VvY00wQnBqZENoSHJQT2xGdlNRIiwKLSAgICBw
OiAiNG1pVHVBaktNZUg1dUo1S0IzOTdRVXdoYmtZRWdTYmNBMm1pZm1Ta3ZFMjAxOGdiNTVxa0JI
SzFlVnJ5ZjFfbTQzTE5sYzZPX2FrNmdmemRaSVp2UzVOQ0dqUGwwcTA5cGxVcHU4cUZPU3NwQndB
NjdxR0g3NmxGbFpMbl9kNHlnbFM3d2ZMcnU0XzVZczhxTExzLURxVkx2aXdwb3NPbnl5V3F3TTVB
WHAwIiwKLSAgICBxOiAieEhZcnpraXZ0bW56X3NHY2huV0djMHEtcERPa0tpY3B0UnB2MnBNRklJ
WHhuRlg1YU1lRVhJWmpWdWpYdHdVeTFVbEZJTjJHWkpTdnk1S0o3OW11X1h5Tm5GSE16ZWRILUEz
ZWUzdThoMVVVclpGLXZVdTFfZTRVX3g2N05OMWRlZHpVU0t5bk43cEZsM09rdVNoTUJXR1YtY3d6
T1BkY1ZBZlZ1Wmx4VU1jIiwKLSAgICBkcDogImZCekR6WURVQm1CUUdvcDdIbjBkdmZfVDI3VjZS
cXBjdFdvMDc0Q1FaY0ZiUDJhdEZWdEtTajN2aVdUM3hpZDJWSHpjZ2lESGRmcE0zbkVWbEVPMXd3
SW9uR0NTdmRqR0VPWmlpRlZPanJaQU9WeEE4Z3VPanl5RnZxYlhrZTA2VndQSUlWdmZLZVNVMnp1
aGJQX18xdHQ2Rl9meG93NEtiMnhvbkdUMEdHayIsCi0gICAgZHE6ICJqbUUyRGlJUGRod0RnTFhB
UXBJYUJxUTgxYk8zWGZWVF9MUlVMQXd3d3dsUHVRVjE0OEgwNHpsaDlUSjZZMkdaSFlva1YxVTBl
T0JwSnhma2I3ZExZdHBKcHVpQmpSZjR5SVVFb0dsa2tJX1FsSm5GU0ZyLVlqR1JkZk5IcVdCa3hs
U01aTDc3MFI5bUlBVG5kR2tIN3o1eC1yOUt3QlpGQzRGQ0cyaGdfekUiLAotICAgIHFpOiAiWUNY
X3BMd2JNQkExVGhWSDBXY3dtbnl0cU5jck1DRXdUbTdCeUEyZVU2bldiUXJVTHZmN205X2t6ZkxV
Y2pzbnBBVmxCUUc1Sk1YTXkwU3E0cHR3Ynl3c2E1LUc4S0FPT09SMkwzdjRoQy1FeXM5ZnRnRk1f
M2kwbzQwZWVRSDRiM2hhUGJudHJJZU1nOEl6bE91VllLZjktMlF1S0RvV2VSZGQ3TnNkeFRrIgot
fTsKLQotY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpT
T04uc3RyaW5naWZ5KHByaXZhdGVLZXlKU09OKSksIG51bGwsIGZhbHNlLCBbInNpZ24iLCAidmVy
aWZ5Il0pLnRoZW4oZnVuY3Rpb24oa2V5KSB7Ci0gICAgdmFyIG9wZW5SZXF1ZXN0ID0gaW5kZXhl
ZERCLm9wZW4oImNyeXB0b19zdWJ0bGUiKTsKLSAgICBvcGVuUmVxdWVzdC5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihldmVudCkgewotICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBldmVudC50
YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJyc2EtaW5kZXhlZGRiIik7Ci0gICAgfQot
ICAgIG9wZW5SZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgewotICAgICAgICB0ZXN0
RmFpbGVkKCJDb3VsZCBub3Qgb3BlbiBkYXRhYmFzZTogIiArIGV2ZW50LnRhcmdldC5lcnJvci5u
YW1lKTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgfQotICAgIG9wZW5SZXF1ZXN0Lm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJl
c3VsdDsKLSAgICAgICAgc3RvcmVLZXkoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdG9yZUtl
eSgpIHsKLSAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGIudHJhbnNhY3Rpb24oInJzYS1pbmRl
eGVkZGIiLCAicmVhZHdyaXRlIikub2JqZWN0U3RvcmUoInJzYS1pbmRleGVkZGIiKTsKLSAgICAg
ICAgdmFyIHJlcSA9IG9iamVjdFN0b3JlLnB1dChrZXksICJteWtleSIpOwotICAgICAgICByZXEu
b25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb3Vs
ZCBub3QgcHV0IGEga2V5IGludG8gZGF0YWJhc2U6ICIgKyBldmVudC50YXJnZXQuZXJyb3IubmFt
ZSk7Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfQotICAgICAgICByZXEu
b25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsgcmVhZEtleSgpOyB9Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gcmVhZEtleSgpIHsKLSAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGIudHJhbnNh
Y3Rpb24oInJzYS1pbmRleGVkZGIiKS5vYmplY3RTdG9yZSgicnNhLWluZGV4ZWRkYiIpOwotICAg
ICAgICB2YXIgcmVxID0gb2JqZWN0U3RvcmUuZ2V0KCJteWtleSIpOwotICAgICAgICByZXEub25l
cnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb3VsZCBu
b3QgZ2V0IGEga2V5IGZyb20gZGF0YWJhc2U6ICIgKyBldmVudC50YXJnZXQuZXJyb3IubmFtZSk7
Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfQotICAgICAgICByZXEub25z
dWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHdpbmRvdy5yZXRyaWV2ZWRL
ZXkgPSBldmVudC50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgc2hvdWxkQmUoInJldHJpZXZl
ZEtleS50eXBlIiwgIidwcml2YXRlJyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoInJldHJpZXZl
ZEtleS5leHRyYWN0YWJsZSIsICJmYWxzZSIpOwotICAgICAgICAgICAgc2hvdWxkQmUoInJldHJp
ZXZlZEtleS5hbGdvcml0aG0ubmFtZSIsICInUlNBU1NBLVBLQ1MxLXYxXzUnIik7Ci0gICAgICAg
ICAgICBzaG91bGRCZSgicmV0cmlldmVkS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIiwgIjIw
NDgiKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKHJldHJpZXZlZEtl
eS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwgIicwMTAwMDEnIik7Ci0gICAgICAgICAgICBz
aG91bGRCZSgicmV0cmlldmVkS2V5LnVzYWdlcyIsICdbInNpZ24iLCAidmVyaWZ5Il0nKTsKLQot
ICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgIH0KLSAgICB9Ci19KTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcmVzb3VyY2VzL3JzYS1pbmRleGVkZGIu
anMgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3Jlc291cmNlcy9yc2EtaW5kZXhlZGRiLmpz
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMTEyNDE2MzRkYjkzZjk0YjlhOWNmNmNi
OWY1NGM3YjY3MDNjODQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcmVzb3VyY2VzL3JzYS1pbmRleGVkZGIu
anMKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi1kZXNjcmlwdGlvbigiVGVzdCBzdG9y
aW5nIGEgcHJpdmF0ZSBSU0Ega2V5IGluIEluZGV4ZWREQiwgYW5kIHJldHJpZXZpbmcgaXQuIik7
Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIgcHJpdmF0ZUtleUpTT04gPSB7Ci0gICAg
a3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSUzI1NiIsCi0gICAgbjogInJjQ1VDdjdPYzFIVmFtMURJ
aEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJh
Y1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0Vv
dTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNP
U2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtW
ZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhL
TnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCi0gICAgZTogIkFRQUIi
LAotICAgIGQ6ICJlTkxTMzdhQ3o3UlhTTlBEX0R0TEJKNmo1VDhjU3hkelJCQ2pQYUk2V2NHcUpw
MTZscTNVVHd1b0RMQXFsQTlvR1ltMjM4ZHNJV3B1dWNQX2xRdGJXZS03U3B4b0k2X3ZtWUdmN1lW
VUh2MS1ERjlxaU9tU3JNbWR4TW5WT3pZWFk4UmFUNnRoUGpuX0o1Y2ZMVjJ4SV9Md3NyTXRtcGRT
eU5sZ1gwelRVaHd0dWFoZ0FLTUVDaFlqSDJFbmpIZEh3NnNZMi13QXBkY1FJN1VMRTBvbzVSemJR
WnBtdWhjTjloaUJjMEwzaGhGMHFvNTBtYmwwMl82NV9HUTdEcFZrWEJ4TmdSQkx6bFBhYm16ekcy
b0FoZmVmTGdZbVNDMW9wYUNrWEU2dlJXUU5XTkw0NVJaTlpGWU0zdW9KZ2hPTXFHZW9jTTBCcGpk
Q2hIclBPbEZ2U1EiLAotICAgIHA6ICI0bWlUdUFqS01lSDV1SjVLQjM5N1FVd2hia1lFZ1NiY0Ey
bWlmbVNrdkUyMDE4Z2I1NXFrQkhLMWVWcnlmMV9tNDNMTmxjNk9fYWs2Z2Z6ZFpJWnZTNU5DR2pQ
bDBxMDlwbFVwdThxRk9Tc3BCd0E2N3FHSDc2bEZsWkxuX2Q0eWdsUzd3ZkxydTRfNVlzOHFMTHMt
RHFWTHZpd3Bvc09ueXlXcXdNNUFYcDAiLAotICAgIHE6ICJ4SFlyemtpdnRtbnpfc0djaG5XR2Mw
cS1wRE9rS2ljcHRScHYycE1GSUlYeG5GWDVhTWVFWElaalZ1alh0d1V5MVVsRklOMkdaSlN2eTVL
Sjc5bXVfWHlObkZITXplZEgtQTNlZTN1OGgxVVVyWkYtdlV1MV9lNFVfeDY3Tk4xZGVkelVTS3lu
TjdwRmwzT2t1U2hNQldHVi1jd3pPUGRjVkFmVnVabHhVTWMiLAotICAgIGRwOiAiZkJ6RHpZRFVC
bUJRR29wN0huMGR2Zl9UMjdWNlJxcGN0V28wNzRDUVpjRmJQMmF0RlZ0S1NqM3ZpV1QzeGlkMlZI
emNnaURIZGZwTTNuRVZsRU8xd3dJb25HQ1N2ZGpHRU9aaWlGVk9qclpBT1Z4QThndU9qeXlGdnFi
WGtlMDZWd1BJSVZ2ZktlU1UyenVoYlBfXzF0dDZGX2Z4b3c0S2IyeG9uR1QwR0drIiwKLSAgICBk
cTogImptRTJEaUlQZGh3RGdMWEFRcElhQnFRODFiTzNYZlZUX0xSVUxBd3d3d2xQdVFWMTQ4SDA0
emxoOVRKNlkyR1pIWW9rVjFVMGVPQnBKeGZrYjdkTFl0cEpwdWlCalJmNHlJVUVvR2xra0lfUWxK
bkZTRnItWWpHUmRmTkhxV0JreGxTTVpMNzcwUjltSUFUbmRHa0g3ejV4LXI5S3dCWkZDNEZDRzJo
Z196RSIsCi0gICAgcWk6ICJZQ1hfcEx3Yk1CQTFUaFZIMFdjd21ueXRxTmNyTUNFd1RtN0J5QTJl
VTZuV2JRclVMdmY3bTlfa3pmTFVjanNucEFWbEJRRzVKTVhNeTBTcTRwdHdieXdzYTUtRzhLQU9P
T1IyTDN2NGhDLUV5czlmdGdGTV8zaTBvNDBlZVFINGIzaGFQYm50ckllTWc4SXpsT3VWWUtmOS0y
UXVLRG9XZVJkZDdOc2R4VGsiCi19OwotCi1jcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwg
YXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHJpdmF0ZUtleUpTT04pKSwgbnVsbCwg
dHJ1ZSwgWyJzaWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKGtleSkgewotICAgIHZhciBv
cGVuUmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKCJjcnlwdG9fc3VidGxlIik7Ci0gICAgb3BlblJl
cXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgdmFyIG9i
amVjdFN0b3JlID0gZXZlbnQudGFyZ2V0LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSgicnNhLWlu
ZGV4ZWRkYiIpOwotICAgIH0KLSAgICBvcGVuUmVxdWVzdC5vbmVycm9yID0gZnVuY3Rpb24oZXZl
bnQpIHsKLSAgICAgICAgdGVzdEZhaWxlZCgiQ291bGQgbm90IG9wZW4gZGF0YWJhc2U6ICIgKyBl
dmVudC50YXJnZXQuZXJyb3IubmFtZSk7Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgIH0K
LSAgICBvcGVuUmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgewotICAgICAgICBk
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHN0b3JlS2V5KCk7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gc3RvcmVLZXkoKSB7Ci0gICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGRiLnRy
YW5zYWN0aW9uKCJyc2EtaW5kZXhlZGRiIiwgInJlYWR3cml0ZSIpLm9iamVjdFN0b3JlKCJyc2Et
aW5kZXhlZGRiIik7Ci0gICAgICAgIHZhciByZXEgPSBvYmplY3RTdG9yZS5wdXQoa2V5LCAibXlr
ZXkiKTsKLSAgICAgICAgcmVxLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgewotICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiQ291bGQgbm90IHB1dCBhIGtleSBpbnRvIGRhdGFiYXNlOiAiICsgZXZl
bnQudGFyZ2V0LmVycm9yLm5hbWUpOwotICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAg
ICAgIH0KLSAgICAgICAgcmVxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7IHJlYWRLZXko
KTsgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJlYWRLZXkoKSB7Ci0gICAgICAgIHZhciBvYmpl
Y3RTdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCJyc2EtaW5kZXhlZGRiIikub2JqZWN0U3RvcmUoInJz
YS1pbmRleGVkZGIiKTsKLSAgICAgICAgdmFyIHJlcSA9IG9iamVjdFN0b3JlLmdldCgibXlrZXki
KTsKLSAgICAgICAgcmVxLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAg
dGVzdEZhaWxlZCgiQ291bGQgbm90IGdldCBhIGtleSBmcm9tIGRhdGFiYXNlOiAiICsgZXZlbnQu
dGFyZ2V0LmVycm9yLm5hbWUpOwotICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAg
IH0KLSAgICAgICAgcmVxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAg
ICB3aW5kb3cucmV0cmlldmVkS2V5ID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAg
IHNob3VsZEJlKCJyZXRyaWV2ZWRLZXkudHlwZSIsICIncHJpdmF0ZSciKTsKLSAgICAgICAgICAg
IHNob3VsZEJlKCJyZXRyaWV2ZWRLZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIpOwotICAgICAgICAg
ICAgc2hvdWxkQmUoInJldHJpZXZlZEtleS5hbGdvcml0aG0ubmFtZSIsICInUlNBU1NBLVBLQ1Mx
LXYxXzUnIik7Ci0gICAgICAgICAgICBzaG91bGRCZSgicmV0cmlldmVkS2V5LmFsZ29yaXRobS5t
b2R1bHVzTGVuZ3RoIiwgIjIwNDgiKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJieXRlc1RvSGV4
U3RyaW5nKHJldHJpZXZlZEtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwgIicwMTAwMDEn
Iik7Ci0gICAgICAgICAgICBzaG91bGRCZSgicmV0cmlldmVkS2V5LnVzYWdlcyIsICdbInNpZ24i
LCAidmVyaWZ5Il0nKTsKLQotICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgIH0K
LSAgICB9Ci19KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWV4
cG9ydC1nZW5lcmF0ZWQta2V5cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL3JzYS1leHBvcnQtZ2VuZXJhdGVkLWtleXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA1NDRiODQ3NDY2N2M1MmE0ODg5YzgxOGQ3ZDY5Y2ZmMTE1MzQ1YTM4
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2NyeXB0by9zdWJ0bGUvcnNhLWV4cG9ydC1nZW5lcmF0ZWQta2V5cy1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1UZXN0IGV4cG9ydGluZyBhIGdlbmVyYXRl
ZCBSU0Ega2V5cGFpciB3aXRoIGhhc2guCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQot
Ci0KLUdlbmVyYXRpbmcgUlNBLVBLQ1MxLXYxLjUga2V5UGFpci4uLgotUEFTUyBjcnlwdG8uc3Vi
dGxlLmV4cG9ydEtleShudWxsLCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVua25v
d24ga2V5IGZvcm1hdC4KLVBBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkodW5kZWZpbmVkLCBr
ZXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVua25vd24ga2V5IGZvcm1hdC4KLVBBU1Mg
Y3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoe30sIGtleSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVW5rbm93biBrZXkgZm9ybWF0LgotUEFTUyBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgiIiwg
a2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQuCi1QQVNT
IGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJmb29iYXIiLCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IFVua25vd24ga2V5IGZvcm1hdC4KLVBBU1Mga2V5LnB1YmxpY0tleS5hbGdvcml0
aG0uaGFzaC5uYW1lIGlzIGRlZmluZWQuCi1QQVNTIGtleS5wcml2YXRlS2V5LmFsZ29yaXRobS5o
YXNoLm5hbWUgaXMgZGVmaW5lZC4KLQotRXhwb3J0aW5nIHB1YmxpYyBrZXkgYXMgSldLLi4uCi1Q
QVNTIGV4cG9ydGVkSldLLmt0eSBpcyAnUlNBJwotUEFTUyBleHBvcnRlZEpXSy5hbGcgaXMgJ1JT
MjU2JwotUEFTUyBleHBvcnRlZEpXSy5leHQgaXMgdHJ1ZQotUEFTUyBleHBvcnRlZEpXSy51c2Ug
aXMgdW5kZWZpbmVkCi1QQVNTIGV4cG9ydGVkSldLLmtleV9vcHMgaXMgWydzaWduJywgJ3Zlcmlm
eSddCi0KLUV4cG9ydGluZyBwcml2YXRlIGtleSBhcyBKV0suLi4KLVBBU1MgZXhwb3J0ZWRKV0su
a3R5IGlzICdSU0EnCi1QQVNTIGV4cG9ydGVkSldLLmFsZyBpcyAnUlMyNTYnCi1QQVNTIGV4cG9y
dGVkSldLLmV4dCBpcyB0cnVlCi1QQVNTIGV4cG9ydGVkSldLLnVzZSBpcyB1bmRlZmluZWQKLVBB
U1MgZXhwb3J0ZWRKV0sua2V5X29wcyBpcyBbJ3NpZ24nLCAndmVyaWZ5J10KLVBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1leHBvcnQtZ2VuZXJhdGVkLWtleXMuaHRtbCBiL0xh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWV4cG9ydC1nZW5lcmF0ZWQta2V5cy5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZTI2N2VmNzY2YjBmMjM1NjliMWNhMjY5MTY0
YTE3ZTcyODFmZjYzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWV4cG9ydC1nZW5lcmF0ZWQta2V5cy5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBleHBvcnRpbmcgYSBnZW5l
cmF0ZWQgUlNBIGtleXBhaXIgd2l0aCBoYXNoLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
LQotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLQotdmFyIGFsZ29yaXRobSA9IHsKLSAgICBuYW1l
OiAiUlNBU1NBLVBLQ1MxLXYxXzUiLAotICAgIG1vZHVsdXNMZW5ndGg6ICIyMDQ4IiwKLSAgICBw
dWJsaWNFeHBvbmVudDogbmV3IFVpbnQ4QXJyYXkoWzEsIDAsIDFdKSwgLy8gMl4xNiArIDEgKDY1
NTM3KQotICAgIGhhc2g6IHsgbmFtZTogIlNIQS0yNTYiIH0KLX07Ci0KLWRlYnVnKCJcbkdlbmVy
YXRpbmcgUlNBLVBLQ1MxLXYxLjUga2V5UGFpci4uLiIpOwotY3J5cHRvLnN1YnRsZS5nZW5lcmF0
ZUtleShhbGdvcml0aG0sIGV4dHJhY3RhYmxlLCBbJ3NpZ24nLCAndmVyaWZ5J10pCi0udGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKLSAgICBrZXkgPSByZXN1bHQ7Ci0KLSAgICBzaG91bGRUaHJvdygn
Y3J5cHRvLnN1YnRsZS5leHBvcnRLZXkobnVsbCwga2V5KScpOwotICAgIHNob3VsZFRocm93KCdj
cnlwdG8uc3VidGxlLmV4cG9ydEtleSh1bmRlZmluZWQsIGtleSknKTsKLSAgICBzaG91bGRUaHJv
dygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoe30sIGtleSknKTsKLSAgICBzaG91bGRUaHJvdygn
Y3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoIiIsIGtleSknKTsKLSAgICBzaG91bGRUaHJvdygnY3J5
cHRvLnN1YnRsZS5leHBvcnRLZXkoImZvb2JhciIsIGtleSknKTsKLSAgICBzaG91bGRCZURlZmlu
ZWQoJ2tleS5wdWJsaWNLZXkuYWxnb3JpdGhtLmhhc2gubmFtZScpOwotICAgIHNob3VsZEJlRGVm
aW5lZCgna2V5LnByaXZhdGVLZXkuYWxnb3JpdGhtLmhhc2gubmFtZScpOwotCi0gICAgZGVidWco
IlxuRXhwb3J0aW5nIHB1YmxpYyBrZXkgYXMgSldLLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5z
dWJ0bGUuZXhwb3J0S2V5KCJqd2siLCBrZXkucHVibGljS2V5KTsKLX0pLnRoZW4oZnVuY3Rpb24o
cmVzdWx0KSB7Ci0gICAgZXhwb3J0ZWRKV0sgPSBKU09OLnBhcnNlKGJ5dGVzVG9BU0NJSVN0cmlu
ZyhyZXN1bHQpKTsKLQotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rdHkiLCAiJ1JTQSciKTsK
LSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suYWxnIiwgIidSUzI1NiciKTsKLSAgICBzaG91bGRC
ZSgiZXhwb3J0ZWRKV0suZXh0IiwgInRydWUiKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0su
dXNlIiwgInVuZGVmaW5lZCIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rZXlfb3BzIiwg
Ilsnc2lnbicsICd2ZXJpZnknXSIpOwotCi0gICAgZGVidWcoIlxuRXhwb3J0aW5nIHByaXZhdGUg
a2V5IGFzIEpXSy4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgiandr
Iiwga2V5LnByaXZhdGVLZXkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBleHBv
cnRlZEpXSyA9IEpTT04ucGFyc2UoYnl0ZXNUb0FTQ0lJU3RyaW5nKHJlc3VsdCkpOwotCi0gICAg
c2hvdWxkQmUoImV4cG9ydGVkSldLLmt0eSIsICInUlNBJyIpOwotICAgIHNob3VsZEJlKCJleHBv
cnRlZEpXSy5hbGciLCAiJ1JTMjU2JyIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5leHQi
LCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy51c2UiLCAidW5kZWZpbmVkIik7
Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmtleV9vcHMiLCAiWydzaWduJywgJ3ZlcmlmeSdd
Iik7Ci0KLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWV4cG9ydC1r
ZXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0LWtl
eS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlZTdiN2FjZjYz
OGM5NmM5ODZkNjE4Yzc2YmRlN2Q4Mzk3ODQ1NzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0
LWtleS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1UZXN0IGV4
cG9ydGluZyBhbiBSU0Ega2V5LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotCi1J
bXBvcnRpbmcgYSBKV0sga2V5Li4uCi1QQVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KG51bGws
IGtleSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0LgotUEFT
UyBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSh1bmRlZmluZWQsIGtleSkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0LgotUEFTUyBjcnlwdG8uc3VidGxlLmV4cG9y
dEtleSh7fSwga2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtleSBmb3Jt
YXQuCi1QQVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCIiLCBrZXkpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IFVua25vd24ga2V5IGZvcm1hdC4KLVBBU1MgY3J5cHRvLnN1YnRsZS5leHBv
cnRLZXkoImZvb2JhciIsIGtleSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVW5rbm93biBr
ZXkgZm9ybWF0LgotCi1FeHBvcnRpbmcgdGhlIGtleSBhcyBKV0suLi4KLVBBU1MgZXhwb3J0ZWRK
V0sua3R5IGlzICdSU0EnCi1QQVNTIGV4cG9ydGVkSldLLm4gaXMgcHVibGljS2V5SlNPTi5uCi1Q
QVNTIGV4cG9ydGVkSldLLmUgaXMgcHVibGljS2V5SlNPTi5lCi1QQVNTIGV4cG9ydGVkSldLLmFs
ZyBpcyAnUlMyNTYnCi1QQVNTIGV4cG9ydGVkSldLLmV4dCBpcyB0cnVlCi1QQVNTIGV4cG9ydGVk
SldLLnVzZSBpcyB1bmRlZmluZWQKLVBBU1MgZXhwb3J0ZWRKV0sua2V5X29wcyBpcyBbJ3NpZ24n
LCAndmVyaWZ5J10KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01Q
TEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1leHBvcnQt
a2V5Lmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1leHBvcnQta2V5Lmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxNjViY2ZmZGEyMWRhNjkyZWI1YWFkODhj
NmM1NDU3MDUxODRmMTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0LWtleS5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBleHBvcnRpbmcgYW4gUlNBIGtleS4iKTsK
LQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci12YXIg
bm9uRXh0cmFjdGFibGUgPSBmYWxzZTsKLQotdmFyIHB1YmxpY0tleUpTT04gPSB7Ci0gICAga3R5
OiAiUlNBIiwKLSAgICBhbGc6ICJSUzI1NiIsCi0gICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6
cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5
YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdY
U1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2da
RExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5I
LWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2
Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCi0gICAgZTogIkFRQUIiCi19
OwotCi12YXIgandrS2V5QXNBcnJheUJ1ZmZlciA9IGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3Ry
aW5naWZ5KHB1YmxpY0tleUpTT04pKTsKLQotZGVidWcoIlxuSW1wb3J0aW5nIGEgSldLIGtleS4u
LiIpOwotY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a0tleUFzQXJyYXlCdWZmZXIs
ICJSU0FTU0EtUEtDUzEtdjFfNSIsIGV4dHJhY3RhYmxlLCBbJ3NpZ24nLCAndmVyaWZ5J10pLnRo
ZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0OwotCi0gICAgc2hvdWxkVGhy
b3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KG51bGwsIGtleSknKTsKLSAgICBzaG91bGRUaHJv
dygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkodW5kZWZpbmVkLCBrZXkpJyk7Ci0gICAgc2hvdWxk
VGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KHt9LCBrZXkpJyk7Ci0gICAgc2hvdWxkVGhy
b3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCIiLCBrZXkpJyk7Ci0gICAgc2hvdWxkVGhyb3co
J2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJmb29iYXIiLCBrZXkpJyk7Ci0KLSAgICBkZWJ1Zygi
XG5FeHBvcnRpbmcgdGhlIGtleSBhcyBKV0suLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRs
ZS5leHBvcnRLZXkoImp3ayIsIGtleSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAg
IGV4cG9ydGVkSldLID0gSlNPTi5wYXJzZShieXRlc1RvQVNDSUlTdHJpbmcocmVzdWx0KSk7Ci0K
LSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sua3R5IiwgIidSU0EnIik7Ci0gICAgc2hvdWxkQmUo
ImV4cG9ydGVkSldLLm4iLCAicHVibGljS2V5SlNPTi5uIik7Ci0gICAgc2hvdWxkQmUoImV4cG9y
dGVkSldLLmUiLCAicHVibGljS2V5SlNPTi5lIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldL
LmFsZyIsICInUlMyNTYnIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmV4dCIsICJ0cnVl
Iik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLnVzZSIsICJ1bmRlZmluZWQiKTsKLSAgICBz
aG91bGRCZSgiZXhwb3J0ZWRKV0sua2V5X29wcyIsICJbJ3NpZ24nLCAndmVyaWZ5J10iKTsKLQot
ICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0LXByaXZhdGUt
a2V5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWV4cG9ydC1w
cml2YXRlLWtleS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0
NmVhMzM3YmVjYzliYzE0ZmExODgzODRhYzhiNjg0M2ViZGQ3YmMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9y
c2EtZXhwb3J0LXByaXZhdGUta2V5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI3
ICswLDAgQEAKLVRlc3QgZXhwb3J0aW5nIGEgcHJpdmF0ZSBSU0Ega2V5LgotCi1PbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCi0KLQotCi1JbXBvcnRpbmcgYSBKV0sga2V5Li4uCi0KLUV4cG9ydGlu
ZyB0aGUga2V5IGFzIEpXSy4uLgotUEFTUyBleHBvcnRlZEpXSy5rdHkgaXMgJ1JTQScKLVBBU1Mg
ZXhwb3J0ZWRKV0subiBpcyBwcml2YXRlS2V5SlNPTi5uCi1QQVNTIGV4cG9ydGVkSldLLmUgaXMg
cHJpdmF0ZUtleUpTT04uZQotUEFTUyBleHBvcnRlZEpXSy5kIGlzIHByaXZhdGVLZXlKU09OLmQK
LVBBU1MgZXhwb3J0ZWRKV0sucCBpcyBwcml2YXRlS2V5SlNPTi5wCi1QQVNTIGV4cG9ydGVkSldL
LnEgaXMgcHJpdmF0ZUtleUpTT04ucQotUEFTUyBleHBvcnRlZEpXSy5kcCBpcyBwcml2YXRlS2V5
SlNPTi5kcAotUEFTUyBleHBvcnRlZEpXSy5kcSBpcyBwcml2YXRlS2V5SlNPTi5kcQotUEFTUyBl
eHBvcnRlZEpXSy5xaSBpcyBwcml2YXRlS2V5SlNPTi5xaQotUEFTUyBleHBvcnRlZEpXSy5vdGgg
aXMgcHJpdmF0ZUtleUpTT04ub3RoCi1QQVNTIGV4cG9ydGVkSldLLmFsZyBpcyBwcml2YXRlS2V5
SlNPTi5hbGcKLVBBU1MgZXhwb3J0ZWRKV0suZXh0IGlzIHRydWUKLVBBU1MgZXhwb3J0ZWRKV0su
a2V5X29wcyBpcyBbJ3NpZ24nLCAndmVyaWZ5J10KLVBBU1MgZXhwb3J0ZWRKV0sudXNlIGlzIHVu
ZGVmaW5lZAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRF
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWV4cG9ydC1wcml2
YXRlLWtleS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0LXByaXZh
dGUta2V5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFjMmQ4NzE4MjVhY2E1
MTkwZTY2YzA4MjExYmQwYWRmM2QzZDBlZTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtZXhwb3J0LXBy
aXZhdGUta2V5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IGV4cG9y
dGluZyBhIHByaXZhdGUgUlNBIGtleS4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZh
ciBleHRyYWN0YWJsZSA9IHRydWU7Ci12YXIgbm9uRXh0cmFjdGFibGUgPSBmYWxzZTsKLQotLy8g
RXhhbXBsZSBmcm9tIEpXSyBzcGVjaWZpY2F0aW9uLgotdmFyIHByaXZhdGVLZXlKU09OID0gewot
ICAgICJrdHkiOiJSU0EiLAotICAgICJuIjoiMHZ4N2Fnb2ViR2NRU3V1UGlMSlhacHROOW5uZHJR
bWJYRXBzMmFpQUZiV2hNNzhMaFd4NGNiYmZBQXRWVDg2end1MVJLN2FQRkZ4dWhEUjFMNnRTb2Nf
QkpFQ1BlYldLUlhqQlpDaUZWNG4zb2tuamhNc3RuNjR0Wl8yVy01SnNHWTRIYzVuOXlCWEFyd2w5
M2xxdDdfUk41dzZDZjBoNFF5UTV2LTY1WUdqUVIwX0ZEVzJRdnpxWTM2OFFRTWljQXRhU3F6czhL
SlpnblliOWM3ZDB6Z2RBWkh6dTZxTVF2Ukw1aGFqcm4xbjkxQ2JPcGJJU0QwOHFOTHlyZGt0LWJG
VFdoQUk0dk1RRmg2V2VadTBmTTRsRmQyTmNSd3IzWFBrc0lOSGFRLUdfeEJuaUlxYncwTHMxakY0
NC1jc0ZDdXIta0VnVThhd2FwSnpLbnFES2d3IiwKLSAgICAiZSI6IkFRQUIiLAotICAgICJkIjoi
WDRjVHRlSllfZ240RllQc1hCOHJkWGl4NXZ3c2cxRkxONUUzRWFHNlJKb1ZILUhMTEtEOU03ZHg1
b283R1VSa25jaG5yUndlVWtDN2hUNWZKTE0wV2JGQUtOTFdZMnZ2N0I2TnFYU3pVdnhUMF9ZU2Zx
aWp3cDNSVHpsQmFDeFdwNGRvRms1TjJvOEd5X25ITktyb0FESWtKNDZwUlVvaHNYeXdiUmVBZFlh
TXdGczl0djhkX2NQVlkzaTA3YTN0OE1ONlROd20wZFNhd205djQ3VWlDbDNTazVaaUc3eG9qUEx1
NHNiZzFVMmp4NElCVE5Cem5iSlN6RkhLNjZqVDhiZ2t1cXNrMEdqc2tESmsxOVo0cXdqd2Jzbm40
ajJXQmlpM1JMLVVzMmxHVmtZOGZrRnptZTF6MEhiSWtmejBZNm1xbk9ZdHFjMFg0amZjS29BQzhR
IiwKLSAgICAicCI6IjgzaS03SXZNR1hvTVhDc2t2NzNUS3I4NjM3RmlPN1oyN3p2OG9qNnBiV1VR
eUxQUUJReHRQVm53RDIwUi02MGVURG1EMnVqbk10NVBvcU1ybThSZm1OaFZXRHRqak1tQ01qT3BT
WGljRkhqN1hPdVZJWVF5cVZXbFdFaDZkTjM2R1ZaWWs5M044QmM5dlk0MXh5OEI5Unp6T0dWUXpY
dk5Fdm43TzBuVmJmcyIsCi0gICAgInEiOiIzZGZPUjljdVlxLTBTLW1rRkx6Z0l0Z01FZkZ6QjJx
M2hXZWhNdUcwb0N1cW5iM3ZvYkx5dW1xalZaUU8xZElyZHdnVG5DZHBZekJjT2ZXNXIzNzBBRlhq
aVdmdF9OR0Vpb3Zvbml6aEtwbzlWVlM3OFR6Rmd4a0lkcmVjUmV6c1otMWtZZF9zMXFEYnh0a0RF
Z2ZBSVRBRzlMVW5BRHVuNHZJY2I2eWVseGsiLAotICAgICJkcCI6Ikc0c1BYa2M2WWE5eThvSlc5
X0lMajR4dXBwdTBsemlfSDdWVGtTOHhqNVNkWDNjb0Uwb2ltWXd4SWkyZW1UQXVlMFVPYTVkcGdG
R3lCSjRjOHRRMlZGNDAyWFJ1Z0tEVFA4YWtZaEZvNXRBQTc3UWVfTm10dVlaYzNDM20zSTI0RzJH
dlI1c1NEeFV5QU4yenE4TGZuOUVVbXM2clkzT2I4WWVpS2tUaUJqMCIsCi0gICAgImRxIjoiczls
QUg5ZmdnQnNvRlI4T2FjMlJfRTJndzI4MnJUMmtHT0FodklsbEVURTFlZnJBNmh1VVV2TWZCY01w
bjhscWVXNnZ6em5ZWTVTU1FGN3BNZENfYWdJM25HOElicDFCVWIwSlVpcmFSTnFVZkxoY1FiX2Q5
R0Y0RGg3ZTc0V2JSc29iUm9udWpUWU4xeENhUDZUTzYxanZXclgtTDE4dHhYdzQ5NFFfY2drIiwK
LSAgICAicWkiOiJHeU1fcDZKclh5U2l6MXRvRmdLYldWLUpkSTNqUTR5cHU5cmJNV3gzclFKQmZt
dDBGb1l6Z1VJWkVWRkVjT3F3ZW1STjgxem9EQWFhLUJrMEtXTkdEakpIWkRkRG1GaFczQU43bEkt
cHV4a19tSFpHSjExcnh5UjhPNTVYTFNlM1NQbVJmS3daSTZ5VTI0Wnh2UUtGWUl0ZGxkVUtHek82
SWE2elRLaEFWUlUiLAotICAgICJhbGciOiJSUzI1NiIsCi0gICAgImtpZCI6IjIwMTEtMDQtMjki
Ci19Ci12YXIgandrS2V5QXNBcnJheUJ1ZmZlciA9IGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3Ry
aW5naWZ5KHByaXZhdGVLZXlKU09OKSk7Ci0KLWRlYnVnKCJcbkltcG9ydGluZyBhIEpXSyBrZXku
Li4iKTsKLWNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tLZXlBc0FycmF5QnVmZmVy
LCAiUlNBU1NBLVBLQ1MxLXYxXzUiLCBleHRyYWN0YWJsZSwgWydzaWduJywgJ3ZlcmlmeSddKS50
aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtleSA9IHJlc3VsdDsKLQotICAgIGRlYnVnKCJc
bkV4cG9ydGluZyB0aGUga2V5IGFzIEpXSy4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxl
LmV4cG9ydEtleSgiandrIiwga2V5KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAg
ZXhwb3J0ZWRKV0sgPSBKU09OLnBhcnNlKGJ5dGVzVG9BU0NJSVN0cmluZyhyZXN1bHQpKTsKLQot
ICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rdHkiLCAiJ1JTQSciKTsKLSAgICBzaG91bGRCZSgi
ZXhwb3J0ZWRKV0subiIsICJwcml2YXRlS2V5SlNPTi5uIik7Ci0gICAgc2hvdWxkQmUoImV4cG9y
dGVkSldLLmUiLCAicHJpdmF0ZUtleUpTT04uZSIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpX
Sy5kIiwgInByaXZhdGVLZXlKU09OLmQiKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sucCIs
ICJwcml2YXRlS2V5SlNPTi5wIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLnEiLCAicHJp
dmF0ZUtleUpTT04ucSIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5kcCIsICJwcml2YXRl
S2V5SlNPTi5kcCIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5kcSIsICJwcml2YXRlS2V5
SlNPTi5kcSIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5xaSIsICJwcml2YXRlS2V5SlNP
Ti5xaSIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5vdGgiLCAicHJpdmF0ZUtleUpTT04u
b3RoIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmFsZyIsICJwcml2YXRlS2V5SlNPTi5h
bGciKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suZXh0IiwgInRydWUiKTsKLSAgICBzaG91
bGRCZSgiZXhwb3J0ZWRKV0sua2V5X29wcyIsICJbJ3NpZ24nLCAndmVyaWZ5J10iKTsKLSAgICBz
aG91bGRCZSgiZXhwb3J0ZWRKV0sudXNlIiwgInVuZGVmaW5lZCIpOwotCi0gICAgZmluaXNoSlNU
ZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGIxMmRmZjBhYmU1MzJkOTBmNDQ3NDhkMzZhNDQ3M2E2
ZGNhMGM5Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotVGVzdCBzdG9yaW5nIGEgcHJpdmF0ZSBSU0Ega2V5
IGluIEluZGV4ZWREQiwgYW5kIHJldHJpZXZpbmcgaXQuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KLQotCi1QQVNTIHJldHJpZXZlZEtleS50eXBlIGlzICdwcml2YXRlJwotUEFTUyByZXRy
aWV2ZWRLZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQotUEFTUyByZXRyaWV2ZWRLZXkuYWxnb3JpdGht
Lm5hbWUgaXMgJ1JTQVNTQS1QS0NTMS12MV81JwotUEFTUyByZXRyaWV2ZWRLZXkuYWxnb3JpdGht
Lm1vZHVsdXNMZW5ndGggaXMgMjA0OAotUEFTUyBieXRlc1RvSGV4U3RyaW5nKHJldHJpZXZlZEtl
eS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcwMTAwMDEnCi1QQVNTIHJldHJpZXZlZEtl
eS51c2FnZXMgaXMgWyJzaWduIiwgInZlcmlmeSJdCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRv
L3N1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjNjk0YzIwMmNkNzEzOGMyMTk4
N2RlZWVkZjU4Nzk0YTI4MjQ2MGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1l
eHBvcnRhYmxlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLVRl
c3Qgc3RvcmluZyBhIHByaXZhdGUgUlNBIGtleSBpbiBJbmRleGVkREIsIGFuZCByZXRyaWV2aW5n
IGl0LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyByZXRyaWV2ZWRLZXku
dHlwZSBpcyAncHJpdmF0ZScKLVBBU1MgcmV0cmlldmVkS2V5LmV4dHJhY3RhYmxlIGlzIGZhbHNl
Ci1QQVNTIHJldHJpZXZlZEtleS5hbGdvcml0aG0ubmFtZSBpcyAnUlNBU1NBLVBLQ1MxLXYxXzUn
Ci1QQVNTIHJldHJpZXZlZEtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4Ci1QQVNT
IGJ5dGVzVG9IZXhTdHJpbmcocmV0cmlldmVkS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkg
aXMgJzAxMDAwMScKLVBBU1MgcmV0cmlldmVkS2V5LnVzYWdlcyBpcyBbInNpZ24iLCAidmVyaWZ5
Il0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItbm9uLWV4
cG9ydGFibGUtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUtcHJpdmF0ZS1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjNjk0YzIwMmNkNzEzOGMyMTk4N2RlZWVkZjU4Nzk0
YTI4MjQ2MGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLXBy
aXZhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotVGVzdCBz
dG9yaW5nIGEgcHJpdmF0ZSBSU0Ega2V5IGluIEluZGV4ZWREQiwgYW5kIHJldHJpZXZpbmcgaXQu
Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHJldHJpZXZlZEtleS50eXBl
IGlzICdwcml2YXRlJwotUEFTUyByZXRyaWV2ZWRLZXkuZXh0cmFjdGFibGUgaXMgZmFsc2UKLVBB
U1MgcmV0cmlldmVkS2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScKLVBB
U1MgcmV0cmlldmVkS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIGlzIDIwNDgKLVBBU1MgYnl0
ZXNUb0hleFN0cmluZyhyZXRyaWV2ZWRLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAn
MDEwMDAxJwotUEFTUyByZXRyaWV2ZWRLZXkudXNhZ2VzIGlzIFsic2lnbiIsICJ2ZXJpZnkiXQot
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0
YWJsZS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVk
ZGItbm9uLWV4cG9ydGFibGUtcHJpdmF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBmNjE4Y2FhZDcyNmM2ZWYyZmRkYjJjNGFjZTMxOTlmZTY4MmY2NmI3Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9z
dWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS1wcml2YXRlLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwxNCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0PgotZW5hYmxlUHJpdmF0ZUJyb3dzaW5nID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8v
c3VidGxlL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUuaHRtbCBiL0xheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBjYmJkOWU3N2ExN2MxNzdmNjBkMjAzN2Y3M2JlNTkzNjgzM2M1
NzlhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0
YWJsZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItcHJpdmF0ZS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiMTJkZmYwYWJlNTMyZDkwZjQ0NzQ4
ZDM2YTQ0NzNhNmRjYTBjOTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotVGVzdCBzdG9yaW5n
IGEgcHJpdmF0ZSBSU0Ega2V5IGluIEluZGV4ZWREQiwgYW5kIHJldHJpZXZpbmcgaXQuCi0KLU9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHJldHJpZXZlZEtleS50eXBlIGlzICdw
cml2YXRlJwotUEFTUyByZXRyaWV2ZWRLZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQotUEFTUyByZXRy
aWV2ZWRLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JTQVNTQS1QS0NTMS12MV81JwotUEFTUyByZXRy
aWV2ZWRLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGggaXMgMjA0OAotUEFTUyBieXRlc1RvSGV4
U3RyaW5nKHJldHJpZXZlZEtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcwMTAwMDEn
Ci1QQVNTIHJldHJpZXZlZEtleS51c2FnZXMgaXMgWyJzaWduIiwgInZlcmlmeSJdCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUuaHRtbCBiL0xh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1wcml2YXRlLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0NGNlODhjNzU0MTRkOTdhZTA3ZGVjNWFhY2VhYjk1
ZWVkZWY5N2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQ+Ci1lbmFibGVQcml2YXRlQnJvd3NpbmcgPSB0cnVlOwotPC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yc2EtaW5kZXhlZGRiLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNh
LWluZGV4ZWRkYi5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRi
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyODZlMGY4Njc2ZGM0MjUyYmY3
OWZlNzFjYWU3YmQyMmI2YTZjMTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yc2EtaW5kZXhlZGRiLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9z
dWJ0bGUvcnNhLW9hZXAtZ2VuZXJhdGUtbm9uLWV4dHJhY3RhYmxlLWtleS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1vYWVwLWdlbmVyYXRlLW5vbi1leHRyYWN0
YWJsZS1rZXktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNzli
NDIzOTc5NTlmNjljYjA4NzQ4NGNiYzQ1MzU2MWJmM2U0NTg4Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNh
LW9hZXAtZ2VuZXJhdGUtbm9uLWV4dHJhY3RhYmxlLWtleS1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwyMyArMCwwIEBACi1UZXN0IHRoYXQgZXZlbiB3aGVuIG5vbi1leHRyYWN0YWJp
bGl0eSBpcyByZXF1ZXN0ZWQsIHRoZSBwdWJsaWMga2V5IGlzIHN0aWxsIGV4dHJhY3RhYmxlLgot
Ci1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotR2VuZXJhdGluZyBhIGtleSBwYWlyLi4u
Ci1QQVNTIGtleVBhaXIudG9TdHJpbmcoKSBpcyAnW29iamVjdCBLZXlQYWlyXScKLVBBU1Mga2V5
UGFpci5wdWJsaWNLZXkudHlwZSBpcyAncHVibGljJwotUEFTUyBrZXlQYWlyLnB1YmxpY0tleS5l
eHRyYWN0YWJsZSBpcyB0cnVlCi1QQVNTIGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5uYW1l
IGlzICdSU0EtT0FFUCcKLVBBU1Mga2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm1vZHVsdXNM
ZW5ndGggaXMgMjA0OAotUEFTUyBieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIucHVibGljS2V5LmFs
Z29yaXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKLVBBU1Mga2V5UGFpci5wdWJsaWNL
ZXkuYWxnb3JpdGhtLmhhc2ggaXMgdW5kZWZpbmVkLgotUEFTUyBrZXlQYWlyLnByaXZhdGVLZXku
dHlwZSBpcyAncHJpdmF0ZScKLVBBU1Mga2V5UGFpci5wcml2YXRlS2V5LmV4dHJhY3RhYmxlIGlz
IGZhbHNlCi1QQVNTIGtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ubmFtZSBpcyAnUlNBLU9B
RVAnCi1QQVNTIGtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAy
MDQ4Ci1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcoa2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5w
dWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKLVBBU1Mga2V5UGFpci5wcml2YXRlS2V5LmFsZ29y
aXRobS5oYXNoIGlzIHVuZGVmaW5lZC4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
LQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L3JzYS1vYWVwLWdlbmVyYXRlLW5vbi1leHRyYWN0YWJsZS1rZXkuaHRtbCBiL0xheW91dFRlc3Rz
L2NyeXB0by9zdWJ0bGUvcnNhLW9hZXAtZ2VuZXJhdGUtbm9uLWV4dHJhY3RhYmxlLWtleS5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjODJhNWNiMWMwZWExN2Y4YzRlZTVlZjI2
NDMzYWNjZTU4NmI3Yjc3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLW9hZXAtZ2VuZXJhdGUtbm9uLWV4
dHJhY3RhYmxlLWtleS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgot
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCB0
aGF0IGV2ZW4gd2hlbiBub24tZXh0cmFjdGFiaWxpdHkgaXMgcmVxdWVzdGVkLCB0aGUgcHVibGlj
IGtleSBpcyBzdGlsbCBleHRyYWN0YWJsZS4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0K
LXZhciBhbGdvcml0aG1LZXlHZW4gPSB7Ci0gICAgbmFtZTogIlJTQS1PQUVQIiwKLSAgICAvLyBS
c2FLZXlHZW5QYXJhbXMKLSAgICBtb2R1bHVzTGVuZ3RoOiAyMDQ4LAotICAgIHB1YmxpY0V4cG9u
ZW50OiBuZXcgVWludDhBcnJheShbMHgwMSwgMHgwMCwgMHgwMV0pLCAgLy8gRXF1aXZhbGVudCB0
byA2NTUzNwotfTsKLXZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOwotCi1kZWJ1ZygiR2VuZXJh
dGluZyBhIGtleSBwYWlyLi4uIik7Ci1jcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KGFsZ29yaXRo
bUtleUdlbiwgbm9uRXh0cmFjdGFibGUsIFtdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAg
IGtleVBhaXIgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIudG9TdHJpbmcoKSIsICIn
W29iamVjdCBLZXlQYWlyXSciKTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wdWJsaWNLZXkudHlw
ZSIsICIncHVibGljJyIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tleS5leHRyYWN0
YWJsZSIsICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHVibGljS2V5LmFsZ29yaXRo
bS5uYW1lIiwgIidSU0EtT0FFUCciKTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wdWJsaWNLZXku
YWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOwotICAgIHNob3VsZEJlKCJieXRlc1Rv
SGV4U3RyaW5nKGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAi
JzAxMDAwMSciKTsKLSAgICBzaG91bGRCZVVuZGVmaW5lZCgia2V5UGFpci5wdWJsaWNLZXkuYWxn
b3JpdGhtLmhhc2giKTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wcml2YXRlS2V5LnR5cGUiLCAi
J3ByaXZhdGUnIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHJpdmF0ZUtleS5leHRyYWN0YWJs
ZSIsICJmYWxzZSIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGht
Lm5hbWUiLCAiJ1JTQS1PQUVQJyIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnByaXZhdGVLZXku
YWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOwotICAgIHNob3VsZEJlKCJieXRlc1Rv
SGV4U3RyaW5nKGtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwg
IicwMTAwMDEnIik7Ci0gICAgc2hvdWxkQmVVbmRlZmluZWQoImtleVBhaXIucHJpdmF0ZUtleS5h
bGdvcml0aG0uaGFzaCIpOwotCi0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0Pgot
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L3JzYS1vYWVwLWtleS1tYW5pcHVsYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9yc2Etb2FlcC1rZXktbWFuaXB1bGF0aW9uLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmQ1YjM4Mzg2ZGIyNTE5YTVmYjIyODgzMTBmMzM2Nzc5
ZDAwZTVkMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1vYWVwLWtleS1tYW5pcHVsYXRpb24tZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotVGVzdCBnZW5lcmF0aW5nLCBp
bXBvcnRpbmcgYW5kIGV4cG9ydGluZyBSU0Ega2V5cyBmb3IgUlNBLU9BRVAuIFRlc3QgdGhhdCB0
aGV5IGNhbid0IGJlIHVzZWQgd2l0aCBhbm90aGVyIGFsZ29yaXRobS4KLQotT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgotCi0KLUdlbmVyYXRpbmcgYSBrZXkgcGFpci4uLgotUEFTUyBrZXlQYWly
LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgS2V5UGFpcl0nCi1QQVNTIGtleVBhaXIucHVibGljS2V5
LnR5cGUgaXMgJ3B1YmxpYycKLVBBU1Mga2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUg
aXMgJ1JTQS1PQUVQJwotUEFTUyBrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0ubW9kdWx1c0xl
bmd0aCBpcyAyMDQ4Ci1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcoa2V5UGFpci5wdWJsaWNLZXkuYWxn
b3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJwotUEFTUyBrZXlQYWlyLnB1YmxpY0tl
eS5hbGdvcml0aG0uaGFzaCBpcyB1bmRlZmluZWQuCi1QQVNTIGtleVBhaXIucHJpdmF0ZUtleS50
eXBlIGlzICdwcml2YXRlJwotUEFTUyBrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLm5hbWUg
aXMgJ1JTQS1PQUVQJwotUEFTUyBrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLm1vZHVsdXNM
ZW5ndGggaXMgMjA0OAotUEFTUyBieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIucHJpdmF0ZUtleS5h
bGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcwMTAwMDEnCi1QQVNTIGtleVBhaXIucHJpdmF0
ZUtleS5hbGdvcml0aG0uaGFzaCBpcyB1bmRlZmluZWQuCi0KLVRlc3RpbmcgdGhhdCB0aGUga2V5
cyBjYW4ndCBiZSB1c2VkIHdpdGggZGlmZmVyZW50IGFsZ29yaXRobXMuLi4KLVBBU1MgY3J5cHRv
LnN1YnRsZS5lbmNyeXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtleVBhaXIucHJpdmF0
ZUtleSwgaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMCIpKSB0aHJldyBleGNlcHRpb24gTm90U3Vw
cG9ydGVkRXJyb3IgKERPTSBFeGNlcHRpb24gOSk6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBv
cnRlZC4uCi1QQVNTIGNyeXB0by5zdWJ0bGUuZW5jcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjog
aXZ9LCBrZXlQYWlyLnB1YmxpY0tleSwgaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMCIpKSB0aHJl
dyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3IgKERPTSBFeGNlcHRpb24gOSk6IFRoZSBvcGVy
YXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi0KLVRyeWluZyB0byBleHBvcnQga2V5cyB0byByYXcu
Li4KLVBBU1MgUHJvbWlzZSByZWplY3RlZCBmb3IgZXhwb3J0aW5nIHB1YmxpYyBrZXkKLVBBU1Mg
UHJvbWlzZSByZWplY3RlZCBmb3IgZXhwb3J0aW5nIHByaXZhdGUga2V5Ci0KLUV4cG9ydGluZyBw
dWJsaWMga2V5IHRvIEpXSy4uLgotUEFTUyBqd2tQdWJsaWNLZXkuYWxnIGlzICdSU0EtT0FFUCcK
LVBBU1MgandrUHVibGljS2V5LmV4dCBpcyB0cnVlCi1QQVNTIGp3a1B1YmxpY0tleS5rZXlfb3Bz
IGlzIFsnZW5jcnlwdCcsICdkZWNyeXB0JywgJ3dyYXBLZXknLCAndW53cmFwS2V5J10KLVBBU1Mg
andrUHVibGljS2V5LnVzZSBpcyB1bmRlZmluZWQKLVBBU1MgandrUHVibGljS2V5Lmt0eSBpcyAn
UlNBJwotUEFTUyBieXRlc1RvSGV4U3RyaW5nKEJhc2U2NFVSTC5wYXJzZShqd2tQdWJsaWNLZXku
ZSkpIGlzICcwMTAwMDEnCi0KLUltcG9ydGluZyBpdCBiYWNrLi4uCi1QQVNTIGV4cG9ydGVkUHVi
bGljS2V5LnR5cGUgaXMgJ3B1YmxpYycKLVBBU1MgZXhwb3J0ZWRQdWJsaWNLZXkuYWxnb3JpdGht
Lm5hbWUgaXMgJ1JTQS1PQUVQJwotUEFTUyBleHBvcnRlZFB1YmxpY0tleS5hbGdvcml0aG0ubW9k
dWx1c0xlbmd0aCBpcyAyMDQ4Ci1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcoZXhwb3J0ZWRQdWJsaWNL
ZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJwotUEFTUyBleHBvcnRlZFB1
YmxpY0tleS5hbGdvcml0aG0uaGFzaC5uYW1lIGlzICdTSEEtMScKLVBBU1MgZXhwb3J0ZWRQdWJs
aWNLZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQotUEFTUyBleHBvcnRlZFB1YmxpY0tleS51c2FnZXMg
aXMgWydkZWNyeXB0JywnZW5jcnlwdCcsJ3Vud3JhcEtleScsJ3dyYXBLZXknXQotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLW9hZXAta2V5LW1hbmlwdWxhdGlvbi5odG1sIGIv
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Etb2FlcC1rZXktbWFuaXB1bGF0aW9uLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3ZDExNDllNmViOTk0MzQ1ZWY4NjA2ZTFi
Y2JkZDI0ZWM4MjQ4Y2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Etb2FlcC1rZXktbWFuaXB1bGF0aW9u
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IGdlbmVyYXRpbmcsIGlt
cG9ydGluZyBhbmQgZXhwb3J0aW5nIFJTQSBrZXlzIGZvciBSU0EtT0FFUC4gVGVzdCB0aGF0IHRo
ZXkgY2FuJ3QgYmUgdXNlZCB3aXRoIGFub3RoZXIgYWxnb3JpdGhtLiIpOwotCi1qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKLQotdmFyIGFsZ29yaXRobUtleUdlbiA9IHsKLSAgICBuYW1lOiAiUlNBLU9B
RVAiLAotICAgIC8vIFJzYUtleUdlblBhcmFtcwotICAgIG1vZHVsdXNMZW5ndGg6IDIwNDgsCi0g
ICAgcHVibGljRXhwb25lbnQ6IG5ldyBVaW50OEFycmF5KFsweDAxLCAweDAwLCAweDAxXSksICAv
LyBFcXVpdmFsZW50IHRvIDY1NTM3Ci19OwotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLQotZGVi
dWcoIkdlbmVyYXRpbmcgYSBrZXkgcGFpci4uLiIpOwotY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtl
eShhbGdvcml0aG1LZXlHZW4sIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ3
cmFwS2V5IiwgInVud3JhcEtleSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtleVBh
aXIgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIudG9TdHJpbmcoKSIsICInW29iamVj
dCBLZXlQYWlyXSciKTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wdWJsaWNLZXkudHlwZSIsICIn
cHVibGljJyIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0ubmFt
ZSIsICInUlNBLU9BRVAnIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHVibGljS2V5LmFsZ29y
aXRobS5tb2R1bHVzTGVuZ3RoIiwgIjIwNDgiKTsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0
cmluZyhrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwgIicwMTAw
MDEnIik7Ci0gICAgc2hvdWxkQmVVbmRlZmluZWQoImtleVBhaXIucHVibGljS2V5LmFsZ29yaXRo
bS5oYXNoIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHJpdmF0ZUtleS50eXBlIiwgIidwcml2
YXRlJyIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLm5hbWUi
LCAiJ1JTQS1PQUVQJyIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3Jp
dGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3Ry
aW5nKGtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwgIicwMTAw
MDEnIik7Ci0gICAgc2hvdWxkQmVVbmRlZmluZWQoImtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0
aG0uaGFzaCIpOwotCi0gICAgZGVidWcoIlxuVGVzdGluZyB0aGF0IHRoZSBrZXlzIGNhbid0IGJl
IHVzZWQgd2l0aCBkaWZmZXJlbnQgYWxnb3JpdGhtcy4uLiIpOwotICAgIGl2ID0gaGV4U3RyaW5n
VG9VaW50OEFycmF5KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIpOwotICAgIHNo
b3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmVuY3J5cHQoe25hbWU6ICJhZXMtY2JjIiwgaXY6IGl2
fSwga2V5UGFpci5wcml2YXRlS2V5LCBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAwIikpJyk7Ci0g
ICAgc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZW5jcnlwdCh7bmFtZTogImFlcy1jYmMiLCBp
djogaXZ9LCBrZXlQYWlyLnB1YmxpY0tleSwgaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMCIpKScp
OwotCi0gICAgZGVidWcoIlxuVHJ5aW5nIHRvIGV4cG9ydCBrZXlzIHRvIHJhdy4uLiIpOwotICAg
IHJldHVybiBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgncmF3Jywga2V5UGFpci5wdWJsaWNLZXkp
OwotfSkudGhlbih1bmRlZmluZWQsIGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHRlc3RQYXNzZWQo
IlByb21pc2UgcmVqZWN0ZWQgZm9yIGV4cG9ydGluZyBwdWJsaWMga2V5Iik7Ci0gICAgcmV0dXJu
IGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCdyYXcnLCBrZXlQYWlyLnByaXZhdGVLZXkpOwotfSku
dGhlbih1bmRlZmluZWQsIGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHRlc3RQYXNzZWQoIlByb21p
c2UgcmVqZWN0ZWQgZm9yIGV4cG9ydGluZyBwcml2YXRlIGtleSIpOwotCi0gICAgZGVidWcoIlxu
RXhwb3J0aW5nIHB1YmxpYyBrZXkgdG8gSldLLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0
bGUuZXhwb3J0S2V5KCJqd2siLCBrZXlQYWlyLnB1YmxpY0tleSk7Ci19KS50aGVuKGZ1bmN0aW9u
KHJlc3VsdCkgewotICAgIGp3a1B1YmxpY0tleUFycmF5ID0gcmVzdWx0OwotICAgIGp3a1B1Ymxp
Y0tleSA9IEpTT04ucGFyc2UoYnl0ZXNUb0FTQ0lJU3RyaW5nKGp3a1B1YmxpY0tleUFycmF5KSk7
Ci0gICAgc2hvdWxkQmUoImp3a1B1YmxpY0tleS5hbGciLCAiJ1JTQS1PQUVQJyIpOwotICAgIHNo
b3VsZEJlKCJqd2tQdWJsaWNLZXkuZXh0IiwgInRydWUiKTsKLSAgICBzaG91bGRCZSgiandrUHVi
bGljS2V5LmtleV9vcHMiLCAiWydlbmNyeXB0JywgJ2RlY3J5cHQnLCAnd3JhcEtleScsICd1bndy
YXBLZXknXSIpOwotICAgIHNob3VsZEJlKCJqd2tQdWJsaWNLZXkudXNlIiwgInVuZGVmaW5lZCIp
OwotICAgIHNob3VsZEJlKCJqd2tQdWJsaWNLZXkua3R5IiwgIidSU0EnIik7Ci0gICAgc2hvdWxk
QmUoImJ5dGVzVG9IZXhTdHJpbmcoQmFzZTY0VVJMLnBhcnNlKGp3a1B1YmxpY0tleS5lKSkiLCAi
JzAxMDAwMSciKTsKLQotICAgIGRlYnVnKCJcbkltcG9ydGluZyBpdCBiYWNrLi4uIik7Ci0gICAg
cmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tQdWJsaWNLZXlBcnJheSwg
bnVsbCwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0IiwgIndyYXBLZXkiLCAidW53
cmFwS2V5Il0pOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBleHBvcnRlZFB1Ymxp
Y0tleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRQdWJsaWNLZXkudHlwZSIsICIn
cHVibGljJyIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZFB1YmxpY0tleS5hbGdvcml0aG0ubmFt
ZSIsICInUlNBLU9BRVAnIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkUHVibGljS2V5LmFsZ29y
aXRobS5tb2R1bHVzTGVuZ3RoIiwgIjIwNDgiKTsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0
cmluZyhleHBvcnRlZFB1YmxpY0tleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwgIicwMTAw
MDEnIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkUHVibGljS2V5LmFsZ29yaXRobS5oYXNoLm5h
bWUiLCAiJ1NIQS0xJyIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZFB1YmxpY0tleS5leHRyYWN0
YWJsZSIsICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkUHVibGljS2V5LnVzYWdlcyIs
ICJbJ2RlY3J5cHQnLCdlbmNyeXB0JywndW53cmFwS2V5Jywnd3JhcEtleSddIik7Ci0KLSAgICBm
aW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLW9hZXAtcGxhaW50ZXh0LWxlbmd0
aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1vYWVwLXBsYWlu
dGV4dC1sZW5ndGgtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
Y2I2Y2E0NTg3NDc2MTdlMzA0YmUxOWFjM2Q1MTg2OGQ0MjcxZGY3Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUv
cnNhLW9hZXAtcGxhaW50ZXh0LWxlbmd0aC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwxNCArMCwwIEBACi1UZXN0IHdoYXQgaGFwcGVucyB3aGVuIHRyeWluZyB0byBlbmNyeXB0IGEg
dG9vIGxhcmdlIHBsYWluIHRleHQgd2l0aCBSU0EtT0FFUC4KLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi0KLUltcG9ydGluZyBSU0Ega2V5cy4uLgotRW5jcnlwdGluZyBhIDIxNCBieXRl
IGJ1ZmZlciB3aXRoIFJTQS1PQUVQIFNIQS0xLCAyMDQ4IGJpdCBrZXkuLi4KLVBBU1MgU3VjY2Vl
ZGVkCi1FbmNyeXB0aW5nIGEgMjE1IGJ5dGUgYnVmZmVyLi4uCi1QQVNTIFJlamVjdGVkCi1QQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Etb2FlcC1wbGFpbnRleHQtbGVuZ3RoLmh0
bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1vYWVwLXBsYWludGV4dC1sZW5ndGgu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDFmMjEzYjFlYmM3YjlhM2M5ZTY4
NzJiMDM1ZDg4NjQyYzgxOWUzZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1vYWVwLXBsYWludGV4dC1s
ZW5ndGguaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3Qgd2hhdCBoYXBw
ZW5zIHdoZW4gdHJ5aW5nIHRvIGVuY3J5cHQgYSB0b28gbGFyZ2UgcGxhaW4gdGV4dCB3aXRoIFJT
QS1PQUVQLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIHB1YmxpY0tleUpTT04g
PSB7Ci0gICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSU0EtT0FFUCIsCi0gICAgbjogInJjQ1VD
djdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFX
WFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoy
eTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdh
czh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFND
bnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0
ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCi0g
ICAgZTogIkFRQUIiCi19OwotCi12YXIgcHJpdmF0ZUtleUpTT04gPSB7Ci0gICAga3R5OiAiUlNB
IiwKLSAgICBhbGc6ICJSU0EtT0FFUCIsCi0gICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtu
VGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdw
ekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NM
RG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExL
OFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWln
ODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1N
eXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCi0gICAgZTogIkFRQUIiLAotICAg
IGQ6ICJlTkxTMzdhQ3o3UlhTTlBEX0R0TEJKNmo1VDhjU3hkelJCQ2pQYUk2V2NHcUpwMTZscTNV
VHd1b0RMQXFsQTlvR1ltMjM4ZHNJV3B1dWNQX2xRdGJXZS03U3B4b0k2X3ZtWUdmN1lWVUh2MS1E
RjlxaU9tU3JNbWR4TW5WT3pZWFk4UmFUNnRoUGpuX0o1Y2ZMVjJ4SV9Md3NyTXRtcGRTeU5sZ1gw
elRVaHd0dWFoZ0FLTUVDaFlqSDJFbmpIZEh3NnNZMi13QXBkY1FJN1VMRTBvbzVSemJRWnBtdWhj
TjloaUJjMEwzaGhGMHFvNTBtYmwwMl82NV9HUTdEcFZrWEJ4TmdSQkx6bFBhYm16ekcyb0FoZmVm
TGdZbVNDMW9wYUNrWEU2dlJXUU5XTkw0NVJaTlpGWU0zdW9KZ2hPTXFHZW9jTTBCcGpkQ2hIclBP
bEZ2U1EiLAotICAgIHA6ICI0bWlUdUFqS01lSDV1SjVLQjM5N1FVd2hia1lFZ1NiY0EybWlmbVNr
dkUyMDE4Z2I1NXFrQkhLMWVWcnlmMV9tNDNMTmxjNk9fYWs2Z2Z6ZFpJWnZTNU5DR2pQbDBxMDlw
bFVwdThxRk9Tc3BCd0E2N3FHSDc2bEZsWkxuX2Q0eWdsUzd3ZkxydTRfNVlzOHFMTHMtRHFWTHZp
d3Bvc09ueXlXcXdNNUFYcDAiLAotICAgIHE6ICJ4SFlyemtpdnRtbnpfc0djaG5XR2MwcS1wRE9r
S2ljcHRScHYycE1GSUlYeG5GWDVhTWVFWElaalZ1alh0d1V5MVVsRklOMkdaSlN2eTVLSjc5bXVf
WHlObkZITXplZEgtQTNlZTN1OGgxVVVyWkYtdlV1MV9lNFVfeDY3Tk4xZGVkelVTS3luTjdwRmwz
T2t1U2hNQldHVi1jd3pPUGRjVkFmVnVabHhVTWMiLAotICAgIGRwOiAiZkJ6RHpZRFVCbUJRR29w
N0huMGR2Zl9UMjdWNlJxcGN0V28wNzRDUVpjRmJQMmF0RlZ0S1NqM3ZpV1QzeGlkMlZIemNnaURI
ZGZwTTNuRVZsRU8xd3dJb25HQ1N2ZGpHRU9aaWlGVk9qclpBT1Z4QThndU9qeXlGdnFiWGtlMDZW
d1BJSVZ2ZktlU1UyenVoYlBfXzF0dDZGX2Z4b3c0S2IyeG9uR1QwR0drIiwKLSAgICBkcTogImpt
RTJEaUlQZGh3RGdMWEFRcElhQnFRODFiTzNYZlZUX0xSVUxBd3d3d2xQdVFWMTQ4SDA0emxoOVRK
NlkyR1pIWW9rVjFVMGVPQnBKeGZrYjdkTFl0cEpwdWlCalJmNHlJVUVvR2xra0lfUWxKbkZTRnIt
WWpHUmRmTkhxV0JreGxTTVpMNzcwUjltSUFUbmRHa0g3ejV4LXI5S3dCWkZDNEZDRzJoZ196RSIs
Ci0gICAgcWk6ICJZQ1hfcEx3Yk1CQTFUaFZIMFdjd21ueXRxTmNyTUNFd1RtN0J5QTJlVTZuV2JR
clVMdmY3bTlfa3pmTFVjanNucEFWbEJRRzVKTVhNeTBTcTRwdHdieXdzYTUtRzhLQU9PT1IyTDN2
NGhDLUV5czlmdGdGTV8zaTBvNDBlZVFINGIzaGFQYm50ckllTWc4SXpsT3VWWUtmOS0yUXVLRG9X
ZVJkZDdOc2R4VGsiCi19OwotdmFyIGVuY3J5cHRBbGdvcml0aG0gPSB7bmFtZTogIlJTQS1PQUVQ
IiwgaGFzaDogInNoYS0xIn07Ci12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotdmFyIG5vbkV4dHJh
Y3RhYmxlID0gZmFsc2U7Ci0KLWRlYnVnKCJJbXBvcnRpbmcgUlNBIGtleXMuLi4iKTsKLWNyeXB0
by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lm
eShwdWJsaWNLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlw
dCJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHB1YmxpY0tleSA9IHJlc3VsdDsKLSAg
ICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5
KEpTT04uc3RyaW5naWZ5KHByaXZhdGVLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbImVu
Y3J5cHQiLCAiZGVjcnlwdCJdKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgcHJp
dmF0ZUtleSA9IHJlc3VsdDsKLQotICAgIGRlYnVnKCJFbmNyeXB0aW5nIGEgMjE0IGJ5dGUgYnVm
ZmVyIHdpdGggUlNBLU9BRVAgU0hBLTEsIDIwNDggYml0IGtleS4uLiIpOwotICAgIHJldHVybiBj
cnlwdG8uc3VidGxlLmVuY3J5cHQoe25hbWU6ICJSU0EtT0FFUCIsIGhhc2g6ICJTSEEtMSJ9LCBw
dWJsaWNLZXksIG5ldyBVaW50OEFycmF5KDIxNCkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQp
IHsKLSAgICB0ZXN0UGFzc2VkKCJTdWNjZWVkZWQiKTsKLSAgICBkZWJ1ZygiRW5jcnlwdGluZyBh
IDIxNSBieXRlIGJ1ZmZlci4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmVuY3J5cHQo
e25hbWU6ICJSU0EtT0FFUCIsIGhhc2g6ICJTSEEtMSJ9LCBwdWJsaWNLZXksIG5ldyBVaW50OEFy
cmF5KDIxNSkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB0ZXN0RmFpbGVkKCJT
dWNjZWVkZWQiKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0sIGZ1bmN0aW9uKHJlc3VsdCkgewot
ICAgIHRlc3RQYXNzZWQoIlJlamVjdGVkIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwv
c2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlw
dG8vc3VidGxlL3JzYS1vYWVwLXdyYXAtdW53cmFwLWFlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1vYWVwLXdyYXAtdW53cmFwLWFlcy1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmOTU4ZDYyNmI1Y2I5NmQ3MDdjNzBhMzY1
YmEyOTI5OTc3NDM5YWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Etb2FlcC13cmFwLXVud3JhcC1hZXMt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotVGVzdCB3cmFwcGlu
ZyBhbmQgdW53cmFwcGluZyBBRVMga2V5cyB3aXRoIFJTQS1PQUVQLgotCi1PbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCi0KLQotSW1wb3J0aW5nIFJTQSBrZXlzLi4uCi1JbXBvcnRpbmcgYW4gQUVT
IGtleS4uLgotV3JhcHBpbmcgaXQuLi4KLVBBU1Mgd3JhcHBlZEtleS50b1N0cmluZygpIGlzICdb
b2JqZWN0IEFycmF5QnVmZmVyXScKLVVud3JhcHBpbmcgaXQuLi4KLVBBU1MgdW53cmFwcGVkS2V5
LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgS2V5XScKLVBBU1MgdW53cmFwcGVkS2V5LnR5cGUgaXMg
J3NlY3JldCcKLVBBU1MgdW53cmFwcGVkS2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKLVBBU1MgdW53
cmFwcGVkS2V5LmFsZ29yaXRobS5uYW1lIGlzICdBRVMtQ0JDJwotUEFTUyB1bndyYXBwZWRLZXku
YWxnb3JpdGhtLmxlbmd0aCBpcyAyNTYKLVBBU1MgdW53cmFwcGVkS2V5LnVzYWdlcyBpcyBbJ2Rl
Y3J5cHQnLCAnZW5jcnlwdCddCi1FeHBvcnRpbmcgaXQuLi4KLVBBU1MgYnl0ZXNUb0hleFN0cmlu
Zyh1bndyYXBwZWRLZXlEYXRhKSBpcyBieXRlc1RvSGV4U3RyaW5nKGFlc0tleURhdGEpCi0KLVdy
YXBwaW5nIHRoZSBzYW1lIGtleSBhcyBKV0suLi4KLVBBU1Mgd3JhcHBlZEtleS50b1N0cmluZygp
IGlzICdbb2JqZWN0IEFycmF5QnVmZmVyXScKLVVud3JhcHBpbmcgaXQuLi4KLVBBU1MgdW53cmFw
cGVkS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgS2V5XScKLVBBU1MgdW53cmFwcGVkS2V5LnR5
cGUgaXMgJ3NlY3JldCcKLVBBU1MgdW53cmFwcGVkS2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKLVBB
U1MgdW53cmFwcGVkS2V5LmFsZ29yaXRobS5uYW1lIGlzICdBRVMtQ0JDJwotUEFTUyB1bndyYXBw
ZWRLZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyAyNTYKLVBBU1MgdW53cmFwcGVkS2V5LnVzYWdlcyBp
cyBbJ2RlY3J5cHQnLCAnZW5jcnlwdCddCi1FeHBvcnRpbmcgaXQuLi4KLVBBU1MgYnl0ZXNUb0hl
eFN0cmluZyh1bndyYXBwZWRLZXlEYXRhKSBpcyBieXRlc1RvSGV4U3RyaW5nKGFlc0tleURhdGEp
Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Etb2FlcC13cmFwLXVud3JhcC1h
ZXMuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLW9hZXAtd3JhcC11bndyYXAt
YWVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEzZTY1YzUwM2QxODg1MTkw
ZGM4MjU4ZDUyODI3Zjg4OTIyODU4MTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Etb2FlcC13cmFwLXVu
d3JhcC1hZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwMyArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IHdyYXBw
aW5nIGFuZCB1bndyYXBwaW5nIEFFUyBrZXlzIHdpdGggUlNBLU9BRVAuIik7Ci0KLWpzVGVzdElz
QXN5bmMgPSB0cnVlOwotCi12YXIgcHVibGljS2V5SlNPTiA9IHsKLSAgICBrdHk6ICJSU0EiLAot
ICAgIGFsZzogIlJTQS1PQUVQIiwKLSAgICBuOiAicmNDVUN2N09jMUhWYW0xREloQ3pxa25UaFdh
d09wOFFMazhaaXkycDEwQnlqUUZDYWpvRml5dUFXbC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6SXpj
LU1iTFNISUdnV1FHTzIxbEdpSW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91N1hTU0xEb1Ju
UjBRRzVNc0RoRDZzMmdWOW13SGtydGtDeHRNV2RCaS03N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5D
U2dBMU9ndVo5ODliRnljOHRPT0VJYjB4VVNmUFN6M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4NTdP
U2N5V2JHeUV5M0JpdzY0cXVuM2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3
MktVcDAybUpEWmlpeWlnbHhNTF9pMy1fQ2VlY0N3IiwKLSAgICBlOiAiQVFBQiIKLX07Ci0KLXZh
ciBwcml2YXRlS2V5SlNPTiA9IHsKLSAgICBrdHk6ICJSU0EiLAotICAgIGFsZzogIlJTQS1PQUVQ
IiwKLSAgICBuOiAicmNDVUN2N09jMUhWYW0xREloQ3pxa25UaFdhd09wOFFMazhaaXkycDEwQnlq
UUZDYWpvRml5dUFXbC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6SXpjLU1iTFNISUdnV1FHTzIxbEdp
SW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVNc0RoRDZzMmdWOW13
SGtydGtDeHRNV2RCaS03N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5ODliRnljOHRP
T0VJYjB4VVNmUFN6M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5M0JpdzY0cXVu
M2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3MktVcDAybUpEWmlpeWlnbHhN
TF9pMy1fQ2VlY0N3IiwKLSAgICBlOiAiQVFBQiIsCi0gICAgZDogImVOTFMzN2FDejdSWFNOUERf
RHRMQko2ajVUOGNTeGR6UkJDalBhSTZXY0dxSnAxNmxxM1VUd3VvRExBcWxBOW9HWW0yMzhkc0lX
cHV1Y1BfbFF0YldlLTdTcHhvSTZfdm1ZR2Y3WVZVSHYxLURGOXFpT21Tck1tZHhNblZPellYWThS
YVQ2dGhQam5fSjVjZkxWMnhJX0x3c3JNdG1wZFN5TmxnWDB6VFVod3R1YWhnQUtNRUNoWWpIMkVu
akhkSHc2c1kyLXdBcGRjUUk3VUxFMG9vNVJ6YlFacG11aGNOOWhpQmMwTDNoaEYwcW81MG1ibDAy
XzY1X0dRN0RwVmtYQnhOZ1JCTHpsUGFibXp6RzJvQWhmZWZMZ1ltU0Mxb3BhQ2tYRTZ2UldRTldO
TDQ1UlpOWkZZTTN1b0pnaE9NcUdlb2NNMEJwamRDaEhyUE9sRnZTUSIsCi0gICAgcDogIjRtaVR1
QWpLTWVINXVKNUtCMzk3UVV3aGJrWUVnU2JjQTJtaWZtU2t2RTIwMThnYjU1cWtCSEsxZVZyeWYx
X200M0xObGM2T19hazZnZnpkWkladlM1TkNHalBsMHEwOXBsVXB1OHFGT1NzcEJ3QTY3cUdINzZs
RmxaTG5fZDR5Z2xTN3dmTHJ1NF81WXM4cUxMcy1EcVZMdml3cG9zT255eVdxd001QVhwMCIsCi0g
ICAgcTogInhIWXJ6a2l2dG1uel9zR2NobldHYzBxLXBET2tLaWNwdFJwdjJwTUZJSVh4bkZYNWFN
ZUVYSVpqVnVqWHR3VXkxVWxGSU4yR1pKU3Z5NUtKNzltdV9YeU5uRkhNemVkSC1BM2VlM3U4aDFV
VXJaRi12VXUxX2U0VV94NjdOTjFkZWR6VVNLeW5ON3BGbDNPa3VTaE1CV0dWLWN3ek9QZGNWQWZW
dVpseFVNYyIsCi0gICAgZHA6ICJmQnpEellEVUJtQlFHb3A3SG4wZHZmX1QyN1Y2UnFwY3RXbzA3
NENRWmNGYlAyYXRGVnRLU2ozdmlXVDN4aWQyVkh6Y2dpREhkZnBNM25FVmxFTzF3d0lvbkdDU3Zk
akdFT1ppaUZWT2pyWkFPVnhBOGd1T2p5eUZ2cWJYa2UwNlZ3UElJVnZmS2VTVTJ6dWhiUF9fMXR0
NkZfZnhvdzRLYjJ4b25HVDBHR2siLAotICAgIGRxOiAiam1FMkRpSVBkaHdEZ0xYQVFwSWFCcVE4
MWJPM1hmVlRfTFJVTEF3d3d3bFB1UVYxNDhIMDR6bGg5VEo2WTJHWkhZb2tWMVUwZU9CcEp4Zmti
N2RMWXRwSnB1aUJqUmY0eUlVRW9HbGtrSV9RbEpuRlNGci1ZakdSZGZOSHFXQmt4bFNNWkw3NzBS
OW1JQVRuZEdrSDd6NXgtcjlLd0JaRkM0RkNHMmhnX3pFIiwKLSAgICBxaTogIllDWF9wTHdiTUJB
MVRoVkgwV2N3bW55dHFOY3JNQ0V3VG03QnlBMmVVNm5XYlFyVUx2ZjdtOV9remZMVWNqc25wQVZs
QlFHNUpNWE15MFNxNHB0d2J5d3NhNS1HOEtBT09PUjJMM3Y0aEMtRXlzOWZ0Z0ZNXzNpMG80MGVl
UUg0YjNoYVBibnRySWVNZzhJemxPdVZZS2Y5LTJRdUtEb1dlUmRkN05zZHhUayIKLX07Ci12YXIg
d3JhcEFsZ29yaXRobSA9IHtuYW1lOiAiUlNBLU9BRVAiLCBoYXNoOiAic2hhLTEifTsKLXZhciBl
eHRyYWN0YWJsZSA9IHRydWU7Ci12YXIgbm9uRXh0cmFjdGFibGUgPSBmYWxzZTsKLQotZGVidWco
IkltcG9ydGluZyBSU0Ega2V5cy4uLiIpOwotY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIs
IGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KHB1YmxpY0tleUpTT04pKSwgbnVsbCwg
ZXh0cmFjdGFibGUsIFsid3JhcEtleSIsICJ1bndyYXBLZXkiXSkudGhlbihmdW5jdGlvbihyZXN1
bHQpIHsKLSAgICBwdWJsaWNLZXkgPSByZXN1bHQ7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUu
aW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShwcml2YXRl
S2V5SlNPTikpLCBudWxsLCBleHRyYWN0YWJsZSwgWyJ3cmFwS2V5IiwgInVud3JhcEtleSJdKTsK
LX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgcHJpdmF0ZUtleSA9IHJlc3VsdDsKLQot
ICAgIGRlYnVnKCJJbXBvcnRpbmcgYW4gQUVTIGtleS4uLiIpOwotICAgIGFlc0tleURhdGEgPSBo
ZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjYwM2RlYjEwMTVjYTcxYmUyYjczYWVmMDg1N2Q3NzgxMWYz
NTJjMDczYjYxMDhkNzJkOTgxMGEzMDkxNGRmZjQiKTsKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRs
ZS5pbXBvcnRLZXkoInJhdyIsIGFlc0tleURhdGEsICJhZXMtY2JjIiwgZXh0cmFjdGFibGUsIFsi
ZW5jcnlwdCIsICJkZWNyeXB0IiwgIndyYXBLZXkiLCAidW53cmFwS2V5Il0pCi19KS50aGVuKGZ1
bmN0aW9uKHJlc3VsdCkgewotICAgIGFlc0tleSA9IHJlc3VsdDsKLSAgICBkZWJ1ZygiV3JhcHBp
bmcgaXQuLi4iKTsKLQotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLndyYXBLZXkoInJhdyIsIGFl
c0tleSwgcHVibGljS2V5LCB3cmFwQWxnb3JpdGhtKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0
KSB7Ci0gICAgd3JhcHBlZEtleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgid3JhcHBlZEtleS50
b1N0cmluZygpIiwgIidbb2JqZWN0IEFycmF5QnVmZmVyXSciKTsKLQotICAgIGRlYnVnKCJVbndy
YXBwaW5nIGl0Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUudW53cmFwS2V5KCJyYXci
LCB3cmFwcGVkS2V5LCBwcml2YXRlS2V5LCB3cmFwQWxnb3JpdGhtLCAiYWVzLWNiYyIsIGV4dHJh
Y3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0
KSB7Ci0gICAgdW53cmFwcGVkS2V5ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJ1bndyYXBwZWRL
ZXkudG9TdHJpbmcoKSIsICInW29iamVjdCBLZXldJyIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBw
ZWRLZXkudHlwZSIsICInc2VjcmV0JyIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkuZXh0
cmFjdGFibGUiLCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkuYWxnb3JpdGht
Lm5hbWUiLCAiJ0FFUy1DQkMnIik7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS5hbGdvcml0
aG0ubGVuZ3RoIiwgIjI1NiIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkudXNhZ2VzIiwg
IlsnZGVjcnlwdCcsICdlbmNyeXB0J10iKTsKLQotICAgIGRlYnVnKCJFeHBvcnRpbmcgaXQuLi4i
KTsKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoInJhdyIsIHVud3JhcHBlZEtl
eSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHVud3JhcHBlZEtleURhdGEgPSBy
ZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcodW53cmFwcGVkS2V5RGF0YSki
LCAiYnl0ZXNUb0hleFN0cmluZyhhZXNLZXlEYXRhKSIpOwotCi0gICAgZGVidWcoIlxuV3JhcHBp
bmcgdGhlIHNhbWUga2V5IGFzIEpXSy4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLndy
YXBLZXkoImp3ayIsIGFlc0tleSwgcHVibGljS2V5LCB3cmFwQWxnb3JpdGhtKTsKLX0pLnRoZW4o
ZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgd3JhcHBlZEtleSA9IHJlc3VsdDsKLSAgICBzaG91bGRC
ZSgid3JhcHBlZEtleS50b1N0cmluZygpIiwgIidbb2JqZWN0IEFycmF5QnVmZmVyXSciKTsKLQot
ICAgIGRlYnVnKCJVbndyYXBwaW5nIGl0Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUu
dW53cmFwS2V5KCJqd2siLCB3cmFwcGVkS2V5LCBwcml2YXRlS2V5LCB3cmFwQWxnb3JpdGhtLCAi
YWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKTsKLX0pLnRoZW4o
ZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgdW53cmFwcGVkS2V5ID0gcmVzdWx0OwotICAgIHNob3Vs
ZEJlKCJ1bndyYXBwZWRLZXkudG9TdHJpbmcoKSIsICInW29iamVjdCBLZXldJyIpOwotICAgIHNo
b3VsZEJlKCJ1bndyYXBwZWRLZXkudHlwZSIsICInc2VjcmV0JyIpOwotICAgIHNob3VsZEJlKCJ1
bndyYXBwZWRLZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBw
ZWRLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FFUy1DQkMnIik7Ci0gICAgc2hvdWxkQmUoInVud3Jh
cHBlZEtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjI1NiIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBw
ZWRLZXkudXNhZ2VzIiwgIlsnZGVjcnlwdCcsICdlbmNyeXB0J10iKTsKLQotICAgIGRlYnVnKCJF
eHBvcnRpbmcgaXQuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoInJh
dyIsIHVud3JhcHBlZEtleSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHVud3Jh
cHBlZEtleURhdGEgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcodW53
cmFwcGVkS2V5RGF0YSkiLCAiYnl0ZXNUb0hleFN0cmluZyhhZXNLZXlEYXRhKSIpOwotICAgIGZp
bmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtcG9zdE1lc3NhZ2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtcG9zdE1lc3NhZ2UtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNTM1OTJlOGFjZGIzZWM1MzdhODM1
MGEyMzE5ODgxNzdkYjI0ZGUwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLXBvc3RNZXNzYWdlLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLVRlc3Qgc2VuZGluZyBjcnlw
dG8ga2V5cyB2aWEgcG9zdE1lc3NhZ2UuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQot
Ci1LZXkgcmVjZWl2ZWQgaW4gYSBtZXNzYWdlOgotUEFTUyBrZXkudHlwZSBpcyAncHJpdmF0ZScK
LVBBU1Mga2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKLVBBU1Mga2V5LmFsZ29yaXRobS5uYW1lIGlz
ICdSU0FTU0EtUEtDUzEtdjFfNScKLVBBU1Mga2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIGlz
IDIwNDgKLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhrZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50
KSBpcyAnMDEwMDAxJwotUEFTUyBrZXkudXNhZ2VzIGlzIFsic2lnbiIsICJ2ZXJpZnkiXQotCi1F
eHBvcnRlZCBiYWNrIHRvIEpXSzoKLVBBU1MgZXhwb3J0ZWRKV0sua3R5IGlzICdSU0EnCi1QQVNT
IGV4cG9ydGVkSldLLmFsZyBpcyAnUlMyNTYnCi1QQVNTIGV4cG9ydGVkSldLLmV4dCBpcyB0cnVl
Ci1QQVNTIGV4cG9ydGVkSldLLmtleV9vcHMgaXMgWydzaWduJywndmVyaWZ5J10KLVBBU1MgZXhw
b3J0ZWRKV0sudXNlIGlzIHVuZGVmaW5lZAotUEFTUyBleHBvcnRlZEpXSy5uIGlzIHByaXZhdGVL
ZXlKU09OLm4KLVBBU1MgZXhwb3J0ZWRKV0suZSBpcyBwcml2YXRlS2V5SlNPTi5lCi1QQVNTIGV4
cG9ydGVkSldLLmQgaXMgcHJpdmF0ZUtleUpTT04uZAotUEFTUyBleHBvcnRlZEpXSy5wIGlzIHBy
aXZhdGVLZXlKU09OLnAKLVBBU1MgZXhwb3J0ZWRKV0sucSBpcyBwcml2YXRlS2V5SlNPTi5xCi1Q
QVNTIGV4cG9ydGVkSldLLmRwIGlzIHByaXZhdGVLZXlKU09OLmRwCi1QQVNTIGV4cG9ydGVkSldL
LmRxIGlzIHByaXZhdGVLZXlKU09OLmRxCi1QQVNTIGV4cG9ydGVkSldLLnFpIGlzIHByaXZhdGVL
ZXlKU09OLnFpCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01Q
TEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1wb3N0TWVz
c2FnZS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtcG9zdE1lc3NhZ2UuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDczZWE3ZTRiY2RjMDFhZjUxNjY2OTJm
YjYyYTZlMjRkYWE3MDU5OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1wb3N0TWVzc2FnZS5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1v
bi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci0KLWRlc2NyaXB0aW9u
KCJUZXN0IHNlbmRpbmcgY3J5cHRvIGtleXMgdmlhIHBvc3RNZXNzYWdlLiIpOwotCi1qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKLQotdmFyIHByaXZhdGVLZXlKU09OID0gewotICAgIGt0eTogIlJTQSIs
Ci0gICAgYWxnOiAiUlMyNTYiLAotICAgIG46ICJyY0NVQ3Y3T2MxSFZhbTFESWhDenFrblRoV2F3
T3A4UUxrOFppeTJwMTBCeWpRRkNham9GaXl1QVdsLVIxV1haYWY0eGl0TFJyYWNUOWFncHpJemMt
TWJMU0hJR2dXUUdPMjFsR2lJbXk1ZnRaLUQ4YkhBcVJ6MnkxNXB6RDRjNENFb3U3WFNTTERvUm5S
MFFHNU1zRGhENnMyZ1Y5bXdIa3J0a0N4dE1XZEJpLTc3YXM4d0dtbE5SbGRjT1NnWkRMSzhVbkNT
Z0ExT2d1Wjk4OWJGeWM4dE9PRUliMHhVU2ZQU3ozTFBTQ255WXo2OGFEam1LVmVOSC1pZzg1N09T
Y3lXYkd5RXkzQml3NjRxdW4zanVVbE5Xc0ozem5na09kdGVZV3l0eDVRcjRYS05zNlItTXl5cTcy
S1VwMDJtSkRaaWl5aWdseE1MX2kzLV9DZWVjQ3ciLAotICAgIGU6ICJBUUFCIiwKLSAgICBkOiAi
ZU5MUzM3YUN6N1JYU05QRF9EdExCSjZqNVQ4Y1N4ZHpSQkNqUGFJNldjR3FKcDE2bHEzVVR3dW9E
TEFxbEE5b0dZbTIzOGRzSVdwdXVjUF9sUXRiV2UtN1NweG9JNl92bVlHZjdZVlVIdjEtREY5cWlP
bVNyTW1keE1uVk96WVhZOFJhVDZ0aFBqbl9KNWNmTFYyeElfTHdzck10bXBkU3lObGdYMHpUVWh3
dHVhaGdBS01FQ2hZakgyRW5qSGRIdzZzWTItd0FwZGNRSTdVTEUwb281UnpiUVpwbXVoY045aGlC
YzBMM2hoRjBxbzUwbWJsMDJfNjVfR1E3RHBWa1hCeE5nUkJMemxQYWJtenpHMm9BaGZlZkxnWW1T
QzFvcGFDa1hFNnZSV1FOV05MNDVSWk5aRllNM3VvSmdoT01xR2VvY00wQnBqZENoSHJQT2xGdlNR
IiwKLSAgICBwOiAiNG1pVHVBaktNZUg1dUo1S0IzOTdRVXdoYmtZRWdTYmNBMm1pZm1Ta3ZFMjAx
OGdiNTVxa0JISzFlVnJ5ZjFfbTQzTE5sYzZPX2FrNmdmemRaSVp2UzVOQ0dqUGwwcTA5cGxVcHU4
cUZPU3NwQndBNjdxR0g3NmxGbFpMbl9kNHlnbFM3d2ZMcnU0XzVZczhxTExzLURxVkx2aXdwb3NP
bnl5V3F3TTVBWHAwIiwKLSAgICBxOiAieEhZcnpraXZ0bW56X3NHY2huV0djMHEtcERPa0tpY3B0
UnB2MnBNRklJWHhuRlg1YU1lRVhJWmpWdWpYdHdVeTFVbEZJTjJHWkpTdnk1S0o3OW11X1h5Tm5G
SE16ZWRILUEzZWUzdThoMVVVclpGLXZVdTFfZTRVX3g2N05OMWRlZHpVU0t5bk43cEZsM09rdVNo
TUJXR1YtY3d6T1BkY1ZBZlZ1Wmx4VU1jIiwKLSAgICBkcDogImZCekR6WURVQm1CUUdvcDdIbjBk
dmZfVDI3VjZScXBjdFdvMDc0Q1FaY0ZiUDJhdEZWdEtTajN2aVdUM3hpZDJWSHpjZ2lESGRmcE0z
bkVWbEVPMXd3SW9uR0NTdmRqR0VPWmlpRlZPanJaQU9WeEE4Z3VPanl5RnZxYlhrZTA2VndQSUlW
dmZLZVNVMnp1aGJQX18xdHQ2Rl9meG93NEtiMnhvbkdUMEdHayIsCi0gICAgZHE6ICJqbUUyRGlJ
UGRod0RnTFhBUXBJYUJxUTgxYk8zWGZWVF9MUlVMQXd3d3dsUHVRVjE0OEgwNHpsaDlUSjZZMkda
SFlva1YxVTBlT0JwSnhma2I3ZExZdHBKcHVpQmpSZjR5SVVFb0dsa2tJX1FsSm5GU0ZyLVlqR1Jk
Zk5IcVdCa3hsU01aTDc3MFI5bUlBVG5kR2tIN3o1eC1yOUt3QlpGQzRGQ0cyaGdfekUiLAotICAg
IHFpOiAiWUNYX3BMd2JNQkExVGhWSDBXY3dtbnl0cU5jck1DRXdUbTdCeUEyZVU2bldiUXJVTHZm
N205X2t6ZkxVY2pzbnBBVmxCUUc1Sk1YTXkwU3E0cHR3Ynl3c2E1LUc4S0FPT09SMkwzdjRoQy1F
eXM5ZnRnRk1fM2kwbzQwZWVRSDRiM2hhUGJudHJJZU1nOEl6bE91VllLZjktMlF1S0RvV2VSZGQ3
TnNkeFRrIgotfTsKLQotd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlv
bihldnQpIHsKLSAgICBkZWJ1ZygiS2V5IHJlY2VpdmVkIGluIGEgbWVzc2FnZToiKTsKLSAgICBr
ZXkgPSBldnQuZGF0YTsKLSAgICBzaG91bGRCZSgia2V5LnR5cGUiLCAiJ3ByaXZhdGUnIik7Ci0g
ICAgc2hvdWxkQmUoImtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoImtl
eS5hbGdvcml0aG0ubmFtZSIsICInUlNBU1NBLVBLQ1MxLXYxXzUnIik7Ci0gICAgc2hvdWxkQmUo
ImtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCIsICIyMDQ4Iik7Ci0gICAgc2hvdWxkQmUoImJ5
dGVzVG9IZXhTdHJpbmcoa2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAxMDAwMSci
KTsKLSAgICBzaG91bGRCZSgia2V5LnVzYWdlcyIsICdbInNpZ24iLCAidmVyaWZ5Il0nKTsKLQot
ICAgIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJqd2siLCBrZXkpLnRoZW4oZnVuY3Rpb24ocmVz
dWx0KSB7Ci0gICAgICAgIGV4cG9ydGVkSldLID0gSlNPTi5wYXJzZShieXRlc1RvQVNDSUlTdHJp
bmcocmVzdWx0KSk7Ci0gICAgICAgIGRlYnVnKCJcbkV4cG9ydGVkIGJhY2sgdG8gSldLOiIpOwot
ICAgICAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sua3R5IiwgIidSU0EnIik7Ci0gICAgICAgIHNo
b3VsZEJlKCJleHBvcnRlZEpXSy5hbGciLCAiJ1JTMjU2JyIpOwotICAgICAgICBzaG91bGRCZSgi
ZXhwb3J0ZWRKV0suZXh0IiwgInRydWUiKTsKLSAgICAgICAgc2hvdWxkQmUoImV4cG9ydGVkSldL
LmtleV9vcHMiLCAiWydzaWduJywndmVyaWZ5J10iKTsKLSAgICAgICAgc2hvdWxkQmUoImV4cG9y
dGVkSldLLnVzZSIsICJ1bmRlZmluZWQiKTsKLSAgICAgICAgc2hvdWxkQmUoImV4cG9ydGVkSldL
Lm4iLCAicHJpdmF0ZUtleUpTT04ubiIpOwotICAgICAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0su
ZSIsICJwcml2YXRlS2V5SlNPTi5lIik7Ci0gICAgICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5k
IiwgInByaXZhdGVLZXlKU09OLmQiKTsKLSAgICAgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLnAi
LCAicHJpdmF0ZUtleUpTT04ucCIpOwotICAgICAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sucSIs
ICJwcml2YXRlS2V5SlNPTi5xIik7Ci0gICAgICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5kcCIs
ICJwcml2YXRlS2V5SlNPTi5kcCIpOwotICAgICAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suZHEi
LCAicHJpdmF0ZUtleUpTT04uZHEiKTsKLSAgICAgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLnFp
IiwgInByaXZhdGVLZXlKU09OLnFpIik7Ci0gICAgICAgIGRlYnVnKCIiKTsKLQotICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKLSAgICB9KTsKLX0sIGZhbHNlKTsKLQotY3J5cHRvLnN1YnRsZS5pbXBv
cnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KHByaXZhdGVLZXlK
U09OKSksIG51bGwsIHRydWUsIFsic2lnbiIsICJ2ZXJpZnkiXSkudGhlbihmdW5jdGlvbihyZXN1
bHQpIHsKLSAgICBwb3N0TWVzc2FnZShyZXN1bHQsICIqIik7Ci19KTsKLTwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Fl
cy1wa2NzMS12MV81LWRlY3J5cHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS9yc2Flcy1wa2NzMS12MV81LWRlY3J5cHQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhNDUwNDg0ZGEwNmI5MWMwMmY0NzI3NjRkMWUxZmZjZDliZWUxNjY0
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2NyeXB0by9zdWJ0bGUvcnNhZXMtcGtjczEtdjFfNS1kZWNyeXB0LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRlc3QgZGVjcnlwdGluZyBhIGtub3duIG1l
c3NhZ2Ugd2l0aCBSU0FFUy1QS0NTMS12MV81LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
Ci0KLQotSW1wb3J0aW5nIGFuIFJTQSBrZXkuLi4KLURlY3J5cHRpbmcuLi4KLVBBU1MgYnl0ZXNU
b0hleFN0cmluZyhuZXcgVWludDhBcnJheShtZXNzYWdlKSkgaXMgJzJhYWNlYzg2ZjQyM2RkOTI1
ZWMxNTg4MjJhNzQ4Y2JlNmMzMWEwJwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUv
cnNhZXMtcGtjczEtdjFfNS1kZWNyeXB0Lmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L3JzYWVzLXBrY3MxLXYxXzUtZGVjcnlwdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBhMDcwMGY0MTQxZTAyMzM4YzE1ZmIyZTgwNjUzNjM1NWM3MTY3ZTJiLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9z
dWJ0bGUvcnNhZXMtcGtjczEtdjFfNS1kZWNyeXB0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0
OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRl
c2NyaXB0aW9uKCJUZXN0IGRlY3J5cHRpbmcgYSBrbm93biBtZXNzYWdlIHdpdGggUlNBRVMtUEtD
UzEtdjFfNS4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBwcml2YXRlS2V5SlNP
TiA9IHsKLSAgICBrdHk6ICJSU0EiLAotICAgIGFsZzogIlJTQTFfNSIsCi0gICAgbjogQmFzZTY0
VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoImRjZmExMGZmYTc0NjY1YWVlZjg3
MDk3NGVhOTliMmNlNTQ1NDdjNjdmNDJhYWE2ZGQwMWEyZWQzMWZkMmMyNDJhZjVkOTYwYjFmODk2
ZWZiYTM1NDNkNjU1NGI3YjEyNjg3YTVjNjg4NTY4ZjMyZTAyNmM1MzJkMjU5OTNiOTdhN2MyODQy
ZWMyYjhlMTIzNWVlZTI0MTRkMjU4MDZjNmZiYWU0Mzg5NTRlYmE5ZDI3NTVkZmZlZWIxYjQ3NzAw
OTU3ODE1YThhMjMzZjk3YjFhMmM3MTRiM2UyYmUyZTQyZDhiZTMwYjE5NjE1ODJlYTk5NDg5MTBl
MGM3OTdjNTBmYzRiYjQ1NWYwZmM0NWU1ZTM0ZTYzOTZhYzViMmQ0NjIzOTM2NWM3ZjNkYWFmMDkw
OTQwMGQ2MWNmOWUwY2E4MDgzZWFmMzM1YTZmY2ViNjg2M2MxY2MwY2Y1YTE3MWFmZjM1ZDk3ZWNi
NjBlZjI1MWM3ZWMyYzhhNTg4MzYxZGM0MTI2NmE0YjdlZDM4YjAyNmNlMGQ1Mzc4NjQ0OWRiYjEx
YTA2ZWEzM2NjZjFlY2E1NzUyMDFlZDFhYTQ3M2VkMTE4N2VjMWQ4YTc0NGVhMzQ1YmVkN2VhMDBl
ZTRlODFiYmE0NjQ4NjAxZGQ1MzdkYzkxMDE1ZDMxZjBjMmMxIikpLAotICAgIGU6IEJhc2U2NFVS
TC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMTAwMDEiKSksCi0gICAgZDogQmFz
ZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjIxOTUwODUxY2RmMjUzMjAz
MThiMzA1YWZhMGYzNzFmMDdhZTVhNDRiMzE0ZWJkNzI5ZjVkY2IxNWRhN2ZhMzk0N2FjZGQ5MTVk
YWVkNTc0YmQxNmRmODhiZjg1ZjYxMDYwYjM4NzE3MmZhZTZlMDEyNjJiMzg2NGMyZDNjMjJmOTRl
MDRhODE1OTQyMmI0ZWQyNzljNDhhNGM5ZDc2N2Q0OTY2MDcxYTViYmY1ZDA0M2UxNmZmNDZlYzFi
YTA3MTZmMDBiYmM5N2JmZjVkNTY5M2UyMTRlOTljOTcyMWYxMmIzZWM2MjgyYWUyYTQ4NTcyMWI5
NmRkY2Y3NDAzZmEwMzdkMGM1N2FiNDYzYzQ0OGRlNWNjMTIyNjVhZGQ4ODZkMzExZWE4ZDhhNTkw
M2ZhNTZjNWYxYzljZjJlYjExY2I2NTdhMWE3ZDNlNDEzNTJkYzNlNjg2ODk4YzRjZTQzMDVlOGI2
MzhlMWIwOGEyYTg2Y2M5ZWI5ODY2ZjM0OTlhYzc3YjYxMzZiODFjYjI3NmQ2MTRjZmViN2I2ZWQz
ZjNiYzc3NWU0NmMwMDA2NmViZWVlMmNmZjcxNjZiNTc1MjA1OTg5NDdmZjYyMTAzMjBiMjg4ZmI0
ZjJjM2Y4ZmU5N2IyNzk0MTRlYmY3MjAzMDAwYTE5ZmMwNDI0ODc1IikpLAotICAgIHA6IEJhc2U2
NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJmMTIzYmZlNTNkZTk3YTU2OWQ5
MWFkY2Y1NTZmYTYyNWFkMzBmM2ZkM2Q4MTFmOWU5MWU2YWY0NGI2ZTc4MGNiMGYzMjc4MjlmYjIx
MTkwYWUyODA2NjQ2ZDcyOGNkOWI2NTMxMTMyYjFlYmZlZjEyNzI5OTMwNjBmMWNlNzBiMTI0Mzkz
MDkxZWU4NTkzYjcyNzM2N2VkYmJhMDA5ZWM1YmUxN2M0YWNlZTEyMGM4NDEyNjdkNDc2MzFhMTZj
MzZhNmQxYzk5OTczYzFiMGI1YTgzNWJmMzlmZWFmZThmNjQyMWZkOWMyYTkwYmMyNzk3NjY1OWU2
N2JjODMxMjRkIikpLAotICAgIHE6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50
OEFycmF5KCJlYTk4MzliN2UzN2VhODliYmRhMjdlNGM5MzQ3MWNiNGZkOTIxODlhMGE5NmJjYjRk
NzU2OTNmMThhNWMyZjc0MmFmOWUzNmZkZTY3OWZiZDllYWUzNDVmYTI2OTUyN2I2OTY1MDIxYzRi
ZGY1NGQ2ODViZjA4OTYwY2M5NzZmNjhkY2EyMWNlYmY0NGYyNjhhNTlkYWI4ZDFhMjVlNTE5ZjUx
NDdlMWY0NWZlMjg3ZDc0Y2Y3MjViZWMxMzI2ZDM0MjEyYzU2Y2Y0ZmZmYTIwMmY1N2I2OGVlOGNj
YTk0M2YzYzEzOGM0Y2RlMzNiZGYyYzk0NDBkZjY1MzIyNDQ1IikpLAotICAgIGRwOiBCYXNlNjRV
Ukwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiY2EwYzliNjBiOGU0YTYwNjY3NTZj
NjVkMjA4ODQxOWRmNjI1M2I3YjY4OGE4NWY0ZjZlOTY0ZDg1ZGFkNTJhNDUyNjI4NjdmMWU5NjE4
MDY5ZmNjZDg2NWU5Mjg5ZTQ2ZTM5ZTIwMjI5NDRjNWM0NDg3ZDM0NWNmMjUyZDQ2MGQ5NzdkNzdl
ZGZlZmVkYmNiYWU0NmEyM2FmN2ZhNDcwZjA3N2RhMGU1MDk0MjA0NGNiMWEzNjA0OTdjYzI3NjBh
YzBmMmFkNGEyZmNkMGU4NGQ3YTFkOTRkZmRkMjY1OGZkOWNlMTg0NzVjMWZhNzVlZTBjZWJhZDBj
ZjBhYzA0ZCIpKSwKLSAgICBkcTogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4
QXJyYXkoIjUyODE3MTIzM2M0ZTRhNmM2M2I4Njc2NGY1MTMzODg0NmFmZGRiY2IyOTU4MzQ0YzAx
YzQwMDRhMWRkODI4MTQ1YTFkMDJhMTUwN2RlZjRmNTgyNDdhNjRmYzEwYzBhMjg4YzFhZTg5NTcy
MWQ3OGI4ZjA0NGRiN2MwMGQ4NmRhNTVhOWI2NTQyOTJlY2Q3NjgyNzBiZTY5ZTRiZDU5MjJkNGVm
ZmQxZjcwOTU1Zjk2MjdlM2UxOWI3NDllOTNiNDBlZjNkZDFkNjFkOTM5MTVlMmIwOWQ5MzBiNGIx
NzY4YmZhY2MwMTM2ZjM5YjBjZmRmYjRkMDUwMDExZTJlNjUiKSksCi0gICAgcWk6IEJhc2U2NFVS
TC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJkZjJlYjIzMjJjYzJkYWFiZjRkMTQ2
NTUwOGY0MTUyMWNkYTdjZWZmMjNlYmU2MWQwMGQ0NDFlZTcyOGRkYTVkMTZjN2JmOTIwY2Q5NWYz
NGJlYjRmZTMyZWU4MTdlZjMzNjJlMGJjZDFkMTI0NWY3YjA3NzkzZWFhMTkwZGM1YTM3ZmRhZjRj
NjhlMmNhMTM5NzJkN2Y1MTQ4Yjc5NmI2ZmI2ZDdhZGRhMDdiZDJjZDEzYmU5OGNlYmVkMWVkYzZj
YTQxMmUzOTUzNTBjNTlhMWQ4NDJiYzRhYTJmM2MwYjI0M2ZkZTdkZmQ5NTM1NmYyNDM5MjUxYTEx
NzJjNDVlIikpCi19OwotCi12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotdmFyIG5vbkV4dHJhY3Rh
YmxlID0gZmFsc2U7Ci0KLWRlYnVnKCJJbXBvcnRpbmcgYW4gUlNBIGtleS4uLiIpOwotY3J5cHRv
LnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5
KHByaXZhdGVLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbImRlY3J5cHQiXSkudGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKLSAgICBwcml2YXRlS2V5ID0gcmVzdWx0OwotCi0gICAgZGVidWco
IkRlY3J5cHRpbmcuLi4iKTsKLSAgICBlbmNyeXB0ZWRNZXNzYWdlID0gaGV4U3RyaW5nVG9VaW50
OEFycmF5KCI2MDQyZTc0NTU4OWFmMDNhZjg3NTIwZjkzYzQ1ZDhjMzU5ODVhZGExMTYxYTM3ZDgy
MmU5Zjk0NjBmYzc1ZmNmMDE3OWQ4NDkxYjhmNWQxZTRkZThjZWIzMWUwN2M0ODY1YzVhM2VmZGJi
YjY5YTg4MDNiODllZTY1YTQzMGE1ODA5YzcwNzU2OTE1MGI1ODBiYjY4NmE5NGM1NTQxYzQ2YWRj
ZDgyNzk2MGNlMjQ0ZmY2ODgzODdkMTYxNmU4NWI0ZDE3ODBjNjQ4MzYwNmNmOTI0YjU0ZjA4MGNm
NDE1NGU2NjgyOWJmNmU1MzI0ODEwNDhlYzQxZmFkYzA3ZDc1NWJiMzRiYjI4MTQ1MjE5Y2IzMGQ0
N2QwZDYxODcwOTE4MGU5MDMwM2ZmOWVmMDkwMThiZWQzZGE3NTc2MWRhNzk0ODExZjk2YmM5ZThk
N2M0YmExYjU5NDZiZGEwYmQzMTNmYWVjNGM5OTNlZDI3NDhlZWQ4Y2NlNGJkYjUyMGJhN2RiMTY1
ZjlmZTU2YWE4NDU0ZDZmZjMzODc0ZmVlZWJmMjlkZTJkZjViN2YwMGFhMWQ5ZmIwNzNmYzQwNjdi
NThkYzUwNjI0ZTEyN2Y3MTFkZGUyY2MyY2ZkYWI0OTE5Y2NmMjhjODM2NjBkZmMyMjdiMGY1MDBl
YzFmOTA0ZiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRlY3J5cHQoIlJTQUVTLVBLQ1Mx
LXYxXzUiLCBwcml2YXRlS2V5LCBlbmNyeXB0ZWRNZXNzYWdlKTsKLX0pLnRoZW4oZnVuY3Rpb24o
cmVzdWx0KSB7Ci0gICAgbWVzc2FnZSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hl
eFN0cmluZyhuZXcgVWludDhBcnJheShtZXNzYWdlKSkiLCAiJzJhYWNlYzg2ZjQyM2RkOTI1ZWMx
NTg4MjJhNzQ4Y2JlNmMzMWEwJyIpOwotCi0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2Ny
aXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8v
c3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtd3JhcC11bndyYXAtYWVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhZXMtcGtjczEtdjFfNS13cmFwLXVud3JhcC1hZXMt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNmI0NDE2YzkwZGU4
YjNmYWI3MzFmMWIxOGE5YWQ3ODRhNGI1MDYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhZXMtcGtjczEt
djFfNS13cmFwLXVud3JhcC1hZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzQg
KzAsMCBAQAotVGVzdCB3cmFwcGluZyBhbmQgdW53cmFwcGluZyBhbiBBRVMga2V5IHdpdGggUlNB
RVMtUEtDUzEtdjFfNS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUltcG9ydGlu
ZyBSU0Ega2V5cy4uLgotSW1wb3J0aW5nIGFuIEFFUyBrZXkuLi4KLVdyYXBwaW5nIGl0Li4uCi1Q
QVNTIHdyYXBwZWRLZXkudG9TdHJpbmcoKSBpcyAnW29iamVjdCBBcnJheUJ1ZmZlcl0nCi1Vbndy
YXBwaW5nIGl0Li4uCi1QQVNTIHVud3JhcHBlZEtleS50b1N0cmluZygpIGlzICdbb2JqZWN0IEtl
eV0nCi1QQVNTIHVud3JhcHBlZEtleS50eXBlIGlzICdzZWNyZXQnCi1QQVNTIHVud3JhcHBlZEtl
eS5leHRyYWN0YWJsZSBpcyB0cnVlCi1QQVNTIHVud3JhcHBlZEtleS5hbGdvcml0aG0ubmFtZSBp
cyAnQUVTLUNCQycKLVBBU1MgdW53cmFwcGVkS2V5LmFsZ29yaXRobS5sZW5ndGggaXMgMjU2Ci1Q
QVNTIHVud3JhcHBlZEtleS51c2FnZXMgaXMgWydkZWNyeXB0JywgJ2VuY3J5cHQnXQotRXhwb3J0
aW5nIGl0Li4uCi1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcodW53cmFwcGVkS2V5RGF0YSkgaXMgYnl0
ZXNUb0hleFN0cmluZyhhZXNLZXlEYXRhKQotCi1XcmFwcGluZyB0aGUgc2FtZSBrZXkgYXMgSldL
Li4uCi1QQVNTIHdyYXBwZWRLZXkudG9TdHJpbmcoKSBpcyAnW29iamVjdCBBcnJheUJ1ZmZlcl0n
Ci1VbndyYXBwaW5nIGl0Li4uCi1QQVNTIHVud3JhcHBlZEtleS50b1N0cmluZygpIGlzICdbb2Jq
ZWN0IEtleV0nCi1QQVNTIHVud3JhcHBlZEtleS50eXBlIGlzICdzZWNyZXQnCi1QQVNTIHVud3Jh
cHBlZEtleS5leHRyYWN0YWJsZSBpcyB0cnVlCi1QQVNTIHVud3JhcHBlZEtleS5hbGdvcml0aG0u
bmFtZSBpcyAnQUVTLUNCQycKLVBBU1MgdW53cmFwcGVkS2V5LmFsZ29yaXRobS5sZW5ndGggaXMg
MjU2Ci1QQVNTIHVud3JhcHBlZEtleS51c2FnZXMgaXMgWydkZWNyeXB0JywgJ2VuY3J5cHQnXQot
RXhwb3J0aW5nIGl0Li4uCi1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcodW53cmFwcGVkS2V5RGF0YSkg
aXMgYnl0ZXNUb0hleFN0cmluZyhhZXNLZXlEYXRhKQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvcnNhZXMtcGtjczEtdjFfNS13cmFwLXVud3JhcC1hZXMuaHRtbCBiL0xheW91dFRl
c3RzL2NyeXB0by9zdWJ0bGUvcnNhZXMtcGtjczEtdjFfNS13cmFwLXVud3JhcC1hZXMuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGZmYTgxYzFiYjU0ZTI0MzZkMGExMmM2OWE2
MTM5MzkxZTg4ZWYzNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtd3JhcC11bndy
YXAtYWVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDMgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCB3cmFwcGlu
ZyBhbmQgdW53cmFwcGluZyBhbiBBRVMga2V5IHdpdGggUlNBRVMtUEtDUzEtdjFfNS4iKTsKLQot
anNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBwdWJsaWNLZXlKU09OID0gewotICAgIGt0eTog
IlJTQSIsCi0gICAgYWxnOiAiUlNBMV81IiwKLSAgICBuOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhl
eFN0cmluZ1RvVWludDhBcnJheSgiZGNmYTEwZmZhNzQ2NjVhZWVmODcwOTc0ZWE5OWIyY2U1NDU0
N2M2N2Y0MmFhYTZkZDAxYTJlZDMxZmQyYzI0MmFmNWQ5NjBiMWY4OTZlZmJhMzU0M2Q2NTU0Yjdi
MTI2ODdhNWM2ODg1NjhmMzJlMDI2YzUzMmQyNTk5M2I5N2E3YzI4NDJlYzJiOGUxMjM1ZWVlMjQx
NGQyNTgwNmM2ZmJhZTQzODk1NGViYTlkMjc1NWRmZmVlYjFiNDc3MDA5NTc4MTVhOGEyMzNmOTdi
MWEyYzcxNGIzZTJiZTJlNDJkOGJlMzBiMTk2MTU4MmVhOTk0ODkxMGUwYzc5N2M1MGZjNGJiNDU1
ZjBmYzQ1ZTVlMzRlNjM5NmFjNWIyZDQ2MjM5MzY1YzdmM2RhYWYwOTA5NDAwZDYxY2Y5ZTBjYTgw
ODNlYWYzMzVhNmZjZWI2ODYzYzFjYzBjZjVhMTcxYWZmMzVkOTdlY2I2MGVmMjUxYzdlYzJjOGE1
ODgzNjFkYzQxMjY2YTRiN2VkMzhiMDI2Y2UwZDUzNzg2NDQ5ZGJiMTFhMDZlYTMzY2NmMWVjYTU3
NTIwMWVkMWFhNDczZWQxMTg3ZWMxZDhhNzQ0ZWEzNDViZWQ3ZWEwMGVlNGU4MWJiYTQ2NDg2MDFk
ZDUzN2RjOTEwMTVkMzFmMGMyYzEiKSksCi0gICAgZTogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhT
dHJpbmdUb1VpbnQ4QXJyYXkoIjAxMDAwMSIpKQotfTsKLQotdmFyIHByaXZhdGVLZXlKU09OID0g
ewotICAgIGt0eTogIlJTQSIsCi0gICAgYWxnOiAiUlNBMV81IiwKLSAgICBuOiBCYXNlNjRVUkwu
c3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiZGNmYTEwZmZhNzQ2NjVhZWVmODcwOTc0
ZWE5OWIyY2U1NDU0N2M2N2Y0MmFhYTZkZDAxYTJlZDMxZmQyYzI0MmFmNWQ5NjBiMWY4OTZlZmJh
MzU0M2Q2NTU0YjdiMTI2ODdhNWM2ODg1NjhmMzJlMDI2YzUzMmQyNTk5M2I5N2E3YzI4NDJlYzJi
OGUxMjM1ZWVlMjQxNGQyNTgwNmM2ZmJhZTQzODk1NGViYTlkMjc1NWRmZmVlYjFiNDc3MDA5NTc4
MTVhOGEyMzNmOTdiMWEyYzcxNGIzZTJiZTJlNDJkOGJlMzBiMTk2MTU4MmVhOTk0ODkxMGUwYzc5
N2M1MGZjNGJiNDU1ZjBmYzQ1ZTVlMzRlNjM5NmFjNWIyZDQ2MjM5MzY1YzdmM2RhYWYwOTA5NDAw
ZDYxY2Y5ZTBjYTgwODNlYWYzMzVhNmZjZWI2ODYzYzFjYzBjZjVhMTcxYWZmMzVkOTdlY2I2MGVm
MjUxYzdlYzJjOGE1ODgzNjFkYzQxMjY2YTRiN2VkMzhiMDI2Y2UwZDUzNzg2NDQ5ZGJiMTFhMDZl
YTMzY2NmMWVjYTU3NTIwMWVkMWFhNDczZWQxMTg3ZWMxZDhhNzQ0ZWEzNDViZWQ3ZWEwMGVlNGU4
MWJiYTQ2NDg2MDFkZDUzN2RjOTEwMTVkMzFmMGMyYzEiKSksCi0gICAgZTogQmFzZTY0VVJMLnN0
cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAxMDAwMSIpKSwKLSAgICBkOiBCYXNlNjRV
Ukwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiMjE5NTA4NTFjZGYyNTMyMDMxOGIz
MDVhZmEwZjM3MWYwN2FlNWE0NGIzMTRlYmQ3MjlmNWRjYjE1ZGE3ZmEzOTQ3YWNkZDkxNWRhZWQ1
NzRiZDE2ZGY4OGJmODVmNjEwNjBiMzg3MTcyZmFlNmUwMTI2MmIzODY0YzJkM2MyMmY5NGUwNGE4
MTU5NDIyYjRlZDI3OWM0OGE0YzlkNzY3ZDQ5NjYwNzFhNWJiZjVkMDQzZTE2ZmY0NmVjMWJhMDcx
NmYwMGJiYzk3YmZmNWQ1NjkzZTIxNGU5OWM5NzIxZjEyYjNlYzYyODJhZTJhNDg1NzIxYjk2ZGRj
Zjc0MDNmYTAzN2QwYzU3YWI0NjNjNDQ4ZGU1Y2MxMjI2NWFkZDg4NmQzMTFlYThkOGE1OTAzZmE1
NmM1ZjFjOWNmMmViMTFjYjY1N2ExYTdkM2U0MTM1MmRjM2U2ODY4OThjNGNlNDMwNWU4YjYzOGUx
YjA4YTJhODZjYzllYjk4NjZmMzQ5OWFjNzdiNjEzNmI4MWNiMjc2ZDYxNGNmZWI3YjZlZDNmM2Jj
Nzc1ZTQ2YzAwMDY2ZWJlZWUyY2ZmNzE2NmI1NzUyMDU5ODk0N2ZmNjIxMDMyMGIyODhmYjRmMmMz
ZjhmZTk3YjI3OTQxNGViZjcyMDMwMDBhMTlmYzA0MjQ4NzUiKSksCi0gICAgcDogQmFzZTY0VVJM
LnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoImYxMjNiZmU1M2RlOTdhNTY5ZDkxYWRj
ZjU1NmZhNjI1YWQzMGYzZmQzZDgxMWY5ZTkxZTZhZjQ0YjZlNzgwY2IwZjMyNzgyOWZiMjExOTBh
ZTI4MDY2NDZkNzI4Y2Q5YjY1MzExMzJiMWViZmVmMTI3Mjk5MzA2MGYxY2U3MGIxMjQzOTMwOTFl
ZTg1OTNiNzI3MzY3ZWRiYmEwMDllYzViZTE3YzRhY2VlMTIwYzg0MTI2N2Q0NzYzMWExNmMzNmE2
ZDFjOTk5NzNjMWIwYjVhODM1YmYzOWZlYWZlOGY2NDIxZmQ5YzJhOTBiYzI3OTc2NjU5ZTY3YmM4
MzEyNGQiKSksCi0gICAgcTogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJy
YXkoImVhOTgzOWI3ZTM3ZWE4OWJiZGEyN2U0YzkzNDcxY2I0ZmQ5MjE4OWEwYTk2YmNiNGQ3NTY5
M2YxOGE1YzJmNzQyYWY5ZTM2ZmRlNjc5ZmJkOWVhZTM0NWZhMjY5NTI3YjY5NjUwMjFjNGJkZjU0
ZDY4NWJmMDg5NjBjYzk3NmY2OGRjYTIxY2ViZjQ0ZjI2OGE1OWRhYjhkMWEyNWU1MTlmNTE0N2Ux
ZjQ1ZmUyODdkNzRjZjcyNWJlYzEzMjZkMzQyMTJjNTZjZjRmZmZhMjAyZjU3YjY4ZWU4Y2NhOTQz
ZjNjMTM4YzRjZGUzM2JkZjJjOTQ0MGRmNjUzMjI0NDUiKSksCi0gICAgZHA6IEJhc2U2NFVSTC5z
dHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJjYTBjOWI2MGI4ZTRhNjA2Njc1NmM2NWQy
MDg4NDE5ZGY2MjUzYjdiNjg4YTg1ZjRmNmU5NjRkODVkYWQ1MmE0NTI2Mjg2N2YxZTk2MTgwNjlm
Y2NkODY1ZTkyODllNDZlMzllMjAyMjk0NGM1YzQ0ODdkMzQ1Y2YyNTJkNDYwZDk3N2Q3N2VkZmVm
ZWRiY2JhZTQ2YTIzYWY3ZmE0NzBmMDc3ZGEwZTUwOTQyMDQ0Y2IxYTM2MDQ5N2NjMjc2MGFjMGYy
YWQ0YTJmY2QwZTg0ZDdhMWQ5NGRmZGQyNjU4ZmQ5Y2UxODQ3NWMxZmE3NWVlMGNlYmFkMGNmMGFj
MDRkIikpLAotICAgIGRxOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJh
eSgiNTI4MTcxMjMzYzRlNGE2YzYzYjg2NzY0ZjUxMzM4ODQ2YWZkZGJjYjI5NTgzNDRjMDFjNDAw
NGExZGQ4MjgxNDVhMWQwMmExNTA3ZGVmNGY1ODI0N2E2NGZjMTBjMGEyODhjMWFlODk1NzIxZDc4
YjhmMDQ0ZGI3YzAwZDg2ZGE1NWE5YjY1NDI5MmVjZDc2ODI3MGJlNjllNGJkNTkyMmQ0ZWZmZDFm
NzA5NTVmOTYyN2UzZTE5Yjc0OWU5M2I0MGVmM2RkMWQ2MWQ5MzkxNWUyYjA5ZDkzMGI0YjE3Njhi
ZmFjYzAxMzZmMzliMGNmZGZiNGQwNTAwMTFlMmU2NSIpKSwKLSAgICBxaTogQmFzZTY0VVJMLnN0
cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoImRmMmViMjMyMmNjMmRhYWJmNGQxNDY1NTA4
ZjQxNTIxY2RhN2NlZmYyM2ViZTYxZDAwZDQ0MWVlNzI4ZGRhNWQxNmM3YmY5MjBjZDk1ZjM0YmVi
NGZlMzJlZTgxN2VmMzM2MmUwYmNkMWQxMjQ1ZjdiMDc3OTNlYWExOTBkYzVhMzdmZGFmNGM2OGUy
Y2ExMzk3MmQ3ZjUxNDhiNzk2YjZmYjZkN2FkZGEwN2JkMmNkMTNiZTk4Y2ViZWQxZWRjNmNhNDEy
ZTM5NTM1MGM1OWExZDg0MmJjNGFhMmYzYzBiMjQzZmRlN2RmZDk1MzU2ZjI0MzkyNTFhMTE3MmM0
NWUiKSkKLX07Ci12YXIgd3JhcEFsZ29yaXRobSA9IHtuYW1lOiAiUlNBRVMtUEtDUzEtdjFfNSJ9
OwotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLXZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOwot
Ci1kZWJ1ZygiSW1wb3J0aW5nIFJTQSBrZXlzLi4uIik7Ci1jcnlwdG8uc3VidGxlLmltcG9ydEtl
eSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHVibGljS2V5SlNPTikp
LCBudWxsLCBleHRyYWN0YWJsZSwgWyJ3cmFwS2V5IiwgInVud3JhcEtleSJdKS50aGVuKGZ1bmN0
aW9uKHJlc3VsdCkgewotICAgIHB1YmxpY0tleSA9IHJlc3VsdDsKLSAgICByZXR1cm4gY3J5cHRv
LnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5
KHByaXZhdGVLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbIndyYXBLZXkiLCAidW53cmFw
S2V5Il0pOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBwcml2YXRlS2V5ID0gcmVz
dWx0OwotCi0gICAgZGVidWcoIkltcG9ydGluZyBhbiBBRVMga2V5Li4uIik7Ci0gICAgYWVzS2V5
RGF0YSA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiNjAzZGViMTAxNWNhNzFiZTJiNzNhZWYwODU3
ZDc3ODExZjM1MmMwNzNiNjEwOGQ3MmQ5ODEwYTMwOTE0ZGZmNCIpOwotICAgIHJldHVybiBjcnlw
dG8uc3VidGxlLmltcG9ydEtleSgicmF3IiwgYWVzS2V5RGF0YSwgImFlcy1jYmMiLCBleHRyYWN0
YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSIsICJ1bndyYXBLZXkiXSkKLX0p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgYWVzS2V5ID0gcmVzdWx0OwotICAgIGRlYnVn
KCJXcmFwcGluZyBpdC4uLiIpOwotCi0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUud3JhcEtleSgi
cmF3IiwgYWVzS2V5LCBwdWJsaWNLZXksIHdyYXBBbGdvcml0aG0pOwotfSkudGhlbihmdW5jdGlv
bihyZXN1bHQpIHsKLSAgICB3cmFwcGVkS2V5ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJ3cmFw
cGVkS2V5LnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgQXJyYXlCdWZmZXJdJyIpOwotCi0gICAgZGVi
dWcoIlVud3JhcHBpbmcgaXQuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS51bndyYXBL
ZXkoInJhdyIsIHdyYXBwZWRLZXksIHByaXZhdGVLZXksIHdyYXBBbGdvcml0aG0sICJhZXMtY2Jj
IiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pOwotfSkudGhlbihmdW5jdGlv
bihyZXN1bHQpIHsKLSAgICB1bndyYXBwZWRLZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoInVu
d3JhcHBlZEtleS50b1N0cmluZygpIiwgIidbb2JqZWN0IEtleV0nIik7Ci0gICAgc2hvdWxkQmUo
InVud3JhcHBlZEtleS50eXBlIiwgIidzZWNyZXQnIik7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBl
ZEtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS5h
bGdvcml0aG0ubmFtZSIsICInQUVTLUNCQyciKTsKLSAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5
LmFsZ29yaXRobS5sZW5ndGgiLCAiMjU2Iik7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS51
c2FnZXMiLCAiWydkZWNyeXB0JywgJ2VuY3J5cHQnXSIpOwotCi0gICAgZGVidWcoIkV4cG9ydGlu
ZyBpdC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgicmF3IiwgdW53
cmFwcGVkS2V5KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgdW53cmFwcGVkS2V5
RGF0YSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyh1bndyYXBwZWRL
ZXlEYXRhKSIsICJieXRlc1RvSGV4U3RyaW5nKGFlc0tleURhdGEpIik7Ci0KLSAgICBkZWJ1Zygi
XG5XcmFwcGluZyB0aGUgc2FtZSBrZXkgYXMgSldLLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5z
dWJ0bGUud3JhcEtleSgiandrIiwgYWVzS2V5LCBwdWJsaWNLZXksIHdyYXBBbGdvcml0aG0pOwot
fSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB3cmFwcGVkS2V5ID0gcmVzdWx0OwotICAg
IHNob3VsZEJlKCJ3cmFwcGVkS2V5LnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgQXJyYXlCdWZmZXJd
JyIpOwotCi0gICAgZGVidWcoIlVud3JhcHBpbmcgaXQuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRv
LnN1YnRsZS51bndyYXBLZXkoImp3ayIsIHdyYXBwZWRLZXksIHByaXZhdGVLZXksIHdyYXBBbGdv
cml0aG0sICJhZXMtY2JjIiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pOwot
fSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB1bndyYXBwZWRLZXkgPSByZXN1bHQ7Ci0g
ICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS50b1N0cmluZygpIiwgIidbb2JqZWN0IEtleV0nIik7
Ci0gICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS50eXBlIiwgIidzZWNyZXQnIik7Ci0gICAgc2hv
dWxkQmUoInVud3JhcHBlZEtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUo
InVud3JhcHBlZEtleS5hbGdvcml0aG0ubmFtZSIsICInQUVTLUNCQyciKTsKLSAgICBzaG91bGRC
ZSgidW53cmFwcGVkS2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMjU2Iik7Ci0gICAgc2hvdWxkQmUo
InVud3JhcHBlZEtleS51c2FnZXMiLCAiWydkZWNyeXB0JywgJ2VuY3J5cHQnXSIpOwotCi0gICAg
ZGVidWcoIkV4cG9ydGluZyBpdC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmV4cG9y
dEtleSgicmF3IiwgdW53cmFwcGVkS2V5KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0g
ICAgdW53cmFwcGVkS2V5RGF0YSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0
cmluZyh1bndyYXBwZWRLZXlEYXRhKSIsICJieXRlc1RvSGV4U3RyaW5nKGFlc0tleURhdGEpIik7
Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81
LWdlbmVyYXRlLWtleS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3Jz
YXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGM3NGFhYjExYTQ3NTIyMzdkNWRjOTRkNDNhZGE3MWRhZTI2ZTZhYjIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvY3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1rZXktZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotVGVzdCBnZW5lcmF0aW5nIGFuIFJT
QSBrZXkgcGFpciBmb3IgUlNBU1NBLVBLQ1MxLXYxXzUuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KLQotCi1HZW5lcmF0aW5nIGEga2V5IHBhaXIuLi4KLVBBU1Mga2V5UGFpci50b1N0cmlu
ZygpIGlzICdbb2JqZWN0IEtleVBhaXJdJwotUEFTUyBrZXlQYWlyLnB1YmxpY0tleS50eXBlIGlz
ICdwdWJsaWMnCi1QQVNTIGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FT
U0EtUEtDUzEtdjFfNScKLVBBU1Mga2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm1vZHVsdXNM
ZW5ndGggaXMgMjA0OAotUEFTUyBieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIucHVibGljS2V5LmFs
Z29yaXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKLVBBU1Mga2V5UGFpci5wdWJsaWNL
ZXkuYWxnb3JpdGhtLmhhc2ggaXMgdW5kZWZpbmVkLgotUEFTUyBrZXlQYWlyLnByaXZhdGVLZXku
dHlwZSBpcyAncHJpdmF0ZScKLVBBU1Mga2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5uYW1l
IGlzICdSU0FTU0EtUEtDUzEtdjFfNScKLVBBU1Mga2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRo
bS5tb2R1bHVzTGVuZ3RoIGlzIDIwNDgKLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhrZXlQYWlyLnBy
aXZhdGVLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJwotUEFTUyBrZXlQ
YWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLmhhc2ggaXMgdW5kZWZpbmVkLgotCi1UZXN0aW5nIHRo
YXQgY3VzdG9tIGF0dHJpYnV0ZXMgb24ga2V5cyBzdXJ2aXZlIGdhcmJhZ2UgY29sbGVjdGlvbi4u
LgotUEFTUyBrZXlQYWlyLnB1YmxpY0tleS5mb28gaXMgJ2JhcicKLVBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS13aXRoLWxlYWRp
bmctemVyb2VzLWluLWV4cG9uZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by9z
dWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5LXdpdGgtbGVhZGluZy16ZXJvZXMt
aW4tZXhwb25lbnQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
NDU1Y2QwNmJlNGIxNGRmZGFjZjIzODczZTg4ODNhNWFjZDE5OTBjLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUv
cnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5LXdpdGgtbGVhZGluZy16ZXJvZXMtaW4tZXhw
b25lbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotVGVzdCBn
ZW5lcmF0aW5nIGFuIFJTQSBrZXkgcGFpciBmb3IgUlNBU1NBLVBLQ1MxLXYxXzUgd2hlbiBleHBv
bmVudCBoYXMgbGVhZGluZyB6ZXJvZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQot
Ci1HZW5lcmF0aW5nIGEga2V5IHBhaXIuLi4KLVBBU1Mga2V5UGFpci50b1N0cmluZygpIGlzICdb
b2JqZWN0IEtleVBhaXJdJwotUEFTUyBrZXlQYWlyLnB1YmxpY0tleS50eXBlIGlzICdwdWJsaWMn
Ci1QQVNTIGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FTU0EtUEtDUzEt
djFfNScKLVBBU1Mga2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGggaXMg
MjA0OAotUEFTUyBieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5w
dWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhrZXlQYWly
LnByaXZhdGVLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJwotUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5
LXdpdGgtbGVhZGluZy16ZXJvZXMtaW4tZXhwb25lbnQuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5LXdpdGgtbGVhZGluZy16ZXJv
ZXMtaW4tZXhwb25lbnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTkzNzcy
YTk0YjlhZjFiNTRhZTRlNTU5MjYxNzQxY2Q3M2ZmNjE3MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNz
YS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS13aXRoLWxlYWRpbmctemVyb2VzLWluLWV4cG9uZW50
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IGdlbmVyYXRpbmcgYW4g
UlNBIGtleSBwYWlyIGZvciBSU0FTU0EtUEtDUzEtdjFfNSB3aGVuIGV4cG9uZW50IGhhcyBsZWFk
aW5nIHplcm9lcy4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBhbGdvcml0aG1L
ZXlHZW4gPSB7Ci0gICAgbmFtZTogIlJTQVNTQS1QS0NTMS12MV81IiwKLSAgICAvLyBSc2FLZXlH
ZW5QYXJhbXMKLSAgICBtb2R1bHVzTGVuZ3RoOiAyMDQ4LAotICAgIHB1YmxpY0V4cG9uZW50OiBu
ZXcgVWludDhBcnJheShbMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMCwg
MHgwMV0pLCAgLy8gRXF1aXZhbGVudCB0byA2NTUzNwotfTsKLXZhciBleHRyYWN0YWJsZSA9IHRy
dWU7Ci0KLWRlYnVnKCJHZW5lcmF0aW5nIGEga2V5IHBhaXIuLi4iKTsKLWNyeXB0by5zdWJ0bGUu
Z2VuZXJhdGVLZXkoYWxnb3JpdGhtS2V5R2VuLCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlm
eSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtleVBhaXIgPSByZXN1bHQ7Ci0gICAg
c2hvdWxkQmUoImtleVBhaXIudG9TdHJpbmcoKSIsICInW29iamVjdCBLZXlQYWlyXSciKTsKLSAg
ICBzaG91bGRCZSgia2V5UGFpci5wdWJsaWNLZXkudHlwZSIsICIncHVibGljJyIpOwotICAgIHNo
b3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0ubmFtZSIsICInUlNBU1NBLVBLQ1Mx
LXYxXzUnIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5tb2R1
bHVzTGVuZ3RoIiwgIjIwNDgiKTsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhrZXlQ
YWlyLnB1YmxpY0tleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwgIicwMTAwMDEnIik7Ci0g
ICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcoa2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRo
bS5wdWJsaWNFeHBvbmVudCkiLCAiJzAxMDAwMSciKTsKLQotICAgIGZpbmlzaEpTVGVzdCgpOwot
fSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1rZXkuaHRtbCBiL0xh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5Lmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEzN2Y3MmRlZDU4NTQwMjZhYjgzNGEx
M2EyZTM4NDAzMzU2NzM2ZjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5l
cmF0ZS1rZXkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgZ2VuZXJh
dGluZyBhbiBSU0Ega2V5IHBhaXIgZm9yIFJTQVNTQS1QS0NTMS12MV81LiIpOwotCi1qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKLQotdmFyIGFsZ29yaXRobUtleUdlbiA9IHsKLSAgICBuYW1lOiAiUlNB
U1NBLVBLQ1MxLXYxXzUiLAotICAgIC8vIFJzYUtleUdlblBhcmFtcwotICAgIG1vZHVsdXNMZW5n
dGg6IDIwNDgsCi0gICAgcHVibGljRXhwb25lbnQ6IG5ldyBVaW50OEFycmF5KFsweDAxLCAweDAw
LCAweDAxXSksICAvLyBFcXVpdmFsZW50IHRvIDY1NTM3Ci19OwotdmFyIGV4dHJhY3RhYmxlID0g
dHJ1ZTsKLQotZGVidWcoIkdlbmVyYXRpbmcgYSBrZXkgcGFpci4uLiIpOwotY3J5cHRvLnN1YnRs
ZS5nZW5lcmF0ZUtleShhbGdvcml0aG1LZXlHZW4sIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVy
aWZ5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5UGFpciA9IHJlc3VsdDsKLSAg
ICBzaG91bGRCZSgia2V5UGFpci50b1N0cmluZygpIiwgIidbb2JqZWN0IEtleVBhaXJdJyIpOwot
ICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tleS50eXBlIiwgIidwdWJsaWMnIik7Ci0gICAg
c2hvdWxkQmUoImtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5uYW1lIiwgIidSU0FTU0EtUEtD
UzEtdjFfNSciKTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm1v
ZHVsdXNMZW5ndGgiLCAiMjA0OCIpOwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKGtl
eVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAxMDAwMSciKTsK
LSAgICBzaG91bGRCZVVuZGVmaW5lZCgia2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLmhhc2gi
KTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wcml2YXRlS2V5LnR5cGUiLCAiJ3ByaXZhdGUnIik7
Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ubmFtZSIsICInUlNB
U1NBLVBLQ1MxLXYxXzUnIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHJpdmF0ZUtleS5hbGdv
cml0aG0ubW9kdWx1c0xlbmd0aCIsICIyMDQ4Iik7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhT
dHJpbmcoa2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAx
MDAwMSciKTsKLSAgICBzaG91bGRCZVVuZGVmaW5lZCgia2V5UGFpci5wcml2YXRlS2V5LmFsZ29y
aXRobS5oYXNoIik7Ci0KLSAgICBkZWJ1ZygiXG5UZXN0aW5nIHRoYXQgY3VzdG9tIGF0dHJpYnV0
ZXMgb24ga2V5cyBzdXJ2aXZlIGdhcmJhZ2UgY29sbGVjdGlvbi4uLiIpOwotICAgIGtleVBhaXIu
cHVibGljS2V5LmZvbyA9ICJiYXIiOwotICAgIGdjKCk7Ci0gICAgc2V0VGltZW91dChmdW5jdGlv
bigpIHsKLSAgICAgICAgZ2MoKTsKLSAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tleS5mb28iLCAiJ2JhciciKTsKLSAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9LCAwKTsKLSAgICB9LCAwKTsKLX0p
OwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NyeXB0by9zdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2st
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMmNjYjQ3ODk3ZTFl
MjBkYTk4NTYxMjBiZDUxMWE4OWIyN2VkMmY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhc3NhLXBrY3Mx
LXYxXzUtaW1wb3J0LWp3ay1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCww
IEBACi1UZXN0IGltcG9ydGluZyBhbiBSU0Ega2V5IGZvciBSU0FTU0EtUEtDUzEtdjFfNS4KLQot
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUltcG9ydGluZyBhIHB1YmxpYyBrZXkuLi4K
LVBBU1MgcHVibGljS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgS2V5XScKLVBBU1MgcHVibGlj
S2V5LnR5cGUgaXMgJ3B1YmxpYycKLVBBU1MgcHVibGljS2V5LnVzYWdlcyBpcyBbJ3NpZ24nLCd2
ZXJpZnknXQotUEFTUyBwdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JTQVNTQS1QS0NTMS12
MV81JwotUEFTUyBwdWJsaWNLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGggaXMgMjA0OAotUEFT
UyBieXRlc1RvSGV4U3RyaW5nKHB1YmxpY0tleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlz
ICcwMTAwMDEnCi1QQVNTIHB1YmxpY0tleS5hbGdvcml0aG0uaGFzaC5uYW1lIGlzICdTSEEtMjU2
JwotCi1JbXBvcnRpbmcgYSBwcml2YXRlIGtleS4uLgotUEFTUyBwcml2YXRlS2V5LnRvU3RyaW5n
KCkgaXMgJ1tvYmplY3QgS2V5XScKLVBBU1MgcHJpdmF0ZUtleS50eXBlIGlzICdwcml2YXRlJwot
UEFTUyBwcml2YXRlS2V5LnVzYWdlcyBpcyBbJ3NpZ24nLCd2ZXJpZnknXQotUEFTUyBwcml2YXRl
S2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScKLVBBU1MgcHJpdmF0ZUtl
eS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4Ci1QQVNTIGJ5dGVzVG9IZXhTdHJpbmco
cHJpdmF0ZUtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcwMTAwMDEnCi1QQVNTIHBy
aXZhdGVLZXkuYWxnb3JpdGhtLmhhc2gubmFtZSBpcyAnU0hBLTI1NicKLVBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2stc21hbGwta2V5
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhc3NhLXBrY3MxLXYx
XzUtaW1wb3J0LWp3ay1zbWFsbC1rZXktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjMzk1MmIyNDA2ZGQ2NmExMWE2MDRlMmYwNWFlZDQwMDQyY2Q2MzAzLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1zbWFsbC1rZXktZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotQSBrZXkgb2Ygc2l6ZSAyMDQ4
IGJpdHMgb3IgbGFyZ2VyIE1VU1QgYmUgdXNlZCB3aXRoIFJTMjU2LCBSUzM4NCwgUlM1MTIgSldL
IGFsZ29yaXRobXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGNyeXB0
by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lm
eShwdWJsaWNLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0p
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEtleSBzaXplIGlzIG5vdCB2YWxpZCBmb3IgUlMy
NTYuCi1QQVNTIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJh
eShKU09OLnN0cmluZ2lmeShwcml2YXRlS2V5SlNPTikpLCBudWxsLCBleHRyYWN0YWJsZSwgWyJz
aWduIiwgInZlcmlmeSJdKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBLZXkgc2l6ZSBpcyBu
b3QgdmFsaWQgZm9yIFJTNTEyLgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1U
RVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNh
c3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1zbWFsbC1rZXkuaHRtbCBiL0xheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1zbWFsbC1rZXkuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTQ4OTY3YzgyZWM4YWMxNDVmNDdkMjkyNGY4
Mzg2OWY4NjJkM2ZmZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1q
d2stc21hbGwta2V5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpz
Ij48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJBIGtleSBv
ZiBzaXplIDIwNDggYml0cyBvciBsYXJnZXIgTVVTVCBiZSB1c2VkIHdpdGggUlMyNTYsIFJTMzg0
LCBSUzUxMiBKV0sgYWxnb3JpdGhtcy4iKTsKLQotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLQot
Ly8gb3BlbnNzbCBnZW5yc2EgMTAyNCA+MTAyNC5wZW0KLS8vIG9wZW5zc2wgYXNuMXBhcnNlIC1p
biAxMDI0LnBlbQotdmFyIHB1YmxpY0tleUpTT04gPSB7Ci0gICAga3R5OiAiUlNBIiwKLSAgICBh
bGc6ICJSUzI1NiIsCi0gICAgbjogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4
QXJyYXkoIkI3RjEwM0Y4NDEyQ0NEMjZGNUQ1NEZDMzE1N0NEOENFMUYxMzRGNEVBQkYwQTA0MjM1
MEJERDdGMDBGRUEyQjc3RUVGMTk5MTVCMTBBQTI0MTdCQjJDQjRFQzFENTdCOTY2MUEyMDA3MjQ2
OUI5REY5QzZFODlDQjM1Q0NDODU0M0NDNDA3NzBEQ0MzMEQwQkJGRjFCRjlEQTFFMjU0OUY0MDQ3
NkVEQURCOTMxMjk4NURBRThDNzUyN0MxQzEyQUFGRURGNDU4NDk4OTk2OENEQ0M5RUZFQjE5NzQz
OEM1MzREMUJGQUFDMzBCMUQ0MUY3NUVBREI4NkNDNTgxQjkiKSksCi0gICAgZTogQmFzZTY0VVJM
LnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAxMDAwMSIpKQotfTsKLQotdmFyIHBy
aXZhdGVLZXlKU09OID0gewotICAgIGt0eTogIlJTQSIsCi0gICAgYWxnOiAiUlM1MTIiLAotICAg
IG46IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJCN0YxMDNGODQx
MkNDRDI2RjVENTRGQzMxNTdDRDhDRTFGMTM0RjRFQUJGMEEwNDIzNTBCREQ3RjAwRkVBMkI3N0VF
RjE5OTE1QjEwQUEyNDE3QkIyQ0I0RUMxRDU3Qjk2NjFBMjAwNzI0NjlCOURGOUM2RTg5Q0IzNUND
Qzg1NDNDQzQwNzcwRENDMzBEMEJCRkYxQkY5REExRTI1NDlGNDA0NzZFREFEQjkzMTI5ODVEQUU4
Qzc1MjdDMUMxMkFBRkVERjQ1ODQ5ODk5NjhDRENDOUVGRUIxOTc0MzhDNTM0RDFCRkFBQzMwQjFE
NDFGNzVFQURCODZDQzU4MUI5IikpLAotICAgIGU6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3Ry
aW5nVG9VaW50OEFycmF5KCIwMTAwMDEiKSksCi0gICAgZDogQmFzZTY0VVJMLnN0cmluZ2lmeSho
ZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjVCQTZGNEYyNkIwRjM2QkRCNUZBNkVCRUU2RTMwOTY4NTMy
NTlDRkJCNzQyQjNBN0E5QTREQURERTA5MjAwNjNFQzE0OTkyOUNCMzU1NzgxOUE2RDgyNEUzN0U0
M0IwNEJGMzIzRjQ5MkZDNDlBODAyODAzMTAxN0I4MUJFQ0E4RUMyQTg1QUJDRjE5MzUwMUQ4MERD
MjUxREI4ODYzQjg2NzNEOEI2NzcyREIyRDJBRTA4Q0QxODI5QzNGNTQyMTQxNDYxQ0FDRTRFOEEx
RjExMkFEMTNGRjRBNEREODY1QTg5QUVBOTRFOTg0RDQ4N0U1Nzk4RUYwNzY0M0I5Q0QiKSksCi0g
ICAgcDogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIkUwNkJGRTU3
MjJBNjhFNUQ1OTdERDhEQjkzNzQ4M0NCQTM1MkFCODE3MjA5Mjc1QURBRDEwMzc3MkI3QThFRjRF
QTk0NjMxMUEyQjUxODA1OTU5ODE4Q0VCMzYyRjI1N0Q2OTk4QjQ3NUZFQTlFMzRGMkEzMDIwNUI1
RjVBN0ZGIikpLAotICAgIHE6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFy
cmF5KCJEMUQyREJEQjFGNERDQkZFOEQxNkNERDJDRjgzQzdCNUZBREZDNzg5MUYyMkZDNTI3QkYy
MDhGODFCOTJGMjU0MzU2OUMzQUQyMjIyNEI4MkQ0MDdERUI2NUY2NTFEMDlEMjU1OEZFRThCQzZF
NURBNTFGNkYxMzIwNkNDMTY0NyIpKSwKLSAgICBkcDogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhT
dHJpbmdUb1VpbnQ4QXJyYXkoIjczRUNCNEYzRDNBRDRGNkFCRUY4NzdENTZDODRDQTMzOUQ4OEVE
OThBRjBDMzU2RDA0MENFNThBNjA0NjJEQTQyQkFDM0NDNDc2NTRBRjM0RUI0MjI2QzY1NkY5NkM4
RjlEMDVCMTYxNEMxNTg4NjU3NzU0NjY4RTA2QTBGRjg3IikpLAotICAgIGRxOiBCYXNlNjRVUkwu
c3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiNUI5QzVBQ0RCMzNGM0U1RkU3QUUxQjMz
N0REMzI1QjEzOEQ1RDdDMkYwQ0I0RkFCOUJERTMzMzg1MEExQkExODM2MzFGNTczNzQ0MUQxMDI1
MDFEMTc4QTNDRTA2MkVCNTRFMDcyQjU0RTY2MEIxOTY1NEMxMjQ3MkI1Qzk0MjUiKSksCi0gICAg
cWk6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJENkE5MjBCMjQx
MTc4OTIzQzU5QkNCRDFBODE1NzY0NjE5MjI1QTkwRjJDMDkwQTlGQkQ1OTRBNjE1NjE1NDJEMERG
MTc5NTkwNDEzQzI2QzhBNzJGQzZFMTRFQzYzQTM3NzE2OTk3MDY3MUIzQTFFQjVFNEY0REYxQTRD
QTcyNSIpKQotfTsKLQotc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2si
LCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShwdWJsaWNLZXlKU09OKSksIG51bGws
IGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pJyk7Ci1zaG91bGRUaHJvdygnY3J5cHRv
LnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5
KHByaXZhdGVLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0p
Jyk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1pbXBvcnQtandrLmh0bWwgYi9MYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2suaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjdiZTg3ZjIyOGYwNjJhMTgyOGQyZjMxMGJi
MTVkNzFiNzdkNDYxNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1q
d2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgaW1wb3J0aW5nIGFu
IFJTQSBrZXkgZm9yIFJTQVNTQS1QS0NTMS12MV81LiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKLQotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLQotdmFyIHB1YmxpY0tleUpTT04gPSB7Ci0g
ICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSUzI1NiIsCi0gICAgbjogInJjQ1VDdjdPYzFIVmFt
MURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRM
UnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0
Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJs
ZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURq
bUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFy
NFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCi0gICAgZTogIkFR
QUIiCi19OwotCi12YXIgcHJpdmF0ZUtleUpTT04gPSB7Ci0gICAga3R5OiAiUlNBIiwKLSAgICBh
bGc6ICJSUzI1NiIsCi0gICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4
Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElH
Z1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNE
aEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3Va
OTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lF
eTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1K
RFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCi0gICAgZTogIkFRQUIiLAotICAgIGQ6ICJlTkxTMzdh
Q3o3UlhTTlBEX0R0TEJKNmo1VDhjU3hkelJCQ2pQYUk2V2NHcUpwMTZscTNVVHd1b0RMQXFsQTlv
R1ltMjM4ZHNJV3B1dWNQX2xRdGJXZS03U3B4b0k2X3ZtWUdmN1lWVUh2MS1ERjlxaU9tU3JNbWR4
TW5WT3pZWFk4UmFUNnRoUGpuX0o1Y2ZMVjJ4SV9Md3NyTXRtcGRTeU5sZ1gwelRVaHd0dWFoZ0FL
TUVDaFlqSDJFbmpIZEh3NnNZMi13QXBkY1FJN1VMRTBvbzVSemJRWnBtdWhjTjloaUJjMEwzaGhG
MHFvNTBtYmwwMl82NV9HUTdEcFZrWEJ4TmdSQkx6bFBhYm16ekcyb0FoZmVmTGdZbVNDMW9wYUNr
WEU2dlJXUU5XTkw0NVJaTlpGWU0zdW9KZ2hPTXFHZW9jTTBCcGpkQ2hIclBPbEZ2U1EiLAotICAg
IHA6ICI0bWlUdUFqS01lSDV1SjVLQjM5N1FVd2hia1lFZ1NiY0EybWlmbVNrdkUyMDE4Z2I1NXFr
QkhLMWVWcnlmMV9tNDNMTmxjNk9fYWs2Z2Z6ZFpJWnZTNU5DR2pQbDBxMDlwbFVwdThxRk9Tc3BC
d0E2N3FHSDc2bEZsWkxuX2Q0eWdsUzd3ZkxydTRfNVlzOHFMTHMtRHFWTHZpd3Bvc09ueXlXcXdN
NUFYcDAiLAotICAgIHE6ICJ4SFlyemtpdnRtbnpfc0djaG5XR2MwcS1wRE9rS2ljcHRScHYycE1G
SUlYeG5GWDVhTWVFWElaalZ1alh0d1V5MVVsRklOMkdaSlN2eTVLSjc5bXVfWHlObkZITXplZEgt
QTNlZTN1OGgxVVVyWkYtdlV1MV9lNFVfeDY3Tk4xZGVkelVTS3luTjdwRmwzT2t1U2hNQldHVi1j
d3pPUGRjVkFmVnVabHhVTWMiLAotICAgIGRwOiAiZkJ6RHpZRFVCbUJRR29wN0huMGR2Zl9UMjdW
NlJxcGN0V28wNzRDUVpjRmJQMmF0RlZ0S1NqM3ZpV1QzeGlkMlZIemNnaURIZGZwTTNuRVZsRU8x
d3dJb25HQ1N2ZGpHRU9aaWlGVk9qclpBT1Z4QThndU9qeXlGdnFiWGtlMDZWd1BJSVZ2ZktlU1Uy
enVoYlBfXzF0dDZGX2Z4b3c0S2IyeG9uR1QwR0drIiwKLSAgICBkcTogImptRTJEaUlQZGh3RGdM
WEFRcElhQnFRODFiTzNYZlZUX0xSVUxBd3d3d2xQdVFWMTQ4SDA0emxoOVRKNlkyR1pIWW9rVjFV
MGVPQnBKeGZrYjdkTFl0cEpwdWlCalJmNHlJVUVvR2xra0lfUWxKbkZTRnItWWpHUmRmTkhxV0Jr
eGxTTVpMNzcwUjltSUFUbmRHa0g3ejV4LXI5S3dCWkZDNEZDRzJoZ196RSIsCi0gICAgcWk6ICJZ
Q1hfcEx3Yk1CQTFUaFZIMFdjd21ueXRxTmNyTUNFd1RtN0J5QTJlVTZuV2JRclVMdmY3bTlfa3pm
TFVjanNucEFWbEJRRzVKTVhNeTBTcTRwdHdieXdzYTUtRzhLQU9PT1IyTDN2NGhDLUV5czlmdGdG
TV8zaTBvNDBlZVFINGIzaGFQYm50ckllTWc4SXpsT3VWWUtmOS0yUXVLRG9XZVJkZDdOc2R4VGsi
Ci19OwotCi1kZWJ1ZygiSW1wb3J0aW5nIGEgcHVibGljIGtleS4uLiIpOwotY3J5cHRvLnN1YnRs
ZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KHB1Ymxp
Y0tleUpTT04pKSwgbnVsbCwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSkudGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKLSAgICBwdWJsaWNLZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUo
InB1YmxpY0tleS50b1N0cmluZygpIiwgIidbb2JqZWN0IEtleV0nIik7Ci0gICAgc2hvdWxkQmUo
InB1YmxpY0tleS50eXBlIiwgIidwdWJsaWMnIik7Ci0gICAgc2hvdWxkQmUoInB1YmxpY0tleS51
c2FnZXMiLCAiWydzaWduJywndmVyaWZ5J10iKTsKLSAgICBzaG91bGRCZSgicHVibGljS2V5LmFs
Z29yaXRobS5uYW1lIiwgIidSU0FTU0EtUEtDUzEtdjFfNSciKTsKLSAgICBzaG91bGRCZSgicHVi
bGljS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIiwgIjIwNDgiKTsKLSAgICBzaG91bGRCZSgi
Ynl0ZXNUb0hleFN0cmluZyhwdWJsaWNLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSIsICIn
MDEwMDAxJyIpOwotICAgIHNob3VsZEJlKCJwdWJsaWNLZXkuYWxnb3JpdGhtLmhhc2gubmFtZSIs
ICInU0hBLTI1NiciKTsKLSAgICBkZWJ1ZygiXG5JbXBvcnRpbmcgYSBwcml2YXRlIGtleS4uLiIp
OwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4
QXJyYXkoSlNPTi5zdHJpbmdpZnkocHJpdmF0ZUtleUpTT04pKSwgbnVsbCwgZXh0cmFjdGFibGUs
IFsic2lnbiIsICJ2ZXJpZnkiXSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHBy
aXZhdGVLZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoInByaXZhdGVLZXkudG9TdHJpbmcoKSIs
ICInW29iamVjdCBLZXldJyIpOwotICAgIHNob3VsZEJlKCJwcml2YXRlS2V5LnR5cGUiLCAiJ3By
aXZhdGUnIik7Ci0gICAgc2hvdWxkQmUoInByaXZhdGVLZXkudXNhZ2VzIiwgIlsnc2lnbicsJ3Zl
cmlmeSddIik7Ci0gICAgc2hvdWxkQmUoInByaXZhdGVLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ1JT
QVNTQS1QS0NTMS12MV81JyIpOwotICAgIHNob3VsZEJlKCJwcml2YXRlS2V5LmFsZ29yaXRobS5t
b2R1bHVzTGVuZ3RoIiwgIjIwNDgiKTsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhw
cml2YXRlS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAxMDAwMSciKTsKLSAgICBz
aG91bGRCZSgicHJpdmF0ZUtleS5hbGdvcml0aG0uaGFzaC5uYW1lIiwgIidTSEEtMjU2JyIpOwot
ICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1z
aWduLXZlcmlmeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNz
YS1wa2NzMS12MV81LXNpZ24tdmVyaWZ5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMzk2NmM4NjM4NDM3ZjhkYzNmZGRmMzAxODYzMWVkNzNlZTFlMGNjOS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9j
cnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LXNpZ24tdmVyaWZ5LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLVRlc3QgaW1wb3J0aW5nIGFuIFJTQSBrZXkg
Zm9yIFJTQVNTQS1QS0NTMS12MV81LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQot
SW1wb3J0aW5nIGEgcHVibGljIGtleS4uLgotCi1JbXBvcnRpbmcgYSBwcml2YXRlIGtleS4uLgot
Ci1TaWduaW5nIHNvbWUgdGV4dC4uLgotUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFy
cmF5KHNpZ25hdHVyZSkpIGlzICcwZmQ5YThhZWY0Y2MxODc2YzBiNzYyNTQ1MzM2YzZkMWZiMzE1
YWUxNmFlNGI1ZTRiZjM0ZDM4NGQ4NTg1ZWE3YTAxZTc2ZWEwOWVlN2Y3ZWU4ZDFjMTIyZTdkZDE1
YjdjOTRhNTczYjJhYTA3MjAzZThkMTNiYzZmZDE2MTU2Y2Q4ZTVmMGMxNWExNWRjY2I2MmQxNTIx
MjdmY2EwOTg4MmZiNTNiYzNlNjBhYjU4NmQxNWI5NWNmNDExZTNhYWI0YTFjMjMxYTdlOTFhYWIw
OWVlM2Q0YjEzZDExZTk3NTA1ZGRmZjc3NjgzNDcwZGE1MTBlZTc2ZThiZDUzMGM1NmE4NWY5MDE2
MjZhNWE3MTBmNzE2ZjExM2RmZTljZjZjNDczZWUxNmZhMjQ4YWVhMzQ4MGExMDMzYWJlMzBmNGMx
MjQzMjg5YTY2MWU2NGQ3ODE4YjU1Njk4MjgwNjg4MDk3MTM1OTY4YzZkNGIwMjk0OTZkODVjYWIy
YTY3ZTQ2OTY3Mzc3ODFmNzBlNDM5MmM3ZGY3MWJiZDZjOTI0NjU5NDdmMDI5YTFkZTQ4MTYwYWNl
ZDExYjU3MjFiMWNkMjUwMzlmZTJjMTZjMmIzOGRlNzNkZjNiOWE4M2UzZWE3NTVmZDBjZmU1MWNh
MDZiNjFmYWRmNmQ4NDY3N2Y5NScKLQotVmVyaWZ5aW5nIHRoZSBzaWduYXR1cmUuLi4KLVBBU1Mg
dmVyaWZpY2F0aW9uUmVzdWx0IGlzIHRydWUKLQotVmVyaWZ5aW5nIGEgYmFkIHNpZ25hdHVyZS4u
LgotUEFTUyB2ZXJpZmljYXRpb25SZXN1bHQgaXMgZmFsc2UKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
cnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LXNpZ24tdmVyaWZ5Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LXNpZ24tdmVyaWZ5Lmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhNjU1NmRkNjg5MTFjYWYzNzE5MGE2ZGI5MzE4
OGNmMjRmOWE1MjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1zaWduLXZlcmlm
eS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBpbXBvcnRpbmcgYW4g
UlNBIGtleSBmb3IgUlNBU1NBLVBLQ1MxLXYxXzUuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVl
OwotCi12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotCi12YXIgcHVibGljS2V5SlNPTiA9IHsKLSAg
ICBrdHk6ICJSU0EiLAotICAgIGFsZzogIlJTMjU2IiwKLSAgICBuOiBCYXNlNjRVUkwuc3RyaW5n
aWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiQURDMDk0MEFGRUNFNzM1MUQ1NkE2RDQzMjIxMEIz
QUE0OUQzODU2NkIwM0E5RjEwMkU0RjE5OEIyREE5RDc0MDcyOEQwMTQyNkEzQTA1OEIyQjgwNUE1
RjkxRDU2NUQ5NjlGRTMxOEFEMkQxQURBNzEzRjVBODI5Q0M4Q0RDRjhDNkNCNDg3MjA2ODE2NDA2
M0I2RDY1MUEyMjI2Q0I5N0VENjdFMEZDNkM3MDJBNDczREIyRDc5QTczMEY4NzM4MDg0QTJFRUQ3
NDkyMkMzQTExOUQxRDEwMUI5MzJDMEUxMEZBQjM2ODE1RjY2QzA3OTJCQjY0MEIxQjRDNTlEMDYy
RkJCRURBQjNDQzA2OUE1MzUxOTVENzBFNEEwNjQzMkNBRjE0OUMyNEEwMDM1M0EwQjk5RjdDRjVC
MTcyNzNDQjRFMzg0MjFCRDMxNTEyN0NGNEIzRENCM0QyMEE3Qzk4Q0ZBRjFBMEUzOThBNTVFMzQ3
RkEyODNDRTdCMzkyNzMyNTlCMUIyMTMyREMxOEIwRUI4QUFFOUY3OEVFNTI1MzU2QjA5REYzOUUw
OTBFNzZENzk4NUIyQjcxRTUwQUY4NUNBMzZDRTkxRjhDQ0IyQUJCRDhBNTI5RDM2OTg5MEQ5OEEy
Q0EyODI1QzRDMkZGOEI3RkJGMDlFNzlDMEIiKSksCi0gICAgZTogQmFzZTY0VVJMLnN0cmluZ2lm
eShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAxMDAwMSIpKSwKLX07Ci0KLXZhciBwcml2YXRlS2V5
SlNPTiA9IHsKLSAgICBrdHk6ICJSU0EiLAotICAgIGFsZzogIlJTMjU2IiwKLSAgICBuOiBCYXNl
NjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiQURDMDk0MEFGRUNFNzM1MUQ1
NkE2RDQzMjIxMEIzQUE0OUQzODU2NkIwM0E5RjEwMkU0RjE5OEIyREE5RDc0MDcyOEQwMTQyNkEz
QTA1OEIyQjgwNUE1RjkxRDU2NUQ5NjlGRTMxOEFEMkQxQURBNzEzRjVBODI5Q0M4Q0RDRjhDNkNC
NDg3MjA2ODE2NDA2M0I2RDY1MUEyMjI2Q0I5N0VENjdFMEZDNkM3MDJBNDczREIyRDc5QTczMEY4
NzM4MDg0QTJFRUQ3NDkyMkMzQTExOUQxRDEwMUI5MzJDMEUxMEZBQjM2ODE1RjY2QzA3OTJCQjY0
MEIxQjRDNTlEMDYyRkJCRURBQjNDQzA2OUE1MzUxOTVENzBFNEEwNjQzMkNBRjE0OUMyNEEwMDM1
M0EwQjk5RjdDRjVCMTcyNzNDQjRFMzg0MjFCRDMxNTEyN0NGNEIzRENCM0QyMEE3Qzk4Q0ZBRjFB
MEUzOThBNTVFMzQ3RkEyODNDRTdCMzkyNzMyNTlCMUIyMTMyREMxOEIwRUI4QUFFOUY3OEVFNTI1
MzU2QjA5REYzOUUwOTBFNzZENzk4NUIyQjcxRTUwQUY4NUNBMzZDRTkxRjhDQ0IyQUJCRDhBNTI5
RDM2OTg5MEQ5OEEyQ0EyODI1QzRDMkZGOEI3RkJGMDlFNzlDMEIiKSksCi0gICAgZTogQmFzZTY0
VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAxMDAwMSIpKSwKLSAgICBkOiBC
YXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiNzhEMkQyREZCNjgyQ0ZC
NDU3NDhEM0MzRkMzQjRCMDQ5RUEzRTUzRjFDNEIxNzczNDQxMEEzM0RBMjNBNTlDMUFBMjY5RDdB
OTZBREQ0NEYwQkE4MENCMDJBOTQwRjY4MTk4OUI2REZDNzZDMjE2QTZFQjlDM0ZGOTUwQjVCNTlF
RkJCNEE5QzY4MjNBRkVGOTk4MTlGRUQ4NTU0MUVGRDdFMEM1RjZBODhFOTkyQUNDOTlEQzRDOUQ1
M0IzNjE3NjNDNDVBNEZBQjYxM0UzOUZGMjc5NzFGMkQ1REIxMjNGMkYwQjJCMzJEOUE5NzUyQzhE
OTYwNUY0Q0QzNTIxQzJEQjlBODYwMDBBMzA0MEExNjIzMUY2MTI3OEM3NzQ3QzNBQjE4REJFQzAw
QTVENzEwMjNCNTBCMTM0QTI4RTUxQ0RCNDE5QTY2QkExNzBERjYxODgxNzM0MkY3ODYxMTc0QUE4
RTc0OTlCOTc0REJGRUI5RkM2NDNCMEU5NTY0NUMxQzREODExMDRCQ0U1M0RBNkU2Q0YzMUI2QTAw
ODVGNzlGMkUwNjI2NDgyRDY4QTVBMEE0NUM0RUFGNDU2NDBENThEMkY4RTUxNjRENjQ1NjBDREVF
QTA5ODIxMzhDQTg2N0E4NzBDRDAxQTYzNzQyODQ3QUNGM0E1MTZGNDkiKSksCi0gICAgcDogQmFz
ZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIkUyNjg5M0I4MDhDQTMxRTFG
OUI4OUU0QTA3N0Y3QjQxNEMyMTZFNDYwNDgxMjZEQzAzNjlBMjdFNjRBNEJDNERCNEQ3QzgxQkU3
OUFBNDA0NzJCNTc5NUFGMjdGNUZFNkUzNzJDRDk1Q0U4RUZEQTkzQTgxRkNERDY0ODY2RjRCOTM0
MjFBMzNFNUQyQUQzREE2NTUyOUJCQ0E4NTM5MkIyOTA3MDAzQUVFQTE4N0VGQTk0NTk1OTJFN0ZE
REUzMjgyNTRCQkMxRjJFQkJCOEZGOTYyQ0YyQTJDQkIzRTBFQTU0QkJFMkMyOUEyQzNBN0NCMjVB
QUMwQ0U0MDVFOUQiKSksCi0gICAgcTogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1Vp
bnQ4QXJyYXkoIkM0NzYyQkNFNDhBRkI2NjlGM0ZFQzE5Qzg2NzU4NjczNEFCRUE0MzNBNDJBMjcy
OUI1MUE2RkRBOTMwNTIwODVGMTlDNTVGOTY4Qzc4NDVDODY2MzU2RThEN0I3MDUzMkQ1NDk0NTIw
REQ4NjY0OTRBRkNCOTI4OUVGRDlBRUZEN0M4RDlDNTFDQ0NERTc0N0Y4MERERTdCN0JCQzg3NTUx
NEFEOTE3RUJENEJCNUZERUUxNEZGMUVCQjM0REQ1RDc5RENENDQ4QUNBNzM3QkE0NTk3NzNBNEI5
Mjg0QzA1NjE5NUY5Q0MzMzM4Rjc1QzU0MDdENUI5OTk3MTUwQzciKSksCi0gICAgZHA6IEJhc2U2
NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCI3QzFDQzNDRDgwRDQwNjYwNTAx
QThBN0IxRTdEMURCREZGRDNEQkI1N0E0NkFBNUNCNTZBMzRFRjgwOTA2NUMxNUIzRjY2QUQxNTVC
NEE0QTNERUY4OTY0RjdDNjI3NzY1NDdDREM4MjIwQzc3NUZBNENERTcxMTU5NDQzQjVDMzAyMjg5
QzYwOTJCREQ4QzYxMEU2NjI4ODU1NEU4RUI2NDAzOTVDNDBGMjBCOEU4RjJDODVCRUE2RDc5MUVE
M0E1NzAzQzgyMTVCREYyOUU0OTREQjNCQTE2Q0ZGRkZENkRCN0ExN0Y3RjFBMzBFMEE2RjZDNjg5
QzY0RjQxODY5IikpLAotICAgIGRxOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWlu
dDhBcnJheSgiOEU2MTM2MEUyMjBGNzYxQzAzODBCNUMwNDI5MjFBMDZBNDNDRDVCM0I3NURGNTUz
RkNCNDU0MkMwQzMwQzMwOTRGQjkwNTc1RTNDMUY0RTMzOTYxRjUzMjdBNjM2MTk5MUQ4QTI0NTc1
NTM0NzhFMDY5MjcxN0U0NkZCNzRCNjJEQTQ5QTZFODgxOEQxN0Y4Qzg4NTA0QTA2OTY0OTA4RkQw
OTQ5OUM1NDg1QUZFNjIzMTkxNzVGMzQ3QTk2MDY0QzY1NDhDNjRCRUZCRDExRjY2MjAwNEU3NzQ2
OTA3RUYzRTcxRkFCRjRBQzAxNjQ1MEI4MTQyMUI2ODYwRkYzMSIpKSwKLSAgICBxaTogQmFzZTY0
VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjYwMjVGRkE0QkMxQjMwMTAzNTRF
MTU0N0QxNjczMDlBN0NBREE4RDcyQjMwMjEzMDRFNkVDMUM4MEQ5RTUzQTlENjZEMEFENDJFRjdG
QjlCREZFNENERjJENDcyM0IyN0E0MDU2NTA1MDFCOTI0QzVDQ0NCNDRBQUUyOUI3MDZGMkMyQzZC
OUY4NkYwQTAwRTM4RTQ3NjJGN0JGODg0MkY4NENBQ0Y1RkI2MDE0Q0ZGNzhCNEEzOEQxRTc5MDFG
ODZGNzg1QTNEQjlFREFDODc4QzgzQzIzMzk0RUI5NTYwQTdGREZCNjQyRTI4M0ExNjc5MTc1REVD
REIxREM1MzkiKSkKLX07Ci0KLXZhciBkYXRhID0gYXNjaWlUb1VpbnQ4QXJyYXkoIkhlbGxvLCB3
b3JsZCEiKTsKLQotZGVidWcoIkltcG9ydGluZyBhIHB1YmxpYyBrZXkuLi4iKTsKLWNyeXB0by5z
dWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShw
dWJsaWNLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pLnRo
ZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgcHVibGljS2V5ID0gcmVzdWx0OwotICAgIGRlYnVn
KCJcbkltcG9ydGluZyBhIHByaXZhdGUga2V5Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0
bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShwcml2
YXRlS2V5SlNPTikpLCBudWxsLCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKTsKLX0p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgcHJpdmF0ZUtleSA9IHJlc3VsdDsKLSAgICBk
ZWJ1ZygiXG5TaWduaW5nIHNvbWUgdGV4dC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxl
LnNpZ24oeyBuYW1lOiAiUlNBU1NBLVBLQ1MxLXYxXzUiLCBoYXNoOiAiU0hBLTI1NiIgfSwgcHJp
dmF0ZUtleSwgZGF0YSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHNpZ25hdHVy
ZSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJh
eShzaWduYXR1cmUpKSIsICInMGZkOWE4YWVmNGNjMTg3NmMwYjc2MjU0NTMzNmM2ZDFmYjMxNWFl
MTZhZTRiNWU0YmYzNGQzODRkODU4NWVhN2EwMWU3NmVhMDllZTdmN2VlOGQxYzEyMmU3ZGQxNWI3
Yzk0YTU3M2IyYWEwNzIwM2U4ZDEzYmM2ZmQxNjE1NmNkOGU1ZjBjMTVhMTVkY2NiNjJkMTUyMTI3
ZmNhMDk4ODJmYjUzYmMzZTYwYWI1ODZkMTViOTVjZjQxMWUzYWFiNGExYzIzMWE3ZTkxYWFiMDll
ZTNkNGIxM2QxMWU5NzUwNWRkZmY3NzY4MzQ3MGRhNTEwZWU3NmU4YmQ1MzBjNTZhODVmOTAxNjI2
YTVhNzEwZjcxNmYxMTNkZmU5Y2Y2YzQ3M2VlMTZmYTI0OGFlYTM0ODBhMTAzM2FiZTMwZjRjMTI0
MzI4OWE2NjFlNjRkNzgxOGI1NTY5ODI4MDY4ODA5NzEzNTk2OGM2ZDRiMDI5NDk2ZDg1Y2FiMmE2
N2U0Njk2NzM3NzgxZjcwZTQzOTJjN2RmNzFiYmQ2YzkyNDY1OTQ3ZjAyOWExZGU0ODE2MGFjZWQx
MWI1NzIxYjFjZDI1MDM5ZmUyYzE2YzJiMzhkZTczZGYzYjlhODNlM2VhNzU1ZmQwY2ZlNTFjYTA2
YjYxZmFkZjZkODQ2NzdmOTUnIik7Ci0KLSAgICBkZWJ1ZygiXG5WZXJpZnlpbmcgdGhlIHNpZ25h
dHVyZS4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLnZlcmlmeSh7IG5hbWU6ICJSU0FT
U0EtUEtDUzEtdjFfNSIsIGhhc2g6ICJTSEEtMjU2IiB9LCBwdWJsaWNLZXksIHNpZ25hdHVyZSwg
ZGF0YSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHZlcmlmaWNhdGlvblJlc3Vs
dCA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgidmVyaWZpY2F0aW9uUmVzdWx0IiwgInRydWUiKTsK
LSAgICBkZWJ1ZygiXG5WZXJpZnlpbmcgYSBiYWQgc2lnbmF0dXJlLi4uIik7Ci0gICAgcmV0dXJu
IGNyeXB0by5zdWJ0bGUudmVyaWZ5KHsgbmFtZTogIlJTQVNTQS1QS0NTMS12MV81IiwgaGFzaDog
IlNIQS0yNTYiIH0sIHB1YmxpY0tleSwgbmV3IFVpbnQ4QXJyYXkoMjU2KSwgZGF0YSk7Ci19KS50
aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHZlcmlmaWNhdGlvblJlc3VsdCA9IHJlc3VsdDsK
LSAgICBzaG91bGRCZSgidmVyaWZpY2F0aW9uUmVzdWx0IiwgImZhbHNlIik7Ci0gICAgZmluaXNo
SlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3NoYS0xLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2NyeXB0by9zdWJ0bGUvc2hhLTEtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjOTBlODczNjAyODMwMGMxNjQ2ZTllNzdjNjhmMzhlY2NmNzJmMTk3Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvc2hhLTEtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAs
MCBAQAotVGVzdCBjcnlwdG8uc3VidGxlLmRpZ2VzdC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgotCi0KLVNIQTEgb2YgW10KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJh
eShkaWdlc3QpKSBpcyAnZGEzOWEzZWU1ZTZiNGIwZDMyNTViZmVmOTU2MDE4OTBhZmQ4MDcwOScK
LVNIQTEgb2YgWzB4MF0KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdl
c3QpKSBpcyAnNWJhOTNjOWRiMGNmZjkzZjUyYjUyMWQ3NDIwZTQzZjZlZGEyNzg0ZicKLVNIQTEg
b2YgWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXQotUEFTUyBieXRlc1RvSGV4U3Ry
aW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIGlzICcyYzdlN2MzODRmNzgyOTY5NDI4MmIxZTNh
NjIxNmRlZjgwODJkMDU1JwotUEFTUyBjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KCdzaGEtMScp
IHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvciAoRE9NIEV4Y2VwdGlvbiA5KTogVGhl
IG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8v
c3VidGxlL3NoYS0xLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3NoYS0xLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNkMzEzNjA0ZmJmNzdhMDIyMjRiZjg1MmE1
N2U0YmZmYThiMWMzZGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9zaGEtMS5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNDQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxw
IGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3Jp
cHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBjcnlwdG8uc3VidGxlLmRpZ2VzdC4iKTsKLQotanNUZXN0
SXNBc3luYyA9IHRydWU7Ci0KLVByb21pc2UucmVzb2x2ZShudWxsKS50aGVuKGZ1bmN0aW9uKCkg
ewotICAgIGRlYnVnKCJTSEExIG9mIFtdIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGln
ZXN0KCdzaGEtMScsIG5ldyBVaW50OEFycmF5KFtdKSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3Vs
dCkgewotICAgIGRpZ2VzdCA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmlu
ZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSIsICInZGEzOWEzZWU1ZTZiNGIwZDMyNTViZmVmOTU2
MDE4OTBhZmQ4MDcwOSciKTsKLQotICAgIGRlYnVnKCJTSEExIG9mIFsweDBdIikKLSAgICByZXR1
cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCBuZXcgVWludDhBcnJheShb
MF0pKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZGlnZXN0ID0gcmVzdWx0Owot
ICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIiwg
Iic1YmE5M2M5ZGIwY2ZmOTNmNTJiNTIxZDc0MjBlNDNmNmVkYTI3ODRmJyIpOwotCi0gICAgZGVi
dWcoIlNIQTEgb2YgWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXSIpOwotICAgIHZh
ciBkYXRhID0gbmV3IFVpbnQ4QXJyYXkoWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEw
XSk7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTEnfSwgZGF0
YSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGRpZ2VzdCA9IHJlc3VsdDsKLSAg
ICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSIsICIn
MmM3ZTdjMzg0Zjc4Mjk2OTQyODJiMWUzYTYyMTZkZWY4MDgyZDA1NSciKTsKLQotICAgIC8vIEFs
bCBTSEEtMSBjYW4gZG8gaXMgZGlnZXN0LgotICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxl
LmdlbmVyYXRlS2V5KCdzaGEtMScpIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2Ny
aXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8v
c3VidGxlL3NoYS0yMjQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9z
aGEtMjI0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmQ1MDE0
NWQ1NjM1YTU5YTgwYWFkODhmZGYyNTk0YzRjNzM5Y2EwZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3NoYS0y
MjQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotVGVzdCBjcnlw
dG8uc3VidGxlLmRpZ2VzdC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVNIQTIy
NCBvZiBbXQotUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIGlz
ICdkMTRhMDI4YzJhM2EyYmM5NDc2MTAyYmIyODgyMzRjNDE1YTJiMDFmODI4ZWE2MmFjNWIzZTQy
ZicKLVNIQTIyNCBvZiBbMHgwXQotUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5
KGRpZ2VzdCkpIGlzICdmZmY5MjkyYjQyMDE2MTdiZGM0ZDMwNTNmY2UwMjczNDE2NmE2ODNkN2Q4
NThhN2Y1ZjU5YjA3MycKLVNIQTIyNCBvZiBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwg
MTBdCi1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkgaXMgJzc2
N2QwY2RjMTEwNzliYThkY2EyNzZkZjVjNGI4NTUwN2RlNjdkY2U0N2VkYTRjZDkxOTZkMzEyJwot
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvc2hhLTIyNC5odG1sIGIvTGF5b3V0VGVz
dHMvY3J5cHRvL3N1YnRsZS9zaGEtMjI0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDMzZjQ3NmJkY2MwMmU4NmE0MDBlZDM3ODBmN2E1NTgyNjRmYTBiYTYuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS9zaGEtMjI0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpz
Ij48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IGNy
eXB0by5zdWJ0bGUuZGlnZXN0LiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotUHJvbWlz
ZS5yZXNvbHZlKG51bGwpLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgZGVidWcoIlNIQTIyNCBvZiBb
XSIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCgnc2hhLTIyNCcsIG5ldyBVaW50
OEFycmF5KFtdKSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGRpZ2VzdCA9IHJl
c3VsdDsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdl
c3QpKSIsICInZDE0YTAyOGMyYTNhMmJjOTQ3NjEwMmJiMjg4MjM0YzQxNWEyYjAxZjgyOGVhNjJh
YzViM2U0MmYnIik7Ci0KLSAgICBkZWJ1ZygiU0hBMjI0IG9mIFsweDBdIikKLSAgICByZXR1cm4g
Y3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMjI0J30sIG5ldyBVaW50OEFycmF5KFsw
XSkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBkaWdlc3QgPSByZXN1bHQ7Ci0g
ICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkiLCAi
J2ZmZjkyOTJiNDIwMTYxN2JkYzRkMzA1M2ZjZTAyNzM0MTY2YTY4M2Q3ZDg1OGE3ZjVmNTliMDcz
JyIpOwotCi0gICAgZGVidWcoIlNIQTIyNCBvZiBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwg
OSwgMTBdIik7Ci0gICAgdmFyIGRhdGEgPSBuZXcgVWludDhBcnJheShbMCwgMSwgMiwgMywgNCwg
NSwgNiwgNywgOCwgOSwgMTBdKTsKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25h
bWU6ICdzaGEtMjI0J30sIGRhdGEpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBk
aWdlc3QgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4
QXJyYXkoZGlnZXN0KSkiLCAiJzc2N2QwY2RjMTEwNzliYThkY2EyNzZkZjVjNGI4NTUwN2RlNjdk
Y2U0N2VkYTRjZDkxOTZkMzEyJyIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3Njcmlw
dD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS9zaGEtMjU2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvc2hh
LTI1Ni1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU5YWIyN2Fi
MTE4YTExMWRjMjVkMjAyZWQ5NmU4M2FiOTkzYTk0NzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9zaGEtMjU2
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLVRlc3QgY3J5cHRv
LnN1YnRsZS5kaWdlc3QuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1TSEEyNTYg
b2YgW10KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSBpcyAn
ZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3
ODUyYjg1NScKLVNIQTI1NiBvZiBbMHgwXQotUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50
OEFycmF5KGRpZ2VzdCkpIGlzICc2ZTM0MGI5Y2ZmYjM3YTk4OWNhNTQ0ZTZiYjc4MGEyYzc4OTAx
ZDNmYjMzNzM4NzY4NTExYTMwNjE3YWZhMDFkJwotU0hBMjU2IG9mIFswLCAxLCAyLCAzLCA0LCA1
LCA2LCA3LCA4LCA5LCAxMF0KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShk
aWdlc3QpKSBpcyAnNzhhNjI3MzEwM2QxN2MzOWEwYjYxMjZlMjI2Y2VjNzBlMzMzMzdmNGJjNmEz
ODA2NzQwMWI1NGEzM2U3OGVhZCcKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQot
VEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3No
YS0yNTYuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvc2hhLTI1Ni5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MzBjNWFkMGI2NjM2N2FhZjBiYTJlMWRiNmE3MWZi
OWU1MDQwNThkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvc2hhLTI1Ni5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNDEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+
Ci1kZXNjcmlwdGlvbigiVGVzdCBjcnlwdG8uc3VidGxlLmRpZ2VzdC4iKTsKLQotanNUZXN0SXNB
c3luYyA9IHRydWU7Ci0KLVByb21pc2UucmVzb2x2ZShudWxsKS50aGVuKGZ1bmN0aW9uKCkgewot
ICAgIGRlYnVnKCJTSEEyNTYgb2YgW10iKTsKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdl
c3QoJ3NoYS0yNTYnLCBuZXcgVWludDhBcnJheShbXSkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1
bHQpIHsKLSAgICBkaWdlc3QgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJp
bmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkiLCAiJ2UzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5
NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUnIik7Ci0KLSAgICBkZWJ1Zygi
U0hBMjU2IG9mIFsweDBdIikKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6
ICdzaGEtMjU2J30sIG5ldyBVaW50OEFycmF5KFswXSkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1
bHQpIHsKLSAgICBkaWdlc3QgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJp
bmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkiLCAiJzZlMzQwYjljZmZiMzdhOTg5Y2E1NDRlNmJi
NzgwYTJjNzg5MDFkM2ZiMzM3Mzg3Njg1MTFhMzA2MTdhZmEwMWQnIik7Ci0KLSAgICBkZWJ1Zygi
U0hBMjU2IG9mIFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMF0iKTsKLSAgICB2YXIg
ZGF0YSA9IG5ldyBVaW50OEFycmF5KFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMF0p
OwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0yNTYnfSwgZGF0
YSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGRpZ2VzdCA9IHJlc3VsdDsKLSAg
ICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSIsICIn
NzhhNjI3MzEwM2QxN2MzOWEwYjYxMjZlMjI2Y2VjNzBlMzMzMzdmNGJjNmEzODA2NzQwMWI1NGEz
M2U3OGVhZCciKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvc2hhLTM4
NC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3NoYS0zODQtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMGM1Y2UyOTUxMTlhOWQxODlk
Njg1NWM1MzE0M2YwZjM0ZWQ2OWFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvc2hhLTM4NC1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi1UZXN0IGNyeXB0by5zdWJ0bGUuZGln
ZXN0LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotU0hBMzg0IG9mIFtdCi1QQVNT
IGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkgaXMgJzM4YjA2MGE3NTFh
Yzk2Mzg0Y2Q5MzI3ZWIxYjFlMzZhMjFmZGI3MTExNGJlMDc0MzRjMGNjN2JmNjNmNmUxZGEyNzRl
ZGViZmU3NmY2NWZiZDUxYWQyZjE0ODk4Yjk1YicKLVNIQTM4NCBvZiBbMHgwXQotUEFTUyBieXRl
c1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIGlzICdiZWMwMjFiNGYzNjhlMzA2
OTEzNGUwMTJjMmI0MzA3MDgzZDNhOWJkZDIwNmUyNGU1ZjBkODZlMTNkNjYzNjY1NTkzM2VjMmI0
MTM0NjU5NjY4MTdhOWMyMDhhMTE3MTcnCi1TSEEzODQgb2YgWzAsIDEsIDIsIDMsIDQsIDUsIDYs
IDcsIDgsIDksIDEwXQotUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2Vz
dCkpIGlzICc4OWJmY2Y1NjlhZTRhZjcxODUxMGRhNzhjNjc0MTQxMDlmNTczOWJiNWM0MGQ1MWM5
YzhjNTBlMmIyY2VlODZmMmY4MGM4YjlkNjhmN2MwMTIwMWEwNzE0NTcyZmU2MDInCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9zaGEtMzg0Lmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlw
dG8vc3VidGxlL3NoYS0zODQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTVi
OGMzNzg5ZDNlMDJhOGNlOTg0MGNmMTUxMmUzMDU1MGNjNjFkYy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3No
YS0zODQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgY3J5cHRvLnN1
YnRsZS5kaWdlc3QuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1Qcm9taXNlLnJlc29s
dmUobnVsbCkudGhlbihmdW5jdGlvbigpIHsKLSAgICBkZWJ1ZygiU0hBMzg0IG9mIFtdIik7Ci0g
ICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0KCdzaGEtMzg0JywgbmV3IFVpbnQ4QXJyYXko
W10pKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZGlnZXN0ID0gcmVzdWx0Owot
ICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIiwg
IiczOGIwNjBhNzUxYWM5NjM4NGNkOTMyN2ViMWIxZTM2YTIxZmRiNzExMTRiZTA3NDM0YzBjYzdi
ZjYzZjZlMWRhMjc0ZWRlYmZlNzZmNjVmYmQ1MWFkMmYxNDg5OGI5NWInIik7Ci0KLSAgICBkZWJ1
ZygiU0hBMzg0IG9mIFsweDBdIikKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25h
bWU6ICdzaGEtMzg0J30sIG5ldyBVaW50OEFycmF5KFswXSkpOwotfSkudGhlbihmdW5jdGlvbihy
ZXN1bHQpIHsKLSAgICBkaWdlc3QgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhT
dHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkiLCAiJ2JlYzAyMWI0ZjM2OGUzMDY5MTM0ZTAx
MmMyYjQzMDcwODNkM2E5YmRkMjA2ZTI0ZTVmMGQ4NmUxM2Q2NjM2NjU1OTMzZWMyYjQxMzQ2NTk2
NjgxN2E5YzIwOGExMTcxNyciKTsKLQotICAgIGRlYnVnKCJTSEEzODQgb2YgWzAsIDEsIDIsIDMs
IDQsIDUsIDYsIDcsIDgsIDksIDEwXSIpOwotICAgIHZhciBkYXRhID0gbmV3IFVpbnQ4QXJyYXko
WzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXSk7Ci0gICAgcmV0dXJuIGNyeXB0by5z
dWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTM4NCd9LCBkYXRhKTsKLX0pLnRoZW4oZnVuY3Rpb24o
cmVzdWx0KSB7Ci0gICAgZGlnZXN0ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4
U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIiwgIic4OWJmY2Y1NjlhZTRhZjcxODUxMGRh
NzhjNjc0MTQxMDlmNTczOWJiNWM0MGQ1MWM5YzhjNTBlMmIyY2VlODZmMmY4MGM4YjlkNjhmN2Mw
MTIwMWEwNzE0NTcyZmU2MDInIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0
PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL3NoYS01MTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9zaGEt
NTEyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTE0N2ZkOTY4
OTI4YzcxZWQwYzg5YTA2NzdmMTEyOGU4ZjBkNDVjYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3NoYS01MTIt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotVGVzdCBjcnlwdG8u
c3VidGxlLmRpZ2VzdC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVNIQTUxMiBv
ZiBbXQotUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIGlzICdj
ZjgzZTEzNTdlZWZiOGJkZjE1NDI4NTBkNjZkODAwN2Q2MjBlNDA1MGI1NzE1ZGM4M2Y0YTkyMWQz
NmNlOWNlNDdkMGQxM2M1ZDg1ZjJiMGZmODMxOGQyODc3ZWVjMmY2M2I5MzFiZDQ3NDE3YTgxYTUz
ODMyN2FmOTI3ZGEzZScKLVNIQTUxMiBvZiBbMHgwXQotUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5l
dyBVaW50OEFycmF5KGRpZ2VzdCkpIGlzICdiODI0NGQwMjg5ODFkNjkzYWY3YjQ1NmFmOGVmYTRj
YWQ2M2QyODJlMTlmZjE0OTQyYzI0NmU1MGQ5MzUxZDIyNzA0YTgwMmE3MWMzNTgwYjYzNzBkZTRj
ZWIyOTNjMzI0YTg0MjMzNDI1NTdkNGU1YzM4NDM4ZjBlMzY5MTBlZScKLVNIQTUxMiBvZiBbMCwg
MSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdCi1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3
IFVpbnQ4QXJyYXkoZGlnZXN0KSkgaXMgJzhmZmFlZTBjY2NjMTYyODUxZmFmMDUxYWUzODY2N2Vl
ZmQ0MjNjMDE2NGM1MDA1NWY4YWRlMDBhZmMzNzA1ZTNjZGViOTkwMDAwNGIwZTQyNmNhNjZhYjYz
YWEzYjk5YjA3NTI3M2Y0NGZkMzdjMjJhMzU1NWM2ZmQxZjM3Y2NiJwotUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NyeXB0by9zdWJ0bGUvc2hhLTUxMi5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRs
ZS9zaGEtNTEyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZjNmNmNGM5ODBh
ZWNmYWU5OGU1MTNmNmFiMDg0Y2EzZTEzMDNlMWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9zaGEtNTEyLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IGNyeXB0by5zdWJ0bGUuZGln
ZXN0LiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotUHJvbWlzZS5yZXNvbHZlKG51bGwp
LnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgZGVidWcoIlNIQTUxMiBvZiBbXSIpOwotICAgIHJldHVy
biBjcnlwdG8uc3VidGxlLmRpZ2VzdCgnc2hhLTUxMicsIG5ldyBVaW50OEFycmF5KFtdKSk7Ci19
KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGRpZ2VzdCA9IHJlc3VsdDsKLSAgICBzaG91
bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSIsICInY2Y4M2Ux
MzU3ZWVmYjhiZGYxNTQyODUwZDY2ZDgwMDdkNjIwZTQwNTBiNTcxNWRjODNmNGE5MjFkMzZjZTlj
ZTQ3ZDBkMTNjNWQ4NWYyYjBmZjgzMThkMjg3N2VlYzJmNjNiOTMxYmQ0NzQxN2E4MWE1MzgzMjdh
ZjkyN2RhM2UnIik7Ci0KLSAgICBkZWJ1ZygiU0hBNTEyIG9mIFsweDBdIikKLSAgICByZXR1cm4g
Y3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtNTEyJ30sIG5ldyBVaW50OEFycmF5KFsw
XSkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBkaWdlc3QgPSByZXN1bHQ7Ci0g
ICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkiLCAi
J2I4MjQ0ZDAyODk4MWQ2OTNhZjdiNDU2YWY4ZWZhNGNhZDYzZDI4MmUxOWZmMTQ5NDJjMjQ2ZTUw
ZDkzNTFkMjI3MDRhODAyYTcxYzM1ODBiNjM3MGRlNGNlYjI5M2MzMjRhODQyMzM0MjU1N2Q0ZTVj
Mzg0MzhmMGUzNjkxMGVlJyIpOwotCi0gICAgZGVidWcoIlNIQTUxMiBvZiBbMCwgMSwgMiwgMywg
NCwgNSwgNiwgNywgOCwgOSwgMTBdIik7Ci0gICAgdmFyIGRhdGEgPSBuZXcgVWludDhBcnJheShb
MCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdKTsKLSAgICByZXR1cm4gY3J5cHRvLnN1
YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtNTEyJ30sIGRhdGEpOwotfSkudGhlbihmdW5jdGlvbihy
ZXN1bHQpIHsKLSAgICBkaWdlc3QgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhT
dHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkiLCAiJzhmZmFlZTBjY2NjMTYyODUxZmFmMDUx
YWUzODY2N2VlZmQ0MjNjMDE2NGM1MDA1NWY4YWRlMDBhZmMzNzA1ZTNjZGViOTkwMDAwNGIwZTQy
NmNhNjZhYjYzYWEzYjk5YjA3NTI3M2Y0NGZkMzdjMjJhMzU1NWM2ZmQxZjM3Y2NiJyIpOwotICAg
IGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS91bmltcGxlbWVudGVkLXVud3JhcC1j
cmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3VuaW1wbGVtZW50
ZWQtdW53cmFwLWNyYXNoLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNzA4ZThkZjIzMDUzNTMzMGQzNDVkMzFmY2Y0NDAyMzkxOGZlOGNkNS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL3VuaW1wbGVtZW50ZWQtdW53cmFwLWNyYXNoLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDkgKzAsMCBAQAotTWFrZSBzdXJlIHRoYXQgdW53cmFwIGRvZXMgbm90IGNhdXNlIGEg
Y3Jhc2guCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY3J5cHRvL3N1YnRsZS91bmltcGxlbWVudGVkLXVud3JhcC1jcmFzaC5odG1sIGIvTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS91bmltcGxlbWVudGVkLXVud3JhcC1jcmFzaC5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlM2JhY2I0YWIzNWQ1NmZkYjE0Yjg5ZTBjMzliMzJh
MTNlYjU4Y2EzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvdW5pbXBsZW1lbnRlZC11bndyYXAtY3Jhc2guaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiTWFrZSBzdXJlIHRoYXQgdW53cmFwIGRv
ZXMgbm90IGNhdXNlIGEgY3Jhc2guIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1jcnlw
dG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiQUVTLUtXIiwgbGVuZ3RoOiAyNTZ9LCBmYWxz
ZSwgWyJ3cmFwS2V5Il0pLnRoZW4oZnVuY3Rpb24od3JhcHBpbmdLZXkpIHsKLSAgICByZXR1cm4g
Y3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogIkhNQUMiLCBoYXNoOiB7bmFtZTogIlNI
QS0yNTYifX0sIHRydWUsIFsic2lnbiIsICJ2ZXJpZnkiXSkudGhlbihmdW5jdGlvbihhZXNLZXkp
IHsKLSAgICAgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUud3JhcEtleSgicmF3IiwgYWVzS2V5LCB3
cmFwcGluZ0tleSwge25hbWU6ICJBRVMtS1cifSk7Ci0gICAgfSk7Ci19KS50aGVuKGZpbmlzaEpT
VGVzdCwgZmluaXNoSlNUZXN0KTsgLy8gT0sgaWYgdGhlIGJyb3dzZXIgZG9lcyBub3QgY3Jhc2gu
Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3J5cHRvL3N1YnRsZS91bndyYXBLZXktY2hlY2stdXNhZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS91bndyYXBLZXktY2hlY2stdXNhZ2UtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZjMwNTAyYmI1ZjllZjAyNTVlYTIzNjg0NGQ1
MGUxZGY3MThjOGZhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvdW53cmFwS2V5LWNoZWNrLXVzYWdlLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTog
bGluZSAxOiBLZXkgdXNhZ2VzIGRvIG5vdCBpbmNsdWRlICd1bndyYXBLZXknCi1WZXJpZnkgdGhh
dCB1c2FnZSBpcyByZXNwZWN0ZWQgaW4gdW53cmFwS2V5IG9wZXJhdGlvbi4KLQotT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgotCi0KLUltcG9ydGluZyBSU0Ega2V5cy4uLgotSW1wb3J0aW5nIGFu
IEFFUyBrZXkuLi4KLVdyYXBwaW5nIGl0Li4uCi1VbndyYXBwaW5nIGl0Li4uCi1QQVNTIGNyeXB0
by5zdWJ0bGUudW53cmFwS2V5KCJyYXciLCB3cmFwcGVkS2V5LCBwcml2YXRlS2V5LCB3cmFwQWxn
b3JpdGhtLCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKSB0
aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3IgKERPTSBFeGNlcHRpb24gOSk6IFRoZSBv
cGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS91bndyYXBLZXktY2hlY2stdXNhZ2UuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvdW53cmFwS2V5LWNoZWNrLXVzYWdlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDNhYjAyNmJlYWJhMWUyYmZjOTM4ZDc5MDMyNTA3Y2RjYWY3OWExZGQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS91bndyYXBLZXktY2hlY2stdXNhZ2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY3ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3Jp
cHRpb24oIlZlcmlmeSB0aGF0IHVzYWdlIGlzIHJlc3BlY3RlZCBpbiB1bndyYXBLZXkgb3BlcmF0
aW9uLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIHB1YmxpY0tleUpTT04gPSB7
Ci0gICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSU0EtT0FFUCIsCi0gICAgbjogInJjQ1VDdjdP
YzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFph
ZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1
cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3
R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZ
ejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlX
eXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCi0gICAg
ZTogIkFRQUIiCi19OwotCi12YXIgcHJpdmF0ZUtleUpTT04gPSB7Ci0gICAga3R5OiAiUlNBIiwK
LSAgICBhbGc6ICJSU0EtT0FFUCIsCi0gICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhX
YXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6
Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9S
blIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVu
Q1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3
T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlx
NzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCi0gICAgZTogIkFRQUIiLAotICAgIGQ6
ICJlTkxTMzdhQ3o3UlhTTlBEX0R0TEJKNmo1VDhjU3hkelJCQ2pQYUk2V2NHcUpwMTZscTNVVHd1
b0RMQXFsQTlvR1ltMjM4ZHNJV3B1dWNQX2xRdGJXZS03U3B4b0k2X3ZtWUdmN1lWVUh2MS1ERjlx
aU9tU3JNbWR4TW5WT3pZWFk4UmFUNnRoUGpuX0o1Y2ZMVjJ4SV9Md3NyTXRtcGRTeU5sZ1gwelRV
aHd0dWFoZ0FLTUVDaFlqSDJFbmpIZEh3NnNZMi13QXBkY1FJN1VMRTBvbzVSemJRWnBtdWhjTjlo
aUJjMEwzaGhGMHFvNTBtYmwwMl82NV9HUTdEcFZrWEJ4TmdSQkx6bFBhYm16ekcyb0FoZmVmTGdZ
bVNDMW9wYUNrWEU2dlJXUU5XTkw0NVJaTlpGWU0zdW9KZ2hPTXFHZW9jTTBCcGpkQ2hIclBPbEZ2
U1EiLAotICAgIHA6ICI0bWlUdUFqS01lSDV1SjVLQjM5N1FVd2hia1lFZ1NiY0EybWlmbVNrdkUy
MDE4Z2I1NXFrQkhLMWVWcnlmMV9tNDNMTmxjNk9fYWs2Z2Z6ZFpJWnZTNU5DR2pQbDBxMDlwbFVw
dThxRk9Tc3BCd0E2N3FHSDc2bEZsWkxuX2Q0eWdsUzd3ZkxydTRfNVlzOHFMTHMtRHFWTHZpd3Bv
c09ueXlXcXdNNUFYcDAiLAotICAgIHE6ICJ4SFlyemtpdnRtbnpfc0djaG5XR2MwcS1wRE9rS2lj
cHRScHYycE1GSUlYeG5GWDVhTWVFWElaalZ1alh0d1V5MVVsRklOMkdaSlN2eTVLSjc5bXVfWHlO
bkZITXplZEgtQTNlZTN1OGgxVVVyWkYtdlV1MV9lNFVfeDY3Tk4xZGVkelVTS3luTjdwRmwzT2t1
U2hNQldHVi1jd3pPUGRjVkFmVnVabHhVTWMiLAotICAgIGRwOiAiZkJ6RHpZRFVCbUJRR29wN0hu
MGR2Zl9UMjdWNlJxcGN0V28wNzRDUVpjRmJQMmF0RlZ0S1NqM3ZpV1QzeGlkMlZIemNnaURIZGZw
TTNuRVZsRU8xd3dJb25HQ1N2ZGpHRU9aaWlGVk9qclpBT1Z4QThndU9qeXlGdnFiWGtlMDZWd1BJ
SVZ2ZktlU1UyenVoYlBfXzF0dDZGX2Z4b3c0S2IyeG9uR1QwR0drIiwKLSAgICBkcTogImptRTJE
aUlQZGh3RGdMWEFRcElhQnFRODFiTzNYZlZUX0xSVUxBd3d3d2xQdVFWMTQ4SDA0emxoOVRKNlky
R1pIWW9rVjFVMGVPQnBKeGZrYjdkTFl0cEpwdWlCalJmNHlJVUVvR2xra0lfUWxKbkZTRnItWWpH
UmRmTkhxV0JreGxTTVpMNzcwUjltSUFUbmRHa0g3ejV4LXI5S3dCWkZDNEZDRzJoZ196RSIsCi0g
ICAgcWk6ICJZQ1hfcEx3Yk1CQTFUaFZIMFdjd21ueXRxTmNyTUNFd1RtN0J5QTJlVTZuV2JRclVM
dmY3bTlfa3pmTFVjanNucEFWbEJRRzVKTVhNeTBTcTRwdHdieXdzYTUtRzhLQU9PT1IyTDN2NGhD
LUV5czlmdGdGTV8zaTBvNDBlZVFINGIzaGFQYm50ckllTWc4SXpsT3VWWUtmOS0yUXVLRG9XZVJk
ZDdOc2R4VGsiCi19OwotdmFyIHdyYXBBbGdvcml0aG0gPSB7bmFtZTogIlJTQS1PQUVQIiwgaGFz
aDogInNoYS0xIn07Ci12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotdmFyIG5vbkV4dHJhY3RhYmxl
ID0gZmFsc2U7Ci0KLWRlYnVnKCJJbXBvcnRpbmcgUlNBIGtleXMuLi4iKTsKLWNyeXB0by5zdWJ0
bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShwdWJs
aWNLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbIndyYXBLZXkiXSkudGhlbihmdW5jdGlv
bihyZXN1bHQpIHsKLSAgICBwdWJsaWNLZXkgPSByZXN1bHQ7Ci0gICAgcmV0dXJuIGNyeXB0by5z
dWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShw
cml2YXRlS2V5SlNPTikpLCBudWxsLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQi
LCAid3JhcEtleSJdKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgcHJpdmF0ZUtl
eSA9IHJlc3VsdDsKLQotICAgIGRlYnVnKCJJbXBvcnRpbmcgYW4gQUVTIGtleS4uLiIpOwotICAg
IGFlc0tleURhdGEgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjYwM2RlYjEwMTVjYTcxYmUyYjcz
YWVmMDg1N2Q3NzgxMWYzNTJjMDczYjYxMDhkNzJkOTgxMGEzMDkxNGRmZjQiKTsKLSAgICByZXR1
cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGFlc0tleURhdGEsICJhZXMtY2JjIiwg
ZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0IiwgIndyYXBLZXkiLCAidW53cmFwS2V5
Il0pCi19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGFlc0tleSA9IHJlc3VsdDsKLQot
ICAgIGRlYnVnKCJXcmFwcGluZyBpdC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLndy
YXBLZXkoInJhdyIsIGFlc0tleSwgcHVibGljS2V5LCB3cmFwQWxnb3JpdGhtKTsKLX0pLnRoZW4o
ZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgd3JhcHBlZEtleSA9IHJlc3VsdDsKLQotICAgIGRlYnVn
KCJVbndyYXBwaW5nIGl0Li4uIik7Ci0gICAgLy8gcHJpdmF0ZUtleSBsYWNrcyB1bndyYXBLZXkg
dXNhZ2UuCi0gICAgc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUudW53cmFwS2V5KCJyYXciLCB3
cmFwcGVkS2V5LCBwcml2YXRlS2V5LCB3cmFwQWxnb3JpdGhtLCAiYWVzLWNiYyIsIGV4dHJhY3Rh
YmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKScpOwotCi0gICAgZmluaXNoSlNUZXN0KCk7Ci19
KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL3dyYXBLZXktY2hlY2stdXNhZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS93cmFwS2V5LWNoZWNrLXVzYWdlLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGY0NzRiMWJhOTM2ODk4OWM0YWNjMzUwMzgxOWFh
NGYxYmYxMjEwMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3dyYXBLZXktY2hlY2stdXNhZ2UtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDE6IEtleSB1c2FnZXMgZG8gbm90IGluY2x1ZGUgJ3dyYXBLZXknCi1WZXJpZnkgdGhhdCB1c2Fn
ZSBpcyByZXNwZWN0ZWQgaW4gd3JhcEtleSBvcGVyYXRpb24uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KLQotCi1JbXBvcnRpbmcgYW4gUlNBIGtleS4uLgotSW1wb3J0aW5nIGFuIEFFUyBr
ZXkuLi4KLVdyYXBwaW5nIGl0Li4uCi1QQVNTIGNyeXB0by5zdWJ0bGUud3JhcEtleSgicmF3Iiwg
YWVzS2V5LCBwdWJsaWNLZXksIHdyYXBBbGdvcml0aG0pIHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBw
b3J0ZWRFcnJvciAoRE9NIEV4Y2VwdGlvbiA5KTogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9y
dGVkLi4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3dyYXBLZXktY2hlY2stdXNh
Z2UuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvd3JhcEtleS1jaGVjay11c2FnZS5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwN2U2YTFmOTBjZjc1ZjRlMzI2NTU1
OWI0N2E5OTY5ZWY0ODJmMTdmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvd3JhcEtleS1jaGVjay11c2FnZS5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgdXNhZ2UgaXMg
cmVzcGVjdGVkIGluIHdyYXBLZXkgb3BlcmF0aW9uLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKLQotdmFyIHB1YmxpY0tleUpTT04gPSB7Ci0gICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJS
U0EtT0FFUCIsCi0gICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5
MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dR
R08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2
czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5
YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNC
aXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFpp
aXlpZ2x4TUxfaTMtX0NlZWNDdyIsCi0gICAgZTogIkFRQUIiCi19OwotCi12YXIgd3JhcEFsZ29y
aXRobSA9IHtuYW1lOiAiUlNBLU9BRVAiLCBoYXNoOiAic2hhLTEifTsKLXZhciBleHRyYWN0YWJs
ZSA9IHRydWU7Ci12YXIgbm9uRXh0cmFjdGFibGUgPSBmYWxzZTsKLQotZGVidWcoIkltcG9ydGlu
ZyBhbiBSU0Ega2V5Li4uIik7Ci1jcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlU
b1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHVibGljS2V5SlNPTikpLCBudWxsLCBleHRyYWN0
YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAidW53cmFwS2V5Il0pLnRoZW4oZnVuY3Rpb24o
cmVzdWx0KSB7Ci0gICAgcHVibGljS2V5ID0gcmVzdWx0OwotCi0gICAgZGVidWcoIkltcG9ydGlu
ZyBhbiBBRVMga2V5Li4uIik7Ci0gICAgYWVzS2V5RGF0YSA9IGhleFN0cmluZ1RvVWludDhBcnJh
eSgiNjAzZGViMTAxNWNhNzFiZTJiNzNhZWYwODU3ZDc3ODExZjM1MmMwNzNiNjEwOGQ3MmQ5ODEw
YTMwOTE0ZGZmNCIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3Iiwg
YWVzS2V5RGF0YSwgImFlcy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQi
LCAid3JhcEtleSIsICJ1bndyYXBLZXkiXSkKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0g
ICAgYWVzS2V5ID0gcmVzdWx0OwotCi0gICAgZGVidWcoIldyYXBwaW5nIGl0Li4uIik7Ci0gICAg
Ly8gcHVibGljS2V5IGxhY2tzIHdyYXBLZXkgdXNhZ2UuCi0gICAgc2hvdWxkVGhyb3coJ2NyeXB0
by5zdWJ0bGUud3JhcEtleSgicmF3IiwgYWVzS2V5LCBwdWJsaWNLZXksIHdyYXBBbGdvcml0aG0p
Jyk7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMt
MTkyLWVuY3J5cHQtZGVjcnlwdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL2Flcy1jYmMtMTkyLWVuY3J5cHQtZGVjcnlwdC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTc3ZjI3ZGExMTE4ODk2OTZlNmM0OGExMWQ5YmE5MWMzODEwOWIzMgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy0xOTItZW5j
cnlwdC1kZWNyeXB0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitUZXN0IEFFUy1DQkMg
ZW5jcnlwdCBhbmQgZGVjcnlwdCBmdW5jdGlvbnMgd2l0aCBhIDI1NiBiaXQga2V5LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworSW1wb3J0aW5nIGEgcmF3IEFFUyBrZXkgZnJvbSBz
dHJpbmcgbGl0ZXJhbC4uLgorUEFTUyBrZXkudHlwZSBpcyAnc2VjcmV0JworUEFTUyBrZXkuZXh0
cmFjdGFibGUgaXMgdHJ1ZQorUEFTUyBrZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0FFUy1DQkMnCitQ
QVNTIGtleS5hbGdvcml0aG0ubGVuZ3RoIGlzIDE5MgorUEFTUyBrZXkudXNhZ2VzIGlzIFsnZGVj
cnlwdCcsICdlbmNyeXB0J10KK1VzaW5nIHRoZSBrZXkgdG8gZW5jcnlwdCBwbGFpbnRleHQuLi4K
K1BBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShlbmNyeXB0aW9uUmVzdWx0KSkg
aXMgJzRmMDIxZGIyNDNiYzYzM2Q3MTc4MTgzYTlmYTA3MWU4YjRkOWFkYTlhZDdkZWRmNGU1ZTcz
ODc2M2Y2OTE0NWE1NzFiMjQyMDEyZmI3YWUwN2ZhOWJhYWMzZGYxMDJlMDA4YjBlMjc5ODg1OTg4
ODFkOTIwYTllNjRmNTYxNWNkNjEyY2NkNzkyMjRiMzUwOTM1ZDQ1ZGQ2YTk4ZjgxNzYnCitEZWNy
eXB0aW5nIGl0IGJhY2suLi4KK1BBU1MgbmV3IFVpbnQ4QXJyYXkoZGVjcnlwdGlvblJlc3VsdCkg
aXMgcGxhaW50ZXh0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMt
Y2JjLTE5Mi1lbmNyeXB0LWRlY3J5cHQuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRT
dWJ0bGUvYWVzLWNiYy0xOTItZW5jcnlwdC1kZWNyeXB0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWVhZTJh
NGE1N2ExMzk3MTc4MzY3MDZlY2JkNDgzN2JmNmU5MDJmNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy0xOTItZW5jcnlwdC1kZWNyeXB0
Lmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisK
KzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCBBRVMtQ0JDIGVuY3J5cHQgYW5kIGRlY3J5cHQg
ZnVuY3Rpb25zIHdpdGggYSAyNTYgYml0IGtleS4iKTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7
CisKK3ZhciBrZXlEYXRhID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCI4ZTczYjBmN2RhMGU2NDUy
YzgxMGYzMmI4MDkwNzllNTYyZjhlYWQyNTIyYzZiN2IiKTsKK3ZhciBpdiA9IGhleFN0cmluZ1Rv
VWludDhBcnJheSgiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYiKTsKK3ZhciBwbGFp
bnRleHQgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjZiYzFiZWUyMmU0MDlmOTZlOTNkN2UxMTcz
OTMxNzJhYWUyZDhhNTcxZTAzYWM5YzllYjc2ZmFjNDVhZjhlNTEzMGM4MWM0NmEzNWNlNDExZTVm
YmMxMTkxYTBhNTJlZmY2OWYyNDQ1ZGY0ZjliMTdhZDJiNDE3YmU2NmMzNzEwIik7Cit2YXIgZXh0
cmFjdGFibGUgPSB0cnVlOworCitkZWJ1ZygiSW1wb3J0aW5nIGEgcmF3IEFFUyBrZXkgZnJvbSBz
dHJpbmcgbGl0ZXJhbC4uLiIpOworY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGtleURh
dGEsICJhZXMtY2JjIiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pLnRoZW4o
ZnVuY3Rpb24ocmVzdWx0KSB7CisgICAga2V5ID0gcmVzdWx0OworICAgIHNob3VsZEJlKCJrZXku
dHlwZSIsICInc2VjcmV0JyIpOworICAgIHNob3VsZEJlKCJrZXkuZXh0cmFjdGFibGUiLCAidHJ1
ZSIpOworICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FFUy1DQkMnIik7Cisg
ICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjE5MiIpOworICAgIHNob3VsZEJl
KCJrZXkudXNhZ2VzIiwgIlsnZGVjcnlwdCcsICdlbmNyeXB0J10iKTsKKworICAgIGRlYnVnKCJV
c2luZyB0aGUga2V5IHRvIGVuY3J5cHQgcGxhaW50ZXh0Li4uIik7CisgICAgcmV0dXJuIGNyeXB0
by5zdWJ0bGUuZW5jcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXksIHBsYWludGV4
dCk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGVuY3J5cHRpb25SZXN1bHQgPSBy
ZXN1bHQ7CisgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZW5j
cnlwdGlvblJlc3VsdCkpIiwgIic0ZjAyMWRiMjQzYmM2MzNkNzE3ODE4M2E5ZmEwNzFlOGI0ZDlh
ZGE5YWQ3ZGVkZjRlNWU3Mzg3NjNmNjkxNDVhNTcxYjI0MjAxMmZiN2FlMDdmYTliYWFjM2RmMTAy
ZTAwOGIwZTI3OTg4NTk4ODgxZDkyMGE5ZTY0ZjU2MTVjZDYxMmNjZDc5MjI0YjM1MDkzNWQ0NWRk
NmE5OGY4MTc2JyIpOworCisgICAgZGVidWcoIkRlY3J5cHRpbmcgaXQgYmFjay4uLiIpOworICAg
IHJldHVybiBjcnlwdG8uc3VidGxlLmRlY3J5cHQoe25hbWU6ICJhZXMtY2JjIiwgaXY6IGl2fSwg
a2V5LCByZXN1bHQpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBkZWNyeXB0aW9u
UmVzdWx0ID0gcmVzdWx0OworICAgIHNob3VsZEJlKCJuZXcgVWludDhBcnJheShkZWNyeXB0aW9u
UmVzdWx0KSIsICJwbGFpbnRleHQiKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3Nj
cmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9hZXMtY2JjLTI1Ni1lbmNyeXB0LWRlY3J5cHQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLTI1Ni1lbmNyeXB0LWRlY3J5
cHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwOGI1NWJkYzIzZjdmMzQwN2Y1NGZhODQ4MDRh
ZjlkNGI5YTA2NzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL2Flcy1jYmMtMjU2LWVuY3J5cHQtZGVjcnlwdC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxOSBAQAorVGVzdCBBRVMtQ0JDIGVuY3J5cHQgYW5kIGRlY3J5cHQgZnVuY3Rpb25zIHdpdGgg
YSAyNTYgYml0IGtleS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0ltcG9ydGlu
ZyBhIHJhdyBBRVMga2V5IGZyb20gc3RyaW5nIGxpdGVyYWwuLi4KK1BBU1Mga2V5LnR5cGUgaXMg
J3NlY3JldCcKK1BBU1Mga2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKK1BBU1Mga2V5LmFsZ29yaXRo
bS5uYW1lIGlzICdBRVMtQ0JDJworUEFTUyBrZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyAyNTYKK1BB
U1Mga2V5LnVzYWdlcyBpcyBbJ2RlY3J5cHQnLCAnZW5jcnlwdCddCitVc2luZyB0aGUga2V5IHRv
IGVuY3J5cHQgcGxhaW50ZXh0Li4uCitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJy
YXkoZW5jcnlwdGlvblJlc3VsdCkpIGlzICdmNThjNGMwNGQ2ZTVmMWJhNzc5ZWFiZmI1ZjdiZmJk
NjljZmM0ZTk2N2VkYjgwOGQ2NzlmNzc3YmM2NzAyYzdkMzlmMjMzNjlhOWQ5YmFjZmE1MzBlMjYz
MDQyMzE0NjFiMmViMDVlMmMzOWJlOWZjZGE2YzE5MDc4YzZhOWQxYjNmNDYxNzk2ZDZiMGQ2YjJl
MGMyYTcyYjRkODBlNjQ0JworRGVjcnlwdGluZyBpdCBiYWNrLi4uCitQQVNTIG5ldyBVaW50OEFy
cmF5KGRlY3J5cHRpb25SZXN1bHQpIGlzIHBsYWludGV4dAorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy0yNTYtZW5jcnlwdC1kZWNyeXB0Lmh0bWwgYi9MYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtMjU2LWVuY3J5cHQtZGVjcnlwdC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjU5NDdiZDRiN2UyODA3OWY1OGQ0ZDAxYTVlNDcwNTY0MDFiNDZmMmIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1j
YmMtMjU2LWVuY3J5cHQtZGVjcnlwdC5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgQUVTLUNC
QyBlbmNyeXB0IGFuZCBkZWNyeXB0IGZ1bmN0aW9ucyB3aXRoIGEgMjU2IGJpdCBrZXkuIik7CisK
K2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIga2V5RGF0YSA9IGhleFN0cmluZ1RvVWludDhB
cnJheSgiNjAzZGViMTAxNWNhNzFiZTJiNzNhZWYwODU3ZDc3ODExZjM1MmMwNzNiNjEwOGQ3MmQ5
ODEwYTMwOTE0ZGZmNCIpOwordmFyIGl2ID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMDAxMDIw
MzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIpOwordmFyIHBsYWludGV4dCA9IGhleFN0cmluZ1Rv
VWludDhBcnJheSgiNmJjMWJlZTIyZTQwOWY5NmU5M2Q3ZTExNzM5MzE3MmFhZTJkOGE1NzFlMDNh
YzljOWViNzZmYWM0NWFmOGU1MTMwYzgxYzQ2YTM1Y2U0MTFlNWZiYzExOTFhMGE1MmVmZjY5ZjI0
NDVkZjRmOWIxN2FkMmI0MTdiZTY2YzM3MTAiKTsKK3ZhciBleHRyYWN0YWJsZSA9IHRydWU7CisK
K2RlYnVnKCJJbXBvcnRpbmcgYSByYXcgQUVTIGtleSBmcm9tIHN0cmluZyBsaXRlcmFsLi4uIik7
CitjcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3Iiwga2V5RGF0YSwgImFlcy1jYmMiLCBleHRy
YWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsK
KyAgICBrZXkgPSByZXN1bHQ7CisgICAgc2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7
CisgICAgc2hvdWxkQmUoImtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7CisgICAgc2hvdWxkQmUo
ImtleS5hbGdvcml0aG0ubmFtZSIsICInQUVTLUNCQyciKTsKKyAgICBzaG91bGRCZSgia2V5LmFs
Z29yaXRobS5sZW5ndGgiLCAiMjU2Iik7CisgICAgc2hvdWxkQmUoImtleS51c2FnZXMiLCAiWydk
ZWNyeXB0JywgJ2VuY3J5cHQnXSIpOworCisgICAgZGVidWcoIlVzaW5nIHRoZSBrZXkgdG8gZW5j
cnlwdCBwbGFpbnRleHQuLi4iKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5lbmNyeXB0KHtu
YW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtleSwgcGxhaW50ZXh0KTsKK30pLnRoZW4oZnVuY3Rp
b24ocmVzdWx0KSB7CisgICAgZW5jcnlwdGlvblJlc3VsdCA9IHJlc3VsdDsKKyAgICBzaG91bGRC
ZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShlbmNyeXB0aW9uUmVzdWx0KSkiLCAi
J2Y1OGM0YzA0ZDZlNWYxYmE3NzllYWJmYjVmN2JmYmQ2OWNmYzRlOTY3ZWRiODA4ZDY3OWY3Nzdi
YzY3MDJjN2QzOWYyMzM2OWE5ZDliYWNmYTUzMGUyNjMwNDIzMTQ2MWIyZWIwNWUyYzM5YmU5ZmNk
YTZjMTkwNzhjNmE5ZDFiM2Y0NjE3OTZkNmIwZDZiMmUwYzJhNzJiNGQ4MGU2NDQnIik7CisKKyAg
ICBkZWJ1ZygiRGVjcnlwdGluZyBpdCBiYWNrLi4uIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0
bGUuZGVjcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXksIHJlc3VsdCk7Cit9KS50
aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGRlY3J5cHRpb25SZXN1bHQgPSByZXN1bHQ7Cisg
ICAgc2hvdWxkQmUoIm5ldyBVaW50OEFycmF5KGRlY3J5cHRpb25SZXN1bHQpIiwgInBsYWludGV4
dCIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1j
YmMtZW5jcnlwdC1kZWNyeXB0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJr
aXRTdWJ0bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5cHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY2YjMxNTA3MWQ1NDg4Njc2Yjc0ZWFlMDQ5OGZlYmE3MWNkNTkwZDgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtZW5jcnlwdC1kZWNy
eXB0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI0IEBACitUZXN0IEFFUy1DQkMgZW5jcnlwdCBh
bmQgZGVjcnlwdCBmdW5jdGlvbnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitJ
bXBvcnRpbmcgYSByYXcgQUVTIGtleSBmcm9tIHN0cmluZyBsaXRlcmFsLi4uCitQQVNTIGtleS50
eXBlIGlzICdzZWNyZXQnCitQQVNTIGtleS5leHRyYWN0YWJsZSBpcyB0cnVlCitQQVNTIGtleS5h
bGdvcml0aG0ubmFtZSBpcyAnQUVTLUNCQycKK1BBU1Mga2V5LmFsZ29yaXRobS5sZW5ndGggaXMg
MTI4CitQQVNTIGtleS51c2FnZXMgaXMgWydkZWNyeXB0JywgJ2VuY3J5cHQnXQorVXNpbmcgdGhl
IGtleSB0byBlbmNyeXB0IHBsYWludGV4dC4uLgorUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBV
aW50OEFycmF5KGVuY3J5cHRpb25SZXN1bHQpKSBpcyAnNzY0OWFiYWM4MTE5YjI0NmNlZTk4ZTli
MTJlOTE5N2Q1MDg2Y2I5YjUwNzIxOWVlOTVkYjExM2E5MTc2NzhiMjczYmVkNmI4ZTNjMTc0M2I3
MTE2ZTY5ZTIyMjI5NTE2M2ZmMWNhYTE2ODFmYWMwOTEyMGVjYTMwNzU4NmUxYTc4Y2I4MjgwNzIz
MGUxMzIxZDNmYWUwMGQxOGNjMjAxMicKK0RlY3J5cHRpbmcgaXQgYmFjay4uLgorUEFTUyBuZXcg
VWludDhBcnJheShkZWNyeXB0aW9uUmVzdWx0KSBpcyBwbGFpbnRleHQKK1Rlc3RpbmcgaW5pdGlh
bGl6YXRpb24gdmVjdG9yIGJpbmRpbmdzLi4uCitQQVNTIGNyeXB0by5zdWJ0bGUuZW5jcnlwdCh7
bmFtZTogJ0FFUy1DQkMnLCBpdjogbnVsbH0sIGtleSwgcGxhaW50ZXh0KSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBPbmx5IEFycmF5QnVmZmVyIGFuZCBBcnJheUJ1ZmZlclZpZXcgb2JqZWN0
cyBjYW4gYmUgcGFzc2VkIGFzIENyeXB0b09wZXJhdGlvbkRhdGEuCitQQVNTIGNyeXB0by5zdWJ0
bGUuZW5jcnlwdCh7bmFtZTogJ0FFUy1DQkMnfSwga2V5LCBwbGFpbnRleHQpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IE9ubHkgQXJyYXlCdWZmZXIgYW5kIEFycmF5QnVmZmVyVmlldyBvYmpl
Y3RzIGNhbiBiZSBwYXNzZWQgYXMgQ3J5cHRvT3BlcmF0aW9uRGF0YS4KK1BBU1MgY3J5cHRvLnN1
YnRsZS5lbmNyeXB0KHtuYW1lOiAnQUVTLUNCQycsIGl2OiAzfSwga2V5LCBwbGFpbnRleHQpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE9ubHkgQXJyYXlCdWZmZXIgYW5kIEFycmF5QnVmZmVy
VmlldyBvYmplY3RzIGNhbiBiZSBwYXNzZWQgYXMgQ3J5cHRvT3BlcmF0aW9uRGF0YS4KK1BBU1Mg
Y3J5cHRvLnN1YnRsZS5lbmNyeXB0KHtuYW1lOiAnQUVTLUNCQycsIGl2OiBuZXcgVWludDhBcnJh
eShbMF0pfSwga2V5LCBwbGFpbnRleHQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogQUVTLUNCQyBp
bml0aWFsaXphdGlvbiBkYXRhIG11c3QgYmUgMTYgYnl0ZXMuCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWVuY3J5cHQtZGVjcnlwdC13aXRoLXBhZGRpbmct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWVu
Y3J5cHQtZGVjcnlwdC13aXRoLXBhZGRpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyZmRm
YmFhNGUyMGRlNjIzZGViODk3NWY4ZDA0MGIxZDU0MjlmNGYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtZW5jcnlwdC1kZWNyeXB0LXdp
dGgtcGFkZGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorVGVzdCBBRVMtQ0JDIGVu
Y3J5cHQgYW5kIGRlY3J5cHQgZnVuY3Rpb25zIG9uIGEgcGxhaW50ZXh0IHRoYXQgaXMgbm90IGEg
bXVsdGlwbGUgb2YgYmxvY2sgc2l6ZSBpbiBsZW5ndGguCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitJbXBvcnRpbmcgYSByYXcgQUVTIGtleSBmcm9tIHN0cmluZyBsaXRlcmFsLi4u
CitQQVNTIGtleS50eXBlIGlzICdzZWNyZXQnCitQQVNTIGtleS5leHRyYWN0YWJsZSBpcyB0cnVl
CitQQVNTIGtleS5hbGdvcml0aG0ubmFtZSBpcyAnQUVTLUNCQycKK1BBU1Mga2V5LmFsZ29yaXRo
bS5sZW5ndGggaXMgMTI4CitQQVNTIGtleS51c2FnZXMgaXMgWydkZWNyeXB0JywgJ2VuY3J5cHQn
XQorVXNpbmcgdGhlIGtleSB0byBlbmNyeXB0IHBsYWludGV4dC4uLgorUEFTUyBieXRlc1RvSGV4
U3RyaW5nKG5ldyBVaW50OEFycmF5KGN5cGhlcnRleHQpKSBpcyAnNjMwMTk5YzVmMjAyY2M3MTY3
YmI4NGM2YzcyYjM0OWQnCitEZWNyeXB0aW5nIGl0IGJhY2suLi4KK1BBU1MgbmV3IFVpbnQ4QXJy
YXkoZGVjcnlwdGlvblJlc3VsdCkgaXMgcGxhaW50ZXh0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5
cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWVuY3J5cHQtZGVjcnlwdC13aXRoLXBhZGRpbmcuaHRt
bCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5
cHQtd2l0aC1wYWRkaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmFiNjQ2MGE2ZjNiZTY4YWUxOGRjMGZl
ZjAxZTRmZjNjMzEzMWMyYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93
ZWJraXRTdWJ0bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5cHQtd2l0aC1wYWRkaW5nLmh0bWwKQEAg
LTAsMCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVGVzdCBBRVMtQ0JDIGVuY3J5cHQgYW5kIGRlY3J5cHQgZnVuY3Rpb25z
IG9uIGEgcGxhaW50ZXh0IHRoYXQgaXMgbm90IGEgbXVsdGlwbGUgb2YgYmxvY2sgc2l6ZSBpbiBs
ZW5ndGguIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIga2V5RGF0YSA9IGhleFN0
cmluZ1RvVWludDhBcnJheSgiMmI3ZTE1MTYyOGFlZDJhNmFiZjcxNTg4MDljZjRmM2MiKTsKK3Zh
ciBpdiA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMw
ZDBlMGYiKTsKK3ZhciBwbGFpbnRleHQgPSBhc2NpaVRvVWludDhBcnJheSgidGVzdCIpOwordmFy
IGV4dHJhY3RhYmxlID0gdHJ1ZTsKKworZGVidWcoIkltcG9ydGluZyBhIHJhdyBBRVMga2V5IGZy
b20gc3RyaW5nIGxpdGVyYWwuLi4iKTsKK2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBr
ZXlEYXRhLCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKS50
aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGtleSA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgi
a2V5LnR5cGUiLCAiJ3NlY3JldCciKTsKKyAgICBzaG91bGRCZSgia2V5LmV4dHJhY3RhYmxlIiwg
InRydWUiKTsKKyAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidBRVMtQ0JDJyIp
OworICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLmxlbmd0aCIsICIxMjgiKTsKKyAgICBzaG91
bGRCZSgia2V5LnVzYWdlcyIsICJbJ2RlY3J5cHQnLCAnZW5jcnlwdCddIik7CisKKyAgICBkZWJ1
ZygiVXNpbmcgdGhlIGtleSB0byBlbmNyeXB0IHBsYWludGV4dC4uLiIpOworICAgIHJldHVybiBj
cnlwdG8uc3VidGxlLmVuY3J5cHQoe25hbWU6ICJhZXMtY2JjIiwgaXY6IGl2fSwga2V5LCBwbGFp
bnRleHQpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBjeXBoZXJ0ZXh0ID0gcmVz
dWx0OworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGN5cGhl
cnRleHQpKSIsICInNjMwMTk5YzVmMjAyY2M3MTY3YmI4NGM2YzcyYjM0OWQnIik7CisKKyAgICBk
ZWJ1ZygiRGVjcnlwdGluZyBpdCBiYWNrLi4uIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUu
ZGVjcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXksIHJlc3VsdCk7Cit9KS50aGVu
KGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGRlY3J5cHRpb25SZXN1bHQgPSByZXN1bHQ7CisgICAg
c2hvdWxkQmUoIm5ldyBVaW50OEFycmF5KGRlY3J5cHRpb25SZXN1bHQpIiwgInBsYWludGV4dCIp
OworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWVu
Y3J5cHQtZGVjcnlwdC5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMt
Y2JjLWVuY3J5cHQtZGVjcnlwdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2N2Y0MjdlMzliMDM5NmU4ZDQ5
MTY3ZmEyNDk5OGQ0MjA2MDIwMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL2Flcy1jYmMtZW5jcnlwdC1kZWNyeXB0Lmh0bWwKQEAgLTAsMCArMSw1
NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbigiVGVzdCBBRVMtQ0JDIGVuY3J5cHQgYW5kIGRlY3J5cHQgZnVuY3Rpb25zLiIpOworCitq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGtleURhdGEgPSBoZXhTdHJpbmdUb1VpbnQ4QXJy
YXkoIjJiN2UxNTE2MjhhZWQyYTZhYmY3MTU4ODA5Y2Y0ZjNjIik7Cit2YXIgaXYgPSBoZXhTdHJp
bmdUb1VpbnQ4QXJyYXkoIjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmIik7Cit2YXIg
cGxhaW50ZXh0ID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCI2YmMxYmVlMjJlNDA5Zjk2ZTkzZDdl
MTE3MzkzMTcyYWFlMmQ4YTU3MWUwM2FjOWM5ZWI3NmZhYzQ1YWY4ZTUxMzBjODFjNDZhMzVjZTQx
MWU1ZmJjMTE5MWEwYTUyZWZmNjlmMjQ0NWRmNGY5YjE3YWQyYjQxN2JlNjZjMzcxMCIpOwordmFy
IGV4dHJhY3RhYmxlID0gdHJ1ZTsKKworZGVidWcoIkltcG9ydGluZyBhIHJhdyBBRVMga2V5IGZy
b20gc3RyaW5nIGxpdGVyYWwuLi4iKTsKK2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBr
ZXlEYXRhLCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKS50
aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGtleSA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgi
a2V5LnR5cGUiLCAiJ3NlY3JldCciKTsKKyAgICBzaG91bGRCZSgia2V5LmV4dHJhY3RhYmxlIiwg
InRydWUiKTsKKyAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidBRVMtQ0JDJyIp
OworICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLmxlbmd0aCIsICIxMjgiKTsKKyAgICBzaG91
bGRCZSgia2V5LnVzYWdlcyIsICJbJ2RlY3J5cHQnLCAnZW5jcnlwdCddIik7CisKKyAgICBkZWJ1
ZygiVXNpbmcgdGhlIGtleSB0byBlbmNyeXB0IHBsYWludGV4dC4uLiIpOworICAgIHJldHVybiBj
cnlwdG8uc3VidGxlLmVuY3J5cHQoe25hbWU6ICJhZXMtY2JjIiwgaXY6IGl2fSwga2V5LCBwbGFp
bnRleHQpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBlbmNyeXB0aW9uUmVzdWx0
ID0gcmVzdWx0OworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5
KGVuY3J5cHRpb25SZXN1bHQpKSIsICInNzY0OWFiYWM4MTE5YjI0NmNlZTk4ZTliMTJlOTE5N2Q1
MDg2Y2I5YjUwNzIxOWVlOTVkYjExM2E5MTc2NzhiMjczYmVkNmI4ZTNjMTc0M2I3MTE2ZTY5ZTIy
MjI5NTE2M2ZmMWNhYTE2ODFmYWMwOTEyMGVjYTMwNzU4NmUxYTc4Y2I4MjgwNzIzMGUxMzIxZDNm
YWUwMGQxOGNjMjAxMiciKTsKKworICAgIGRlYnVnKCJEZWNyeXB0aW5nIGl0IGJhY2suLi4iKTsK
KyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kZWNyeXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBp
dn0sIGtleSwgcmVzdWx0KTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgZGVjcnlw
dGlvblJlc3VsdCA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgibmV3IFVpbnQ4QXJyYXkoZGVjcnlw
dGlvblJlc3VsdCkiLCAicGxhaW50ZXh0Iik7CisKKyAgICBkZWJ1ZygiVGVzdGluZyBpbml0aWFs
aXphdGlvbiB2ZWN0b3IgYmluZGluZ3MuLi4iKTsKKyAgICBzaG91bGRUaHJvdygiY3J5cHRvLnN1
YnRsZS5lbmNyeXB0KHtuYW1lOiAnQUVTLUNCQycsIGl2OiBudWxsfSwga2V5LCBwbGFpbnRleHQp
Iik7CisgICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZW5jcnlwdCh7bmFtZTogJ0FFUy1D
QkMnfSwga2V5LCBwbGFpbnRleHQpIik7CisgICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUu
ZW5jcnlwdCh7bmFtZTogJ0FFUy1DQkMnLCBpdjogM30sIGtleSwgcGxhaW50ZXh0KSIpOworICAg
IHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmVuY3J5cHQoe25hbWU6ICdBRVMtQ0JDJywgaXY6
IG5ldyBVaW50OEFycmF5KFswXSl9LCBrZXksIHBsYWludGV4dCkiKTsKKworICAgIGZpbmlzaEpT
VGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWdlbmVyYXRlLWtleS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtZ2VuZXJh
dGUta2V5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTY2OTcyNDRiMmM2Y2EyNGQyYjBhYmEz
ZWEzNjk0OTU4YzQ5M2EwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9hZXMtY2JjLWdlbmVyYXRlLWtleS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
OSBAQAorVGVzdCBnZW5lcmF0aW5nIGFuIEFFUyBrZXkgdXNpbmcgQUVTLUNCQyBhbGdvcml0aG0u
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGNyeXB0by5zdWJ0bGUuZ2Vu
ZXJhdGVLZXkoImFlcy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSkg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY3J5cHRvLnN1YnRs
ZS5nZW5lcmF0ZUtleSh7bmFtZTogImFlcy1jYmMifSwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIs
ICJkZWNyeXB0Il0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFZhbHVlIE5hTiBpcyBvdXRz
aWRlIHRoZSByYW5nZSBbMCwgNjU1MzVdLgorUEFTUyBjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5
KHtuYW1lOiAiYWVzLWNiYyIsIGxlbmd0aDogdW5kZWZpbmVkfSwgZXh0cmFjdGFibGUsIFsiZW5j
cnlwdCIsICJkZWNyeXB0Il0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFZhbHVlIE5hTiBp
cyBvdXRzaWRlIHRoZSByYW5nZSBbMCwgNjU1MzVdLgorUEFTUyBjcnlwdG8uc3VidGxlLmdlbmVy
YXRlS2V5KHtuYW1lOiAiYWVzLWNiYyIsIGxlbmd0aDoge319LCBleHRyYWN0YWJsZSwgWyJlbmNy
eXB0IiwgImRlY3J5cHQiXSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVmFsdWUgTmFOIGlz
IG91dHNpZGUgdGhlIHJhbmdlIFswLCA2NTUzNV0uCitHZW5lcmF0aW5nIGEga2V5Li4uCitQQVNT
IGtleS50eXBlIGlzICdzZWNyZXQnCitQQVNTIGtleS5leHRyYWN0YWJsZSBpcyB0cnVlCitQQVNT
IGtleS5hbGdvcml0aG0ubmFtZSBpcyAnQUVTLUNCQycKK1BBU1Mga2V5LmFsZ29yaXRobS5sZW5n
dGggaXMgMTI4CitQQVNTIGtleS51c2FnZXMgaXMgWydkZWNyeXB0JywgJ2VuY3J5cHQnXQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1nZW5lcmF0ZS1rZXku
aHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1nZW5lcmF0ZS1r
ZXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lMzYyYzhmOTQyMWJjN2YwZDdmN2MwODk2M2JlNGU2M2Q5NjQ3
Y2NlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9h
ZXMtY2JjLWdlbmVyYXRlLWtleS5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgZ2VuZXJhdGlu
ZyBhbiBBRVMga2V5IHVzaW5nIEFFUy1DQkMgYWxnb3JpdGhtLiIpOworCitqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKKworc2hvdWxkVGhyb3coJ2NyeXB0
by5zdWJ0bGUuZ2VuZXJhdGVLZXkoImFlcy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0Iiwg
ImRlY3J5cHQiXSknKTsKK3Nob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtu
YW1lOiAiYWVzLWNiYyJ9LCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSknKTsK
K3Nob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiYWVzLWNiYyIs
IGxlbmd0aDogdW5kZWZpbmVkfSwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0p
Jyk7CitzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImFlcy1j
YmMiLCBsZW5ndGg6IHt9fSwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pJyk7
CisKK2RlYnVnKCJHZW5lcmF0aW5nIGEga2V5Li4uIik7CitjcnlwdG8uc3VidGxlLmdlbmVyYXRl
S2V5KHtuYW1lOiAiYWVzLWNiYyIsIGxlbmd0aDogMTI4fSwgZXh0cmFjdGFibGUsIFsiZW5jcnlw
dCIsICJkZWNyeXB0Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAga2V5ID0gcmVzdWx0
OworCisgICAgc2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7CisgICAgc2hvdWxkQmUo
ImtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7CisgICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0u
bmFtZSIsICInQUVTLUNCQyciKTsKKyAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgi
LCAiMTI4Iik7CisgICAgc2hvdWxkQmUoImtleS51c2FnZXMiLCAiWydkZWNyeXB0JywgJ2VuY3J5
cHQnXSIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorCis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Fl
cy1jYmMtaW1wb3J0LWp3ay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL2Flcy1jYmMtaW1wb3J0LWp3ay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDBkZmI2
NDI2MzAzOTlkNTJjOGFlNmE5ZGMyMmFlZGFlMTEwOGVhMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1pbXBvcnQtandrLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE5IEBACitUZXN0IGltcG9ydGluZyBhIEpXSyBrZXkgZm9yIEFFUy1D
QkMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitJbXBvcnRpbmcgYSBrZXkuLi4K
KworUEFTUyBrZXkudHlwZSBpcyAnc2VjcmV0JworUEFTUyBrZXkuZXh0cmFjdGFibGUgaXMgZmFs
c2UKK1BBU1Mga2V5LmFsZ29yaXRobS5uYW1lIGlzICdBRVMtQ0JDJworUEFTUyBrZXkuYWxnb3Jp
dGhtLmxlbmd0aCBpcyAxOTIKK1BBU1Mga2V5LnVzYWdlcyBpcyBbImVuY3J5cHQiXQorCitVc2lu
ZyB0aGUga2V5IHRvIGVuY3J5cHQgcGxhaW50ZXh0Li4uCitQQVNTIGJ5dGVzVG9IZXhTdHJpbmco
bmV3IFVpbnQ4QXJyYXkoZW5jcnlwdGlvblJlc3VsdCkpIGlzICc0ZjAyMWRiMjQzYmM2MzNkNzE3
ODE4M2E5ZmEwNzFlOGI0ZDlhZGE5YWQ3ZGVkZjRlNWU3Mzg3NjNmNjkxNDVhNTcxYjI0MjAxMmZi
N2FlMDdmYTliYWFjM2RmMTAyZTAwOGIwZTI3OTg4NTk4ODgxZDkyMGE5ZTY0ZjU2MTVjZDYxMmNj
ZDc5MjI0YjM1MDkzNWQ0NWRkNmE5OGY4MTc2JworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93
ZWJraXRTdWJ0bGUvYWVzLWNiYy1pbXBvcnQtandrLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL2Flcy1jYmMtaW1wb3J0LWp3ay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkMDhjYzM3
NTViOTA5MGQzYzI3NjA2OTZhMGQxNGRlOWMxZGM4MmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtaW1wb3J0LWp3ay5odG1sCkBAIC0w
LDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oIlRlc3QgaW1wb3J0aW5nIGEgSldLIGtleSBmb3IgQUVTLUNCQy4iKTsKKwor
anNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBleHRyYWN0YWJsZSA9IHRydWU7CisKK3ZhciBp
diA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBl
MGYiKTsKK3ZhciBwbGFpbnRleHQgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjZiYzFiZWUyMmU0
MDlmOTZlOTNkN2UxMTczOTMxNzJhYWUyZDhhNTcxZTAzYWM5YzllYjc2ZmFjNDVhZjhlNTEzMGM4
MWM0NmEzNWNlNDExZTVmYmMxMTkxYTBhNTJlZmY2OWYyNDQ1ZGY0ZjliMTdhZDJiNDE3YmU2NmMz
NzEwIik7CisKK3ZhciBqd2tLZXkgPSB7CisgICAgImt0eSI6ICJvY3QiLAorICAgICJhbGciOiAi
QTE5MkNCQyIsCisgICAgInVzZSI6ICJlbmMiLAorICAgICJleHQiOiB0cnVlLAorICAgICJrIjog
ImpuT3c5OW9PWkZMSUVQTXJnSkI1NVdMNDZ0SlNMR3Q3IgorfTsKKwordmFyIGp3a0tleUFzQXJy
YXlCdWZmZXIgPSBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShqd2tLZXkpKTsKKwor
ZGVidWcoIkltcG9ydGluZyBhIGtleS4uLlxuIik7CitjcnlwdG8uc3VidGxlLmltcG9ydEtleSgi
andrIiwgandrS2V5QXNBcnJheUJ1ZmZlciwgbnVsbCwgZmFsc2UsIFsiZW5jcnlwdCJdKS50aGVu
KGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGtleSA9IHJlc3VsdDsKKworICAgIHNob3VsZEJlKCJr
ZXkudHlwZSIsICInc2VjcmV0JyIpOworICAgIHNob3VsZEJlKCJrZXkuZXh0cmFjdGFibGUiLCAi
ZmFsc2UiKTsKKyAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidBRVMtQ0JDJyIp
OworICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLmxlbmd0aCIsICIxOTIiKTsKKyAgICBzaG91
bGRCZSgia2V5LnVzYWdlcyIsICdbImVuY3J5cHQiXScpOworCisgICAgZGVidWcoIlxuVXNpbmcg
dGhlIGtleSB0byBlbmNyeXB0IHBsYWludGV4dC4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3Vi
dGxlLmVuY3J5cHQoe25hbWU6ICJhZXMtY2JjIiwgaXY6IGl2fSwga2V5LCBwbGFpbnRleHQpOwor
fSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBlbmNyeXB0aW9uUmVzdWx0ID0gcmVzdWx0
OworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGVuY3J5cHRp
b25SZXN1bHQpKSIsICInNGYwMjFkYjI0M2JjNjMzZDcxNzgxODNhOWZhMDcxZThiNGQ5YWRhOWFk
N2RlZGY0ZTVlNzM4NzYzZjY5MTQ1YTU3MWIyNDIwMTJmYjdhZTA3ZmE5YmFhYzNkZjEwMmUwMDhi
MGUyNzk4ODU5ODg4MWQ5MjBhOWU2NGY1NjE1Y2Q2MTJjY2Q3OTIyNGIzNTA5MzVkNDVkZDZhOThm
ODE3NiciKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+CisKKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVz
LWNiYy1pbnZhbGlkLWxlbmd0aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL2Flcy1jYmMtaW52YWxpZC1sZW5ndGgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmEwMmE1ZjIwNTYwNzhhYjdmNGMwMjRkNDdhMTc4NWE5ODc3MzUxOTYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtaW52YWxpZC1sZW5n
dGgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3QgYW4gdW5zdXBwb3J0ZWQgQUVT
IGtleSBsZW5ndGguCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitJbXBvcnRpbmcg
YSByYXcgQUVTIGtleSBmcm9tIHN0cmluZyBsaXRlcmFsLi4uCitQQVNTIGtleS50eXBlIGlzICdz
ZWNyZXQnCitQQVNTIGtleS5leHRyYWN0YWJsZSBpcyB0cnVlCitQQVNTIGtleS5hbGdvcml0aG0u
bmFtZSBpcyAnQUVTLUNCQycKK1BBU1Mga2V5LmFsZ29yaXRobS5sZW5ndGggaXMgMTc2CitQQVNT
IGtleS51c2FnZXMgaXMgWydkZWNyeXB0JywgJ2VuY3J5cHQnXQorVXNpbmcgdGhlIGtleSB0byBl
bmNyeXB0IHBsYWludGV4dC4uLgorRmFpbGVkLCBhcyBleHBlY3RlZC4gTm90ZSB0aGF0IHRoZSBz
cGVjIGRvZXNuJ3QgYXBwZWFyIHRvIGNsZWFybHkgZGVmaW5lIHdoaWNoIHN0ZXAgc2hvdWxkIGZh
aWwuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWludmFs
aWQtbGVuZ3RoLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMt
aW52YWxpZC1sZW5ndGguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDdhODljODEzYmU5ZTE4M2Y1Y2FhMDQ2
NWUzMzcxMmFlZjNmODhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9hZXMtY2JjLWludmFsaWQtbGVuZ3RoLmh0bWwKQEAgLTAsMCArMSw0MSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Nv
bW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigi
VGVzdCBhbiB1bnN1cHBvcnRlZCBBRVMga2V5IGxlbmd0aC4iKTsKKworanNUZXN0SXNBc3luYyA9
IHRydWU7CisKK3ZhciBrZXlEYXRhID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCI4ZTczYjBmN2Rh
MGU2NDUyYzgxMGYzMmI4MDkwNzllNTYyZjhlYWQyNTIyYyIpOwordmFyIGl2ID0gaGV4U3RyaW5n
VG9VaW50OEFycmF5KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIpOwordmFyIHBs
YWludGV4dCA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiNmJjMWJlZTIyZTQwOWY5NmU5M2Q3ZTEx
NzM5MzE3MmFhZTJkOGE1NzFlMDNhYzljOWViNzZmYWM0NWFmOGU1MTMwYzgxYzQ2YTM1Y2U0MTFl
NWZiYzExOTFhMGE1MmVmZjY5ZjI0NDVkZjRmOWIxN2FkMmI0MTdiZTY2YzM3MTAiKTsKK3ZhciBl
eHRyYWN0YWJsZSA9IHRydWU7CisKK2RlYnVnKCJJbXBvcnRpbmcgYSByYXcgQUVTIGtleSBmcm9t
IHN0cmluZyBsaXRlcmFsLi4uIik7CitjcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3Iiwga2V5
RGF0YSwgImFlcy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSkudGhl
bihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBrZXkgPSByZXN1bHQ7CisgICAgc2hvdWxkQmUoImtl
eS50eXBlIiwgIidzZWNyZXQnIik7CisgICAgc2hvdWxkQmUoImtleS5leHRyYWN0YWJsZSIsICJ0
cnVlIik7CisgICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIsICInQUVTLUNCQyciKTsK
KyAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMTc2Iik7CisgICAgc2hvdWxk
QmUoImtleS51c2FnZXMiLCAiWydkZWNyeXB0JywgJ2VuY3J5cHQnXSIpOworCisgICAgZGVidWco
IlVzaW5nIHRoZSBrZXkgdG8gZW5jcnlwdCBwbGFpbnRleHQuLi4iKTsKKyAgICByZXR1cm4gY3J5
cHRvLnN1YnRsZS5lbmNyeXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtleSwgW3BsYWlu
dGV4dF0pOworfSkudGhlbih1bmRlZmluZWQsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGRlYnVn
KCJGYWlsZWQsIGFzIGV4cGVjdGVkLiBOb3RlIHRoYXQgdGhlIHNwZWMgZG9lc24ndCBhcHBlYXIg
dG8gY2xlYXJseSBkZWZpbmUgd2hpY2ggc3RlcCBzaG91bGQgZmFpbC4iKTsKKworICAgIGZpbmlz
aEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXVud3JhcC1mYWlsdXJl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy11
bndyYXAtZmFpbHVyZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWU4MTEyZDgyMDAwOTllM2E5
MjNlNzIyMTA2MDc2ZWQ0NTdmN2I4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy11bndyYXAtZmFpbHVyZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMyBAQAorVGVzdCB1bndyYXBwaW5nIGFuIFJTQSBrZXkgd2l0aCBBRVMtQ0JDLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworSW1wb3J0aW5nIGFuIHVud3JhcHBpbmcg
a2V5Li4uCitQQVNTIHVud3JhcHBpbmdLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0FFUy1DQkMnCitV
bndyYXBwaW5nIGEga2V5Li4uCitQQVNTIFByb21pc2UgcmVqZWN0ZWQKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtdW53cmFwLWZhaWx1cmUuaHRtbCBiL0xh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy11bndyYXAtZmFpbHVyZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmY3ZmNmNGZlOWM0ZTRlYjBkMDVhYjE5MDgwOWE3ZmFhY2IwOWQ2NDkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMt
dW53cmFwLWZhaWx1cmUuaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IHVud3JhcHBpbmcgYW4g
UlNBIGtleSB3aXRoIEFFUy1DQkMuIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIg
ZXh0cmFjdGFibGUgPSB0cnVlOwordmFyIG5vbkV4dHJhY3RhYmxlID0gZmFsc2U7CisKK3ZhciB1
bndyYXBwaW5nS2V5T2N0ZXRzID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCIyYTAwZTBlNzc2ZTk0
ZTRkYzg5YmY5NDdjZWJkZWJlMSIpOwordmFyIHdyYXBwZWRLZXkgPSBoZXhTdHJpbmdUb1VpbnQ4
QXJyYXkoImI0OTBkZWRiM2FiYzNmZDU0NWUxNDY1MzhlNmNjM2NhIik7IC8vIEFuIGVtcHR5IGVu
Y3J5cHRlZCBKU09OLgorCitkZWJ1ZygiSW1wb3J0aW5nIGFuIHVud3JhcHBpbmcga2V5Li4uIik7
CitjcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3IiwgdW53cmFwcGluZ0tleU9jdGV0cywgIkFF
Uy1DQkMiLCBub25FeHRyYWN0YWJsZSwgWyJ1bndyYXBLZXkiXSkudGhlbihmdW5jdGlvbihyZXN1
bHQpIHsKKyAgICB1bndyYXBwaW5nS2V5ID0gcmVzdWx0OworICAgIHNob3VsZEJlKCJ1bndyYXBw
aW5nS2V5LmFsZ29yaXRobS5uYW1lIiwgIidBRVMtQ0JDJyIpOworICAgIHZhciB1bndyYXBBbGdv
cml0aG0gPSB7bmFtZTogIkFFUy1DQkMiLCBpdjogaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMDAx
MDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIpfTsKKyAgICBkZWJ1ZygiVW53cmFwcGluZyBh
IGtleS4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLnVud3JhcEtleSgiandrIiwgd3Jh
cHBlZEtleSwgdW53cmFwcGluZ0tleSwgdW53cmFwQWxnb3JpdGhtLCBudWxsLCBleHRyYWN0YWJs
ZSwgWyJzaWduIiwgInZlcmlmeSIsICJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcCIsICJ1bndy
YXAiXSk7Cit9KS50aGVuKHVuZGVmaW5lZCwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgdGVzdFBh
c3NlZCgiUHJvbWlzZSByZWplY3RlZCIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7CisKKzwv
c2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL2Flcy1jYmMtdW53cmFwLXJzYS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtdW53cmFwLXJzYS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uM2UwMWMxMTkzNjhiZDU3ZDM1NDM1NmYxMThkNTgyNDBmMGFkMzNkYgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy11
bndyYXAtcnNhLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIwIEBACitUZXN0IHVud3JhcHBpbmcg
YW4gUlNBIGtleSB3aXRoIEFFUy1DQkMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitJbXBvcnRpbmcgYW4gdW53cmFwcGluZyBrZXkuLi4KK1BBU1MgdW53cmFwcGluZ0tleS5hbGdv
cml0aG0ubmFtZSBpcyAnQUVTLUNCQycKK1Vud3JhcHBpbmcgYSBrZXkuLi4KK1BBU1MgdW53cmFw
cGVkS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgS2V5XScKK1BBU1MgdW53cmFwcGVkS2V5LnR5
cGUgaXMgJ3B1YmxpYycKK1BBU1MgdW53cmFwcGVkS2V5LnVzYWdlcyBpcyBbJ3NpZ24nLCd2ZXJp
ZnknXQorUEFTUyB1bndyYXBwZWRLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JTQVNTQS1QS0NTMS12
MV81JworUEFTUyB1bndyYXBwZWRLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGggaXMgMjA0OAor
UEFTUyBCYXNlNjRVUkwuc3RyaW5naWZ5KHVud3JhcHBlZEtleS5hbGdvcml0aG0ucHVibGljRXhw
b25lbnQpIGlzIHB1YmxpY0tleUpTT04uZQorUEFTUyB1bndyYXBwZWRLZXkuYWxnb3JpdGhtLmhh
c2gubmFtZSBpcyAnU0hBLTI1NicKK1BBU1MgdW53cmFwcGVkS2V5LmV4dHJhY3RhYmxlIGlzIGZh
bHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXVud3Jh
cC1yc2EuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy11bndy
YXAtcnNhLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGRkNzNhZjNkN2YwNjdiOTA1NmI4ZTQ3ZTczYTA4ODZj
ZDk2ZjEwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvYWVzLWNiYy11bndyYXAtcnNhLmh0bWwKQEAgLTAsMCArMSw1NiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCB1bndyYXBw
aW5nIGFuIFJTQSBrZXkgd2l0aCBBRVMtQ0JDLiIpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKK3ZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOwor
Cit2YXIgcHVibGljS2V5SlNPTiA9IHsKKyAgICBrdHk6ICJSU0EiLAorICAgIGFsZzogIlJTMjU2
IiwKKyAgICBuOiAicmNDVUN2N09jMUhWYW0xREloQ3pxa25UaFdhd09wOFFMazhaaXkycDEwQnlq
UUZDYWpvRml5dUFXbC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6SXpjLU1iTFNISUdnV1FHTzIxbEdp
SW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVNc0RoRDZzMmdWOW13
SGtydGtDeHRNV2RCaS03N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5ODliRnljOHRP
T0VJYjB4VVNmUFN6M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5M0JpdzY0cXVu
M2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3MktVcDAybUpEWmlpeWlnbHhN
TF9pMy1fQ2VlY0N3IiwKKyAgICBlOiAiQVFBQiIsCisgICAgZXh0OiBmYWxzZSwKKyAgICB1c2U6
ICJzaWciCit9OworCit2YXIgdW53cmFwcGluZ0tleU9jdGV0cyA9IGhleFN0cmluZ1RvVWludDhB
cnJheSgiMmEwMGUwZTc3NmU5NGU0ZGM4OWJmOTQ3Y2ViZGViZTEiKTsKK3ZhciB3cmFwcGVkS2V5
ID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCIzNTExZjYwMjhkYjA0ZWE5N2U3Y2ZhZDNjNGNjNjA4
MzdiY2VmZjI1Y2I2Yzg4MjkyZmJjYjQ1NDc1NzBhZmRjMzJlNDAwM2ZlNGQ2NWYxZTdkZjYwZGMx
ZmRiM2RmMzZjM2Y1OGFiMjI4ZTMzYWEzMTAwNTg1MmQ0NmQwYzJhZDEzMTg0MzVhMDcxYmJiNWJi
YjA1NjUwZWE2M2Q1NTE2OThiMGMwNDBkZDk1ZWQwZDM3OWI1ZTJlY2NiNTQ1YWU1NjIwYWNiODA1
MTE3NGNkMmFkNjQ3MzI4YWQ5OWRjZDQ2MmZlYzQwNzQ4NzI0ZWIxZTY4ZjIwOWY3NzlmYWEyYzM1
YjRkNGQxYjY2MDRhNzRlNjJhMTg0NjI0OWVhNjE5Mjk1NGE1YWYxMGM3MWViZmVhNzk5NDgxNDI0
NDFlZDMwN2U5ZjUyZTc5N2E1MWE4MDA3YTZmODdiNTdjNTFmOWU3ZWVmNTRiN2U0YTFmODE4YmE2
YWMyNWVlNTkzNWMyM2IzMjUzZDZkOWQyMjIyNjJjNzljY2RiNzE0N2Q5YzA3NTI3YzIyZmU3YTRh
YjkxYWYyMDQ3OWVkZjU5MzBiM2MwNTNjMGEwYjI3MDkyY2ZiNTMyMDM2MzNkMDFkY2Y2ZTMzM2I1
YmU3YzE5MzNjMzIxYzk1M2Y5NjJiOTM0ZWJlZmQ5ZGY4Y2NhNmMwYTI1ZmNkNWZiOTYxMDU0MzVj
NDJkOTkwMjQwNmY4MmJjOGRhYThlYzEyZmE4NWQ5YWZhNjVhZGJmZTNmNjA4MjhlZjY0YWRhZjQz
YWQ4ZTNiMGFmMTA0Y2JmYWZkOTk0MzIzNzMyYmJhMDhmODRkNWNhYzFkMTU3YjI3NjIzM2RmZmVj
YWZlNDc5NDJiODNjODVlYWQ2ZDU4ODZjNmJhZGY1MzRkNGEzMmQzZjU0NWU4MDMyZGQ1ZTQxOWQ3
YmZmM2FjZGUyYzM3YTk2ZmMzNGZkYTg3NDdkODk1MDBiZjlmN2VmNDU4NzNjNmIzYjI3NDFhYWY3
NGZmOTZhMmY5NTAwMjhmMzhlYjYyZjFiZTkzNmZlMGE5OTRlYmZhOTI4MDIxYzBjOTYxNzJkODQ1
ODRlIik7CisKK2RlYnVnKCJJbXBvcnRpbmcgYW4gdW53cmFwcGluZyBrZXkuLi4iKTsKK2NyeXB0
by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCB1bndyYXBwaW5nS2V5T2N0ZXRzLCAiQUVTLUNCQyIs
IG5vbkV4dHJhY3RhYmxlLCBbInVud3JhcEtleSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewor
ICAgIHVud3JhcHBpbmdLZXkgPSByZXN1bHQ7CisgICAgc2hvdWxkQmUoInVud3JhcHBpbmdLZXku
YWxnb3JpdGhtLm5hbWUiLCAiJ0FFUy1DQkMnIik7CisgICAgdmFyIHVud3JhcEFsZ29yaXRobSA9
IHtuYW1lOiAiQUVTLUNCQyIsIGl2OiBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAwMDEwMjAzMDQw
NTA2MDcwODA5MGEwYjBjMGQwZTBmIil9OworICAgIGRlYnVnKCJVbndyYXBwaW5nIGEga2V5Li4u
Iik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUudW53cmFwS2V5KCJqd2siLCB3cmFwcGVkS2V5
LCB1bndyYXBwaW5nS2V5LCB1bndyYXBBbGdvcml0aG0sIG51bGwsIGV4dHJhY3RhYmxlLCBbInNp
Z24iLCAidmVyaWZ5IiwgImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ3cmFwIiwgInVud3JhcCJdKTsK
K30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgdW53cmFwcGVkS2V5ID0gcmVzdWx0Owor
CisgICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS50b1N0cmluZygpIiwgIidbb2JqZWN0IEtleV0n
Iik7CisgICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS50eXBlIiwgIidwdWJsaWMnIik7CisgICAg
c2hvdWxkQmUoInVud3JhcHBlZEtleS51c2FnZXMiLCAiWydzaWduJywndmVyaWZ5J10iKTsKKyAg
ICBzaG91bGRCZSgidW53cmFwcGVkS2V5LmFsZ29yaXRobS5uYW1lIiwgIidSU0FTU0EtUEtDUzEt
djFfNSciKTsKKyAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVu
Z3RoIiwgIjIwNDgiKTsKKyAgICBzaG91bGRCZSgiQmFzZTY0VVJMLnN0cmluZ2lmeSh1bndyYXBw
ZWRLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSIsICJwdWJsaWNLZXlKU09OLmUiKTsKKyAg
ICBzaG91bGRCZSgidW53cmFwcGVkS2V5LmFsZ29yaXRobS5oYXNoLm5hbWUiLCAiJ1NIQS0yNTYn
Iik7CisgICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS5leHRyYWN0YWJsZSIsICJmYWxzZSIpOwor
ICAgIGZpbmlzaEpTVGVzdCgpOworfSk7CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtd3Jh
cC1yc2EtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMt
Y2JjLXdyYXAtcnNhLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYTM0ZmRmYTUzM2EwNDlmNzA2
NjAxYmFmMDgwMzFmM2U0ODY1ZmI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5
cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE0IEBACitUZXN0IHdyYXBwaW5nIGFuIFJTQSBrZXkgd2l0aCBBRVMtQ0JDLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworSW1wb3J0aW5nIGEga2V5IHRvIHdyYXAuLi4KK1BBU1Mg
a2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScKK0ltcG9ydGluZyBhIGtl
eSBlbmNyeXB0aW9uIGtleS4uLgorUEFTUyB3cmFwcGluZ0tleS5hbGdvcml0aG0ubmFtZSBpcyAn
QUVTLUNCQycKK1BBU1Mgd3JhcHBlZEtleS50b1N0cmluZygpIGlzICdbb2JqZWN0IEFycmF5QnVm
ZmVyXScKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtd3Jh
cC1yc2Etbm9uLWV4dHJhY3RhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93
ZWJraXRTdWJ0bGUvYWVzLWNiYy13cmFwLXJzYS1ub24tZXh0cmFjdGFibGUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjgyNmE2NDhhNzAzMTQ1NTYyYWUyOWFiYzhlYTQ3OTJiMzQ4NzVmZTEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMt
d3JhcC1yc2Etbm9uLWV4dHJhY3RhYmxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitU
ZXN0IHdyYXBwaW5nIGFuIFJTQSBrZXkgd2l0aCBBRVMtQ0JDLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworSW1wb3J0aW5nIGEga2V5IHRvIHdyYXAuLi4KK1BBU1Mga2V5LmFsZ29y
aXRobS5uYW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScKK0ltcG9ydGluZyBhIGtleSBlbmNyeXB0
aW9uIGtleS4uLgorUEFTUyB3cmFwcGluZ0tleS5hbGdvcml0aG0ubmFtZSBpcyAnQUVTLUNCQycK
K3dyYXBwaW5nIHRoZSBrZXkuLi4KK1BBU1MgUmVqZWN0ZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
cnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtd3JhcC1yc2Etbm9uLWV4dHJhY3RhYmxlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtd3JhcC1yc2Etbm9uLWV4
dHJhY3RhYmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmQ1MTE3MzRmNTFjYWVmYmVjOGQyNmFiZjRlODE2
ZTUwYWFkYmQ3NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRT
dWJ0bGUvYWVzLWNiYy13cmFwLXJzYS1ub24tZXh0cmFjdGFibGUuaHRtbApAQCAtMCwwICsxLDUy
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCJUZXN0IHdyYXBwaW5nIGFuIFJTQSBrZXkgd2l0aCBBRVMtQ0JDLiIpOworCitqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKK3ZhciBub25FeHRyYWN0
YWJsZSA9IGZhbHNlOworCit2YXIgcHVibGljS2V5SlNPTiA9IHsKKyAgICBrdHk6ICJSU0EiLAor
ICAgIGFsZzogIlJTMjU2IiwKKyAgICBuOiAicmNDVUN2N09jMUhWYW0xREloQ3pxa25UaFdhd09w
OFFMazhaaXkycDEwQnlqUUZDYWpvRml5dUFXbC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6SXpjLU1i
TFNISUdnV1FHTzIxbEdpSW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBR
RzVNc0RoRDZzMmdWOW13SGtydGtDeHRNV2RCaS03N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5DU2dB
MU9ndVo5ODliRnljOHRPT0VJYjB4VVNmUFN6M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5
V2JHeUV5M0JpdzY0cXVuM2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3MktV
cDAybUpEWmlpeWlnbHhNTF9pMy1fQ2VlY0N3IiwKKyAgICBlOiAiQVFBQiIsCisgICAgZXh0OiBm
YWxzZSwKKyAgICB1c2U6ICJzaWciCit9OworCit2YXIgandrS2V5QXNBcnJheUJ1ZmZlciA9IGFz
Y2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KHB1YmxpY0tleUpTT04pKTsKK3ZhciB3cmFw
cGluZ0tleU9jdGV0cyA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiMmEwMGUwZTc3NmU5NGU0ZGM4
OWJmOTQ3Y2ViZGViZTEiKTsKKworZGVidWcoIkltcG9ydGluZyBhIGtleSB0byB3cmFwLi4uIik7
CitjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgandrS2V5QXNBcnJheUJ1ZmZlciwgbnVs
bCwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQp
IHsKKyAgICBrZXkgPSByZXN1bHQ7CisgICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIs
ICInUlNBU1NBLVBLQ1MxLXYxXzUnIik7CisgICAgZGVidWcoIkltcG9ydGluZyBhIGtleSBlbmNy
eXB0aW9uIGtleS4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3
Iiwgd3JhcHBpbmdLZXlPY3RldHMsICJBRVMtQ0JDIiwgbm9uRXh0cmFjdGFibGUsIFsid3JhcEtl
eSJdKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgd3JhcHBpbmdLZXkgPSByZXN1
bHQ7CisgICAgc2hvdWxkQmUoIndyYXBwaW5nS2V5LmFsZ29yaXRobS5uYW1lIiwgIidBRVMtQ0JD
JyIpOworICAgIHZhciB3cmFwQWxnb3JpdGhtID0ge25hbWU6ICJBRVMtQ0JDIiwgaXY6IGhleFN0
cmluZ1RvVWludDhBcnJheSgiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYiKX07Cisg
ICAgZGVidWcoIndyYXBwaW5nIHRoZSBrZXkuLi4iKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRs
ZS53cmFwS2V5KCJqd2siLCBrZXksIHdyYXBwaW5nS2V5LCB3cmFwQWxnb3JpdGhtKTsKK30pLnRo
ZW4odW5kZWZpbmVkLCBmdW5jdGlvbigpIHsKKyAgICB0ZXN0UGFzc2VkKCJSZWplY3RlZCIpOwor
ICAgIGZpbmlzaEpTVGVzdCgpOworfSk7CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtd3Jh
cC1yc2EuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy13cmFw
LXJzYS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3MWY3OGE2ODBjZjdlNzUwYjM5ZjBlY2QyNGNiMjY1NDhi
OGYzZWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L2Flcy1jYmMtd3JhcC1yc2EuaHRtbApAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IHdyYXBwaW5nIGFu
IFJTQSBrZXkgd2l0aCBBRVMtQ0JDLiIpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFy
IGV4dHJhY3RhYmxlID0gdHJ1ZTsKK3ZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOworCit2YXIg
cHVibGljS2V5SlNPTiA9IHsKKyAgICBrdHk6ICJSU0EiLAorICAgIGFsZzogIlJTMjU2IiwKKyAg
ICBuOiAicmNDVUN2N09jMUhWYW0xREloQ3pxa25UaFdhd09wOFFMazhaaXkycDEwQnlqUUZDYWpv
Rml5dUFXbC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6SXpjLU1iTFNISUdnV1FHTzIxbEdpSW15NWZ0
Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVNc0RoRDZzMmdWOW13SGtydGtD
eHRNV2RCaS03N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5ODliRnljOHRPT0VJYjB4
VVNmUFN6M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5M0JpdzY0cXVuM2p1VWxO
V3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3MktVcDAybUpEWmlpeWlnbHhNTF9pMy1f
Q2VlY0N3IiwKKyAgICBlOiAiQVFBQiIsCisgICAgZXh0OiB0cnVlLAorICAgIHVzZTogInNpZyIK
K307CisKK3ZhciBqd2tLZXlBc0FycmF5QnVmZmVyID0gYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5z
dHJpbmdpZnkocHVibGljS2V5SlNPTikpOwordmFyIHdyYXBwaW5nS2V5T2N0ZXRzID0gaGV4U3Ry
aW5nVG9VaW50OEFycmF5KCIyYTAwZTBlNzc2ZTk0ZTRkYzg5YmY5NDdjZWJkZWJlMSIpOworCitk
ZWJ1ZygiSW1wb3J0aW5nIGEga2V5IHRvIHdyYXAuLi4iKTsKK2NyeXB0by5zdWJ0bGUuaW1wb3J0
S2V5KCJqd2siLCBqd2tLZXlBc0FycmF5QnVmZmVyLCBudWxsLCBleHRyYWN0YWJsZSwgWyJzaWdu
IiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGtleSA9IHJlc3VsdDsK
KyAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidSU0FTU0EtUEtDUzEtdjFfNSci
KTsKKyAgICBkZWJ1ZygiSW1wb3J0aW5nIGEga2V5IGVuY3J5cHRpb24ga2V5Li4uIik7CisgICAg
cmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCB3cmFwcGluZ0tleU9jdGV0cywg
IkFFUy1DQkMiLCBub25FeHRyYWN0YWJsZSwgWyJ3cmFwS2V5Il0pOworfSkudGhlbihmdW5jdGlv
bihyZXN1bHQpIHsKKyAgICB3cmFwcGluZ0tleSA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgid3Jh
cHBpbmdLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FFUy1DQkMnIik7CisgICAgdmFyIHdyYXBBbGdv
cml0aG0gPSB7bmFtZTogIkFFUy1DQkMiLCBpdjogaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMDAx
MDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIpfTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRs
ZS53cmFwS2V5KCJqd2siLCBrZXksIHdyYXBwaW5nS2V5LCB3cmFwQWxnb3JpdGhtKTsKK30pLnRo
ZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgd3JhcHBlZEtleSA9IHJlc3VsdDsKKyAgICBzaG91
bGRCZSgid3JhcHBlZEtleS50b1N0cmluZygpIiwgIidbb2JqZWN0IEFycmF5QnVmZmVyXSciKTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXdy
b25nLWtleS1jbGFzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3Vi
dGxlL2Flcy1jYmMtd3Jvbmcta2V5LWNsYXNzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTRj
MGY5MThjNzE1ODU0MDc0MDg0NDA4NDcyZTZiNGRlNzFlNTUwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXdyb25nLWtleS1jbGFzcy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdCBjYWxsaW5nIEFFUy1DQkMgZW5jcnlw
dCB3aXRoIGEgSE1BQyBrZXkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitJbXBv
cnRpbmcgYSByYXcgSE1BQyBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJhbC4uLgorVXNpbmcgdGhlIGtl
eSB0byBlbmNyeXB0IHBsYWludGV4dC4uLgorUEFTUyBjcnlwdG8uc3VidGxlLmVuY3J5cHQoe25h
bWU6ICJhZXMtY2JjIiwgaXY6IGl2fSwga2V5LCBwbGFpbnRleHQpIHRocmV3IGV4Y2VwdGlvbiBO
b3RTdXBwb3J0ZWRFcnJvciAoRE9NIEV4Y2VwdGlvbiA5KTogVGhlIG9wZXJhdGlvbiBpcyBub3Qg
c3VwcG9ydGVkLi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1j
YmMtd3Jvbmcta2V5LWNsYXNzLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L2Flcy1jYmMtd3Jvbmcta2V5LWNsYXNzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzI0YjNlNzJlZWVjNmU5
ZmU2Njk1ZDQ1ZDk1NDBlNWRmNDFkOTM3NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy13cm9uZy1rZXktY2xhc3MuaHRtbApAQCAtMCww
ICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCJUZXN0IGNhbGxpbmcgQUVTLUNCQyBlbmNyeXB0IHdpdGggYSBITUFDIGtleS4i
KTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBpdiA9IGhleFN0cmluZ1RvVWludDhB
cnJheSgiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYiKTsKK3ZhciBwbGFpbnRleHQg
PSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjZiYzFiZWUyMmU0MDlmOTZlOTNkN2UxMTczOTMxNzJh
YWUyZDhhNTcxZTAzYWM5YzllYjc2ZmFjNDVhZjhlNTEzMGM4MWM0NmEzNWNlNDExZTVmYmMxMTkx
YTBhNTJlZmY2OWYyNDQ1ZGY0ZjliMTdhZDJiNDE3YmU2NmMzNzEwIik7Cit2YXIgaG1hY0tleSA9
IGFzY2lpVG9VaW50OEFycmF5KCdhJyk7Cit2YXIgZXh0cmFjdGFibGUgPSB0cnVlOworCitkZWJ1
ZygiSW1wb3J0aW5nIGEgcmF3IEhNQUMga2V5IGZyb20gc3RyaW5nIGxpdGVyYWwuLi4iKTsKK2Ny
eXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBobWFjS2V5LCB7bmFtZTogJ2htYWMnLCBoYXNo
OiB7bmFtZTogJ3NoYS0xJ319LCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSIsICJlbmNy
eXB0IiwgImRlY3J5cHQiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBrZXkgPSByZXN1
bHQ7CisgICAgZGVidWcoIlVzaW5nIHRoZSBrZXkgdG8gZW5jcnlwdCBwbGFpbnRleHQuLi4iKTsK
KyAgICBzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5lbmNyeXB0KHtuYW1lOiAiYWVzLWNiYyIs
IGl2OiBpdn0sIGtleSwgcGxhaW50ZXh0KScpCisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOwor
PC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvYWVzLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtZXhwb3J0LWtleS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODNlZDExMzM3ZDA5MjZjZjRiYmE4MDE4ODg2ZmFmMzYyMDZhOWMwNgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWV4cG9ydC1rZXkt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzggQEAKK1Rlc3QgZXhwb3J0aW5nIGFuIEFFUyBrZXku
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGNyeXB0by5zdWJ0bGUuZXhw
b3J0S2V5KCJyYXciKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3Vt
ZW50cy4KK1BBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoInJhdyIsIG51bGwpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0
S2V5KCJyYXciLCB1bmRlZmluZWQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJy
b3IuCitQQVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJyYXciLCB7fSkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXko
InJhdyIsIDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCisKK0ltcG9y
dGluZyBhIEpXSyBrZXkuLi4KK1BBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkobnVsbCwga2V5
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQuCitQQVNTIGNy
eXB0by5zdWJ0bGUuZXhwb3J0S2V5KHVuZGVmaW5lZCwga2V5KSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQuCitQQVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5
KHt9LCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVua25vd24ga2V5IGZvcm1hdC4K
K1BBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoIiIsIGtleSkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0LgorUEFTUyBjcnlwdG8uc3VidGxlLmV4cG9ydEtl
eSgiZm9vYmFyIiwga2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtleSBm
b3JtYXQuCisKK0V4cG9ydGluZyB0aGUga2V5IGFzIHJhdyBkYXRhLi4uCitQQVNTIGJ5dGVzVG9I
ZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZXhwb3J0ZWREYXRhKSkgaXMgJzhlNzNiMGY3ZGEwZTY0
NTJjODEwZjMyYjgwOTA3OWU1NjJmOGVhZDI1MjJjNmI3YicKK0V4cG9ydGluZyB0aGUga2V5IGFz
IEpXSy4uLgorUEFTUyBleHBvcnRlZEpXSy5rdHkgaXMgJ29jdCcKK1BBU1MgZXhwb3J0ZWRKV0su
ayBpcyAnam5Pdzk5b09aRkxJRVBNcmdKQjU1V0w0NnRKU0xHdDcnCitQQVNTIGV4cG9ydGVkSldL
LmFsZyBpcyAnQTE5MkNCQycKK1BBU1MgZXhwb3J0ZWRKV0suZXh0IGlzIHRydWUKK1BBU1MgZXhw
b3J0ZWRKV0sudXNlIGlzIHVuZGVmaW5lZAorUEFTUyBleHBvcnRlZEpXSy5rZXlfb3BzIGlzIFsn
ZW5jcnlwdCcsICdkZWNyeXB0JywgJ3dyYXBLZXknLCAndW53cmFwS2V5J10KKworSW1wb3J0aW5n
IGEga2V5IHRoYXQncyBub3QgZXh0cmFjdGFibGUuLi4KKworVHJ5aW5nIHRvIGV4cG9ydCBhcyBy
YXcuLi4KK1BBU1MgUmVqZWN0ZWQsIGFzIGV4cGVjdGVkCitUcnlpbmcgdG8gZXhwb3J0IGFzIGp3
ay4uLgorUEFTUyBSZWplY3RlZCwgYXMgZXhwZWN0ZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL2Flcy1leHBvcnQta2V5Lmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL2Flcy1leHBvcnQta2V5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzlkOTYxNmM3Njcy
MTg5YmRiNmI1NjZjMDY4ZTliYTRmN2YyNDc2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWV4cG9ydC1rZXkuaHRtbApAQCAtMCwwICsxLDg2
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCJUZXN0IGV4cG9ydGluZyBhbiBBRVMga2V5LiIpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKK3ZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNl
OworCit2YXIgandrS2V5ID0geworICAgIGt0eTogIm9jdCIsCisgICAgazogImpuT3c5OW9PWkZM
SUVQTXJnSkI1NVdMNDZ0SlNMR3Q3IgorfTsKKwordmFyIGp3a0tleUFzQXJyYXlCdWZmZXIgPSBh
c2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShqd2tLZXkpKTsKKworc2hvdWxkVGhyb3co
J2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJyYXciKScpOworc2hvdWxkVGhyb3coJ2NyeXB0by5z
dWJ0bGUuZXhwb3J0S2V5KCJyYXciLCBudWxsKScpOworc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0
bGUuZXhwb3J0S2V5KCJyYXciLCB1bmRlZmluZWQpJyk7CitzaG91bGRUaHJvdygnY3J5cHRvLnN1
YnRsZS5leHBvcnRLZXkoInJhdyIsIHt9KScpOworc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUu
ZXhwb3J0S2V5KCJyYXciLCAxKScpOworCitkZWJ1ZygiXG5JbXBvcnRpbmcgYSBKV0sga2V5Li4u
Iik7CitjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgandrS2V5QXNBcnJheUJ1ZmZlciwg
IkFFUy1DQkMiLCBleHRyYWN0YWJsZSwgWydlbmNyeXB0JywgJ2RlY3J5cHQnLCAnd3JhcEtleScs
ICd1bndyYXBLZXknXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBrZXkgPSByZXN1bHQ7
CisKKyAgICBzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkobnVsbCwga2V5KScp
OworICAgIHNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmV4cG9ydEtleSh1bmRlZmluZWQsIGtl
eSknKTsKKyAgICBzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoe30sIGtleSkn
KTsKKyAgICBzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoIiIsIGtleSknKTsK
KyAgICBzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoImZvb2JhciIsIGtleSkn
KTsKKworICAgIGRlYnVnKCJcbkV4cG9ydGluZyB0aGUga2V5IGFzIHJhdyBkYXRhLi4uIik7Cisg
ICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJyYXciLCBrZXkpOworfSkudGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKKyAgICBleHBvcnRlZERhdGEgPSByZXN1bHQ7CisgICAgc2hvdWxk
QmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZXhwb3J0ZWREYXRhKSkiLCAiJzhl
NzNiMGY3ZGEwZTY0NTJjODEwZjMyYjgwOTA3OWU1NjJmOGVhZDI1MjJjNmI3YiciKTsKKworICAg
IGRlYnVnKCJFeHBvcnRpbmcgdGhlIGtleSBhcyBKV0suLi4iKTsKKyAgICByZXR1cm4gY3J5cHRv
LnN1YnRsZS5leHBvcnRLZXkoImp3ayIsIGtleSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkg
eworICAgIGV4cG9ydGVkSldLID0gSlNPTi5wYXJzZShieXRlc1RvQVNDSUlTdHJpbmcocmVzdWx0
KSk7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmt0eSIsICInb2N0JyIpOworICAgIHNob3Vs
ZEJlKCJleHBvcnRlZEpXSy5rIiwgIidqbk93OTlvT1pGTElFUE1yZ0pCNTVXTDQ2dEpTTEd0Nyci
KTsKKyAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suYWxnIiwgIidBMTkyQ0JDJyIpOworICAgIHNo
b3VsZEJlKCJleHBvcnRlZEpXSy5leHQiLCAidHJ1ZSIpOworICAgIHNob3VsZEJlKCJleHBvcnRl
ZEpXSy51c2UiLCAidW5kZWZpbmVkIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmtleV9v
cHMiLCAiWydlbmNyeXB0JywgJ2RlY3J5cHQnLCAnd3JhcEtleScsICd1bndyYXBLZXknXSIpOwor
CisgICAgZGVidWcoIlxuSW1wb3J0aW5nIGEga2V5IHRoYXQncyBub3QgZXh0cmFjdGFibGUuLi4i
KTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a0tleUFzQXJy
YXlCdWZmZXIsICJBRVMtQ0JDIiwgbm9uRXh0cmFjdGFibGUsIFsnZW5jcnlwdCcsICdkZWNyeXB0
JywgJ3dyYXBLZXknLCAndW53cmFwS2V5J10pCit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewor
ICAgIGtleSA9IHJlc3VsdDsKKworICAgIGRlYnVnKCJcblRyeWluZyB0byBleHBvcnQgYXMgcmF3
Li4uIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJyYXciLCBrZXkpOwor
fSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICB0ZXN0RmFpbGVkKCJQcm9taXNlIHdhc24n
dCByZWplY3RlZCIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSwgZnVuY3Rpb24oKSB7CisgICAg
dGVzdFBhc3NlZCgiUmVqZWN0ZWQsIGFzIGV4cGVjdGVkIik7CisKKyAgICBkZWJ1ZygiVHJ5aW5n
IHRvIGV4cG9ydCBhcyBqd2suLi4iKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRL
ZXkoImp3ayIsIGtleSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHRlc3RGYWls
ZWQoIlByb21pc2Ugd2Fzbid0IHJlamVjdGVkIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9LCBm
dW5jdGlvbigpIHsKKyAgICB0ZXN0UGFzc2VkKCJSZWplY3RlZCwgYXMgZXhwZWN0ZWQiKTsKKwor
ICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMta3cta2V5LW1h
bmlwdWxhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L2Flcy1rdy1rZXktbWFuaXB1bGF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Y2ViZjMw
ZDI3MTk0Y2IzYmUwYTU4NThiYTQyYmFlNzExZDczZDJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMta3cta2V5LW1hbmlwdWxhdGlvbi1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwyNSBAQAorVGVzdCBnZW5lcmF0aW5nLCBpbXBvcnRpbmcgYW5k
IGV4cG9ydGluZyBrZXlzIGZvciBBRVMtS1cuIFRlc3QgdGhhdCB0aGV5IGNhbid0IGJlIHVzZWQg
d2l0aCBhbm90aGVyIGFsZ29yaXRobS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K0dlbmVyYXRpbmcgYSBrZXkuLi4KK1BBU1Mga2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgS2V5
XScKK1BBU1Mga2V5LnR5cGUgaXMgJ3NlY3JldCcKK1BBU1Mga2V5LmFsZ29yaXRobS5uYW1lIGlz
ICdBRVMtS1cnCitQQVNTIGtleS5hbGdvcml0aG0ubGVuZ3RoIGlzIDI1NgorCitUZXN0aW5nIHRo
YXQgdGhlIGtleSBjYW4ndCBiZSB1c2VkIHdpdGggQUVTLUNCQy4uLgorUEFTUyBjcnlwdG8uc3Vi
dGxlLmVuY3J5cHQoe25hbWU6ICJhZXMtY2JjIiwgaXY6IGl2fSwga2V5LCBoZXhTdHJpbmdUb1Vp
bnQ4QXJyYXkoIjAwIikpIHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvciAoRE9NIEV4
Y2VwdGlvbiA5KTogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KKworRXhwb3J0aW5n
IHRoZSBrZXkgdG8gcmF3Li4uCitQQVNTIGV4cG9ydGVkS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmpl
Y3QgQXJyYXlCdWZmZXJdJworSW1wb3J0aW5nIGl0IGJhY2suLi4KK1BBU1MgaW1wb3J0ZWRLZXku
dG9TdHJpbmcoKSBpcyAnW29iamVjdCBLZXldJworUEFTUyBpbXBvcnRlZEtleS50eXBlIGlzICdz
ZWNyZXQnCitQQVNTIGltcG9ydGVkS2V5LmFsZ29yaXRobS5uYW1lIGlzICdBRVMtS1cnCitQQVNT
IGltcG9ydGVkS2V5LmFsZ29yaXRobS5sZW5ndGggaXMgMjU2CitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMta3cta2V5LW1hbmlwdWxhdGlvbi5odG1sIGIvTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMta3cta2V5LW1hbmlwdWxhdGlvbi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjExYzBlY2I1MmE2ODE3YTg2NDMwODQxZTFiNGY2MjAxOTZkZmY1MTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1rdy1rZXkt
bWFuaXB1bGF0aW9uLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCBnZW5lcmF0aW5nLCBpbXBv
cnRpbmcgYW5kIGV4cG9ydGluZyBrZXlzIGZvciBBRVMtS1cuIFRlc3QgdGhhdCB0aGV5IGNhbid0
IGJlIHVzZWQgd2l0aCBhbm90aGVyIGFsZ29yaXRobS4iKTsKKworanNUZXN0SXNBc3luYyA9IHRy
dWU7CisKK3ZhciBleHRyYWN0YWJsZSA9IHRydWU7CisKK2RlYnVnKCJHZW5lcmF0aW5nIGEga2V5
Li4uIik7CitjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiYWVzLWt3IiwgbGVuZ3Ro
OiAyNTZ9LCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSIsICJ1
bndyYXBLZXkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBrZXkgPSByZXN1bHQ7Cisg
ICAgc2hvdWxkQmUoImtleS50b1N0cmluZygpIiwgIidbb2JqZWN0IEtleV0nIik7CisgICAgc2hv
dWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7CisgICAgc2hvdWxkQmUoImtleS5hbGdvcml0
aG0ubmFtZSIsICInQUVTLUtXJyIpOworICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLmxlbmd0
aCIsICIyNTYiKTsKKworICAgIGRlYnVnKCJcblRlc3RpbmcgdGhhdCB0aGUga2V5IGNhbid0IGJl
IHVzZWQgd2l0aCBBRVMtQ0JDLi4uIik7CisgICAgaXYgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXko
IjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmIik7CisgICAgc2hvdWxkVGhyb3coJ2Ny
eXB0by5zdWJ0bGUuZW5jcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXksIGhleFN0
cmluZ1RvVWludDhBcnJheSgiMDAiKSknKTsKKworICAgIGRlYnVnKCJcbkV4cG9ydGluZyB0aGUg
a2V5IHRvIHJhdy4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgncmF3
Jywga2V5KTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgZXhwb3J0ZWRLZXkgPSBy
ZXN1bHQ7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkS2V5LnRvU3RyaW5nKCkiLCAiJ1tvYmplY3Qg
QXJyYXlCdWZmZXJdJyIpOworICAgIGRlYnVnKCJJbXBvcnRpbmcgaXQgYmFjay4uLiIpOworICAg
IHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgncmF3JywgZXhwb3J0ZWRLZXksICJhZXMt
a3ciLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSIsICJ1bndy
YXBLZXkiXSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGltcG9ydGVkS2V5ID0g
cmVzdWx0OworCisgICAgc2hvdWxkQmUoImltcG9ydGVkS2V5LnRvU3RyaW5nKCkiLCAiJ1tvYmpl
Y3QgS2V5XSciKTsKKyAgICBzaG91bGRCZSgiaW1wb3J0ZWRLZXkudHlwZSIsICInc2VjcmV0JyIp
OworICAgIHNob3VsZEJlKCJpbXBvcnRlZEtleS5hbGdvcml0aG0ubmFtZSIsICInQUVTLUtXJyIp
OworICAgIHNob3VsZEJlKCJpbXBvcnRlZEtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjI1NiIpOwor
CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1rdy13cmFw
LXVud3JhcC1hZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9hZXMta3ctd3JhcC11bndyYXAtYWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGVlMjA1
ZWQ1NTg5MmJiYzVhYTlmOGIxM2VkMDE3NDFiM2Q5NGI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMta3ctd3JhcC11bndyYXAtYWVzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDIyIEBACitUZXN0IHdyYXBwaW5nIGFuZCB1bndyYXBwaW5nIGtl
eXMgd2l0aCBBRVMtS1cuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitJbXBvcnRp
bmcga2V5IGVuY3J5cHRpb24ga2V5Li4uCitJbXBvcnRpbmcgYSBrZXkgdG8gYmUgd3JhcHBlZC4u
LgorV3JhcHBpbmcgaXQuLi4KK1BBU1MgYnl0ZXNUb0hleFN0cmluZyh3cmFwcGVkS2V5KSBpcyAn
MWZhNjhiMGE4MTEyYjQ0N2FlZjM0YmQ4ZmI1YTdiODI5ZDNlODYyMzcxZDJjZmU1JworVW53cmFw
cGluZyBpdC4uLgorUEFTUyB1bndyYXBwZWRLZXkudG9TdHJpbmcoKSBpcyAnW29iamVjdCBLZXld
JworUEFTUyB1bndyYXBwZWRLZXkudHlwZSBpcyAnc2VjcmV0JworUEFTUyB1bndyYXBwZWRLZXku
ZXh0cmFjdGFibGUgaXMgdHJ1ZQorUEFTUyB1bndyYXBwZWRLZXkuYWxnb3JpdGhtLm5hbWUgaXMg
J0FFUy1DQkMnCitQQVNTIHVud3JhcHBlZEtleS5hbGdvcml0aG0ubGVuZ3RoIGlzIDEyOAorUEFT
UyB1bndyYXBwZWRLZXkudXNhZ2VzIGlzIFsnZGVjcnlwdCcsICdlbmNyeXB0JywgJ3Vud3JhcEtl
eScsICd3cmFwS2V5J10KK0V4cG9ydGluZyBpdC4uLgorUEFTUyBieXRlc1RvSGV4U3RyaW5nKHVu
d3JhcHBlZEtleURhdGEpIGlzIGJ5dGVzVG9IZXhTdHJpbmcoa2V5RGF0YSkKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1rdy13cmFwLXVud3JhcC1hZXMuaHRtbCBi
L0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWt3LXdyYXAtdW53cmFwLWFlcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmVjN2VlMmY1ODgyMDM2YWVkZWZjOWNmMzI4ODQ3M2EwMGU4NDkzZDkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1r
dy13cmFwLXVud3JhcC1hZXMuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IHdyYXBwaW5nIGFu
ZCB1bndyYXBwaW5nIGtleXMgd2l0aCBBRVMtS1cuIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVl
OworCit2YXIga2VrRGF0YSA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAwMTAyMDMwNDA1MDYw
NzA4MDkwQTBCMEMwRDBFMEYiKTsKK3ZhciBrZXlEYXRhID0gaGV4U3RyaW5nVG9VaW50OEFycmF5
KCIwMDExMjIzMzQ0NTU2Njc3ODg5OUFBQkJDQ0RERUVGRiIpOwordmFyIGV4dHJhY3RhYmxlID0g
dHJ1ZTsKKworZGVidWcoIkltcG9ydGluZyBrZXkgZW5jcnlwdGlvbiBrZXkuLi4iKTsKK2NyeXB0
by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBrZWtEYXRhLCAiYWVzLWt3IiwgZXh0cmFjdGFibGUs
IFsid3JhcEtleSIsICJ1bndyYXBLZXkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBr
ZWsgPSByZXN1bHQ7CisKKyAgICBkZWJ1ZygiSW1wb3J0aW5nIGEga2V5IHRvIGJlIHdyYXBwZWQu
Li4iKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGtleURhdGEs
ICJhZXMtY2JjIiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0IiwgIndyYXBLZXki
LCAidW53cmFwS2V5Il0pOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBrZXkgPSBy
ZXN1bHQ7CisKKyAgICBkZWJ1ZygiV3JhcHBpbmcgaXQuLi4iKTsKKyAgICByZXR1cm4gY3J5cHRv
LnN1YnRsZS53cmFwS2V5KCJyYXciLCBrZXksIGtlaywgImFlcy1rdyIpOworfSkudGhlbihmdW5j
dGlvbihyZXN1bHQpIHsKKyAgICB3cmFwcGVkS2V5ID0gcmVzdWx0OworICAgIHNob3VsZEJlKCJi
eXRlc1RvSGV4U3RyaW5nKHdyYXBwZWRLZXkpIiwgIicxZmE2OGIwYTgxMTJiNDQ3YWVmMzRiZDhm
YjVhN2I4MjlkM2U4NjIzNzFkMmNmZTUnIik7IC8vIFJlc3VsdCBmcm9tIFJGQyAzMzk0LgorCisg
ICAgZGVidWcoIlVud3JhcHBpbmcgaXQuLi4iKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS51
bndyYXBLZXkoInJhdyIsIHdyYXBwZWRLZXksIGtlaywgImFlcy1rdyIsICJhZXMtY2JjIiwgZXh0
cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0IiwgIndyYXBLZXkiLCAidW53cmFwS2V5Il0p
OworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICB1bndyYXBwZWRLZXkgPSByZXN1bHQ7
CisgICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS50b1N0cmluZygpIiwgIidbb2JqZWN0IEtleV0n
Iik7CisgICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS50eXBlIiwgIidzZWNyZXQnIik7CisgICAg
c2hvdWxkQmUoInVud3JhcHBlZEtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7CisgICAgc2hvdWxk
QmUoInVud3JhcHBlZEtleS5hbGdvcml0aG0ubmFtZSIsICInQUVTLUNCQyciKTsKKyAgICBzaG91
bGRCZSgidW53cmFwcGVkS2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMTI4Iik7CisgICAgc2hvdWxk
QmUoInVud3JhcHBlZEtleS51c2FnZXMiLCAiWydkZWNyeXB0JywgJ2VuY3J5cHQnLCAndW53cmFw
S2V5JywgJ3dyYXBLZXknXSIpOworCisgICAgZGVidWcoIkV4cG9ydGluZyBpdC4uLiIpOworICAg
IHJldHVybiBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgicmF3IiwgdW53cmFwcGVkS2V5KTsKK30p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgdW53cmFwcGVkS2V5RGF0YSA9IHJlc3VsdDsK
KyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyh1bndyYXBwZWRLZXlEYXRhKSIsICJieXRl
c1RvSGV4U3RyaW5nKGtleURhdGEpIik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworPC9z
Y3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0
by93ZWJraXRTdWJ0bGUvYWVzLXBvc3RNZXNzYWdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLXBvc3RNZXNzYWdlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mMGQwNTliZGNmZTMwOGRiMDMwYzE2YjRlMTBjMTU5NjQ3ZjQ1ZjNjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtcG9zdE1lc3NhZ2Ut
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3Qgc2VuZGluZyBjcnlwdG8ga2V5cyB2
aWEgcG9zdE1lc3NhZ2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGtl
eS50eXBlIGlzICdzZWNyZXQnCitQQVNTIGtleS5leHRyYWN0YWJsZSBpcyB0cnVlCitQQVNTIGtl
eS5hbGdvcml0aG0ubmFtZSBpcyAnQUVTLUNCQycKK1BBU1Mga2V5LmFsZ29yaXRobS5sZW5ndGgg
aXMgMTI4CitQQVNTIGtleS51c2FnZXMgaXMgWyJkZWNyeXB0IiwgImVuY3J5cHQiLCAic2lnbiIs
ICJ2ZXJpZnkiXQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLXBv
c3RNZXNzYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1wb3N0
TWVzc2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzMDhmODk5MGRjYjY5YzEwMjY1MTFkNzdlNjQ0NjQ5
NTExYTQzYTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3Vi
dGxlL2Flcy1wb3N0TWVzc2FnZS5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgor
CitkZXNjcmlwdGlvbigiVGVzdCBzZW5kaW5nIGNyeXB0byBrZXlzIHZpYSBwb3N0TWVzc2FnZS4i
KTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJt
ZXNzYWdlIiwgZnVuY3Rpb24oZXZ0KSB7CisgICAga2V5ID0gZXZ0LmRhdGE7CisgICAgc2hvdWxk
QmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7CisgICAgc2hvdWxkQmUoImtleS5leHRyYWN0YWJs
ZSIsICJ0cnVlIik7CisgICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIsICInQUVTLUNC
QyciKTsKKyAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMTI4Iik7CisgICAg
c2hvdWxkQmUoImtleS51c2FnZXMiLCAnWyJkZWNyeXB0IiwgImVuY3J5cHQiLCAic2lnbiIsICJ2
ZXJpZnkiXScpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9LCBmYWxzZSk7CisKK2ltcG9ydFRl
c3RLZXlzKCkudGhlbihmdW5jdGlvbihrZXlzKSB7CisgICAgcG9zdE1lc3NhZ2Uoa2V5cy5hZXND
YmMsICIqIik7Cit9KTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hcmd1bWVudC1jb252ZXJzaW9uLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYXJndW1lbnQtY29udmVy
c2lvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDg3NzFiMjdhZjg5NjMwZTA4OGM2OGY0NmNj
NzdiNzczNWEwZmI4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJr
aXRTdWJ0bGUvYXJndW1lbnQtY29udmVyc2lvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzOCBA
QAorVGVzdCBjcnlwdG8uc3VidGxlIGFyZ3VtZW50IGNvbnZlcnNpb24KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKKworUGFzc2luZyBhbGdvcml0aG0gbmFtZSBhcyBhIHN0cmluZyBv
YmplY3QuLi4KK1BBU1MgLi4uc3VjY2VlZGVkCisKK1Bhc3NpbmcgYWxnb3JpdGhtIG5hbWUgYXMg
YSBzdHJpbmcgb2JqZWN0IGluIGEgZGljdGlvbmFyeS4uLgorUEFTUyAuLi5zdWNjZWVkZWQKKwor
UGFzc2luZyBhbGdvcml0aG0gbmFtZSBhcyBhbiBvYmplY3Qgd2l0aCB0b1N0cmluZworUEFTUyAu
Li5zdWNjZWVkZWQKKworUGFzc2luZyBpbnZhbGlkIGRhdGEgdG8gZGlnZXN0KCkKK1BBU1MgY3J5
cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9KSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25h
bWU6ICdzaGEtMSd9LCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBPbmx5IEFycmF5
QnVmZmVyIGFuZCBBcnJheUJ1ZmZlclZpZXcgb2JqZWN0cyBjYW4gYmUgcGFzc2VkIGFzIENyeXB0
b09wZXJhdGlvbkRhdGEuCitQQVNTIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTEn
fSwgMTApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE9ubHkgQXJyYXlCdWZmZXIgYW5kIEFy
cmF5QnVmZmVyVmlldyBvYmplY3RzIGNhbiBiZSBwYXNzZWQgYXMgQ3J5cHRvT3BlcmF0aW9uRGF0
YS4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCBbMTBdKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBPbmx5IEFycmF5QnVmZmVyIGFuZCBBcnJheUJ1ZmZlclZp
ZXcgb2JqZWN0cyBjYW4gYmUgcGFzc2VkIGFzIENyeXB0b09wZXJhdGlvbkRhdGEuCitQQVNTIGNy
eXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTEnfSwgW25ldyBVaW50OEFycmF5KFswXSld
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBPbmx5IEFycmF5QnVmZmVyIGFuZCBBcnJheUJ1
ZmZlclZpZXcgb2JqZWN0cyBjYW4gYmUgcGFzc2VkIGFzIENyeXB0b09wZXJhdGlvbkRhdGEuCisK
K1Bhc3NpbmcgaW52YWxpZCBhbGdvcml0aG1JZGVudGlmaWVycyB0byBkaWdlc3QoKQorUEFTUyBj
cnlwdG8uc3VidGxlLmRpZ2VzdCh7IHRvU3RyaW5nOmZ1bmN0aW9uKCkgeyByZXR1cm4gJ3NoYS0x
JyB9IH0sIGRhdGEpIHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvciAoRE9NIEV4Y2Vw
dGlvbiA5KTogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KK1BBU1MgY3J5cHRvLnN1
YnRsZS5kaWdlc3Qoe25hbWU6ICcnfSwgZGF0YSkgdGhyZXcgZXhjZXB0aW9uIE5vdFN1cHBvcnRl
ZEVycm9yIChET00gRXhjZXB0aW9uIDkpOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQu
LgorUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogbnVsbH0sIGRhdGEpIHRocmV3IGV4
Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvciAoRE9NIEV4Y2VwdGlvbiA5KTogVGhlIG9wZXJhdGlv
biBpcyBub3Qgc3VwcG9ydGVkLi4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6IHVu
ZGVmaW5lZH0sIGRhdGEpIHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvciAoRE9NIEV4
Y2VwdGlvbiA5KTogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KK1BBU1MgY3J5cHRv
LnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEnfSwgZGF0YSkgdGhyZXcgZXhjZXB0aW9uIE5vdFN1
cHBvcnRlZEVycm9yIChET00gRXhjZXB0aW9uIDkpOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBw
b3J0ZWQuLgorUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogMX0sIGRhdGEpIHRocmV3
IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvciAoRE9NIEV4Y2VwdGlvbiA5KTogVGhlIG9wZXJh
dGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kaWdlc3QoJycsIGRh
dGEpIHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvciAoRE9NIEV4Y2VwdGlvbiA5KTog
VGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kaWdl
c3QobnVsbCwgZGF0YSkgdGhyZXcgZXhjZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yIChET00gRXhj
ZXB0aW9uIDkpOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgorUEFTUyBjcnlwdG8u
c3VidGxlLmRpZ2VzdCh1bmRlZmluZWQsIGRhdGEpIHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBwb3J0
ZWRFcnJvciAoRE9NIEV4Y2VwdGlvbiA5KTogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVk
Li4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kaWdlc3QoMSwgZGF0YSkgdGhyZXcgZXhjZXB0aW9uIE5v
dFN1cHBvcnRlZEVycm9yIChET00gRXhjZXB0aW9uIDkpOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBz
dXBwb3J0ZWQuLgorUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7fSwgZGF0YSkgdGhyZXcgZXhj
ZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yIChET00gRXhjZXB0aW9uIDkpOiBUaGUgb3BlcmF0aW9u
IGlzIG5vdCBzdXBwb3J0ZWQuLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvYXJndW1lbnQtY29udmVyc2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1
YnRsZS9hcmd1bWVudC1jb252ZXJzaW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjdkY2Y5ZWRkMjNlNTc1
MmNhNTQ5YTEzMzZhODM5ODVmMGViOGIyMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvYXJndW1lbnQtY29udmVyc2lvbi5odG1sCkBAIC0wLDAgKzEs
NTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3Jp
cHRpb24oIlRlc3QgY3J5cHRvLnN1YnRsZSBhcmd1bWVudCBjb252ZXJzaW9uIik7CisKK2pzVGVz
dElzQXN5bmMgPSB0cnVlOworCitQcm9taXNlLnJlc29sdmUobnVsbCkudGhlbihmdW5jdGlvbigp
IHsKKyAgICBkZWJ1ZygiXG5QYXNzaW5nIGFsZ29yaXRobSBuYW1lIGFzIGEgc3RyaW5nIG9iamVj
dC4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdChuZXcgU3RyaW5nKCdzaGEt
MScpLCBuZXcgVWludDhBcnJheShbXSkpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAg
ICB0ZXN0UGFzc2VkKCIuLi5zdWNjZWVkZWQiKTsKKyAgICBkZWJ1ZygiXG5QYXNzaW5nIGFsZ29y
aXRobSBuYW1lIGFzIGEgc3RyaW5nIG9iamVjdCBpbiBhIGRpY3Rpb25hcnkuLi4iKTsKKyAgICBy
ZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6IG5ldyBTdHJpbmcoJ3NoYS0xJyl9LCBu
ZXcgVWludDhBcnJheShbXSkpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICB0ZXN0
UGFzc2VkKCIuLi5zdWNjZWVkZWQiKTsKKyAgICBkZWJ1ZygiXG5QYXNzaW5nIGFsZ29yaXRobSBu
YW1lIGFzIGFuIG9iamVjdCB3aXRoIHRvU3RyaW5nIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0
bGUuZGlnZXN0KHtuYW1lOiB7IHRvU3RyaW5nOmZ1bmN0aW9uKCkgeyByZXR1cm4gJ3NoYS0xJyB9
IH0gfSwgbmV3IFVpbnQ4QXJyYXkoW10pKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Cisg
ICAgdGVzdFBhc3NlZCgiLi4uc3VjY2VlZGVkIik7CisKKyAgICBkZWJ1ZygiXG5QYXNzaW5nIGlu
dmFsaWQgZGF0YSB0byBkaWdlc3QoKSIpOworICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxl
LmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30pIik7CisgICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0
bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTEnfSwgbnVsbCkiKTsKKyAgICBzaG91bGRUaHJvdygiY3J5
cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCAxMCkiKTsKKyAgICBzaG91bGRUaHJv
dygiY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCBbMTBdKSIpOworICAgIHNo
b3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30sIFtuZXcgVWlu
dDhBcnJheShbMF0pXSkiKTsKKworICAgIGRlYnVnKCJcblBhc3NpbmcgaW52YWxpZCBhbGdvcml0
aG1JZGVudGlmaWVycyB0byBkaWdlc3QoKSIpOworICAgIGRhdGEgPSBuZXcgVWludDhBcnJheShb
MF0pOworICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7IHRvU3RyaW5nOmZ1
bmN0aW9uKCkgeyByZXR1cm4gJ3NoYS0xJyB9IH0sIGRhdGEpIik7IC8vIEFsZ29yaXRobSBub3Jt
YWxpemF0aW9uIGRvZXNuJ3QgYXR0ZW1wdCB0byBjYWxsIHRvU3RyaW5nLgorICAgIHNob3VsZFRo
cm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJyd9LCBkYXRhKSIpOworICAgIHNob3Vs
ZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogbnVsbH0sIGRhdGEpIik7CisgICAg
c2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiB1bmRlZmluZWR9LCBkYXRh
KSIpOworICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYSd9
LCBkYXRhKSIpOworICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTog
MX0sIGRhdGEpIik7CisgICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KCcnLCBk
YXRhKSIpOworICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdChudWxsLCBkYXRh
KSIpOworICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh1bmRlZmluZWQsIGRh
dGEpIik7CisgICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KDEsIGRhdGEpIik7
CisgICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KHt9LCBkYXRhKSIpOworfSku
dGhlbihmaW5pc2hKU1Rlc3QpOworCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hcnJheS1idWZmZXItdmll
dy1vZmZzZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9h
cnJheS1idWZmZXItdmlldy1vZmZzZXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwOTQzZTVi
ZjQ3NTE4MWIzMWVhMjE5MjhmNzliOGI4NjhkM2QwZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2FycmF5LWJ1ZmZlci12aWV3LW9mZnNldC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCB0aGF0IGFuIEFycmF5QnVmZmVyVmlldyB3
aXRoIG9mZnNldCBpcyBwcm9jZXNzZWQgY29ycmVjdGx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkp
IGlzICcyYzdlN2MzODRmNzgyOTY5NDI4MmIxZTNhNjIxNmRlZjgwODJkMDU1JworUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYXJyYXktYnVmZmVyLXZpZXctb2Zmc2V0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2FycmF5LWJ1ZmZlci12aWV3LW9m
ZnNldC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwYjk5MDQ1ODNkZGZiMTQ4ZmYwYmMyNzc2NWNiMWJhZjEz
NGUwYzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L2FycmF5LWJ1ZmZlci12aWV3LW9mZnNldC5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgdGhh
dCBhbiBBcnJheUJ1ZmZlclZpZXcgd2l0aCBvZmZzZXQgaXMgcHJvY2Vzc2VkIGNvcnJlY3RseS4i
KTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK1Byb21pc2UucmVzb2x2ZShudWxsKS50aGVu
KGZ1bmN0aW9uKCkgeworICAgIHZhciBvcmlnaW5hbERhdGEgPSBuZXcgVWludDhBcnJheShbMHhm
LCAweGYsIDB4ZiwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDB4ZiwgMHhmLCAw
eGZdKTsKKyAgICB2YXIgc2xpY2VkRGF0YSA9IG5ldyBVaW50OEFycmF5KG9yaWdpbmFsRGF0YS5i
dWZmZXIsIDMsIDExKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdz
aGEtMSd9LCBzbGljZWREYXRhKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgZGln
ZXN0ID0gcmVzdWx0OworICAgIC8vIEV4cGVjdGVkIHJlc3VsdCBmb3IgWzAsIDEsIDIsIDMsIDQs
IDUsIDYsIDcsIDgsIDksIDEwXS4KKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcg
VWludDhBcnJheShkaWdlc3QpKSIsICInMmM3ZTdjMzg0Zjc4Mjk2OTQyODJiMWUzYTYyMTZkZWY4
MDgyZDA1NSciKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+CisKKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUv
Z2MtMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2djLTIt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5MWUxOTYyNzA0ODAzYWIzNGYwZDE5ZjVmN2Y2N2Y0
NGI2OWYyYWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3Vi
dGxlL2djLTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3QgdGhhdCB3aW5kb3cu
Y3J5cHRvLnN1YnRsZSB3cmFwcGVyIHByZXNlcnZlcyBjdXN0b20gcHJvcGVydGllcy4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgW29iamVjdCBDcnlwdG9dIGlzIGRlZmlu
ZWQuCitQQVNTIFtvYmplY3QgV2ViS2l0U3VidGxlQ3J5cHRvXSBpcyBkZWZpbmVkLgorUEFTUyBh
bm90aGVyV2luZG93Q3J5cHRvLndlYmtpdFN1YnRsZS5mb28gaXMgImJhciIKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2djLTIuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0
by93ZWJraXRTdWJ0bGUvZ2MtMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxMjk5MjA2ODJiODkwN2EzNTNi
NTZmYzhjMjM4MWI1MGUwNDI1NzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL2djLTIuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3QgdGhhdCB3aW5kb3cuY3J5cHRvLnN1YnRs
ZSB3cmFwcGVyIHByZXNlcnZlcyBjdXN0b20gcHJvcGVydGllcy4iKTsKK2pzVGVzdElzQXN5bmMg
PSB0cnVlOworCit2YXIgYW5vdGhlcldpbmRvd0NyeXB0bzsKKworZnVuY3Rpb24gc3RhcnRUZXN0
KCkKK3sKKyAgICBhbm90aGVyV2luZG93Q3J5cHRvID0gZnJhbWVzWzBdLmNyeXB0bzsKKyAgICBz
aG91bGRCZURlZmluZWQoYW5vdGhlcldpbmRvd0NyeXB0byk7CisgICAgc2hvdWxkQmVEZWZpbmVk
KGFub3RoZXJXaW5kb3dDcnlwdG8ud2Via2l0U3VidGxlKTsKKworICAgIGFub3RoZXJXaW5kb3dD
cnlwdG8ud2Via2l0U3VidGxlLmZvbyA9ICJiYXIiOworICAgIGRvY3VtZW50LmJvZHkucmVtb3Zl
Q2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpWzBdKTsKKyAgICBn
YygpOworICAgIHNldFRpbWVvdXQoY29udGludWVUZXN0LCAxMCk7Cit9CisKK2Z1bmN0aW9uIGNv
bnRpbnVlVGVzdCgpCit7CisgICAgZ2MoKTsKKyAgICBzZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDEw
KTsKK30KKworZnVuY3Rpb24gZmluaXNoVGVzdCgpCit7CisgICAgZ2MoKTsKKyAgICBzaG91bGRC
ZSgnYW5vdGhlcldpbmRvd0NyeXB0by53ZWJraXRTdWJ0bGUuZm9vJywgJyJiYXIiJyk7CisgICAg
ZmluaXNoSlNUZXN0KCk7Cit9CisKK3dpbmRvdy5vbmxvYWQgPSBzdGFydFRlc3Q7CisKKzwvc2Ny
aXB0PgorPGlmcmFtZSBzcmM9ImFib3V0OmJsYW5rIj48L2lmcmFtZT4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvZ2MtMy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2djLTMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmIwNGMxYTU3M2JhM2VkNmY3MWU0N2ZmYTMxZThlY2E2NTc5YmIyZDgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2djLTMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgdGhhdCB3aW5kb3cuY3J5cHRvIHdy
YXBwZXIgcHJvdGVjdHMgYWxsIGRlcGVuZGVuY2llcywgc28gaXQgY2FuIGFsd2F5cyBiZSB1c2Vk
IHRvIGNyZWF0ZSBjcnlwdG8uc3VidGxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBbb2JqZWN0IENyeXB0b10gaXMgZGVmaW5lZC4KK1BBU1MgW29iamVjdCBXZWJLaXRT
dWJ0bGVDcnlwdG9dIGlzIGRlZmluZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9nYy0zLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2djLTMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iNmUwNzQwYTliNmYwYTg5ZjQ2ZGQxM2Y0MGIwYTJjNWVjZGY3NTQ2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy0z
Lmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisKK2Rlc2Ny
aXB0aW9uKCJUZXN0IHRoYXQgd2luZG93LmNyeXB0byB3cmFwcGVyIHByb3RlY3RzIGFsbCBkZXBl
bmRlbmNpZXMsIHNvIGl0IGNhbiBhbHdheXMgYmUgdXNlZCB0byBjcmVhdGUgY3J5cHRvLnN1YnRs
ZS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIgYW5vdGhlcldpbmRvd0NyeXB0bzsK
KworZnVuY3Rpb24gc3RhcnRUZXN0KCkKK3sKKyAgICBhbm90aGVyV2luZG93Q3J5cHRvID0gZnJh
bWVzWzBdLmNyeXB0bzsKKyAgICBzaG91bGRCZURlZmluZWQoYW5vdGhlcldpbmRvd0NyeXB0byk7
CisgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgiaWZyYW1lIilbMF0pOworICAgIGdjKCk7CisgICAgc2V0VGltZW91dChjb250aW51ZVRl
c3QsIDEwKTsKK30KKworZnVuY3Rpb24gY29udGludWVUZXN0KCkKK3sKKyAgICBnYygpOworICAg
IHNldFRpbWVvdXQoZmluaXNoVGVzdCwgMTApOworfQorCitmdW5jdGlvbiBmaW5pc2hUZXN0KCkK
K3sKKyAgICBnYygpOworICAgIHNob3VsZEJlRGVmaW5lZChhbm90aGVyV2luZG93Q3J5cHRvLndl
YmtpdFN1YnRsZSk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3dpbmRvdy5vbmxvYWQgPSBz
dGFydFRlc3Q7CisKKzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9ImFib3V0OmJsYW5rIj48L2lmcmFt
ZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJr
aXRTdWJ0bGUvZ2MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9nYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzU5ZDBhMWU1MjBlZWUyYTY4ZmE4ZDhkOTc5
NzFhZmYwN2FlODQ3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJr
aXRTdWJ0bGUvZ2MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgdGhhdCB3aW5k
b3cuY3J5cHRvLnN1YnRsZSB3cmFwcGVyIHByZXNlcnZlcyBjdXN0b20gcHJvcGVydGllcy4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgd2luZG93LmNyeXB0by53ZWJraXRT
dWJ0bGUuZm9vIGlzICJiYXIiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9nYy5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmEyMzViMGJkZTlkY2U3MGM2MDg4YTZhMDliODY5ZjI1MDNlNGQ0ZWIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2djLmh0bWwKQEAgLTAs
MCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUZXN0
IHRoYXQgd2luZG93LmNyeXB0by5zdWJ0bGUgd3JhcHBlciBwcmVzZXJ2ZXMgY3VzdG9tIHByb3Bl
cnRpZXMuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gc3RhcnRUZXN0KCkK
K3sKKyAgICB3aW5kb3cuY3J5cHRvLndlYmtpdFN1YnRsZS5mb28gPSAiYmFyIjsKKyAgICBnYygp
OworICAgIHNldFRpbWVvdXQoY29udGludWVUZXN0LCAxMCk7Cit9CisKK2Z1bmN0aW9uIGNvbnRp
bnVlVGVzdCgpCit7CisgICAgZ2MoKTsKKyAgICBzZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDEwKTsK
K30KKworZnVuY3Rpb24gZmluaXNoVGVzdCgpCit7CisgICAgZ2MoKTsKKyAgICBzaG91bGRCZSgn
d2luZG93LmNyeXB0by53ZWJraXRTdWJ0bGUuZm9vJywgJyJiYXIiJyk7CisgICAgZmluaXNoSlNU
ZXN0KCk7Cit9CisKK3dpbmRvdy5vbmxvYWQgPSBzdGFydFRlc3Q7CisKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9obWFjLWNoZWNrLWFsZ29yaXRobS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL2htYWMtY2hlY2stYWxnb3JpdGhtLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kNGQzZjQ1NmQyNGJmNDM2YjAxNTE4NjU0ZGY2NTZiZGVmYzhhMTdhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWNoZWNrLWFsZ29yaXRo
bS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdCB0aGF0IEhNQUMgb3BlcmF0aW9u
cyBvbmx5IHdvcmsgd2hlbiBoYXNoIGZ1bmN0aW9ucyBtYXRjaCBiZXR3ZWVuIGludm9jYXRpb24g
YW5kIGtleS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0ltcG9ydGluZyBhIHJh
dyBITUFDIFNIQS0xIGtleSBmcm9tIHN0cmluZyBsaXRlcmFsLi4uCitEb25lCitQQVNTIGNyeXB0
by5zdWJ0bGUuc2lnbih7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0xJ319LCBrZXks
IGFzY2lpVG9VaW50OEFycmF5KCdmb28nKSkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNT
IGNyeXB0by5zdWJ0bGUuc2lnbih7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0yNTYn
fX0sIGtleSwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2ZvbycpKSB0aHJldyBleGNlcHRpb24gTm90U3Vw
cG9ydGVkRXJyb3IgKERPTSBFeGNlcHRpb24gOSk6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBv
cnRlZC4uCitQQVNTIGNyeXB0by5zdWJ0bGUudmVyaWZ5KHtuYW1lOiAnaG1hYycsIGhhc2g6IHtu
YW1lOiAnc2hhLTEnfX0sIGtleSwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2Zha2Ugc2lnbmF0dXJlJyks
IGFzY2lpVG9VaW50OEFycmF5KCdmb28nKSkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNT
IGNyeXB0by5zdWJ0bGUudmVyaWZ5KHtuYW1lOiAnaG1hYycsIGhhc2g6IHtuYW1lOiAnc2hhLTI1
Nid9fSwga2V5LCBhc2NpaVRvVWludDhBcnJheSgnZmFrZSBzaWduYXR1cmUnKSwgYXNjaWlUb1Vp
bnQ4QXJyYXkoJ2ZvbycpKSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3IgKERPTSBF
eGNlcHRpb24gOSk6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWNoZWNrLWFsZ29yaXRobS5odG1sIGIv
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWNoZWNrLWFsZ29yaXRobS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmU5ODAyNzMzMWQ5NzhjNDk1N2ZhODliYmZlYzMzMDY4Y2RkMGViNGUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtY2hl
Y2stYWxnb3JpdGhtLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IEhNQUMgb3BlcmF0
aW9ucyBvbmx5IHdvcmsgd2hlbiBoYXNoIGZ1bmN0aW9ucyBtYXRjaCBiZXR3ZWVuIGludm9jYXRp
b24gYW5kIGtleS4iKTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBobWFjS2V5ID0g
YXNjaWlUb1VpbnQ4QXJyYXkoJ2EnKTsKK3ZhciBleHRyYWN0YWJsZSA9IHRydWU7CisKK2RlYnVn
KCJJbXBvcnRpbmcgYSByYXcgSE1BQyBTSEEtMSBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJhbC4uLiIp
OworY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGhtYWNLZXksIHtuYW1lOiAnaG1hYycs
IGhhc2g6IHtuYW1lOiAnc2hhLTEnfX0sIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgZGVidWcoIkRvbmUiKTsKKyAgICBrZXkgPSBy
ZXN1bHQ7CisKKyAgICBzaG91bGROb3RUaHJvdygiY3J5cHRvLnN1YnRsZS5zaWduKHtuYW1lOiAn
aG1hYycsIGhhc2g6IHtuYW1lOiAnc2hhLTEnfX0sIGtleSwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2Zv
bycpKSIpOworICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLnNpZ24oe25hbWU6ICdobWFj
JywgaGFzaDoge25hbWU6ICdzaGEtMjU2J319LCBrZXksIGFzY2lpVG9VaW50OEFycmF5KCdmb28n
KSkiKTsKKworICAgIHNob3VsZE5vdFRocm93KCJjcnlwdG8uc3VidGxlLnZlcmlmeSh7bmFtZTog
J2htYWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0xJ319LCBrZXksIGFzY2lpVG9VaW50OEFycmF5KCdm
YWtlIHNpZ25hdHVyZScpLCBhc2NpaVRvVWludDhBcnJheSgnZm9vJykpIik7CisgICAgc2hvdWxk
VGhyb3coImNyeXB0by5zdWJ0bGUudmVyaWZ5KHtuYW1lOiAnaG1hYycsIGhhc2g6IHtuYW1lOiAn
c2hhLTI1Nid9fSwga2V5LCBhc2NpaVRvVWludDhBcnJheSgnZmFrZSBzaWduYXR1cmUnKSwgYXNj
aWlUb1VpbnQ4QXJyYXkoJ2ZvbycpKSIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwv
c2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL2htYWMtZXhwb3J0LWtleS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtZXhwb3J0LWtleS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTA1ODRkYmU2ZmM2NzZiYzFiMmQ2MmI1MDljNWYwMGM3NTdhMjhmOAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1leHBvcnQta2V5
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMxIEBACitUZXN0IGV4cG9ydGluZyBhbiBBRVMga2V5
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworSW1wb3J0aW5nIGEgSldLIGtleS4u
LgorUEFTUyBjcnlwdG8uc3VidGxlLmV4cG9ydEtleShudWxsLCBrZXkpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IFVua25vd24ga2V5IGZvcm1hdC4KK1BBU1MgY3J5cHRvLnN1YnRsZS5leHBv
cnRLZXkodW5kZWZpbmVkLCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVua25vd24g
a2V5IGZvcm1hdC4KK1BBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoe30sIGtleSkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0LgorUEFTUyBjcnlwdG8uc3Vi
dGxlLmV4cG9ydEtleSgiIiwga2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3du
IGtleSBmb3JtYXQuCitQQVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJmb29iYXIiLCBrZXkp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVua25vd24ga2V5IGZvcm1hdC4KK0V4cG9ydGlu
ZyB0aGUga2V5IGFzIHJhdyBkYXRhLi4uCitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4
QXJyYXkoZXhwb3J0ZWREYXRhKSkgaXMgJzZhMThlNDlmZWZmN2YzYjdlMDllYzg5YjdmNmRlYWIy
ZjZhMThlNDlmZWZmN2YzYjdlMDllYzg5YjdmNmRlYWInCitFeHBvcnRpbmcgdGhlIGtleSBhcyBK
V0suLi4KK1BBU1MgZXhwb3J0ZWRKV0sua3R5IGlzICdvY3QnCitQQVNTIGV4cG9ydGVkSldLLmsg
aXMgJ2FoamtuLV8zODdmZ25zaWJmMjNxc3ZhaGprbi1fMzg3Zmduc2liZjIzcXMnCitQQVNTIGV4
cG9ydGVkSldLLmFsZyBpcyAnSFMyNTYnCitQQVNTIGV4cG9ydGVkSldLLmV4dCBpcyB0cnVlCitQ
QVNTIGV4cG9ydGVkSldLLnVzZSBpcyB1bmRlZmluZWQKK1BBU1MgZXhwb3J0ZWRKV0sua2V5X29w
cyBpcyBbJ3NpZ24nLCAndmVyaWZ5J10KKworSW1wb3J0aW5nIGEga2V5IHRoYXQncyBub3QgZXh0
cmFjdGFibGUuLi4KKworVHJ5aW5nIHRvIGV4cG9ydCBhcyByYXcuLi4KK1BBU1MgUmVqZWN0ZWQs
IGFzIGV4cGVjdGVkCitUcnlpbmcgdG8gZXhwb3J0IGFzIGp3ay4uLgorUEFTUyBSZWplY3RlZCwg
YXMgZXhwZWN0ZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMt
ZXhwb3J0LWtleS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWV4
cG9ydC1rZXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZGU3NWRhMDUyNmJhODQ0NmRiOWUzNThkMzQwZDll
ZGQwNmExZmZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1
YnRsZS9obWFjLWV4cG9ydC1rZXkuaHRtbApAQCAtMCwwICsxLDgwIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IGV4cG9ydGlu
ZyBhbiBBRVMga2V5LiIpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGV4dHJhY3Rh
YmxlID0gdHJ1ZTsKK3ZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOworCit2YXIgandrS2V5ID0g
eworICAgICJrdHkiOiAib2N0IiwKKyAgICAiayI6ICJhaGprbi1fMzg3Zmduc2liZjIzcXN2YWhq
a24tXzM4N2ZnbnNpYmYyM3FzIgorfTsKKwordmFyIGp3a0tleUFzQXJyYXlCdWZmZXIgPSBhc2Np
aVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShqd2tLZXkpKTsKKworZGVidWcoIkltcG9ydGlu
ZyBhIEpXSyBrZXkuLi4iKTsKK2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tLZXlB
c0FycmF5QnVmZmVyLCB7IG5hbWU6ICJITUFDIiwgaGFzaDogIlNIQS0yNTYiIH0sIGV4dHJhY3Rh
YmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAga2V5
ID0gcmVzdWx0OworCisgICAgc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KG51
bGwsIGtleSknKTsKKyAgICBzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkodW5k
ZWZpbmVkLCBrZXkpJyk7CisgICAgc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5
KHt9LCBrZXkpJyk7CisgICAgc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCIi
LCBrZXkpJyk7CisgICAgc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJmb29i
YXIiLCBrZXkpJyk7CisKKyAgICBkZWJ1ZygiRXhwb3J0aW5nIHRoZSBrZXkgYXMgcmF3IGRhdGEu
Li4iKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoInJhdyIsIGtleSk7Cit9
KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGV4cG9ydGVkRGF0YSA9IHJlc3VsdDsKKyAg
ICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShleHBvcnRlZERhdGEp
KSIsICInNmExOGU0OWZlZmY3ZjNiN2UwOWVjODliN2Y2ZGVhYjJmNmExOGU0OWZlZmY3ZjNiN2Uw
OWVjODliN2Y2ZGVhYiciKTsKKworICAgIGRlYnVnKCJFeHBvcnRpbmcgdGhlIGtleSBhcyBKV0su
Li4iKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoImp3ayIsIGtleSk7Cit9
KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGV4cG9ydGVkSldLID0gSlNPTi5wYXJzZShi
eXRlc1RvQVNDSUlTdHJpbmcocmVzdWx0KSk7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmt0
eSIsICInb2N0JyIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rIiwgIidhaGprbi1fMzg3
Zmduc2liZjIzcXN2YWhqa24tXzM4N2ZnbnNpYmYyM3FzJyIpOworICAgIHNob3VsZEJlKCJleHBv
cnRlZEpXSy5hbGciLCAiJ0hTMjU2JyIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5leHQi
LCAidHJ1ZSIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy51c2UiLCAidW5kZWZpbmVkIik7
CisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmtleV9vcHMiLCAiWydzaWduJywgJ3ZlcmlmeSdd
Iik7CisKKyAgICBkZWJ1ZygiXG5JbXBvcnRpbmcgYSBrZXkgdGhhdCdzIG5vdCBleHRyYWN0YWJs
ZS4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgandrS2V5
QXNBcnJheUJ1ZmZlciwgeyBuYW1lOiAiSE1BQyIsIGhhc2g6ICJTSEEtMjU2IiB9LCBub25FeHRy
YWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7
CisgICAga2V5ID0gcmVzdWx0OworCisgICAgZGVidWcoIlxuVHJ5aW5nIHRvIGV4cG9ydCBhcyBy
YXcuLi4iKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoInJhdyIsIGtleSk7
Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHRlc3RGYWlsZWQoIlByb21pc2Ugd2Fz
bid0IHJlamVjdGVkIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9LCBmdW5jdGlvbigpIHsKKyAg
ICB0ZXN0UGFzc2VkKCJSZWplY3RlZCwgYXMgZXhwZWN0ZWQiKTsKKworICAgIGRlYnVnKCJUcnlp
bmcgdG8gZXhwb3J0IGFzIGp3ay4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmV4cG9y
dEtleSgiandrIiwga2V5KTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgdGVzdEZh
aWxlZCgiUHJvbWlzZSB3YXNuJ3QgcmVqZWN0ZWQiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30s
IGZ1bmN0aW9uKCkgeworICAgIHRlc3RQYXNzZWQoIlJlamVjdGVkLCBhcyBleHBlY3RlZCIpOwor
CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtZ2VuZXJh
dGUta2V5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1h
Yy1nZW5lcmF0ZS1rZXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViZDMxYmQwYTdhNzIxNmY2
ZDQwYjFmNmY1NTg5MGUwYWQxM2FjZTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9j
cnlwdG8vd2Via2l0U3VidGxlL2htYWMtZ2VuZXJhdGUta2V5LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDI3IEBACitUZXN0IGdlbmVyYXRpbmcgYSBITUFDIGtleS4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSgiaG1hYyIsIGV4
dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IFR5cGUgZXJyb3IuCitQQVNTIGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJobWFj
In0sIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pIHRocmV3IGV4Y2VwdGlvbiBOb3RT
dXBwb3J0ZWRFcnJvciAoRE9NIEV4Y2VwdGlvbiA5KTogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3Vw
cG9ydGVkLi4KK1BBU1MgY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImhtYWMiLCBs
ZW5ndGg6IHVuZGVmaW5lZH0sIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pIHRocmV3
IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvciAoRE9NIEV4Y2VwdGlvbiA5KTogVGhlIG9wZXJh
dGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KK1BBU1MgY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7
bmFtZTogImhtYWMiLCBsZW5ndGg6IHt9fSwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnki
XSkgdGhyZXcgZXhjZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yIChET00gRXhjZXB0aW9uIDkpOiBU
aGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgorCitHZW5lcmF0aW5nIGEga2V5IHdpdGgg
ZGVmYXVsdCBsZW5ndGguLi4KK1BBU1Mga2V5LnR5cGUgaXMgJ3NlY3JldCcKK1BBU1Mga2V5LmV4
dHJhY3RhYmxlIGlzIHRydWUKK1BBU1Mga2V5LmFsZ29yaXRobS5uYW1lIGlzICdITUFDJworUEFT
UyBrZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyA2NAorUEFTUyBrZXkudXNhZ2VzIGlzIFsic2lnbiIs
ICJ2ZXJpZnkiXQorCitHZW5lcmF0aW5nIGEga2V5IHdpdGggY3VzdG9tIGxlbmd0aC4uLgorUEFT
UyBrZXkudHlwZSBpcyAnc2VjcmV0JworUEFTUyBrZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQorUEFT
UyBrZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0hNQUMnCitQQVNTIGtleS5hbGdvcml0aG0ubGVuZ3Ro
IGlzIDUKK1BBU1Mga2V5LnVzYWdlcyBpcyBbInNpZ24iXQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvaG1hYy1nZW5lcmF0ZS1rZXkuaHRtbCBiL0xheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvaG1hYy1nZW5lcmF0ZS1rZXkuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYWZj
NTY4NWMxNzhhMTIzN2E2YTkzNjAwYzRmMDlhM2E5MTg4ODliCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWdlbmVyYXRlLWtleS5odG1sCkBA
IC0wLDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0
PgorZGVzY3JpcHRpb24oIlRlc3QgZ2VuZXJhdGluZyBhIEhNQUMga2V5LiIpOworCitqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKKworc2hvdWxkVGhyb3co
J2NyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoImhtYWMiLCBleHRyYWN0YWJsZSwgWyJzaWduIiwg
InZlcmlmeSJdKScpOworc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoe25h
bWU6ICJobWFjIn0sIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pJyk7CitzaG91bGRU
aHJvdygnY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImhtYWMiLCBsZW5ndGg6IHVu
ZGVmaW5lZH0sIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pJyk7CitzaG91bGRUaHJv
dygnY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImhtYWMiLCBsZW5ndGg6IHt9fSwg
ZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSknKTsKKworZGVidWcoIlxuR2VuZXJhdGlu
ZyBhIGtleSB3aXRoIGRlZmF1bHQgbGVuZ3RoLi4uIik7CitjcnlwdG8uc3VidGxlLmdlbmVyYXRl
S2V5KHtuYW1lOiAiaG1hYyIsIGhhc2g6ICJzaGEtMSJ9LCBleHRyYWN0YWJsZSwgWyJzaWduIiwg
InZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGtleSA9IHJlc3VsdDsKKwor
ICAgIHNob3VsZEJlKCJrZXkudHlwZSIsICInc2VjcmV0JyIpOworICAgIHNob3VsZEJlKCJrZXku
ZXh0cmFjdGFibGUiLCAidHJ1ZSIpOworICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUi
LCAiJ0hNQUMnIik7CisgICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjY0Iik7
CisgICAgc2hvdWxkQmUoImtleS51c2FnZXMiLCAnWyJzaWduIiwgInZlcmlmeSJdJyk7CisKKyAg
ICBkZWJ1ZygiXG5HZW5lcmF0aW5nIGEga2V5IHdpdGggY3VzdG9tIGxlbmd0aC4uLiIpOworICAg
IHJldHVybiBjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiaG1hYyIsIGhhc2g6ICJz
aGEtMSIsIGxlbmd0aDogNX0sIGV4dHJhY3RhYmxlLCBbInNpZ24iXSk7Cit9KS50aGVuKGZ1bmN0
aW9uKHJlc3VsdCkgeworICAgIGtleSA9IHJlc3VsdDsKKworICAgIHNob3VsZEJlKCJrZXkudHlw
ZSIsICInc2VjcmV0JyIpOworICAgIHNob3VsZEJlKCJrZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIp
OworICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0hNQUMnIik7CisgICAgc2hv
dWxkQmUoImtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjUiKTsKKyAgICBzaG91bGRCZSgia2V5LnVz
YWdlcyIsICdbInNpZ24iXScpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4K
KworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9obWFjLWltcG9ydC1qd2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9obWFjLWltcG9ydC1qd2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5
Y2IyNTMzMWU0ZmQ3MTE4MDY1MzdlM2NjYmUwNjg4NGVjZTg4OTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtaW1wb3J0LWp3ay1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyMiBAQAorVGVzdCBpbXBvcnRpbmcgYSBKV0sga2V5IGZvciBITUFD
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworSW1wb3J0aW5nIGEga2V5Li4uCisK
K1BBU1Mga2V5LnR5cGUgaXMgJ3NlY3JldCcKK1BBU1Mga2V5LmV4dHJhY3RhYmxlIGlzIGZhbHNl
CitQQVNTIGtleS5hbGdvcml0aG0ubmFtZSBpcyAnSE1BQycKK1BBU1Mga2V5LmFsZ29yaXRobS5s
ZW5ndGggaXMgMzIKK1BBU1Mga2V5LnVzYWdlcyBpcyBbInNpZ24iLCAidmVyaWZ5Il0KKworVXNp
bmcgdGhlIGtleSB0byBzaWduIG1lc3NhZ2UgJ2ZvbycuLi4KK1BBU1MgYnl0ZXNUb0hleFN0cmlu
ZyhuZXcgVWludDhBcnJheShzaWduYXR1cmUpKSBpcyAnZTAzNzM2ZmUwOTg4OTJiMmEyZGE3Nzgx
MjQzMWY3YzAxNGQzMmUyZmQ2OWYzYmNmZjg4M2FjOTIzYThmYTJkYScKKworVmVyaWZ5aW5nIHRo
ZSBzaWduYXR1cmUuLi4KK1BBU1MgdmVyaWZpY2F0aW9uUmVzdWx0IGlzIHRydWUKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtaW1wb3J0LWp3ay5odG1sIGIvTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWltcG9ydC1qd2suaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jYjM5ZjNhNTlmMGIzNWVmZTY5YmIxMjgyYzQ4ZDUyOTgyYWQ0NmFiCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWltcG9ydC1qd2su
aHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKwor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IGltcG9ydGluZyBhIEpXSyBrZXkgZm9yIEhNQUMu
Iik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIgZXh0cmFjdGFibGUgPSB0cnVlOwor
Cit2YXIgaG1hY0tleSA9IHsKKyAgICAia3R5IjogIm9jdCIsCisgICAgImFsZyI6ICJIUzI1NiIs
CisgICAgInVzZSI6ICJzaWciLAorICAgICJleHQiOiBmYWxzZSwKKyAgICAiayI6ICJhaGprbi1f
Mzg3Zmduc2liZjIzcXN2YWhqa24tXzM4N2ZnbnNpYmYyM3FzIgorfTsKKwordmFyIGhtYWNLZXlB
c0FycmF5QnVmZmVyID0gYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkoaG1hY0tleSkp
OworCitkZWJ1ZygiSW1wb3J0aW5nIGEga2V5Li4uXG4iKTsKK2NyeXB0by5zdWJ0bGUuaW1wb3J0
S2V5KCJqd2siLCBobWFjS2V5QXNBcnJheUJ1ZmZlciwgbnVsbCwgZXh0cmFjdGFibGUsIFsic2ln
biIsICJ2ZXJpZnkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBrZXkgPSByZXN1bHQ7
CisKKyAgICBzaG91bGRCZSgia2V5LnR5cGUiLCAiJ3NlY3JldCciKTsKKyAgICBzaG91bGRCZSgi
a2V5LmV4dHJhY3RhYmxlIiwgImZhbHNlIik7CisgICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0u
bmFtZSIsICInSE1BQyciKTsKKyAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgiLCAi
MzIiKTsKKyAgICBzaG91bGRCZSgia2V5LnVzYWdlcyIsICdbInNpZ24iLCAidmVyaWZ5Il0nKTsK
KworICAgIGRlYnVnKCJcblVzaW5nIHRoZSBrZXkgdG8gc2lnbiBtZXNzYWdlICdmb28nLi4uIik7
CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuc2lnbihrZXkuYWxnb3JpdGhtLCBrZXksIGFzY2lp
VG9VaW50OEFycmF5KCdmb28nKSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHNp
Z25hdHVyZSA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWlu
dDhBcnJheShzaWduYXR1cmUpKSIsICInZTAzNzM2ZmUwOTg4OTJiMmEyZGE3NzgxMjQzMWY3YzAx
NGQzMmUyZmQ2OWYzYmNmZjg4M2FjOTIzYThmYTJkYSciKTsKKworICAgIGRlYnVnKCJcblZlcmlm
eWluZyB0aGUgc2lnbmF0dXJlLi4uIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUudmVyaWZ5
KGtleS5hbGdvcml0aG0sIGtleSwgcmVzdWx0LCBhc2NpaVRvVWludDhBcnJheSgnZm9vJykpOwor
fSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICB2ZXJpZmljYXRpb25SZXN1bHQgPSByZXN1
bHQ7CisgICAgc2hvdWxkQmUoInZlcmlmaWNhdGlvblJlc3VsdCIsICJ0cnVlIik7CisgICAgZmlu
aXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtcG9zdE1lc3NhZ2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXBvc3RNZXNz
YWdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZWNhZWI5MWFlOWExODNhMGY5YmI0MDU1YzRk
ZTEzMDUxZjNhMWZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9obWFjLXBvc3RNZXNzYWdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitU
ZXN0IHNlbmRpbmcgY3J5cHRvIGtleXMgdmlhIHBvc3RNZXNzYWdlLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBrZXkudHlwZSBpcyAnc2VjcmV0JworUEFTUyBrZXkuZXh0
cmFjdGFibGUgaXMgdHJ1ZQorUEFTUyBrZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0hNQUMnCitQQVNT
IGtleS5hbGdvcml0aG0ubGVuZ3RoIGlzIDE2CitQQVNTIGtleS51c2FnZXMgaXMgWyJkZWNyeXB0
IiwgImVuY3J5cHQiLCAic2lnbiIsICJ2ZXJpZnkiXQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0
by93ZWJraXRTdWJ0bGUvaG1hYy1wb3N0TWVzc2FnZS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9obWFjLXBvc3RNZXNzYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDA4OGMxYjBk
NjZmOGMzYzczYjg5OWE3ZmU3ZDY5ODZlYTdhNWM5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1wb3N0TWVzc2FnZS5odG1sCkBAIC0wLDAg
KzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGVzdCBzZW5kaW5nIGNyeXB0
byBrZXlzIHZpYSBwb3N0TWVzc2FnZS4iKTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3dp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24oZXZ0KSB7CisgICAga2V5
ID0gZXZ0LmRhdGE7CisgICAgc2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7CisgICAg
c2hvdWxkQmUoImtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7CisgICAgc2hvdWxkQmUoImtleS5h
bGdvcml0aG0ubmFtZSIsICInSE1BQyciKTsKKyAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5s
ZW5ndGgiLCAiMTYiKTsKKyAgICBzaG91bGRCZSgia2V5LnVzYWdlcyIsICdbImRlY3J5cHQiLCAi
ZW5jcnlwdCIsICJzaWduIiwgInZlcmlmeSJdJyk7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30s
IGZhbHNlKTsKKworaW1wb3J0VGVzdEtleXMoKS50aGVuKGZ1bmN0aW9uKGtleXMpIHsKKyAgICBw
b3N0TWVzc2FnZShrZXlzLmhtYWNTaGExLCAiKiIpOworfSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1h
Yy1zaWduLXZlcmlmeS1lbXB0eS1rZXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9obWFjLXNpZ24tdmVyaWZ5LWVtcHR5LWtleS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDNkNWRhNzRiZWViYzk5MTU0YTdiOWZhNjRkY2FiN2UwYTA3OTJlYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1zaWduLXZl
cmlmeS1lbXB0eS1rZXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKK1Rlc3QgSE1BQyBz
aWduIGFuZCB2ZXJpZnkgZnVuY3Rpb25zIHdpdGggYW4gZW1wdHkga2V5LgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworSW1wb3J0aW5nIGEgcmF3IEhNQUMga2V5IGZyb20gc3RyaW5n
IGxpdGVyYWwuLi4KK1BBU1Mga2V5LnR5cGUgaXMgJ3NlY3JldCcKK1BBU1Mga2V5LmV4dHJhY3Rh
YmxlIGlzIHRydWUKK1BBU1Mga2V5LmFsZ29yaXRobS5uYW1lIGlzICdITUFDJworUEFTUyBrZXku
YWxnb3JpdGhtLmxlbmd0aCBpcyAwCitQQVNTIGtleS5hbGdvcml0aG0uaGFzaC5uYW1lIGlzICdT
SEEtMScKK1BBU1Mga2V5LnVzYWdlcyBpcyBbJ3NpZ24nLCAndmVyaWZ5J10KK1VzaW5nIHRoZSBr
ZXkgdG8gc2lnbiAnZm9vJy4uLgorUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5
KHNpZ25hdHVyZSkpIGlzICdhM2NjNzcwZmMwMzNlMmNiNDE5ZDQyYjY0ZTAwODFhM2JkM2JlMzBl
JworVmVyaWZ5aW5nIHRoZSBzaWduYXR1cmUuLi4KK1BBU1MgdmVyaWZpY2F0aW9uUmVzdWx0IGlz
IHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtc2lnbi12
ZXJpZnktZW1wdHkta2V5Lmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2ht
YWMtc2lnbi12ZXJpZnktZW1wdHkta2V5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDg1ZTZkMDVjNGM2YTEx
YTM1ZjNhNzUyNmJhYzVkYzllNDA3MGQzNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1zaWduLXZlcmlmeS1lbXB0eS1rZXkuaHRtbApAQCAt
MCwwICsxLDQ2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCJUZXN0IEhNQUMgc2lnbiBhbmQgdmVyaWZ5IGZ1bmN0aW9ucyB3aXRoIGFu
IGVtcHR5IGtleS4iKTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBobWFjS2V5ID0g
YXNjaWlUb1VpbnQ4QXJyYXkoJycpOwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKKworZGVidWco
IkltcG9ydGluZyBhIHJhdyBITUFDIGtleSBmcm9tIHN0cmluZyBsaXRlcmFsLi4uIik7Citjcnlw
dG8uc3VidGxlLmltcG9ydEtleSgicmF3IiwgaG1hY0tleSwge25hbWU6ICdobWFjJywgaGFzaDog
e25hbWU6ICdzaGEtMSd9fSwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSkudGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKKyAgICBrZXkgPSByZXN1bHQ7CisgICAgc2hvdWxkQmUoImtleS50
eXBlIiwgIidzZWNyZXQnIik7CisgICAgc2hvdWxkQmUoImtleS5leHRyYWN0YWJsZSIsICJ0cnVl
Iik7CisgICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIsICInSE1BQyciKTsKKyAgICBz
aG91bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMCIpOyAvLyBTZWUgPGh0dHBzOi8vd3d3
LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9MjMwOTg+LgorICAgIHNob3VsZEJl
KCJrZXkuYWxnb3JpdGhtLmhhc2gubmFtZSIsICInU0hBLTEnIik7CisgICAgc2hvdWxkQmUoImtl
eS51c2FnZXMiLCAiWydzaWduJywgJ3ZlcmlmeSddIik7CisKKyAgICBkZWJ1ZygiVXNpbmcgdGhl
IGtleSB0byBzaWduICdmb28nLi4uIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuc2lnbihr
ZXkuYWxnb3JpdGhtLCBrZXksIGFzY2lpVG9VaW50OEFycmF5KCdmb28nKSk7Cit9KS50aGVuKGZ1
bmN0aW9uKHJlc3VsdCkgeworICAgIHNpZ25hdHVyZSA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgi
Ynl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShzaWduYXR1cmUpKSIsICInYTNjYzc3MGZj
MDMzZTJjYjQxOWQ0MmI2NGUwMDgxYTNiZDNiZTMwZSciKTsKKworICAgIGRlYnVnKCJWZXJpZnlp
bmcgdGhlIHNpZ25hdHVyZS4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLnZlcmlmeShr
ZXkuYWxnb3JpdGhtLCBrZXksIHJlc3VsdCwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2ZvbycpKTsKK30p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgdmVyaWZpY2F0aW9uUmVzdWx0ID0gcmVzdWx0
OworICAgIHNob3VsZEJlKCJ2ZXJpZmljYXRpb25SZXN1bHQiLCAidHJ1ZSIpOworICAgIGZpbmlz
aEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXNpZ24tdmVyaWZ5LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1zaWduLXZlcmlm
eS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMThkYTdlNzJjOWZiOGU0OWIxYTRiMmNlMGNiOWFi
ZWYwNTYzOWI5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRT
dWJ0bGUvaG1hYy1zaWduLXZlcmlmeS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorVGVz
dCBITUFDIHNpZ24gYW5kIHZlcmlmeSBmdW5jdGlvbnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitJbXBvcnRpbmcgYSByYXcgSE1BQyBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJhbC4u
LgorUEFTUyBrZXkudHlwZSBpcyAnc2VjcmV0JworUEFTUyBrZXkuZXh0cmFjdGFibGUgaXMgdHJ1
ZQorUEFTUyBrZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0hNQUMnCitQQVNTIGtleS5hbGdvcml0aG0u
bGVuZ3RoIGlzIDEKK1BBU1Mga2V5LmFsZ29yaXRobS5oYXNoLm5hbWUgaXMgJ1NIQS0xJworUEFT
UyBrZXkudXNhZ2VzIGlzIFsnc2lnbicsICd2ZXJpZnknXQorVXNpbmcgdGhlIGtleSB0byBzaWdu
ICdmb28nLi4uCitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoc2lnbmF0dXJl
KSkgaXMgJ2JlYmJjMDJlNDZiMGY4MTE4M2Y0MGMyNWRjZTIzZTUwNDVkNjU1MTknCitWZXJpZnlp
bmcgdGhlIHNpZ25hdHVyZS4uLgorUEFTUyB2ZXJpZmljYXRpb25SZXN1bHQgaXMgdHJ1ZQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1zaWduLXZlcmlmeS5odG1s
IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXNpZ24tdmVyaWZ5Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOGQxOTk1NDI2ZTMwNGY0YzYwYTc3YWE3NTJmODM1ZWM4MTM0ZmYwZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1zaWdu
LXZlcmlmeS5odG1sCkBAIC0wLDAgKzEsNDYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgSE1BQyBzaWduIGFuZCB2ZXJpZnkg
ZnVuY3Rpb25zLiIpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGhtYWNLZXkgPSBh
c2NpaVRvVWludDhBcnJheSgnYScpOwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKKworZGVidWco
IkltcG9ydGluZyBhIHJhdyBITUFDIGtleSBmcm9tIHN0cmluZyBsaXRlcmFsLi4uIik7Citjcnlw
dG8uc3VidGxlLmltcG9ydEtleSgicmF3IiwgaG1hY0tleSwge25hbWU6ICdobWFjJywgaGFzaDog
e25hbWU6ICdzaGEtMSd9fSwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSkudGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKKyAgICBrZXkgPSByZXN1bHQ7CisgICAgc2hvdWxkQmUoImtleS50
eXBlIiwgIidzZWNyZXQnIik7CisgICAgc2hvdWxkQmUoImtleS5leHRyYWN0YWJsZSIsICJ0cnVl
Iik7CisgICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIsICInSE1BQyciKTsKKyAgICBz
aG91bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMSIpOyAvLyBTZWUgPGh0dHBzOi8vd3d3
LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9MjMwOTg+LgorICAgIHNob3VsZEJl
KCJrZXkuYWxnb3JpdGhtLmhhc2gubmFtZSIsICInU0hBLTEnIik7CisgICAgc2hvdWxkQmUoImtl
eS51c2FnZXMiLCAiWydzaWduJywgJ3ZlcmlmeSddIik7CisKKyAgICBkZWJ1ZygiVXNpbmcgdGhl
IGtleSB0byBzaWduICdmb28nLi4uIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuc2lnbihr
ZXkuYWxnb3JpdGhtLCBrZXksIGFzY2lpVG9VaW50OEFycmF5KCdmb28nKSk7Cit9KS50aGVuKGZ1
bmN0aW9uKHJlc3VsdCkgeworICAgIHNpZ25hdHVyZSA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgi
Ynl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShzaWduYXR1cmUpKSIsICInYmViYmMwMmU0
NmIwZjgxMTgzZjQwYzI1ZGNlMjNlNTA0NWQ2NTUxOSciKTsKKworICAgIGRlYnVnKCJWZXJpZnlp
bmcgdGhlIHNpZ25hdHVyZS4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLnZlcmlmeShr
ZXkuYWxnb3JpdGhtLCBrZXksIHJlc3VsdCwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2ZvbycpKTsKK30p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgdmVyaWZpY2F0aW9uUmVzdWx0ID0gcmVzdWx0
OworICAgIHNob3VsZEJlKCJ2ZXJpZmljYXRpb25SZXN1bHQiLCAidHJ1ZSIpOworICAgIGZpbmlz
aEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9pbXBvcnQtandrLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaW1wb3J0LWp3ay1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTRlNTFhZjc2MGE2MmI2MzEwNWVkMGIyZjIwOGFlYTI5ODZlMzNjMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaW1wb3J0
LWp3ay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMCBAQAorVGVzdCBlcnJvciBoYW5kbGluZyBm
b3IgSldLIGltcG9ydC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgY3J5
cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCcnKSwgbnVsbCkg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogSW52YWxpZCBKV0sgc2VyaWFsaXphdGlvbi4KK1BB
U1MgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7Jyks
IG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEludmFsaWQgSldLIHNlcmlhbGl6YXRp
b24uCitQQVNTIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJh
eSgnbnVsbCcpLCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBJbnZhbGlkIEpXSyBz
ZXJpYWxpemF0aW9uLgorUEFTUyBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlU
b1VpbnQ4QXJyYXkoJ3VuZGVmaW5lZCcpLCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBJbnZhbGlkIEpXSyBzZXJpYWxpemF0aW9uLgorUEFTUyBjcnlwdG8uc3VidGxlLmltcG9ydEtl
eSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoJ3t9JyksIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IE5laXRoZXIga2V5IG5vciBmdW5jdGlvbiBhcmd1bWVudCBoYXMgY3J5cHRvIGFs
Z29yaXRobSBzcGVjaWZpZWQuCitQQVNTIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBh
c2NpaVRvVWludDhBcnJheSgne30nKSwgImFlcy1jYmMiKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBSZXF1aXJlZCBKV0sgImt0eSIgbWVtYmVyIGlzIG1pc3NpbmcuCitQQVNTIGNyeXB0by5z
dWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgneyAia3R5IjogImZvb2Jh
ciIsICJhbGciOiAiSFMyNTYiLCAidXNlIjogInNpZyIsICJrIjogImFoamtuMjMzODdmZ25zaWJm
MjNxc3ZhaGprbjM3Mzg3Zmduc2liZjIzcXMiIH0nKSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogVW5zdXBwb3J0ZWQgSldLIGtleSB0eXBlIGZvb2Jhci4KK1BBU1MgY3J5cHRvLnN1
YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7ICJrdHkiOiAib2N0Iiwg
ImFsZyI6ICJmb29iYXIiLCAidXNlIjogInNpZyIsICJrIjogImFoamtuMjMzODdmZ25zaWJmMjNx
c3ZhaGprbjM3Mzg3Zmduc2liZjIzcXMiIH0nKSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVW5zdXBwb3J0ZWQgSldLIGFsZ29yaXRobSBmb29iYXIuCitQQVNTIGNyeXB0by5zdWJ0
bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgneyAia3R5IjogIm9jdCIsICJh
bGciOiAiSFMyNTYiLCAidXNlIjogInNpZyIsICJleHQiOiBmYWxzZSwgImsiOiAiYWhqa24yMzM4
N2ZnbnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfScpLCAiYWVzLWNiYyIpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFsZ29yaXRobSBzcGVjaWZpZWQgaW4ga2V5IGlzIG5vdCBj
b21wYXRpYmxlIHdpdGggb25lIHBhc3NlZCB0byBpbXBvcnRLZXkgYXMgYXJndW1lbnQuCitQQVNT
IGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgneyAia3R5
IjogIm9jdCIsICJhbGciOiAiSFMyNTYiLCAidXNlIjogInNpZyIsICJleHQiOiBmYWxzZSwgImsi
OiAiYWhqa24yMzM4N2ZnbnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfScpLCB7IG5h
bWU6ICJobWFjIiwgaGFzaDogInNoYS0xIiB9KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBB
bGdvcml0aG0gc3BlY2lmaWVkIGluIGtleSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIG9uZSBwYXNz
ZWQgdG8gaW1wb3J0S2V5IGFzIGFyZ3VtZW50LgorUEFTUyBjcnlwdG8uc3VidGxlLmltcG9ydEtl
eSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkhTMjU2
IiB9JyksIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFNlY3JldCBrZXkgZGF0YSBp
cyBub3QgcHJlc2VudCBpcyBKV0suCitQQVNTIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2si
LCBhc2NpaVRvVWludDhBcnJheSgneyAia3R5IjogIm9jdCIsICJhbGciOiAiQTEyOENCQyIgfScp
LCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBTZWNyZXQga2V5IGRhdGEgaXMgbm90
IHByZXNlbnQgaXMgSldLLgorUEFTUyBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNj
aWlUb1VpbnQ4QXJyYXkoJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkhTMjU2IiwgInVzZSI6ICJz
aWciLCAiZXh0IjogZmFsc2UsICJrIjogIjEyMzQiIH0nKSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogS2V5IHNpemUgaXMgbm90IHZhbGlkIGZvciBIUzI1Ni4KK1BBU1MgY3J5cHRv
LnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7ICJrdHkiOiAib2N0
IiwgImFsZyI6ICJBMTI4Q0JDIiwgInVzZSI6ICJzaWciLCAiZXh0IjogZmFsc2UsICJrIjogIjEy
MzQiIH0nKSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogS2V5IHNpemUgaXMgbm90
IHZhbGlkIGZvciBBMTI4Q0JDLgorUEFTUyBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwg
YXNjaWlUb1VpbnQ4QXJyYXkoJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkExMjhDQkMiLCAidXNl
IjogInNpZyIsICJleHQiOiBmYWxzZSwgImsiOiAiYWhqa24yMzM4N2ZnbnNpYmYyM3FzdmFoamtu
MzczODdmZ25zaWJmMjNxcyIgfScpLCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBL
ZXkgc2l6ZSBpcyBub3QgdmFsaWQgZm9yIEExMjhDQkMuCitQQVNTIGNyeXB0by5zdWJ0bGUuaW1w
b3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgneyAia3R5IjogIm9jdCIsICJhbGciOiAi
SFMyNTYiLCAidXNlIjogInNpZyIsICJleHQiOiBmYWxzZSwgImsiOiAiYWhqa24yMzM4N2YrbnNp
YmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfScpLCBudWxsKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBDYW5ub3QgZGVjb2RlIGJhc2U2NHVybCBrZXkgZGF0YSBpbiBKV0suCitQQVNT
IGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgneyAia3R5
IjogMSwgImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwgImV4dCI6IGZhbHNlLCAiayI6ICJh
aGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9JyksIG51bGwpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEV4cGVjdGVkIGEgc3RyaW5nIHZhbHVlIGZvciAia3R5
IiBKU09OIGtleS4KK1BBU1MgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9V
aW50OEFycmF5KCd7ICJrdHkiOiAib2N0IiwgImFsZyI6IDEsICJ1c2UiOiAic2lnIiwgImV4dCI6
IGZhbHNlLCAiayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3Fz
IiB9JyksIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEV4cGVjdGVkIGEgc3RyaW5n
IHZhbHVlIGZvciAiYWxnIiBKU09OIGtleS4KK1BBU1MgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXko
Imp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7ICJrdHkiOiAib2N0IiwgImFsZyI6ICJIUzI1NiIs
ICJ1c2UiOiAxLCAiZXh0IjogZmFsc2UsICJrIjogImFoamtuMjMzODdmZ25zaWJmMjNxc3ZhaGpr
bjM3Mzg3Zmduc2liZjIzcXMiIH0nKSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
RXhwZWN0ZWQgYSBzdHJpbmcgdmFsdWUgZm9yICJ1c2UiIEpTT04ga2V5LgorUEFTUyBjcnlwdG8u
c3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoJ3sgImt0eSI6ICJvY3Qi
LCAiYWxnIjogIkhTMjU2IiwgInVzZSI6ICJzaWciLCAiZXh0IjogImZhbHNlIiwgImsiOiAiYWhq
a24yMzM4N2ZnbnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfScpLCBudWxsKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBFeHBlY3RlZCBhIGJvb2xlYW4gdmFsdWUgZm9yICJleHQi
IEpTT04ga2V5LgorUEFTUyBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1Vp
bnQ4QXJyYXkoJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkhTMjU2IiwgInVzZSI6ICJzaWciLCAi
ZXh0IjogZmFsc2UsICJrIjogMSB9JyksIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IEV4cGVjdGVkIGEgc3RyaW5nIHZhbHVlIGZvciAiayIgSlNPTiBrZXkuCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9pbXBvcnQtandrLmh0bWwgYi9MYXlvdXRUZXN0cy9j
cnlwdG8vd2Via2l0U3VidGxlL2ltcG9ydC1qd2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDNhMjQwOTM2
ZmMzY2JlMGIxZTI1MWIyM2YzNGY3YjZhMWNlYzVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9pbXBvcnQtandrLmh0bWwKQEAgLTAsMCArMSw1MSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlv
bigiVGVzdCBlcnJvciBoYW5kbGluZyBmb3IgSldLIGltcG9ydC4iKTsKKworc2hvdWxkVGhyb3co
J2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ1wnKSwg
bnVsbCknKQorc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2Np
aVRvVWludDhBcnJheShcJ3tcJyksIG51bGwpJykKK3Nob3VsZFRocm93KCdjcnlwdG8uc3VidGxl
LmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoXCdudWxsXCcpLCBudWxsKScpCitz
aG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFy
cmF5KFwndW5kZWZpbmVkXCcpLCBudWxsKScpCitzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5p
bXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KFwne31cJyksIG51bGwpJykKK3Nob3Vs
ZFRocm93KCdjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXko
XCd7fVwnKSwgImFlcy1jYmMiKScpCisKKy8vIFVua25vd24vaW52YWxpZCBKV0sgdmFsdWVzLgor
c2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhB
cnJheShcJ3sgImt0eSI6ICJmb29iYXIiLCAiYWxnIjogIkhTMjU2IiwgInVzZSI6ICJzaWciLCAi
ayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9XCcpLCBu
dWxsKScpCitzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lp
VG9VaW50OEFycmF5KFwneyAia3R5IjogIm9jdCIsICJhbGciOiAiZm9vYmFyIiwgInVzZSI6ICJz
aWciLCAiayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9
XCcpLCBudWxsKScpCisKKy8vIEFsZ29yaXRobSBtaXNtYXRjaC4KK3Nob3VsZFRocm93KCdjcnlw
dG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoXCd7ICJrdHkiOiAi
b2N0IiwgImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwgImV4dCI6IGZhbHNlLCAiayI6ICJh
aGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9XCcpLCAiYWVzLWNi
YyIpJykKK3Nob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlU
b1VpbnQ4QXJyYXkoXCd7ICJrdHkiOiAib2N0IiwgImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAic2ln
IiwgImV4dCI6IGZhbHNlLCAiayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2Zn
bnNpYmYyM3FzIiB9XCcpLCB7IG5hbWU6ICJobWFjIiwgaGFzaDogInNoYS0xIiB9KScpCisKKy8v
IE5vIGtleSBkYXRhLgorc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2si
LCBhc2NpaVRvVWludDhBcnJheShcJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkhTMjU2IiB9XCcp
LCBudWxsKScpCitzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFz
Y2lpVG9VaW50OEFycmF5KFwneyAia3R5IjogIm9jdCIsICJhbGciOiAiQTEyOENCQyIgfVwnKSwg
bnVsbCknKQorCisvLyBLZXkgZGF0YSBsZW5ndGggaXMgaW5jb3JyZWN0LCBub3QgYWxsb3dlZCBp
biBKV0suCitzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lp
VG9VaW50OEFycmF5KFwneyAia3R5IjogIm9jdCIsICJhbGciOiAiSFMyNTYiLCAidXNlIjogInNp
ZyIsICJleHQiOiBmYWxzZSwgImsiOiAiMTIzNCIgfVwnKSwgbnVsbCknKQorc2hvdWxkVGhyb3co
J2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ3sgImt0
eSI6ICJvY3QiLCAiYWxnIjogIkExMjhDQkMiLCAidXNlIjogInNpZyIsICJleHQiOiBmYWxzZSwg
ImsiOiAiMTIzNCIgfVwnKSwgbnVsbCknKQorc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1w
b3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjog
IkExMjhDQkMiLCAidXNlIjogInNpZyIsICJleHQiOiBmYWxzZSwgImsiOiAiYWhqa24yMzM4N2Zn
bnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfVwnKSwgbnVsbCknKQorCisvLyBLZXkg
ZGF0YSBpcyBub3QgdmFsaWQgYmFzZTY0dXJsLgorc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUu
aW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ3sgImt0eSI6ICJvY3QiLCAiYWxn
IjogIkhTMjU2IiwgInVzZSI6ICJzaWciLCAiZXh0IjogZmFsc2UsICJrIjogImFoamtuMjMzODdm
K25zaWJmMjNxc3ZhaGprbjM3Mzg3Zmduc2liZjIzcXMiIH1cJyksIG51bGwpJykKKworLy8gSW5j
b3JyZWN0IGRhdGEgdHlwZXMuCitzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXko
Imp3ayIsIGFzY2lpVG9VaW50OEFycmF5KFwneyAia3R5IjogMSwgImFsZyI6ICJIUzI1NiIsICJ1
c2UiOiAic2lnIiwgImV4dCI6IGZhbHNlLCAiayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhq
a24zNzM4N2ZnbnNpYmYyM3FzIiB9XCcpLCBudWxsKScpCitzaG91bGRUaHJvdygnY3J5cHRvLnN1
YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KFwneyAia3R5IjogIm9jdCIs
ICJhbGciOiAxLCAidXNlIjogInNpZyIsICJleHQiOiBmYWxzZSwgImsiOiAiYWhqa24yMzM4N2Zn
bnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfVwnKSwgbnVsbCknKQorc2hvdWxkVGhy
b3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ3sg
Imt0eSI6ICJvY3QiLCAiYWxnIjogIkhTMjU2IiwgInVzZSI6IDEsICJleHQiOiBmYWxzZSwgImsi
OiAiYWhqa24yMzM4N2ZnbnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfVwnKSwgbnVs
bCknKQorc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRv
VWludDhBcnJheShcJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkhTMjU2IiwgInVzZSI6ICJzaWci
LCAiZXh0IjogImZhbHNlIiwgImsiOiAiYWhqa24yMzM4N2ZnbnNpYmYyM3FzdmFoamtuMzczODdm
Z25zaWJmMjNxcyIgfVwnKSwgbnVsbCknKQorc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1w
b3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjog
IkhTMjU2IiwgInVzZSI6ICJzaWciLCAiZXh0IjogZmFsc2UsICJrIjogMSB9XCcpLCBudWxsKScp
Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9qd2stZXhwb3J0LXVzZS12YWx1ZXMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9qd2stZXhwb3J0LXVzZS12YWx1ZXMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3MzdkYWZkMGY4MTA1NjUyYjVjOTg4MWQ4MGEzNWRmMDMw
ZDU2NGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L2p3ay1leHBvcnQtdXNlLXZhbHVlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1MyBAQAorVGVz
dCBleHBvcnRpbmcga2V5cyB3aXRoIHZhcmlvdXMgdXNhZ2VzIHRvIEpXSy4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK2VuY3J5cHQ6CitQQVNTIGp3ay51c2UgaXMgdW5kZWZpbmVk
CitQQVNTIGp3ay5rZXlfb3BzIGlzIFsiZW5jcnlwdCJdCisKK2RlY3J5cHQ6CitQQVNTIGp3ay51
c2UgaXMgdW5kZWZpbmVkCitQQVNTIGp3ay5rZXlfb3BzIGlzIFsiZGVjcnlwdCJdCisKK2VuY3J5
cHQsZGVjcnlwdDoKK1BBU1MgandrLnVzZSBpcyB1bmRlZmluZWQKK1BBU1MgandrLmtleV9vcHMg
aXMgWyJlbmNyeXB0IiwiZGVjcnlwdCJdCisKK3dyYXBLZXk6CitQQVNTIGp3ay51c2UgaXMgdW5k
ZWZpbmVkCitQQVNTIGp3ay5rZXlfb3BzIGlzIFsid3JhcEtleSJdCisKK3Vud3JhcEtleToKK1BB
U1MgandrLnVzZSBpcyB1bmRlZmluZWQKK1BBU1MgandrLmtleV9vcHMgaXMgWyJ1bndyYXBLZXki
XQorCit3cmFwS2V5LHVud3JhcEtleToKK1BBU1MgandrLnVzZSBpcyB1bmRlZmluZWQKK1BBU1Mg
andrLmtleV9vcHMgaXMgWyJ3cmFwS2V5IiwidW53cmFwS2V5Il0KKworZW5jcnlwdCxkZWNyeXB0
LHdyYXBLZXk6CitQQVNTIGp3ay51c2UgaXMgdW5kZWZpbmVkCitQQVNTIGp3ay5rZXlfb3BzIGlz
IFsiZW5jcnlwdCIsImRlY3J5cHQiLCJ3cmFwS2V5Il0KKworZW5jcnlwdCxkZWNyeXB0LHdyYXBL
ZXksdW53cmFwS2V5OgorUEFTUyBqd2sudXNlIGlzIHVuZGVmaW5lZAorUEFTUyBqd2sua2V5X29w
cyBpcyBbImVuY3J5cHQiLCJkZWNyeXB0Iiwid3JhcEtleSIsInVud3JhcEtleSJdCisKK3NpZ246
CitQQVNTIGp3ay51c2UgaXMgdW5kZWZpbmVkCitQQVNTIGp3ay5rZXlfb3BzIGlzIFsic2lnbiJd
CisKK3ZlcmlmeToKK1BBU1MgandrLnVzZSBpcyB1bmRlZmluZWQKK1BBU1MgandrLmtleV9vcHMg
aXMgWyJ2ZXJpZnkiXQorCitzaWduLHZlcmlmeToKK1BBU1MgandrLnVzZSBpcyB1bmRlZmluZWQK
K1BBU1MgandrLmtleV9vcHMgaXMgWyJzaWduIiwidmVyaWZ5Il0KKworUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvandrLWV4cG9ydC11c2UtdmFsdWVzLmh0bWwgYi9MYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2p3ay1leHBvcnQtdXNlLXZhbHVlcy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjJlOWEyYTIyMjExMDE1NjViZDVkYWM5MTdlZjhmZmY4OTQ4YWZkN2MKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2p3ay1leHBvcnQt
dXNlLXZhbHVlcy5odG1sCkBAIC0wLDAgKzEsNjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgZXhwb3J0aW5nIGtleXMgd2l0
aCB2YXJpb3VzIHVzYWdlcyB0byBKV0suIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit2
YXIgZXh0cmFjdGFibGUgPSB0cnVlOworCit2YXIgYWVzS2V5QXNBcnJheUJ1ZmZlciA9IEJhc2U2
NFVSTC5wYXJzZSgiam5Pdzk5b09aRkxJRVBNcmdKQjU1V0w0NnRKU0xHdDciKTsKK3ZhciBobWFj
S2V5QXNBcnJheUJ1ZmZlciA9IEJhc2U2NFVSTC5wYXJzZSgiYWhqa24tXzM4N2ZnbnNpYmYyM3Fz
dmFoamtuLV8zODdmZ25zaWJmMjNxcyIpOworCitmdW5jdGlvbiB0ZXN0V2l0aEFFU0NCQyh1c2Fn
ZXMsIGV4cGVjdGVkS2V5T3BzKQoreworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtl
eSgicmF3IiwgYWVzS2V5QXNBcnJheUJ1ZmZlciwgIkFFUy1DQkMiLCBleHRyYWN0YWJsZSwgdXNh
Z2VzKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICByZXR1cm4gY3J5cHRvLnN1YnRs
ZS5leHBvcnRLZXkoImp3ayIsIHJlc3VsdCk7CisgICAgfSkudGhlbihmdW5jdGlvbihyZXN1bHQp
IHsKKyAgICAgICAgandrID0gSlNPTi5wYXJzZShieXRlc1RvQVNDSUlTdHJpbmcocmVzdWx0KSk7
CisgICAgICAgIGRlYnVnKHVzYWdlcyArICI6Iik7CisgICAgICAgIHNob3VsZEJlKCJqd2sudXNl
IiwgInVuZGVmaW5lZCIpOworICAgICAgICBzaG91bGRCZSgiandrLmtleV9vcHMiLCBKU09OLnN0
cmluZ2lmeShleHBlY3RlZEtleU9wcykpOworICAgICAgICBkZWJ1ZygiIik7CisgICAgfSk7Cit9
CisKK2Z1bmN0aW9uIHRlc3RXaXRoSE1BQyh1c2FnZXMsIGV4cGVjdGVkS2V5T3BzKQoreworICAg
IHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3IiwgaG1hY0tleUFzQXJyYXlCdWZm
ZXIsIHtuYW1lOiAnaG1hYycsIGhhc2g6IHtuYW1lOiAnc2hhLTI1Nid9fSwgZXh0cmFjdGFibGUs
IHVzYWdlcykudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgcmV0dXJuIGNyeXB0by5z
dWJ0bGUuZXhwb3J0S2V5KCJqd2siLCByZXN1bHQpOworICAgIH0pLnRoZW4oZnVuY3Rpb24ocmVz
dWx0KSB7CisgICAgICAgIGp3ayA9IEpTT04ucGFyc2UoYnl0ZXNUb0FTQ0lJU3RyaW5nKHJlc3Vs
dCkpOworICAgICAgICBkZWJ1Zyh1c2FnZXMgKyAiOiIpOworICAgICAgICBzaG91bGRCZSgiandr
LnVzZSIsICJ1bmRlZmluZWQiKTsKKyAgICAgICAgc2hvdWxkQmUoImp3ay5rZXlfb3BzIiwgSlNP
Ti5zdHJpbmdpZnkoZXhwZWN0ZWRLZXlPcHMpKTsKKyAgICAgICAgZGVidWcoIiIpOworICAgIH0p
OworfQorCitQcm9taXNlLmFsbChbCisgICAgdGVzdFdpdGhBRVNDQkMoWyJlbmNyeXB0Il0sIFsi
ZW5jcnlwdCJdKSwKKyAgICB0ZXN0V2l0aEFFU0NCQyhbImRlY3J5cHQiXSwgWyJkZWNyeXB0Il0p
LAorICAgIHRlc3RXaXRoQUVTQ0JDKFsiZW5jcnlwdCIsICJkZWNyeXB0Il0sIFsiZW5jcnlwdCIs
ICJkZWNyeXB0Il0pLAorICAgIHRlc3RXaXRoQUVTQ0JDKFsid3JhcEtleSJdLCBbIndyYXBLZXki
XSksCisgICAgdGVzdFdpdGhBRVNDQkMoWyJ1bndyYXBLZXkiXSwgWyJ1bndyYXBLZXkiXSksCisg
ICAgdGVzdFdpdGhBRVNDQkMoWyJ3cmFwS2V5IiwgInVud3JhcEtleSJdLCBbIndyYXBLZXkiLCAi
dW53cmFwS2V5Il0pLAorICAgIHRlc3RXaXRoQUVTQ0JDKFsiZW5jcnlwdCIsICJkZWNyeXB0Iiwg
IndyYXBLZXkiXSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSJdKSwKKyAgICB0ZXN0
V2l0aEFFU0NCQyhbImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ3cmFwS2V5IiwgInVud3JhcEtleSJd
LCBbImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ3cmFwS2V5IiwgInVud3JhcEtleSJdKSwKKyAgICB0
ZXN0V2l0aEhNQUMoWyJzaWduIl0sIFsic2lnbiJdKSwKKyAgICB0ZXN0V2l0aEhNQUMoWyJ2ZXJp
ZnkiXSwgWyJ2ZXJpZnkiXSksCisgICAgdGVzdFdpdGhITUFDKFsic2lnbiIsICJ2ZXJpZnkiXSwg
WyJzaWduIiwgInZlcmlmeSJdKSwKK10pLnRoZW4oZnVuY3Rpb24oKSB7IGZpbmlzaEpTVGVzdCgp
OyB9ICk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9qd2staW1wb3J0LXVzZS12YWx1ZXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9qd2staW1wb3J0LXVzZS12YWx1
ZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhZWRkYWE3YTViZTJhYWM1ZGZkY2UzMjI0NDM3
Y2E3YTc3NzU1N2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL2p3ay1pbXBvcnQtdXNlLXZhbHVlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1MyBA
QAorVGVzdCBpbXBvcnRpbmcga2V5cyB3aXRoIHZhcmlvdXMgdXNlcyBmcm9tIEpXSy4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFdpdGhBRVNDQkMoWyJlbmNyeXB0
Il0sIHtrZXlfb3BzOiBbImVuY3J5cHQiLCAiZW5jcnlwdCJdfSkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogSldLIGtleV9vcHMgY29udGFpbnMgYSBkdXBsaWNhdGUgb3BlcmF0aW9uLgorCit7
ImtleV9vcHMiOlsiZW5jcnlwdCJdfToKK1BBU1Mga2V5LnVzYWdlcyBpcyBbImVuY3J5cHQiXQor
Cit7ImtleV9vcHMiOlsiZGVjcnlwdCJdfToKK1BBU1Mga2V5LnVzYWdlcyBpcyBbImRlY3J5cHQi
XQorCit7ImtleV9vcHMiOlsiZW5jcnlwdCIsImRlY3J5cHQiXX06CitQQVNTIGtleS51c2FnZXMg
aXMgWyJkZWNyeXB0IiwiZW5jcnlwdCJdCisKK3sia2V5X29wcyI6WyJ3cmFwS2V5Il19OgorUEFT
UyBrZXkudXNhZ2VzIGlzIFsid3JhcEtleSJdCisKK3sia2V5X29wcyI6WyJ1bndyYXBLZXkiXX06
CitQQVNTIGtleS51c2FnZXMgaXMgWyJ1bndyYXBLZXkiXQorCit7ImtleV9vcHMiOlsid3JhcEtl
eSIsInVud3JhcEtleSJdfToKK1BBU1Mga2V5LnVzYWdlcyBpcyBbInVud3JhcEtleSIsIndyYXBL
ZXkiXQorCit7ImtleV9vcHMiOlsiZW5jcnlwdCIsImRlY3J5cHQiLCJ3cmFwS2V5Il19OgorUEFT
UyBrZXkudXNhZ2VzIGlzIFsiZGVjcnlwdCIsImVuY3J5cHQiLCJ3cmFwS2V5Il0KKworeyJ1c2Ui
OiJlbmMifToKK1BBU1Mga2V5LnVzYWdlcyBpcyBbImRlY3J5cHQiLCJlbmNyeXB0IiwidW53cmFw
S2V5Iiwid3JhcEtleSJdCisKK3sia2V5X29wcyI6WyJzaWduIl19OgorUEFTUyBrZXkudXNhZ2Vz
IGlzIFsic2lnbiJdCisKK3sia2V5X29wcyI6WyJ2ZXJpZnkiXX06CitQQVNTIGtleS51c2FnZXMg
aXMgWyJ2ZXJpZnkiXQorCit7InVzZSI6InNpZyJ9OgorUEFTUyBrZXkudXNhZ2VzIGlzIFsic2ln
biIsInZlcmlmeSJdCisKK3sia2V5X29wcyI6WyInZW5jcnlwdCciXX06CitQQVNTIGtleS51c2Fn
ZXMgaXMgW10KKworeyJrZXlfb3BzIjpbImVuY3J5cHQgIl19OgorUEFTUyBrZXkudXNhZ2VzIGlz
IFtdCisKK3sia2V5X29wcyI6WyJFbmNyeXB0Il19OgorUEFTUyBrZXkudXNhZ2VzIGlzIFtdCisK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2p3ay1pbXBvcnQtdXNlLXZh
bHVlcy5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9qd2staW1wb3J0LXVz
ZS12YWx1ZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMmJmMTMyNTM5MjY4MTE2MDY5ODA2ZDkzOWNhN2Vh
YTFlYzkyODk3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1
YnRsZS9qd2staW1wb3J0LXVzZS12YWx1ZXMuaHRtbApAQCAtMCwwICsxLDk1IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IGlt
cG9ydGluZyBrZXlzIHdpdGggdmFyaW91cyB1c2VzIGZyb20gSldLLiIpOworCitqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKKwordmFyIGFlc0tleUFzSlNP
TiA9IHsKKyAgICAiYWxnIjogIkExOTJDQkMiLAorICAgICJleHQiOiB0cnVlLAorICAgICJrdHki
OiAib2N0IiwKKyAgICAiayI6ICJqbk93OTlvT1pGTElFUE1yZ0pCNTVXTDQ2dEpTTEd0NyIKK307
CisKK3ZhciBobWFjS2V5QXNKU09OID0geworICAgICJhbGciOiAiSFMyNTYiLAorICAgICJleHQi
OiB0cnVlLAorICAgICJrdHkiOiAib2N0IiwKKyAgICAiayI6ICJhaGprbi1fMzg3Zmduc2liZjIz
cXN2YWhqa24tXzM4N2ZnbnNpYmYyM3FzIgorfTsKKworZnVuY3Rpb24gdGVzdFdpdGhBRVNDQkMo
ZXhwZWN0ZWRVc2FnZXMsIGp3a1VzYWdlcykKK3sKKyAgICBpZiAoandrVXNhZ2VzLmtleV9vcHMp
IHsKKyAgICAgICAgYWVzS2V5QXNKU09OLmtleV9vcHMgPSBqd2tVc2FnZXMua2V5X29wczsKKyAg
ICAgICAgZGVsZXRlIGFlc0tleUFzSlNPTi51c2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZGVs
ZXRlIGFlc0tleUFzSlNPTi5rZXlfb3BzOworICAgICAgICBhZXNLZXlBc0pTT04udXNlID0gandr
VXNhZ2VzLnVzZTsKKyAgICB9CisKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXko
Imp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KGFlc0tleUFzSlNPTikpLCAi
QUVTLUNCQyIsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ3cmFwS2V5Iiwg
InVud3JhcEtleSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICBrZXkgPSByZXN1
bHQ7CisgICAgICAgIGRlYnVnKEpTT04uc3RyaW5naWZ5KGp3a1VzYWdlcykgKyAiOiIpOworICAg
ICAgICBzaG91bGRCZSgia2V5LnVzYWdlcyIsIEpTT04uc3RyaW5naWZ5KGV4cGVjdGVkVXNhZ2Vz
KSk7CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gdGVzdFdpdGhI
TUFDKGV4cGVjdGVkVXNhZ2VzLCBqd2tVc2FnZXMpCit7CisgICAgaWYgKGp3a1VzYWdlcy5rZXlf
b3BzKSB7CisgICAgICAgIGhtYWNLZXlBc0pTT04ua2V5X29wcyA9IGp3a1VzYWdlcy5rZXlfb3Bz
OworICAgICAgICBkZWxldGUgaG1hY0tleUFzSlNPTi51c2U7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgZGVsZXRlIGhtYWNLZXlBc0pTT04ua2V5X29wczsKKyAgICAgICAgaG1hY0tleUFzSlNPTi51
c2UgPSBqd2tVc2FnZXMudXNlOworICAgIH0KKworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmlt
cG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkoaG1hY0tleUFz
SlNPTikpLCB7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0yNTYnfX0sIGV4dHJhY3Rh
YmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAg
IGtleSA9IHJlc3VsdDsKKyAgICAgICAgZGVidWcoSlNPTi5zdHJpbmdpZnkoandrVXNhZ2VzKSAr
ICI6Iik7CisgICAgICAgIHNob3VsZEJlKCJrZXkudXNhZ2VzIiwgSlNPTi5zdHJpbmdpZnkoZXhw
ZWN0ZWRVc2FnZXMpKTsKKyAgICAgICAgZGVidWcoIiIpOworICAgIH0pOworfQorCisvLyBEdXBs
aWNhdGVzIGFyZSBub3QgYWxsb3dlZC4gV2UgY3VycmVudGx5IHJhaXNlIGFuIGV4Y2VwdGlvbiwg
YWx0aG91Z2ggd2Ugc2hvdWxkIHJlamVjdCB0aGUgcHJvbWlzZSBpbnN0ZWFkLgorc2hvdWxkVGhy
b3coJ3Rlc3RXaXRoQUVTQ0JDKFsiZW5jcnlwdCJdLCB7a2V5X29wczogWyJlbmNyeXB0IiwgImVu
Y3J5cHQiXX0pJyk7CitkZWJ1ZygiIik7CisKK1Byb21pc2UuYWxsKFsKKyAgICB0ZXN0V2l0aEFF
U0NCQyhbImVuY3J5cHQiXSwge2tleV9vcHM6IFsiZW5jcnlwdCJdfSksCisgICAgdGVzdFdpdGhB
RVNDQkMoWyJkZWNyeXB0Il0sIHtrZXlfb3BzOiBbImRlY3J5cHQiXX0pLAorICAgIHRlc3RXaXRo
QUVTQ0JDKFsiZGVjcnlwdCIsICJlbmNyeXB0Il0sIHtrZXlfb3BzOiBbImVuY3J5cHQiLCAiZGVj
cnlwdCJdfSksCisgICAgdGVzdFdpdGhBRVNDQkMoWyJ3cmFwS2V5Il0sIHtrZXlfb3BzOiBbIndy
YXBLZXkiXX0pLAorICAgIHRlc3RXaXRoQUVTQ0JDKFsidW53cmFwS2V5Il0sIHtrZXlfb3BzOiBb
InVud3JhcEtleSJdfSksCisgICAgdGVzdFdpdGhBRVNDQkMoWyJ1bndyYXBLZXkiLCAid3JhcEtl
eSJdLCB7a2V5X29wczogWyJ3cmFwS2V5IiwgInVud3JhcEtleSJdfSksCisgICAgdGVzdFdpdGhB
RVNDQkMoWyJkZWNyeXB0IiwgImVuY3J5cHQiLCAid3JhcEtleSJdLCB7a2V5X29wczogWyJlbmNy
eXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSJdfSksCisgICAgdGVzdFdpdGhBRVNDQkMoWyJkZWNy
eXB0IiwgImVuY3J5cHQiLCAidW53cmFwS2V5IiwgIndyYXBLZXkiXSwge3VzZTogImVuYyJ9KSwK
KyAgICB0ZXN0V2l0aEhNQUMoWyJzaWduIl0sIHtrZXlfb3BzOiBbInNpZ24iXX0pLAorICAgIHRl
c3RXaXRoSE1BQyhbInZlcmlmeSJdLCB7a2V5X29wczogWyJ2ZXJpZnkiXX0pLAorICAgIHRlc3RX
aXRoSE1BQyhbInNpZ24iLCAidmVyaWZ5Il0sIHt1c2U6ICJzaWcifSksCisKKy8vIFVua25vd24g
a2V5X29wcyBzdHJpbmdzIGFyZSBpZ25vcmVkLgorICAgIHRlc3RXaXRoQUVTQ0JDKFtdLCB7a2V5
X29wczogWyInZW5jcnlwdCciXX0pLAorICAgIHRlc3RXaXRoQUVTQ0JDKFtdLCB7a2V5X29wczog
WyJlbmNyeXB0ICJdfSksCisgICAgdGVzdFdpdGhBRVNDQkMoW10sIHtrZXlfb3BzOiBbIkVuY3J5
cHQiXX0pLAorCitdKS50aGVuKGZ1bmN0aW9uKCkgeyBmaW5pc2hKU1Rlc3QoKTsgfSApOworPC9z
Y3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0
by93ZWJraXRTdWJ0bGUvcG9zdE1lc3NhZ2Utd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcG9zdE1lc3NhZ2Utd29ya2VyLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42MGNkMzAyMGNiMTQ0ZGE3ZmJlYTdhZDFhYjNhZGUzM2UxZjQzMTFjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9wb3N0TWVzc2Fn
ZS13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3Qgc2VuZGluZyBjcnlw
dG8ga2V5cyB2aWEgcG9zdE1lc3NhZ2UgdG8gYSB3b3JrZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitGQUlMIENoZWNrIGZhaWxlZCBpbiB3b3JrZXI6IGtleSBpcyBudWxsCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9wb3N0TWVzc2FnZS13b3JrZXIu
aHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcG9zdE1lc3NhZ2Utd29ya2Vy
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDc1ZWJmMzM5MjI2YzFjNTU1NGE3ZTQ2NmU2NWE1MTg0NThhMjQ1
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcG9z
dE1lc3NhZ2Utd29ya2VyLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisKK2Rl
c2NyaXB0aW9uKCJUZXN0IHNlbmRpbmcgY3J5cHRvIGtleXMgdmlhIHBvc3RNZXNzYWdlIHRvIGEg
d29ya2VyLiIpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaW1wb3J0VGVzdEtleXMoKS50
aGVuKGZ1bmN0aW9uKGtleXMpIHsKKyAgICB2YXIgd29ya2VyID0gbmV3IFdvcmtlcigicmVzb3Vy
Y2VzL3Bvc3RNZXNzYWdlLXdvcmtlci5qcyIpOworICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBmdW5j
dGlvbihldnQpIHsKKyAgICAgICAgaWYgKCFldnQuZGF0YS5yZXN1bHQpIHsKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkNoZWNrIGZhaWxlZCBpbiB3b3JrZXI6ICIgKyBldnQuZGF0YS5tZXNzYWdl
KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkFsbCBjaGVja3Mg
cGFzc2VkIGluIHdvcmtlciIpOworICAgICAgICAgICAga2V5ID0gZXZ0LmRhdGEua2V5OworICAg
ICAgICAgICAgc2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7CisgICAgICAgICAgICBz
aG91bGRCZSgia2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKKyAgICAgICAgICAgIHNob3VsZEJl
KCJrZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0hNQUMnIik7CisgICAgICAgICAgICBzaG91bGRCZSgi
a2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMTYiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJrZXku
dXNhZ2VzIiwgJ1siZGVjcnlwdCIsICJlbmNyeXB0IiwgInNpZ24iLCAidmVyaWZ5Il0nKTsKKyAg
ICAgICAgfQorICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9CisgICAgd29ya2VyLnBvc3RN
ZXNzYWdlKGtleXMuaG1hY1NoYTEpOworfSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcmVzb3VyY2VzL2Nv
bW1vbi5qcyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcmVzb3VyY2VzL2NvbW1v
bi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xMjBiMThjYmQxMDAwMTg3MjA2OTY2YWQ5MjFmNzIxMGMzNmFmNTAz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yZXNv
dXJjZXMvY29tbW9uLmpzCkBAIC0wLDAgKzEsMTA1IEBACitmdW5jdGlvbiBpbXBvcnRUZXN0S2V5
cygpCit7CisgICAgdmFyIGtleUZvcm1hdCA9ICJyYXciOworICAgIHZhciBkYXRhID0gYXNjaWlU
b1VpbnQ4QXJyYXkoIjE2IGJ5dGVzIG9mIGtleSEiKTsKKyAgICB2YXIgZXh0cmFjdGFibGUgPSB0
cnVlOworICAgIHZhciBrZXlVc2FnZXMgPSBbJ2VuY3J5cHQnLCAnZGVjcnlwdCcsICdzaWduJywg
J3ZlcmlmeSddOworCisgICAgdmFyIGhtYWNQcm9taXNlID0gY3J5cHRvLnN1YnRsZS5pbXBvcnRL
ZXkoa2V5Rm9ybWF0LCBkYXRhLCB7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0xJ319
LCBleHRyYWN0YWJsZSwga2V5VXNhZ2VzKTsKKyAgICB2YXIgYWVzQ2JjUHJvbWlzZSA9IGNyeXB0
by5zdWJ0bGUuaW1wb3J0S2V5KGtleUZvcm1hdCwgZGF0YSwge25hbWU6ICdBRVMtQ0JDJ30sIGV4
dHJhY3RhYmxlLCBrZXlVc2FnZXMpOworICAgIHZhciBhZXNDYmNKdXN0RGVjcnlwdCA9IGNyeXB0
by5zdWJ0bGUuaW1wb3J0S2V5KGtleUZvcm1hdCwgZGF0YSwge25hbWU6ICdBRVMtQ0JDJ30sIGZh
bHNlLCBbJ2RlY3J5cHQnXSk7CisKKyAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2htYWNQcm9taXNl
LCBhZXNDYmNQcm9taXNlLCBhZXNDYmNKdXN0RGVjcnlwdF0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0
cykgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgaG1hY1NoYTE6IHJlc3VsdHNbMF0s
CisgICAgICAgICAgICBhZXNDYmM6IHJlc3VsdHNbMV0sCisgICAgICAgICAgICBhZXNDYmNKdXN0
RGVjcnlwdDogcmVzdWx0c1syXSwKKyAgICAgICAgfTsKKyAgICB9KTsKK30KKworLy8gVmVyaWZp
ZXMgdGhhdCB0aGUgZ2l2ZW4gImJ5dGVzIiBob2xkcyB0aGUgc2FtZSB2YWx1ZSBhcyAiZXhwZWN0
ZWRIZXhTdHJpbmciLgorLy8gImJ5dGVzIiBjYW4gYmUgYW55dGhpbmcgcmVjb2duaXplZCBieSAi
Ynl0ZXNUb0hleFN0cmluZygpIi4KK2Z1bmN0aW9uIGJ5dGVzU2hvdWxkTWF0Y2hIZXhTdHJpbmco
dGVzdERlc2NyaXB0aW9uLCBleHBlY3RlZEhleFN0cmluZywgYnl0ZXMpCit7CisgICAgZXhwZWN0
ZWRIZXhTdHJpbmcgPSAiWyIgKyBleHBlY3RlZEhleFN0cmluZy50b0xvd2VyQ2FzZSgpICsgIl0i
OworICAgIHZhciBhY3R1YWxIZXhTdHJpbmcgPSAiWyIgKyBieXRlc1RvSGV4U3RyaW5nKGJ5dGVz
KSArICJdIjsKKworICAgIGlmIChhY3R1YWxIZXhTdHJpbmcgPT09IGV4cGVjdGVkSGV4U3RyaW5n
KSB7CisgICAgICAgIGRlYnVnKCJQQVNTOiAiICsgdGVzdERlc2NyaXB0aW9uICsgIiBzaG91bGQg
YmUgIiArIGV4cGVjdGVkSGV4U3RyaW5nICsgIiBhbmQgd2FzIik7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgZGVidWcoIkZBSUw6ICIgKyB0ZXN0RGVzY3JpcHRpb24gKyAiIHNob3VsZCBiZSAiICsg
ZXhwZWN0ZWRIZXhTdHJpbmcgKyAiIGJ1dCB3YXMgIiArIGFjdHVhbEhleFN0cmluZyk7CisgICAg
fQorfQorCisvLyBCdWlsZHMgYSBoZXggc3RyaW5nIHJlcHJlc2VudGF0aW9uIGZvciBhbiBhcnJh
eS1saWtlIGlucHV0LgorLy8gImJ5dGVzIiBjYW4gYmUgYW4gQXJyYXkgb2YgYnl0ZXMsIGFuIEFy
cmF5QnVmZmVyLCBvciBhbnkgVHlwZWRBcnJheS4KKy8vIFRoZSBvdXRwdXQgbG9va3MgbGlrZSB0
aGlzOgorLy8gICAgYWIwMzRjOTkKK2Z1bmN0aW9uIGJ5dGVzVG9IZXhTdHJpbmcoYnl0ZXMpCit7
CisgICAgaWYgKCFieXRlcykKKyAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICBieXRlcyA9IG5l
dyBVaW50OEFycmF5KGJ5dGVzKTsKKyAgICB2YXIgaGV4Qnl0ZXMgPSBbXTsKKworICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIGJ5dGVTdHJp
bmcgPSBieXRlc1tpXS50b1N0cmluZygxNik7CisgICAgICAgIGlmIChieXRlU3RyaW5nLmxlbmd0
aCA8IDIpCisgICAgICAgICAgICBieXRlU3RyaW5nID0gIjAiICsgYnl0ZVN0cmluZzsKKyAgICAg
ICAgaGV4Qnl0ZXMucHVzaChieXRlU3RyaW5nKTsKKyAgICB9CisKKyAgICByZXR1cm4gaGV4Qnl0
ZXMuam9pbigiIik7Cit9CisKK2Z1bmN0aW9uIGJ5dGVzVG9BU0NJSVN0cmluZyhieXRlcykKK3sK
KyAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLCBuZXcgVWludDhBcnJh
eShieXRlcykpOworfQorCitmdW5jdGlvbiBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoaGV4U3RyaW5n
KQoreworICAgIGlmIChoZXhTdHJpbmcubGVuZ3RoICUgMiAhPSAwKQorICAgICAgICB0aHJvdyAi
SW52YWxpZCBoZXhTdHJpbmciOworICAgIHZhciBhcnJheUJ1ZmZlciA9IG5ldyBVaW50OEFycmF5
KGhleFN0cmluZy5sZW5ndGggLyAyKTsKKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaGV4U3Ry
aW5nLmxlbmd0aDsgaSArPSAyKSB7CisgICAgICAgIHZhciBieXRlVmFsdWUgPSBwYXJzZUludCho
ZXhTdHJpbmcuc3Vic3RyKGksIDIpLCAxNik7CisgICAgICAgIGlmIChieXRlVmFsdWUgPT0gTmFO
KQorICAgICAgICAgICAgdGhyb3cgIkludmFsaWQgaGV4U3RyaW5nIjsKKyAgICAgICAgYXJyYXlC
dWZmZXJbaS8yXSA9IGJ5dGVWYWx1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gYXJyYXlCdWZmZXI7
Cit9CisKK2Z1bmN0aW9uIGFzY2lpVG9VaW50OEFycmF5KHN0cikKK3sKKyAgICB2YXIgY2hhcnMg
PSBbXTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7ICsraSkKKyAgICAgICAg
Y2hhcnMucHVzaChzdHIuY2hhckNvZGVBdChpKSk7CisgICAgcmV0dXJuIG5ldyBVaW50OEFycmF5
KGNoYXJzKTsKK30KKworZnVuY3Rpb24gZmFpbEFuZEZpbmlzaEpTVGVzdChlcnJvcikKK3sKKyAg
ICBpZiAoZXJyb3IpCisgICAgICAgZGVidWcoZXJyb3IpOworICAgIGZpbmlzaEpTVGVzdCgpOwor
fQorCit2YXIgQmFzZTY0VVJMID0geworICAgIHN0cmluZ2lmeTogZnVuY3Rpb24gKGEpIHsKKyAg
ICAgICAgdmFyIGJhc2U2NHN0cmluZyA9IGJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseSgw
LCBhKSk7CisgICAgICAgIHJldHVybiBiYXNlNjRzdHJpbmcucmVwbGFjZSgvPS9nLCAiIikucmVw
bGFjZSgvXCsvZywgIi0iKS5yZXBsYWNlKC9cLy9nLCAiXyIpOworICAgIH0sCisgICAgcGFyc2U6
IGZ1bmN0aW9uIChzKSB7CisgICAgICAgIHMgPSBzLnJlcGxhY2UoLy0vZywgIisiKS5yZXBsYWNl
KC9fL2csICIvIikucmVwbGFjZSgvXHMvZywgJycpOworICAgICAgICByZXR1cm4gbmV3IFVpbnQ4
QXJyYXkoQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGF0b2IocyksIGZ1bmN0aW9uIChjKSB7IHJl
dHVybiBjLmNoYXJDb2RlQXQoMCkgfSkpOworICAgIH0KK307CisKK2lmICghY3J5cHRvLnN1YnRs
ZSkKKyAgICBjcnlwdG8uc3VidGxlID0gY3J5cHRvLndlYmtpdFN1YnRsZTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcmVzb3VyY2VzL3Bvc3RNZXNzYWdlLXdv
cmtlci5qcyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcmVzb3VyY2VzL3Bvc3RN
ZXNzYWdlLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYTBiZWMyY2FiM2ZkNjM2OWY2Y2M0ZTJjMWEz
MmUzZGM5MjYzNjU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9yZXNvdXJjZXMvcG9zdE1lc3NhZ2Utd29ya2VyLmpzCkBAIC0wLDAgKzEsMTYgQEAK
K29ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2dCkKK3sKKyAgICB2YXIga2V5ID0gZXZ0LmRhdGE7Cisg
ICAgaWYgKCFrZXkpCisgICAgICAgIHBvc3RNZXNzYWdlKHsgcmVzdWx0OmZhbHNlLCBtZXNzYWdl
OidrZXkgaXMgJyArIGtleSB9KTsKKyAgICBpZiAoa2V5LnR5cGUgIT0gJ3NlY3JldCcpCisgICAg
ICAgIHBvc3RNZXNzYWdlKHsgcmVzdWx0OmZhbHNlLCBtZXNzYWdlOidrZXkudHlwZSBzaG91bGQg
YmUgInNlY3JldCInIH0pOworICAgIGVsc2UgaWYgKCFrZXkuZXh0cmFjdGFibGUpCisgICAgICAg
IHBvc3RNZXNzYWdlKHsgcmVzdWx0OmZhbHNlLCBtZXNzYWdlOidrZXkuZXh0cmFjdGFibGUgc2hv
dWxkIGJlIHRydWUnIH0pOworICAgIGVsc2UgaWYgKGtleS5hbGdvcml0aG0ubmFtZSAhPSAiSE1B
QyIpCisgICAgICAgIHBvc3RNZXNzYWdlKHsgcmVzdWx0OmZhbHNlLCBtZXNzYWdlOidrZXkuYWxn
b3JpdGhtLm5hbWUgc2hvdWxkIGJlICJITUFDIicgfSk7CisgICAgZWxzZSBpZiAoa2V5LnVzYWdl
cy50b1N0cmluZygpICE9ICJkZWNyeXB0LGVuY3J5cHQsc2lnbix2ZXJpZnkiKQorICAgICAgICBw
b3N0TWVzc2FnZSh7IHJlc3VsdDpmYWxzZSwgbWVzc2FnZTona2V5LnVzYWdlcyBzaG91bGQgYmUg
WyJkZWNyeXB0IiwgImVuY3J5cHQiLCAic2lnbiIsICJ2ZXJpZnkiXScgfSk7CisgICAgZWxzZQor
ICAgICAgICBwb3N0TWVzc2FnZSh7IHJlc3VsdDp0cnVlLCBrZXk6a2V5IH0pOworfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yZXNvdXJjZXMvcnNhLWluZGV4
ZWRkYi1ub24tZXhwb3J0YWJsZS5qcyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUv
cmVzb3VyY2VzL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTc2
ZWVmMjMwMmFmMmYwNmIzYzIwZTA2ZTNjYjU3OTY2ZDRkOTc4YQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcmVzb3VyY2VzL3JzYS1pbmRleGVkZGIt
bm9uLWV4cG9ydGFibGUuanMKQEAgLTAsMCArMSw2MSBAQAorZGVzY3JpcHRpb24oIlRlc3Qgc3Rv
cmluZyBhIHByaXZhdGUgUlNBIGtleSBpbiBJbmRleGVkREIsIGFuZCByZXRyaWV2aW5nIGl0LiIp
OworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIHByaXZhdGVLZXlKU09OID0geworICAg
IGt0eTogIlJTQSIsCisgICAgYWxnOiAiUlMyNTYiLAorICAgIG46ICJyY0NVQ3Y3T2MxSFZhbTFE
SWhDenFrblRoV2F3T3A4UUxrOFppeTJwMTBCeWpRRkNham9GaXl1QVdsLVIxV1haYWY0eGl0TFJy
YWNUOWFncHpJemMtTWJMU0hJR2dXUUdPMjFsR2lJbXk1ZnRaLUQ4YkhBcVJ6MnkxNXB6RDRjNENF
b3U3WFNTTERvUm5SMFFHNU1zRGhENnMyZ1Y5bXdIa3J0a0N4dE1XZEJpLTc3YXM4d0dtbE5SbGRj
T1NnWkRMSzhVbkNTZ0ExT2d1Wjk4OWJGeWM4dE9PRUliMHhVU2ZQU3ozTFBTQ255WXo2OGFEam1L
VmVOSC1pZzg1N09TY3lXYkd5RXkzQml3NjRxdW4zanVVbE5Xc0ozem5na09kdGVZV3l0eDVRcjRY
S05zNlItTXl5cTcyS1VwMDJtSkRaaWl5aWdseE1MX2kzLV9DZWVjQ3ciLAorICAgIGU6ICJBUUFC
IiwKKyAgICBkOiAiZU5MUzM3YUN6N1JYU05QRF9EdExCSjZqNVQ4Y1N4ZHpSQkNqUGFJNldjR3FK
cDE2bHEzVVR3dW9ETEFxbEE5b0dZbTIzOGRzSVdwdXVjUF9sUXRiV2UtN1NweG9JNl92bVlHZjdZ
VlVIdjEtREY5cWlPbVNyTW1keE1uVk96WVhZOFJhVDZ0aFBqbl9KNWNmTFYyeElfTHdzck10bXBk
U3lObGdYMHpUVWh3dHVhaGdBS01FQ2hZakgyRW5qSGRIdzZzWTItd0FwZGNRSTdVTEUwb281Unpi
UVpwbXVoY045aGlCYzBMM2hoRjBxbzUwbWJsMDJfNjVfR1E3RHBWa1hCeE5nUkJMemxQYWJtenpH
Mm9BaGZlZkxnWW1TQzFvcGFDa1hFNnZSV1FOV05MNDVSWk5aRllNM3VvSmdoT01xR2VvY00wQnBq
ZENoSHJQT2xGdlNRIiwKKyAgICBwOiAiNG1pVHVBaktNZUg1dUo1S0IzOTdRVXdoYmtZRWdTYmNB
Mm1pZm1Ta3ZFMjAxOGdiNTVxa0JISzFlVnJ5ZjFfbTQzTE5sYzZPX2FrNmdmemRaSVp2UzVOQ0dq
UGwwcTA5cGxVcHU4cUZPU3NwQndBNjdxR0g3NmxGbFpMbl9kNHlnbFM3d2ZMcnU0XzVZczhxTExz
LURxVkx2aXdwb3NPbnl5V3F3TTVBWHAwIiwKKyAgICBxOiAieEhZcnpraXZ0bW56X3NHY2huV0dj
MHEtcERPa0tpY3B0UnB2MnBNRklJWHhuRlg1YU1lRVhJWmpWdWpYdHdVeTFVbEZJTjJHWkpTdnk1
S0o3OW11X1h5Tm5GSE16ZWRILUEzZWUzdThoMVVVclpGLXZVdTFfZTRVX3g2N05OMWRlZHpVU0t5
bk43cEZsM09rdVNoTUJXR1YtY3d6T1BkY1ZBZlZ1Wmx4VU1jIiwKKyAgICBkcDogImZCekR6WURV
Qm1CUUdvcDdIbjBkdmZfVDI3VjZScXBjdFdvMDc0Q1FaY0ZiUDJhdEZWdEtTajN2aVdUM3hpZDJW
SHpjZ2lESGRmcE0zbkVWbEVPMXd3SW9uR0NTdmRqR0VPWmlpRlZPanJaQU9WeEE4Z3VPanl5RnZx
YlhrZTA2VndQSUlWdmZLZVNVMnp1aGJQX18xdHQ2Rl9meG93NEtiMnhvbkdUMEdHayIsCisgICAg
ZHE6ICJqbUUyRGlJUGRod0RnTFhBUXBJYUJxUTgxYk8zWGZWVF9MUlVMQXd3d3dsUHVRVjE0OEgw
NHpsaDlUSjZZMkdaSFlva1YxVTBlT0JwSnhma2I3ZExZdHBKcHVpQmpSZjR5SVVFb0dsa2tJX1Fs
Sm5GU0ZyLVlqR1JkZk5IcVdCa3hsU01aTDc3MFI5bUlBVG5kR2tIN3o1eC1yOUt3QlpGQzRGQ0cy
aGdfekUiLAorICAgIHFpOiAiWUNYX3BMd2JNQkExVGhWSDBXY3dtbnl0cU5jck1DRXdUbTdCeUEy
ZVU2bldiUXJVTHZmN205X2t6ZkxVY2pzbnBBVmxCUUc1Sk1YTXkwU3E0cHR3Ynl3c2E1LUc4S0FP
T09SMkwzdjRoQy1FeXM5ZnRnRk1fM2kwbzQwZWVRSDRiM2hhUGJudHJJZU1nOEl6bE91VllLZjkt
MlF1S0RvV2VSZGQ3TnNkeFRrIgorfTsKKworY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIs
IGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KHByaXZhdGVLZXlKU09OKSksIG51bGws
IGZhbHNlLCBbInNpZ24iLCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24oa2V5KSB7CisgICAgdmFy
IG9wZW5SZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oImNyeXB0b19zdWJ0bGUiKTsKKyAgICBvcGVu
UmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICB2YXIg
b2JqZWN0U3RvcmUgPSBldmVudC50YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJyc2Et
aW5kZXhlZGRiIik7CisgICAgfQorICAgIG9wZW5SZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbihl
dmVudCkgeworICAgICAgICB0ZXN0RmFpbGVkKCJDb3VsZCBub3Qgb3BlbiBkYXRhYmFzZTogIiAr
IGV2ZW50LnRhcmdldC5lcnJvci5uYW1lKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
fQorICAgIG9wZW5SZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAg
IGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgc3RvcmVLZXkoKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBzdG9yZUtleSgpIHsKKyAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGIu
dHJhbnNhY3Rpb24oInJzYS1pbmRleGVkZGIiLCAicmVhZHdyaXRlIikub2JqZWN0U3RvcmUoInJz
YS1pbmRleGVkZGIiKTsKKyAgICAgICAgdmFyIHJlcSA9IG9iamVjdFN0b3JlLnB1dChrZXksICJt
eWtleSIpOworICAgICAgICByZXEub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJDb3VsZCBub3QgcHV0IGEga2V5IGludG8gZGF0YWJhc2U6ICIgKyBl
dmVudC50YXJnZXQuZXJyb3IubmFtZSk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICAgICAgfQorICAgICAgICByZXEub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsgcmVhZEtl
eSgpOyB9CisgICAgfQorCisgICAgZnVuY3Rpb24gcmVhZEtleSgpIHsKKyAgICAgICAgdmFyIG9i
amVjdFN0b3JlID0gZGIudHJhbnNhY3Rpb24oInJzYS1pbmRleGVkZGIiKS5vYmplY3RTdG9yZSgi
cnNhLWluZGV4ZWRkYiIpOworICAgICAgICB2YXIgcmVxID0gb2JqZWN0U3RvcmUuZ2V0KCJteWtl
eSIpOworICAgICAgICByZXEub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJDb3VsZCBub3QgZ2V0IGEga2V5IGZyb20gZGF0YWJhc2U6ICIgKyBldmVu
dC50YXJnZXQuZXJyb3IubmFtZSk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAg
ICAgfQorICAgICAgICByZXEub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAg
ICAgIHdpbmRvdy5yZXRyaWV2ZWRLZXkgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICAg
ICAgc2hvdWxkQmUoInJldHJpZXZlZEtleS50eXBlIiwgIidwcml2YXRlJyIpOworICAgICAgICAg
ICAgc2hvdWxkQmUoInJldHJpZXZlZEtleS5leHRyYWN0YWJsZSIsICJmYWxzZSIpOworICAgICAg
ICAgICAgc2hvdWxkQmUoInJldHJpZXZlZEtleS5hbGdvcml0aG0ubmFtZSIsICInUlNBU1NBLVBL
Q1MxLXYxXzUnIik7CisgICAgICAgICAgICBzaG91bGRCZSgicmV0cmlldmVkS2V5LmFsZ29yaXRo
bS5tb2R1bHVzTGVuZ3RoIiwgIjIwNDgiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJieXRlc1Rv
SGV4U3RyaW5nKHJldHJpZXZlZEtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwgIicwMTAw
MDEnIik7CisgICAgICAgICAgICBzaG91bGRCZSgicmV0cmlldmVkS2V5LnVzYWdlcyIsICdbInNp
Z24iLCAidmVyaWZ5Il0nKTsKKworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAg
IH0KKyAgICB9Cit9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvcmVzb3VyY2VzL3JzYS1pbmRleGVkZGIuanMgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL3Jlc291cmNlcy9yc2EtaW5kZXhlZGRiLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxMTI0MTYzNGRi
OTNmOTRiOWE5Y2Y2Y2I5ZjU0YzdiNjcwM2M4NDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3Jlc291cmNlcy9yc2EtaW5kZXhlZGRiLmpzCkBAIC0w
LDAgKzEsNjEgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IHN0b3JpbmcgYSBwcml2YXRlIFJTQSBrZXkg
aW4gSW5kZXhlZERCLCBhbmQgcmV0cmlldmluZyBpdC4iKTsKKworanNUZXN0SXNBc3luYyA9IHRy
dWU7CisKK3ZhciBwcml2YXRlS2V5SlNPTiA9IHsKKyAgICBrdHk6ICJSU0EiLAorICAgIGFsZzog
IlJTMjU2IiwKKyAgICBuOiAicmNDVUN2N09jMUhWYW0xREloQ3pxa25UaFdhd09wOFFMazhaaXky
cDEwQnlqUUZDYWpvRml5dUFXbC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6SXpjLU1iTFNISUdnV1FH
TzIxbEdpSW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVNc0RoRDZz
MmdWOW13SGtydGtDeHRNV2RCaS03N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5ODli
RnljOHRPT0VJYjB4VVNmUFN6M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5M0Jp
dzY0cXVuM2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3MktVcDAybUpEWmlp
eWlnbHhNTF9pMy1fQ2VlY0N3IiwKKyAgICBlOiAiQVFBQiIsCisgICAgZDogImVOTFMzN2FDejdS
WFNOUERfRHRMQko2ajVUOGNTeGR6UkJDalBhSTZXY0dxSnAxNmxxM1VUd3VvRExBcWxBOW9HWW0y
Mzhkc0lXcHV1Y1BfbFF0YldlLTdTcHhvSTZfdm1ZR2Y3WVZVSHYxLURGOXFpT21Tck1tZHhNblZP
ellYWThSYVQ2dGhQam5fSjVjZkxWMnhJX0x3c3JNdG1wZFN5TmxnWDB6VFVod3R1YWhnQUtNRUNo
WWpIMkVuakhkSHc2c1kyLXdBcGRjUUk3VUxFMG9vNVJ6YlFacG11aGNOOWhpQmMwTDNoaEYwcW81
MG1ibDAyXzY1X0dRN0RwVmtYQnhOZ1JCTHpsUGFibXp6RzJvQWhmZWZMZ1ltU0Mxb3BhQ2tYRTZ2
UldRTldOTDQ1UlpOWkZZTTN1b0pnaE9NcUdlb2NNMEJwamRDaEhyUE9sRnZTUSIsCisgICAgcDog
IjRtaVR1QWpLTWVINXVKNUtCMzk3UVV3aGJrWUVnU2JjQTJtaWZtU2t2RTIwMThnYjU1cWtCSEsx
ZVZyeWYxX200M0xObGM2T19hazZnZnpkWkladlM1TkNHalBsMHEwOXBsVXB1OHFGT1NzcEJ3QTY3
cUdINzZsRmxaTG5fZDR5Z2xTN3dmTHJ1NF81WXM4cUxMcy1EcVZMdml3cG9zT255eVdxd001QVhw
MCIsCisgICAgcTogInhIWXJ6a2l2dG1uel9zR2NobldHYzBxLXBET2tLaWNwdFJwdjJwTUZJSVh4
bkZYNWFNZUVYSVpqVnVqWHR3VXkxVWxGSU4yR1pKU3Z5NUtKNzltdV9YeU5uRkhNemVkSC1BM2Vl
M3U4aDFVVXJaRi12VXUxX2U0VV94NjdOTjFkZWR6VVNLeW5ON3BGbDNPa3VTaE1CV0dWLWN3ek9Q
ZGNWQWZWdVpseFVNYyIsCisgICAgZHA6ICJmQnpEellEVUJtQlFHb3A3SG4wZHZmX1QyN1Y2UnFw
Y3RXbzA3NENRWmNGYlAyYXRGVnRLU2ozdmlXVDN4aWQyVkh6Y2dpREhkZnBNM25FVmxFTzF3d0lv
bkdDU3ZkakdFT1ppaUZWT2pyWkFPVnhBOGd1T2p5eUZ2cWJYa2UwNlZ3UElJVnZmS2VTVTJ6dWhi
UF9fMXR0NkZfZnhvdzRLYjJ4b25HVDBHR2siLAorICAgIGRxOiAiam1FMkRpSVBkaHdEZ0xYQVFw
SWFCcVE4MWJPM1hmVlRfTFJVTEF3d3d3bFB1UVYxNDhIMDR6bGg5VEo2WTJHWkhZb2tWMVUwZU9C
cEp4ZmtiN2RMWXRwSnB1aUJqUmY0eUlVRW9HbGtrSV9RbEpuRlNGci1ZakdSZGZOSHFXQmt4bFNN
Wkw3NzBSOW1JQVRuZEdrSDd6NXgtcjlLd0JaRkM0RkNHMmhnX3pFIiwKKyAgICBxaTogIllDWF9w
THdiTUJBMVRoVkgwV2N3bW55dHFOY3JNQ0V3VG03QnlBMmVVNm5XYlFyVUx2ZjdtOV9remZMVWNq
c25wQVZsQlFHNUpNWE15MFNxNHB0d2J5d3NhNS1HOEtBT09PUjJMM3Y0aEMtRXlzOWZ0Z0ZNXzNp
MG80MGVlUUg0YjNoYVBibnRySWVNZzhJemxPdVZZS2Y5LTJRdUtEb1dlUmRkN05zZHhUayIKK307
CisKK2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09O
LnN0cmluZ2lmeShwcml2YXRlS2V5SlNPTikpLCBudWxsLCB0cnVlLCBbInNpZ24iLCAidmVyaWZ5
Il0pLnRoZW4oZnVuY3Rpb24oa2V5KSB7CisgICAgdmFyIG9wZW5SZXF1ZXN0ID0gaW5kZXhlZERC
Lm9wZW4oImNyeXB0b19zdWJ0bGUiKTsKKyAgICBvcGVuUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihldmVudCkgeworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBldmVudC50YXJn
ZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJyc2EtaW5kZXhlZGRiIik7CisgICAgfQorICAg
IG9wZW5SZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICB0ZXN0RmFp
bGVkKCJDb3VsZCBub3Qgb3BlbiBkYXRhYmFzZTogIiArIGV2ZW50LnRhcmdldC5lcnJvci5uYW1l
KTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQorICAgIG9wZW5SZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dDsKKyAgICAgICAgc3RvcmVLZXkoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdG9yZUtleSgp
IHsKKyAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGIudHJhbnNhY3Rpb24oInJzYS1pbmRleGVk
ZGIiLCAicmVhZHdyaXRlIikub2JqZWN0U3RvcmUoInJzYS1pbmRleGVkZGIiKTsKKyAgICAgICAg
dmFyIHJlcSA9IG9iamVjdFN0b3JlLnB1dChrZXksICJteWtleSIpOworICAgICAgICByZXEub25l
cnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb3VsZCBu
b3QgcHV0IGEga2V5IGludG8gZGF0YWJhc2U6ICIgKyBldmVudC50YXJnZXQuZXJyb3IubmFtZSk7
CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorICAgICAgICByZXEub25z
dWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsgcmVhZEtleSgpOyB9CisgICAgfQorCisgICAgZnVu
Y3Rpb24gcmVhZEtleSgpIHsKKyAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGIudHJhbnNhY3Rp
b24oInJzYS1pbmRleGVkZGIiKS5vYmplY3RTdG9yZSgicnNhLWluZGV4ZWRkYiIpOworICAgICAg
ICB2YXIgcmVxID0gb2JqZWN0U3RvcmUuZ2V0KCJteWtleSIpOworICAgICAgICByZXEub25lcnJv
ciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb3VsZCBub3Qg
Z2V0IGEga2V5IGZyb20gZGF0YWJhc2U6ICIgKyBldmVudC50YXJnZXQuZXJyb3IubmFtZSk7Cisg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorICAgICAgICByZXEub25zdWNj
ZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIHdpbmRvdy5yZXRyaWV2ZWRLZXkg
PSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgc2hvdWxkQmUoInJldHJpZXZlZEtl
eS50eXBlIiwgIidwcml2YXRlJyIpOworICAgICAgICAgICAgc2hvdWxkQmUoInJldHJpZXZlZEtl
eS5leHRyYWN0YWJsZSIsICJ0cnVlIik7CisgICAgICAgICAgICBzaG91bGRCZSgicmV0cmlldmVk
S2V5LmFsZ29yaXRobS5uYW1lIiwgIidSU0FTU0EtUEtDUzEtdjFfNSciKTsKKyAgICAgICAgICAg
IHNob3VsZEJlKCJyZXRyaWV2ZWRLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIp
OworICAgICAgICAgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcocmV0cmlldmVkS2V5LmFs
Z29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAxMDAwMSciKTsKKyAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXRyaWV2ZWRLZXkudXNhZ2VzIiwgJ1sic2lnbiIsICJ2ZXJpZnkiXScpOworCisgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorICAgIH0KK30pOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtZXhwb3J0LWdlbmVyYXRlZC1r
ZXlzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWV4
cG9ydC1nZW5lcmF0ZWQta2V5cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQ0Yjg0NzQ2Njdj
NTJhNDg4OWM4MThkN2Q2OWNmZjExNTM0NWEzOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1nZW5lcmF0ZWQta2V5cy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzMiBAQAorVGVzdCBleHBvcnRpbmcgYSBnZW5lcmF0ZWQgUlNBIGtl
eXBhaXIgd2l0aCBoYXNoLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitHZW5l
cmF0aW5nIFJTQS1QS0NTMS12MS41IGtleVBhaXIuLi4KK1BBU1MgY3J5cHRvLnN1YnRsZS5leHBv
cnRLZXkobnVsbCwga2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtleSBm
b3JtYXQuCitQQVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KHVuZGVmaW5lZCwga2V5KSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQuCitQQVNTIGNyeXB0by5z
dWJ0bGUuZXhwb3J0S2V5KHt9LCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVua25v
d24ga2V5IGZvcm1hdC4KK1BBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoIiIsIGtleSkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0LgorUEFTUyBjcnlwdG8u
c3VidGxlLmV4cG9ydEtleSgiZm9vYmFyIiwga2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBVbmtub3duIGtleSBmb3JtYXQuCitQQVNTIGtleS5wdWJsaWNLZXkuYWxnb3JpdGhtLmhhc2gu
bmFtZSBpcyBkZWZpbmVkLgorUEFTUyBrZXkucHJpdmF0ZUtleS5hbGdvcml0aG0uaGFzaC5uYW1l
IGlzIGRlZmluZWQuCisKK0V4cG9ydGluZyBwdWJsaWMga2V5IGFzIEpXSy4uLgorUEFTUyBleHBv
cnRlZEpXSy5rdHkgaXMgJ1JTQScKK1BBU1MgZXhwb3J0ZWRKV0suYWxnIGlzICdSUzI1NicKK1BB
U1MgZXhwb3J0ZWRKV0suZXh0IGlzIHRydWUKK1BBU1MgZXhwb3J0ZWRKV0sudXNlIGlzIHVuZGVm
aW5lZAorUEFTUyBleHBvcnRlZEpXSy5rZXlfb3BzIGlzIFsnc2lnbicsICd2ZXJpZnknXQorCitF
eHBvcnRpbmcgcHJpdmF0ZSBrZXkgYXMgSldLLi4uCitQQVNTIGV4cG9ydGVkSldLLmt0eSBpcyAn
UlNBJworUEFTUyBleHBvcnRlZEpXSy5hbGcgaXMgJ1JTMjU2JworUEFTUyBleHBvcnRlZEpXSy5l
eHQgaXMgdHJ1ZQorUEFTUyBleHBvcnRlZEpXSy51c2UgaXMgdW5kZWZpbmVkCitQQVNTIGV4cG9y
dGVkSldLLmtleV9vcHMgaXMgWydzaWduJywgJ3ZlcmlmeSddCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtZXhwb3J0LWdlbmVyYXRlZC1rZXlzLmh0bWwgYi9MYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQtZ2VuZXJhdGVkLWtleXMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41ZTI2N2VmNzY2YjBmMjM1NjliMWNhMjY5MTY0YTE3ZTcyODFmZjYzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtZXhw
b3J0LWdlbmVyYXRlZC1rZXlzLmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCBleHBvcnRpbmcg
YSBnZW5lcmF0ZWQgUlNBIGtleXBhaXIgd2l0aCBoYXNoLiIpOworCitqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKKwordmFyIGFsZ29yaXRobSA9IHsKKyAg
ICBuYW1lOiAiUlNBU1NBLVBLQ1MxLXYxXzUiLAorICAgIG1vZHVsdXNMZW5ndGg6ICIyMDQ4IiwK
KyAgICBwdWJsaWNFeHBvbmVudDogbmV3IFVpbnQ4QXJyYXkoWzEsIDAsIDFdKSwgLy8gMl4xNiAr
IDEgKDY1NTM3KQorICAgIGhhc2g6IHsgbmFtZTogIlNIQS0yNTYiIH0KK307CisKK2RlYnVnKCJc
bkdlbmVyYXRpbmcgUlNBLVBLQ1MxLXYxLjUga2V5UGFpci4uLiIpOworY3J5cHRvLnN1YnRsZS5n
ZW5lcmF0ZUtleShhbGdvcml0aG0sIGV4dHJhY3RhYmxlLCBbJ3NpZ24nLCAndmVyaWZ5J10pCisu
dGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBrZXkgPSByZXN1bHQ7CisKKyAgICBzaG91bGRU
aHJvdygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkobnVsbCwga2V5KScpOworICAgIHNob3VsZFRo
cm93KCdjcnlwdG8uc3VidGxlLmV4cG9ydEtleSh1bmRlZmluZWQsIGtleSknKTsKKyAgICBzaG91
bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoe30sIGtleSknKTsKKyAgICBzaG91bGRU
aHJvdygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoIiIsIGtleSknKTsKKyAgICBzaG91bGRUaHJv
dygnY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoImZvb2JhciIsIGtleSknKTsKKyAgICBzaG91bGRC
ZURlZmluZWQoJ2tleS5wdWJsaWNLZXkuYWxnb3JpdGhtLmhhc2gubmFtZScpOworICAgIHNob3Vs
ZEJlRGVmaW5lZCgna2V5LnByaXZhdGVLZXkuYWxnb3JpdGhtLmhhc2gubmFtZScpOworCisgICAg
ZGVidWcoIlxuRXhwb3J0aW5nIHB1YmxpYyBrZXkgYXMgSldLLi4uIik7CisgICAgcmV0dXJuIGNy
eXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJqd2siLCBrZXkucHVibGljS2V5KTsKK30pLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7CisgICAgZXhwb3J0ZWRKV0sgPSBKU09OLnBhcnNlKGJ5dGVzVG9BU0NJ
SVN0cmluZyhyZXN1bHQpKTsKKworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rdHkiLCAiJ1JT
QSciKTsKKyAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suYWxnIiwgIidSUzI1NiciKTsKKyAgICBz
aG91bGRCZSgiZXhwb3J0ZWRKV0suZXh0IiwgInRydWUiKTsKKyAgICBzaG91bGRCZSgiZXhwb3J0
ZWRKV0sudXNlIiwgInVuZGVmaW5lZCIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rZXlf
b3BzIiwgIlsnc2lnbicsICd2ZXJpZnknXSIpOworCisgICAgZGVidWcoIlxuRXhwb3J0aW5nIHBy
aXZhdGUga2V5IGFzIEpXSy4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmV4cG9ydEtl
eSgiandrIiwga2V5LnByaXZhdGVLZXkpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAg
ICBleHBvcnRlZEpXSyA9IEpTT04ucGFyc2UoYnl0ZXNUb0FTQ0lJU3RyaW5nKHJlc3VsdCkpOwor
CisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmt0eSIsICInUlNBJyIpOworICAgIHNob3VsZEJl
KCJleHBvcnRlZEpXSy5hbGciLCAiJ1JTMjU2JyIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpX
Sy5leHQiLCAidHJ1ZSIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy51c2UiLCAidW5kZWZp
bmVkIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmtleV9vcHMiLCAiWydzaWduJywgJ3Zl
cmlmeSddIik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+CisKKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUv
cnNhLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1
YnRsZS9yc2EtZXhwb3J0LWtleS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmVlN2I3YWNmNjM4
Yzk2Yzk4NmQ2MThjNzZiZGU3ZDgzOTc4NDU3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjUgQEAKK1Rlc3QgZXhwb3J0aW5nIGFuIFJTQSBrZXkuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCisKK0ltcG9ydGluZyBhIEpXSyBrZXkuLi4KK1BBU1MgY3J5cHRvLnN1
YnRsZS5leHBvcnRLZXkobnVsbCwga2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtu
b3duIGtleSBmb3JtYXQuCitQQVNTIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KHVuZGVmaW5lZCwg
a2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQuCitQQVNT
IGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KHt9LCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IFVua25vd24ga2V5IGZvcm1hdC4KK1BBU1MgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoIiIs
IGtleSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0LgorUEFT
UyBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgiZm9vYmFyIiwga2V5KSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQuCisKK0V4cG9ydGluZyB0aGUga2V5IGFzIEpX
Sy4uLgorUEFTUyBleHBvcnRlZEpXSy5rdHkgaXMgJ1JTQScKK1BBU1MgZXhwb3J0ZWRKV0subiBp
cyBwdWJsaWNLZXlKU09OLm4KK1BBU1MgZXhwb3J0ZWRKV0suZSBpcyBwdWJsaWNLZXlKU09OLmUK
K1BBU1MgZXhwb3J0ZWRKV0suYWxnIGlzICdSUzI1NicKK1BBU1MgZXhwb3J0ZWRKV0suZXh0IGlz
IHRydWUKK1BBU1MgZXhwb3J0ZWRKV0sudXNlIGlzIHVuZGVmaW5lZAorUEFTUyBleHBvcnRlZEpX
Sy5rZXlfb3BzIGlzIFsnc2lnbicsICd2ZXJpZnknXQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0
by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1rZXkuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by93
ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1rZXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTY1YmNmZmRhMjFk
YTY5MmViNWFhZDg4YzZjNTQ1NzA1MTg0ZjEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtZXhwb3J0LWtleS5odG1sCkBAIC0wLDAgKzEsNTcg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRp
b24oIlRlc3QgZXhwb3J0aW5nIGFuIFJTQSBrZXkuIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVl
OworCit2YXIgZXh0cmFjdGFibGUgPSB0cnVlOwordmFyIG5vbkV4dHJhY3RhYmxlID0gZmFsc2U7
CisKK3ZhciBwdWJsaWNLZXlKU09OID0geworICAgIGt0eTogIlJTQSIsCisgICAgYWxnOiAiUlMy
NTYiLAorICAgIG46ICJyY0NVQ3Y3T2MxSFZhbTFESWhDenFrblRoV2F3T3A4UUxrOFppeTJwMTBC
eWpRRkNham9GaXl1QVdsLVIxV1haYWY0eGl0TFJyYWNUOWFncHpJemMtTWJMU0hJR2dXUUdPMjFs
R2lJbXk1ZnRaLUQ4YkhBcVJ6MnkxNXB6RDRjNENFb3U3WFNTTERvUm5SMFFHNU1zRGhENnMyZ1Y5
bXdIa3J0a0N4dE1XZEJpLTc3YXM4d0dtbE5SbGRjT1NnWkRMSzhVbkNTZ0ExT2d1Wjk4OWJGeWM4
dE9PRUliMHhVU2ZQU3ozTFBTQ255WXo2OGFEam1LVmVOSC1pZzg1N09TY3lXYkd5RXkzQml3NjRx
dW4zanVVbE5Xc0ozem5na09kdGVZV3l0eDVRcjRYS05zNlItTXl5cTcyS1VwMDJtSkRaaWl5aWds
eE1MX2kzLV9DZWVjQ3ciLAorICAgIGU6ICJBUUFCIgorfTsKKwordmFyIGp3a0tleUFzQXJyYXlC
dWZmZXIgPSBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShwdWJsaWNLZXlKU09OKSk7
CisKK2RlYnVnKCJcbkltcG9ydGluZyBhIEpXSyBrZXkuLi4iKTsKK2NyeXB0by5zdWJ0bGUuaW1w
b3J0S2V5KCJqd2siLCBqd2tLZXlBc0FycmF5QnVmZmVyLCAiUlNBU1NBLVBLQ1MxLXYxXzUiLCBl
eHRyYWN0YWJsZSwgWydzaWduJywgJ3ZlcmlmeSddKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewor
ICAgIGtleSA9IHJlc3VsdDsKKworICAgIHNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmV4cG9y
dEtleShudWxsLCBrZXkpJyk7CisgICAgc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZXhwb3J0
S2V5KHVuZGVmaW5lZCwga2V5KScpOworICAgIHNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmV4
cG9ydEtleSh7fSwga2V5KScpOworICAgIHNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmV4cG9y
dEtleSgiIiwga2V5KScpOworICAgIHNob3VsZFRocm93KCdjcnlwdG8uc3VidGxlLmV4cG9ydEtl
eSgiZm9vYmFyIiwga2V5KScpOworCisgICAgZGVidWcoIlxuRXhwb3J0aW5nIHRoZSBrZXkgYXMg
SldLLi4uIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJqd2siLCBrZXkp
OworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBleHBvcnRlZEpXSyA9IEpTT04ucGFy
c2UoYnl0ZXNUb0FTQ0lJU3RyaW5nKHJlc3VsdCkpOworCisgICAgc2hvdWxkQmUoImV4cG9ydGVk
SldLLmt0eSIsICInUlNBJyIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5uIiwgInB1Ymxp
Y0tleUpTT04ubiIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5lIiwgInB1YmxpY0tleUpT
T04uZSIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5hbGciLCAiJ1JTMjU2JyIpOworICAg
IHNob3VsZEJlKCJleHBvcnRlZEpXSy5leHQiLCAidHJ1ZSIpOworICAgIHNob3VsZEJlKCJleHBv
cnRlZEpXSy51c2UiLCAidW5kZWZpbmVkIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmtl
eV9vcHMiLCAiWydzaWduJywgJ3ZlcmlmeSddIik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30p
OworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1wcml2YXRlLWtleS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQtcHJpdmF0ZS1rZXkt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0NmVhMzM3YmVjYzliYzE0ZmExODgzODRhYzhiNjg0
M2ViZGQ3YmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3Vi
dGxlL3JzYS1leHBvcnQtcHJpdmF0ZS1rZXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjcgQEAK
K1Rlc3QgZXhwb3J0aW5nIGEgcHJpdmF0ZSBSU0Ega2V5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworCitJbXBvcnRpbmcgYSBKV0sga2V5Li4uCisKK0V4cG9ydGluZyB0aGUga2V5
IGFzIEpXSy4uLgorUEFTUyBleHBvcnRlZEpXSy5rdHkgaXMgJ1JTQScKK1BBU1MgZXhwb3J0ZWRK
V0subiBpcyBwcml2YXRlS2V5SlNPTi5uCitQQVNTIGV4cG9ydGVkSldLLmUgaXMgcHJpdmF0ZUtl
eUpTT04uZQorUEFTUyBleHBvcnRlZEpXSy5kIGlzIHByaXZhdGVLZXlKU09OLmQKK1BBU1MgZXhw
b3J0ZWRKV0sucCBpcyBwcml2YXRlS2V5SlNPTi5wCitQQVNTIGV4cG9ydGVkSldLLnEgaXMgcHJp
dmF0ZUtleUpTT04ucQorUEFTUyBleHBvcnRlZEpXSy5kcCBpcyBwcml2YXRlS2V5SlNPTi5kcAor
UEFTUyBleHBvcnRlZEpXSy5kcSBpcyBwcml2YXRlS2V5SlNPTi5kcQorUEFTUyBleHBvcnRlZEpX
Sy5xaSBpcyBwcml2YXRlS2V5SlNPTi5xaQorUEFTUyBleHBvcnRlZEpXSy5vdGggaXMgcHJpdmF0
ZUtleUpTT04ub3RoCitQQVNTIGV4cG9ydGVkSldLLmFsZyBpcyBwcml2YXRlS2V5SlNPTi5hbGcK
K1BBU1MgZXhwb3J0ZWRKV0suZXh0IGlzIHRydWUKK1BBU1MgZXhwb3J0ZWRKV0sua2V5X29wcyBp
cyBbJ3NpZ24nLCAndmVyaWZ5J10KK1BBU1MgZXhwb3J0ZWRKV0sudXNlIGlzIHVuZGVmaW5lZAor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1wcml2YXRl
LWtleS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtZXhwb3J0LXBy
aXZhdGUta2V5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWMyZDg3MTgyNWFjYTUxOTBlNjZjMDgyMTFiZDBh
ZGYzZDNkMGVlMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRT
dWJ0bGUvcnNhLWV4cG9ydC1wcml2YXRlLWtleS5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24u
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3Qg
ZXhwb3J0aW5nIGEgcHJpdmF0ZSBSU0Ega2V5LiIpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKK3ZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOwor
CisvLyBFeGFtcGxlIGZyb20gSldLIHNwZWNpZmljYXRpb24uCit2YXIgcHJpdmF0ZUtleUpTT04g
PSB7CisgICAgImt0eSI6IlJTQSIsCisgICAgIm4iOiIwdng3YWdvZWJHY1FTdXVQaUxKWFpwdE45
bm5kclFtYlhFcHMyYWlBRmJXaE03OExoV3g0Y2JiZkFBdFZUODZ6d3UxUks3YVBGRnh1aERSMUw2
dFNvY19CSkVDUGViV0tSWGpCWkNpRlY0bjNva25qaE1zdG42NHRaXzJXLTVKc0dZNEhjNW45eUJY
QXJ3bDkzbHF0N19STjV3NkNmMGg0UXlRNXYtNjVZR2pRUjBfRkRXMlF2enFZMzY4UVFNaWNBdGFT
cXpzOEtKWmduWWI5YzdkMHpnZEFaSHp1NnFNUXZSTDVoYWpybjFuOTFDYk9wYklTRDA4cU5MeXJk
a3QtYkZUV2hBSTR2TVFGaDZXZVp1MGZNNGxGZDJOY1J3cjNYUGtzSU5IYVEtR194Qm5pSXFidzBM
czFqRjQ0LWNzRkN1ci1rRWdVOGF3YXBKektucURLZ3ciLAorICAgICJlIjoiQVFBQiIsCisgICAg
ImQiOiJYNGNUdGVKWV9nbjRGWVBzWEI4cmRYaXg1dndzZzFGTE41RTNFYUc2UkpvVkgtSExMS0Q5
TTdkeDVvbzdHVVJrbmNobnJSd2VVa0M3aFQ1ZkpMTTBXYkZBS05MV1kydnY3QjZOcVhTelV2eFQw
X1lTZnFpandwM1JUemxCYUN4V3A0ZG9GazVOMm84R3lfbkhOS3JvQURJa0o0NnBSVW9oc1h5d2JS
ZUFkWWFNd0ZzOXR2OGRfY1BWWTNpMDdhM3Q4TU42VE53bTBkU2F3bTl2NDdVaUNsM1NrNVppRzd4
b2pQTHU0c2JnMVUyang0SUJUTkJ6bmJKU3pGSEs2NmpUOGJna3Vxc2swR2pza0RKazE5WjRxd2p3
YnNubjRqMldCaWkzUkwtVXMybEdWa1k4ZmtGem1lMXowSGJJa2Z6MFk2bXFuT1l0cWMwWDRqZmNL
b0FDOFEiLAorICAgICJwIjoiODNpLTdJdk1HWG9NWENza3Y3M1RLcjg2MzdGaU83WjI3enY4b2o2
cGJXVVF5TFBRQlF4dFBWbndEMjBSLTYwZVREbUQydWpuTXQ1UG9xTXJtOFJmbU5oVldEdGpqTW1D
TWpPcFNYaWNGSGo3WE91VklZUXlxVldsV0VoNmROMzZHVlpZazkzTjhCYzl2WTQxeHk4QjlSenpP
R1ZRelh2TkV2bjdPMG5WYmZzIiwKKyAgICAicSI6IjNkZk9SOWN1WXEtMFMtbWtGTHpnSXRnTUVm
RnpCMnEzaFdlaE11RzBvQ3VxbmIzdm9iTHl1bXFqVlpRTzFkSXJkd2dUbkNkcFl6QmNPZlc1cjM3
MEFGWGppV2Z0X05HRWlvdm9uaXpoS3BvOVZWUzc4VHpGZ3hrSWRyZWNSZXpzWi0xa1lkX3MxcURi
eHRrREVnZkFJVEFHOUxVbkFEdW40dkljYjZ5ZWx4ayIsCisgICAgImRwIjoiRzRzUFhrYzZZYTl5
OG9KVzlfSUxqNHh1cHB1MGx6aV9IN1ZUa1M4eGo1U2RYM2NvRTBvaW1Zd3hJaTJlbVRBdWUwVU9h
NWRwZ0ZHeUJKNGM4dFEyVkY0MDJYUnVnS0RUUDhha1loRm81dEFBNzdRZV9ObXR1WVpjM0MzbTNJ
MjRHMkd2UjVzU0R4VXlBTjJ6cThMZm45RVVtczZyWTNPYjhZZWlLa1RpQmowIiwKKyAgICAiZHEi
OiJzOWxBSDlmZ2dCc29GUjhPYWMyUl9FMmd3MjgyclQya0dPQWh2SWxsRVRFMWVmckE2aHVVVXZN
ZkJjTXBuOGxxZVc2dnp6bllZNVNTUUY3cE1kQ19hZ0kzbkc4SWJwMUJVYjBKVWlyYVJOcVVmTGhj
UWJfZDlHRjREaDdlNzRXYlJzb2JSb251alRZTjF4Q2FQNlRPNjFqdldyWC1MMTh0eFh3NDk0UV9j
Z2siLAorICAgICJxaSI6Ikd5TV9wNkpyWHlTaXoxdG9GZ0tiV1YtSmRJM2pRNHlwdTlyYk1XeDNy
UUpCZm10MEZvWXpnVUlaRVZGRWNPcXdlbVJOODF6b0RBYWEtQmswS1dOR0RqSkhaRGREbUZoVzNB
TjdsSS1wdXhrX21IWkdKMTFyeHlSOE81NVhMU2UzU1BtUmZLd1pJNnlVMjRaeHZRS0ZZSXRkbGRV
S0d6TzZJYTZ6VEtoQVZSVSIsCisgICAgImFsZyI6IlJTMjU2IiwKKyAgICAia2lkIjoiMjAxMS0w
NC0yOSIKK30KK3ZhciBqd2tLZXlBc0FycmF5QnVmZmVyID0gYXNjaWlUb1VpbnQ4QXJyYXkoSlNP
Ti5zdHJpbmdpZnkocHJpdmF0ZUtleUpTT04pKTsKKworZGVidWcoIlxuSW1wb3J0aW5nIGEgSldL
IGtleS4uLiIpOworY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a0tleUFzQXJyYXlC
dWZmZXIsICJSU0FTU0EtUEtDUzEtdjFfNSIsIGV4dHJhY3RhYmxlLCBbJ3NpZ24nLCAndmVyaWZ5
J10pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAga2V5ID0gcmVzdWx0OworCisgICAgZGVi
dWcoIlxuRXhwb3J0aW5nIHRoZSBrZXkgYXMgSldLLi4uIik7CisgICAgcmV0dXJuIGNyeXB0by5z
dWJ0bGUuZXhwb3J0S2V5KCJqd2siLCBrZXkpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsK
KyAgICBleHBvcnRlZEpXSyA9IEpTT04ucGFyc2UoYnl0ZXNUb0FTQ0lJU3RyaW5nKHJlc3VsdCkp
OworCisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmt0eSIsICInUlNBJyIpOworICAgIHNob3Vs
ZEJlKCJleHBvcnRlZEpXSy5uIiwgInByaXZhdGVLZXlKU09OLm4iKTsKKyAgICBzaG91bGRCZSgi
ZXhwb3J0ZWRKV0suZSIsICJwcml2YXRlS2V5SlNPTi5lIik7CisgICAgc2hvdWxkQmUoImV4cG9y
dGVkSldLLmQiLCAicHJpdmF0ZUtleUpTT04uZCIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpX
Sy5wIiwgInByaXZhdGVLZXlKU09OLnAiKTsKKyAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sucSIs
ICJwcml2YXRlS2V5SlNPTi5xIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmRwIiwgInBy
aXZhdGVLZXlKU09OLmRwIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmRxIiwgInByaXZh
dGVLZXlKU09OLmRxIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLnFpIiwgInByaXZhdGVL
ZXlKU09OLnFpIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLm90aCIsICJwcml2YXRlS2V5
SlNPTi5vdGgiKTsKKyAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suYWxnIiwgInByaXZhdGVLZXlK
U09OLmFsZyIpOworICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5leHQiLCAidHJ1ZSIpOworICAg
IHNob3VsZEJlKCJleHBvcnRlZEpXSy5rZXlfb3BzIiwgIlsnc2lnbicsICd2ZXJpZnknXSIpOwor
ICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy51c2UiLCAidW5kZWZpbmVkIik7CisKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGItZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiMTJkZmYwYWJlNTMyZDkwZjQ0NzQ4ZDM2YTQ0NzNhNmRj
YTBjOTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L3JzYS1pbmRleGVkZGItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3Qgc3Rvcmlu
ZyBhIHByaXZhdGUgUlNBIGtleSBpbiBJbmRleGVkREIsIGFuZCByZXRyaWV2aW5nIGl0LgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZXRyaWV2ZWRLZXkudHlwZSBpcyAn
cHJpdmF0ZScKK1BBU1MgcmV0cmlldmVkS2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKK1BBU1MgcmV0
cmlldmVkS2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScKK1BBU1MgcmV0
cmlldmVkS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIGlzIDIwNDgKK1BBU1MgYnl0ZXNUb0hl
eFN0cmluZyhyZXRyaWV2ZWRLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAx
JworUEFTUyByZXRyaWV2ZWRLZXkudXNhZ2VzIGlzIFsic2lnbiIsICJ2ZXJpZnkiXQorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0
YWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1p
bmRleGVkZGItbm9uLWV4cG9ydGFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjNjk0YzIw
MmNkNzEzOGMyMTk4N2RlZWVkZjU4Nzk0YTI4MjQ2MGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3Qgc3RvcmluZyBhIHByaXZhdGUgUlNB
IGtleSBpbiBJbmRleGVkREIsIGFuZCByZXRyaWV2aW5nIGl0LgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyByZXRyaWV2ZWRLZXkudHlwZSBpcyAncHJpdmF0ZScKK1BBU1Mg
cmV0cmlldmVkS2V5LmV4dHJhY3RhYmxlIGlzIGZhbHNlCitQQVNTIHJldHJpZXZlZEtleS5hbGdv
cml0aG0ubmFtZSBpcyAnUlNBU1NBLVBLQ1MxLXYxXzUnCitQQVNTIHJldHJpZXZlZEtleS5hbGdv
cml0aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4CitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcocmV0cmll
dmVkS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKK1BBU1MgcmV0cmll
dmVkS2V5LnVzYWdlcyBpcyBbInNpZ24iLCAidmVyaWZ5Il0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
cnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUtcHJpdmF0ZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVk
ZGItbm9uLWV4cG9ydGFibGUtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWM2OTRj
MjAyY2Q3MTM4YzIxOTg3ZGVlZWRmNTg3OTRhMjgyNDYwYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJs
ZS1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0IHN0b3JpbmcgYSBw
cml2YXRlIFJTQSBrZXkgaW4gSW5kZXhlZERCLCBhbmQgcmV0cmlldmluZyBpdC4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmV0cmlldmVkS2V5LnR5cGUgaXMgJ3ByaXZh
dGUnCitQQVNTIHJldHJpZXZlZEtleS5leHRyYWN0YWJsZSBpcyBmYWxzZQorUEFTUyByZXRyaWV2
ZWRLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JTQVNTQS1QS0NTMS12MV81JworUEFTUyByZXRyaWV2
ZWRLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGggaXMgMjA0OAorUEFTUyBieXRlc1RvSGV4U3Ry
aW5nKHJldHJpZXZlZEtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcwMTAwMDEnCitQ
QVNTIHJldHJpZXZlZEtleS51c2FnZXMgaXMgWyJzaWduIiwgInZlcmlmeSJdCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxl
LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4
ZWRkYi1ub24tZXhwb3J0YWJsZS1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjYxOGNhYWQ3MjZj
NmVmMmZkZGIyYzRhY2UzMTk5ZmU2ODJmNjZiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS1wcml2
YXRlLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdD4KK2VuYWJsZVByaXZhdGVCcm93c2luZyA9IHRydWU7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5
cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLmh0bWwgYi9MYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jYmJkOWU3N2ExN2MxNzdmNjBkMjAzN2Y3M2JlNTkzNjgzM2M1Nzlh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Et
aW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnNhLWlu
ZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGIt
cHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3Jz
YS1pbmRleGVkZGItcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGIxMmRmZjBhYmU1
MzJkOTBmNDQ3NDhkMzZhNDQ3M2E2ZGNhMGM5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1wcml2YXRlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE1IEBACitUZXN0IHN0b3JpbmcgYSBwcml2YXRlIFJTQSBrZXkgaW4gSW5k
ZXhlZERCLCBhbmQgcmV0cmlldmluZyBpdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgcmV0cmlldmVkS2V5LnR5cGUgaXMgJ3ByaXZhdGUnCitQQVNTIHJldHJpZXZlZEtl
eS5leHRyYWN0YWJsZSBpcyB0cnVlCitQQVNTIHJldHJpZXZlZEtleS5hbGdvcml0aG0ubmFtZSBp
cyAnUlNBU1NBLVBLQ1MxLXYxXzUnCitQQVNTIHJldHJpZXZlZEtleS5hbGdvcml0aG0ubW9kdWx1
c0xlbmd0aCBpcyAyMDQ4CitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcocmV0cmlldmVkS2V5LmFsZ29y
aXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKK1BBU1MgcmV0cmlldmVkS2V5LnVzYWdl
cyBpcyBbInNpZ24iLCAidmVyaWZ5Il0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL3JzYS1pbmRleGVkZGItcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDRjZTg4
Yzc1NDE0ZDk3YWUwN2RlYzVhYWNlYWI5NWVlZGVmOTdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUuaHRtbApA
QCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
PgorZW5hYmxlUHJpdmF0ZUJyb3dzaW5nID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvcnNhLWluZGV4ZWRkYi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRl
eGVkZGIuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRk
Yi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjEyODZlMGY4Njc2ZGM0MjUyYmY3OWZlNzFjYWU3YmQyMmI2YTZj
MTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3Jz
YS1pbmRleGVkZGIuaHRtbApAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9yc2EtaW5kZXhlZGRiLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0
by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtZ2VuZXJhdGUtbm9uLWV4dHJhY3RhYmxlLWtleS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLWdlbmVy
YXRlLW5vbi1leHRyYWN0YWJsZS1rZXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3OWI0MjM5
Nzk1OWY2OWNiMDg3NDg0Y2JjNDUzNTYxYmYzZTQ1ODgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLWdlbmVyYXRlLW5vbi1leHRyYWN0
YWJsZS1rZXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK1Rlc3QgdGhhdCBldmVuIHdo
ZW4gbm9uLWV4dHJhY3RhYmlsaXR5IGlzIHJlcXVlc3RlZCwgdGhlIHB1YmxpYyBrZXkgaXMgc3Rp
bGwgZXh0cmFjdGFibGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitHZW5lcmF0
aW5nIGEga2V5IHBhaXIuLi4KK1BBU1Mga2V5UGFpci50b1N0cmluZygpIGlzICdbb2JqZWN0IEtl
eVBhaXJdJworUEFTUyBrZXlQYWlyLnB1YmxpY0tleS50eXBlIGlzICdwdWJsaWMnCitQQVNTIGtl
eVBhaXIucHVibGljS2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKK1BBU1Mga2V5UGFpci5wdWJsaWNL
ZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JTQS1PQUVQJworUEFTUyBrZXlQYWlyLnB1YmxpY0tleS5h
bGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4CitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcoa2V5
UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJworUEFT
UyBrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0uaGFzaCBpcyB1bmRlZmluZWQuCitQQVNTIGtl
eVBhaXIucHJpdmF0ZUtleS50eXBlIGlzICdwcml2YXRlJworUEFTUyBrZXlQYWlyLnByaXZhdGVL
ZXkuZXh0cmFjdGFibGUgaXMgZmFsc2UKK1BBU1Mga2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRo
bS5uYW1lIGlzICdSU0EtT0FFUCcKK1BBU1Mga2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5t
b2R1bHVzTGVuZ3RoIGlzIDIwNDgKK1BBU1MgYnl0ZXNUb0hleFN0cmluZyhrZXlQYWlyLnByaXZh
dGVLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJworUEFTUyBrZXlQYWly
LnByaXZhdGVLZXkuYWxnb3JpdGhtLmhhc2ggaXMgdW5kZWZpbmVkLgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtZ2VuZXJhdGUtbm9uLWV4dHJhY3RhYmxl
LWtleS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2FlcC1nZW5l
cmF0ZS1ub24tZXh0cmFjdGFibGUta2V5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzgyYTVjYjFjMGVhMTdm
OGM0ZWU1ZWYyNjQzM2FjY2U1ODZiN2I3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtZ2VuZXJhdGUtbm9uLWV4dHJhY3RhYmxlLWtl
eS5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBldmVuIHdoZW4gbm9uLWV4dHJhY3Rh
YmlsaXR5IGlzIHJlcXVlc3RlZCwgdGhlIHB1YmxpYyBrZXkgaXMgc3RpbGwgZXh0cmFjdGFibGUu
Iik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIgYWxnb3JpdGhtS2V5R2VuID0gewor
ICAgIG5hbWU6ICJSU0EtT0FFUCIsCisgICAgLy8gUnNhS2V5R2VuUGFyYW1zCisgICAgbW9kdWx1
c0xlbmd0aDogMjA0OCwKKyAgICBwdWJsaWNFeHBvbmVudDogbmV3IFVpbnQ4QXJyYXkoWzB4MDEs
IDB4MDAsIDB4MDFdKSwgIC8vIEVxdWl2YWxlbnQgdG8gNjU1MzcKK307Cit2YXIgbm9uRXh0cmFj
dGFibGUgPSBmYWxzZTsKKworZGVidWcoIkdlbmVyYXRpbmcgYSBrZXkgcGFpci4uLiIpOworY3J5
cHRvLnN1YnRsZS5nZW5lcmF0ZUtleShhbGdvcml0aG1LZXlHZW4sIG5vbkV4dHJhY3RhYmxlLCBb
XSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBrZXlQYWlyID0gcmVzdWx0OworICAgIHNo
b3VsZEJlKCJrZXlQYWlyLnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgS2V5UGFpcl0nIik7CisgICAg
c2hvdWxkQmUoImtleVBhaXIucHVibGljS2V5LnR5cGUiLCAiJ3B1YmxpYyciKTsKKyAgICBzaG91
bGRCZSgia2V5UGFpci5wdWJsaWNLZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIpOworICAgIHNob3Vs
ZEJlKCJrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0ubmFtZSIsICInUlNBLU9BRVAnIik7Cisg
ICAgc2hvdWxkQmUoImtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIiwg
IjIwNDgiKTsKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhrZXlQYWlyLnB1YmxpY0tl
eS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwgIicwMTAwMDEnIik7CisgICAgc2hvdWxkQmVV
bmRlZmluZWQoImtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5oYXNoIik7CisgICAgc2hvdWxk
QmUoImtleVBhaXIucHJpdmF0ZUtleS50eXBlIiwgIidwcml2YXRlJyIpOworICAgIHNob3VsZEJl
KCJrZXlQYWlyLnByaXZhdGVLZXkuZXh0cmFjdGFibGUiLCAiZmFsc2UiKTsKKyAgICBzaG91bGRC
ZSgia2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5uYW1lIiwgIidSU0EtT0FFUCciKTsKKyAg
ICBzaG91bGRCZSgia2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIiwg
IjIwNDgiKTsKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhrZXlQYWlyLnByaXZhdGVL
ZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSIsICInMDEwMDAxJyIpOworICAgIHNob3VsZEJl
VW5kZWZpbmVkKCJrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLmhhc2giKTsKKworICAgIGZp
bmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2FlcC1rZXktbWFuaXB1
bGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNh
LW9hZXAta2V5LW1hbmlwdWxhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmQ1YjM4Mzg2
ZGIyNTE5YTVmYjIyODgzMTBmMzM2Nzc5ZDAwZTVkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAta2V5LW1hbmlwdWxhdGlvbi1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw0NiBAQAorVGVzdCBnZW5lcmF0aW5nLCBpbXBvcnRpbmcgYW5k
IGV4cG9ydGluZyBSU0Ega2V5cyBmb3IgUlNBLU9BRVAuIFRlc3QgdGhhdCB0aGV5IGNhbid0IGJl
IHVzZWQgd2l0aCBhbm90aGVyIGFsZ29yaXRobS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK0dlbmVyYXRpbmcgYSBrZXkgcGFpci4uLgorUEFTUyBrZXlQYWlyLnRvU3RyaW5nKCkg
aXMgJ1tvYmplY3QgS2V5UGFpcl0nCitQQVNTIGtleVBhaXIucHVibGljS2V5LnR5cGUgaXMgJ3B1
YmxpYycKK1BBU1Mga2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JTQS1PQUVQ
JworUEFTUyBrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4
CitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcoa2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLnB1Ymxp
Y0V4cG9uZW50KSBpcyAnMDEwMDAxJworUEFTUyBrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0u
aGFzaCBpcyB1bmRlZmluZWQuCitQQVNTIGtleVBhaXIucHJpdmF0ZUtleS50eXBlIGlzICdwcml2
YXRlJworUEFTUyBrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JTQS1PQUVQ
JworUEFTUyBrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGggaXMgMjA0
OAorUEFTUyBieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ucHVi
bGljRXhwb25lbnQpIGlzICcwMTAwMDEnCitQQVNTIGtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0
aG0uaGFzaCBpcyB1bmRlZmluZWQuCisKK1Rlc3RpbmcgdGhhdCB0aGUga2V5cyBjYW4ndCBiZSB1
c2VkIHdpdGggZGlmZmVyZW50IGFsZ29yaXRobXMuLi4KK1BBU1MgY3J5cHRvLnN1YnRsZS5lbmNy
eXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtleVBhaXIucHJpdmF0ZUtleSwgaGV4U3Ry
aW5nVG9VaW50OEFycmF5KCIwMCIpKSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3Ig
KERPTSBFeGNlcHRpb24gOSk6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCitQQVNT
IGNyeXB0by5zdWJ0bGUuZW5jcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXlQYWly
LnB1YmxpY0tleSwgaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMCIpKSB0aHJldyBleGNlcHRpb24g
Tm90U3VwcG9ydGVkRXJyb3IgKERPTSBFeGNlcHRpb24gOSk6IFRoZSBvcGVyYXRpb24gaXMgbm90
IHN1cHBvcnRlZC4uCisKK1RyeWluZyB0byBleHBvcnQga2V5cyB0byByYXcuLi4KK1BBU1MgUHJv
bWlzZSByZWplY3RlZCBmb3IgZXhwb3J0aW5nIHB1YmxpYyBrZXkKK1BBU1MgUHJvbWlzZSByZWpl
Y3RlZCBmb3IgZXhwb3J0aW5nIHByaXZhdGUga2V5CisKK0V4cG9ydGluZyBwdWJsaWMga2V5IHRv
IEpXSy4uLgorUEFTUyBqd2tQdWJsaWNLZXkuYWxnIGlzICdSU0EtT0FFUCcKK1BBU1MgandrUHVi
bGljS2V5LmV4dCBpcyB0cnVlCitQQVNTIGp3a1B1YmxpY0tleS5rZXlfb3BzIGlzIFsnZW5jcnlw
dCcsICdkZWNyeXB0JywgJ3dyYXBLZXknLCAndW53cmFwS2V5J10KK1BBU1MgandrUHVibGljS2V5
LnVzZSBpcyB1bmRlZmluZWQKK1BBU1MgandrUHVibGljS2V5Lmt0eSBpcyAnUlNBJworUEFTUyBi
eXRlc1RvSGV4U3RyaW5nKEJhc2U2NFVSTC5wYXJzZShqd2tQdWJsaWNLZXkuZSkpIGlzICcwMTAw
MDEnCisKK0ltcG9ydGluZyBpdCBiYWNrLi4uCitQQVNTIGV4cG9ydGVkUHVibGljS2V5LnR5cGUg
aXMgJ3B1YmxpYycKK1BBU1MgZXhwb3J0ZWRQdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JT
QS1PQUVQJworUEFTUyBleHBvcnRlZFB1YmxpY0tleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBp
cyAyMDQ4CitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcoZXhwb3J0ZWRQdWJsaWNLZXkuYWxnb3JpdGht
LnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJworUEFTUyBleHBvcnRlZFB1YmxpY0tleS5hbGdv
cml0aG0uaGFzaC5uYW1lIGlzICdTSEEtMScKK1BBU1MgZXhwb3J0ZWRQdWJsaWNLZXkuZXh0cmFj
dGFibGUgaXMgdHJ1ZQorUEFTUyBleHBvcnRlZFB1YmxpY0tleS51c2FnZXMgaXMgWydkZWNyeXB0
JywnZW5jcnlwdCcsJ3Vud3JhcEtleScsJ3dyYXBLZXknXQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAta2V5LW1hbmlwdWxhdGlvbi5odG1sIGIvTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2FlcC1rZXktbWFuaXB1bGF0aW9uLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjdkMTE0OWU2ZWI5OTQzNDVlZjg2MDZlMWJjYmRkMjRlYzgyNDhjYQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAt
a2V5LW1hbmlwdWxhdGlvbi5odG1sCkBAIC0wLDAgKzEsODIgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgZ2VuZXJhdGluZywg
aW1wb3J0aW5nIGFuZCBleHBvcnRpbmcgUlNBIGtleXMgZm9yIFJTQS1PQUVQLiBUZXN0IHRoYXQg
dGhleSBjYW4ndCBiZSB1c2VkIHdpdGggYW5vdGhlciBhbGdvcml0aG0uIik7CisKK2pzVGVzdElz
QXN5bmMgPSB0cnVlOworCit2YXIgYWxnb3JpdGhtS2V5R2VuID0geworICAgIG5hbWU6ICJSU0Et
T0FFUCIsCisgICAgLy8gUnNhS2V5R2VuUGFyYW1zCisgICAgbW9kdWx1c0xlbmd0aDogMjA0OCwK
KyAgICBwdWJsaWNFeHBvbmVudDogbmV3IFVpbnQ4QXJyYXkoWzB4MDEsIDB4MDAsIDB4MDFdKSwg
IC8vIEVxdWl2YWxlbnQgdG8gNjU1MzcKK307Cit2YXIgZXh0cmFjdGFibGUgPSB0cnVlOworCitk
ZWJ1ZygiR2VuZXJhdGluZyBhIGtleSBwYWlyLi4uIik7CitjcnlwdG8uc3VidGxlLmdlbmVyYXRl
S2V5KGFsZ29yaXRobUtleUdlbiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Iiwg
IndyYXBLZXkiLCAidW53cmFwS2V5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAga2V5
UGFpciA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgia2V5UGFpci50b1N0cmluZygpIiwgIidbb2Jq
ZWN0IEtleVBhaXJdJyIpOworICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tleS50eXBlIiwg
IidwdWJsaWMnIik7CisgICAgc2hvdWxkQmUoImtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5u
YW1lIiwgIidSU0EtT0FFUCciKTsKKyAgICBzaG91bGRCZSgia2V5UGFpci5wdWJsaWNLZXkuYWxn
b3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4
U3RyaW5nKGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAx
MDAwMSciKTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgia2V5UGFpci5wdWJsaWNLZXkuYWxnb3Jp
dGhtLmhhc2giKTsKKyAgICBzaG91bGRCZSgia2V5UGFpci5wcml2YXRlS2V5LnR5cGUiLCAiJ3By
aXZhdGUnIik7CisgICAgc2hvdWxkQmUoImtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ubmFt
ZSIsICInUlNBLU9BRVAnIik7CisgICAgc2hvdWxkQmUoImtleVBhaXIucHJpdmF0ZUtleS5hbGdv
cml0aG0ubW9kdWx1c0xlbmd0aCIsICIyMDQ4Iik7CisgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhT
dHJpbmcoa2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAx
MDAwMSciKTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgia2V5UGFpci5wcml2YXRlS2V5LmFsZ29y
aXRobS5oYXNoIik7CisKKyAgICBkZWJ1ZygiXG5UZXN0aW5nIHRoYXQgdGhlIGtleXMgY2FuJ3Qg
YmUgdXNlZCB3aXRoIGRpZmZlcmVudCBhbGdvcml0aG1zLi4uIik7CisgICAgaXYgPSBoZXhTdHJp
bmdUb1VpbnQ4QXJyYXkoIjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmIik7CisgICAg
c2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuZW5jcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjog
aXZ9LCBrZXlQYWlyLnByaXZhdGVLZXksIGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAiKSknKTsK
KyAgICBzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRsZS5lbmNyeXB0KHtuYW1lOiAiYWVzLWNiYyIs
IGl2OiBpdn0sIGtleVBhaXIucHVibGljS2V5LCBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAwIikp
Jyk7CisKKyAgICBkZWJ1ZygiXG5UcnlpbmcgdG8gZXhwb3J0IGtleXMgdG8gcmF3Li4uIik7Cisg
ICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCdyYXcnLCBrZXlQYWlyLnB1YmxpY0tl
eSk7Cit9KS50aGVuKHVuZGVmaW5lZCwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgdGVzdFBhc3Nl
ZCgiUHJvbWlzZSByZWplY3RlZCBmb3IgZXhwb3J0aW5nIHB1YmxpYyBrZXkiKTsKKyAgICByZXR1
cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoJ3JhdycsIGtleVBhaXIucHJpdmF0ZUtleSk7Cit9
KS50aGVuKHVuZGVmaW5lZCwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgdGVzdFBhc3NlZCgiUHJv
bWlzZSByZWplY3RlZCBmb3IgZXhwb3J0aW5nIHByaXZhdGUga2V5Iik7CisKKyAgICBkZWJ1Zygi
XG5FeHBvcnRpbmcgcHVibGljIGtleSB0byBKV0suLi4iKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1
YnRsZS5leHBvcnRLZXkoImp3ayIsIGtleVBhaXIucHVibGljS2V5KTsKK30pLnRoZW4oZnVuY3Rp
b24ocmVzdWx0KSB7CisgICAgandrUHVibGljS2V5QXJyYXkgPSByZXN1bHQ7CisgICAgandrUHVi
bGljS2V5ID0gSlNPTi5wYXJzZShieXRlc1RvQVNDSUlTdHJpbmcoandrUHVibGljS2V5QXJyYXkp
KTsKKyAgICBzaG91bGRCZSgiandrUHVibGljS2V5LmFsZyIsICInUlNBLU9BRVAnIik7CisgICAg
c2hvdWxkQmUoImp3a1B1YmxpY0tleS5leHQiLCAidHJ1ZSIpOworICAgIHNob3VsZEJlKCJqd2tQ
dWJsaWNLZXkua2V5X29wcyIsICJbJ2VuY3J5cHQnLCAnZGVjcnlwdCcsICd3cmFwS2V5JywgJ3Vu
d3JhcEtleSddIik7CisgICAgc2hvdWxkQmUoImp3a1B1YmxpY0tleS51c2UiLCAidW5kZWZpbmVk
Iik7CisgICAgc2hvdWxkQmUoImp3a1B1YmxpY0tleS5rdHkiLCAiJ1JTQSciKTsKKyAgICBzaG91
bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhCYXNlNjRVUkwucGFyc2UoandrUHVibGljS2V5LmUpKSIs
ICInMDEwMDAxJyIpOworCisgICAgZGVidWcoIlxuSW1wb3J0aW5nIGl0IGJhY2suLi4iKTsKKyAg
ICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a1B1YmxpY0tleUFycmF5
LCBudWxsLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSIsICJ1
bndyYXBLZXkiXSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGV4cG9ydGVkUHVi
bGljS2V5ID0gcmVzdWx0OworICAgIHNob3VsZEJlKCJleHBvcnRlZFB1YmxpY0tleS50eXBlIiwg
IidwdWJsaWMnIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkUHVibGljS2V5LmFsZ29yaXRobS5u
YW1lIiwgIidSU0EtT0FFUCciKTsKKyAgICBzaG91bGRCZSgiZXhwb3J0ZWRQdWJsaWNLZXkuYWxn
b3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4
U3RyaW5nKGV4cG9ydGVkUHVibGljS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAx
MDAwMSciKTsKKyAgICBzaG91bGRCZSgiZXhwb3J0ZWRQdWJsaWNLZXkuYWxnb3JpdGhtLmhhc2gu
bmFtZSIsICInU0hBLTEnIik7CisgICAgc2hvdWxkQmUoImV4cG9ydGVkUHVibGljS2V5LmV4dHJh
Y3RhYmxlIiwgInRydWUiKTsKKyAgICBzaG91bGRCZSgiZXhwb3J0ZWRQdWJsaWNLZXkudXNhZ2Vz
IiwgIlsnZGVjcnlwdCcsJ2VuY3J5cHQnLCd1bndyYXBLZXknLCd3cmFwS2V5J10iKTsKKworICAg
IGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2FlcC1wbGFpbnRl
eHQtbGVuZ3RoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUv
cnNhLW9hZXAtcGxhaW50ZXh0LWxlbmd0aC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmNiNmNh
NDU4NzQ3NjE3ZTMwNGJlMTlhYzNkNTE4NjhkNDI3MWRmNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtcGxhaW50ZXh0LWxlbmd0aC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCB3aGF0IGhhcHBlbnMgd2hlbiB0cnlp
bmcgdG8gZW5jcnlwdCBhIHRvbyBsYXJnZSBwbGFpbiB0ZXh0IHdpdGggUlNBLU9BRVAuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitJbXBvcnRpbmcgUlNBIGtleXMuLi4KK0VuY3J5
cHRpbmcgYSAyMTQgYnl0ZSBidWZmZXIgd2l0aCBSU0EtT0FFUCBTSEEtMSwgMjA0OCBiaXQga2V5
Li4uCitQQVNTIFN1Y2NlZWRlZAorRW5jcnlwdGluZyBhIDIxNSBieXRlIGJ1ZmZlci4uLgorUEFT
UyBSZWplY3RlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9h
ZXAtcGxhaW50ZXh0LWxlbmd0aC5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9yc2Etb2FlcC1wbGFpbnRleHQtbGVuZ3RoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDFmMjEzYjFlYmM3
YjlhM2M5ZTY4NzJiMDM1ZDg4NjQyYzgxOWUzZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtcGxhaW50ZXh0LWxlbmd0aC5odG1sCkBA
IC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0
PgorZGVzY3JpcHRpb24oIlRlc3Qgd2hhdCBoYXBwZW5zIHdoZW4gdHJ5aW5nIHRvIGVuY3J5cHQg
YSB0b28gbGFyZ2UgcGxhaW4gdGV4dCB3aXRoIFJTQS1PQUVQLiIpOworCitqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKwordmFyIHB1YmxpY0tleUpTT04gPSB7CisgICAga3R5OiAiUlNBIiwKKyAgICBh
bGc6ICJSU0EtT0FFUCIsCisgICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhR
TGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxT
SElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1
TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFP
Z3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdi
R3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAw
Mm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCisgICAgZTogIkFRQUIiCit9OworCit2YXIgcHJp
dmF0ZUtleUpTT04gPSB7CisgICAga3R5OiAiUlNBIiwKKyAgICBhbGc6ICJSU0EtT0FFUCIsCisg
ICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fq
b0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVm
dFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRr
Q3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIw
eFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVs
TldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMt
X0NlZWNDdyIsCisgICAgZTogIkFRQUIiLAorICAgIGQ6ICJlTkxTMzdhQ3o3UlhTTlBEX0R0TEJK
Nmo1VDhjU3hkelJCQ2pQYUk2V2NHcUpwMTZscTNVVHd1b0RMQXFsQTlvR1ltMjM4ZHNJV3B1dWNQ
X2xRdGJXZS03U3B4b0k2X3ZtWUdmN1lWVUh2MS1ERjlxaU9tU3JNbWR4TW5WT3pZWFk4UmFUNnRo
UGpuX0o1Y2ZMVjJ4SV9Md3NyTXRtcGRTeU5sZ1gwelRVaHd0dWFoZ0FLTUVDaFlqSDJFbmpIZEh3
NnNZMi13QXBkY1FJN1VMRTBvbzVSemJRWnBtdWhjTjloaUJjMEwzaGhGMHFvNTBtYmwwMl82NV9H
UTdEcFZrWEJ4TmdSQkx6bFBhYm16ekcyb0FoZmVmTGdZbVNDMW9wYUNrWEU2dlJXUU5XTkw0NVJa
TlpGWU0zdW9KZ2hPTXFHZW9jTTBCcGpkQ2hIclBPbEZ2U1EiLAorICAgIHA6ICI0bWlUdUFqS01l
SDV1SjVLQjM5N1FVd2hia1lFZ1NiY0EybWlmbVNrdkUyMDE4Z2I1NXFrQkhLMWVWcnlmMV9tNDNM
TmxjNk9fYWs2Z2Z6ZFpJWnZTNU5DR2pQbDBxMDlwbFVwdThxRk9Tc3BCd0E2N3FHSDc2bEZsWkxu
X2Q0eWdsUzd3ZkxydTRfNVlzOHFMTHMtRHFWTHZpd3Bvc09ueXlXcXdNNUFYcDAiLAorICAgIHE6
ICJ4SFlyemtpdnRtbnpfc0djaG5XR2MwcS1wRE9rS2ljcHRScHYycE1GSUlYeG5GWDVhTWVFWEla
alZ1alh0d1V5MVVsRklOMkdaSlN2eTVLSjc5bXVfWHlObkZITXplZEgtQTNlZTN1OGgxVVVyWkYt
dlV1MV9lNFVfeDY3Tk4xZGVkelVTS3luTjdwRmwzT2t1U2hNQldHVi1jd3pPUGRjVkFmVnVabHhV
TWMiLAorICAgIGRwOiAiZkJ6RHpZRFVCbUJRR29wN0huMGR2Zl9UMjdWNlJxcGN0V28wNzRDUVpj
RmJQMmF0RlZ0S1NqM3ZpV1QzeGlkMlZIemNnaURIZGZwTTNuRVZsRU8xd3dJb25HQ1N2ZGpHRU9a
aWlGVk9qclpBT1Z4QThndU9qeXlGdnFiWGtlMDZWd1BJSVZ2ZktlU1UyenVoYlBfXzF0dDZGX2Z4
b3c0S2IyeG9uR1QwR0drIiwKKyAgICBkcTogImptRTJEaUlQZGh3RGdMWEFRcElhQnFRODFiTzNY
ZlZUX0xSVUxBd3d3d2xQdVFWMTQ4SDA0emxoOVRKNlkyR1pIWW9rVjFVMGVPQnBKeGZrYjdkTFl0
cEpwdWlCalJmNHlJVUVvR2xra0lfUWxKbkZTRnItWWpHUmRmTkhxV0JreGxTTVpMNzcwUjltSUFU
bmRHa0g3ejV4LXI5S3dCWkZDNEZDRzJoZ196RSIsCisgICAgcWk6ICJZQ1hfcEx3Yk1CQTFUaFZI
MFdjd21ueXRxTmNyTUNFd1RtN0J5QTJlVTZuV2JRclVMdmY3bTlfa3pmTFVjanNucEFWbEJRRzVK
TVhNeTBTcTRwdHdieXdzYTUtRzhLQU9PT1IyTDN2NGhDLUV5czlmdGdGTV8zaTBvNDBlZVFINGIz
aGFQYm50ckllTWc4SXpsT3VWWUtmOS0yUXVLRG9XZVJkZDdOc2R4VGsiCit9OwordmFyIGVuY3J5
cHRBbGdvcml0aG0gPSB7bmFtZTogIlJTQS1PQUVQIiwgaGFzaDogInNoYS0xIn07Cit2YXIgZXh0
cmFjdGFibGUgPSB0cnVlOwordmFyIG5vbkV4dHJhY3RhYmxlID0gZmFsc2U7CisKK2RlYnVnKCJJ
bXBvcnRpbmcgUlNBIGtleXMuLi4iKTsKK2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBh
c2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShwdWJsaWNLZXlKU09OKSksIG51bGwsIGV4
dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkg
eworICAgIHB1YmxpY0tleSA9IHJlc3VsdDsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBv
cnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KHByaXZhdGVLZXlK
U09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKTsKK30pLnRo
ZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgcHJpdmF0ZUtleSA9IHJlc3VsdDsKKworICAgIGRl
YnVnKCJFbmNyeXB0aW5nIGEgMjE0IGJ5dGUgYnVmZmVyIHdpdGggUlNBLU9BRVAgU0hBLTEsIDIw
NDggYml0IGtleS4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmVuY3J5cHQoe25hbWU6
ICJSU0EtT0FFUCIsIGhhc2g6ICJTSEEtMSJ9LCBwdWJsaWNLZXksIG5ldyBVaW50OEFycmF5KDIx
NCkpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICB0ZXN0UGFzc2VkKCJTdWNjZWVk
ZWQiKTsKKyAgICBkZWJ1ZygiRW5jcnlwdGluZyBhIDIxNSBieXRlIGJ1ZmZlci4uLiIpOworICAg
IHJldHVybiBjcnlwdG8uc3VidGxlLmVuY3J5cHQoe25hbWU6ICJSU0EtT0FFUCIsIGhhc2g6ICJT
SEEtMSJ9LCBwdWJsaWNLZXksIG5ldyBVaW50OEFycmF5KDIxNSkpOworfSkudGhlbihmdW5jdGlv
bihyZXN1bHQpIHsKKyAgICB0ZXN0RmFpbGVkKCJTdWNjZWVkZWQiKTsKKyAgICBmaW5pc2hKU1Rl
c3QoKTsKK30sIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHRlc3RQYXNzZWQoIlJlamVjdGVkIik7
CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLXdy
YXAtdW53cmFwLWFlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3Vi
dGxlL3JzYS1vYWVwLXdyYXAtdW53cmFwLWFlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Y5
NThkNjI2YjVjYjk2ZDcwN2M3MGEzNjViYTI5Mjk5Nzc0MzlhZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtd3JhcC11bndyYXAtYWVz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM0IEBACitUZXN0IHdyYXBwaW5nIGFuZCB1bndyYXBw
aW5nIEFFUyBrZXlzIHdpdGggUlNBLU9BRVAuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitJbXBvcnRpbmcgUlNBIGtleXMuLi4KK0ltcG9ydGluZyBhbiBBRVMga2V5Li4uCitXcmFw
cGluZyBpdC4uLgorUEFTUyB3cmFwcGVkS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgQXJyYXlC
dWZmZXJdJworVW53cmFwcGluZyBpdC4uLgorUEFTUyB1bndyYXBwZWRLZXkudG9TdHJpbmcoKSBp
cyAnW29iamVjdCBLZXldJworUEFTUyB1bndyYXBwZWRLZXkudHlwZSBpcyAnc2VjcmV0JworUEFT
UyB1bndyYXBwZWRLZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQorUEFTUyB1bndyYXBwZWRLZXkuYWxn
b3JpdGhtLm5hbWUgaXMgJ0FFUy1DQkMnCitQQVNTIHVud3JhcHBlZEtleS5hbGdvcml0aG0ubGVu
Z3RoIGlzIDI1NgorUEFTUyB1bndyYXBwZWRLZXkudXNhZ2VzIGlzIFsnZGVjcnlwdCcsICdlbmNy
eXB0J10KK0V4cG9ydGluZyBpdC4uLgorUEFTUyBieXRlc1RvSGV4U3RyaW5nKHVud3JhcHBlZEtl
eURhdGEpIGlzIGJ5dGVzVG9IZXhTdHJpbmcoYWVzS2V5RGF0YSkKKworV3JhcHBpbmcgdGhlIHNh
bWUga2V5IGFzIEpXSy4uLgorUEFTUyB3cmFwcGVkS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3Qg
QXJyYXlCdWZmZXJdJworVW53cmFwcGluZyBpdC4uLgorUEFTUyB1bndyYXBwZWRLZXkudG9TdHJp
bmcoKSBpcyAnW29iamVjdCBLZXldJworUEFTUyB1bndyYXBwZWRLZXkudHlwZSBpcyAnc2VjcmV0
JworUEFTUyB1bndyYXBwZWRLZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQorUEFTUyB1bndyYXBwZWRL
ZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0FFUy1DQkMnCitQQVNTIHVud3JhcHBlZEtleS5hbGdvcml0
aG0ubGVuZ3RoIGlzIDI1NgorUEFTUyB1bndyYXBwZWRLZXkudXNhZ2VzIGlzIFsnZGVjcnlwdCcs
ICdlbmNyeXB0J10KK0V4cG9ydGluZyBpdC4uLgorUEFTUyBieXRlc1RvSGV4U3RyaW5nKHVud3Jh
cHBlZEtleURhdGEpIGlzIGJ5dGVzVG9IZXhTdHJpbmcoYWVzS2V5RGF0YSkKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLXdyYXAtdW53cmFwLWFlcy5odG1s
IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2FlcC13cmFwLXVud3JhcC1h
ZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xM2U2NWM1MDNkMTg4NTE5MGRjODI1OGQ1MjgyN2Y4ODkyMjg1
ODEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9y
c2Etb2FlcC13cmFwLXVud3JhcC1hZXMuaHRtbApAQCAtMCwwICsxLDEwMyBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCB3cmFw
cGluZyBhbmQgdW53cmFwcGluZyBBRVMga2V5cyB3aXRoIFJTQS1PQUVQLiIpOworCitqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKwordmFyIHB1YmxpY0tleUpTT04gPSB7CisgICAga3R5OiAiUlNBIiwK
KyAgICBhbGc6ICJSU0EtT0FFUCIsCisgICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhX
YXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6
Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9S
blIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVu
Q1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3
T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlx
NzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCisgICAgZTogIkFRQUIiCit9OworCit2
YXIgcHJpdmF0ZUtleUpTT04gPSB7CisgICAga3R5OiAiUlNBIiwKKyAgICBhbGc6ICJSU0EtT0FF
UCIsCisgICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5
alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxH
aUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjlt
d0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0
T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1
bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4
TUxfaTMtX0NlZWNDdyIsCisgICAgZTogIkFRQUIiLAorICAgIGQ6ICJlTkxTMzdhQ3o3UlhTTlBE
X0R0TEJKNmo1VDhjU3hkelJCQ2pQYUk2V2NHcUpwMTZscTNVVHd1b0RMQXFsQTlvR1ltMjM4ZHNJ
V3B1dWNQX2xRdGJXZS03U3B4b0k2X3ZtWUdmN1lWVUh2MS1ERjlxaU9tU3JNbWR4TW5WT3pZWFk4
UmFUNnRoUGpuX0o1Y2ZMVjJ4SV9Md3NyTXRtcGRTeU5sZ1gwelRVaHd0dWFoZ0FLTUVDaFlqSDJF
bmpIZEh3NnNZMi13QXBkY1FJN1VMRTBvbzVSemJRWnBtdWhjTjloaUJjMEwzaGhGMHFvNTBtYmww
Ml82NV9HUTdEcFZrWEJ4TmdSQkx6bFBhYm16ekcyb0FoZmVmTGdZbVNDMW9wYUNrWEU2dlJXUU5X
Tkw0NVJaTlpGWU0zdW9KZ2hPTXFHZW9jTTBCcGpkQ2hIclBPbEZ2U1EiLAorICAgIHA6ICI0bWlU
dUFqS01lSDV1SjVLQjM5N1FVd2hia1lFZ1NiY0EybWlmbVNrdkUyMDE4Z2I1NXFrQkhLMWVWcnlm
MV9tNDNMTmxjNk9fYWs2Z2Z6ZFpJWnZTNU5DR2pQbDBxMDlwbFVwdThxRk9Tc3BCd0E2N3FHSDc2
bEZsWkxuX2Q0eWdsUzd3ZkxydTRfNVlzOHFMTHMtRHFWTHZpd3Bvc09ueXlXcXdNNUFYcDAiLAor
ICAgIHE6ICJ4SFlyemtpdnRtbnpfc0djaG5XR2MwcS1wRE9rS2ljcHRScHYycE1GSUlYeG5GWDVh
TWVFWElaalZ1alh0d1V5MVVsRklOMkdaSlN2eTVLSjc5bXVfWHlObkZITXplZEgtQTNlZTN1OGgx
VVVyWkYtdlV1MV9lNFVfeDY3Tk4xZGVkelVTS3luTjdwRmwzT2t1U2hNQldHVi1jd3pPUGRjVkFm
VnVabHhVTWMiLAorICAgIGRwOiAiZkJ6RHpZRFVCbUJRR29wN0huMGR2Zl9UMjdWNlJxcGN0V28w
NzRDUVpjRmJQMmF0RlZ0S1NqM3ZpV1QzeGlkMlZIemNnaURIZGZwTTNuRVZsRU8xd3dJb25HQ1N2
ZGpHRU9aaWlGVk9qclpBT1Z4QThndU9qeXlGdnFiWGtlMDZWd1BJSVZ2ZktlU1UyenVoYlBfXzF0
dDZGX2Z4b3c0S2IyeG9uR1QwR0drIiwKKyAgICBkcTogImptRTJEaUlQZGh3RGdMWEFRcElhQnFR
ODFiTzNYZlZUX0xSVUxBd3d3d2xQdVFWMTQ4SDA0emxoOVRKNlkyR1pIWW9rVjFVMGVPQnBKeGZr
YjdkTFl0cEpwdWlCalJmNHlJVUVvR2xra0lfUWxKbkZTRnItWWpHUmRmTkhxV0JreGxTTVpMNzcw
UjltSUFUbmRHa0g3ejV4LXI5S3dCWkZDNEZDRzJoZ196RSIsCisgICAgcWk6ICJZQ1hfcEx3Yk1C
QTFUaFZIMFdjd21ueXRxTmNyTUNFd1RtN0J5QTJlVTZuV2JRclVMdmY3bTlfa3pmTFVjanNucEFW
bEJRRzVKTVhNeTBTcTRwdHdieXdzYTUtRzhLQU9PT1IyTDN2NGhDLUV5czlmdGdGTV8zaTBvNDBl
ZVFINGIzaGFQYm50ckllTWc4SXpsT3VWWUtmOS0yUXVLRG9XZVJkZDdOc2R4VGsiCit9OwordmFy
IHdyYXBBbGdvcml0aG0gPSB7bmFtZTogIlJTQS1PQUVQIiwgaGFzaDogInNoYS0xIn07Cit2YXIg
ZXh0cmFjdGFibGUgPSB0cnVlOwordmFyIG5vbkV4dHJhY3RhYmxlID0gZmFsc2U7CisKK2RlYnVn
KCJJbXBvcnRpbmcgUlNBIGtleXMuLi4iKTsKK2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2si
LCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShwdWJsaWNLZXlKU09OKSksIG51bGws
IGV4dHJhY3RhYmxlLCBbIndyYXBLZXkiLCAidW53cmFwS2V5Il0pLnRoZW4oZnVuY3Rpb24ocmVz
dWx0KSB7CisgICAgcHVibGljS2V5ID0gcmVzdWx0OworICAgIHJldHVybiBjcnlwdG8uc3VidGxl
LmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHJpdmF0
ZUtleUpTT04pKSwgbnVsbCwgZXh0cmFjdGFibGUsIFsid3JhcEtleSIsICJ1bndyYXBLZXkiXSk7
Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHByaXZhdGVLZXkgPSByZXN1bHQ7CisK
KyAgICBkZWJ1ZygiSW1wb3J0aW5nIGFuIEFFUyBrZXkuLi4iKTsKKyAgICBhZXNLZXlEYXRhID0g
aGV4U3RyaW5nVG9VaW50OEFycmF5KCI2MDNkZWIxMDE1Y2E3MWJlMmI3M2FlZjA4NTdkNzc4MTFm
MzUyYzA3M2I2MTA4ZDcyZDk4MTBhMzA5MTRkZmY0Iik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0
bGUuaW1wb3J0S2V5KCJyYXciLCBhZXNLZXlEYXRhLCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBb
ImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ3cmFwS2V5IiwgInVud3JhcEtleSJdKQorfSkudGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKKyAgICBhZXNLZXkgPSByZXN1bHQ7CisgICAgZGVidWcoIldyYXBw
aW5nIGl0Li4uIik7CisKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS53cmFwS2V5KCJyYXciLCBh
ZXNLZXksIHB1YmxpY0tleSwgd3JhcEFsZ29yaXRobSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3Vs
dCkgeworICAgIHdyYXBwZWRLZXkgPSByZXN1bHQ7CisgICAgc2hvdWxkQmUoIndyYXBwZWRLZXku
dG9TdHJpbmcoKSIsICInW29iamVjdCBBcnJheUJ1ZmZlcl0nIik7CisKKyAgICBkZWJ1ZygiVW53
cmFwcGluZyBpdC4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLnVud3JhcEtleSgicmF3
Iiwgd3JhcHBlZEtleSwgcHJpdmF0ZUtleSwgd3JhcEFsZ29yaXRobSwgImFlcy1jYmMiLCBleHRy
YWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3Vs
dCkgeworICAgIHVud3JhcHBlZEtleSA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgidW53cmFwcGVk
S2V5LnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgS2V5XSciKTsKKyAgICBzaG91bGRCZSgidW53cmFw
cGVkS2V5LnR5cGUiLCAiJ3NlY3JldCciKTsKKyAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5LmV4
dHJhY3RhYmxlIiwgInRydWUiKTsKKyAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5LmFsZ29yaXRo
bS5uYW1lIiwgIidBRVMtQ0JDJyIpOworICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkuYWxnb3Jp
dGhtLmxlbmd0aCIsICIyNTYiKTsKKyAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5LnVzYWdlcyIs
ICJbJ2RlY3J5cHQnLCAnZW5jcnlwdCddIik7CisKKyAgICBkZWJ1ZygiRXhwb3J0aW5nIGl0Li4u
Iik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJyYXciLCB1bndyYXBwZWRL
ZXkpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICB1bndyYXBwZWRLZXlEYXRhID0g
cmVzdWx0OworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKHVud3JhcHBlZEtleURhdGEp
IiwgImJ5dGVzVG9IZXhTdHJpbmcoYWVzS2V5RGF0YSkiKTsKKworICAgIGRlYnVnKCJcbldyYXBw
aW5nIHRoZSBzYW1lIGtleSBhcyBKV0suLi4iKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS53
cmFwS2V5KCJqd2siLCBhZXNLZXksIHB1YmxpY0tleSwgd3JhcEFsZ29yaXRobSk7Cit9KS50aGVu
KGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHdyYXBwZWRLZXkgPSByZXN1bHQ7CisgICAgc2hvdWxk
QmUoIndyYXBwZWRLZXkudG9TdHJpbmcoKSIsICInW29iamVjdCBBcnJheUJ1ZmZlcl0nIik7CisK
KyAgICBkZWJ1ZygiVW53cmFwcGluZyBpdC4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxl
LnVud3JhcEtleSgiandrIiwgd3JhcHBlZEtleSwgcHJpdmF0ZUtleSwgd3JhcEFsZ29yaXRobSwg
ImFlcy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSk7Cit9KS50aGVu
KGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHVud3JhcHBlZEtleSA9IHJlc3VsdDsKKyAgICBzaG91
bGRCZSgidW53cmFwcGVkS2V5LnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgS2V5XSciKTsKKyAgICBz
aG91bGRCZSgidW53cmFwcGVkS2V5LnR5cGUiLCAiJ3NlY3JldCciKTsKKyAgICBzaG91bGRCZSgi
dW53cmFwcGVkS2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKKyAgICBzaG91bGRCZSgidW53cmFw
cGVkS2V5LmFsZ29yaXRobS5uYW1lIiwgIidBRVMtQ0JDJyIpOworICAgIHNob3VsZEJlKCJ1bndy
YXBwZWRLZXkuYWxnb3JpdGhtLmxlbmd0aCIsICIyNTYiKTsKKyAgICBzaG91bGRCZSgidW53cmFw
cGVkS2V5LnVzYWdlcyIsICJbJ2RlY3J5cHQnLCAnZW5jcnlwdCddIik7CisKKyAgICBkZWJ1Zygi
RXhwb3J0aW5nIGl0Li4uIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCJy
YXciLCB1bndyYXBwZWRLZXkpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICB1bndy
YXBwZWRLZXlEYXRhID0gcmVzdWx0OworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKHVu
d3JhcHBlZEtleURhdGEpIiwgImJ5dGVzVG9IZXhTdHJpbmcoYWVzS2V5RGF0YSkiKTsKKyAgICBm
aW5pc2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLXBvc3RNZXNzYWdlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLXBvc3RNZXNz
YWdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNTM1OTJlOGFjZGIzZWM1MzdhODM1MGEyMzE5
ODgxNzdkYjI0ZGUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9yc2EtcG9zdE1lc3NhZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzIgQEAKK1Rl
c3Qgc2VuZGluZyBjcnlwdG8ga2V5cyB2aWEgcG9zdE1lc3NhZ2UuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitLZXkgcmVjZWl2ZWQgaW4gYSBtZXNzYWdlOgorUEFTUyBrZXkudHlw
ZSBpcyAncHJpdmF0ZScKK1BBU1Mga2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKK1BBU1Mga2V5LmFs
Z29yaXRobS5uYW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScKK1BBU1Mga2V5LmFsZ29yaXRobS5t
b2R1bHVzTGVuZ3RoIGlzIDIwNDgKK1BBU1MgYnl0ZXNUb0hleFN0cmluZyhrZXkuYWxnb3JpdGht
LnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJworUEFTUyBrZXkudXNhZ2VzIGlzIFsic2lnbiIs
ICJ2ZXJpZnkiXQorCitFeHBvcnRlZCBiYWNrIHRvIEpXSzoKK1BBU1MgZXhwb3J0ZWRKV0sua3R5
IGlzICdSU0EnCitQQVNTIGV4cG9ydGVkSldLLmFsZyBpcyAnUlMyNTYnCitQQVNTIGV4cG9ydGVk
SldLLmV4dCBpcyB0cnVlCitQQVNTIGV4cG9ydGVkSldLLmtleV9vcHMgaXMgWydzaWduJywndmVy
aWZ5J10KK1BBU1MgZXhwb3J0ZWRKV0sudXNlIGlzIHVuZGVmaW5lZAorUEFTUyBleHBvcnRlZEpX
Sy5uIGlzIHByaXZhdGVLZXlKU09OLm4KK1BBU1MgZXhwb3J0ZWRKV0suZSBpcyBwcml2YXRlS2V5
SlNPTi5lCitQQVNTIGV4cG9ydGVkSldLLmQgaXMgcHJpdmF0ZUtleUpTT04uZAorUEFTUyBleHBv
cnRlZEpXSy5wIGlzIHByaXZhdGVLZXlKU09OLnAKK1BBU1MgZXhwb3J0ZWRKV0sucSBpcyBwcml2
YXRlS2V5SlNPTi5xCitQQVNTIGV4cG9ydGVkSldLLmRwIGlzIHByaXZhdGVLZXlKU09OLmRwCitQ
QVNTIGV4cG9ydGVkSldLLmRxIGlzIHByaXZhdGVLZXlKU09OLmRxCitQQVNTIGV4cG9ydGVkSldL
LnFpIGlzIHByaXZhdGVLZXlKU09OLnFpCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL3JzYS1wb3N0TWVzc2FnZS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9yc2EtcG9zdE1lc3NhZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzNlYTdlNGJjZGMwMWFm
NTE2NjY5MmZiNjJhNmUyNGRhYTcwNTk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtcG9zdE1lc3NhZ2UuaHRtbApAQCAtMCwwICsxLDY2IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3Qgc2VuZGluZyBjcnlwdG8ga2V5cyB2
aWEgcG9zdE1lc3NhZ2UuIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIgcHJpdmF0
ZUtleUpTT04gPSB7CisgICAga3R5OiAiUlNBIiwKKyAgICBhbGc6ICJSUzI1NiIsCisgICAgbjog
InJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVB
V2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhi
SEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdk
QmktNzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBT
ejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6
bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWND
dyIsCisgICAgZTogIkFRQUIiLAorICAgIGQ6ICJlTkxTMzdhQ3o3UlhTTlBEX0R0TEJKNmo1VDhj
U3hkelJCQ2pQYUk2V2NHcUpwMTZscTNVVHd1b0RMQXFsQTlvR1ltMjM4ZHNJV3B1dWNQX2xRdGJX
ZS03U3B4b0k2X3ZtWUdmN1lWVUh2MS1ERjlxaU9tU3JNbWR4TW5WT3pZWFk4UmFUNnRoUGpuX0o1
Y2ZMVjJ4SV9Md3NyTXRtcGRTeU5sZ1gwelRVaHd0dWFoZ0FLTUVDaFlqSDJFbmpIZEh3NnNZMi13
QXBkY1FJN1VMRTBvbzVSemJRWnBtdWhjTjloaUJjMEwzaGhGMHFvNTBtYmwwMl82NV9HUTdEcFZr
WEJ4TmdSQkx6bFBhYm16ekcyb0FoZmVmTGdZbVNDMW9wYUNrWEU2dlJXUU5XTkw0NVJaTlpGWU0z
dW9KZ2hPTXFHZW9jTTBCcGpkQ2hIclBPbEZ2U1EiLAorICAgIHA6ICI0bWlUdUFqS01lSDV1SjVL
QjM5N1FVd2hia1lFZ1NiY0EybWlmbVNrdkUyMDE4Z2I1NXFrQkhLMWVWcnlmMV9tNDNMTmxjNk9f
YWs2Z2Z6ZFpJWnZTNU5DR2pQbDBxMDlwbFVwdThxRk9Tc3BCd0E2N3FHSDc2bEZsWkxuX2Q0eWds
Uzd3ZkxydTRfNVlzOHFMTHMtRHFWTHZpd3Bvc09ueXlXcXdNNUFYcDAiLAorICAgIHE6ICJ4SFly
emtpdnRtbnpfc0djaG5XR2MwcS1wRE9rS2ljcHRScHYycE1GSUlYeG5GWDVhTWVFWElaalZ1alh0
d1V5MVVsRklOMkdaSlN2eTVLSjc5bXVfWHlObkZITXplZEgtQTNlZTN1OGgxVVVyWkYtdlV1MV9l
NFVfeDY3Tk4xZGVkelVTS3luTjdwRmwzT2t1U2hNQldHVi1jd3pPUGRjVkFmVnVabHhVTWMiLAor
ICAgIGRwOiAiZkJ6RHpZRFVCbUJRR29wN0huMGR2Zl9UMjdWNlJxcGN0V28wNzRDUVpjRmJQMmF0
RlZ0S1NqM3ZpV1QzeGlkMlZIemNnaURIZGZwTTNuRVZsRU8xd3dJb25HQ1N2ZGpHRU9aaWlGVk9q
clpBT1Z4QThndU9qeXlGdnFiWGtlMDZWd1BJSVZ2ZktlU1UyenVoYlBfXzF0dDZGX2Z4b3c0S2Iy
eG9uR1QwR0drIiwKKyAgICBkcTogImptRTJEaUlQZGh3RGdMWEFRcElhQnFRODFiTzNYZlZUX0xS
VUxBd3d3d2xQdVFWMTQ4SDA0emxoOVRKNlkyR1pIWW9rVjFVMGVPQnBKeGZrYjdkTFl0cEpwdWlC
alJmNHlJVUVvR2xra0lfUWxKbkZTRnItWWpHUmRmTkhxV0JreGxTTVpMNzcwUjltSUFUbmRHa0g3
ejV4LXI5S3dCWkZDNEZDRzJoZ196RSIsCisgICAgcWk6ICJZQ1hfcEx3Yk1CQTFUaFZIMFdjd21u
eXRxTmNyTUNFd1RtN0J5QTJlVTZuV2JRclVMdmY3bTlfa3pmTFVjanNucEFWbEJRRzVKTVhNeTBT
cTRwdHdieXdzYTUtRzhLQU9PT1IyTDN2NGhDLUV5czlmdGdGTV8zaTBvNDBlZVFINGIzaGFQYm50
ckllTWc4SXpsT3VWWUtmOS0yUXVLRG9XZVJkZDdOc2R4VGsiCit9OworCit3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uKGV2dCkgeworICAgIGRlYnVnKCJLZXkgcmVj
ZWl2ZWQgaW4gYSBtZXNzYWdlOiIpOworICAgIGtleSA9IGV2dC5kYXRhOworICAgIHNob3VsZEJl
KCJrZXkudHlwZSIsICIncHJpdmF0ZSciKTsKKyAgICBzaG91bGRCZSgia2V5LmV4dHJhY3RhYmxl
IiwgInRydWUiKTsKKyAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidSU0FTU0Et
UEtDUzEtdjFfNSciKTsKKyAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3Ro
IiwgIjIwNDgiKTsKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhrZXkuYWxnb3JpdGht
LnB1YmxpY0V4cG9uZW50KSIsICInMDEwMDAxJyIpOworICAgIHNob3VsZEJlKCJrZXkudXNhZ2Vz
IiwgJ1sic2lnbiIsICJ2ZXJpZnkiXScpOworCisgICAgY3J5cHRvLnN1YnRsZS5leHBvcnRLZXko
Imp3ayIsIGtleSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgZXhwb3J0ZWRKV0sg
PSBKU09OLnBhcnNlKGJ5dGVzVG9BU0NJSVN0cmluZyhyZXN1bHQpKTsKKyAgICAgICAgZGVidWco
IlxuRXhwb3J0ZWQgYmFjayB0byBKV0s6Iik7CisgICAgICAgIHNob3VsZEJlKCJleHBvcnRlZEpX
Sy5rdHkiLCAiJ1JTQSciKTsKKyAgICAgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmFsZyIsICIn
UlMyNTYnIik7CisgICAgICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5leHQiLCAidHJ1ZSIpOwor
ICAgICAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sua2V5X29wcyIsICJbJ3NpZ24nLCd2ZXJpZnkn
XSIpOworICAgICAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sudXNlIiwgInVuZGVmaW5lZCIpOwor
ICAgICAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0subiIsICJwcml2YXRlS2V5SlNPTi5uIik7Cisg
ICAgICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5lIiwgInByaXZhdGVLZXlKU09OLmUiKTsKKyAg
ICAgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmQiLCAicHJpdmF0ZUtleUpTT04uZCIpOworICAg
ICAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sucCIsICJwcml2YXRlS2V5SlNPTi5wIik7CisgICAg
ICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5xIiwgInByaXZhdGVLZXlKU09OLnEiKTsKKyAgICAg
ICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmRwIiwgInByaXZhdGVLZXlKU09OLmRwIik7CisgICAg
ICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5kcSIsICJwcml2YXRlS2V5SlNPTi5kcSIpOworICAg
ICAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sucWkiLCAicHJpdmF0ZUtleUpTT04ucWkiKTsKKyAg
ICAgICAgZGVidWcoIiIpOworCisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworfSwg
ZmFsc2UpOworCitjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJy
YXkoSlNPTi5zdHJpbmdpZnkocHJpdmF0ZUtleUpTT04pKSwgbnVsbCwgdHJ1ZSwgWyJzaWduIiwg
InZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHBvc3RNZXNzYWdlKHJlc3Vs
dCwgIioiKTsKK30pOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtZGVjcnlwdC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYWVzLXBrY3Mx
LXYxXzUtZGVjcnlwdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ1MDQ4NGRhMDZiOTFjMDJm
NDcyNzY0ZDFlMWZmY2Q5YmVlMTY2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvcnNhZXMtcGtjczEtdjFfNS1kZWNyeXB0LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEyIEBACitUZXN0IGRlY3J5cHRpbmcgYSBrbm93biBtZXNzYWdlIHdpdGggUlNB
RVMtUEtDUzEtdjFfNS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0ltcG9ydGlu
ZyBhbiBSU0Ega2V5Li4uCitEZWNyeXB0aW5nLi4uCitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3
IFVpbnQ4QXJyYXkobWVzc2FnZSkpIGlzICcyYWFjZWM4NmY0MjNkZDkyNWVjMTU4ODIyYTc0OGNi
ZTZjMzFhMCcKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYWVzLXBr
Y3MxLXYxXzUtZGVjcnlwdC5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9y
c2Flcy1wa2NzMS12MV81LWRlY3J5cHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMDcwMGY0MTQxZTAyMzM4
YzE1ZmIyZTgwNjUzNjM1NWM3MTY3ZTJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Flcy1wa2NzMS12MV81LWRlY3J5cHQuaHRtbApAQCAtMCww
ICsxLDQ5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCJUZXN0IGRlY3J5cHRpbmcgYSBrbm93biBtZXNzYWdlIHdpdGggUlNBRVMtUEtD
UzEtdjFfNS4iKTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBwcml2YXRlS2V5SlNP
TiA9IHsKKyAgICBrdHk6ICJSU0EiLAorICAgIGFsZzogIlJTQTFfNSIsCisgICAgbjogQmFzZTY0
VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoImRjZmExMGZmYTc0NjY1YWVlZjg3
MDk3NGVhOTliMmNlNTQ1NDdjNjdmNDJhYWE2ZGQwMWEyZWQzMWZkMmMyNDJhZjVkOTYwYjFmODk2
ZWZiYTM1NDNkNjU1NGI3YjEyNjg3YTVjNjg4NTY4ZjMyZTAyNmM1MzJkMjU5OTNiOTdhN2MyODQy
ZWMyYjhlMTIzNWVlZTI0MTRkMjU4MDZjNmZiYWU0Mzg5NTRlYmE5ZDI3NTVkZmZlZWIxYjQ3NzAw
OTU3ODE1YThhMjMzZjk3YjFhMmM3MTRiM2UyYmUyZTQyZDhiZTMwYjE5NjE1ODJlYTk5NDg5MTBl
MGM3OTdjNTBmYzRiYjQ1NWYwZmM0NWU1ZTM0ZTYzOTZhYzViMmQ0NjIzOTM2NWM3ZjNkYWFmMDkw
OTQwMGQ2MWNmOWUwY2E4MDgzZWFmMzM1YTZmY2ViNjg2M2MxY2MwY2Y1YTE3MWFmZjM1ZDk3ZWNi
NjBlZjI1MWM3ZWMyYzhhNTg4MzYxZGM0MTI2NmE0YjdlZDM4YjAyNmNlMGQ1Mzc4NjQ0OWRiYjEx
YTA2ZWEzM2NjZjFlY2E1NzUyMDFlZDFhYTQ3M2VkMTE4N2VjMWQ4YTc0NGVhMzQ1YmVkN2VhMDBl
ZTRlODFiYmE0NjQ4NjAxZGQ1MzdkYzkxMDE1ZDMxZjBjMmMxIikpLAorICAgIGU6IEJhc2U2NFVS
TC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMTAwMDEiKSksCisgICAgZDogQmFz
ZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjIxOTUwODUxY2RmMjUzMjAz
MThiMzA1YWZhMGYzNzFmMDdhZTVhNDRiMzE0ZWJkNzI5ZjVkY2IxNWRhN2ZhMzk0N2FjZGQ5MTVk
YWVkNTc0YmQxNmRmODhiZjg1ZjYxMDYwYjM4NzE3MmZhZTZlMDEyNjJiMzg2NGMyZDNjMjJmOTRl
MDRhODE1OTQyMmI0ZWQyNzljNDhhNGM5ZDc2N2Q0OTY2MDcxYTViYmY1ZDA0M2UxNmZmNDZlYzFi
YTA3MTZmMDBiYmM5N2JmZjVkNTY5M2UyMTRlOTljOTcyMWYxMmIzZWM2MjgyYWUyYTQ4NTcyMWI5
NmRkY2Y3NDAzZmEwMzdkMGM1N2FiNDYzYzQ0OGRlNWNjMTIyNjVhZGQ4ODZkMzExZWE4ZDhhNTkw
M2ZhNTZjNWYxYzljZjJlYjExY2I2NTdhMWE3ZDNlNDEzNTJkYzNlNjg2ODk4YzRjZTQzMDVlOGI2
MzhlMWIwOGEyYTg2Y2M5ZWI5ODY2ZjM0OTlhYzc3YjYxMzZiODFjYjI3NmQ2MTRjZmViN2I2ZWQz
ZjNiYzc3NWU0NmMwMDA2NmViZWVlMmNmZjcxNjZiNTc1MjA1OTg5NDdmZjYyMTAzMjBiMjg4ZmI0
ZjJjM2Y4ZmU5N2IyNzk0MTRlYmY3MjAzMDAwYTE5ZmMwNDI0ODc1IikpLAorICAgIHA6IEJhc2U2
NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJmMTIzYmZlNTNkZTk3YTU2OWQ5
MWFkY2Y1NTZmYTYyNWFkMzBmM2ZkM2Q4MTFmOWU5MWU2YWY0NGI2ZTc4MGNiMGYzMjc4MjlmYjIx
MTkwYWUyODA2NjQ2ZDcyOGNkOWI2NTMxMTMyYjFlYmZlZjEyNzI5OTMwNjBmMWNlNzBiMTI0Mzkz
MDkxZWU4NTkzYjcyNzM2N2VkYmJhMDA5ZWM1YmUxN2M0YWNlZTEyMGM4NDEyNjdkNDc2MzFhMTZj
MzZhNmQxYzk5OTczYzFiMGI1YTgzNWJmMzlmZWFmZThmNjQyMWZkOWMyYTkwYmMyNzk3NjY1OWU2
N2JjODMxMjRkIikpLAorICAgIHE6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50
OEFycmF5KCJlYTk4MzliN2UzN2VhODliYmRhMjdlNGM5MzQ3MWNiNGZkOTIxODlhMGE5NmJjYjRk
NzU2OTNmMThhNWMyZjc0MmFmOWUzNmZkZTY3OWZiZDllYWUzNDVmYTI2OTUyN2I2OTY1MDIxYzRi
ZGY1NGQ2ODViZjA4OTYwY2M5NzZmNjhkY2EyMWNlYmY0NGYyNjhhNTlkYWI4ZDFhMjVlNTE5ZjUx
NDdlMWY0NWZlMjg3ZDc0Y2Y3MjViZWMxMzI2ZDM0MjEyYzU2Y2Y0ZmZmYTIwMmY1N2I2OGVlOGNj
YTk0M2YzYzEzOGM0Y2RlMzNiZGYyYzk0NDBkZjY1MzIyNDQ1IikpLAorICAgIGRwOiBCYXNlNjRV
Ukwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiY2EwYzliNjBiOGU0YTYwNjY3NTZj
NjVkMjA4ODQxOWRmNjI1M2I3YjY4OGE4NWY0ZjZlOTY0ZDg1ZGFkNTJhNDUyNjI4NjdmMWU5NjE4
MDY5ZmNjZDg2NWU5Mjg5ZTQ2ZTM5ZTIwMjI5NDRjNWM0NDg3ZDM0NWNmMjUyZDQ2MGQ5NzdkNzdl
ZGZlZmVkYmNiYWU0NmEyM2FmN2ZhNDcwZjA3N2RhMGU1MDk0MjA0NGNiMWEzNjA0OTdjYzI3NjBh
YzBmMmFkNGEyZmNkMGU4NGQ3YTFkOTRkZmRkMjY1OGZkOWNlMTg0NzVjMWZhNzVlZTBjZWJhZDBj
ZjBhYzA0ZCIpKSwKKyAgICBkcTogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4
QXJyYXkoIjUyODE3MTIzM2M0ZTRhNmM2M2I4Njc2NGY1MTMzODg0NmFmZGRiY2IyOTU4MzQ0YzAx
YzQwMDRhMWRkODI4MTQ1YTFkMDJhMTUwN2RlZjRmNTgyNDdhNjRmYzEwYzBhMjg4YzFhZTg5NTcy
MWQ3OGI4ZjA0NGRiN2MwMGQ4NmRhNTVhOWI2NTQyOTJlY2Q3NjgyNzBiZTY5ZTRiZDU5MjJkNGVm
ZmQxZjcwOTU1Zjk2MjdlM2UxOWI3NDllOTNiNDBlZjNkZDFkNjFkOTM5MTVlMmIwOWQ5MzBiNGIx
NzY4YmZhY2MwMTM2ZjM5YjBjZmRmYjRkMDUwMDExZTJlNjUiKSksCisgICAgcWk6IEJhc2U2NFVS
TC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJkZjJlYjIzMjJjYzJkYWFiZjRkMTQ2
NTUwOGY0MTUyMWNkYTdjZWZmMjNlYmU2MWQwMGQ0NDFlZTcyOGRkYTVkMTZjN2JmOTIwY2Q5NWYz
NGJlYjRmZTMyZWU4MTdlZjMzNjJlMGJjZDFkMTI0NWY3YjA3NzkzZWFhMTkwZGM1YTM3ZmRhZjRj
NjhlMmNhMTM5NzJkN2Y1MTQ4Yjc5NmI2ZmI2ZDdhZGRhMDdiZDJjZDEzYmU5OGNlYmVkMWVkYzZj
YTQxMmUzOTUzNTBjNTlhMWQ4NDJiYzRhYTJmM2MwYjI0M2ZkZTdkZmQ5NTM1NmYyNDM5MjUxYTEx
NzJjNDVlIikpCit9OworCit2YXIgZXh0cmFjdGFibGUgPSB0cnVlOwordmFyIG5vbkV4dHJhY3Rh
YmxlID0gZmFsc2U7CisKK2RlYnVnKCJJbXBvcnRpbmcgYW4gUlNBIGtleS4uLiIpOworY3J5cHRv
LnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5
KHByaXZhdGVLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbImRlY3J5cHQiXSkudGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKKyAgICBwcml2YXRlS2V5ID0gcmVzdWx0OworCisgICAgZGVidWco
IkRlY3J5cHRpbmcuLi4iKTsKKyAgICBlbmNyeXB0ZWRNZXNzYWdlID0gaGV4U3RyaW5nVG9VaW50
OEFycmF5KCI2MDQyZTc0NTU4OWFmMDNhZjg3NTIwZjkzYzQ1ZDhjMzU5ODVhZGExMTYxYTM3ZDgy
MmU5Zjk0NjBmYzc1ZmNmMDE3OWQ4NDkxYjhmNWQxZTRkZThjZWIzMWUwN2M0ODY1YzVhM2VmZGJi
YjY5YTg4MDNiODllZTY1YTQzMGE1ODA5YzcwNzU2OTE1MGI1ODBiYjY4NmE5NGM1NTQxYzQ2YWRj
ZDgyNzk2MGNlMjQ0ZmY2ODgzODdkMTYxNmU4NWI0ZDE3ODBjNjQ4MzYwNmNmOTI0YjU0ZjA4MGNm
NDE1NGU2NjgyOWJmNmU1MzI0ODEwNDhlYzQxZmFkYzA3ZDc1NWJiMzRiYjI4MTQ1MjE5Y2IzMGQ0
N2QwZDYxODcwOTE4MGU5MDMwM2ZmOWVmMDkwMThiZWQzZGE3NTc2MWRhNzk0ODExZjk2YmM5ZThk
N2M0YmExYjU5NDZiZGEwYmQzMTNmYWVjNGM5OTNlZDI3NDhlZWQ4Y2NlNGJkYjUyMGJhN2RiMTY1
ZjlmZTU2YWE4NDU0ZDZmZjMzODc0ZmVlZWJmMjlkZTJkZjViN2YwMGFhMWQ5ZmIwNzNmYzQwNjdi
NThkYzUwNjI0ZTEyN2Y3MTFkZGUyY2MyY2ZkYWI0OTE5Y2NmMjhjODM2NjBkZmMyMjdiMGY1MDBl
YzFmOTA0ZiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRlY3J5cHQoIlJTQUVTLVBLQ1Mx
LXYxXzUiLCBwcml2YXRlS2V5LCBlbmNyeXB0ZWRNZXNzYWdlKTsKK30pLnRoZW4oZnVuY3Rpb24o
cmVzdWx0KSB7CisgICAgbWVzc2FnZSA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hl
eFN0cmluZyhuZXcgVWludDhBcnJheShtZXNzYWdlKSkiLCAiJzJhYWNlYzg2ZjQyM2RkOTI1ZWMx
NTg4MjJhNzQ4Y2JlNmMzMWEwJyIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2Ny
aXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtd3JhcC11bndyYXAtYWVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhZXMtcGtjczEtdjFfNS13cmFw
LXVud3JhcC1hZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2YjQ0MTZjOTBkZThiM2ZhYjcz
MWYxYjE4YTlhZDc4NGE0YjUwNjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtd3JhcC11bndyYXAtYWVzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDM0IEBACitUZXN0IHdyYXBwaW5nIGFuZCB1bndyYXBwaW5nIGFuIEFF
UyBrZXkgd2l0aCBSU0FFUy1QS0NTMS12MV81LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworSW1wb3J0aW5nIFJTQSBrZXlzLi4uCitJbXBvcnRpbmcgYW4gQUVTIGtleS4uLgorV3Jh
cHBpbmcgaXQuLi4KK1BBU1Mgd3JhcHBlZEtleS50b1N0cmluZygpIGlzICdbb2JqZWN0IEFycmF5
QnVmZmVyXScKK1Vud3JhcHBpbmcgaXQuLi4KK1BBU1MgdW53cmFwcGVkS2V5LnRvU3RyaW5nKCkg
aXMgJ1tvYmplY3QgS2V5XScKK1BBU1MgdW53cmFwcGVkS2V5LnR5cGUgaXMgJ3NlY3JldCcKK1BB
U1MgdW53cmFwcGVkS2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKK1BBU1MgdW53cmFwcGVkS2V5LmFs
Z29yaXRobS5uYW1lIGlzICdBRVMtQ0JDJworUEFTUyB1bndyYXBwZWRLZXkuYWxnb3JpdGhtLmxl
bmd0aCBpcyAyNTYKK1BBU1MgdW53cmFwcGVkS2V5LnVzYWdlcyBpcyBbJ2RlY3J5cHQnLCAnZW5j
cnlwdCddCitFeHBvcnRpbmcgaXQuLi4KK1BBU1MgYnl0ZXNUb0hleFN0cmluZyh1bndyYXBwZWRL
ZXlEYXRhKSBpcyBieXRlc1RvSGV4U3RyaW5nKGFlc0tleURhdGEpCisKK1dyYXBwaW5nIHRoZSBz
YW1lIGtleSBhcyBKV0suLi4KK1BBU1Mgd3JhcHBlZEtleS50b1N0cmluZygpIGlzICdbb2JqZWN0
IEFycmF5QnVmZmVyXScKK1Vud3JhcHBpbmcgaXQuLi4KK1BBU1MgdW53cmFwcGVkS2V5LnRvU3Ry
aW5nKCkgaXMgJ1tvYmplY3QgS2V5XScKK1BBU1MgdW53cmFwcGVkS2V5LnR5cGUgaXMgJ3NlY3Jl
dCcKK1BBU1MgdW53cmFwcGVkS2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKK1BBU1MgdW53cmFwcGVk
S2V5LmFsZ29yaXRobS5uYW1lIGlzICdBRVMtQ0JDJworUEFTUyB1bndyYXBwZWRLZXkuYWxnb3Jp
dGhtLmxlbmd0aCBpcyAyNTYKK1BBU1MgdW53cmFwcGVkS2V5LnVzYWdlcyBpcyBbJ2RlY3J5cHQn
LCAnZW5jcnlwdCddCitFeHBvcnRpbmcgaXQuLi4KK1BBU1MgYnl0ZXNUb0hleFN0cmluZyh1bndy
YXBwZWRLZXlEYXRhKSBpcyBieXRlc1RvSGV4U3RyaW5nKGFlc0tleURhdGEpCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Flcy1wa2NzMS12MV81LXdyYXAtdW53cmFw
LWFlcy5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Flcy1wa2NzMS12
MV81LXdyYXAtdW53cmFwLWFlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmZmE4MWMxYmI1NGUyNDM2ZDBh
MTJjNjlhNjEzOTM5MWU4OGVmMzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtd3JhcC11bndyYXAtYWVzLmh0bWwKQEAg
LTAsMCArMSwxMDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0
PgorZGVzY3JpcHRpb24oIlRlc3Qgd3JhcHBpbmcgYW5kIHVud3JhcHBpbmcgYW4gQUVTIGtleSB3
aXRoIFJTQUVTLVBLQ1MxLXYxXzUuIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIg
cHVibGljS2V5SlNPTiA9IHsKKyAgICBrdHk6ICJSU0EiLAorICAgIGFsZzogIlJTQTFfNSIsCisg
ICAgbjogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoImRjZmExMGZm
YTc0NjY1YWVlZjg3MDk3NGVhOTliMmNlNTQ1NDdjNjdmNDJhYWE2ZGQwMWEyZWQzMWZkMmMyNDJh
ZjVkOTYwYjFmODk2ZWZiYTM1NDNkNjU1NGI3YjEyNjg3YTVjNjg4NTY4ZjMyZTAyNmM1MzJkMjU5
OTNiOTdhN2MyODQyZWMyYjhlMTIzNWVlZTI0MTRkMjU4MDZjNmZiYWU0Mzg5NTRlYmE5ZDI3NTVk
ZmZlZWIxYjQ3NzAwOTU3ODE1YThhMjMzZjk3YjFhMmM3MTRiM2UyYmUyZTQyZDhiZTMwYjE5NjE1
ODJlYTk5NDg5MTBlMGM3OTdjNTBmYzRiYjQ1NWYwZmM0NWU1ZTM0ZTYzOTZhYzViMmQ0NjIzOTM2
NWM3ZjNkYWFmMDkwOTQwMGQ2MWNmOWUwY2E4MDgzZWFmMzM1YTZmY2ViNjg2M2MxY2MwY2Y1YTE3
MWFmZjM1ZDk3ZWNiNjBlZjI1MWM3ZWMyYzhhNTg4MzYxZGM0MTI2NmE0YjdlZDM4YjAyNmNlMGQ1
Mzc4NjQ0OWRiYjExYTA2ZWEzM2NjZjFlY2E1NzUyMDFlZDFhYTQ3M2VkMTE4N2VjMWQ4YTc0NGVh
MzQ1YmVkN2VhMDBlZTRlODFiYmE0NjQ4NjAxZGQ1MzdkYzkxMDE1ZDMxZjBjMmMxIikpLAorICAg
IGU6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMTAwMDEiKSkK
K307CisKK3ZhciBwcml2YXRlS2V5SlNPTiA9IHsKKyAgICBrdHk6ICJSU0EiLAorICAgIGFsZzog
IlJTQTFfNSIsCisgICAgbjogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJy
YXkoImRjZmExMGZmYTc0NjY1YWVlZjg3MDk3NGVhOTliMmNlNTQ1NDdjNjdmNDJhYWE2ZGQwMWEy
ZWQzMWZkMmMyNDJhZjVkOTYwYjFmODk2ZWZiYTM1NDNkNjU1NGI3YjEyNjg3YTVjNjg4NTY4ZjMy
ZTAyNmM1MzJkMjU5OTNiOTdhN2MyODQyZWMyYjhlMTIzNWVlZTI0MTRkMjU4MDZjNmZiYWU0Mzg5
NTRlYmE5ZDI3NTVkZmZlZWIxYjQ3NzAwOTU3ODE1YThhMjMzZjk3YjFhMmM3MTRiM2UyYmUyZTQy
ZDhiZTMwYjE5NjE1ODJlYTk5NDg5MTBlMGM3OTdjNTBmYzRiYjQ1NWYwZmM0NWU1ZTM0ZTYzOTZh
YzViMmQ0NjIzOTM2NWM3ZjNkYWFmMDkwOTQwMGQ2MWNmOWUwY2E4MDgzZWFmMzM1YTZmY2ViNjg2
M2MxY2MwY2Y1YTE3MWFmZjM1ZDk3ZWNiNjBlZjI1MWM3ZWMyYzhhNTg4MzYxZGM0MTI2NmE0Yjdl
ZDM4YjAyNmNlMGQ1Mzc4NjQ0OWRiYjExYTA2ZWEzM2NjZjFlY2E1NzUyMDFlZDFhYTQ3M2VkMTE4
N2VjMWQ4YTc0NGVhMzQ1YmVkN2VhMDBlZTRlODFiYmE0NjQ4NjAxZGQ1MzdkYzkxMDE1ZDMxZjBj
MmMxIikpLAorICAgIGU6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5
KCIwMTAwMDEiKSksCisgICAgZDogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4
QXJyYXkoIjIxOTUwODUxY2RmMjUzMjAzMThiMzA1YWZhMGYzNzFmMDdhZTVhNDRiMzE0ZWJkNzI5
ZjVkY2IxNWRhN2ZhMzk0N2FjZGQ5MTVkYWVkNTc0YmQxNmRmODhiZjg1ZjYxMDYwYjM4NzE3MmZh
ZTZlMDEyNjJiMzg2NGMyZDNjMjJmOTRlMDRhODE1OTQyMmI0ZWQyNzljNDhhNGM5ZDc2N2Q0OTY2
MDcxYTViYmY1ZDA0M2UxNmZmNDZlYzFiYTA3MTZmMDBiYmM5N2JmZjVkNTY5M2UyMTRlOTljOTcy
MWYxMmIzZWM2MjgyYWUyYTQ4NTcyMWI5NmRkY2Y3NDAzZmEwMzdkMGM1N2FiNDYzYzQ0OGRlNWNj
MTIyNjVhZGQ4ODZkMzExZWE4ZDhhNTkwM2ZhNTZjNWYxYzljZjJlYjExY2I2NTdhMWE3ZDNlNDEz
NTJkYzNlNjg2ODk4YzRjZTQzMDVlOGI2MzhlMWIwOGEyYTg2Y2M5ZWI5ODY2ZjM0OTlhYzc3YjYx
MzZiODFjYjI3NmQ2MTRjZmViN2I2ZWQzZjNiYzc3NWU0NmMwMDA2NmViZWVlMmNmZjcxNjZiNTc1
MjA1OTg5NDdmZjYyMTAzMjBiMjg4ZmI0ZjJjM2Y4ZmU5N2IyNzk0MTRlYmY3MjAzMDAwYTE5ZmMw
NDI0ODc1IikpLAorICAgIHA6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFy
cmF5KCJmMTIzYmZlNTNkZTk3YTU2OWQ5MWFkY2Y1NTZmYTYyNWFkMzBmM2ZkM2Q4MTFmOWU5MWU2
YWY0NGI2ZTc4MGNiMGYzMjc4MjlmYjIxMTkwYWUyODA2NjQ2ZDcyOGNkOWI2NTMxMTMyYjFlYmZl
ZjEyNzI5OTMwNjBmMWNlNzBiMTI0MzkzMDkxZWU4NTkzYjcyNzM2N2VkYmJhMDA5ZWM1YmUxN2M0
YWNlZTEyMGM4NDEyNjdkNDc2MzFhMTZjMzZhNmQxYzk5OTczYzFiMGI1YTgzNWJmMzlmZWFmZThm
NjQyMWZkOWMyYTkwYmMyNzk3NjY1OWU2N2JjODMxMjRkIikpLAorICAgIHE6IEJhc2U2NFVSTC5z
dHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJlYTk4MzliN2UzN2VhODliYmRhMjdlNGM5
MzQ3MWNiNGZkOTIxODlhMGE5NmJjYjRkNzU2OTNmMThhNWMyZjc0MmFmOWUzNmZkZTY3OWZiZDll
YWUzNDVmYTI2OTUyN2I2OTY1MDIxYzRiZGY1NGQ2ODViZjA4OTYwY2M5NzZmNjhkY2EyMWNlYmY0
NGYyNjhhNTlkYWI4ZDFhMjVlNTE5ZjUxNDdlMWY0NWZlMjg3ZDc0Y2Y3MjViZWMxMzI2ZDM0MjEy
YzU2Y2Y0ZmZmYTIwMmY1N2I2OGVlOGNjYTk0M2YzYzEzOGM0Y2RlMzNiZGYyYzk0NDBkZjY1MzIy
NDQ1IikpLAorICAgIGRwOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJh
eSgiY2EwYzliNjBiOGU0YTYwNjY3NTZjNjVkMjA4ODQxOWRmNjI1M2I3YjY4OGE4NWY0ZjZlOTY0
ZDg1ZGFkNTJhNDUyNjI4NjdmMWU5NjE4MDY5ZmNjZDg2NWU5Mjg5ZTQ2ZTM5ZTIwMjI5NDRjNWM0
NDg3ZDM0NWNmMjUyZDQ2MGQ5NzdkNzdlZGZlZmVkYmNiYWU0NmEyM2FmN2ZhNDcwZjA3N2RhMGU1
MDk0MjA0NGNiMWEzNjA0OTdjYzI3NjBhYzBmMmFkNGEyZmNkMGU4NGQ3YTFkOTRkZmRkMjY1OGZk
OWNlMTg0NzVjMWZhNzVlZTBjZWJhZDBjZjBhYzA0ZCIpKSwKKyAgICBkcTogQmFzZTY0VVJMLnN0
cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjUyODE3MTIzM2M0ZTRhNmM2M2I4Njc2NGY1
MTMzODg0NmFmZGRiY2IyOTU4MzQ0YzAxYzQwMDRhMWRkODI4MTQ1YTFkMDJhMTUwN2RlZjRmNTgy
NDdhNjRmYzEwYzBhMjg4YzFhZTg5NTcyMWQ3OGI4ZjA0NGRiN2MwMGQ4NmRhNTVhOWI2NTQyOTJl
Y2Q3NjgyNzBiZTY5ZTRiZDU5MjJkNGVmZmQxZjcwOTU1Zjk2MjdlM2UxOWI3NDllOTNiNDBlZjNk
ZDFkNjFkOTM5MTVlMmIwOWQ5MzBiNGIxNzY4YmZhY2MwMTM2ZjM5YjBjZmRmYjRkMDUwMDExZTJl
NjUiKSksCisgICAgcWk6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5
KCJkZjJlYjIzMjJjYzJkYWFiZjRkMTQ2NTUwOGY0MTUyMWNkYTdjZWZmMjNlYmU2MWQwMGQ0NDFl
ZTcyOGRkYTVkMTZjN2JmOTIwY2Q5NWYzNGJlYjRmZTMyZWU4MTdlZjMzNjJlMGJjZDFkMTI0NWY3
YjA3NzkzZWFhMTkwZGM1YTM3ZmRhZjRjNjhlMmNhMTM5NzJkN2Y1MTQ4Yjc5NmI2ZmI2ZDdhZGRh
MDdiZDJjZDEzYmU5OGNlYmVkMWVkYzZjYTQxMmUzOTUzNTBjNTlhMWQ4NDJiYzRhYTJmM2MwYjI0
M2ZkZTdkZmQ5NTM1NmYyNDM5MjUxYTExNzJjNDVlIikpCit9OwordmFyIHdyYXBBbGdvcml0aG0g
PSB7bmFtZTogIlJTQUVTLVBLQ1MxLXYxXzUifTsKK3ZhciBleHRyYWN0YWJsZSA9IHRydWU7Cit2
YXIgbm9uRXh0cmFjdGFibGUgPSBmYWxzZTsKKworZGVidWcoIkltcG9ydGluZyBSU0Ega2V5cy4u
LiIpOworY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpT
T04uc3RyaW5naWZ5KHB1YmxpY0tleUpTT04pKSwgbnVsbCwgZXh0cmFjdGFibGUsIFsid3JhcEtl
eSIsICJ1bndyYXBLZXkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBwdWJsaWNLZXkg
PSByZXN1bHQ7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2Np
aVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShwcml2YXRlS2V5SlNPTikpLCBudWxsLCBleHRy
YWN0YWJsZSwgWyJ3cmFwS2V5IiwgInVud3JhcEtleSJdKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVz
dWx0KSB7CisgICAgcHJpdmF0ZUtleSA9IHJlc3VsdDsKKworICAgIGRlYnVnKCJJbXBvcnRpbmcg
YW4gQUVTIGtleS4uLiIpOworICAgIGFlc0tleURhdGEgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXko
IjYwM2RlYjEwMTVjYTcxYmUyYjczYWVmMDg1N2Q3NzgxMWYzNTJjMDczYjYxMDhkNzJkOTgxMGEz
MDkxNGRmZjQiKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGFl
c0tleURhdGEsICJhZXMtY2JjIiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Iiwg
IndyYXBLZXkiLCAidW53cmFwS2V5Il0pCit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAg
IGFlc0tleSA9IHJlc3VsdDsKKyAgICBkZWJ1ZygiV3JhcHBpbmcgaXQuLi4iKTsKKworICAgIHJl
dHVybiBjcnlwdG8uc3VidGxlLndyYXBLZXkoInJhdyIsIGFlc0tleSwgcHVibGljS2V5LCB3cmFw
QWxnb3JpdGhtKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgd3JhcHBlZEtleSA9
IHJlc3VsdDsKKyAgICBzaG91bGRCZSgid3JhcHBlZEtleS50b1N0cmluZygpIiwgIidbb2JqZWN0
IEFycmF5QnVmZmVyXSciKTsKKworICAgIGRlYnVnKCJVbndyYXBwaW5nIGl0Li4uIik7CisgICAg
cmV0dXJuIGNyeXB0by5zdWJ0bGUudW53cmFwS2V5KCJyYXciLCB3cmFwcGVkS2V5LCBwcml2YXRl
S2V5LCB3cmFwQWxnb3JpdGhtLCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAi
ZGVjcnlwdCJdKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgdW53cmFwcGVkS2V5
ID0gcmVzdWx0OworICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkudG9TdHJpbmcoKSIsICInW29i
amVjdCBLZXldJyIpOworICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkudHlwZSIsICInc2VjcmV0
JyIpOworICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIpOwor
ICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FFUy1DQkMnIik7
CisgICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjI1NiIpOwor
ICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkudXNhZ2VzIiwgIlsnZGVjcnlwdCcsICdlbmNyeXB0
J10iKTsKKworICAgIGRlYnVnKCJFeHBvcnRpbmcgaXQuLi4iKTsKKyAgICByZXR1cm4gY3J5cHRv
LnN1YnRsZS5leHBvcnRLZXkoInJhdyIsIHVud3JhcHBlZEtleSk7Cit9KS50aGVuKGZ1bmN0aW9u
KHJlc3VsdCkgeworICAgIHVud3JhcHBlZEtleURhdGEgPSByZXN1bHQ7CisgICAgc2hvdWxkQmUo
ImJ5dGVzVG9IZXhTdHJpbmcodW53cmFwcGVkS2V5RGF0YSkiLCAiYnl0ZXNUb0hleFN0cmluZyhh
ZXNLZXlEYXRhKSIpOworCisgICAgZGVidWcoIlxuV3JhcHBpbmcgdGhlIHNhbWUga2V5IGFzIEpX
Sy4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLndyYXBLZXkoImp3ayIsIGFlc0tleSwg
cHVibGljS2V5LCB3cmFwQWxnb3JpdGhtKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Cisg
ICAgd3JhcHBlZEtleSA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgid3JhcHBlZEtleS50b1N0cmlu
ZygpIiwgIidbb2JqZWN0IEFycmF5QnVmZmVyXSciKTsKKworICAgIGRlYnVnKCJVbndyYXBwaW5n
IGl0Li4uIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUudW53cmFwS2V5KCJqd2siLCB3cmFw
cGVkS2V5LCBwcml2YXRlS2V5LCB3cmFwQWxnb3JpdGhtLCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxl
LCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Cisg
ICAgdW53cmFwcGVkS2V5ID0gcmVzdWx0OworICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkudG9T
dHJpbmcoKSIsICInW29iamVjdCBLZXldJyIpOworICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXku
dHlwZSIsICInc2VjcmV0JyIpOworICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkuZXh0cmFjdGFi
bGUiLCAidHJ1ZSIpOworICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkuYWxnb3JpdGhtLm5hbWUi
LCAiJ0FFUy1DQkMnIik7CisgICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS5hbGdvcml0aG0ubGVu
Z3RoIiwgIjI1NiIpOworICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkudXNhZ2VzIiwgIlsnZGVj
cnlwdCcsICdlbmNyeXB0J10iKTsKKworICAgIGRlYnVnKCJFeHBvcnRpbmcgaXQuLi4iKTsKKyAg
ICByZXR1cm4gY3J5cHRvLnN1YnRsZS5leHBvcnRLZXkoInJhdyIsIHVud3JhcHBlZEtleSk7Cit9
KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHVud3JhcHBlZEtleURhdGEgPSByZXN1bHQ7
CisgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcodW53cmFwcGVkS2V5RGF0YSkiLCAiYnl0
ZXNUb0hleFN0cmluZyhhZXNLZXlEYXRhKSIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8
L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5
cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1rZXktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1n
ZW5lcmF0ZS1rZXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3NGFhYjExYTQ3NTIyMzdkNWRj
OTRkNDNhZGE3MWRhZTI2ZTZhYjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwyNCBAQAorVGVzdCBnZW5lcmF0aW5nIGFuIFJTQSBrZXkgcGFpciBmb3Ig
UlNBU1NBLVBLQ1MxLXYxXzUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitHZW5l
cmF0aW5nIGEga2V5IHBhaXIuLi4KK1BBU1Mga2V5UGFpci50b1N0cmluZygpIGlzICdbb2JqZWN0
IEtleVBhaXJdJworUEFTUyBrZXlQYWlyLnB1YmxpY0tleS50eXBlIGlzICdwdWJsaWMnCitQQVNT
IGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScK
K1BBU1Mga2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGggaXMgMjA0OAor
UEFTUyBieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5wdWJsaWNF
eHBvbmVudCkgaXMgJzAxMDAwMScKK1BBU1Mga2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLmhh
c2ggaXMgdW5kZWZpbmVkLgorUEFTUyBrZXlQYWlyLnByaXZhdGVLZXkudHlwZSBpcyAncHJpdmF0
ZScKK1BBU1Mga2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FTU0EtUEtD
UzEtdjFfNScKK1BBU1Mga2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3Ro
IGlzIDIwNDgKK1BBU1MgYnl0ZXNUb0hleFN0cmluZyhrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3Jp
dGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJworUEFTUyBrZXlQYWlyLnByaXZhdGVLZXku
YWxnb3JpdGhtLmhhc2ggaXMgdW5kZWZpbmVkLgorCitUZXN0aW5nIHRoYXQgY3VzdG9tIGF0dHJp
YnV0ZXMgb24ga2V5cyBzdXJ2aXZlIGdhcmJhZ2UgY29sbGVjdGlvbi4uLgorUEFTUyBrZXlQYWly
LnB1YmxpY0tleS5mb28gaXMgJ2JhcicKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS13aXRoLWxlYWRpbmctemVyb2Vz
LWluLWV4cG9uZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5LXdpdGgtbGVhZGluZy16ZXJvZXMtaW4t
ZXhwb25lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0NTVjZDA2YmU0YjE0ZGZkYWNmMjM4
NzNlODg4M2E1YWNkMTk5MGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS13aXRoLWxlYWRpbmct
emVyb2VzLWluLWV4cG9uZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitUZXN0IGdl
bmVyYXRpbmcgYW4gUlNBIGtleSBwYWlyIGZvciBSU0FTU0EtUEtDUzEtdjFfNSB3aGVuIGV4cG9u
ZW50IGhhcyBsZWFkaW5nIHplcm9lcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K0dlbmVyYXRpbmcgYSBrZXkgcGFpci4uLgorUEFTUyBrZXlQYWlyLnRvU3RyaW5nKCkgaXMgJ1tv
YmplY3QgS2V5UGFpcl0nCitQQVNTIGtleVBhaXIucHVibGljS2V5LnR5cGUgaXMgJ3B1YmxpYycK
K1BBU1Mga2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JTQVNTQS1QS0NTMS12
MV81JworUEFTUyBrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAy
MDQ4CitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcoa2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLnB1
YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJworUEFTUyBieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIu
cHJpdmF0ZUtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcwMTAwMDEnCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0
ZS1rZXktd2l0aC1sZWFkaW5nLXplcm9lcy1pbi1leHBvbmVudC5odG1sIGIvTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1rZXktd2l0aC1s
ZWFkaW5nLXplcm9lcy1pbi1leHBvbmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5Mzc3MmE5NGI5YWYx
YjU0YWU0ZTU1OTI2MTc0MWNkNzNmZjYxNzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS13aXRo
LWxlYWRpbmctemVyb2VzLWluLWV4cG9uZW50Lmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCBn
ZW5lcmF0aW5nIGFuIFJTQSBrZXkgcGFpciBmb3IgUlNBU1NBLVBLQ1MxLXYxXzUgd2hlbiBleHBv
bmVudCBoYXMgbGVhZGluZyB6ZXJvZXMuIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit2
YXIgYWxnb3JpdGhtS2V5R2VuID0geworICAgIG5hbWU6ICJSU0FTU0EtUEtDUzEtdjFfNSIsCisg
ICAgLy8gUnNhS2V5R2VuUGFyYW1zCisgICAgbW9kdWx1c0xlbmd0aDogMjA0OCwKKyAgICBwdWJs
aWNFeHBvbmVudDogbmV3IFVpbnQ4QXJyYXkoWzB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs
IDB4MDEsIDB4MDAsIDB4MDFdKSwgIC8vIEVxdWl2YWxlbnQgdG8gNjU1MzcKK307Cit2YXIgZXh0
cmFjdGFibGUgPSB0cnVlOworCitkZWJ1ZygiR2VuZXJhdGluZyBhIGtleSBwYWlyLi4uIik7Citj
cnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KGFsZ29yaXRobUtleUdlbiwgZXh0cmFjdGFibGUsIFsi
c2lnbiIsICJ2ZXJpZnkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBrZXlQYWlyID0g
cmVzdWx0OworICAgIHNob3VsZEJlKCJrZXlQYWlyLnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgS2V5
UGFpcl0nIik7CisgICAgc2hvdWxkQmUoImtleVBhaXIucHVibGljS2V5LnR5cGUiLCAiJ3B1Ymxp
YyciKTsKKyAgICBzaG91bGRCZSgia2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUiLCAi
J1JTQVNTQS1QS0NTMS12MV81JyIpOworICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tleS5h
bGdvcml0aG0ubW9kdWx1c0xlbmd0aCIsICIyMDQ4Iik7CisgICAgc2hvdWxkQmUoImJ5dGVzVG9I
ZXhTdHJpbmcoa2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSIsICIn
MDEwMDAxJyIpOworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIucHJpdmF0
ZUtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwgIicwMTAwMDEnIik7CisKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2Vu
ZXJhdGUta2V5Lmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1w
a2NzMS12MV81LWdlbmVyYXRlLWtleS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzN2Y3MmRlZDU4NTQwMjZh
YjgzNGExM2EyZTM4NDAzMzU2NzM2ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9j
cnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS5odG1sCkBA
IC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0
PgorZGVzY3JpcHRpb24oIlRlc3QgZ2VuZXJhdGluZyBhbiBSU0Ega2V5IHBhaXIgZm9yIFJTQVNT
QS1QS0NTMS12MV81LiIpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGFsZ29yaXRo
bUtleUdlbiA9IHsKKyAgICBuYW1lOiAiUlNBU1NBLVBLQ1MxLXYxXzUiLAorICAgIC8vIFJzYUtl
eUdlblBhcmFtcworICAgIG1vZHVsdXNMZW5ndGg6IDIwNDgsCisgICAgcHVibGljRXhwb25lbnQ6
IG5ldyBVaW50OEFycmF5KFsweDAxLCAweDAwLCAweDAxXSksICAvLyBFcXVpdmFsZW50IHRvIDY1
NTM3Cit9OwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKKworZGVidWcoIkdlbmVyYXRpbmcgYSBr
ZXkgcGFpci4uLiIpOworY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleShhbGdvcml0aG1LZXlHZW4s
IGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7
CisgICAga2V5UGFpciA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgia2V5UGFpci50b1N0cmluZygp
IiwgIidbb2JqZWN0IEtleVBhaXJdJyIpOworICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tl
eS50eXBlIiwgIidwdWJsaWMnIik7CisgICAgc2hvdWxkQmUoImtleVBhaXIucHVibGljS2V5LmFs
Z29yaXRobS5uYW1lIiwgIidSU0FTU0EtUEtDUzEtdjFfNSciKTsKKyAgICBzaG91bGRCZSgia2V5
UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOworICAgIHNo
b3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5wdWJs
aWNFeHBvbmVudCkiLCAiJzAxMDAwMSciKTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgia2V5UGFp
ci5wdWJsaWNLZXkuYWxnb3JpdGhtLmhhc2giKTsKKyAgICBzaG91bGRCZSgia2V5UGFpci5wcml2
YXRlS2V5LnR5cGUiLCAiJ3ByaXZhdGUnIik7CisgICAgc2hvdWxkQmUoImtleVBhaXIucHJpdmF0
ZUtleS5hbGdvcml0aG0ubmFtZSIsICInUlNBU1NBLVBLQ1MxLXYxXzUnIik7CisgICAgc2hvdWxk
QmUoImtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCIsICIyMDQ4Iik7
CisgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcoa2V5UGFpci5wcml2YXRlS2V5LmFsZ29y
aXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAxMDAwMSciKTsKKyAgICBzaG91bGRCZVVuZGVmaW5l
ZCgia2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5oYXNoIik7CisKKyAgICBkZWJ1ZygiXG5U
ZXN0aW5nIHRoYXQgY3VzdG9tIGF0dHJpYnV0ZXMgb24ga2V5cyBzdXJ2aXZlIGdhcmJhZ2UgY29s
bGVjdGlvbi4uLiIpOworICAgIGtleVBhaXIucHVibGljS2V5LmZvbyA9ICJiYXIiOworICAgIGdj
KCk7CisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgZ2MoKTsKKyAgICAgICAg
c2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1
YmxpY0tleS5mb28iLCAiJ2JhciciKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
ICAgICB9LCAwKTsKKyAgICB9LCAwKTsKK30pOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBr
Y3MxLXYxXzUtaW1wb3J0LWp3ay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2stZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmIyY2NiNDc4OTdlMWUyMGRhOTg1NjEyMGJkNTExYTg5YjI3ZWQyZjcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12
MV81LWltcG9ydC1qd2stZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjYgQEAKK1Rlc3QgaW1wb3J0
aW5nIGFuIFJTQSBrZXkgZm9yIFJTQVNTQS1QS0NTMS12MV81LgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworSW1wb3J0aW5nIGEgcHVibGljIGtleS4uLgorUEFTUyBwdWJsaWNLZXku
dG9TdHJpbmcoKSBpcyAnW29iamVjdCBLZXldJworUEFTUyBwdWJsaWNLZXkudHlwZSBpcyAncHVi
bGljJworUEFTUyBwdWJsaWNLZXkudXNhZ2VzIGlzIFsnc2lnbicsJ3ZlcmlmeSddCitQQVNTIHB1
YmxpY0tleS5hbGdvcml0aG0ubmFtZSBpcyAnUlNBU1NBLVBLQ1MxLXYxXzUnCitQQVNTIHB1Ymxp
Y0tleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4CitQQVNTIGJ5dGVzVG9IZXhTdHJp
bmcocHVibGljS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKK1BBU1Mg
cHVibGljS2V5LmFsZ29yaXRobS5oYXNoLm5hbWUgaXMgJ1NIQS0yNTYnCisKK0ltcG9ydGluZyBh
IHByaXZhdGUga2V5Li4uCitQQVNTIHByaXZhdGVLZXkudG9TdHJpbmcoKSBpcyAnW29iamVjdCBL
ZXldJworUEFTUyBwcml2YXRlS2V5LnR5cGUgaXMgJ3ByaXZhdGUnCitQQVNTIHByaXZhdGVLZXku
dXNhZ2VzIGlzIFsnc2lnbicsJ3ZlcmlmeSddCitQQVNTIHByaXZhdGVLZXkuYWxnb3JpdGhtLm5h
bWUgaXMgJ1JTQVNTQS1QS0NTMS12MV81JworUEFTUyBwcml2YXRlS2V5LmFsZ29yaXRobS5tb2R1
bHVzTGVuZ3RoIGlzIDIwNDgKK1BBU1MgYnl0ZXNUb0hleFN0cmluZyhwcml2YXRlS2V5LmFsZ29y
aXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKK1BBU1MgcHJpdmF0ZUtleS5hbGdvcml0
aG0uaGFzaC5uYW1lIGlzICdTSEEtMjU2JworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJr
aXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1zbWFsbC1rZXktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1p
bXBvcnQtandrLXNtYWxsLWtleS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzM5NTJiMjQwNmRk
NjZhMTFhNjA0ZTJmMDVhZWQ0MDA0MmNkNjMwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1zbWFs
bC1rZXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0Ega2V5IG9mIHNpemUgMjA0OCBi
aXRzIG9yIGxhcmdlciBNVVNUIGJlIHVzZWQgd2l0aCBSUzI1NiwgUlMzODQsIFJTNTEyIEpXSyBh
bGdvcml0aG1zLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBjcnlwdG8u
c3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnko
cHVibGljS2V5SlNPTikpLCBudWxsLCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBLZXkgc2l6ZSBpcyBub3QgdmFsaWQgZm9yIFJTMjU2
LgorUEFTUyBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXko
SlNPTi5zdHJpbmdpZnkocHJpdmF0ZUtleUpTT04pKSwgbnVsbCwgZXh0cmFjdGFibGUsIFsic2ln
biIsICJ2ZXJpZnkiXSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogS2V5IHNpemUgaXMgbm90
IHZhbGlkIGZvciBSUzUxMi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2stc21hbGwta2V5Lmh0bWwgYi9MYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2stc21hbGwt
a2V5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMTQ4OTY3YzgyZWM4YWMxNDVmNDdkMjkyNGY4Mzg2OWY4NjJk
M2ZmZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUv
cnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1zbWFsbC1rZXkuaHRtbApAQCAtMCwwICsxLDQ0
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCJBIGtleSBvZiBzaXplIDIwNDggYml0cyBvciBsYXJnZXIgTVVTVCBiZSB1c2VkIHdpdGgg
UlMyNTYsIFJTMzg0LCBSUzUxMiBKV0sgYWxnb3JpdGhtcy4iKTsKKwordmFyIGV4dHJhY3RhYmxl
ID0gdHJ1ZTsKKworLy8gb3BlbnNzbCBnZW5yc2EgMTAyNCA+MTAyNC5wZW0KKy8vIG9wZW5zc2wg
YXNuMXBhcnNlIC1pbiAxMDI0LnBlbQordmFyIHB1YmxpY0tleUpTT04gPSB7CisgICAga3R5OiAi
UlNBIiwKKyAgICBhbGc6ICJSUzI1NiIsCisgICAgbjogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhT
dHJpbmdUb1VpbnQ4QXJyYXkoIkI3RjEwM0Y4NDEyQ0NEMjZGNUQ1NEZDMzE1N0NEOENFMUYxMzRG
NEVBQkYwQTA0MjM1MEJERDdGMDBGRUEyQjc3RUVGMTk5MTVCMTBBQTI0MTdCQjJDQjRFQzFENTdC
OTY2MUEyMDA3MjQ2OUI5REY5QzZFODlDQjM1Q0NDODU0M0NDNDA3NzBEQ0MzMEQwQkJGRjFCRjlE
QTFFMjU0OUY0MDQ3NkVEQURCOTMxMjk4NURBRThDNzUyN0MxQzEyQUFGRURGNDU4NDk4OTk2OENE
Q0M5RUZFQjE5NzQzOEM1MzREMUJGQUFDMzBCMUQ0MUY3NUVBREI4NkNDNTgxQjkiKSksCisgICAg
ZTogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAxMDAwMSIpKQor
fTsKKwordmFyIHByaXZhdGVLZXlKU09OID0geworICAgIGt0eTogIlJTQSIsCisgICAgYWxnOiAi
UlM1MTIiLAorICAgIG46IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5
KCJCN0YxMDNGODQxMkNDRDI2RjVENTRGQzMxNTdDRDhDRTFGMTM0RjRFQUJGMEEwNDIzNTBCREQ3
RjAwRkVBMkI3N0VFRjE5OTE1QjEwQUEyNDE3QkIyQ0I0RUMxRDU3Qjk2NjFBMjAwNzI0NjlCOURG
OUM2RTg5Q0IzNUNDQzg1NDNDQzQwNzcwRENDMzBEMEJCRkYxQkY5REExRTI1NDlGNDA0NzZFREFE
QjkzMTI5ODVEQUU4Qzc1MjdDMUMxMkFBRkVERjQ1ODQ5ODk5NjhDRENDOUVGRUIxOTc0MzhDNTM0
RDFCRkFBQzMwQjFENDFGNzVFQURCODZDQzU4MUI5IikpLAorICAgIGU6IEJhc2U2NFVSTC5zdHJp
bmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMTAwMDEiKSksCisgICAgZDogQmFzZTY0VVJM
LnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjVCQTZGNEYyNkIwRjM2QkRCNUZBNkVC
RUU2RTMwOTY4NTMyNTlDRkJCNzQyQjNBN0E5QTREQURERTA5MjAwNjNFQzE0OTkyOUNCMzU1Nzgx
OUE2RDgyNEUzN0U0M0IwNEJGMzIzRjQ5MkZDNDlBODAyODAzMTAxN0I4MUJFQ0E4RUMyQTg1QUJD
RjE5MzUwMUQ4MERDMjUxREI4ODYzQjg2NzNEOEI2NzcyREIyRDJBRTA4Q0QxODI5QzNGNTQyMTQx
NDYxQ0FDRTRFOEExRjExMkFEMTNGRjRBNEREODY1QTg5QUVBOTRFOTg0RDQ4N0U1Nzk4RUYwNzY0
M0I5Q0QiKSksCisgICAgcDogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJy
YXkoIkUwNkJGRTU3MjJBNjhFNUQ1OTdERDhEQjkzNzQ4M0NCQTM1MkFCODE3MjA5Mjc1QURBRDEw
Mzc3MkI3QThFRjRFQTk0NjMxMUEyQjUxODA1OTU5ODE4Q0VCMzYyRjI1N0Q2OTk4QjQ3NUZFQTlF
MzRGMkEzMDIwNUI1RjVBN0ZGIikpLAorICAgIHE6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3Ry
aW5nVG9VaW50OEFycmF5KCJEMUQyREJEQjFGNERDQkZFOEQxNkNERDJDRjgzQzdCNUZBREZDNzg5
MUYyMkZDNTI3QkYyMDhGODFCOTJGMjU0MzU2OUMzQUQyMjIyNEI4MkQ0MDdERUI2NUY2NTFEMDlE
MjU1OEZFRThCQzZFNURBNTFGNkYxMzIwNkNDMTY0NyIpKSwKKyAgICBkcDogQmFzZTY0VVJMLnN0
cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjczRUNCNEYzRDNBRDRGNkFCRUY4NzdENTZD
ODRDQTMzOUQ4OEVEOThBRjBDMzU2RDA0MENFNThBNjA0NjJEQTQyQkFDM0NDNDc2NTRBRjM0RUI0
MjI2QzY1NkY5NkM4RjlEMDVCMTYxNEMxNTg4NjU3NzU0NjY4RTA2QTBGRjg3IikpLAorICAgIGRx
OiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiNUI5QzVBQ0RCMzNG
M0U1RkU3QUUxQjMzN0REMzI1QjEzOEQ1RDdDMkYwQ0I0RkFCOUJERTMzMzg1MEExQkExODM2MzFG
NTczNzQ0MUQxMDI1MDFEMTc4QTNDRTA2MkVCNTRFMDcyQjU0RTY2MEIxOTY1NEMxMjQ3MkI1Qzk0
MjUiKSksCisgICAgcWk6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5
KCJENkE5MjBCMjQxMTc4OTIzQzU5QkNCRDFBODE1NzY0NjE5MjI1QTkwRjJDMDkwQTlGQkQ1OTRB
NjE1NjE1NDJEMERGMTc5NTkwNDEzQzI2QzhBNzJGQzZFMTRFQzYzQTM3NzE2OTk3MDY3MUIzQTFF
QjVFNEY0REYxQTRDQTcyNSIpKQorfTsKKworc2hvdWxkVGhyb3coJ2NyeXB0by5zdWJ0bGUuaW1w
b3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShwdWJsaWNLZXlK
U09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pJyk7CitzaG91bGRU
aHJvdygnY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpT
T04uc3RyaW5naWZ5KHByaXZhdGVLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbInNpZ24i
LCAidmVyaWZ5Il0pJyk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1pbXBv
cnQtandrLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2Nz
MS12MV81LWltcG9ydC1qd2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iN2JlODdmMjI4ZjA2MmExODI4ZDJm
MzEwYmIxNWQ3MWI3N2Q0NjE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1pbXBvcnQtandrLmh0bWwKQEAgLTAsMCAr
MSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigiVGVzdCBpbXBvcnRpbmcgYW4gUlNBIGtleSBmb3IgUlNBU1NBLVBLQ1MxLXYxXzUu
Iik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIgZXh0cmFjdGFibGUgPSB0cnVlOwor
Cit2YXIgcHVibGljS2V5SlNPTiA9IHsKKyAgICBrdHk6ICJSU0EiLAorICAgIGFsZzogIlJTMjU2
IiwKKyAgICBuOiAicmNDVUN2N09jMUhWYW0xREloQ3pxa25UaFdhd09wOFFMazhaaXkycDEwQnlq
UUZDYWpvRml5dUFXbC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6SXpjLU1iTFNISUdnV1FHTzIxbEdp
SW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVNc0RoRDZzMmdWOW13
SGtydGtDeHRNV2RCaS03N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5ODliRnljOHRP
T0VJYjB4VVNmUFN6M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5M0JpdzY0cXVu
M2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3MktVcDAybUpEWmlpeWlnbHhN
TF9pMy1fQ2VlY0N3IiwKKyAgICBlOiAiQVFBQiIKK307CisKK3ZhciBwcml2YXRlS2V5SlNPTiA9
IHsKKyAgICBrdHk6ICJSU0EiLAorICAgIGFsZzogIlJTMjU2IiwKKyAgICBuOiAicmNDVUN2N09j
MUhWYW0xREloQ3pxa25UaFdhd09wOFFMazhaaXkycDEwQnlqUUZDYWpvRml5dUFXbC1SMVdYWmFm
NHhpdExScmFjVDlhZ3B6SXpjLU1iTFNISUdnV1FHTzIxbEdpSW15NWZ0Wi1EOGJIQXFSejJ5MTVw
ekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVNc0RoRDZzMmdWOW13SGtydGtDeHRNV2RCaS03N2FzOHdH
bWxOUmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5ODliRnljOHRPT0VJYjB4VVNmUFN6M0xQU0NueVl6
NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5M0JpdzY0cXVuM2p1VWxOV3NKM3puZ2tPZHRlWVd5
dHg1UXI0WEtOczZSLU15eXE3MktVcDAybUpEWmlpeWlnbHhNTF9pMy1fQ2VlY0N3IiwKKyAgICBl
OiAiQVFBQiIsCisgICAgZDogImVOTFMzN2FDejdSWFNOUERfRHRMQko2ajVUOGNTeGR6UkJDalBh
STZXY0dxSnAxNmxxM1VUd3VvRExBcWxBOW9HWW0yMzhkc0lXcHV1Y1BfbFF0YldlLTdTcHhvSTZf
dm1ZR2Y3WVZVSHYxLURGOXFpT21Tck1tZHhNblZPellYWThSYVQ2dGhQam5fSjVjZkxWMnhJX0x3
c3JNdG1wZFN5TmxnWDB6VFVod3R1YWhnQUtNRUNoWWpIMkVuakhkSHc2c1kyLXdBcGRjUUk3VUxF
MG9vNVJ6YlFacG11aGNOOWhpQmMwTDNoaEYwcW81MG1ibDAyXzY1X0dRN0RwVmtYQnhOZ1JCTHps
UGFibXp6RzJvQWhmZWZMZ1ltU0Mxb3BhQ2tYRTZ2UldRTldOTDQ1UlpOWkZZTTN1b0pnaE9NcUdl
b2NNMEJwamRDaEhyUE9sRnZTUSIsCisgICAgcDogIjRtaVR1QWpLTWVINXVKNUtCMzk3UVV3aGJr
WUVnU2JjQTJtaWZtU2t2RTIwMThnYjU1cWtCSEsxZVZyeWYxX200M0xObGM2T19hazZnZnpkWkla
dlM1TkNHalBsMHEwOXBsVXB1OHFGT1NzcEJ3QTY3cUdINzZsRmxaTG5fZDR5Z2xTN3dmTHJ1NF81
WXM4cUxMcy1EcVZMdml3cG9zT255eVdxd001QVhwMCIsCisgICAgcTogInhIWXJ6a2l2dG1uel9z
R2NobldHYzBxLXBET2tLaWNwdFJwdjJwTUZJSVh4bkZYNWFNZUVYSVpqVnVqWHR3VXkxVWxGSU4y
R1pKU3Z5NUtKNzltdV9YeU5uRkhNemVkSC1BM2VlM3U4aDFVVXJaRi12VXUxX2U0VV94NjdOTjFk
ZWR6VVNLeW5ON3BGbDNPa3VTaE1CV0dWLWN3ek9QZGNWQWZWdVpseFVNYyIsCisgICAgZHA6ICJm
QnpEellEVUJtQlFHb3A3SG4wZHZmX1QyN1Y2UnFwY3RXbzA3NENRWmNGYlAyYXRGVnRLU2ozdmlX
VDN4aWQyVkh6Y2dpREhkZnBNM25FVmxFTzF3d0lvbkdDU3ZkakdFT1ppaUZWT2pyWkFPVnhBOGd1
T2p5eUZ2cWJYa2UwNlZ3UElJVnZmS2VTVTJ6dWhiUF9fMXR0NkZfZnhvdzRLYjJ4b25HVDBHR2si
LAorICAgIGRxOiAiam1FMkRpSVBkaHdEZ0xYQVFwSWFCcVE4MWJPM1hmVlRfTFJVTEF3d3d3bFB1
UVYxNDhIMDR6bGg5VEo2WTJHWkhZb2tWMVUwZU9CcEp4ZmtiN2RMWXRwSnB1aUJqUmY0eUlVRW9H
bGtrSV9RbEpuRlNGci1ZakdSZGZOSHFXQmt4bFNNWkw3NzBSOW1JQVRuZEdrSDd6NXgtcjlLd0Ja
RkM0RkNHMmhnX3pFIiwKKyAgICBxaTogIllDWF9wTHdiTUJBMVRoVkgwV2N3bW55dHFOY3JNQ0V3
VG03QnlBMmVVNm5XYlFyVUx2ZjdtOV9remZMVWNqc25wQVZsQlFHNUpNWE15MFNxNHB0d2J5d3Nh
NS1HOEtBT09PUjJMM3Y0aEMtRXlzOWZ0Z0ZNXzNpMG80MGVlUUg0YjNoYVBibnRySWVNZzhJemxP
dVZZS2Y5LTJRdUtEb1dlUmRkN05zZHhUayIKK307CisKK2RlYnVnKCJJbXBvcnRpbmcgYSBwdWJs
aWMga2V5Li4uIik7CitjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4
QXJyYXkoSlNPTi5zdHJpbmdpZnkocHVibGljS2V5SlNPTikpLCBudWxsLCBleHRyYWN0YWJsZSwg
WyJzaWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHB1YmxpY0tl
eSA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgicHVibGljS2V5LnRvU3RyaW5nKCkiLCAiJ1tvYmpl
Y3QgS2V5XSciKTsKKyAgICBzaG91bGRCZSgicHVibGljS2V5LnR5cGUiLCAiJ3B1YmxpYyciKTsK
KyAgICBzaG91bGRCZSgicHVibGljS2V5LnVzYWdlcyIsICJbJ3NpZ24nLCd2ZXJpZnknXSIpOwor
ICAgIHNob3VsZEJlKCJwdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ1JTQVNTQS1QS0NTMS12
MV81JyIpOworICAgIHNob3VsZEJlKCJwdWJsaWNLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgi
LCAiMjA0OCIpOworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKHB1YmxpY0tleS5hbGdv
cml0aG0ucHVibGljRXhwb25lbnQpIiwgIicwMTAwMDEnIik7CisgICAgc2hvdWxkQmUoInB1Ymxp
Y0tleS5hbGdvcml0aG0uaGFzaC5uYW1lIiwgIidTSEEtMjU2JyIpOworICAgIGRlYnVnKCJcbklt
cG9ydGluZyBhIHByaXZhdGUga2V5Li4uIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1w
b3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShwcml2YXRlS2V5
SlNPTikpLCBudWxsLCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKTsKK30pLnRoZW4o
ZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgcHJpdmF0ZUtleSA9IHJlc3VsdDsKKyAgICBzaG91bGRC
ZSgicHJpdmF0ZUtleS50b1N0cmluZygpIiwgIidbb2JqZWN0IEtleV0nIik7CisgICAgc2hvdWxk
QmUoInByaXZhdGVLZXkudHlwZSIsICIncHJpdmF0ZSciKTsKKyAgICBzaG91bGRCZSgicHJpdmF0
ZUtleS51c2FnZXMiLCAiWydzaWduJywndmVyaWZ5J10iKTsKKyAgICBzaG91bGRCZSgicHJpdmF0
ZUtleS5hbGdvcml0aG0ubmFtZSIsICInUlNBU1NBLVBLQ1MxLXYxXzUnIik7CisgICAgc2hvdWxk
QmUoInByaXZhdGVLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOworICAgIHNo
b3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKHByaXZhdGVLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9u
ZW50KSIsICInMDEwMDAxJyIpOworICAgIHNob3VsZEJlKCJwcml2YXRlS2V5LmFsZ29yaXRobS5o
YXNoLm5hbWUiLCAiJ1NIQS0yNTYnIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2Ny
aXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LXNpZ24tdmVyaWZ5LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtc2lnbi12
ZXJpZnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5NjZjODYzODQzN2Y4ZGMzZmRkZjMwMTg2
MzFlZDczZWUxZTBjYzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LXNpZ24tdmVyaWZ5LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDIxIEBACitUZXN0IGltcG9ydGluZyBhbiBSU0Ega2V5IGZvciBSU0FTU0EtUEtDUzEt
djFfNS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0ltcG9ydGluZyBhIHB1Ymxp
YyBrZXkuLi4KKworSW1wb3J0aW5nIGEgcHJpdmF0ZSBrZXkuLi4KKworU2lnbmluZyBzb21lIHRl
eHQuLi4KK1BBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShzaWduYXR1cmUpKSBp
cyAnMGZkOWE4YWVmNGNjMTg3NmMwYjc2MjU0NTMzNmM2ZDFmYjMxNWFlMTZhZTRiNWU0YmYzNGQz
ODRkODU4NWVhN2EwMWU3NmVhMDllZTdmN2VlOGQxYzEyMmU3ZGQxNWI3Yzk0YTU3M2IyYWEwNzIw
M2U4ZDEzYmM2ZmQxNjE1NmNkOGU1ZjBjMTVhMTVkY2NiNjJkMTUyMTI3ZmNhMDk4ODJmYjUzYmMz
ZTYwYWI1ODZkMTViOTVjZjQxMWUzYWFiNGExYzIzMWE3ZTkxYWFiMDllZTNkNGIxM2QxMWU5NzUw
NWRkZmY3NzY4MzQ3MGRhNTEwZWU3NmU4YmQ1MzBjNTZhODVmOTAxNjI2YTVhNzEwZjcxNmYxMTNk
ZmU5Y2Y2YzQ3M2VlMTZmYTI0OGFlYTM0ODBhMTAzM2FiZTMwZjRjMTI0MzI4OWE2NjFlNjRkNzgx
OGI1NTY5ODI4MDY4ODA5NzEzNTk2OGM2ZDRiMDI5NDk2ZDg1Y2FiMmE2N2U0Njk2NzM3NzgxZjcw
ZTQzOTJjN2RmNzFiYmQ2YzkyNDY1OTQ3ZjAyOWExZGU0ODE2MGFjZWQxMWI1NzIxYjFjZDI1MDM5
ZmUyYzE2YzJiMzhkZTczZGYzYjlhODNlM2VhNzU1ZmQwY2ZlNTFjYTA2YjYxZmFkZjZkODQ2Nzdm
OTUnCisKK1ZlcmlmeWluZyB0aGUgc2lnbmF0dXJlLi4uCitQQVNTIHZlcmlmaWNhdGlvblJlc3Vs
dCBpcyB0cnVlCisKK1ZlcmlmeWluZyBhIGJhZCBzaWduYXR1cmUuLi4KK1BBU1MgdmVyaWZpY2F0
aW9uUmVzdWx0IGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9yc2Fzc2EtcGtjczEtdjFfNS1zaWduLXZlcmlmeS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1zaWduLXZlcmlmeS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjVhNjU1NmRkNjg5MTFjYWYzNzE5MGE2ZGI5MzE4OGNmMjRmOWE1MjAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81
LXNpZ24tdmVyaWZ5Lmh0bWwKQEAgLTAsMCArMSw2OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCBpbXBvcnRpbmcgYW4gUlNB
IGtleSBmb3IgUlNBU1NBLVBLQ1MxLXYxXzUuIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOwor
Cit2YXIgZXh0cmFjdGFibGUgPSB0cnVlOworCit2YXIgcHVibGljS2V5SlNPTiA9IHsKKyAgICBr
dHk6ICJSU0EiLAorICAgIGFsZzogIlJTMjU2IiwKKyAgICBuOiBCYXNlNjRVUkwuc3RyaW5naWZ5
KGhleFN0cmluZ1RvVWludDhBcnJheSgiQURDMDk0MEFGRUNFNzM1MUQ1NkE2RDQzMjIxMEIzQUE0
OUQzODU2NkIwM0E5RjEwMkU0RjE5OEIyREE5RDc0MDcyOEQwMTQyNkEzQTA1OEIyQjgwNUE1Rjkx
RDU2NUQ5NjlGRTMxOEFEMkQxQURBNzEzRjVBODI5Q0M4Q0RDRjhDNkNCNDg3MjA2ODE2NDA2M0I2
RDY1MUEyMjI2Q0I5N0VENjdFMEZDNkM3MDJBNDczREIyRDc5QTczMEY4NzM4MDg0QTJFRUQ3NDky
MkMzQTExOUQxRDEwMUI5MzJDMEUxMEZBQjM2ODE1RjY2QzA3OTJCQjY0MEIxQjRDNTlEMDYyRkJC
RURBQjNDQzA2OUE1MzUxOTVENzBFNEEwNjQzMkNBRjE0OUMyNEEwMDM1M0EwQjk5RjdDRjVCMTcy
NzNDQjRFMzg0MjFCRDMxNTEyN0NGNEIzRENCM0QyMEE3Qzk4Q0ZBRjFBMEUzOThBNTVFMzQ3RkEy
ODNDRTdCMzkyNzMyNTlCMUIyMTMyREMxOEIwRUI4QUFFOUY3OEVFNTI1MzU2QjA5REYzOUUwOTBF
NzZENzk4NUIyQjcxRTUwQUY4NUNBMzZDRTkxRjhDQ0IyQUJCRDhBNTI5RDM2OTg5MEQ5OEEyQ0Ey
ODI1QzRDMkZGOEI3RkJGMDlFNzlDMEIiKSksCisgICAgZTogQmFzZTY0VVJMLnN0cmluZ2lmeSho
ZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAxMDAwMSIpKSwKK307CisKK3ZhciBwcml2YXRlS2V5SlNP
TiA9IHsKKyAgICBrdHk6ICJSU0EiLAorICAgIGFsZzogIlJTMjU2IiwKKyAgICBuOiBCYXNlNjRV
Ukwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiQURDMDk0MEFGRUNFNzM1MUQ1NkE2
RDQzMjIxMEIzQUE0OUQzODU2NkIwM0E5RjEwMkU0RjE5OEIyREE5RDc0MDcyOEQwMTQyNkEzQTA1
OEIyQjgwNUE1RjkxRDU2NUQ5NjlGRTMxOEFEMkQxQURBNzEzRjVBODI5Q0M4Q0RDRjhDNkNCNDg3
MjA2ODE2NDA2M0I2RDY1MUEyMjI2Q0I5N0VENjdFMEZDNkM3MDJBNDczREIyRDc5QTczMEY4NzM4
MDg0QTJFRUQ3NDkyMkMzQTExOUQxRDEwMUI5MzJDMEUxMEZBQjM2ODE1RjY2QzA3OTJCQjY0MEIx
QjRDNTlEMDYyRkJCRURBQjNDQzA2OUE1MzUxOTVENzBFNEEwNjQzMkNBRjE0OUMyNEEwMDM1M0Ew
Qjk5RjdDRjVCMTcyNzNDQjRFMzg0MjFCRDMxNTEyN0NGNEIzRENCM0QyMEE3Qzk4Q0ZBRjFBMEUz
OThBNTVFMzQ3RkEyODNDRTdCMzkyNzMyNTlCMUIyMTMyREMxOEIwRUI4QUFFOUY3OEVFNTI1MzU2
QjA5REYzOUUwOTBFNzZENzk4NUIyQjcxRTUwQUY4NUNBMzZDRTkxRjhDQ0IyQUJCRDhBNTI5RDM2
OTg5MEQ5OEEyQ0EyODI1QzRDMkZGOEI3RkJGMDlFNzlDMEIiKSksCisgICAgZTogQmFzZTY0VVJM
LnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAxMDAwMSIpKSwKKyAgICBkOiBCYXNl
NjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiNzhEMkQyREZCNjgyQ0ZCNDU3
NDhEM0MzRkMzQjRCMDQ5RUEzRTUzRjFDNEIxNzczNDQxMEEzM0RBMjNBNTlDMUFBMjY5RDdBOTZB
REQ0NEYwQkE4MENCMDJBOTQwRjY4MTk4OUI2REZDNzZDMjE2QTZFQjlDM0ZGOTUwQjVCNTlFRkJC
NEE5QzY4MjNBRkVGOTk4MTlGRUQ4NTU0MUVGRDdFMEM1RjZBODhFOTkyQUNDOTlEQzRDOUQ1M0Iz
NjE3NjNDNDVBNEZBQjYxM0UzOUZGMjc5NzFGMkQ1REIxMjNGMkYwQjJCMzJEOUE5NzUyQzhEOTYw
NUY0Q0QzNTIxQzJEQjlBODYwMDBBMzA0MEExNjIzMUY2MTI3OEM3NzQ3QzNBQjE4REJFQzAwQTVE
NzEwMjNCNTBCMTM0QTI4RTUxQ0RCNDE5QTY2QkExNzBERjYxODgxNzM0MkY3ODYxMTc0QUE4RTc0
OTlCOTc0REJGRUI5RkM2NDNCMEU5NTY0NUMxQzREODExMDRCQ0U1M0RBNkU2Q0YzMUI2QTAwODVG
NzlGMkUwNjI2NDgyRDY4QTVBMEE0NUM0RUFGNDU2NDBENThEMkY4RTUxNjRENjQ1NjBDREVFQTA5
ODIxMzhDQTg2N0E4NzBDRDAxQTYzNzQyODQ3QUNGM0E1MTZGNDkiKSksCisgICAgcDogQmFzZTY0
VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIkUyNjg5M0I4MDhDQTMxRTFGOUI4
OUU0QTA3N0Y3QjQxNEMyMTZFNDYwNDgxMjZEQzAzNjlBMjdFNjRBNEJDNERCNEQ3QzgxQkU3OUFB
NDA0NzJCNTc5NUFGMjdGNUZFNkUzNzJDRDk1Q0U4RUZEQTkzQTgxRkNERDY0ODY2RjRCOTM0MjFB
MzNFNUQyQUQzREE2NTUyOUJCQ0E4NTM5MkIyOTA3MDAzQUVFQTE4N0VGQTk0NTk1OTJFN0ZEREUz
MjgyNTRCQkMxRjJFQkJCOEZGOTYyQ0YyQTJDQkIzRTBFQTU0QkJFMkMyOUEyQzNBN0NCMjVBQUMw
Q0U0MDVFOUQiKSksCisgICAgcTogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4
QXJyYXkoIkM0NzYyQkNFNDhBRkI2NjlGM0ZFQzE5Qzg2NzU4NjczNEFCRUE0MzNBNDJBMjcyOUI1
MUE2RkRBOTMwNTIwODVGMTlDNTVGOTY4Qzc4NDVDODY2MzU2RThEN0I3MDUzMkQ1NDk0NTIwREQ4
NjY0OTRBRkNCOTI4OUVGRDlBRUZEN0M4RDlDNTFDQ0NERTc0N0Y4MERERTdCN0JCQzg3NTUxNEFE
OTE3RUJENEJCNUZERUUxNEZGMUVCQjM0REQ1RDc5RENENDQ4QUNBNzM3QkE0NTk3NzNBNEI5Mjg0
QzA1NjE5NUY5Q0MzMzM4Rjc1QzU0MDdENUI5OTk3MTUwQzciKSksCisgICAgZHA6IEJhc2U2NFVS
TC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCI3QzFDQzNDRDgwRDQwNjYwNTAxQThB
N0IxRTdEMURCREZGRDNEQkI1N0E0NkFBNUNCNTZBMzRFRjgwOTA2NUMxNUIzRjY2QUQxNTVCNEE0
QTNERUY4OTY0RjdDNjI3NzY1NDdDREM4MjIwQzc3NUZBNENERTcxMTU5NDQzQjVDMzAyMjg5QzYw
OTJCREQ4QzYxMEU2NjI4ODU1NEU4RUI2NDAzOTVDNDBGMjBCOEU4RjJDODVCRUE2RDc5MUVEM0E1
NzAzQzgyMTVCREYyOUU0OTREQjNCQTE2Q0ZGRkZENkRCN0ExN0Y3RjFBMzBFMEE2RjZDNjg5QzY0
RjQxODY5IikpLAorICAgIGRxOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhB
cnJheSgiOEU2MTM2MEUyMjBGNzYxQzAzODBCNUMwNDI5MjFBMDZBNDNDRDVCM0I3NURGNTUzRkNC
NDU0MkMwQzMwQzMwOTRGQjkwNTc1RTNDMUY0RTMzOTYxRjUzMjdBNjM2MTk5MUQ4QTI0NTc1NTM0
NzhFMDY5MjcxN0U0NkZCNzRCNjJEQTQ5QTZFODgxOEQxN0Y4Qzg4NTA0QTA2OTY0OTA4RkQwOTQ5
OUM1NDg1QUZFNjIzMTkxNzVGMzQ3QTk2MDY0QzY1NDhDNjRCRUZCRDExRjY2MjAwNEU3NzQ2OTA3
RUYzRTcxRkFCRjRBQzAxNjQ1MEI4MTQyMUI2ODYwRkYzMSIpKSwKKyAgICBxaTogQmFzZTY0VVJM
LnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjYwMjVGRkE0QkMxQjMwMTAzNTRFMTU0
N0QxNjczMDlBN0NBREE4RDcyQjMwMjEzMDRFNkVDMUM4MEQ5RTUzQTlENjZEMEFENDJFRjdGQjlC
REZFNENERjJENDcyM0IyN0E0MDU2NTA1MDFCOTI0QzVDQ0NCNDRBQUUyOUI3MDZGMkMyQzZCOUY4
NkYwQTAwRTM4RTQ3NjJGN0JGODg0MkY4NENBQ0Y1RkI2MDE0Q0ZGNzhCNEEzOEQxRTc5MDFGODZG
Nzg1QTNEQjlFREFDODc4QzgzQzIzMzk0RUI5NTYwQTdGREZCNjQyRTI4M0ExNjc5MTc1REVDREIx
REM1MzkiKSkKK307CisKK3ZhciBkYXRhID0gYXNjaWlUb1VpbnQ4QXJyYXkoIkhlbGxvLCB3b3Js
ZCEiKTsKKworZGVidWcoIkltcG9ydGluZyBhIHB1YmxpYyBrZXkuLi4iKTsKK2NyeXB0by5zdWJ0
bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShwdWJs
aWNLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pLnRoZW4o
ZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgcHVibGljS2V5ID0gcmVzdWx0OworICAgIGRlYnVnKCJc
bkltcG9ydGluZyBhIHByaXZhdGUga2V5Li4uIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUu
aW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShwcml2YXRl
S2V5SlNPTikpLCBudWxsLCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKTsKK30pLnRo
ZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgcHJpdmF0ZUtleSA9IHJlc3VsdDsKKyAgICBkZWJ1
ZygiXG5TaWduaW5nIHNvbWUgdGV4dC4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLnNp
Z24oeyBuYW1lOiAiUlNBU1NBLVBLQ1MxLXYxXzUiLCBoYXNoOiAiU0hBLTI1NiIgfSwgcHJpdmF0
ZUtleSwgZGF0YSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHNpZ25hdHVyZSA9
IHJlc3VsdDsKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShz
aWduYXR1cmUpKSIsICInMGZkOWE4YWVmNGNjMTg3NmMwYjc2MjU0NTMzNmM2ZDFmYjMxNWFlMTZh
ZTRiNWU0YmYzNGQzODRkODU4NWVhN2EwMWU3NmVhMDllZTdmN2VlOGQxYzEyMmU3ZGQxNWI3Yzk0
YTU3M2IyYWEwNzIwM2U4ZDEzYmM2ZmQxNjE1NmNkOGU1ZjBjMTVhMTVkY2NiNjJkMTUyMTI3ZmNh
MDk4ODJmYjUzYmMzZTYwYWI1ODZkMTViOTVjZjQxMWUzYWFiNGExYzIzMWE3ZTkxYWFiMDllZTNk
NGIxM2QxMWU5NzUwNWRkZmY3NzY4MzQ3MGRhNTEwZWU3NmU4YmQ1MzBjNTZhODVmOTAxNjI2YTVh
NzEwZjcxNmYxMTNkZmU5Y2Y2YzQ3M2VlMTZmYTI0OGFlYTM0ODBhMTAzM2FiZTMwZjRjMTI0MzI4
OWE2NjFlNjRkNzgxOGI1NTY5ODI4MDY4ODA5NzEzNTk2OGM2ZDRiMDI5NDk2ZDg1Y2FiMmE2N2U0
Njk2NzM3NzgxZjcwZTQzOTJjN2RmNzFiYmQ2YzkyNDY1OTQ3ZjAyOWExZGU0ODE2MGFjZWQxMWI1
NzIxYjFjZDI1MDM5ZmUyYzE2YzJiMzhkZTczZGYzYjlhODNlM2VhNzU1ZmQwY2ZlNTFjYTA2YjYx
ZmFkZjZkODQ2NzdmOTUnIik7CisKKyAgICBkZWJ1ZygiXG5WZXJpZnlpbmcgdGhlIHNpZ25hdHVy
ZS4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLnZlcmlmeSh7IG5hbWU6ICJSU0FTU0Et
UEtDUzEtdjFfNSIsIGhhc2g6ICJTSEEtMjU2IiB9LCBwdWJsaWNLZXksIHNpZ25hdHVyZSwgZGF0
YSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHZlcmlmaWNhdGlvblJlc3VsdCA9
IHJlc3VsdDsKKyAgICBzaG91bGRCZSgidmVyaWZpY2F0aW9uUmVzdWx0IiwgInRydWUiKTsKKyAg
ICBkZWJ1ZygiXG5WZXJpZnlpbmcgYSBiYWQgc2lnbmF0dXJlLi4uIik7CisgICAgcmV0dXJuIGNy
eXB0by5zdWJ0bGUudmVyaWZ5KHsgbmFtZTogIlJTQVNTQS1QS0NTMS12MV81IiwgaGFzaDogIlNI
QS0yNTYiIH0sIHB1YmxpY0tleSwgbmV3IFVpbnQ4QXJyYXkoMjU2KSwgZGF0YSk7Cit9KS50aGVu
KGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHZlcmlmaWNhdGlvblJlc3VsdCA9IHJlc3VsdDsKKyAg
ICBzaG91bGRCZSgidmVyaWZpY2F0aW9uUmVzdWx0IiwgImZhbHNlIik7CisgICAgZmluaXNoSlNU
ZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3NoYS0xLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM5MGU4NzM2MDI4MzAwYzE2NDZlOWU3N2M2OGYzOGVjY2Y3MmYxOTcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3NoYS0xLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE2IEBACitUZXN0IGNyeXB0by5zdWJ0bGUuZGlnZXN0LgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworU0hBMSBvZiBbXQorUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5l
dyBVaW50OEFycmF5KGRpZ2VzdCkpIGlzICdkYTM5YTNlZTVlNmI0YjBkMzI1NWJmZWY5NTYwMTg5
MGFmZDgwNzA5JworU0hBMSBvZiBbMHgwXQorUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50
OEFycmF5KGRpZ2VzdCkpIGlzICc1YmE5M2M5ZGIwY2ZmOTNmNTJiNTIxZDc0MjBlNDNmNmVkYTI3
ODRmJworU0hBMSBvZiBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdCitQQVNTIGJ5
dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkgaXMgJzJjN2U3YzM4NGY3ODI5
Njk0MjgyYjFlM2E2MjE2ZGVmODA4MmQwNTUnCitQQVNTIGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVL
ZXkoJ3NoYS0xJykgdGhyZXcgZXhjZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yIChET00gRXhjZXB0
aW9uIDkpOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTEuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by93
ZWJraXRTdWJ0bGUvc2hhLTEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDMxMzYwNGZiZjc3YTAyMjI0YmY4
NTJhNTdlNGJmZmE4YjFjM2RmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9zaGEtMS5odG1sCkBAIC0wLDAgKzEsNDQgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgY3J5cHRvLnN1
YnRsZS5kaWdlc3QuIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitQcm9taXNlLnJlc29s
dmUobnVsbCkudGhlbihmdW5jdGlvbigpIHsKKyAgICBkZWJ1ZygiU0hBMSBvZiBbXSIpOworICAg
IHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCgnc2hhLTEnLCBuZXcgVWludDhBcnJheShbXSkp
OworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBkaWdlc3QgPSByZXN1bHQ7CisgICAg
c2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkiLCAiJ2Rh
MzlhM2VlNWU2YjRiMGQzMjU1YmZlZjk1NjAxODkwYWZkODA3MDknIik7CisKKyAgICBkZWJ1Zygi
U0hBMSBvZiBbMHgwXSIpCisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAn
c2hhLTEnfSwgbmV3IFVpbnQ4QXJyYXkoWzBdKSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkg
eworICAgIGRpZ2VzdCA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhu
ZXcgVWludDhBcnJheShkaWdlc3QpKSIsICInNWJhOTNjOWRiMGNmZjkzZjUyYjUyMWQ3NDIwZTQz
ZjZlZGEyNzg0ZiciKTsKKworICAgIGRlYnVnKCJTSEExIG9mIFswLCAxLCAyLCAzLCA0LCA1LCA2
LCA3LCA4LCA5LCAxMF0iKTsKKyAgICB2YXIgZGF0YSA9IG5ldyBVaW50OEFycmF5KFswLCAxLCAy
LCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMF0pOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRp
Z2VzdCh7bmFtZTogJ3NoYS0xJ30sIGRhdGEpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsK
KyAgICBkaWdlc3QgPSByZXN1bHQ7CisgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3
IFVpbnQ4QXJyYXkoZGlnZXN0KSkiLCAiJzJjN2U3YzM4NGY3ODI5Njk0MjgyYjFlM2E2MjE2ZGVm
ODA4MmQwNTUnIik7CisKKyAgICAvLyBBbGwgU0hBLTEgY2FuIGRvIGlzIGRpZ2VzdC4KKyAgICBz
aG91bGRUaHJvdygiY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSgnc2hhLTEnKSIpOworICAgIGZp
bmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMjI0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTIyNC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZmQ1MDE0NWQ1NjM1YTU5YTgwYWFkODhmZGYyNTk0YzRjNzM5Y2EwZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTIyNC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdCBjcnlwdG8uc3VidGxlLmRpZ2VzdC4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1NIQTIyNCBvZiBbXQorUEFTUyBieXRl
c1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIGlzICdkMTRhMDI4YzJhM2EyYmM5
NDc2MTAyYmIyODgyMzRjNDE1YTJiMDFmODI4ZWE2MmFjNWIzZTQyZicKK1NIQTIyNCBvZiBbMHgw
XQorUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIGlzICdmZmY5
MjkyYjQyMDE2MTdiZGM0ZDMwNTNmY2UwMjczNDE2NmE2ODNkN2Q4NThhN2Y1ZjU5YjA3MycKK1NI
QTIyNCBvZiBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdCitQQVNTIGJ5dGVzVG9I
ZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkgaXMgJzc2N2QwY2RjMTEwNzliYThkY2Ey
NzZkZjVjNGI4NTUwN2RlNjdkY2U0N2VkYTRjZDkxOTZkMzEyJworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTIyNC5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9zaGEtMjI0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzNmNDc2YmRjYzAyZTg2YTQwMGVk
Mzc4MGY3YTU1ODI2NGZhMGJhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0
by93ZWJraXRTdWJ0bGUvc2hhLTIyNC5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgY3J5cHRv
LnN1YnRsZS5kaWdlc3QuIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitQcm9taXNlLnJl
c29sdmUobnVsbCkudGhlbihmdW5jdGlvbigpIHsKKyAgICBkZWJ1ZygiU0hBMjI0IG9mIFtdIik7
CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0KCdzaGEtMjI0JywgbmV3IFVpbnQ4QXJy
YXkoW10pKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgZGlnZXN0ID0gcmVzdWx0
OworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkp
IiwgIidkMTRhMDI4YzJhM2EyYmM5NDc2MTAyYmIyODgyMzRjNDE1YTJiMDFmODI4ZWE2MmFjNWIz
ZTQyZiciKTsKKworICAgIGRlYnVnKCJTSEEyMjQgb2YgWzB4MF0iKQorICAgIHJldHVybiBjcnlw
dG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0yMjQnfSwgbmV3IFVpbnQ4QXJyYXkoWzBdKSk7
Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGRpZ2VzdCA9IHJlc3VsdDsKKyAgICBz
aG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSIsICInZmZm
OTI5MmI0MjAxNjE3YmRjNGQzMDUzZmNlMDI3MzQxNjZhNjgzZDdkODU4YTdmNWY1OWIwNzMnIik7
CisKKyAgICBkZWJ1ZygiU0hBMjI0IG9mIFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAx
MF0iKTsKKyAgICB2YXIgZGF0YSA9IG5ldyBVaW50OEFycmF5KFswLCAxLCAyLCAzLCA0LCA1LCA2
LCA3LCA4LCA5LCAxMF0pOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTog
J3NoYS0yMjQnfSwgZGF0YSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGRpZ2Vz
dCA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJh
eShkaWdlc3QpKSIsICInNzY3ZDBjZGMxMTA3OWJhOGRjYTI3NmRmNWM0Yjg1NTA3ZGU2N2RjZTQ3
ZWRhNGNkOTE5NmQzMTInIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0Pgor
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL3NoYS0yNTYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1
YnRsZS9zaGEtMjU2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOWFiMjdhYjExOGExMTFkYzI1
ZDIwMmVkOTZlODNhYjk5M2E5NDcyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5
cHRvL3dlYmtpdFN1YnRsZS9zaGEtMjU2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitU
ZXN0IGNyeXB0by5zdWJ0bGUuZGlnZXN0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworU0hBMjU2IG9mIFtdCitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGln
ZXN0KSkgaXMgJ2UzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0
Y2E0OTU5OTFiNzg1MmI4NTUnCitTSEEyNTYgb2YgWzB4MF0KK1BBU1MgYnl0ZXNUb0hleFN0cmlu
ZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSBpcyAnNmUzNDBiOWNmZmIzN2E5ODljYTU0NGU2YmI3
ODBhMmM3ODkwMWQzZmIzMzczODc2ODUxMWEzMDYxN2FmYTAxZCcKK1NIQTI1NiBvZiBbMCwgMSwg
MiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdCitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVp
bnQ4QXJyYXkoZGlnZXN0KSkgaXMgJzc4YTYyNzMxMDNkMTdjMzlhMGI2MTI2ZTIyNmNlYzcwZTMz
MzM3ZjRiYzZhMzgwNjc0MDFiNTRhMzNlNzhlYWQnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9zaGEtMjU2Lmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3Vi
dGxlL3NoYS0yNTYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzBjNWFkMGI2NjM2N2FhZjBiYTJlMWRiNmE3
MWZiOWU1MDQwNThkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9zaGEtMjU2Lmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCBjcnlwdG8uc3VidGxl
LmRpZ2VzdC4iKTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK1Byb21pc2UucmVzb2x2ZShu
dWxsKS50aGVuKGZ1bmN0aW9uKCkgeworICAgIGRlYnVnKCJTSEEyNTYgb2YgW10iKTsKKyAgICBy
ZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3QoJ3NoYS0yNTYnLCBuZXcgVWludDhBcnJheShbXSkp
OworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBkaWdlc3QgPSByZXN1bHQ7CisgICAg
c2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkiLCAiJ2Uz
YjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1
MmI4NTUnIik7CisKKyAgICBkZWJ1ZygiU0hBMjU2IG9mIFsweDBdIikKKyAgICByZXR1cm4gY3J5
cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMjU2J30sIG5ldyBVaW50OEFycmF5KFswXSkp
OworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBkaWdlc3QgPSByZXN1bHQ7CisgICAg
c2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkiLCAiJzZl
MzQwYjljZmZiMzdhOTg5Y2E1NDRlNmJiNzgwYTJjNzg5MDFkM2ZiMzM3Mzg3Njg1MTFhMzA2MTdh
ZmEwMWQnIik7CisKKyAgICBkZWJ1ZygiU0hBMjU2IG9mIFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3
LCA4LCA5LCAxMF0iKTsKKyAgICB2YXIgZGF0YSA9IG5ldyBVaW50OEFycmF5KFswLCAxLCAyLCAz
LCA0LCA1LCA2LCA3LCA4LCA5LCAxMF0pOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2Vz
dCh7bmFtZTogJ3NoYS0yNTYnfSwgZGF0YSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewor
ICAgIGRpZ2VzdCA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcg
VWludDhBcnJheShkaWdlc3QpKSIsICInNzhhNjI3MzEwM2QxN2MzOWEwYjYxMjZlMjI2Y2VjNzBl
MzMzMzdmNGJjNmEzODA2NzQwMWI1NGEzM2U3OGVhZCciKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsK
K30pOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTM4NC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL3NoYS0zODQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAw
YzVjZTI5NTExOWE5ZDE4OWQ2ODU1YzUzMTQzZjBmMzRlZDY5YWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3NoYS0zODQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTUgQEAKK1Rlc3QgY3J5cHRvLnN1YnRsZS5kaWdlc3QuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitTSEEzODQgb2YgW10KK1BBU1MgYnl0ZXNUb0hleFN0cmluZyhu
ZXcgVWludDhBcnJheShkaWdlc3QpKSBpcyAnMzhiMDYwYTc1MWFjOTYzODRjZDkzMjdlYjFiMWUz
NmEyMWZkYjcxMTE0YmUwNzQzNGMwY2M3YmY2M2Y2ZTFkYTI3NGVkZWJmZTc2ZjY1ZmJkNTFhZDJm
MTQ4OThiOTViJworU0hBMzg0IG9mIFsweDBdCitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVp
bnQ4QXJyYXkoZGlnZXN0KSkgaXMgJ2JlYzAyMWI0ZjM2OGUzMDY5MTM0ZTAxMmMyYjQzMDcwODNk
M2E5YmRkMjA2ZTI0ZTVmMGQ4NmUxM2Q2NjM2NjU1OTMzZWMyYjQxMzQ2NTk2NjgxN2E5YzIwOGEx
MTcxNycKK1NIQTM4NCBvZiBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdCitQQVNT
IGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkgaXMgJzg5YmZjZjU2OWFl
NGFmNzE4NTEwZGE3OGM2NzQxNDEwOWY1NzM5YmI1YzQwZDUxYzljOGM1MGUyYjJjZWU4NmYyZjgw
YzhiOWQ2OGY3YzAxMjAxYTA3MTQ1NzJmZTYwMicKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL3NoYS0zODQuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvc2hhLTM4NC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1YjhjMzc4OWQzZTAyYThjZTk4NDBjZjE1MTJl
MzA1NTBjYzYxZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL3NoYS0zODQuaHRtbApAQCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IGNyeXB0by5zdWJ0bGUu
ZGlnZXN0LiIpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworUHJvbWlzZS5yZXNvbHZlKG51
bGwpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgZGVidWcoIlNIQTM4NCBvZiBbXSIpOworICAgIHJl
dHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCgnc2hhLTM4NCcsIG5ldyBVaW50OEFycmF5KFtdKSk7
Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGRpZ2VzdCA9IHJlc3VsdDsKKyAgICBz
aG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSIsICInMzhi
MDYwYTc1MWFjOTYzODRjZDkzMjdlYjFiMWUzNmEyMWZkYjcxMTE0YmUwNzQzNGMwY2M3YmY2M2Y2
ZTFkYTI3NGVkZWJmZTc2ZjY1ZmJkNTFhZDJmMTQ4OThiOTViJyIpOworCisgICAgZGVidWcoIlNI
QTM4NCBvZiBbMHgwXSIpCisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAn
c2hhLTM4NCd9LCBuZXcgVWludDhBcnJheShbMF0pKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0
KSB7CisgICAgZGlnZXN0ID0gcmVzdWx0OworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5n
KG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIiwgIidiZWMwMjFiNGYzNjhlMzA2OTEzNGUwMTJjMmI0
MzA3MDgzZDNhOWJkZDIwNmUyNGU1ZjBkODZlMTNkNjYzNjY1NTkzM2VjMmI0MTM0NjU5NjY4MTdh
OWMyMDhhMTE3MTcnIik7CisKKyAgICBkZWJ1ZygiU0hBMzg0IG9mIFswLCAxLCAyLCAzLCA0LCA1
LCA2LCA3LCA4LCA5LCAxMF0iKTsKKyAgICB2YXIgZGF0YSA9IG5ldyBVaW50OEFycmF5KFswLCAx
LCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMF0pOworICAgIHJldHVybiBjcnlwdG8uc3VidGxl
LmRpZ2VzdCh7bmFtZTogJ3NoYS0zODQnfSwgZGF0YSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3Vs
dCkgeworICAgIGRpZ2VzdCA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmlu
ZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSIsICInODliZmNmNTY5YWU0YWY3MTg1MTBkYTc4YzY3
NDE0MTA5ZjU3MzliYjVjNDBkNTFjOWM4YzUwZTJiMmNlZTg2ZjJmODBjOGI5ZDY4ZjdjMDEyMDFh
MDcxNDU3MmZlNjAyJyIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKwor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1
YnRsZS9zaGEtNTEyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvc2hhLTUxMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE0N2ZkOTY4OTI4YzcxZWQwYzg5
YTA2NzdmMTEyOGU4ZjBkNDVjYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0
by93ZWJraXRTdWJ0bGUvc2hhLTUxMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVz
dCBjcnlwdG8uc3VidGxlLmRpZ2VzdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1NIQTUxMiBvZiBbXQorUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2Vz
dCkpIGlzICdjZjgzZTEzNTdlZWZiOGJkZjE1NDI4NTBkNjZkODAwN2Q2MjBlNDA1MGI1NzE1ZGM4
M2Y0YTkyMWQzNmNlOWNlNDdkMGQxM2M1ZDg1ZjJiMGZmODMxOGQyODc3ZWVjMmY2M2I5MzFiZDQ3
NDE3YTgxYTUzODMyN2FmOTI3ZGEzZScKK1NIQTUxMiBvZiBbMHgwXQorUEFTUyBieXRlc1RvSGV4
U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIGlzICdiODI0NGQwMjg5ODFkNjkzYWY3YjQ1
NmFmOGVmYTRjYWQ2M2QyODJlMTlmZjE0OTQyYzI0NmU1MGQ5MzUxZDIyNzA0YTgwMmE3MWMzNTgw
YjYzNzBkZTRjZWIyOTNjMzI0YTg0MjMzNDI1NTdkNGU1YzM4NDM4ZjBlMzY5MTBlZScKK1NIQTUx
MiBvZiBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdCitQQVNTIGJ5dGVzVG9IZXhT
dHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkgaXMgJzhmZmFlZTBjY2NjMTYyODUxZmFmMDUx
YWUzODY2N2VlZmQ0MjNjMDE2NGM1MDA1NWY4YWRlMDBhZmMzNzA1ZTNjZGViOTkwMDAwNGIwZTQy
NmNhNjZhYjYzYWEzYjk5YjA3NTI3M2Y0NGZkMzdjMjJhMzU1NWM2ZmQxZjM3Y2NiJworUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTUxMi5odG1sIGIvTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtNTEyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmM2Y2Y0Yzk4
MGFlY2ZhZTk4ZTUxM2Y2YWIwODRjYTNlMTMwM2UxYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTUxMi5odG1sCkBAIC0wLDAgKzEsNDEgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9j
b21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24o
IlRlc3QgY3J5cHRvLnN1YnRsZS5kaWdlc3QuIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOwor
CitQcm9taXNlLnJlc29sdmUobnVsbCkudGhlbihmdW5jdGlvbigpIHsKKyAgICBkZWJ1ZygiU0hB
NTEyIG9mIFtdIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0KCdzaGEtNTEyJywg
bmV3IFVpbnQ4QXJyYXkoW10pKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgZGln
ZXN0ID0gcmVzdWx0OworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFy
cmF5KGRpZ2VzdCkpIiwgIidjZjgzZTEzNTdlZWZiOGJkZjE1NDI4NTBkNjZkODAwN2Q2MjBlNDA1
MGI1NzE1ZGM4M2Y0YTkyMWQzNmNlOWNlNDdkMGQxM2M1ZDg1ZjJiMGZmODMxOGQyODc3ZWVjMmY2
M2I5MzFiZDQ3NDE3YTgxYTUzODMyN2FmOTI3ZGEzZSciKTsKKworICAgIGRlYnVnKCJTSEE1MTIg
b2YgWzB4MF0iKQorICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS01
MTInfSwgbmV3IFVpbnQ4QXJyYXkoWzBdKSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewor
ICAgIGRpZ2VzdCA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcg
VWludDhBcnJheShkaWdlc3QpKSIsICInYjgyNDRkMDI4OTgxZDY5M2FmN2I0NTZhZjhlZmE0Y2Fk
NjNkMjgyZTE5ZmYxNDk0MmMyNDZlNTBkOTM1MWQyMjcwNGE4MDJhNzFjMzU4MGI2MzcwZGU0Y2Vi
MjkzYzMyNGE4NDIzMzQyNTU3ZDRlNWMzODQzOGYwZTM2OTEwZWUnIik7CisKKyAgICBkZWJ1Zygi
U0hBNTEyIG9mIFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMF0iKTsKKyAgICB2YXIg
ZGF0YSA9IG5ldyBVaW50OEFycmF5KFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMF0p
OworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS01MTInfSwgZGF0
YSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGRpZ2VzdCA9IHJlc3VsdDsKKyAg
ICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSIsICIn
OGZmYWVlMGNjY2MxNjI4NTFmYWYwNTFhZTM4NjY3ZWVmZDQyM2MwMTY0YzUwMDU1ZjhhZGUwMGFm
YzM3MDVlM2NkZWI5OTAwMDA0YjBlNDI2Y2E2NmFiNjNhYTNiOTliMDc1MjczZjQ0ZmQzN2MyMmEz
NTU1YzZmZDFmMzdjY2InIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0Pgor
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL3VuaW1wbGVtZW50ZWQtdW53cmFwLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvdW5pbXBsZW1lbnRlZC11bndyYXAtY3Jhc2gtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjcwOGU4ZGYyMzA1MzUzMzBkMzQ1ZDMxZmNmNDQwMjM5MThmZThj
ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3Vu
aW1wbGVtZW50ZWQtdW53cmFwLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK01h
a2Ugc3VyZSB0aGF0IHVud3JhcCBkb2VzIG5vdCBjYXVzZSBhIGNyYXNoLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvdW5pbXBsZW1lbnRlZC11bndyYXAtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by93
ZWJraXRTdWJ0bGUvdW5pbXBsZW1lbnRlZC11bndyYXAtY3Jhc2guaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
M2JhY2I0YWIzNWQ1NmZkYjE0Yjg5ZTBjMzliMzJhMTNlYjU4Y2EzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS91bmltcGxlbWVudGVkLXVud3JhcC1j
cmFzaC5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiTWFrZSBzdXJlIHRoYXQgdW53cmFwIGRvZXMgbm90
IGNhdXNlIGEgY3Jhc2guIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitjcnlwdG8uc3Vi
dGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiQUVTLUtXIiwgbGVuZ3RoOiAyNTZ9LCBmYWxzZSwgWyJ3
cmFwS2V5Il0pLnRoZW4oZnVuY3Rpb24od3JhcHBpbmdLZXkpIHsKKyAgICByZXR1cm4gY3J5cHRv
LnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogIkhNQUMiLCBoYXNoOiB7bmFtZTogIlNIQS0yNTYi
fX0sIHRydWUsIFsic2lnbiIsICJ2ZXJpZnkiXSkudGhlbihmdW5jdGlvbihhZXNLZXkpIHsKKyAg
ICAgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUud3JhcEtleSgicmF3IiwgYWVzS2V5LCB3cmFwcGlu
Z0tleSwge25hbWU6ICJBRVMtS1cifSk7CisgICAgfSk7Cit9KS50aGVuKGZpbmlzaEpTVGVzdCwg
ZmluaXNoSlNUZXN0KTsgLy8gT0sgaWYgdGhlIGJyb3dzZXIgZG9lcyBub3QgY3Jhc2guCis8L3Nj
cmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS91bndyYXBLZXktY2hlY2stdXNhZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS91bndyYXBLZXktY2hlY2stdXNhZ2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZmMzA1MDJiYjVmOWVmMDI1NWVhMjM2ODQ0ZDUwZTFkZjcxOGM4ZmEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3Vud3Jh
cEtleS1jaGVjay11c2FnZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDE6IEtleSB1c2FnZXMgZG8gbm90IGluY2x1ZGUgJ3Vud3JhcEtleScKK1Zl
cmlmeSB0aGF0IHVzYWdlIGlzIHJlc3BlY3RlZCBpbiB1bndyYXBLZXkgb3BlcmF0aW9uLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworSW1wb3J0aW5nIFJTQSBrZXlzLi4uCitJbXBv
cnRpbmcgYW4gQUVTIGtleS4uLgorV3JhcHBpbmcgaXQuLi4KK1Vud3JhcHBpbmcgaXQuLi4KK1BB
U1MgY3J5cHRvLnN1YnRsZS51bndyYXBLZXkoInJhdyIsIHdyYXBwZWRLZXksIHByaXZhdGVLZXks
IHdyYXBBbGdvcml0aG0sICJhZXMtY2JjIiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNy
eXB0Il0pIHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvciAoRE9NIEV4Y2VwdGlvbiA5
KTogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
cnlwdG8vd2Via2l0U3VidGxlL3Vud3JhcEtleS1jaGVjay11c2FnZS5odG1sIGIvTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS91bndyYXBLZXktY2hlY2stdXNhZ2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zYWIwMjZiZWFiYTFlMmJmYzkzOGQ3OTAzMjUwN2NkY2FmNzlhMWRkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS91bndyYXBLZXktY2hlY2st
dXNhZ2UuaHRtbApAQCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCB1c2FnZSBpcyByZXNwZWN0
ZWQgaW4gdW53cmFwS2V5IG9wZXJhdGlvbi4iKTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisK
K3ZhciBwdWJsaWNLZXlKU09OID0geworICAgIGt0eTogIlJTQSIsCisgICAgYWxnOiAiUlNBLU9B
RVAiLAorICAgIG46ICJyY0NVQ3Y3T2MxSFZhbTFESWhDenFrblRoV2F3T3A4UUxrOFppeTJwMTBC
eWpRRkNham9GaXl1QVdsLVIxV1haYWY0eGl0TFJyYWNUOWFncHpJemMtTWJMU0hJR2dXUUdPMjFs
R2lJbXk1ZnRaLUQ4YkhBcVJ6MnkxNXB6RDRjNENFb3U3WFNTTERvUm5SMFFHNU1zRGhENnMyZ1Y5
bXdIa3J0a0N4dE1XZEJpLTc3YXM4d0dtbE5SbGRjT1NnWkRMSzhVbkNTZ0ExT2d1Wjk4OWJGeWM4
dE9PRUliMHhVU2ZQU3ozTFBTQ255WXo2OGFEam1LVmVOSC1pZzg1N09TY3lXYkd5RXkzQml3NjRx
dW4zanVVbE5Xc0ozem5na09kdGVZV3l0eDVRcjRYS05zNlItTXl5cTcyS1VwMDJtSkRaaWl5aWds
eE1MX2kzLV9DZWVjQ3ciLAorICAgIGU6ICJBUUFCIgorfTsKKwordmFyIHByaXZhdGVLZXlKU09O
ID0geworICAgIGt0eTogIlJTQSIsCisgICAgYWxnOiAiUlNBLU9BRVAiLAorICAgIG46ICJyY0NV
Q3Y3T2MxSFZhbTFESWhDenFrblRoV2F3T3A4UUxrOFppeTJwMTBCeWpRRkNham9GaXl1QVdsLVIx
V1haYWY0eGl0TFJyYWNUOWFncHpJemMtTWJMU0hJR2dXUUdPMjFsR2lJbXk1ZnRaLUQ4YkhBcVJ6
MnkxNXB6RDRjNENFb3U3WFNTTERvUm5SMFFHNU1zRGhENnMyZ1Y5bXdIa3J0a0N4dE1XZEJpLTc3
YXM4d0dtbE5SbGRjT1NnWkRMSzhVbkNTZ0ExT2d1Wjk4OWJGeWM4dE9PRUliMHhVU2ZQU3ozTFBT
Q255WXo2OGFEam1LVmVOSC1pZzg1N09TY3lXYkd5RXkzQml3NjRxdW4zanVVbE5Xc0ozem5na09k
dGVZV3l0eDVRcjRYS05zNlItTXl5cTcyS1VwMDJtSkRaaWl5aWdseE1MX2kzLV9DZWVjQ3ciLAor
ICAgIGU6ICJBUUFCIiwKKyAgICBkOiAiZU5MUzM3YUN6N1JYU05QRF9EdExCSjZqNVQ4Y1N4ZHpS
QkNqUGFJNldjR3FKcDE2bHEzVVR3dW9ETEFxbEE5b0dZbTIzOGRzSVdwdXVjUF9sUXRiV2UtN1Nw
eG9JNl92bVlHZjdZVlVIdjEtREY5cWlPbVNyTW1keE1uVk96WVhZOFJhVDZ0aFBqbl9KNWNmTFYy
eElfTHdzck10bXBkU3lObGdYMHpUVWh3dHVhaGdBS01FQ2hZakgyRW5qSGRIdzZzWTItd0FwZGNR
STdVTEUwb281UnpiUVpwbXVoY045aGlCYzBMM2hoRjBxbzUwbWJsMDJfNjVfR1E3RHBWa1hCeE5n
UkJMemxQYWJtenpHMm9BaGZlZkxnWW1TQzFvcGFDa1hFNnZSV1FOV05MNDVSWk5aRllNM3VvSmdo
T01xR2VvY00wQnBqZENoSHJQT2xGdlNRIiwKKyAgICBwOiAiNG1pVHVBaktNZUg1dUo1S0IzOTdR
VXdoYmtZRWdTYmNBMm1pZm1Ta3ZFMjAxOGdiNTVxa0JISzFlVnJ5ZjFfbTQzTE5sYzZPX2FrNmdm
emRaSVp2UzVOQ0dqUGwwcTA5cGxVcHU4cUZPU3NwQndBNjdxR0g3NmxGbFpMbl9kNHlnbFM3d2ZM
cnU0XzVZczhxTExzLURxVkx2aXdwb3NPbnl5V3F3TTVBWHAwIiwKKyAgICBxOiAieEhZcnpraXZ0
bW56X3NHY2huV0djMHEtcERPa0tpY3B0UnB2MnBNRklJWHhuRlg1YU1lRVhJWmpWdWpYdHdVeTFV
bEZJTjJHWkpTdnk1S0o3OW11X1h5Tm5GSE16ZWRILUEzZWUzdThoMVVVclpGLXZVdTFfZTRVX3g2
N05OMWRlZHpVU0t5bk43cEZsM09rdVNoTUJXR1YtY3d6T1BkY1ZBZlZ1Wmx4VU1jIiwKKyAgICBk
cDogImZCekR6WURVQm1CUUdvcDdIbjBkdmZfVDI3VjZScXBjdFdvMDc0Q1FaY0ZiUDJhdEZWdEtT
ajN2aVdUM3hpZDJWSHpjZ2lESGRmcE0zbkVWbEVPMXd3SW9uR0NTdmRqR0VPWmlpRlZPanJaQU9W
eEE4Z3VPanl5RnZxYlhrZTA2VndQSUlWdmZLZVNVMnp1aGJQX18xdHQ2Rl9meG93NEtiMnhvbkdU
MEdHayIsCisgICAgZHE6ICJqbUUyRGlJUGRod0RnTFhBUXBJYUJxUTgxYk8zWGZWVF9MUlVMQXd3
d3dsUHVRVjE0OEgwNHpsaDlUSjZZMkdaSFlva1YxVTBlT0JwSnhma2I3ZExZdHBKcHVpQmpSZjR5
SVVFb0dsa2tJX1FsSm5GU0ZyLVlqR1JkZk5IcVdCa3hsU01aTDc3MFI5bUlBVG5kR2tIN3o1eC1y
OUt3QlpGQzRGQ0cyaGdfekUiLAorICAgIHFpOiAiWUNYX3BMd2JNQkExVGhWSDBXY3dtbnl0cU5j
ck1DRXdUbTdCeUEyZVU2bldiUXJVTHZmN205X2t6ZkxVY2pzbnBBVmxCUUc1Sk1YTXkwU3E0cHR3
Ynl3c2E1LUc4S0FPT09SMkwzdjRoQy1FeXM5ZnRnRk1fM2kwbzQwZWVRSDRiM2hhUGJudHJJZU1n
OEl6bE91VllLZjktMlF1S0RvV2VSZGQ3TnNkeFRrIgorfTsKK3ZhciB3cmFwQWxnb3JpdGhtID0g
e25hbWU6ICJSU0EtT0FFUCIsIGhhc2g6ICJzaGEtMSJ9OwordmFyIGV4dHJhY3RhYmxlID0gdHJ1
ZTsKK3ZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOworCitkZWJ1ZygiSW1wb3J0aW5nIFJTQSBr
ZXlzLi4uIik7CitjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJy
YXkoSlNPTi5zdHJpbmdpZnkocHVibGljS2V5SlNPTikpLCBudWxsLCBleHRyYWN0YWJsZSwgWyJ3
cmFwS2V5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgcHVibGljS2V5ID0gcmVzdWx0
OworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4
QXJyYXkoSlNPTi5zdHJpbmdpZnkocHJpdmF0ZUtleUpTT04pKSwgbnVsbCwgZXh0cmFjdGFibGUs
IFsiZW5jcnlwdCIsICJkZWNyeXB0IiwgIndyYXBLZXkiXSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJl
c3VsdCkgeworICAgIHByaXZhdGVLZXkgPSByZXN1bHQ7CisKKyAgICBkZWJ1ZygiSW1wb3J0aW5n
IGFuIEFFUyBrZXkuLi4iKTsKKyAgICBhZXNLZXlEYXRhID0gaGV4U3RyaW5nVG9VaW50OEFycmF5
KCI2MDNkZWIxMDE1Y2E3MWJlMmI3M2FlZjA4NTdkNzc4MTFmMzUyYzA3M2I2MTA4ZDcyZDk4MTBh
MzA5MTRkZmY0Iik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBh
ZXNLZXlEYXRhLCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCIs
ICJ3cmFwS2V5IiwgInVud3JhcEtleSJdKQorfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAg
ICBhZXNLZXkgPSByZXN1bHQ7CisKKyAgICBkZWJ1ZygiV3JhcHBpbmcgaXQuLi4iKTsKKyAgICBy
ZXR1cm4gY3J5cHRvLnN1YnRsZS53cmFwS2V5KCJyYXciLCBhZXNLZXksIHB1YmxpY0tleSwgd3Jh
cEFsZ29yaXRobSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHdyYXBwZWRLZXkg
PSByZXN1bHQ7CisKKyAgICBkZWJ1ZygiVW53cmFwcGluZyBpdC4uLiIpOworICAgIC8vIHByaXZh
dGVLZXkgbGFja3MgdW53cmFwS2V5IHVzYWdlLgorICAgIHNob3VsZFRocm93KCdjcnlwdG8uc3Vi
dGxlLnVud3JhcEtleSgicmF3Iiwgd3JhcHBlZEtleSwgcHJpdmF0ZUtleSwgd3JhcEFsZ29yaXRo
bSwgImFlcy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSknKTsKKwor
ICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS93cmFwS2V5LWNoZWNr
LXVzYWdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvd3Jh
cEtleS1jaGVjay11c2FnZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGY0NzRiMWJhOTM2ODk4
OWM0YWNjMzUwMzgxOWFhNGYxYmYxMjEwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvd3JhcEtleS1jaGVjay11c2FnZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxNCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IEtleSB1c2FnZXMgZG8gbm90
IGluY2x1ZGUgJ3dyYXBLZXknCitWZXJpZnkgdGhhdCB1c2FnZSBpcyByZXNwZWN0ZWQgaW4gd3Jh
cEtleSBvcGVyYXRpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitJbXBvcnRp
bmcgYW4gUlNBIGtleS4uLgorSW1wb3J0aW5nIGFuIEFFUyBrZXkuLi4KK1dyYXBwaW5nIGl0Li4u
CitQQVNTIGNyeXB0by5zdWJ0bGUud3JhcEtleSgicmF3IiwgYWVzS2V5LCBwdWJsaWNLZXksIHdy
YXBBbGdvcml0aG0pIHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvciAoRE9NIEV4Y2Vw
dGlvbiA5KTogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3dyYXBLZXktY2hlY2stdXNhZ2UuaHRtbCBiL0xheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvd3JhcEtleS1jaGVjay11c2FnZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjA3ZTZhMWY5MGNmNzVmNGUzMjY1NTU5YjQ3YTk5NjllZjQ4MmYxN2YKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3dyYXBLZXktY2hlY2st
dXNhZ2UuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCB1c2FnZSBpcyByZXNwZWN0
ZWQgaW4gd3JhcEtleSBvcGVyYXRpb24uIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit2
YXIgcHVibGljS2V5SlNPTiA9IHsKKyAgICBrdHk6ICJSU0EiLAorICAgIGFsZzogIlJTQS1PQUVQ
IiwKKyAgICBuOiAicmNDVUN2N09jMUhWYW0xREloQ3pxa25UaFdhd09wOFFMazhaaXkycDEwQnlq
UUZDYWpvRml5dUFXbC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6SXpjLU1iTFNISUdnV1FHTzIxbEdp
SW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVNc0RoRDZzMmdWOW13
SGtydGtDeHRNV2RCaS03N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5ODliRnljOHRP
T0VJYjB4VVNmUFN6M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5M0JpdzY0cXVu
M2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3MktVcDAybUpEWmlpeWlnbHhN
TF9pMy1fQ2VlY0N3IiwKKyAgICBlOiAiQVFBQiIKK307CisKK3ZhciB3cmFwQWxnb3JpdGhtID0g
e25hbWU6ICJSU0EtT0FFUCIsIGhhc2g6ICJzaGEtMSJ9OwordmFyIGV4dHJhY3RhYmxlID0gdHJ1
ZTsKK3ZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOworCitkZWJ1ZygiSW1wb3J0aW5nIGFuIFJT
QSBrZXkuLi4iKTsKK2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhB
cnJheShKU09OLnN0cmluZ2lmeShwdWJsaWNLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBb
ImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ1bndyYXBLZXkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQp
IHsKKyAgICBwdWJsaWNLZXkgPSByZXN1bHQ7CisKKyAgICBkZWJ1ZygiSW1wb3J0aW5nIGFuIEFF
UyBrZXkuLi4iKTsKKyAgICBhZXNLZXlEYXRhID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCI2MDNk
ZWIxMDE1Y2E3MWJlMmI3M2FlZjA4NTdkNzc4MTFmMzUyYzA3M2I2MTA4ZDcyZDk4MTBhMzA5MTRk
ZmY0Iik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBhZXNLZXlE
YXRhLCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ3cmFw
S2V5IiwgInVud3JhcEtleSJdKQorfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBhZXNL
ZXkgPSByZXN1bHQ7CisKKyAgICBkZWJ1ZygiV3JhcHBpbmcgaXQuLi4iKTsKKyAgICAvLyBwdWJs
aWNLZXkgbGFja3Mgd3JhcEtleSB1c2FnZS4KKyAgICBzaG91bGRUaHJvdygnY3J5cHRvLnN1YnRs
ZS53cmFwS2V5KCJyYXciLCBhZXNLZXksIHB1YmxpY0tleSwgd3JhcEFsZ29yaXRobSknKTsKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjNhMTQwNzBmOTY1
YTAwNzlhNTI4ZjVmNDU3Njg4MzljYWU5M2FkMS4uYTY2YTViYTc4OTlhMDNjNDgyZmE4MjNlMTA5
MTE2ZmI3YmM2OTgxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTM3MSw3ICszNzEsNyBAQCBzdG9yYWdlL2luZGV4ZWRkYi91bnByZWZpeC13b3JrZXJz
Lmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1p
bmRleGVkZGItYWxsb3dlZC5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3Nz
LW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLmh0bWwgWyBTa2lwIF0KIAotd2Via2l0Lm9yZy9iLzg3
NjYxIGNyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi5odG1sIFsgU2tpcCBdCit3ZWJraXQub3Jn
L2IvODc2NjEgY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLmh0bWwgWyBTa2lwIF0K
IHN0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLW9kZC1uYW1lcy5odG1sIFsgU2tpcCBdCiAKICMg
RUZMIHBvcnQgaGFzIG5vdCBzdXBwb3J0ZWQgc2VsZWN0aW9uIGdhcCBwYWludGluZyBzaW5jZSBy
MjAwNDEyCkBAIC0xODE0LDE4ICsxODE0LDE4IEBAIHdlYmtpdC5vcmcvYi8xMTk3ODIgZmFzdC9m
b3Jtcy9zZWFyY2gtc3R5bGVkLmh0bWwgWyBGYWlsdXJlIF0KIAogIyBjcnlwdG8uc3VidGxlIGlz
IG5vdCB5ZXQgZW5hYmxlZCwgYnV0IGRpZ2VzdCBhbGdvcml0aG1zIGFyZSBhbHJlYWR5IGltcGxl
bWVudGVkCiAjIGFuZCB0aGVpciB0ZXN0cyBhcmUgd2hpdGVsaXN0ZWQKLXdlYmtpdC5vcmcvYi8x
MzMxMjIgY3J5cHRvL3N1YnRsZSBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzEzMzMxOSBjcnlwdG8v
c3VidGxlL3NoYS0xLmh0bWwgWyBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMzMzMTkgY3J5cHRvL3N1
YnRsZS9zaGEtMjI0Lmh0bWwgWyBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMzMzMTkgY3J5cHRvL3N1
YnRsZS9zaGEtMjU2Lmh0bWwgWyBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMzMzMTkgY3J5cHRvL3N1
YnRsZS9zaGEtMzg0Lmh0bWwgWyBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMzMzMTkgY3J5cHRvL3N1
YnRsZS9zaGEtNTEyLmh0bWwgWyBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMzMzMjAgY3J5cHRvL3N1
YnRsZS9obWFjLWNoZWNrLWFsZ29yaXRobS5odG1sIFsgUGFzcyBdCi13ZWJraXQub3JnL2IvMTMz
MzIwIGNyeXB0by9zdWJ0bGUvaG1hYy1leHBvcnQta2V5Lmh0bWwgWyBQYXNzIF0KLXdlYmtpdC5v
cmcvYi8xMzMzMjAgY3J5cHRvL3N1YnRsZS9obWFjLWdlbmVyYXRlLWtleS5odG1sIFsgUGFzcyBd
Ci13ZWJraXQub3JnL2IvMTMzMzIwIGNyeXB0by9zdWJ0bGUvaG1hYy1pbXBvcnQtandrLmh0bWwg
WyBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMzMzMjAgY3J5cHRvL3N1YnRsZS9obWFjLXNpZ24tdmVy
aWZ5LWVtcHR5LWtleS5odG1sIFsgUGFzcyBdCi13ZWJraXQub3JnL2IvMTMzMzIwIGNyeXB0by9z
dWJ0bGUvaG1hYy1zaWduLXZlcmlmeS5odG1sIFsgUGFzcyBdCit3ZWJraXQub3JnL2IvMTMzMTIy
IGNyeXB0by93ZWJraXRTdWJ0bGUgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xMzMzMTkgY3J5cHRv
L3dlYmtpdFN1YnRsZS9zaGEtMS5odG1sIFsgUGFzcyBdCit3ZWJraXQub3JnL2IvMTMzMzE5IGNy
eXB0by93ZWJraXRTdWJ0bGUvc2hhLTIyNC5odG1sIFsgUGFzcyBdCit3ZWJraXQub3JnL2IvMTMz
MzE5IGNyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTI1Ni5odG1sIFsgUGFzcyBdCit3ZWJraXQub3Jn
L2IvMTMzMzE5IGNyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTM4NC5odG1sIFsgUGFzcyBdCit3ZWJr
aXQub3JnL2IvMTMzMzE5IGNyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTUxMi5odG1sIFsgUGFzcyBd
Cit3ZWJraXQub3JnL2IvMTMzMzIwIGNyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1jaGVjay1hbGdv
cml0aG0uaHRtbCBbIFBhc3MgXQord2Via2l0Lm9yZy9iLzEzMzMyMCBjcnlwdG8vd2Via2l0U3Vi
dGxlL2htYWMtZXhwb3J0LWtleS5odG1sIFsgUGFzcyBdCit3ZWJraXQub3JnL2IvMTMzMzIwIGNy
eXB0by93ZWJraXRTdWJ0bGUvaG1hYy1nZW5lcmF0ZS1rZXkuaHRtbCBbIFBhc3MgXQord2Via2l0
Lm9yZy9iLzEzMzMyMCBjcnlwdG8vd2Via2l0U3VidGxlL2htYWMtaW1wb3J0LWp3ay5odG1sIFsg
UGFzcyBdCit3ZWJraXQub3JnL2IvMTMzMzIwIGNyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1zaWdu
LXZlcmlmeS1lbXB0eS1rZXkuaHRtbCBbIFBhc3MgXQord2Via2l0Lm9yZy9iLzEzMzMyMCBjcnlw
dG8vd2Via2l0U3VidGxlL2htYWMtc2lnbi12ZXJpZnkuaHRtbCBbIFBhc3MgXQogCiAjIE1pc3Np
bmcgRUZMJ3MgYWNjZXNzaWJpbGl0eSBmdW5jdGlvbnMKIHdlYmtpdC5vcmcvYi8xMTE5ODQgYWNj
ZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi11cGRhdGVzLWFsbGRlc2NlbmRhbnRzLmh0bWwgWyBGYWls
dXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZjk5
MDg3ZDQ2ZjYxYjBkMzE3MzE2NzZlNDE0MmU4MzBjY2JmMGM0MC4uNDAzYTNkZTUzODhhNzdlNDAz
NDZkNzNmMzA2MTIwZTc3YjNiMTYyNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTQwNSwxOCArNDA1LDE4IEBAIEJ1ZyhHVEspIGVkaXRpbmcvc2VjdXJl
LWlucHV0IFsgRmFpbHVyZSBdCiAKICMgY3J5cHRvLnN1YnRsZSBpcyBub3QgeWV0IGVuYWJsZWQs
IGJ1dCBkaWdlc3QgYWxnb3JpdGhtcyBhcmUgYWxyZWFkeSBpbXBsZW1lbnRlZAogIyBhbmQgdGhl
aXIgdGVzdHMgYXJlIHdoaXRlbGlzdGVkCi13ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by9zdWJ0
bGUgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xMzMzMTkgY3J5cHRvL3N1YnRsZS9zaGEtMS5odG1s
IFsgUGFzcyBdCi13ZWJraXQub3JnL2IvMTMzMzE5IGNyeXB0by9zdWJ0bGUvc2hhLTIyNC5odG1s
IFsgUGFzcyBdCi13ZWJraXQub3JnL2IvMTMzMzE5IGNyeXB0by9zdWJ0bGUvc2hhLTI1Ni5odG1s
IFsgUGFzcyBdCi13ZWJraXQub3JnL2IvMTMzMzE5IGNyeXB0by9zdWJ0bGUvc2hhLTM4NC5odG1s
IFsgUGFzcyBdCi13ZWJraXQub3JnL2IvMTMzMzE5IGNyeXB0by9zdWJ0bGUvc2hhLTUxMi5odG1s
IFsgUGFzcyBdCi13ZWJraXQub3JnL2IvMTMzMzIwIGNyeXB0by9zdWJ0bGUvaG1hYy1jaGVjay1h
bGdvcml0aG0uaHRtbCBbIFBhc3MgXQotd2Via2l0Lm9yZy9iLzEzMzMyMCBjcnlwdG8vc3VidGxl
L2htYWMtZXhwb3J0LWtleS5odG1sIFsgUGFzcyBdCi13ZWJraXQub3JnL2IvMTMzMzIwIGNyeXB0
by9zdWJ0bGUvaG1hYy1nZW5lcmF0ZS1rZXkuaHRtbCBbIFBhc3MgXQotd2Via2l0Lm9yZy9iLzEz
MzMyMCBjcnlwdG8vc3VidGxlL2htYWMtaW1wb3J0LWp3ay5odG1sIFsgUGFzcyBdCi13ZWJraXQu
b3JnL2IvMTMzMzIwIGNyeXB0by9zdWJ0bGUvaG1hYy1zaWduLXZlcmlmeS1lbXB0eS1rZXkuaHRt
bCBbIFBhc3MgXQotd2Via2l0Lm9yZy9iLzEzMzMyMCBjcnlwdG8vc3VidGxlL2htYWMtc2lnbi12
ZXJpZnkuaHRtbCBbIFBhc3MgXQord2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vd2Via2l0U3Vi
dGxlIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTMzMzE5IGNyeXB0by93ZWJraXRTdWJ0bGUvc2hh
LTEuaHRtbCBbIFBhc3MgXQord2Via2l0Lm9yZy9iLzEzMzMxOSBjcnlwdG8vd2Via2l0U3VidGxl
L3NoYS0yMjQuaHRtbCBbIFBhc3MgXQord2Via2l0Lm9yZy9iLzEzMzMxOSBjcnlwdG8vd2Via2l0
U3VidGxlL3NoYS0yNTYuaHRtbCBbIFBhc3MgXQord2Via2l0Lm9yZy9iLzEzMzMxOSBjcnlwdG8v
d2Via2l0U3VidGxlL3NoYS0zODQuaHRtbCBbIFBhc3MgXQord2Via2l0Lm9yZy9iLzEzMzMxOSBj
cnlwdG8vd2Via2l0U3VidGxlL3NoYS01MTIuaHRtbCBbIFBhc3MgXQord2Via2l0Lm9yZy9iLzEz
MzMyMCBjcnlwdG8vd2Via2l0U3VidGxlL2htYWMtY2hlY2stYWxnb3JpdGhtLmh0bWwgWyBQYXNz
IF0KK3dlYmtpdC5vcmcvYi8xMzMzMjAgY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWV4cG9ydC1r
ZXkuaHRtbCBbIFBhc3MgXQord2Via2l0Lm9yZy9iLzEzMzMyMCBjcnlwdG8vd2Via2l0U3VidGxl
L2htYWMtZ2VuZXJhdGUta2V5Lmh0bWwgWyBQYXNzIF0KK3dlYmtpdC5vcmcvYi8xMzMzMjAgY3J5
cHRvL3dlYmtpdFN1YnRsZS9obWFjLWltcG9ydC1qd2suaHRtbCBbIFBhc3MgXQord2Via2l0Lm9y
Zy9iLzEzMzMyMCBjcnlwdG8vd2Via2l0U3VidGxlL2htYWMtc2lnbi12ZXJpZnktZW1wdHkta2V5
Lmh0bWwgWyBQYXNzIF0KK3dlYmtpdC5vcmcvYi8xMzMzMjAgY3J5cHRvL3dlYmtpdFN1YnRsZS9o
bWFjLXNpZ24tdmVyaWZ5Lmh0bWwgWyBQYXNzIF0KIAogIyBRdWlja1RpbWUgcGx1Zy1pbiBub3Qg
cmVsZXZhbnQgdG8gdGhpcyBwb3J0CiBCdWcoR1RLKSBwbHVnaW5zL3F1aWNrdGltZS1wbHVnaW4t
cmVwbGFjZW1lbnQuaHRtbCBbIFNraXAgXQpAQCAtMjI0Miw3ICsyMjQyLDcgQEAgd2Via2l0Lm9y
Zy9iLzEwNzgyNSBtZWRpYS9hdWRpby1kZWxldGUtd2hpbGUtc3RlcC1idXR0b24tY2xpY2tlZC5o
dG1sIFsgRmFpbHVyZQogd2Via2l0Lm9yZy9iLzEwNzgyNSBtZWRpYS9ub2Rlc0Zyb21SZWN0LXNo
YWRvd0NvbnRlbnQuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzEwNzgyNSBtZWRpYS92
aWRlby1jb250cm9scy1mdWxsc2NyZWVuLXZvbHVtZS5odG1sIFsgRmFpbHVyZSBdCiAKLXdlYmtp
dC5vcmcvYi8xMDcxOTQgY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLmh0bWwgWyBTa2lwIF0K
K3dlYmtpdC5vcmcvYi8xMDcxOTQgY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLmh0
bWwgWyBTa2lwIF0KIAogIyBUZXN0IG1hcmtlZCBpbiBUZXN0RXhwZWN0YXRpb25zIGFzIGZhaWxp
bmcgb24gbm9uLXJldGluYSBkaXNwbGF5cywgcGFzc2luZyBvbiBHVEsgcG9ydAogd2Via2l0Lm9y
Zy9iLzEyOTExMyBmYXN0L211bHRpY29sL25ld211bHRpY29sL2NsaXBwaW5nLmh0bWwgWyBQYXNz
IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Itd2sxL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMS9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IGE0NmZhZmI0MzU3NTRhNjg4N2JlYjkxN2E0NjdiODIwOTAx
MzEwMjUuLjFmOTNkNGJmOGY3NDQ5ZjYyYjQ4NDE2NzI2YTU3ODZhNzEwNTJkYmMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Itd2sxL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci13azEvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMTAwNSw4ICsxMDA1LDEwIEBAIGFuaW1hdGlvbnMvc3VzcGVuZC1yZXN1bWUt
YW5pbWF0aW9uLWV2ZW50cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRi
CiBpbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcKIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCCi1jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGIt
bm9uLWV4cG9ydGFibGUuaHRtbAotY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLmh0bWwKK2Ny
eXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS1wcml2YXRlLmh0
bWwKK2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS5odG1s
CitjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGItcHJpdmF0ZS5odG1sCitjcnlwdG8v
d2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGIuaHRtbAogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUt
aW5kZXhlZC1jbG9zZWQtZGIuaHRtbAogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtaW5kZXhlZC1v
cGVuZWQtZGIuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9uby1pbmRleGVkZGItZnJvbS1zYW5k
Ym94Lmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggYTk5NTQ0MzQzYzg5OTcyYzNjYTU1MzExZmU4ZDhjMzIxYzEwZGJlYS4uZmJl
ODIzN2JiM2Y2ZmRjYmM5OTZiNzVkNDFjMTgyYzYwYTgxMzljNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI1OSw3ICsyNTksMTAgQEAgaHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVz
dHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGItYWxsb3dlZC5odG1sIFsg
U2tpcCBdCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRi
Lmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvc2VjdXJpdHkvbm8taW5kZXhlZGRiLWZyb20tc2Fu
ZGJveC5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGIuaHRtbCBbIFNr
aXAgXQorY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLXBy
aXZhdGUuaHRtbCBbIFNraXAgXQorY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLW5v
bi1leHBvcnRhYmxlLmh0bWwgWyBTa2lwIF0KK2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4
ZWRkYi1wcml2YXRlLmh0bWwgWyBTa2lwIF0KK2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4
ZWRkYi5odG1sIFsgU2tpcCBdCiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1pbmRleGVkLWNsb3Nl
ZC1kYi5odG1sIFsgU2tpcCBdCiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1pbmRleGVkLW9wZW5l
ZC1kYi5odG1sIFsgU2tpcCBdCiAKQEAgLTU5Myw3ICs1OTYsNyBAQCB3ZWJraXQub3JnL2IvOTg2
OTYgcGx1Z2lucy9zbmFwc2hvdHRpbmcgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xMTY1NTkgc3Rv
cmFnZS93ZWJzcWwvIFsgU2tpcCBdCiAKICMgVE9ETyBjcnlwdG8uc3VidGxlIGlzIG5vdCB5ZXQg
ZW5hYmxlZAotY3J5cHRvL3N1YnRsZS8gWyBTa2lwIF0KK2NyeXB0by93ZWJraXRTdWJ0bGUvIFsg
U2tpcCBdCiAKICMgVE9ETyBNaXNzaW5nIFdlYlNwZWVjaCBpbXBsZW1lbnRhdGlvbgogd2Via2l0
Lm9yZy9iLzEzNjIyNCBmYXN0L3NwZWVjaHN5bnRoZXNpcyBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284353</attachid>
            <date>2016-07-22 11:48:45 -0700</date>
            <delta_ts>2016-07-25 10:20:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160067-20160722114743.patch</filename>
            <type>text/plain</type>
            <size>115893</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDEzMjVmMWU5NTIwZDI4
ZjQ4MGVkMjE5MWMzZWIyZDU4ODdmODZiMi4uODE3YWFkODZjNTdhOTU5N2U0ODExODFkODY5NWU1
NzkyZGU5NmY5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE2LTA3LTIyICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFN1YnRsZUNy
eXB0byB0byBXZWJLaXRTdWJ0bGVDcnlwdG8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2MDA2NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjc0ODM2
MTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dHM6IGNyeXB0by93ZWJraXRTdWJ0bGUvZ2MtMi5odG1sCisgICAgICAgICAgICAgICBjcnlwdG8v
d2Via2l0U3VidGxlL2djLTMuaHRtbAorICAgICAgICAgICAgICAgY3J5cHRvL3dlYmtpdFN1YnRs
ZS9nYy5odG1sCisKKyAgICAgICAgUmVuYW1lIENsYXNzIFN1YnRsZUNyeXB0byB0byBXZWJLaXRT
dWJ0bGVDcnlwdG8sIGFuZCBDcnlwdG8uc3VidGxlIHRvIENyeXB0by53ZWJraXRTdWJ0bGUgaW4g
b3JkZXIKKyAgICAgICAgdG8gbGV0IHRoZSBuZXcgaW1wbGVtZW50YXRpb24gdG8gcmV1c2UgdGhl
IG5hbWUgU3VidGxlQ3J5cHRvLiBUaGlzIHJlbmFtaW5nIHNob3VsZCBtYXRjaCB3aGF0IG91cgor
ICAgICAgICBjdXJyZW50IEpTQmluZGluZ3MgdXNlLCBhbmQgdGhlcmVmb3JlIHNob3VsZCBub3Qg
aW50cm9kdWNlIGFueSBjaGFuZ2Ugb2YgYmVoYXZvaXIuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgUmV2aXNlIHByb2plY3QgZmlsZXMgZm9yIGZvciBuZXcgZmlsZSBuYW1l
cy4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9y
bUdUSy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIFJldmlzZSBwcm9qZWN0IGZp
bGVzIGZvciBmb3IgbmV3IGZpbGUgbmFtZXMuCisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJL
aXRTdWJ0bGVDcnlwdG9DdXN0b20uY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwLgorICAgICAgICAqIGNyeXB0by9XZWJL
aXRTdWJ0bGVDcnlwdG8uY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1
YnRsZUNyeXB0by5jcHAuCisgICAgICAgICogY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5oOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5oLgorICAgICAg
ICAqIGNyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uaWRsOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5pZGwuCisgICAgICAgICogcGFnZS9DcnlwdG8uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvOjp3ZWJraXRTdWJ0bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q3J5cHRvOjpzdWJ0bGUpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvQ3J5cHRvLmg6
CisgICAgICAgICogcGFnZS9DcnlwdG8uaWRsOgorCiAyMDE2LTA3LTIwICBCcmFkeSBFaWRzb24g
IDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgc29tZSAibW9kZXJuRm9vInMg
ZnJvbSBJbmRleGVkREIgY29kZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggN2E2NjFkNjM3OWVl
MDRiYzlkYjk5ZmYxYjQwMDM5YzM2Yjc3ZmRmMy4uMDRlNzliOTVmNDBjNzI4NTJlOWIwMDk0NzA2
MDhlNmJlMGRlYjE4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTMxNSw3ICszMTUsNyBAQCBz
ZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogCiAgICAgY3J5cHRvL0NyeXB0b0tleS5pZGwK
ICAgICBjcnlwdG8vQ3J5cHRvS2V5UGFpci5pZGwKLSAgICBjcnlwdG8vU3VidGxlQ3J5cHRvLmlk
bAorICAgIGNyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uaWRsCiAKICAgICBjc3MvQ1NTQ2hhcnNl
dFJ1bGUuaWRsCiAgICAgY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmlkbApAQCAtMTIxMSw3ICsx
MjExLDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTU3RvcmFnZUN1
c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRDdXN0b20uY3BwCiAgICAgYmlu
ZGluZ3MvanMvSlNTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAKLSAgICBiaW5kaW5ncy9qcy9KU1N1
YnRsZUNyeXB0b0N1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1RleHRDdXN0b20uY3BwCiAg
ICAgYmluZGluZ3MvanMvSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMv
SlNUZXh0VHJhY2tDdXN0b20uY3BwCkBAIC0xMjI1LDYgKzEyMjQsNyBAQCBzZXQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlQ3VzdG9t
LmNwcAogICAgIGJpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAog
ICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwCisgICAgYmluZGluZ3MvanMv
SlNXZWJLaXRTdWJ0bGVDcnlwdG9DdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJD
dXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCiAg
ICAgYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLmNwcAppbmRleCBkZjJmZDk5MmEzZTdjZDYwMGE2YjA5MDA3MGFkOWEwMzMyZTgz
OTBjLi45MDYwOWRjZTZmZmY0NWU1MmY4NTc4MWMwNGQxNGI0MzMxNzM4ZGM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMuY3BwCkBAIC00MjcsNyArNDI3LDYgQEAKICNpbmNsdWRlICJKU1NwZWVj
aFN5bnRoZXNpc0V2ZW50LmNwcCIKICNpbmNsdWRlICJKU1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5j
ZS5jcHAiCiAjaW5jbHVkZSAiSlNTcGVlY2hTeW50aGVzaXNWb2ljZS5jcHAiCi0jaW5jbHVkZSAi
SlNTdWJ0bGVDcnlwdG8uY3BwIgogI2luY2x1ZGUgIkpTU1FMRXJyb3IuY3BwIgogI2luY2x1ZGUg
IkpTU1FMRXhjZXB0aW9uLmNwcCIKICNpbmNsdWRlICJKU1NRTFJlc3VsdFNldC5jcHAiCkBAIC02
NDYsNiArNjQ1LDcgQEAKICNpbmNsdWRlICJKU1dlYktpdE5hbWVzcGFjZS5jcHAiCiAjaW5jbHVk
ZSAiSlNXZWJLaXRQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50LmNwcCIKICNpbmNsdWRl
ICJKU1dlYktpdFBvaW50LmNwcCIKKyNpbmNsdWRlICJKU1dlYktpdFN1YnRsZUNyeXB0by5jcHAi
CiAjaW5jbHVkZSAiSlNXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTV2Vi
U29ja2V0LmNwcCIKICNpbmNsdWRlICJKU1doZWVsRXZlbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKaW5kZXggOWQ0ODllMjgxMTk4OGE1MWZkYzg3YmFlNjMyY2JiNTAyMDQ0OTZh
Zi4uNzEzNjViZDU0YTA3MjdiMzM0ZWYzOTYyMTBiNThmZDMwZDA1YzdiZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yMzUsNyArMjM1LDcgQEAgTk9OX1NWR19CSU5ESU5HX0lE
TFMgPSBcCiAgICAgJChXZWJDb3JlKS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvY3J5cHRvL0NyeXB0b0tleS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3J5
cHRvL0NyeXB0b0tleVBhaXIuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2NyeXB0by9TdWJ0bGVDcnlw
dG8uaWRsIFwKKyAgICAkKFdlYkNvcmUpL2NyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uaWRsIFwK
ICAgICAkKFdlYkNvcmUpL2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwgXAogICAgICQoV2ViQ29yZSkv
Y3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NTRm9u
dEZhY2VSdWxlLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5j
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDUxNDUwNGU2ZWMy
NWFhNWU0M2I5OTM5OGQ1ZTM1Y2VlZWE3NjZhYTQuLjJkMzY5ODYwZjBhMzU3Mzg1ODI5ZDdhZDRi
ZmIwNzkyNTY0N2JiMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC00MDMsNyArNDAz
LDcgQEAgaWYgKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKQogICAgICAgICBjcnlwdG8vQ3J5cHRvQWxn
b3JpdGhtUmVnaXN0cnkuY3BwCiAgICAgICAgIGNyeXB0by9DcnlwdG9LZXkuY3BwCiAgICAgICAg
IGNyeXB0by9DcnlwdG9LZXlQYWlyLmNwcAotICAgICAgICBjcnlwdG8vU3VidGxlQ3J5cHRvLmNw
cAorICAgICAgICBjcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmNwcAogCiAgICAgICAgIGNyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCiAgICAgICAgIGNyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21h
a2UKaW5kZXggNjQ1YWRkMWNlMzg4ODhiMDRkNGEyZDg5YWRhMGE3YzZkZTE5OTg2Yi4uYWFiZDMw
NWVkMWViZDJhZTFlMTFmMWMwM2M5NGNiMzFkOGNhODQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsu
Y21ha2UKQEAgLTc5Nyw3ICs3OTcsNyBAQCBpZiAoRU5BQkxFX1NVQlRMRV9DUllQVE8pCiAgICAg
ICAgIGNyeXB0by9DcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAKICAgICAgICAgY3J5cHRvL0Ny
eXB0b0tleS5jcHAKICAgICAgICAgY3J5cHRvL0NyeXB0b0tleVBhaXIuY3BwCi0gICAgICAgIGNy
eXB0by9TdWJ0bGVDcnlwdG8uY3BwCisgICAgICAgIGNyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8u
Y3BwCiAKICAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5j
cHAKICAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCA5ZjZmNDk2YjZjYzRlZjZlNGI3NGQ4NGFjMGFh
OWRlYTU1YTAyMzdiLi4zMzEwMjU4ZjAxMmY5ZGNmYWE1MmNiYmNiNGU4MTNmOWE1NDVkYjMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtMTk2LDcgKzE5Niw3IEBAIGxpc3QoQVBQRU5E
IFdlYkNvcmVfU09VUkNFUwogICAgIGNyeXB0by9DcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAK
ICAgICBjcnlwdG8vQ3J5cHRvS2V5LmNwcAogICAgIGNyeXB0by9DcnlwdG9LZXlQYWlyLmNwcAot
ICAgIGNyeXB0by9TdWJ0bGVDcnlwdG8uY3BwCisgICAgY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0
by5jcHAKIAogICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3Bw
CiAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDBj
ZTY3YWI1NjNmMmQzZGMwYzkwNjJmNGJlMGQzZTc4Mjc3NDc5MDEuLjJkYTViNGNjNWIzZWVhY2Fi
YWU1NGFlYWQxZjZmMWIxMzk0M2NhZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIzMzgsNiArMjMzOCwxMSBAQAogCQk1NTBB
MEJDQTA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTUwQTBCQzgwODVGNjAzOTAwNzM1M0Q2IC8q
IFF1YWxpZmllZE5hbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1NTVCODdFQzFDQUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU1Qjg3RUEx
Q0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdlRGVjb2RlckNHLmNwcCAqLzsgfTsKIAkJNTU1Qjg3RUQx
Q0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdlRGVjb2RlckNHLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NTVCODdFQjFDQUFGMEFCMDAzNDk0MjUgLyogSW1h
Z2VEZWNvZGVyQ0cuaCAqLzsgfTsKKwkJNTcwOUU4Q0QxRDQxM0Q0NzAwMzI0NEFDIC8qIFdlYktp
dFN1YnRsZUNyeXB0by5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NzA5RThDQTFENDEzQ0UzMDAzMjQ0QUMgLyogV2ViS2l0U3VidGxlQ3J5cHRvLmNw
cCAqLzsgfTsKKwkJNTcwOUU4Q0UxRDQxM0Q1QjAwMzI0NEFDIC8qIEpTV2ViS2l0U3VidGxlQ3J5
cHRvQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxRkY4RjY2MTgwNzQ2MDgwMDEzMjY3NCAvKiBKU1dlYktpdFN1YnRsZUNyeXB0b0N1c3Rv
bS5jcHAgKi87IH07CisJCTU3MDlFOENGMUQ0MTNEOUEwMDMyNDRBQyAvKiBXZWJLaXRTdWJ0bGVD
cnlwdG8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
MDlFOENCMUQ0MTNDRTMwMDMyNDRBQyAvKiBXZWJLaXRTdWJ0bGVDcnlwdG8uaCAqLzsgfTsKKwkJ
NTcwQTk5REExRDQxNzQwODAwNEVDNjMwIC8qIEpTV2ViS2l0U3VidGxlQ3J5cHRvLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4RjYyMTgwNzQ1
RDgwMDEzMjY3NCAvKiBKU1dlYktpdFN1YnRsZUNyeXB0by5jcHAgKi87IH07CisJCTU3MEE5OURC
MUQ0MUEyRjMwMDRFQzYzMCAvKiBKU1dlYktpdFN1YnRsZUNyeXB0by5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRjhGNjMxODA3NDVEODAwMTMyNjc0
IC8qIEpTV2ViS2l0U3VidGxlQ3J5cHRvLmggKi87IH07CiAJCTU3MkE3RjIxMUM2RTU3MTkwMDlD
NjE0OSAvKiBTaW11bGF0ZWRDbGljay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTcyQTdGMjAxQzZFNTcxOTAwOUM2MTQ5IC8qIFNpbXVsYXRlZENsaWNr
LmggKi87IH07CiAJCTU3MkE3RjIzMUM2RTVBNjYwMDlDNjE0OSAvKiBTaW11bGF0ZWRDbGljay5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJBN0Yy
MjFDNkU1QTY2MDA5QzYxNDkgLyogU2ltdWxhdGVkQ2xpY2suY3BwICovOyB9OwogCQk1N0VGNUU2
MDFEMjBDODM5MDAxNzFFNjAgLyogVGV4dENvZGVjUmVwbGFjZW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RUY1RTVGMUQyMEM4MzkwMDE3MUU2
MCAvKiBUZXh0Q29kZWNSZXBsYWNlbWVudC5oICovOyB9OwpAQCAtNjYzOCwxMSArNjY0Myw2IEBA
CiAJCUUxRkUxMzdFMTg0RDI3MDIwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1BRVNfS1dNYWMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRTEz
N0MxODREMjcwMjAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobUFFU19LV01hYy5jcHAgKi87IH07
CiAJCUUxRkY1N0EzMEYwMTI1NUIwMDg5MUVCQiAvKiBUaHJlYWRHbG9iYWxEYXRhLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGNTdBMjBGMDEyNTVC
MDA4OTFFQkIgLyogVGhyZWFkR2xvYmFsRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUxRkY1N0E2MEYwMTI1NkIwMDg5MUVCQiAvKiBUaHJl
YWRHbG9iYWxEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxRkY1N0E1MEYwMTI1NkIwMDg5MUVCQiAvKiBUaHJlYWRHbG9iYWxEYXRhLmNwcCAq
LzsgfTsKLQkJRTFGRjhGNUYxODA3NDQyMTAwMTMyNjc0IC8qIFN1YnRsZUNyeXB0by5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY1RDE4MDc0
NDIxMDAxMzI2NzQgLyogU3VidGxlQ3J5cHRvLmNwcCAqLzsgfTsKLQkJRTFGRjhGNjAxODA3NDQy
MTAwMTMyNjc0IC8qIFN1YnRsZUNyeXB0by5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFGRjhGNUUxODA3NDQyMTAwMTMyNjc0IC8qIFN1YnRsZUNyeXB0
by5oICovOyB9OwotCQlFMUZGOEY2NDE4MDc0NUQ4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlwdG8u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRjhG
NjIxODA3NDVEODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvLmNwcCAqLzsgfTsKLQkJRTFGRjhG
NjUxODA3NDVEODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2MzE4MDc0NUQ4MDAxMzI2NzQgLyog
SlNTdWJ0bGVDcnlwdG8uaCAqLzsgfTsKLQkJRTFGRjhGNjgxODA3NDYwODAwMTMyNjc0IC8qIEpT
U3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxRkY4RjY2MTgwNzQ2MDgwMDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0b0N1
c3RvbS5jcHAgKi87IH07CiAJCUUxRkY4RjZDMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdv
cml0aG1SZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUZGOEY2QTE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0
cnkuY3BwICovOyB9OwogCQlFMUZGOEY2RDE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3Jp
dGhtUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxRkY4RjZCMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5o
ICovOyB9OwogCQlFMzg4Mzg5ODFCQUQxNDVGMDBENjJFRTMgLyogSlNNb2R1bGVMb2FkZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4ODM4OTQx
QkFEMTQ1RjAwRDYyRUUzIC8qIEpTTW9kdWxlTG9hZGVyLmNwcCAqLzsgfTsKQEAgLTEwMDE0LDYg
KzEwMDE0LDkgQEAKIAkJNTU1Qjg3RUExQ0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdlRGVjb2RlckNH
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlRGVjb2RlckNH
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU1Qjg3RUIxQ0FBRjBBQjAwMzQ5
NDI1IC8qIEltYWdlRGVjb2RlckNHLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEltYWdlRGVjb2RlckNHLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1RDQwOEY3
MUE3QzYzMTgwMEM3ODQ1MCAvKiBTVkdJbWFnZUNsaWVudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU1ZHSW1hZ2VDbGllbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTU3MDlFOENBMUQ0MTNDRTMwMDMyNDRBQyAvKiBXZWJLaXRTdWJ0bGVDcnlwdG8uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViS2l0U3VidGxlQ3J5cHRv
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcwOUU4Q0IxRDQxM0NFMzAwMzI0
NEFDIC8qIFdlYktpdFN1YnRsZUNyeXB0by5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJLaXRTdWJ0bGVDcnlwdG8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTcwOUU4Q0MxRDQxM0NFMzAwMzI0NEFDIC8qIFdlYktpdFN1YnRsZUNyeXB0by5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gV2ViS2l0U3VidGxlQ3J5cHRvLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTcyQTdGMjAxQzZFNTcxOTAwOUM2MTQ5IC8qIFNpbXVsYXRlZENsaWNr
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNpbXVsYXRlZENsaWNrLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkE3RjIyMUM2RTVBNjYwMDlDNjE0OSAvKiBT
aW11bGF0ZWRDbGljay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
aW11bGF0ZWRDbGljay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RUY1RTVG
MUQyMEM4MzkwMDE3MUU2MCAvKiBUZXh0Q29kZWNSZXBsYWNlbWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0Q29kZWNSZXBsYWNlbWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTM0MDgsOCArMTM0MTEsOCBAQAogCQlCNTdDQjUyQzE4MkEzRUVE
MDA3OUE2NDcgLyogSW5saW5lRWxlbWVudEJveC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBJbmxpbmVFbGVtZW50Qm94LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQjU5NUZGNDYxODI0Q0VFMzAwRkY1MUNEIC8qIFJlbmRlckl0ZXJhdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckl0ZXJhdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1OUNBNTlBRjE3MEQ4RkFBNUI4QzlBRCAvKiBNYXRoTUxT
Y3JpcHRzRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBN
YXRoTUxTY3JpcHRzRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUI1
OUNBODQ5RDQxRTZGNjVEODExOTdBQiAvKiBNYXRoTUxTY3JpcHRzRWxlbWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXRoTUxTY3JpcHRzRWxlbWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCNTlDQTU5QUYxNzBEOEZBQTVCOENBQkUgLyogTWF0aE1M
UGFkZGVkRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBN
YXRoTUxQYWRkZWRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjU5
Q0E4NDlENDFFNkY2NUQ4MTE5N0FCIC8qIE1hdGhNTFNjcmlwdHNFbGVtZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhNTFNjcmlwdHNFbGVtZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1OUNBODQ5RDQxRTZGNjVEODExOThCQyAvKiBNYXRoTUxQ
YWRkZWRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhNTFBh
ZGRlZEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjU5REQ2OTcxMTkw
MjlFNTAwN0U5Njg0IC8qIEpTRGF0YWJhc2VDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0RhdGFiYXNlQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQjU5REQ2OTgxMTkwMjlFNTAwN0U5Njg0IC8qIEpTRGF0YWJhc2VDYWxsYmFjay5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RhdGFiYXNlQ2FsbGJh
Y2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ3ODIsMTIgKzE0Nzg1LDkg
QEAKIAkJRTFGRTEzN0MxODREMjcwMjAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobUFFU19LV01h
Yy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0
aG1BRVNfS1dNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUZGNTdBMjBG
MDEyNTVCMDA4OTFFQkIgLyogVGhyZWFkR2xvYmFsRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBUaHJlYWRHbG9iYWxEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUxRkY1N0E1MEYwMTI1NkIwMDg5MUVCQiAvKiBUaHJlYWRHbG9iYWxEYXRhLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRocmVhZEdsb2JhbERhdGEuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMUZGOEY1QzE4MDczNjRCMDAxMzI2NzQg
LyogU3VidGxlQ3J5cHRvLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTdWJ0bGVDcnlwdG8uaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlFMUZGOEY1RDE4MDc0NDIxMDAxMzI2NzQgLyogU3VidGxlQ3J5cHRv
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN1YnRsZUNyeXB0by5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxRkY4RjVFMTgwNzQ0MjEwMDEzMjY3
NCAvKiBTdWJ0bGVDcnlwdG8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Vi
dGxlQ3J5cHRvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxRkY4RjYyMTgwNzQ1
RDgwMDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0by5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1N1YnRsZUNyeXB0by5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUUxRkY4RjYzMTgwNzQ1RDgwMDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0by5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1N1YnRsZUNyeXB0by5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlFMUZGOEY2NjE4MDc0NjA4MDAxMzI2NzQgLyogSlNTdWJ0bGVD
cnlwdG9DdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNT
dWJ0bGVDcnlwdG9DdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUZG
OEY2MjE4MDc0NUQ4MDAxMzI2NzQgLyogSlNXZWJLaXRTdWJ0bGVDcnlwdG8uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXRTdWJ0bGVDcnlwdG8uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUZGOEY2MzE4MDc0NUQ4MDAxMzI2NzQgLyog
SlNXZWJLaXRTdWJ0bGVDcnlwdG8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNXZWJLaXRTdWJ0bGVDcnlwdG8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFG
RjhGNjYxODA3NDYwODAwMTMyNjc0IC8qIEpTV2ViS2l0U3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0U3VidGxlQ3J5cHRv
Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRjhGNkExODBEQjVC
RTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRjhGNkIxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0
b0FsZ29yaXRobVJlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENy
eXB0b0FsZ29yaXRobVJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUz
ODgzODk0MUJBRDE0NUYwMEQ2MkVFMyAvKiBKU01vZHVsZUxvYWRlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01vZHVsZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMjc2NCw3ICsyMjc2NCw2IEBACiAJCQkJQkM5OEEyN0MwQzBD
OTk1MDAwNEJFQkY3IC8qIEpTU3R5bGVTaGVldEN1c3RvbS5jcHAgKi8sCiAJCQkJQUQ3MjZGRUMx
NkQ5RjRCOTAwM0E0RTZEIC8qIEpTU3R5bGVTaGVldEN1c3RvbS5oICovLAogCQkJCUE4NEVCRDc3
MENCOEM4OTIwMDA3OTYwOSAvKiBKU1N0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcCAqLywKLQkJCQlF
MUZGOEY2NjE4MDc0NjA4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwICovLAog
CQkJCTA4RTRGRTQ1MEUyQkQ0MTQwMEY0Q0FFMCAvKiBKU1NWR0xlbmd0aEN1c3RvbS5jcHAgKi8s
CiAJCQkJQjJDOTZEOEMwQjNBRjJCNzAwNUU4MEVDIC8qIEpTU1ZHUGF0aFNlZ0N1c3RvbS5jcHAg
Ki8sCiAJCQkJMDdFMTE3MDYxNDg5RUJFQjAwRUM1QUNFIC8qIEpTVGV4dFRyYWNrQ3VlQ3VzdG9t
LmNwcCAqLywKQEAgLTIyNzgwLDYgKzIyNzc5LDcgQEAKIAkJCQlEM0YzRDM1OTFBNjlBM0IwMDA1
OUZDMkIgLyogSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCAqLywKIAkJCQlEM0Yz
RDM1QTFBNjlBM0IwMDA1OUZDMkIgLyogSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlQ3VzdG9t
LmNwcCAqLywKIAkJCQk0OUVFRDE0QzEwNTE5NzFBMDAwOTlGQUIgLyogSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwICovLAorCQkJCUUxRkY4RjY2MTgwNzQ2MDgwMDEzMjY3NCAvKiBK
U1dlYktpdFN1YnRsZUNyeXB0b0N1c3RvbS5jcHAgKi8sCiAJCQkJQkMyNzVCNzgxMUM1RDFDMzAw
QzkyMDZDIC8qIEpTV2ViS2l0UG9pbnRDdXN0b20uY3BwICovLAogCQkJCUUxQ0E1Q0JCMEU4Q0RD
QUYwMEU4RUY5MCAvKiBKU1dvcmtlckN1c3RvbS5jcHAgKi8sCiAJCQkJRTE4MjU4QUIwRUYzQ0Q3
MDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwICovLApAQCAtMjM3ODks
OSArMjM3ODksOSBAQAogCQkJCUUxOTcyNzE1MTgyMDU0OUUwMDU5MkQ1MSAvKiBDcnlwdG9LZXlU
eXBlLmggKi8sCiAJCQkJRTE3MkFGNkYxODBGMjg5NTAwRkJBREI5IC8qIENyeXB0b0tleVVzYWdl
LmggKi8sCiAJCQkJRTE4REYzMzQxOEFBRjEyQzAwNzczRTU5IC8qIFNlcmlhbGl6ZWRDcnlwdG9L
ZXlXcmFwLmggKi8sCi0JCQkJRTFGRjhGNUQxODA3NDQyMTAwMTMyNjc0IC8qIFN1YnRsZUNyeXB0
by5jcHAgKi8sCi0JCQkJRTFGRjhGNUUxODA3NDQyMTAwMTMyNjc0IC8qIFN1YnRsZUNyeXB0by5o
ICovLAotCQkJCUUxRkY4RjVDMTgwNzM2NEIwMDEzMjY3NCAvKiBTdWJ0bGVDcnlwdG8uaWRsICov
LAorCQkJCTU3MDlFOENBMUQ0MTNDRTMwMDMyNDRBQyAvKiBXZWJLaXRTdWJ0bGVDcnlwdG8uY3Bw
ICovLAorCQkJCTU3MDlFOENCMUQ0MTNDRTMwMDMyNDRBQyAvKiBXZWJLaXRTdWJ0bGVDcnlwdG8u
aCAqLywKKwkJCQk1NzA5RThDQzFENDEzQ0UzMDAzMjQ0QUMgLyogV2ViS2l0U3VidGxlQ3J5cHRv
LmlkbCAqLywKIAkJCSk7CiAJCQlwYXRoID0gY3J5cHRvOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKQEAgLTIzODAzLDggKzIzODAzLDggQEAKIAkJCQlFMTU3QThERjE4MTczMzFDMDA5Rjgy
MUQgLyogSlNDcnlwdG9LZXkuaCAqLywKIAkJCQlFMUY4MEI4QjE4MzE3MkI1MDA3ODg1QzMgLyog
SlNDcnlwdG9LZXlQYWlyLmNwcCAqLywKIAkJCQlFMUY4MEI4QzE4MzE3MkI1MDA3ODg1QzMgLyog
SlNDcnlwdG9LZXlQYWlyLmggKi8sCi0JCQkJRTFGRjhGNjIxODA3NDVEODAwMTMyNjc0IC8qIEpT
U3VidGxlQ3J5cHRvLmNwcCAqLywKLQkJCQlFMUZGOEY2MzE4MDc0NUQ4MDAxMzI2NzQgLyogSlNT
dWJ0bGVDcnlwdG8uaCAqLywKKwkJCQlFMUZGOEY2MjE4MDc0NUQ4MDAxMzI2NzQgLyogSlNXZWJL
aXRTdWJ0bGVDcnlwdG8uY3BwICovLAorCQkJCUUxRkY4RjYzMTgwNzQ1RDgwMDEzMjY3NCAvKiBK
U1dlYktpdFN1YnRsZUNyeXB0by5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBDcnlwdG87CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjY1NzIsNiArMjY1NzIsOCBAQAogCQkJCUE4NzFE
NDU2MEExMjdDQkMwMEIxMkE2OCAvKiBIVE1MUGx1Z0luRWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDQxNTI5MkUwRTFBRThBMDAwQzRBMkQwIC8qIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE3Q0IwMEExOTJCOUMwMEE4RUY1RiAvKiBIVE1MUHJl
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTcwQTk5REIxRDQxQTJGMzAwNEVDNjMwIC8q
IEpTV2ViS2l0U3VidGxlQ3J5cHRvLmggaW4gSGVhZGVycyAqLywKKwkJCQk1NzA5RThDRjFENDEz
RDlBMDAzMjQ0QUMgLyogV2ViS2l0U3VidGxlQ3J5cHRvLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
NzdCMzg3MzEyMjg4M0U5MDBCODFGRjggLyogSFRNTFByZWxvYWRTY2FubmVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNDNCRjU5OTExNDkyOTBBMDBDNjQzQ0EgLyogSFRNTFByb2dyZXNzRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkY3QTMwQTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxR
dW90ZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjcxMzgsNyArMjcxNDAsNiBAQAogCQkJ
CUJDRTAxMzlCMEMwQkVGMTgwMDQzODYwQSAvKiBKU1N0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUFENzI2RkVFMTZEQTExQkMwMDNBNEU2RCAvKiBKU1N0eWxlU2hlZXRDdXN0b20uaCBp
biBIZWFkZXJzICovLAogCQkJCUE4NEVCRDgzMENCOEM5NzcwMDA3OTYwOSAvKiBKU1N0eWxlU2hl
ZXRMaXN0LmggaW4gSGVhZGVycyAqLywKLQkJCQlFMUZGOEY2NTE4MDc0NUQ4MDAxMzI2NzQgLyog
SlNTdWJ0bGVDcnlwdG8uaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMDExMTA4MEFCNzc0MDUwMERC
MEU2OCAvKiBKU1NWR0FFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyNEQ5MTI5MjEzQ0E5
NTFFMDBEMjE5MTUgLyogSlNTVkdBbHRHbHlwaERlZkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTY1MTVFQzkyMEQ5NzIzRkYwMDYzRDQ5QSAvKiBKU1NWR0FsdEdseXBoRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yODM2Niw3ICsyODM2Nyw2IEBACiAJCQkJMUFFOTZBOTMxRDFBMERE
RDAwQjg2NzY4IC8qIEpTQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBOEY2QjAyMERCNTMwMDYwMDFEQjc5NCAvKiBTdWJzdGl0dXRlUmVz
b3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTk2QThCMUQxQTBEREQwMEI4Njc2OCAvKiBK
U0FwcGxlUGF5UGF5bWVudEF1dGhvcml6ZWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTFG
RjhGNjAxODA3NDQyMTAwMTMyNjc0IC8qIFN1YnRsZUNyeXB0by5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTNCMkQ4MTYwRjk5MjBEMjAwNkFFNkIyIC8qIFN1ZGRlblRlcm1pbmF0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5N0MwNzg1MDExNjVENUJFMDAzQTMyRUYgLyogU3VmZml4VHJlZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTc2MjdCOTgxNEZCNTQyNDAwMkNEQ0ExIC8qIFN1cHBsZW1lbnRh
YmxlLmggaW4gSGVhZGVycyAqLywKQEAgLTI5MzEzLDYgKzI5MzEzLDggQEAKIAkJCWlzYSA9IFBC
WFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJ
CWZpbGVzID0gKAorCQkJCTU3MDlFOENFMUQ0MTNENUIwMDMyNDRBQyAvKiBKU1dlYktpdFN1YnRs
ZUNyeXB0b0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1NzA5RThDRDFENDEzRDQ3MDAz
MjQ0QUMgLyogV2ViS2l0U3VidGxlQ3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxRTFC
MUQwMEZGNTk4NjkwMDU3NkIzQiAvKiBBYnN0cmFjdFdvcmtlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkzN0Y1N0FCOTFBNTA3MjY5MDA4NzZGOTggLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTM3RjU3QUJBMUE1MDcyNkYwMDg3NkY5OCAvKiBBY2Nlc3Np
YmlsaXR5QVJJQUdyaWRDZWxsLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzAzMzYsNiArMzAzMzgs
NyBAQAogCQkJCTA3MDc1NjhCMTQyMjYyRDYwMDQxNDE2MSAvKiBIVE1MVHJhY2tFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0IzNzI1MTIyODcyMTcwMEI4MUZGOCAvKiBIVE1MVHJl
ZUJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThFQTc5RjMwQTE5MTZERjAwQThFRjVG
IC8qIEhUTUxVTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTcwQTk5REExRDQx
NzQwODAwNEVDNjMwIC8qIEpTV2ViS2l0U3VidGxlQ3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUU0NDYxM0FBMENENjMzMTAwMEZBREE3NSAvKiBIVE1MVmlkZW9FbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTgzOUFBRkVDMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwQjhDNTZENDBGMjg2MjdGMDAwNTAyRTEgLyogSFRU
UEhlYWRlck1hcC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMwOTQ5LDggKzMwOTUyLDYgQEAKIAkJ
CQlCQzk4QTI3RDBDMEM5OTUwMDA0QkVCRjcgLyogSlNTdHlsZVNoZWV0Q3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4NEVCRDg0MENCOEM5NzcwMDA3OTYwOSAvKiBKU1N0eWxlU2hlZXRM
aXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NEVCRDc4MENCOEM4OTIwMDA3OTYwOSAvKiBK
U1N0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUUxRkY4RjY0MTgw
NzQ1RDgwMDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0by5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlF
MUZGOEY2ODE4MDc0NjA4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQjIwMTExMDcwQUI3NzQwNTAwREIwRTY4IC8qIEpTU1ZHQUVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjREOTEyOTExM0NBOTUxRTAwRDIxOTE1IC8qIEpTU1ZH
QWx0R2x5cGhEZWZFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1MTVFQzkxMEQ5NzIz
RkYwMDYzRDQ5QSAvKiBKU1NWR0FsdEdseXBoRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTMyMDA3LDcgKzMyMDA4LDYgQEAKIAkJCQk5M0UyMjdFNDBBRjU4OUFEMDBENDgzMjQgLyogU3Vi
cmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0UzN0VGMkUxMzM5MjA4ODAw
QjI5MjUwIC8qIFN1YnJlc291cmNlTG9hZGVyQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0U4
RkFEQzQxOTlBOTVCMTAwNzE0OTY4IC8qIFN1YnJlc291cmNlTG9hZGVyQ29jb2EubW0gaW4gU291
cmNlcyAqLywKLQkJCQlFMUZGOEY1RjE4MDc0NDIxMDAxMzI2NzQgLyogU3VidGxlQ3J5cHRvLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTkzQjJEODE4MEY5OTIwRUUwMDZBRTZCMiAvKiBTdWRkZW5U
ZXJtaW5hdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA4NzU1OEM1MTNCNEE1N0QwMEY0OTMw
NyAvKiBTdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNjJDMTIxN0MxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N1YnRs
ZUNyeXB0b0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N1YnRsZUNy
eXB0b0N1c3RvbS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5ZTE1NzhkY2Ni
NGRmNzVjZDRhODUwOThhOTBiODM2NDdmNDM4OGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdWJ0bGVD
cnlwdG9DdXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODA1ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNTdWJ0bGVDcnlwdG8uaCIKLQot
I2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtLmgi
Ci0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oIgotI2luY2x1ZGUgIkNyeXB0
b0FsZ29yaXRobVJlZ2lzdHJ5LmgiCi0jaW5jbHVkZSAiQ3J5cHRvS2V5RGF0YS5oIgotI2luY2x1
ZGUgIkNyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgot
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJKU0NyeXB0b0FsZ29yaXRobURp
Y3Rpb25hcnkuaCIKLSNpbmNsdWRlICJKU0NyeXB0b0tleS5oIgotI2luY2x1ZGUgIkpTQ3J5cHRv
S2V5UGFpci5oIgotI2luY2x1ZGUgIkpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5oIgotI2lu
Y2x1ZGUgIkpTQ3J5cHRvT3BlcmF0aW9uRGF0YS5oIgotI2luY2x1ZGUgIkpTRE9NUHJvbWlzZS5o
IgotI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1lbnVtIGNsYXNzIENyeXB0b0tleUZvcm1hdCB7Ci0gICAg
Ly8gQW4gdW5mb3JtYXR0ZWQgc2VxdWVuY2Ugb2YgYnl0ZXMuIEludGVuZGVkIGZvciBzZWNyZXQg
a2V5cy4KLSAgICBSYXcsCi0KLSAgICAvLyBUaGUgREVSIGVuY29kaW5nIG9mIHRoZSBQcml2YXRl
S2V5SW5mbyBzdHJ1Y3R1cmUgZnJvbSBSRkMgNTIwOC4KLSAgICBQS0NTOCwKLQotICAgIC8vIFRo
ZSBERVIgZW5jb2Rpbmcgb2YgdGhlIFN1YmplY3RQdWJsaWNLZXlJbmZvIHN0cnVjdHVyZSBmcm9t
IFJGQyA1MjgwLgotICAgIFNQS0ksCi0KLSAgICAvLyBUaGUga2V5IGlzIHJlcHJlc2VudGVkIGFz
IEpTT04gYWNjb3JkaW5nIHRvIHRoZSBKU09OIFdlYiBLZXkgZm9ybWF0LgotICAgIEpXSwotfTsK
LQotc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZUFsZ29yaXRobUZyb21KU1Zh
bHVlKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllciBhbGdvcml0aG1JZGVudGlmaWVyOwotICAgIGlmICghSlNDcnlwdG9BbGdv
cml0aG1EaWN0aW9uYXJ5OjpnZXRBbGdvcml0aG1JZGVudGlmaWVyKCZzdGF0ZSwgdmFsdWUsIGFs
Z29yaXRobUlkZW50aWZpZXIpKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24o
KSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQotICAgIGF1dG8gcmVzdWx0ID0g
Q3J5cHRvQWxnb3JpdGhtUmVnaXN0cnk6OnNpbmdsZXRvbigpLmNyZWF0ZShhbGdvcml0aG1JZGVu
dGlmaWVyKTsKLSAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0
ZSwgTk9UX1NVUFBPUlRFRF9FUlIpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXN0YXRpYyBi
b29sIGNyeXB0b0tleUZvcm1hdEZyb21KU1ZhbHVlKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUg
dmFsdWUsIENyeXB0b0tleUZvcm1hdCYgcmVzdWx0KQotewotICAgIFN0cmluZyBrZXlGb3JtYXRT
dHJpbmcgPSB2YWx1ZS50b1N0cmluZygmc3RhdGUpLT52YWx1ZSgmc3RhdGUpOwotICAgIGlmIChz
dGF0ZS5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChrZXlG
b3JtYXRTdHJpbmcgPT0gInJhdyIpCi0gICAgICAgIHJlc3VsdCA9IENyeXB0b0tleUZvcm1hdDo6
UmF3OwotICAgIGVsc2UgaWYgKGtleUZvcm1hdFN0cmluZyA9PSAicGtjczgiKQotICAgICAgICBy
ZXN1bHQgPSBDcnlwdG9LZXlGb3JtYXQ6OlBLQ1M4OwotICAgIGVsc2UgaWYgKGtleUZvcm1hdFN0
cmluZyA9PSAic3BraSIpCi0gICAgICAgIHJlc3VsdCA9IENyeXB0b0tleUZvcm1hdDo6U1BLSTsK
LSAgICBlbHNlIGlmIChrZXlGb3JtYXRTdHJpbmcgPT0gImp3ayIpCi0gICAgICAgIHJlc3VsdCA9
IENyeXB0b0tleUZvcm1hdDo6SldLOwotICAgIGVsc2UgewotICAgICAgICB0aHJvd1R5cGVFcnJv
cigmc3RhdGUsIEFTQ0lJTGl0ZXJhbCgiVW5rbm93biBrZXkgZm9ybWF0IikpOwotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCi1zdGF0aWMgYm9vbCBj
cnlwdG9LZXlVc2FnZXNGcm9tSlNWYWx1ZShFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVl
LCBDcnlwdG9LZXlVc2FnZSYgcmVzdWx0KQotewotICAgIGlmICghaXNKU0FycmF5KHZhbHVlKSkg
ewotICAgICAgICB0aHJvd1R5cGVFcnJvcigmc3RhdGUpOwotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgfQotCi0gICAgcmVzdWx0ID0gMDsKLQotICAgIEpTQXJyYXkqIGFycmF5ID0gYXNBcnJh
eSh2YWx1ZSk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcnJheS0+bGVuZ3RoKCk7ICsr
aSkgewotICAgICAgICBKU1ZhbHVlIGVsZW1lbnQgPSBhcnJheS0+Z2V0SW5kZXgoJnN0YXRlLCBp
KTsKLSAgICAgICAgU3RyaW5nIHVzYWdlU3RyaW5nID0gZWxlbWVudC50b1N0cmluZygmc3RhdGUp
LT52YWx1ZSgmc3RhdGUpOwotICAgICAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCi0gICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICh1c2FnZVN0cmluZyA9PSAiZW5jcnlw
dCIpCi0gICAgICAgICAgICByZXN1bHQgfD0gQ3J5cHRvS2V5VXNhZ2VFbmNyeXB0OwotICAgICAg
ICBlbHNlIGlmICh1c2FnZVN0cmluZyA9PSAiZGVjcnlwdCIpCi0gICAgICAgICAgICByZXN1bHQg
fD0gQ3J5cHRvS2V5VXNhZ2VEZWNyeXB0OwotICAgICAgICBlbHNlIGlmICh1c2FnZVN0cmluZyA9
PSAic2lnbiIpCi0gICAgICAgICAgICByZXN1bHQgfD0gQ3J5cHRvS2V5VXNhZ2VTaWduOwotICAg
ICAgICBlbHNlIGlmICh1c2FnZVN0cmluZyA9PSAidmVyaWZ5IikKLSAgICAgICAgICAgIHJlc3Vs
dCB8PSBDcnlwdG9LZXlVc2FnZVZlcmlmeTsKLSAgICAgICAgZWxzZSBpZiAodXNhZ2VTdHJpbmcg
PT0gImRlcml2ZUtleSIpCi0gICAgICAgICAgICByZXN1bHQgfD0gQ3J5cHRvS2V5VXNhZ2VEZXJp
dmVLZXk7Ci0gICAgICAgIGVsc2UgaWYgKHVzYWdlU3RyaW5nID09ICJkZXJpdmVCaXRzIikKLSAg
ICAgICAgICAgIHJlc3VsdCB8PSBDcnlwdG9LZXlVc2FnZURlcml2ZUJpdHM7Ci0gICAgICAgIGVs
c2UgaWYgKHVzYWdlU3RyaW5nID09ICJ3cmFwS2V5IikKLSAgICAgICAgICAgIHJlc3VsdCB8PSBD
cnlwdG9LZXlVc2FnZVdyYXBLZXk7Ci0gICAgICAgIGVsc2UgaWYgKHVzYWdlU3RyaW5nID09ICJ1
bndyYXBLZXkiKQotICAgICAgICAgICAgcmVzdWx0IHw9IENyeXB0b0tleVVzYWdlVW53cmFwS2V5
OwotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6
ZW5jcnlwdChFeGVjU3RhdGUmIHN0YXRlKQotewotICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50
KCkgPCAzKQotICAgICAgICByZXR1cm4gc3RhdGUudm0oKS50aHJvd0V4Y2VwdGlvbigmc3RhdGUs
IGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwotCi0gICAgYXV0byBhbGdv
cml0aG0gPSBjcmVhdGVBbGdvcml0aG1Gcm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVja2Vk
QXJndW1lbnQoMCkpOwotICAgIGlmICghYWxnb3JpdGhtKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0
ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0K
LQotICAgIGF1dG8gcGFyYW1ldGVycyA9IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3Jl
YXRlUGFyYW1ldGVyc0ZvckVuY3J5cHQoJnN0YXRlLCBhbGdvcml0aG0tPmlkZW50aWZpZXIoKSwg
c3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwotICAgIGlmICghcGFyYW1ldGVycykgewotICAg
ICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKLSAgICB9Ci0KLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tl
eTo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKLSAgICBpZiAoIWtleSkK
LSAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSk7Ci0KLSAgICBpZiAoIWtleS0+
YWxsb3dzKENyeXB0b0tleVVzYWdlRW5jcnlwdCkpIHsKLSAgICAgICAgd3JhcHBlZCgpLmRvY3Vt
ZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6
OkVycm9yLCBBU0NJSUxpdGVyYWwoIktleSB1c2FnZXMgZG8gbm90IGluY2x1ZGUgJ2VuY3J5cHQn
IikpOwotICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBOT1RfU1VQUE9SVEVEX0VSUik7
Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIENyeXB0b09wZXJh
dGlvbkRhdGEgZGF0YTsKLSAgICBpZiAoIWNyeXB0b09wZXJhdGlvbkRhdGFGcm9tSlNWYWx1ZSgm
c3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpLCBkYXRhKSkgewotICAgICAgICBBU1NF
UlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
LSAgICB9Ci0KLSAgICAKLSAgICBKU1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZURlZmVycmVkID0g
SlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSgmc3RhdGUsIGdsb2JhbE9iamVjdCgpKTsKLSAgICBE
ZWZlcnJlZFdyYXBwZXIgd3JhcHBlcigmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCBwcm9taXNlRGVm
ZXJyZWQpOwotICAgIGF1dG8gc3VjY2Vzc0NhbGxiYWNrID0gW3dyYXBwZXJdKGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgZnVsZmlsbFByb21pc2VXaXRo
QXJyYXlCdWZmZXIod3JhcHBlciwgcmVzdWx0LmRhdGEoKSwgcmVzdWx0LnNpemUoKSk7Ci0gICAg
fTsKLSAgICBhdXRvIGZhaWx1cmVDYWxsYmFjayA9IFt3cmFwcGVyXSgpIG11dGFibGUgewotICAg
ICAgICB3cmFwcGVyLnJlamVjdChudWxscHRyKTsKLSAgICB9OwotCi0gICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7Ci0gICAgYWxnb3JpdGhtLT5lbmNyeXB0KCpwYXJhbWV0ZXJzLCAqa2V5LCBkYXRh
LCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMp
OwotICAgIGlmIChlYykgewotICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7Ci0g
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIHJldHVybiBwcm9taXNl
RGVmZXJyZWQtPnByb21pc2UoKTsKLX0KLQotSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6ZGVjcnlw
dChFeGVjU3RhdGUmIHN0YXRlKQotewotICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPCAz
KQotICAgICAgICByZXR1cm4gc3RhdGUudm0oKS50aHJvd0V4Y2VwdGlvbigmc3RhdGUsIGNyZWF0
ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwotCi0gICAgYXV0byBhbGdvcml0aG0g
PSBjcmVhdGVBbGdvcml0aG1Gcm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1l
bnQoMCkpOwotICAgIGlmICghYWxnb3JpdGhtKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5oYWRF
eGNlcHRpb24oKSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAg
IGF1dG8gcGFyYW1ldGVycyA9IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFy
YW1ldGVyc0ZvckRlY3J5cHQoJnN0YXRlLCBhbGdvcml0aG0tPmlkZW50aWZpZXIoKSwgc3RhdGUu
dW5jaGVja2VkQXJndW1lbnQoMCkpOwotICAgIGlmICghcGFyYW1ldGVycykgewotICAgICAgICBB
U1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKLSAgICB9Ci0KLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9X
cmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKLSAgICBpZiAoIWtleSkKLSAgICAg
ICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSk7Ci0KLSAgICBpZiAoIWtleS0+YWxsb3dz
KENyeXB0b0tleVVzYWdlRGVjcnlwdCkpIHsKLSAgICAgICAgd3JhcHBlZCgpLmRvY3VtZW50KCkt
PmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9y
LCBBU0NJSUxpdGVyYWwoIktleSB1c2FnZXMgZG8gbm90IGluY2x1ZGUgJ2RlY3J5cHQnIikpOwot
ICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBOT1RfU1VQUE9SVEVEX0VSUik7Ci0gICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIENyeXB0b09wZXJhdGlvbkRh
dGEgZGF0YTsKLSAgICBpZiAoIWNyeXB0b09wZXJhdGlvbkRhdGFGcm9tSlNWYWx1ZSgmc3RhdGUs
IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpLCBkYXRhKSkgewotICAgICAgICBBU1NFUlQoc3Rh
dGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9
Ci0KLSAgICBKU1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZURlZmVycmVkID0gSlNQcm9taXNlRGVm
ZXJyZWQ6OmNyZWF0ZSgmc3RhdGUsIGdsb2JhbE9iamVjdCgpKTsKLSAgICBEZWZlcnJlZFdyYXBw
ZXIgd3JhcHBlcigmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCBwcm9taXNlRGVmZXJyZWQpOwotICAg
IGF1dG8gc3VjY2Vzc0NhbGxiYWNrID0gW3dyYXBwZXJdKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
cmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgZnVsZmlsbFByb21pc2VXaXRoQXJyYXlCdWZmZXIo
d3JhcHBlciwgcmVzdWx0LmRhdGEoKSwgcmVzdWx0LnNpemUoKSk7Ci0gICAgfTsKLSAgICBhdXRv
IGZhaWx1cmVDYWxsYmFjayA9IFt3cmFwcGVyXSgpIG11dGFibGUgewotICAgICAgICB3cmFwcGVy
LnJlamVjdChudWxscHRyKTsKLSAgICB9OwotCi0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0g
ICAgYWxnb3JpdGhtLT5kZWNyeXB0KCpwYXJhbWV0ZXJzLCAqa2V5LCBkYXRhLCBXVEZNb3ZlKHN1
Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwotICAgIGlmIChl
YykgewotICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7Ci0gICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIHJldHVybiBwcm9taXNlRGVmZXJyZWQtPnBy
b21pc2UoKTsKLX0KLQotSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6c2lnbihFeGVjU3RhdGUmIHN0
YXRlKQotewotICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPCAzKQotICAgICAgICByZXR1
cm4gc3RhdGUudm0oKS50aHJvd0V4Y2VwdGlvbigmc3RhdGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3Vt
ZW50c0Vycm9yKCZzdGF0ZSkpOwotCi0gICAgYXV0byBhbGdvcml0aG0gPSBjcmVhdGVBbGdvcml0
aG1Gcm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwotICAgIGlm
ICghYWxnb3JpdGhtKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0g
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIGF1dG8gcGFyYW1ldGVy
cyA9IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvclNpZ24o
JnN0YXRlLCBhbGdvcml0aG0tPmlkZW50aWZpZXIoKSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MCkpOwotICAgIGlmICghcGFyYW1ldGVycykgewotICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhj
ZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBS
ZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9XcmFwcGVkKHN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDEpKTsKLSAgICBpZiAoIWtleSkKLSAgICAgICAgcmV0dXJuIHRocm93VHlw
ZUVycm9yKCZzdGF0ZSk7Ci0KLSAgICBpZiAoIWtleS0+YWxsb3dzKENyeXB0b0tleVVzYWdlU2ln
bikpIHsKLSAgICAgICAgd3JhcHBlZCgpLmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwoIktleSB1
c2FnZXMgZG8gbm90IGluY2x1ZGUgJ3NpZ24nIikpOwotICAgICAgICBzZXRET01FeGNlcHRpb24o
JnN0YXRlLCBOT1RfU1VQUE9SVEVEX0VSUik7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwotICAgIH0KLQotICAgIENyeXB0b09wZXJhdGlvbkRhdGEgZGF0YTsKLSAgICBpZiAoIWNyeXB0
b09wZXJhdGlvbkRhdGFGcm9tSlNWYWx1ZSgmc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50
KDIpLCBkYXRhKSkgewotICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBKU1Byb21pc2VEZWZlcnJl
ZCogcHJvbWlzZURlZmVycmVkID0gSlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSgmc3RhdGUsIGds
b2JhbE9iamVjdCgpKTsKLSAgICBEZWZlcnJlZFdyYXBwZXIgd3JhcHBlcigmc3RhdGUsIGdsb2Jh
bE9iamVjdCgpLCBwcm9taXNlRGVmZXJyZWQpOwotICAgIGF1dG8gc3VjY2Vzc0NhbGxiYWNrID0g
W3dyYXBwZXJdKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAg
ICAgZnVsZmlsbFByb21pc2VXaXRoQXJyYXlCdWZmZXIod3JhcHBlciwgcmVzdWx0LmRhdGEoKSwg
cmVzdWx0LnNpemUoKSk7Ci0gICAgfTsKLSAgICBhdXRvIGZhaWx1cmVDYWxsYmFjayA9IFt3cmFw
cGVyXSgpIG11dGFibGUgewotICAgICAgICB3cmFwcGVyLnJlamVjdChudWxscHRyKTsKLSAgICB9
OwotCi0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgYWxnb3JpdGhtLT5zaWduKCpwYXJh
bWV0ZXJzLCAqa2V5LCBkYXRhLCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZmFp
bHVyZUNhbGxiYWNrKSwgZWMpOwotICAgIGlmIChlYykgewotICAgICAgICBzZXRET01FeGNlcHRp
b24oJnN0YXRlLCBlYyk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQot
ICAgIHJldHVybiBwcm9taXNlRGVmZXJyZWQtPnByb21pc2UoKTsKLX0KLQotSlNWYWx1ZSBKU1N1
YnRsZUNyeXB0bzo6dmVyaWZ5KEV4ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgaWYgKHN0YXRlLmFy
Z3VtZW50Q291bnQoKSA8IDQpCi0gICAgICAgIHJldHVybiBzdGF0ZS52bSgpLnRocm93RXhjZXB0
aW9uKCZzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7Ci0KLSAg
ICBhdXRvIGFsZ29yaXRobSA9IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0YXRlLCBzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7Ci0gICAgaWYgKCFhbGdvcml0aG0pIHsKLSAgICAgICAg
QVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7Ci0gICAgfQotCi0gICAgYXV0byBwYXJhbWV0ZXJzID0gSlNDcnlwdG9BbGdvcml0aG1EaWN0
aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yVmVyaWZ5KCZzdGF0ZSwgYWxnb3JpdGhtLT5pZGVu
dGlmaWVyKCksIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKLSAgICBpZiAoIXBhcmFtZXRl
cnMpIHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0g
SlNDcnlwdG9LZXk6OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7Ci0gICAg
aWYgKCFrZXkpCi0gICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUpOwotCi0gICAg
aWYgKCFrZXktPmFsbG93cyhDcnlwdG9LZXlVc2FnZVZlcmlmeSkpIHsKLSAgICAgICAgd3JhcHBl
ZCgpLmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNz
YWdlTGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwoIktleSB1c2FnZXMgZG8gbm90IGluY2x1ZGUg
J3ZlcmlmeSciKSk7Ci0gICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIE5PVF9TVVBQT1JU
RURfRVJSKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgQ3J5
cHRvT3BlcmF0aW9uRGF0YSBzaWduYXR1cmU7Ci0gICAgaWYgKCFjcnlwdG9PcGVyYXRpb25EYXRh
RnJvbUpTVmFsdWUoJnN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSwgc2lnbmF0dXJl
KSkgewotICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBDcnlwdG9PcGVyYXRpb25EYXRhIGRhdGE7
Ci0gICAgaWYgKCFjcnlwdG9PcGVyYXRpb25EYXRhRnJvbUpTVmFsdWUoJnN0YXRlLCBzdGF0ZS51
bmNoZWNrZWRBcmd1bWVudCgzKSwgZGF0YSkpIHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4
Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAg
SlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VEZWZlcnJlZCA9IEpTUHJvbWlzZURlZmVycmVkOjpj
cmVhdGUoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSk7Ci0gICAgRGVmZXJyZWRXcmFwcGVyIHdyYXBw
ZXIoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgcHJvbWlzZURlZmVycmVkKTsKLSAgICBhdXRvIHN1
Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShib29sIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAg
IHdyYXBwZXIucmVzb2x2ZShyZXN1bHQpOwotICAgIH07Ci0gICAgYXV0byBmYWlsdXJlQ2FsbGJh
Y2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxlIHsKLSAgICAgICAgd3JhcHBlci5yZWplY3QobnVsbHB0
cik7Ci0gICAgfTsKLQotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGFsZ29yaXRobS0+
dmVyaWZ5KCpwYXJhbWV0ZXJzLCAqa2V5LCBzaWduYXR1cmUsIGRhdGEsIFdURk1vdmUoc3VjY2Vz
c0NhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7Ci0gICAgaWYgKGVjKSB7
Ci0gICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIGVjKTsKLSAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHByb21pc2VEZWZlcnJlZC0+cHJvbWlz
ZSgpOwotfQotCi1KU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjpkaWdlc3QoRXhlY1N0YXRlJiBzdGF0
ZSkKLXsKLSAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgMikKLSAgICAgICAgcmV0dXJu
IHN0YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVu
dHNFcnJvcigmc3RhdGUpKTsKLQotICAgIGF1dG8gYWxnb3JpdGhtID0gY3JlYXRlQWxnb3JpdGht
RnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKLSAgICBpZiAo
IWFsZ29yaXRobSkgewotICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBhdXRvIHBhcmFtZXRlcnMg
PSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEaWdlc3Qo
JnN0YXRlLCBhbGdvcml0aG0tPmlkZW50aWZpZXIoKSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MCkpOwotICAgIGlmICghcGFyYW1ldGVycykgewotICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhj
ZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBD
cnlwdG9PcGVyYXRpb25EYXRhIGRhdGE7Ci0gICAgaWYgKCFjcnlwdG9PcGVyYXRpb25EYXRhRnJv
bUpTVmFsdWUoJnN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSwgZGF0YSkpIHsKLSAg
ICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VEZWZlcnJl
ZCA9IEpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSk7Ci0g
ICAgRGVmZXJyZWRXcmFwcGVyIHdyYXBwZXIoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgcHJvbWlz
ZURlZmVycmVkKTsKLSAgICBhdXRvIHN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShjb25zdCBW
ZWN0b3I8dWludDhfdD4mIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIGZ1bGZpbGxQcm9taXNl
V2l0aEFycmF5QnVmZmVyKHdyYXBwZXIsIHJlc3VsdC5kYXRhKCksIHJlc3VsdC5zaXplKCkpOwot
ICAgIH07Ci0gICAgYXV0byBmYWlsdXJlQ2FsbGJhY2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxlIHsK
LSAgICAgICAgd3JhcHBlci5yZWplY3QobnVsbHB0cik7Ci0gICAgfTsKLQotICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwotICAgIGFsZ29yaXRobS0+ZGlnZXN0KCpwYXJhbWV0ZXJzLCBkYXRhLCBX
VEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwot
ICAgIGlmIChlYykgewotICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7Ci0gICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIHJldHVybiBwcm9taXNlRGVm
ZXJyZWQtPnByb21pc2UoKTsKLX0KLQotSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6Z2VuZXJhdGVL
ZXkoRXhlY1N0YXRlJiBzdGF0ZSkKLXsKLSAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwg
MSkKLSAgICAgICAgcmV0dXJuIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRlLCBjcmVh
dGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKLQotICAgIGF1dG8gYWxnb3JpdGht
ID0gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDApKTsKLSAgICBpZiAoIWFsZ29yaXRobSkgewotICAgICAgICBBU1NFUlQoc3RhdGUuaGFk
RXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAg
ICBhdXRvIHBhcmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBh
cmFtZXRlcnNGb3JHZW5lcmF0ZUtleSgmc3RhdGUsIGFsZ29yaXRobS0+aWRlbnRpZmllcigpLCBz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7Ci0gICAgaWYgKCFwYXJhbWV0ZXJzKSB7Ci0gICAg
ICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwotICAgIH0KLQotICAgIGJvb2wgZXh0cmFjdGFibGUgPSBmYWxzZTsKLSAgICBpZiAo
c3RhdGUuYXJndW1lbnRDb3VudCgpID49IDIpIHsKLSAgICAgICAgZXh0cmFjdGFibGUgPSBzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b0Jvb2xlYW4oJnN0YXRlKTsKLSAgICAgICAgaWYgKHN0
YXRlLmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0g
ICAgfQotCi0gICAgQ3J5cHRvS2V5VXNhZ2Uga2V5VXNhZ2VzID0gMDsKLSAgICBpZiAoc3RhdGUu
YXJndW1lbnRDb3VudCgpID49IDMpIHsKLSAgICAgICAgaWYgKCFjcnlwdG9LZXlVc2FnZXNGcm9t
SlNWYWx1ZShzdGF0ZSwgc3RhdGUuYXJndW1lbnQoMiksIGtleVVzYWdlcykpIHsKLSAgICAgICAg
ICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEpTUHJvbWlzZURlZmVycmVkKiBw
cm9taXNlRGVmZXJyZWQgPSBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKCZzdGF0ZSwgZ2xvYmFs
T2JqZWN0KCkpOwotICAgIERlZmVycmVkV3JhcHBlciB3cmFwcGVyKCZzdGF0ZSwgZ2xvYmFsT2Jq
ZWN0KCksIHByb21pc2VEZWZlcnJlZCk7Ci0gICAgYXV0byBzdWNjZXNzQ2FsbGJhY2sgPSBbd3Jh
cHBlcl0oQ3J5cHRvS2V5KiBrZXksIENyeXB0b0tleVBhaXIqIGtleVBhaXIpIG11dGFibGUgewot
ICAgICAgICBBU1NFUlQoa2V5IHx8IGtleVBhaXIpOwotICAgICAgICBBU1NFUlQoIWtleSB8fCAh
a2V5UGFpcik7Ci0gICAgICAgIGlmIChrZXkpCi0gICAgICAgICAgICB3cmFwcGVyLnJlc29sdmUo
a2V5KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgd3JhcHBlci5yZXNvbHZlKGtleVBhaXIp
OwotICAgIH07Ci0gICAgYXV0byBmYWlsdXJlQ2FsbGJhY2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxl
IHsKLSAgICAgICAgd3JhcHBlci5yZWplY3QobnVsbHB0cik7Ci0gICAgfTsKLQotICAgIEV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOwotICAgIGFsZ29yaXRobS0+Z2VuZXJhdGVLZXkoKnBhcmFtZXRlcnMs
IGV4dHJhY3RhYmxlLCBrZXlVc2FnZXMsIFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgV1RGTW92
ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIHNldERPTUV4
Y2VwdGlvbigmc3RhdGUsIGVjKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAg
fQotCi0gICAgcmV0dXJuIHByb21pc2VEZWZlcnJlZC0+cHJvbWlzZSgpOwotfQotCi1zdGF0aWMg
dm9pZCBpbXBvcnRLZXkoRXhlY1N0YXRlJiBzdGF0ZSwgQ3J5cHRvS2V5Rm9ybWF0IGtleUZvcm1h
dCwgQ3J5cHRvT3BlcmF0aW9uRGF0YSBkYXRhLCBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtPiBhbGdv
cml0aG0sIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBwYXJhbWV0ZXJzLCBib29s
IGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSBrZXlVc2FnZXMsIENyeXB0b0FsZ29yaXRobTo6
S2V5Q2FsbGJhY2sgY2FsbGJhY2ssIENyeXB0b0FsZ29yaXRobTo6Vm9pZENhbGxiYWNrIGZhaWx1
cmVDYWxsYmFjaykKLXsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvS2V5U2VyaWFsaXphdGlv
bj4ga2V5U2VyaWFsaXphdGlvbjsKLSAgICBzd2l0Y2ggKGtleUZvcm1hdCkgewotICAgIGNhc2Ug
Q3J5cHRvS2V5Rm9ybWF0OjpSYXc6Ci0gICAgICAgIGtleVNlcmlhbGl6YXRpb24gPSBDcnlwdG9L
ZXlTZXJpYWxpemF0aW9uUmF3OjpjcmVhdGUoZGF0YSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgQ3J5cHRvS2V5Rm9ybWF0OjpKV0s6IHsKLSAgICAgICAgU3RyaW5nIGp3a1N0cmluZyA9IFN0
cmluZzo6ZnJvbVVURjgoZGF0YS5maXJzdCwgZGF0YS5zZWNvbmQpOwotICAgICAgICBpZiAoandr
U3RyaW5nLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIEFT
Q0lJTGl0ZXJhbCgiSldLIEpTT04gc2VyaWFsaXphdGlvbiBpcyBub3QgdmFsaWQgVVRGLTgiKSk7
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAga2V5U2VyaWFsaXphdGlv
biA9IHN0ZDo6bWFrZV91bmlxdWU8SlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLPigmc3RhdGUs
IGp3a1N0cmluZyk7Ci0gICAgICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGRlZmF1bHQ6Ci0gICAgICAg
IHRocm93VHlwZUVycm9yKCZzdGF0ZSwgQVNDSUlMaXRlcmFsKCJVbnN1cHBvcnRlZCBrZXkgZm9y
bWF0IGZvciBpbXBvcnQiKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBBU1NFUlQo
a2V5U2VyaWFsaXphdGlvbik7Ci0KLSAgICBPcHRpb25hbDxDcnlwdG9BbGdvcml0aG1QYWlyPiBy
ZWNvbmNpbGVkUmVzdWx0ID0ga2V5U2VyaWFsaXphdGlvbi0+cmVjb25jaWxlQWxnb3JpdGhtKGFs
Z29yaXRobS5nZXQoKSwgcGFyYW1ldGVycy5nZXQoKSk7Ci0gICAgaWYgKCFyZWNvbmNpbGVkUmVz
dWx0KSB7Ci0gICAgICAgIGlmICghc3RhdGUuaGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICB0
aHJvd1R5cGVFcnJvcigmc3RhdGUsIEFTQ0lJTGl0ZXJhbCgiQWxnb3JpdGhtIHNwZWNpZmllZCBp
biBrZXkgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBvbmUgcGFzc2VkIHRvIGltcG9ydEtleSBhcyBh
cmd1bWVudCIpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoc3RhdGUuaGFkRXhj
ZXB0aW9uKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGFsZ29yaXRobSA9IHJlY29uY2lsZWRS
ZXN1bHQtPmFsZ29yaXRobTsKLSAgICBwYXJhbWV0ZXJzID0gcmVjb25jaWxlZFJlc3VsdC0+cGFy
YW1ldGVyczsKLSAgICBpZiAoIWFsZ29yaXRobSkgewotICAgICAgICB0aHJvd1R5cGVFcnJvcigm
c3RhdGUsIEFTQ0lJTGl0ZXJhbCgiTmVpdGhlciBrZXkgbm9yIGZ1bmN0aW9uIGFyZ3VtZW50IGhh
cyBjcnlwdG8gYWxnb3JpdGhtIHNwZWNpZmllZCIpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LSAgICBBU1NFUlQocGFyYW1ldGVycyk7Ci0KLSAgICBrZXlTZXJpYWxpemF0aW9uLT5yZWNvbmNp
bGVFeHRyYWN0YWJsZShleHRyYWN0YWJsZSk7Ci0gICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigp
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBrZXlTZXJpYWxpemF0aW9uLT5yZWNvbmNpbGVVc2Fn
ZXMoa2V5VXNhZ2VzKTsKLSAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGF1dG8ga2V5RGF0YSA9IGtleVNlcmlhbGl6YXRpb24tPmtleURhdGEoKTsK
LSAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGFsZ29yaXRobS0+aW1wb3J0S2V5KCpwYXJhbWV0ZXJz
LCAqa2V5RGF0YSwgZXh0cmFjdGFibGUsIGtleVVzYWdlcywgV1RGTW92ZShjYWxsYmFjayksIFdU
Rk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwotICAgIGlmIChlYykKLSAgICAgICAgc2V0RE9N
RXhjZXB0aW9uKCZzdGF0ZSwgZWMpOwotfQotCi1KU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjppbXBv
cnRLZXkoRXhlY1N0YXRlJiBzdGF0ZSkKLXsKLSAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgp
IDwgMykKLSAgICAgICAgcmV0dXJuIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRlLCBj
cmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKLQotICAgIENyeXB0b0tleUZv
cm1hdCBrZXlGb3JtYXQ7Ci0gICAgaWYgKCFjcnlwdG9LZXlGb3JtYXRGcm9tSlNWYWx1ZShzdGF0
ZSwgc3RhdGUuYXJndW1lbnQoMCksIGtleUZvcm1hdCkpIHsKLSAgICAgICAgQVNTRVJUKHN0YXRl
LmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQot
Ci0gICAgQ3J5cHRvT3BlcmF0aW9uRGF0YSBkYXRhOwotICAgIGlmICghY3J5cHRvT3BlcmF0aW9u
RGF0YUZyb21KU1ZhbHVlKCZzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSksIGRhdGEp
KSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIFJlZlB0cjxDcnlwdG9BbGdvcml0aG0+IGFs
Z29yaXRobTsKLSAgICBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gcGFyYW1ldGVy
czsKLSAgICBpZiAoIXN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpLmlzTnVsbCgpKSB7Ci0gICAg
ICAgIGFsZ29yaXRobSA9IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS51
bmNoZWNrZWRBcmd1bWVudCgyKSk7Ci0gICAgICAgIGlmICghYWxnb3JpdGhtKSB7Ci0gICAgICAg
ICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7Ci0gICAgICAgIH0KLSAgICAgICAgcGFyYW1ldGVycyA9IEpTQ3J5cHRvQWxn
b3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckltcG9ydEtleSgmc3RhdGUsIGFs
Z29yaXRobS0+aWRlbnRpZmllcigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSk7Ci0gICAg
ICAgIGlmICghcGFyYW1ldGVycykgewotICAgICAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2Vw
dGlvbigpKTsKLSAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICB9Ci0g
ICAgfQotCi0gICAgYm9vbCBleHRyYWN0YWJsZSA9IGZhbHNlOwotICAgIGlmIChzdGF0ZS5hcmd1
bWVudENvdW50KCkgPj0gNCkgewotICAgICAgICBleHRyYWN0YWJsZSA9IHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDMpLnRvQm9vbGVhbigmc3RhdGUpOwotICAgICAgICBpZiAoc3RhdGUuaGFkRXhj
ZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAg
ICBDcnlwdG9LZXlVc2FnZSBrZXlVc2FnZXMgPSAwOwotICAgIGlmIChzdGF0ZS5hcmd1bWVudENv
dW50KCkgPj0gNSkgewotICAgICAgICBpZiAoIWNyeXB0b0tleVVzYWdlc0Zyb21KU1ZhbHVlKHN0
YXRlLCBzdGF0ZS5hcmd1bWVudCg0KSwga2V5VXNhZ2VzKSkgewotICAgICAgICAgICAgQVNTRVJU
KHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VEZWZl
cnJlZCA9IEpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSk7
Ci0gICAgRGVmZXJyZWRXcmFwcGVyIHdyYXBwZXIoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgcHJv
bWlzZURlZmVycmVkKTsKLSAgICBhdXRvIHN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShDcnlw
dG9LZXkmIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIHdyYXBwZXIucmVzb2x2ZShyZXN1bHQp
OwotICAgIH07Ci0gICAgYXV0byBmYWlsdXJlQ2FsbGJhY2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxl
IHsKLSAgICAgICAgd3JhcHBlci5yZWplY3QobnVsbHB0cik7Ci0gICAgfTsKLQotICAgIFdlYkNv
cmU6OmltcG9ydEtleShzdGF0ZSwga2V5Rm9ybWF0LCBkYXRhLCBXVEZNb3ZlKGFsZ29yaXRobSks
IFdURk1vdmUocGFyYW1ldGVycyksIGV4dHJhY3RhYmxlLCBrZXlVc2FnZXMsIFdURk1vdmUoc3Vj
Y2Vzc0NhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spKTsKLSAgICBpZiAoc3RhdGUu
aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotCi0gICAgcmV0
dXJuIHByb21pc2VEZWZlcnJlZC0+cHJvbWlzZSgpOwotfQotCi1zdGF0aWMgdm9pZCBleHBvcnRL
ZXkoRXhlY1N0YXRlJiBzdGF0ZSwgQ3J5cHRvS2V5Rm9ybWF0IGtleUZvcm1hdCwgY29uc3QgQ3J5
cHRvS2V5JiBrZXksIENyeXB0b0FsZ29yaXRobTo6VmVjdG9yQ2FsbGJhY2sgY2FsbGJhY2ssIENy
eXB0b0FsZ29yaXRobTo6Vm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaykKLXsKLSAgICBpZiAo
IWtleS5leHRyYWN0YWJsZSgpKSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgQVND
SUlMaXRlcmFsKCJLZXkgaXMgbm90IGV4dHJhY3RhYmxlIikpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCi0gICAgc3dpdGNoIChrZXlGb3JtYXQpIHsKLSAgICBjYXNlIENyeXB0b0tleUZvcm1h
dDo6UmF3OiB7Ci0gICAgICAgIFZlY3Rvcjx1aW50OF90PiByZXN1bHQ7Ci0gICAgICAgIGlmIChD
cnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3OjpzZXJpYWxpemUoa2V5LCByZXN1bHQpKQotICAgICAg
ICAgICAgY2FsbGJhY2socmVzdWx0KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZmFpbHVy
ZUNhbGxiYWNrKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIENyeXB0b0tleUZv
cm1hdDo6SldLOiB7Ci0gICAgICAgIFN0cmluZyByZXN1bHQgPSBKU0NyeXB0b0tleVNlcmlhbGl6
YXRpb25KV0s6OnNlcmlhbGl6ZSgmc3RhdGUsIGtleSk7Ci0gICAgICAgIGlmIChzdGF0ZS5oYWRF
eGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgQ1N0cmluZyB1dGY4U3Ry
aW5nID0gcmVzdWx0LnV0ZjgoU3RyaWN0Q29udmVyc2lvbik7Ci0gICAgICAgIFZlY3Rvcjx1aW50
OF90PiByZXN1bHRCdWZmZXI7Ci0gICAgICAgIHJlc3VsdEJ1ZmZlci5hcHBlbmQodXRmOFN0cmlu
Zy5kYXRhKCksIHV0ZjhTdHJpbmcubGVuZ3RoKCkpOwotICAgICAgICBjYWxsYmFjayhyZXN1bHRC
dWZmZXIpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgdGhy
b3dUeXBlRXJyb3IoJnN0YXRlLCBBU0NJSUxpdGVyYWwoIlVuc3VwcG9ydGVkIGtleSBmb3JtYXQg
Zm9yIGV4cG9ydCIpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi1KU1ZhbHVlIEpTU3Vi
dGxlQ3J5cHRvOjpleHBvcnRLZXkoRXhlY1N0YXRlJiBzdGF0ZSkKLXsKLSAgICBpZiAoc3RhdGUu
YXJndW1lbnRDb3VudCgpIDwgMikKLSAgICAgICAgcmV0dXJuIHN0YXRlLnZtKCkudGhyb3dFeGNl
cHRpb24oJnN0YXRlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKLQot
ICAgIENyeXB0b0tleUZvcm1hdCBrZXlGb3JtYXQ7Ci0gICAgaWYgKCFjcnlwdG9LZXlGb3JtYXRG
cm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUuYXJndW1lbnQoMCksIGtleUZvcm1hdCkpIHsKLSAgICAg
ICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7Ci0gICAgfQotCi0gICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6
OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7Ci0gICAgaWYgKCFrZXkpCi0g
ICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUpOwotCi0gICAgSlNQcm9taXNlRGVm
ZXJyZWQqIHByb21pc2VEZWZlcnJlZCA9IEpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoJnN0YXRl
LCBnbG9iYWxPYmplY3QoKSk7Ci0gICAgRGVmZXJyZWRXcmFwcGVyIHdyYXBwZXIoJnN0YXRlLCBn
bG9iYWxPYmplY3QoKSwgcHJvbWlzZURlZmVycmVkKTsKLSAgICBhdXRvIHN1Y2Nlc3NDYWxsYmFj
ayA9IFt3cmFwcGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4mIHJlc3VsdCkgbXV0YWJsZSB7Ci0g
ICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEFycmF5QnVmZmVyKHdyYXBwZXIsIHJlc3VsdC5kYXRh
KCksIHJlc3VsdC5zaXplKCkpOwotICAgIH07Ci0gICAgYXV0byBmYWlsdXJlQ2FsbGJhY2sgPSBb
d3JhcHBlcl0oKSBtdXRhYmxlIHsKLSAgICAgICAgd3JhcHBlci5yZWplY3QobnVsbHB0cik7Ci0g
ICAgfTsKLQotICAgIFdlYkNvcmU6OmV4cG9ydEtleShzdGF0ZSwga2V5Rm9ybWF0LCAqa2V5LCBX
VEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSk7Ci0gICAg
aWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
LQotICAgIHJldHVybiBwcm9taXNlRGVmZXJyZWQtPnByb21pc2UoKTsKLX0KLQotSlNWYWx1ZSBK
U1N1YnRsZUNyeXB0bzo6d3JhcEtleShFeGVjU3RhdGUmIHN0YXRlKQotewotICAgIGlmIChzdGF0
ZS5hcmd1bWVudENvdW50KCkgPCA0KQotICAgICAgICByZXR1cm4gc3RhdGUudm0oKS50aHJvd0V4
Y2VwdGlvbigmc3RhdGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwot
Ci0gICAgQ3J5cHRvS2V5Rm9ybWF0IGtleUZvcm1hdDsKLSAgICBpZiAoIWNyeXB0b0tleUZvcm1h
dEZyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS5hcmd1bWVudCgwKSwga2V5Rm9ybWF0KSkgewotICAg
ICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKLSAgICB9Ci0KLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tl
eTo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKLSAgICBpZiAoIWtleSkK
LSAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSk7Ci0KLSAgICBSZWZQdHI8Q3J5
cHRvS2V5PiB3cmFwcGluZ0tleSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQoc3RhdGUudW5jaGVj
a2VkQXJndW1lbnQoMikpOwotICAgIGlmICgha2V5KQotICAgICAgICByZXR1cm4gdGhyb3dUeXBl
RXJyb3IoJnN0YXRlKTsKLQotICAgIGlmICghd3JhcHBpbmdLZXktPmFsbG93cyhDcnlwdG9LZXlV
c2FnZVdyYXBLZXkpKSB7Ci0gICAgICAgIHdyYXBwZWQoKS5kb2N1bWVudCgpLT5hZGRDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgQVNDSUlMaXRl
cmFsKCJLZXkgdXNhZ2VzIGRvIG5vdCBpbmNsdWRlICd3cmFwS2V5JyIpKTsKLSAgICAgICAgc2V0
RE9NRXhjZXB0aW9uKCZzdGF0ZSwgTk9UX1NVUFBPUlRFRF9FUlIpOwotICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBhdXRvIGFsZ29yaXRobSA9IGNyZWF0ZUFsZ29y
aXRobUZyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgzKSk7Ci0gICAg
aWYgKCFhbGdvcml0aG0pIHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsK
LSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgYXV0byBwYXJhbWV0
ZXJzID0gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRW5j
cnlwdCgmc3RhdGUsIGFsZ29yaXRobS0+aWRlbnRpZmllcigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1
bWVudCgzKSk7Ci0gICAgaWYgKCFwYXJhbWV0ZXJzKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5o
YWRFeGNlcHRpb24oKSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQot
ICAgIEpTUHJvbWlzZURlZmVycmVkKiBwcm9taXNlRGVmZXJyZWQgPSBKU1Byb21pc2VEZWZlcnJl
ZDo6Y3JlYXRlKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCkpOwotICAgIERlZmVycmVkV3JhcHBlciB3
cmFwcGVyKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHByb21pc2VEZWZlcnJlZCk7Ci0KLSAgICBh
dXRvIGV4cG9ydFN1Y2Nlc3NDYWxsYmFjayA9IFtrZXlGb3JtYXQsIGFsZ29yaXRobSwgcGFyYW1l
dGVycywgd3JhcHBpbmdLZXksIHdyYXBwZXJdKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZXhwb3J0
ZWRLZXlEYXRhKSBtdXRhYmxlIHsKLSAgICAgICAgYXV0byBlbmNyeXB0U3VjY2Vzc0NhbGxiYWNr
ID0gW3dyYXBwZXJdKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZW5jcnlwdGVkRGF0YSkgbXV0YWJs
ZSB7Ci0gICAgICAgICAgICBmdWxmaWxsUHJvbWlzZVdpdGhBcnJheUJ1ZmZlcih3cmFwcGVyLCBl
bmNyeXB0ZWREYXRhLmRhdGEoKSwgZW5jcnlwdGVkRGF0YS5zaXplKCkpOwotICAgICAgICB9Owot
ICAgICAgICBhdXRvIGVuY3J5cHRGYWlsdXJlQ2FsbGJhY2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxl
IHsKLSAgICAgICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOwotICAgICAgICB9OwotICAg
ICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAgICAgYWxnb3JpdGhtLT5lbmNyeXB0Rm9y
V3JhcEtleSgqcGFyYW1ldGVycywgKndyYXBwaW5nS2V5LCBzdGQ6Om1ha2VfcGFpcihleHBvcnRl
ZEtleURhdGEuZGF0YSgpLCBleHBvcnRlZEtleURhdGEuc2l6ZSgpKSwgV1RGTW92ZShlbmNyeXB0
U3VjY2Vzc0NhbGxiYWNrKSwgV1RGTW92ZShlbmNyeXB0RmFpbHVyZUNhbGxiYWNrKSwgZWMpOwot
ICAgICAgICBpZiAoZWMpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBSZXBvcnQgZmFpbHVyZSBk
ZXRhaWxzIHRvIGNvbnNvbGUsIGFuZCBwb3NzaWJseSB0byBjYWxsaW5nIHNjcmlwdCBvbmNlIHRo
ZXJlIGlzIGEgc3RhbmRhcmRpemVkIHdheSB0byBwYXNzIGVycm9ycyB0byBXZWJDcnlwdG8gcHJv
bWlzZSByZWplY3QgZnVuY3Rpb25zLgotICAgICAgICAgICAgd3JhcHBlci5yZWplY3QobnVsbHB0
cik7Ci0gICAgICAgIH0KLSAgICB9OwotCi0gICAgYXV0byBleHBvcnRGYWlsdXJlQ2FsbGJhY2sg
PSBbd3JhcHBlcl0oKSBtdXRhYmxlIHsKLSAgICAgICAgd3JhcHBlci5yZWplY3QobnVsbHB0cik7
Ci0gICAgfTsKLQotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIFdlYkNvcmU6OmV4cG9y
dEtleShzdGF0ZSwga2V5Rm9ybWF0LCAqa2V5LCBXVEZNb3ZlKGV4cG9ydFN1Y2Nlc3NDYWxsYmFj
ayksIFdURk1vdmUoZXhwb3J0RmFpbHVyZUNhbGxiYWNrKSk7Ci0gICAgaWYgKGVjKSB7Ci0gICAg
ICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIGVjKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHByb21pc2VEZWZlcnJlZC0+cHJvbWlzZSgpOwot
fQotCi1KU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjp1bndyYXBLZXkoRXhlY1N0YXRlJiBzdGF0ZSkK
LXsKLSAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgNSkKLSAgICAgICAgcmV0dXJuIHN0
YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNF
cnJvcigmc3RhdGUpKTsKLQotICAgIENyeXB0b0tleUZvcm1hdCBrZXlGb3JtYXQ7Ci0gICAgaWYg
KCFjcnlwdG9LZXlGb3JtYXRGcm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUuYXJndW1lbnQoMCksIGtl
eUZvcm1hdCkpIHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgQ3J5cHRvT3BlcmF0aW9uRGF0
YSB3cmFwcGVkS2V5RGF0YTsKLSAgICBpZiAoIWNyeXB0b09wZXJhdGlvbkRhdGFGcm9tSlNWYWx1
ZSgmc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLCB3cmFwcGVkS2V5RGF0YSkpIHsK
LSAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgUmVmUHRyPENyeXB0b0tleT4gdW53cmFwcGluZ0tl
eSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikpOwot
ICAgIGlmICghdW53cmFwcGluZ0tleSkKLSAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZz
dGF0ZSk7Ci0KLSAgICBpZiAoIXVud3JhcHBpbmdLZXktPmFsbG93cyhDcnlwdG9LZXlVc2FnZVVu
d3JhcEtleSkpIHsKLSAgICAgICAgd3JhcHBlZCgpLmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNz
YWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwo
IktleSB1c2FnZXMgZG8gbm90IGluY2x1ZGUgJ3Vud3JhcEtleSciKSk7Ci0gICAgICAgIHNldERP
TUV4Y2VwdGlvbigmc3RhdGUsIE5PVF9TVVBQT1JURURfRVJSKTsKLSAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgYXV0byB1bndyYXBBbGdvcml0aG0gPSBjcmVhdGVB
bGdvcml0aG1Gcm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMykpOwot
ICAgIGlmICghdW53cmFwQWxnb3JpdGhtKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNl
cHRpb24oKSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLSAgICBhdXRv
IHVud3JhcEFsZ29yaXRobVBhcmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6
OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZWNyeXB0KCZzdGF0ZSwgdW53cmFwQWxnb3JpdGhtLT5pZGVu
dGlmaWVyKCksIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDMpKTsKLSAgICBpZiAoIXVud3JhcEFs
Z29yaXRobVBhcmFtZXRlcnMpIHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigp
KTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgUmVmUHRyPENy
eXB0b0FsZ29yaXRobT4gdW53cmFwcGVkS2V5QWxnb3JpdGhtOwotICAgIFJlZlB0cjxDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzPiB1bndyYXBwZWRLZXlBbGdvcml0aG1QYXJhbWV0ZXJzOwotICAg
IGlmICghc3RhdGUudW5jaGVja2VkQXJndW1lbnQoNCkuaXNOdWxsKCkpIHsKLSAgICAgICAgdW53
cmFwcGVkS2V5QWxnb3JpdGhtID0gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHN0
YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDQpKTsKLSAgICAgICAgaWYgKCF1bndyYXBwZWRLZXlBbGdv
cml0aG0pIHsKLSAgICAgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAg
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICAgICAgfQotICAgICAgICB1bndyYXBw
ZWRLZXlBbGdvcml0aG1QYXJhbWV0ZXJzID0gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5Ojpj
cmVhdGVQYXJhbWV0ZXJzRm9ySW1wb3J0S2V5KCZzdGF0ZSwgdW53cmFwcGVkS2V5QWxnb3JpdGht
LT5pZGVudGlmaWVyKCksIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDQpKTsKLSAgICAgICAgaWYg
KCF1bndyYXBwZWRLZXlBbGdvcml0aG1QYXJhbWV0ZXJzKSB7Ci0gICAgICAgICAgICBBU1NFUlQo
c3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBib29sIGV4dHJhY3RhYmxlID0gZmFsc2U7Ci0gICAg
aWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA+PSA2KSB7Ci0gICAgICAgIGV4dHJhY3RhYmxlID0g
c3RhdGUudW5jaGVja2VkQXJndW1lbnQoNSkudG9Cb29sZWFuKCZzdGF0ZSk7Ci0gICAgICAgIGlm
IChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwotICAgIH0KLQotICAgIENyeXB0b0tleVVzYWdlIGtleVVzYWdlcyA9IDA7Ci0gICAgaWYgKHN0
YXRlLmFyZ3VtZW50Q291bnQoKSA+PSA3KSB7Ci0gICAgICAgIGlmICghY3J5cHRvS2V5VXNhZ2Vz
RnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLmFyZ3VtZW50KDYpLCBrZXlVc2FnZXMpKSB7Ci0gICAg
ICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBKU1Byb21pc2VEZWZlcnJl
ZCogcHJvbWlzZURlZmVycmVkID0gSlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSgmc3RhdGUsIGds
b2JhbE9iamVjdCgpKTsKLSAgICBEZWZlcnJlZFdyYXBwZXIgd3JhcHBlcigmc3RhdGUsIGdsb2Jh
bE9iamVjdCgpLCBwcm9taXNlRGVmZXJyZWQpOwotICAgIFN0cm9uZzxKU0RPTUdsb2JhbE9iamVj
dD4gZG9tR2xvYmFsT2JqZWN0KHN0YXRlLnZtKCksIGdsb2JhbE9iamVjdCgpKTsKLQotICAgIGF1
dG8gZGVjcnlwdFN1Y2Nlc3NDYWxsYmFjayA9IFtkb21HbG9iYWxPYmplY3QsIGtleUZvcm1hdCwg
dW53cmFwcGVkS2V5QWxnb3JpdGhtLCB1bndyYXBwZWRLZXlBbGdvcml0aG1QYXJhbWV0ZXJzLCBl
eHRyYWN0YWJsZSwga2V5VXNhZ2VzLCB3cmFwcGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4mIHJl
c3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIGF1dG8gaW1wb3J0U3VjY2Vzc0NhbGxiYWNrID0gW3dy
YXBwZXJdKENyeXB0b0tleSYga2V5KSBtdXRhYmxlIHsKLSAgICAgICAgICAgIHdyYXBwZXIucmVz
b2x2ZShrZXkpOwotICAgICAgICB9OwotICAgICAgICBhdXRvIGltcG9ydEZhaWx1cmVDYWxsYmFj
ayA9IFt3cmFwcGVyXSgpIG11dGFibGUgewotICAgICAgICAgICAgd3JhcHBlci5yZWplY3QobnVs
bHB0cik7Ci0gICAgICAgIH07Ci0gICAgICAgIEV4ZWNTdGF0ZSYgc3RhdGUgPSAqZG9tR2xvYmFs
T2JqZWN0LT5nbG9iYWxFeGVjKCk7Ci0gICAgICAgIFdlYkNvcmU6OmltcG9ydEtleShzdGF0ZSwg
a2V5Rm9ybWF0LCBzdGQ6Om1ha2VfcGFpcihyZXN1bHQuZGF0YSgpLCByZXN1bHQuc2l6ZSgpKSwg
dW53cmFwcGVkS2V5QWxnb3JpdGhtLCB1bndyYXBwZWRLZXlBbGdvcml0aG1QYXJhbWV0ZXJzLCBl
eHRyYWN0YWJsZSwga2V5VXNhZ2VzLCBXVEZNb3ZlKGltcG9ydFN1Y2Nlc3NDYWxsYmFjayksIFdU
Rk1vdmUoaW1wb3J0RmFpbHVyZUNhbGxiYWNrKSk7Ci0gICAgICAgIGlmIChzdGF0ZS5oYWRFeGNl
cHRpb24oKSkgewotICAgICAgICAgICAgLy8gRklYTUU6IFJlcG9ydCBleGNlcHRpb24gZGV0YWls
cyB0byBjb25zb2xlLCBhbmQgcG9zc2libHkgdG8gY2FsbGluZyBzY3JpcHQgb25jZSB0aGVyZSBp
cyBhIHN0YW5kYXJkaXplZCB3YXkgdG8gcGFzcyBlcnJvcnMgdG8gV2ViQ3J5cHRvIHByb21pc2Ug
cmVqZWN0IGZ1bmN0aW9ucy4KLSAgICAgICAgICAgIHN0YXRlLmNsZWFyRXhjZXB0aW9uKCk7Ci0g
ICAgICAgICAgICB3cmFwcGVyLnJlamVjdChudWxscHRyKTsKLSAgICAgICAgfQotICAgIH07Ci0K
LSAgICBhdXRvIGRlY3J5cHRGYWlsdXJlQ2FsbGJhY2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxlIHsK
LSAgICAgICAgd3JhcHBlci5yZWplY3QobnVsbHB0cik7Ci0gICAgfTsKLQotICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwotICAgIHVud3JhcEFsZ29yaXRobS0+ZGVjcnlwdEZvclVud3JhcEtleSgq
dW53cmFwQWxnb3JpdGhtUGFyYW1ldGVycywgKnVud3JhcHBpbmdLZXksIHdyYXBwZWRLZXlEYXRh
LCBXVEZNb3ZlKGRlY3J5cHRTdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGRlY3J5cHRGYWlsdXJl
Q2FsbGJhY2spLCBlYyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIHNldERPTUV4Y2VwdGlvbigm
c3RhdGUsIGVjKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAg
cmV0dXJuIHByb21pc2VEZWZlcnJlZC0+cHJvbWlzZSgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNXZWJLaXRTdWJ0bGVDcnlwdG9DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXZWJLaXRTdWJ0bGVDcnlwdG9DdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlOGJiYzBiYTVi
MzU0ZGVlNmQ5NmY4ZGZhN2ZhYzAwYTUwZDQxMDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdFN1YnRsZUNyeXB0b0N1c3RvbS5jcHAKQEAgLTAs
MCArMSw4MDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
SlNXZWJLaXRTdWJ0bGVDcnlwdG8uaCIKKworI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQorCisj
aW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycy5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmgiCisjaW5jbHVk
ZSAiQ3J5cHRvS2V5RGF0YS5oIgorI2luY2x1ZGUgIkNyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcu
aCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNp
bmNsdWRlICJKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuaCIKKyNpbmNsdWRlICJKU0NyeXB0
b0tleS5oIgorI2luY2x1ZGUgIkpTQ3J5cHRvS2V5UGFpci5oIgorI2luY2x1ZGUgIkpTQ3J5cHRv
S2V5U2VyaWFsaXphdGlvbkpXSy5oIgorI2luY2x1ZGUgIkpTQ3J5cHRvT3BlcmF0aW9uRGF0YS5o
IgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZS5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4K
KwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNs
YXNzIENyeXB0b0tleUZvcm1hdCB7CisgICAgLy8gQW4gdW5mb3JtYXR0ZWQgc2VxdWVuY2Ugb2Yg
Ynl0ZXMuIEludGVuZGVkIGZvciBzZWNyZXQga2V5cy4KKyAgICBSYXcsCisKKyAgICAvLyBUaGUg
REVSIGVuY29kaW5nIG9mIHRoZSBQcml2YXRlS2V5SW5mbyBzdHJ1Y3R1cmUgZnJvbSBSRkMgNTIw
OC4KKyAgICBQS0NTOCwKKworICAgIC8vIFRoZSBERVIgZW5jb2Rpbmcgb2YgdGhlIFN1YmplY3RQ
dWJsaWNLZXlJbmZvIHN0cnVjdHVyZSBmcm9tIFJGQyA1MjgwLgorICAgIFNQS0ksCisKKyAgICAv
LyBUaGUga2V5IGlzIHJlcHJlc2VudGVkIGFzIEpTT04gYWNjb3JkaW5nIHRvIHRoZSBKU09OIFdl
YiBLZXkgZm9ybWF0LgorICAgIEpXSworfTsKKworc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0
aG0+IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUg
dmFsdWUpCit7CisgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG1JZGVudGlm
aWVyOworICAgIGlmICghSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpnZXRBbGdvcml0aG1J
ZGVudGlmaWVyKCZzdGF0ZSwgdmFsdWUsIGFsZ29yaXRobUlkZW50aWZpZXIpKSB7CisgICAgICAg
IEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIH0KKworICAgIGF1dG8gcmVzdWx0ID0gQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnk6OnNpbmds
ZXRvbigpLmNyZWF0ZShhbGdvcml0aG1JZGVudGlmaWVyKTsKKyAgICBpZiAoIXJlc3VsdCkKKyAg
ICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgTk9UX1NVUFBPUlRFRF9FUlIpOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBib29sIGNyeXB0b0tleUZvcm1hdEZyb21KU1ZhbHVl
KEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUsIENyeXB0b0tleUZvcm1hdCYgcmVzdWx0
KQoreworICAgIFN0cmluZyBrZXlGb3JtYXRTdHJpbmcgPSB2YWx1ZS50b1N0cmluZygmc3RhdGUp
LT52YWx1ZSgmc3RhdGUpOworICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGlmIChrZXlGb3JtYXRTdHJpbmcgPT0gInJhdyIpCisgICAgICAg
IHJlc3VsdCA9IENyeXB0b0tleUZvcm1hdDo6UmF3OworICAgIGVsc2UgaWYgKGtleUZvcm1hdFN0
cmluZyA9PSAicGtjczgiKQorICAgICAgICByZXN1bHQgPSBDcnlwdG9LZXlGb3JtYXQ6OlBLQ1M4
OworICAgIGVsc2UgaWYgKGtleUZvcm1hdFN0cmluZyA9PSAic3BraSIpCisgICAgICAgIHJlc3Vs
dCA9IENyeXB0b0tleUZvcm1hdDo6U1BLSTsKKyAgICBlbHNlIGlmIChrZXlGb3JtYXRTdHJpbmcg
PT0gImp3ayIpCisgICAgICAgIHJlc3VsdCA9IENyeXB0b0tleUZvcm1hdDo6SldLOworICAgIGVs
c2UgeworICAgICAgICB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIEFTQ0lJTGl0ZXJhbCgiVW5rbm93
biBrZXkgZm9ybWF0IikpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVy
biB0cnVlOworfQorCitzdGF0aWMgYm9vbCBjcnlwdG9LZXlVc2FnZXNGcm9tSlNWYWx1ZShFeGVj
U3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlLCBDcnlwdG9LZXlVc2FnZSYgcmVzdWx0KQorewor
ICAgIGlmICghaXNKU0FycmF5KHZhbHVlKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcigmc3Rh
dGUpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmVzdWx0ID0gMDsKKwor
ICAgIEpTQXJyYXkqIGFycmF5ID0gYXNBcnJheSh2YWx1ZSk7CisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBhcnJheS0+bGVuZ3RoKCk7ICsraSkgeworICAgICAgICBKU1ZhbHVlIGVsZW1lbnQg
PSBhcnJheS0+Z2V0SW5kZXgoJnN0YXRlLCBpKTsKKyAgICAgICAgU3RyaW5nIHVzYWdlU3RyaW5n
ID0gZWxlbWVudC50b1N0cmluZygmc3RhdGUpLT52YWx1ZSgmc3RhdGUpOworICAgICAgICBpZiAo
c3RhdGUuaGFkRXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IGlmICh1c2FnZVN0cmluZyA9PSAiZW5jcnlwdCIpCisgICAgICAgICAgICByZXN1bHQgfD0gQ3J5
cHRvS2V5VXNhZ2VFbmNyeXB0OworICAgICAgICBlbHNlIGlmICh1c2FnZVN0cmluZyA9PSAiZGVj
cnlwdCIpCisgICAgICAgICAgICByZXN1bHQgfD0gQ3J5cHRvS2V5VXNhZ2VEZWNyeXB0OworICAg
ICAgICBlbHNlIGlmICh1c2FnZVN0cmluZyA9PSAic2lnbiIpCisgICAgICAgICAgICByZXN1bHQg
fD0gQ3J5cHRvS2V5VXNhZ2VTaWduOworICAgICAgICBlbHNlIGlmICh1c2FnZVN0cmluZyA9PSAi
dmVyaWZ5IikKKyAgICAgICAgICAgIHJlc3VsdCB8PSBDcnlwdG9LZXlVc2FnZVZlcmlmeTsKKyAg
ICAgICAgZWxzZSBpZiAodXNhZ2VTdHJpbmcgPT0gImRlcml2ZUtleSIpCisgICAgICAgICAgICBy
ZXN1bHQgfD0gQ3J5cHRvS2V5VXNhZ2VEZXJpdmVLZXk7CisgICAgICAgIGVsc2UgaWYgKHVzYWdl
U3RyaW5nID09ICJkZXJpdmVCaXRzIikKKyAgICAgICAgICAgIHJlc3VsdCB8PSBDcnlwdG9LZXlV
c2FnZURlcml2ZUJpdHM7CisgICAgICAgIGVsc2UgaWYgKHVzYWdlU3RyaW5nID09ICJ3cmFwS2V5
IikKKyAgICAgICAgICAgIHJlc3VsdCB8PSBDcnlwdG9LZXlVc2FnZVdyYXBLZXk7CisgICAgICAg
IGVsc2UgaWYgKHVzYWdlU3RyaW5nID09ICJ1bndyYXBLZXkiKQorICAgICAgICAgICAgcmVzdWx0
IHw9IENyeXB0b0tleVVzYWdlVW53cmFwS2V5OworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30K
KworSlNWYWx1ZSBKU1dlYktpdFN1YnRsZUNyeXB0bzo6ZW5jcnlwdChFeGVjU3RhdGUmIHN0YXRl
KQoreworICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPCAzKQorICAgICAgICByZXR1cm4g
c3RhdGUudm0oKS50aHJvd0V4Y2VwdGlvbigmc3RhdGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKCZzdGF0ZSkpOworCisgICAgYXV0byBhbGdvcml0aG0gPSBjcmVhdGVBbGdvcml0aG1G
cm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIGlmICgh
YWxnb3JpdGhtKSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIGF1dG8gcGFyYW1ldGVycyA9
IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckVuY3J5cHQo
JnN0YXRlLCBhbGdvcml0aG0tPmlkZW50aWZpZXIoKSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MCkpOworICAgIGlmICghcGFyYW1ldGVycykgeworICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhj
ZXB0aW9uKCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBS
ZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9XcmFwcGVkKHN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDEpKTsKKyAgICBpZiAoIWtleSkKKyAgICAgICAgcmV0dXJuIHRocm93VHlw
ZUVycm9yKCZzdGF0ZSk7CisKKyAgICBpZiAoIWtleS0+YWxsb3dzKENyeXB0b0tleVVzYWdlRW5j
cnlwdCkpIHsKKyAgICAgICAgd3JhcHBlZCgpLmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwoIktl
eSB1c2FnZXMgZG8gbm90IGluY2x1ZGUgJ2VuY3J5cHQnIikpOworICAgICAgICBzZXRET01FeGNl
cHRpb24oJnN0YXRlLCBOT1RfU1VQUE9SVEVEX0VSUik7CisgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOworICAgIH0KKworICAgIENyeXB0b09wZXJhdGlvbkRhdGEgZGF0YTsKKyAgICBpZiAo
IWNyeXB0b09wZXJhdGlvbkRhdGFGcm9tSlNWYWx1ZSgmc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFy
Z3VtZW50KDIpLCBkYXRhKSkgeworICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkp
OworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICAKKyAgICBKU1By
b21pc2VEZWZlcnJlZCogcHJvbWlzZURlZmVycmVkID0gSlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0
ZSgmc3RhdGUsIGdsb2JhbE9iamVjdCgpKTsKKyAgICBEZWZlcnJlZFdyYXBwZXIgd3JhcHBlcigm
c3RhdGUsIGdsb2JhbE9iamVjdCgpLCBwcm9taXNlRGVmZXJyZWQpOworICAgIGF1dG8gc3VjY2Vz
c0NhbGxiYWNrID0gW3dyYXBwZXJdKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgcmVzdWx0KSBtdXRh
YmxlIHsKKyAgICAgICAgZnVsZmlsbFByb21pc2VXaXRoQXJyYXlCdWZmZXIod3JhcHBlciwgcmVz
dWx0LmRhdGEoKSwgcmVzdWx0LnNpemUoKSk7CisgICAgfTsKKyAgICBhdXRvIGZhaWx1cmVDYWxs
YmFjayA9IFt3cmFwcGVyXSgpIG11dGFibGUgeworICAgICAgICB3cmFwcGVyLnJlamVjdChudWxs
cHRyKTsKKyAgICB9OworCisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgYWxnb3JpdGht
LT5lbmNyeXB0KCpwYXJhbWV0ZXJzLCAqa2V5LCBkYXRhLCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFj
ayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOworICAgIGlmIChlYykgeworICAgICAg
ICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOworICAgIH0KKworICAgIHJldHVybiBwcm9taXNlRGVmZXJyZWQtPnByb21pc2UoKTsKK30K
KworSlNWYWx1ZSBKU1dlYktpdFN1YnRsZUNyeXB0bzo6ZGVjcnlwdChFeGVjU3RhdGUmIHN0YXRl
KQoreworICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPCAzKQorICAgICAgICByZXR1cm4g
c3RhdGUudm0oKS50aHJvd0V4Y2VwdGlvbigmc3RhdGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKCZzdGF0ZSkpOworCisgICAgYXV0byBhbGdvcml0aG0gPSBjcmVhdGVBbGdvcml0aG1G
cm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIGlmICgh
YWxnb3JpdGhtKSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIGF1dG8gcGFyYW1ldGVycyA9
IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRlY3J5cHQo
JnN0YXRlLCBhbGdvcml0aG0tPmlkZW50aWZpZXIoKSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MCkpOworICAgIGlmICghcGFyYW1ldGVycykgeworICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhj
ZXB0aW9uKCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBS
ZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9XcmFwcGVkKHN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDEpKTsKKyAgICBpZiAoIWtleSkKKyAgICAgICAgcmV0dXJuIHRocm93VHlw
ZUVycm9yKCZzdGF0ZSk7CisKKyAgICBpZiAoIWtleS0+YWxsb3dzKENyeXB0b0tleVVzYWdlRGVj
cnlwdCkpIHsKKyAgICAgICAgd3JhcHBlZCgpLmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwoIktl
eSB1c2FnZXMgZG8gbm90IGluY2x1ZGUgJ2RlY3J5cHQnIikpOworICAgICAgICBzZXRET01FeGNl
cHRpb24oJnN0YXRlLCBOT1RfU1VQUE9SVEVEX0VSUik7CisgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOworICAgIH0KKworICAgIENyeXB0b09wZXJhdGlvbkRhdGEgZGF0YTsKKyAgICBpZiAo
IWNyeXB0b09wZXJhdGlvbkRhdGFGcm9tSlNWYWx1ZSgmc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFy
Z3VtZW50KDIpLCBkYXRhKSkgeworICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkp
OworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBKU1Byb21pc2VE
ZWZlcnJlZCogcHJvbWlzZURlZmVycmVkID0gSlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSgmc3Rh
dGUsIGdsb2JhbE9iamVjdCgpKTsKKyAgICBEZWZlcnJlZFdyYXBwZXIgd3JhcHBlcigmc3RhdGUs
IGdsb2JhbE9iamVjdCgpLCBwcm9taXNlRGVmZXJyZWQpOworICAgIGF1dG8gc3VjY2Vzc0NhbGxi
YWNrID0gW3dyYXBwZXJdKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgcmVzdWx0KSBtdXRhYmxlIHsK
KyAgICAgICAgZnVsZmlsbFByb21pc2VXaXRoQXJyYXlCdWZmZXIod3JhcHBlciwgcmVzdWx0LmRh
dGEoKSwgcmVzdWx0LnNpemUoKSk7CisgICAgfTsKKyAgICBhdXRvIGZhaWx1cmVDYWxsYmFjayA9
IFt3cmFwcGVyXSgpIG11dGFibGUgeworICAgICAgICB3cmFwcGVyLnJlamVjdChudWxscHRyKTsK
KyAgICB9OworCisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgYWxnb3JpdGhtLT5kZWNy
eXB0KCpwYXJhbWV0ZXJzLCAqa2V5LCBkYXRhLCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdU
Rk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOworICAgIGlmIChlYykgeworICAgICAgICBzZXRE
T01FeGNlcHRpb24oJnN0YXRlLCBlYyk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwor
ICAgIH0KKworICAgIHJldHVybiBwcm9taXNlRGVmZXJyZWQtPnByb21pc2UoKTsKK30KKworSlNW
YWx1ZSBKU1dlYktpdFN1YnRsZUNyeXB0bzo6c2lnbihFeGVjU3RhdGUmIHN0YXRlKQoreworICAg
IGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPCAzKQorICAgICAgICByZXR1cm4gc3RhdGUudm0o
KS50aHJvd0V4Y2VwdGlvbigmc3RhdGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZz
dGF0ZSkpOworCisgICAgYXV0byBhbGdvcml0aG0gPSBjcmVhdGVBbGdvcml0aG1Gcm9tSlNWYWx1
ZShzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIGlmICghYWxnb3JpdGht
KSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIGF1dG8gcGFyYW1ldGVycyA9IEpTQ3J5cHRv
QWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvclNpZ24oJnN0YXRlLCBhbGdv
cml0aG0tPmlkZW50aWZpZXIoKSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIGlm
ICghcGFyYW1ldGVycykgeworICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwor
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBSZWZQdHI8Q3J5cHRv
S2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50
KDEpKTsKKyAgICBpZiAoIWtleSkKKyAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0
ZSk7CisKKyAgICBpZiAoIWtleS0+YWxsb3dzKENyeXB0b0tleVVzYWdlU2lnbikpIHsKKyAgICAg
ICAgd3JhcHBlZCgpLmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6
OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwoIktleSB1c2FnZXMgZG8gbm90
IGluY2x1ZGUgJ3NpZ24nIikpOworICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBOT1Rf
U1VQUE9SVEVEX0VSUik7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKwor
ICAgIENyeXB0b09wZXJhdGlvbkRhdGEgZGF0YTsKKyAgICBpZiAoIWNyeXB0b09wZXJhdGlvbkRh
dGFGcm9tSlNWYWx1ZSgmc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpLCBkYXRhKSkg
eworICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOworICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBKU1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZURl
ZmVycmVkID0gSlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSgmc3RhdGUsIGdsb2JhbE9iamVjdCgp
KTsKKyAgICBEZWZlcnJlZFdyYXBwZXIgd3JhcHBlcigmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCBw
cm9taXNlRGVmZXJyZWQpOworICAgIGF1dG8gc3VjY2Vzc0NhbGxiYWNrID0gW3dyYXBwZXJdKGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgZnVsZmlsbFBy
b21pc2VXaXRoQXJyYXlCdWZmZXIod3JhcHBlciwgcmVzdWx0LmRhdGEoKSwgcmVzdWx0LnNpemUo
KSk7CisgICAgfTsKKyAgICBhdXRvIGZhaWx1cmVDYWxsYmFjayA9IFt3cmFwcGVyXSgpIG11dGFi
bGUgeworICAgICAgICB3cmFwcGVyLnJlamVjdChudWxscHRyKTsKKyAgICB9OworCisgICAgRXhj
ZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgYWxnb3JpdGhtLT5zaWduKCpwYXJhbWV0ZXJzLCAqa2V5
LCBkYXRhLCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNr
KSwgZWMpOworICAgIGlmIChlYykgeworICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBl
Yyk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIHJldHVybiBw
cm9taXNlRGVmZXJyZWQtPnByb21pc2UoKTsKK30KKworSlNWYWx1ZSBKU1dlYktpdFN1YnRsZUNy
eXB0bzo6dmVyaWZ5KEV4ZWNTdGF0ZSYgc3RhdGUpCit7CisgICAgaWYgKHN0YXRlLmFyZ3VtZW50
Q291bnQoKSA8IDQpCisgICAgICAgIHJldHVybiBzdGF0ZS52bSgpLnRocm93RXhjZXB0aW9uKCZz
dGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7CisKKyAgICBhdXRv
IGFsZ29yaXRobSA9IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS51bmNo
ZWNrZWRBcmd1bWVudCgwKSk7CisgICAgaWYgKCFhbGdvcml0aG0pIHsKKyAgICAgICAgQVNTRVJU
KHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cisg
ICAgfQorCisgICAgYXV0byBwYXJhbWV0ZXJzID0gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5
OjpjcmVhdGVQYXJhbWV0ZXJzRm9yVmVyaWZ5KCZzdGF0ZSwgYWxnb3JpdGhtLT5pZGVudGlmaWVy
KCksIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBpZiAoIXBhcmFtZXRlcnMpIHsK
KyAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlw
dG9LZXk6OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgaWYgKCFr
ZXkpCisgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUpOworCisgICAgaWYgKCFr
ZXktPmFsbG93cyhDcnlwdG9LZXlVc2FnZVZlcmlmeSkpIHsKKyAgICAgICAgd3JhcHBlZCgpLmRv
Y3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2
ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwoIktleSB1c2FnZXMgZG8gbm90IGluY2x1ZGUgJ3Zlcmlm
eSciKSk7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIE5PVF9TVVBQT1JURURfRVJS
KTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgQ3J5cHRvT3Bl
cmF0aW9uRGF0YSBzaWduYXR1cmU7CisgICAgaWYgKCFjcnlwdG9PcGVyYXRpb25EYXRhRnJvbUpT
VmFsdWUoJnN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSwgc2lnbmF0dXJlKSkgewor
ICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOworICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBDcnlwdG9PcGVyYXRpb25EYXRhIGRhdGE7CisgICAg
aWYgKCFjcnlwdG9PcGVyYXRpb25EYXRhRnJvbUpTVmFsdWUoJnN0YXRlLCBzdGF0ZS51bmNoZWNr
ZWRBcmd1bWVudCgzKSwgZGF0YSkpIHsKKyAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlv
bigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgSlNQcm9t
aXNlRGVmZXJyZWQqIHByb21pc2VEZWZlcnJlZCA9IEpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUo
JnN0YXRlLCBnbG9iYWxPYmplY3QoKSk7CisgICAgRGVmZXJyZWRXcmFwcGVyIHdyYXBwZXIoJnN0
YXRlLCBnbG9iYWxPYmplY3QoKSwgcHJvbWlzZURlZmVycmVkKTsKKyAgICBhdXRvIHN1Y2Nlc3ND
YWxsYmFjayA9IFt3cmFwcGVyXShib29sIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIHdyYXBw
ZXIucmVzb2x2ZShyZXN1bHQpOworICAgIH07CisgICAgYXV0byBmYWlsdXJlQ2FsbGJhY2sgPSBb
d3JhcHBlcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgd3JhcHBlci5yZWplY3QobnVsbHB0cik7Cisg
ICAgfTsKKworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIGFsZ29yaXRobS0+dmVyaWZ5
KCpwYXJhbWV0ZXJzLCAqa2V5LCBzaWduYXR1cmUsIGRhdGEsIFdURk1vdmUoc3VjY2Vzc0NhbGxi
YWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CisgICAgaWYgKGVjKSB7CisgICAg
ICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIGVjKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CisgICAgfQorCisgICAgcmV0dXJuIHByb21pc2VEZWZlcnJlZC0+cHJvbWlzZSgpOwor
fQorCitKU1ZhbHVlIEpTV2ViS2l0U3VidGxlQ3J5cHRvOjpkaWdlc3QoRXhlY1N0YXRlJiBzdGF0
ZSkKK3sKKyAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgMikKKyAgICAgICAgcmV0dXJu
IHN0YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVu
dHNFcnJvcigmc3RhdGUpKTsKKworICAgIGF1dG8gYWxnb3JpdGhtID0gY3JlYXRlQWxnb3JpdGht
RnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBpZiAo
IWFsZ29yaXRobSkgeworICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOworICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBhdXRvIHBhcmFtZXRlcnMg
PSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEaWdlc3Qo
JnN0YXRlLCBhbGdvcml0aG0tPmlkZW50aWZpZXIoKSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MCkpOworICAgIGlmICghcGFyYW1ldGVycykgeworICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhj
ZXB0aW9uKCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBD
cnlwdG9PcGVyYXRpb25EYXRhIGRhdGE7CisgICAgaWYgKCFjcnlwdG9PcGVyYXRpb25EYXRhRnJv
bUpTVmFsdWUoJnN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSwgZGF0YSkpIHsKKyAg
ICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CisgICAgfQorCisgICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VEZWZlcnJl
ZCA9IEpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSk7Cisg
ICAgRGVmZXJyZWRXcmFwcGVyIHdyYXBwZXIoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgcHJvbWlz
ZURlZmVycmVkKTsKKyAgICBhdXRvIHN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShjb25zdCBW
ZWN0b3I8dWludDhfdD4mIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGZ1bGZpbGxQcm9taXNl
V2l0aEFycmF5QnVmZmVyKHdyYXBwZXIsIHJlc3VsdC5kYXRhKCksIHJlc3VsdC5zaXplKCkpOwor
ICAgIH07CisgICAgYXV0byBmYWlsdXJlQ2FsbGJhY2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxlIHsK
KyAgICAgICAgd3JhcHBlci5yZWplY3QobnVsbHB0cik7CisgICAgfTsKKworICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOworICAgIGFsZ29yaXRobS0+ZGlnZXN0KCpwYXJhbWV0ZXJzLCBkYXRhLCBX
VEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOwor
ICAgIGlmIChlYykgeworICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7CisgICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIHJldHVybiBwcm9taXNlRGVm
ZXJyZWQtPnByb21pc2UoKTsKK30KKworSlNWYWx1ZSBKU1dlYktpdFN1YnRsZUNyeXB0bzo6Z2Vu
ZXJhdGVLZXkoRXhlY1N0YXRlJiBzdGF0ZSkKK3sKKyAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3Vu
dCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRl
LCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKKworICAgIGF1dG8gYWxn
b3JpdGhtID0gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDApKTsKKyAgICBpZiAoIWFsZ29yaXRobSkgeworICAgICAgICBBU1NFUlQoc3Rh
dGUuaGFkRXhjZXB0aW9uKCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9
CisKKyAgICBhdXRvIHBhcmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNy
ZWF0ZVBhcmFtZXRlcnNGb3JHZW5lcmF0ZUtleSgmc3RhdGUsIGFsZ29yaXRobS0+aWRlbnRpZmll
cigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgaWYgKCFwYXJhbWV0ZXJzKSB7
CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIGJvb2wgZXh0cmFjdGFibGUgPSBmYWxzZTsKKyAg
ICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpID49IDIpIHsKKyAgICAgICAgZXh0cmFjdGFibGUg
PSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b0Jvb2xlYW4oJnN0YXRlKTsKKyAgICAgICAg
aWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7CisgICAgfQorCisgICAgQ3J5cHRvS2V5VXNhZ2Uga2V5VXNhZ2VzID0gMDsKKyAgICBpZiAo
c3RhdGUuYXJndW1lbnRDb3VudCgpID49IDMpIHsKKyAgICAgICAgaWYgKCFjcnlwdG9LZXlVc2Fn
ZXNGcm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUuYXJndW1lbnQoMiksIGtleVVzYWdlcykpIHsKKyAg
ICAgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIEpTUHJvbWlzZURlZmVy
cmVkKiBwcm9taXNlRGVmZXJyZWQgPSBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKCZzdGF0ZSwg
Z2xvYmFsT2JqZWN0KCkpOworICAgIERlZmVycmVkV3JhcHBlciB3cmFwcGVyKCZzdGF0ZSwgZ2xv
YmFsT2JqZWN0KCksIHByb21pc2VEZWZlcnJlZCk7CisgICAgYXV0byBzdWNjZXNzQ2FsbGJhY2sg
PSBbd3JhcHBlcl0oQ3J5cHRvS2V5KiBrZXksIENyeXB0b0tleVBhaXIqIGtleVBhaXIpIG11dGFi
bGUgeworICAgICAgICBBU1NFUlQoa2V5IHx8IGtleVBhaXIpOworICAgICAgICBBU1NFUlQoIWtl
eSB8fCAha2V5UGFpcik7CisgICAgICAgIGlmIChrZXkpCisgICAgICAgICAgICB3cmFwcGVyLnJl
c29sdmUoa2V5KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgd3JhcHBlci5yZXNvbHZlKGtl
eVBhaXIpOworICAgIH07CisgICAgYXV0byBmYWlsdXJlQ2FsbGJhY2sgPSBbd3JhcHBlcl0oKSBt
dXRhYmxlIHsKKyAgICAgICAgd3JhcHBlci5yZWplY3QobnVsbHB0cik7CisgICAgfTsKKworICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIGFsZ29yaXRobS0+Z2VuZXJhdGVLZXkoKnBhcmFt
ZXRlcnMsIGV4dHJhY3RhYmxlLCBrZXlVc2FnZXMsIFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwg
V1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CisgICAgaWYgKGVjKSB7CisgICAgICAgIHNl
dERPTUV4Y2VwdGlvbigmc3RhdGUsIGVjKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CisgICAgfQorCisgICAgcmV0dXJuIHByb21pc2VEZWZlcnJlZC0+cHJvbWlzZSgpOworfQorCitz
dGF0aWMgdm9pZCBpbXBvcnRLZXkoRXhlY1N0YXRlJiBzdGF0ZSwgQ3J5cHRvS2V5Rm9ybWF0IGtl
eUZvcm1hdCwgQ3J5cHRvT3BlcmF0aW9uRGF0YSBkYXRhLCBSZWZQdHI8Q3J5cHRvQWxnb3JpdGht
PiBhbGdvcml0aG0sIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBwYXJhbWV0ZXJz
LCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSBrZXlVc2FnZXMsIENyeXB0b0FsZ29y
aXRobTo6S2V5Q2FsbGJhY2sgY2FsbGJhY2ssIENyeXB0b0FsZ29yaXRobTo6Vm9pZENhbGxiYWNr
IGZhaWx1cmVDYWxsYmFjaykKK3sKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvS2V5U2VyaWFs
aXphdGlvbj4ga2V5U2VyaWFsaXphdGlvbjsKKyAgICBzd2l0Y2ggKGtleUZvcm1hdCkgeworICAg
IGNhc2UgQ3J5cHRvS2V5Rm9ybWF0OjpSYXc6CisgICAgICAgIGtleVNlcmlhbGl6YXRpb24gPSBD
cnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3OjpjcmVhdGUoZGF0YSk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQ3J5cHRvS2V5Rm9ybWF0OjpKV0s6IHsKKyAgICAgICAgU3RyaW5nIGp3a1N0cmlu
ZyA9IFN0cmluZzo6ZnJvbVVURjgoZGF0YS5maXJzdCwgZGF0YS5zZWNvbmQpOworICAgICAgICBp
ZiAoandrU3RyaW5nLmlzTnVsbCgpKSB7CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcigmc3Rh
dGUsIEFTQ0lJTGl0ZXJhbCgiSldLIEpTT04gc2VyaWFsaXphdGlvbiBpcyBub3QgdmFsaWQgVVRG
LTgiKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAga2V5U2VyaWFs
aXphdGlvbiA9IHN0ZDo6bWFrZV91bmlxdWU8SlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLPigm
c3RhdGUsIGp3a1N0cmluZyk7CisgICAgICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGRlZmF1bHQ6Cisg
ICAgICAgIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgQVNDSUlMaXRlcmFsKCJVbnN1cHBvcnRlZCBr
ZXkgZm9ybWF0IGZvciBpbXBvcnQiKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBB
U1NFUlQoa2V5U2VyaWFsaXphdGlvbik7CisKKyAgICBPcHRpb25hbDxDcnlwdG9BbGdvcml0aG1Q
YWlyPiByZWNvbmNpbGVkUmVzdWx0ID0ga2V5U2VyaWFsaXphdGlvbi0+cmVjb25jaWxlQWxnb3Jp
dGhtKGFsZ29yaXRobS5nZXQoKSwgcGFyYW1ldGVycy5nZXQoKSk7CisgICAgaWYgKCFyZWNvbmNp
bGVkUmVzdWx0KSB7CisgICAgICAgIGlmICghc3RhdGUuaGFkRXhjZXB0aW9uKCkpCisgICAgICAg
ICAgICB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIEFTQ0lJTGl0ZXJhbCgiQWxnb3JpdGhtIHNwZWNp
ZmllZCBpbiBrZXkgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBvbmUgcGFzc2VkIHRvIGltcG9ydEtl
eSBhcyBhcmd1bWVudCIpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoc3RhdGUu
aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGFsZ29yaXRobSA9IHJlY29u
Y2lsZWRSZXN1bHQtPmFsZ29yaXRobTsKKyAgICBwYXJhbWV0ZXJzID0gcmVjb25jaWxlZFJlc3Vs
dC0+cGFyYW1ldGVyczsKKyAgICBpZiAoIWFsZ29yaXRobSkgeworICAgICAgICB0aHJvd1R5cGVF
cnJvcigmc3RhdGUsIEFTQ0lJTGl0ZXJhbCgiTmVpdGhlciBrZXkgbm9yIGZ1bmN0aW9uIGFyZ3Vt
ZW50IGhhcyBjcnlwdG8gYWxnb3JpdGhtIHNwZWNpZmllZCIpKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICBBU1NFUlQocGFyYW1ldGVycyk7CisKKyAgICBrZXlTZXJpYWxpemF0aW9uLT5y
ZWNvbmNpbGVFeHRyYWN0YWJsZShleHRyYWN0YWJsZSk7CisgICAgaWYgKHN0YXRlLmhhZEV4Y2Vw
dGlvbigpKQorICAgICAgICByZXR1cm47CisKKyAgICBrZXlTZXJpYWxpemF0aW9uLT5yZWNvbmNp
bGVVc2FnZXMoa2V5VXNhZ2VzKTsKKyAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGF1dG8ga2V5RGF0YSA9IGtleVNlcmlhbGl6YXRpb24tPmtleURh
dGEoKTsKKyAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIGFsZ29yaXRobS0+aW1wb3J0S2V5KCpwYXJh
bWV0ZXJzLCAqa2V5RGF0YSwgZXh0cmFjdGFibGUsIGtleVVzYWdlcywgV1RGTW92ZShjYWxsYmFj
ayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgZWMpOworICAgIGlmIChlYykKKyAgICAgICAg
c2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgZWMpOworfQorCitKU1ZhbHVlIEpTV2ViS2l0U3VidGxl
Q3J5cHRvOjppbXBvcnRLZXkoRXhlY1N0YXRlJiBzdGF0ZSkKK3sKKyAgICBpZiAoc3RhdGUuYXJn
dW1lbnRDb3VudCgpIDwgMykKKyAgICAgICAgcmV0dXJuIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRp
b24oJnN0YXRlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKKworICAg
IENyeXB0b0tleUZvcm1hdCBrZXlGb3JtYXQ7CisgICAgaWYgKCFjcnlwdG9LZXlGb3JtYXRGcm9t
SlNWYWx1ZShzdGF0ZSwgc3RhdGUuYXJndW1lbnQoMCksIGtleUZvcm1hdCkpIHsKKyAgICAgICAg
QVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7CisgICAgfQorCisgICAgQ3J5cHRvT3BlcmF0aW9uRGF0YSBkYXRhOworICAgIGlmICghY3J5
cHRvT3BlcmF0aW9uRGF0YUZyb21KU1ZhbHVlKCZzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1l
bnQoMSksIGRhdGEpKSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Cisg
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIFJlZlB0cjxDcnlwdG9B
bGdvcml0aG0+IGFsZ29yaXRobTsKKyAgICBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cz4gcGFyYW1ldGVyczsKKyAgICBpZiAoIXN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpLmlzTnVs
bCgpKSB7CisgICAgICAgIGFsZ29yaXRobSA9IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0
YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSk7CisgICAgICAgIGlmICghYWxnb3JpdGht
KSB7CisgICAgICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOworICAgICAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgICAgIH0KKyAgICAgICAgcGFyYW1ldGVycyA9
IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckltcG9ydEtl
eSgmc3RhdGUsIGFsZ29yaXRobS0+aWRlbnRpZmllcigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVu
dCgyKSk7CisgICAgICAgIGlmICghcGFyYW1ldGVycykgeworICAgICAgICAgICAgQVNTRVJUKHN0
YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwor
ICAgICAgICB9CisgICAgfQorCisgICAgYm9vbCBleHRyYWN0YWJsZSA9IGZhbHNlOworICAgIGlm
IChzdGF0ZS5hcmd1bWVudENvdW50KCkgPj0gNCkgeworICAgICAgICBleHRyYWN0YWJsZSA9IHN0
YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDMpLnRvQm9vbGVhbigmc3RhdGUpOworICAgICAgICBpZiAo
c3RhdGUuaGFkRXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
KyAgICB9CisKKyAgICBDcnlwdG9LZXlVc2FnZSBrZXlVc2FnZXMgPSAwOworICAgIGlmIChzdGF0
ZS5hcmd1bWVudENvdW50KCkgPj0gNSkgeworICAgICAgICBpZiAoIWNyeXB0b0tleVVzYWdlc0Zy
b21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS5hcmd1bWVudCg0KSwga2V5VXNhZ2VzKSkgeworICAgICAg
ICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOworICAgICAgICB9CisgICAgfQorCisgICAgSlNQcm9taXNlRGVmZXJyZWQq
IHByb21pc2VEZWZlcnJlZCA9IEpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoJnN0YXRlLCBnbG9i
YWxPYmplY3QoKSk7CisgICAgRGVmZXJyZWRXcmFwcGVyIHdyYXBwZXIoJnN0YXRlLCBnbG9iYWxP
YmplY3QoKSwgcHJvbWlzZURlZmVycmVkKTsKKyAgICBhdXRvIHN1Y2Nlc3NDYWxsYmFjayA9IFt3
cmFwcGVyXShDcnlwdG9LZXkmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIHdyYXBwZXIucmVz
b2x2ZShyZXN1bHQpOworICAgIH07CisgICAgYXV0byBmYWlsdXJlQ2FsbGJhY2sgPSBbd3JhcHBl
cl0oKSBtdXRhYmxlIHsKKyAgICAgICAgd3JhcHBlci5yZWplY3QobnVsbHB0cik7CisgICAgfTsK
KworICAgIFdlYkNvcmU6OmltcG9ydEtleShzdGF0ZSwga2V5Rm9ybWF0LCBkYXRhLCBXVEZNb3Zl
KGFsZ29yaXRobSksIFdURk1vdmUocGFyYW1ldGVycyksIGV4dHJhY3RhYmxlLCBrZXlVc2FnZXMs
IFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spKTsKKyAg
ICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OworCisgICAgcmV0dXJuIHByb21pc2VEZWZlcnJlZC0+cHJvbWlzZSgpOworfQorCitzdGF0aWMg
dm9pZCBleHBvcnRLZXkoRXhlY1N0YXRlJiBzdGF0ZSwgQ3J5cHRvS2V5Rm9ybWF0IGtleUZvcm1h
dCwgY29uc3QgQ3J5cHRvS2V5JiBrZXksIENyeXB0b0FsZ29yaXRobTo6VmVjdG9yQ2FsbGJhY2sg
Y2FsbGJhY2ssIENyeXB0b0FsZ29yaXRobTo6Vm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaykK
K3sKKyAgICBpZiAoIWtleS5leHRyYWN0YWJsZSgpKSB7CisgICAgICAgIHRocm93VHlwZUVycm9y
KCZzdGF0ZSwgQVNDSUlMaXRlcmFsKCJLZXkgaXMgbm90IGV4dHJhY3RhYmxlIikpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgc3dpdGNoIChrZXlGb3JtYXQpIHsKKyAgICBjYXNlIENy
eXB0b0tleUZvcm1hdDo6UmF3OiB7CisgICAgICAgIFZlY3Rvcjx1aW50OF90PiByZXN1bHQ7Cisg
ICAgICAgIGlmIChDcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3OjpzZXJpYWxpemUoa2V5LCByZXN1
bHQpKQorICAgICAgICAgICAgY2FsbGJhY2socmVzdWx0KTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgZmFpbHVyZUNhbGxiYWNrKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNl
IENyeXB0b0tleUZvcm1hdDo6SldLOiB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBKU0NyeXB0
b0tleVNlcmlhbGl6YXRpb25KV0s6OnNlcmlhbGl6ZSgmc3RhdGUsIGtleSk7CisgICAgICAgIGlm
IChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgQ1N0
cmluZyB1dGY4U3RyaW5nID0gcmVzdWx0LnV0ZjgoU3RyaWN0Q29udmVyc2lvbik7CisgICAgICAg
IFZlY3Rvcjx1aW50OF90PiByZXN1bHRCdWZmZXI7CisgICAgICAgIHJlc3VsdEJ1ZmZlci5hcHBl
bmQodXRmOFN0cmluZy5kYXRhKCksIHV0ZjhTdHJpbmcubGVuZ3RoKCkpOworICAgICAgICBjYWxs
YmFjayhyZXN1bHRCdWZmZXIpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgZGVmYXVsdDoK
KyAgICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBBU0NJSUxpdGVyYWwoIlVuc3VwcG9ydGVk
IGtleSBmb3JtYXQgZm9yIGV4cG9ydCIpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitK
U1ZhbHVlIEpTV2ViS2l0U3VidGxlQ3J5cHRvOjpleHBvcnRLZXkoRXhlY1N0YXRlJiBzdGF0ZSkK
K3sKKyAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgMikKKyAgICAgICAgcmV0dXJuIHN0
YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNF
cnJvcigmc3RhdGUpKTsKKworICAgIENyeXB0b0tleUZvcm1hdCBrZXlGb3JtYXQ7CisgICAgaWYg
KCFjcnlwdG9LZXlGb3JtYXRGcm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUuYXJndW1lbnQoMCksIGtl
eUZvcm1hdCkpIHsKKyAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgUmVmUHRyPENyeXB0b0tleT4g
a2V5ID0gSlNDcnlwdG9LZXk6OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7
CisgICAgaWYgKCFrZXkpCisgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUpOwor
CisgICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VEZWZlcnJlZCA9IEpTUHJvbWlzZURlZmVy
cmVkOjpjcmVhdGUoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSk7CisgICAgRGVmZXJyZWRXcmFwcGVy
IHdyYXBwZXIoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgcHJvbWlzZURlZmVycmVkKTsKKyAgICBh
dXRvIHN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4mIHJl
c3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEFycmF5QnVmZmVyKHdy
YXBwZXIsIHJlc3VsdC5kYXRhKCksIHJlc3VsdC5zaXplKCkpOworICAgIH07CisgICAgYXV0byBm
YWlsdXJlQ2FsbGJhY2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgd3JhcHBlci5y
ZWplY3QobnVsbHB0cik7CisgICAgfTsKKworICAgIFdlYkNvcmU6OmV4cG9ydEtleShzdGF0ZSwg
a2V5Rm9ybWF0LCAqa2V5LCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZmFpbHVy
ZUNhbGxiYWNrKSk7CisgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKKworICAgIHJldHVybiBwcm9taXNlRGVmZXJyZWQtPnByb21pc2Uo
KTsKK30KKworSlNWYWx1ZSBKU1dlYktpdFN1YnRsZUNyeXB0bzo6d3JhcEtleShFeGVjU3RhdGUm
IHN0YXRlKQoreworICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPCA0KQorICAgICAgICBy
ZXR1cm4gc3RhdGUudm0oKS50aHJvd0V4Y2VwdGlvbigmc3RhdGUsIGNyZWF0ZU5vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKCZzdGF0ZSkpOworCisgICAgQ3J5cHRvS2V5Rm9ybWF0IGtleUZvcm1hdDsK
KyAgICBpZiAoIWNyeXB0b0tleUZvcm1hdEZyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS5hcmd1bWVu
dCgwKSwga2V5Rm9ybWF0KSkgeworICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkp
OworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBSZWZQdHI8Q3J5
cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDEpKTsKKyAgICBpZiAoIWtleSkKKyAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZz
dGF0ZSk7CisKKyAgICBSZWZQdHI8Q3J5cHRvS2V5PiB3cmFwcGluZ0tleSA9IEpTQ3J5cHRvS2V5
Ojp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikpOworICAgIGlmICgha2V5KQor
ICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlKTsKKworICAgIGlmICghd3JhcHBp
bmdLZXktPmFsbG93cyhDcnlwdG9LZXlVc2FnZVdyYXBLZXkpKSB7CisgICAgICAgIHdyYXBwZWQo
KS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2Fn
ZUxldmVsOjpFcnJvciwgQVNDSUlMaXRlcmFsKCJLZXkgdXNhZ2VzIGRvIG5vdCBpbmNsdWRlICd3
cmFwS2V5JyIpKTsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgTk9UX1NVUFBPUlRF
RF9FUlIpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBhdXRv
IGFsZ29yaXRobSA9IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS51bmNo
ZWNrZWRBcmd1bWVudCgzKSk7CisgICAgaWYgKCFhbGdvcml0aG0pIHsKKyAgICAgICAgQVNTRVJU
KHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cisg
ICAgfQorCisgICAgYXV0byBwYXJhbWV0ZXJzID0gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5
OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRW5jcnlwdCgmc3RhdGUsIGFsZ29yaXRobS0+aWRlbnRpZmll
cigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgzKSk7CisgICAgaWYgKCFwYXJhbWV0ZXJzKSB7
CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIEpTUHJvbWlzZURlZmVycmVkKiBwcm9taXNlRGVm
ZXJyZWQgPSBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCkp
OworICAgIERlZmVycmVkV3JhcHBlciB3cmFwcGVyKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHBy
b21pc2VEZWZlcnJlZCk7CisKKyAgICBhdXRvIGV4cG9ydFN1Y2Nlc3NDYWxsYmFjayA9IFtrZXlG
b3JtYXQsIGFsZ29yaXRobSwgcGFyYW1ldGVycywgd3JhcHBpbmdLZXksIHdyYXBwZXJdKGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYgZXhwb3J0ZWRLZXlEYXRhKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0
byBlbmNyeXB0U3VjY2Vzc0NhbGxiYWNrID0gW3dyYXBwZXJdKGNvbnN0IFZlY3Rvcjx1aW50OF90
PiYgZW5jcnlwdGVkRGF0YSkgbXV0YWJsZSB7CisgICAgICAgICAgICBmdWxmaWxsUHJvbWlzZVdp
dGhBcnJheUJ1ZmZlcih3cmFwcGVyLCBlbmNyeXB0ZWREYXRhLmRhdGEoKSwgZW5jcnlwdGVkRGF0
YS5zaXplKCkpOworICAgICAgICB9OworICAgICAgICBhdXRvIGVuY3J5cHRGYWlsdXJlQ2FsbGJh
Y2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHdyYXBwZXIucmVqZWN0KG51
bGxwdHIpOworICAgICAgICB9OworICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICAg
ICAgYWxnb3JpdGhtLT5lbmNyeXB0Rm9yV3JhcEtleSgqcGFyYW1ldGVycywgKndyYXBwaW5nS2V5
LCBzdGQ6Om1ha2VfcGFpcihleHBvcnRlZEtleURhdGEuZGF0YSgpLCBleHBvcnRlZEtleURhdGEu
c2l6ZSgpKSwgV1RGTW92ZShlbmNyeXB0U3VjY2Vzc0NhbGxiYWNrKSwgV1RGTW92ZShlbmNyeXB0
RmFpbHVyZUNhbGxiYWNrKSwgZWMpOworICAgICAgICBpZiAoZWMpIHsKKyAgICAgICAgICAgIC8v
IEZJWE1FOiBSZXBvcnQgZmFpbHVyZSBkZXRhaWxzIHRvIGNvbnNvbGUsIGFuZCBwb3NzaWJseSB0
byBjYWxsaW5nIHNjcmlwdCBvbmNlIHRoZXJlIGlzIGEgc3RhbmRhcmRpemVkIHdheSB0byBwYXNz
IGVycm9ycyB0byBXZWJDcnlwdG8gcHJvbWlzZSByZWplY3QgZnVuY3Rpb25zLgorICAgICAgICAg
ICAgd3JhcHBlci5yZWplY3QobnVsbHB0cik7CisgICAgICAgIH0KKyAgICB9OworCisgICAgYXV0
byBleHBvcnRGYWlsdXJlQ2FsbGJhY2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxlIHsKKyAgICAgICAg
d3JhcHBlci5yZWplY3QobnVsbHB0cik7CisgICAgfTsKKworICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOworICAgIFdlYkNvcmU6OmV4cG9ydEtleShzdGF0ZSwga2V5Rm9ybWF0LCAqa2V5LCBXVEZN
b3ZlKGV4cG9ydFN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZXhwb3J0RmFpbHVyZUNhbGxiYWNr
KSk7CisgICAgaWYgKGVjKSB7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIGVjKTsK
KyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgcmV0dXJuIHByb21p
c2VEZWZlcnJlZC0+cHJvbWlzZSgpOworfQorCitKU1ZhbHVlIEpTV2ViS2l0U3VidGxlQ3J5cHRv
Ojp1bndyYXBLZXkoRXhlY1N0YXRlJiBzdGF0ZSkKK3sKKyAgICBpZiAoc3RhdGUuYXJndW1lbnRD
b3VudCgpIDwgNSkKKyAgICAgICAgcmV0dXJuIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0
YXRlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKKworICAgIENyeXB0
b0tleUZvcm1hdCBrZXlGb3JtYXQ7CisgICAgaWYgKCFjcnlwdG9LZXlGb3JtYXRGcm9tSlNWYWx1
ZShzdGF0ZSwgc3RhdGUuYXJndW1lbnQoMCksIGtleUZvcm1hdCkpIHsKKyAgICAgICAgQVNTRVJU
KHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cisg
ICAgfQorCisgICAgQ3J5cHRvT3BlcmF0aW9uRGF0YSB3cmFwcGVkS2V5RGF0YTsKKyAgICBpZiAo
IWNyeXB0b09wZXJhdGlvbkRhdGFGcm9tSlNWYWx1ZSgmc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFy
Z3VtZW50KDEpLCB3cmFwcGVkS2V5RGF0YSkpIHsKKyAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4
Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAg
UmVmUHRyPENyeXB0b0tleT4gdW53cmFwcGluZ0tleSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQo
c3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikpOworICAgIGlmICghdW53cmFwcGluZ0tleSkKKyAg
ICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSk7CisKKyAgICBpZiAoIXVud3JhcHBp
bmdLZXktPmFsbG93cyhDcnlwdG9LZXlVc2FnZVVud3JhcEtleSkpIHsKKyAgICAgICAgd3JhcHBl
ZCgpLmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNz
YWdlTGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwoIktleSB1c2FnZXMgZG8gbm90IGluY2x1ZGUg
J3Vud3JhcEtleSciKSk7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIE5PVF9TVVBQ
T1JURURfRVJSKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAg
YXV0byB1bndyYXBBbGdvcml0aG0gPSBjcmVhdGVBbGdvcml0aG1Gcm9tSlNWYWx1ZShzdGF0ZSwg
c3RhdGUudW5jaGVja2VkQXJndW1lbnQoMykpOworICAgIGlmICghdW53cmFwQWxnb3JpdGhtKSB7
CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOworICAgIH0KKyAgICBhdXRvIHVud3JhcEFsZ29yaXRobVBhcmFtZXRlcnMg
PSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZWNyeXB0
KCZzdGF0ZSwgdW53cmFwQWxnb3JpdGhtLT5pZGVudGlmaWVyKCksIHN0YXRlLnVuY2hlY2tlZEFy
Z3VtZW50KDMpKTsKKyAgICBpZiAoIXVud3JhcEFsZ29yaXRobVBhcmFtZXRlcnMpIHsKKyAgICAg
ICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CisgICAgfQorCisgICAgUmVmUHRyPENyeXB0b0FsZ29yaXRobT4gdW53cmFwcGVkS2V5
QWxnb3JpdGhtOworICAgIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiB1bndyYXBw
ZWRLZXlBbGdvcml0aG1QYXJhbWV0ZXJzOworICAgIGlmICghc3RhdGUudW5jaGVja2VkQXJndW1l
bnQoNCkuaXNOdWxsKCkpIHsKKyAgICAgICAgdW53cmFwcGVkS2V5QWxnb3JpdGhtID0gY3JlYXRl
QWxnb3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDQpKTsK
KyAgICAgICAgaWYgKCF1bndyYXBwZWRLZXlBbGdvcml0aG0pIHsKKyAgICAgICAgICAgIEFTU0VS
VChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKKyAgICAgICAgfQorICAgICAgICB1bndyYXBwZWRLZXlBbGdvcml0aG1QYXJhbWV0ZXJzID0g
SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9ySW1wb3J0S2V5
KCZzdGF0ZSwgdW53cmFwcGVkS2V5QWxnb3JpdGhtLT5pZGVudGlmaWVyKCksIHN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDQpKTsKKyAgICAgICAgaWYgKCF1bndyYXBwZWRLZXlBbGdvcml0aG1QYXJh
bWV0ZXJzKSB7CisgICAgICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOworICAg
ICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBi
b29sIGV4dHJhY3RhYmxlID0gZmFsc2U7CisgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA+
PSA2KSB7CisgICAgICAgIGV4dHJhY3RhYmxlID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoNSku
dG9Cb29sZWFuKCZzdGF0ZSk7CisgICAgICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKKyAg
ICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIENyeXB0b0tleVVz
YWdlIGtleVVzYWdlcyA9IDA7CisgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA+PSA3KSB7
CisgICAgICAgIGlmICghY3J5cHRvS2V5VXNhZ2VzRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLmFy
Z3VtZW50KDYpLCBrZXlVc2FnZXMpKSB7CisgICAgICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhj
ZXB0aW9uKCkpOworICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBKU1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZURlZmVycmVkID0gSlNQcm9t
aXNlRGVmZXJyZWQ6OmNyZWF0ZSgmc3RhdGUsIGdsb2JhbE9iamVjdCgpKTsKKyAgICBEZWZlcnJl
ZFdyYXBwZXIgd3JhcHBlcigmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCBwcm9taXNlRGVmZXJyZWQp
OworICAgIFN0cm9uZzxKU0RPTUdsb2JhbE9iamVjdD4gZG9tR2xvYmFsT2JqZWN0KHN0YXRlLnZt
KCksIGdsb2JhbE9iamVjdCgpKTsKKworICAgIGF1dG8gZGVjcnlwdFN1Y2Nlc3NDYWxsYmFjayA9
IFtkb21HbG9iYWxPYmplY3QsIGtleUZvcm1hdCwgdW53cmFwcGVkS2V5QWxnb3JpdGhtLCB1bndy
YXBwZWRLZXlBbGdvcml0aG1QYXJhbWV0ZXJzLCBleHRyYWN0YWJsZSwga2V5VXNhZ2VzLCB3cmFw
cGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4mIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGF1
dG8gaW1wb3J0U3VjY2Vzc0NhbGxiYWNrID0gW3dyYXBwZXJdKENyeXB0b0tleSYga2V5KSBtdXRh
YmxlIHsKKyAgICAgICAgICAgIHdyYXBwZXIucmVzb2x2ZShrZXkpOworICAgICAgICB9OworICAg
ICAgICBhdXRvIGltcG9ydEZhaWx1cmVDYWxsYmFjayA9IFt3cmFwcGVyXSgpIG11dGFibGUgewor
ICAgICAgICAgICAgd3JhcHBlci5yZWplY3QobnVsbHB0cik7CisgICAgICAgIH07CisgICAgICAg
IEV4ZWNTdGF0ZSYgc3RhdGUgPSAqZG9tR2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CisgICAg
ICAgIFdlYkNvcmU6OmltcG9ydEtleShzdGF0ZSwga2V5Rm9ybWF0LCBzdGQ6Om1ha2VfcGFpcihy
ZXN1bHQuZGF0YSgpLCByZXN1bHQuc2l6ZSgpKSwgdW53cmFwcGVkS2V5QWxnb3JpdGhtLCB1bndy
YXBwZWRLZXlBbGdvcml0aG1QYXJhbWV0ZXJzLCBleHRyYWN0YWJsZSwga2V5VXNhZ2VzLCBXVEZN
b3ZlKGltcG9ydFN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoaW1wb3J0RmFpbHVyZUNhbGxiYWNr
KSk7CisgICAgICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkgeworICAgICAgICAgICAgLy8g
RklYTUU6IFJlcG9ydCBleGNlcHRpb24gZGV0YWlscyB0byBjb25zb2xlLCBhbmQgcG9zc2libHkg
dG8gY2FsbGluZyBzY3JpcHQgb25jZSB0aGVyZSBpcyBhIHN0YW5kYXJkaXplZCB3YXkgdG8gcGFz
cyBlcnJvcnMgdG8gV2ViQ3J5cHRvIHByb21pc2UgcmVqZWN0IGZ1bmN0aW9ucy4KKyAgICAgICAg
ICAgIHN0YXRlLmNsZWFyRXhjZXB0aW9uKCk7CisgICAgICAgICAgICB3cmFwcGVyLnJlamVjdChu
dWxscHRyKTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICBhdXRvIGRlY3J5cHRGYWlsdXJlQ2Fs
bGJhY2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgd3JhcHBlci5yZWplY3QobnVs
bHB0cik7CisgICAgfTsKKworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIHVud3JhcEFs
Z29yaXRobS0+ZGVjcnlwdEZvclVud3JhcEtleSgqdW53cmFwQWxnb3JpdGhtUGFyYW1ldGVycywg
KnVud3JhcHBpbmdLZXksIHdyYXBwZWRLZXlEYXRhLCBXVEZNb3ZlKGRlY3J5cHRTdWNjZXNzQ2Fs
bGJhY2spLCBXVEZNb3ZlKGRlY3J5cHRGYWlsdXJlQ2FsbGJhY2spLCBlYyk7CisgICAgaWYgKGVj
KSB7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIGVjKTsKKyAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgcmV0dXJuIHByb21pc2VEZWZlcnJlZC0+cHJv
bWlzZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NjhkODIwYzNhZGM1ODZlZDM3NWE1ODkxZDhjMjZkOGE0M2Q5YWE1My4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3Vi
dGxlQ3J5cHRvLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU3VidGxlQ3J5cHRvLmgiCi0KLSNpZiBF
TkFCTEUoU1VCVExFX0NSWVBUTykKLQotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotU3VidGxlQ3J5cHRvOjpTdWJ0bGVDcnlwdG8oRG9jdW1lbnQmIGRvY3Vt
ZW50KQotICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmRvY3VtZW50KQotewotfQot
Ci1Eb2N1bWVudCogU3VidGxlQ3J5cHRvOjpkb2N1bWVudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotfQotCi19Ci0K
LSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5o
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBlZDZjY2I3ZjkxMTExODVlYjc0MGI0MzA1YWRmMmFlZjhiNjkzODliLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uaAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaWZuZGVmIFN1YnRsZUNyeXB0b19oCi0jZGVmaW5lIFN1YnRsZUNyeXB0
b19oCi0KLSNpbmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIiAKLSNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotI2lmIEVOQUJM
RShTVUJUTEVfQ1JZUFRPKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERvY3VtZW50
OwotCi1jbGFzcyBTdWJ0bGVDcnlwdG8gOiBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2
ZXIsIHB1YmxpYyBSZWZDb3VudGVkPFN1YnRsZUNyeXB0bz4gewotcHVibGljOgotICAgIHN0YXRp
YyBSZWY8U3VidGxlQ3J5cHRvPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IFN1YnRsZUNyeXB0byhkb2N1bWVudCkpOyB9Ci0KLSAgICBEb2N1bWVudCog
ZG9jdW1lbnQoKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBTdWJ0bGVDcnlwdG8oRG9jdW1lbnQm
KTsKLX07Ci0KLX0KLQotI2VuZGlmCi0KLSNlbmRpZiAvLyBTdWJ0bGVDcnlwdG9faApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggY2Y4ZmY4YjY5NzgzNTg5MjViNTExZGZlZmY0NTVjZjU1ZTdiNGUyZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
U3VidGxlQ3J5cHRvLmlkbAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi1bCi0gICAgQ29uZGl0aW9uYWw9U1VCVExFX0NSWVBUTywKLSAgICBJbnRlcmZhY2VOYW1l
PVdlYktpdFN1YnRsZUNyeXB0bywKLSAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxEb2N1bWVu
dCwKLSAgICBOb0ludGVyZmFjZU9iamVjdCwKLV0gaW50ZXJmYWNlIFN1YnRsZUNyeXB0byB7Ci0g
ICAgW0N1c3RvbV0gUHJvbWlzZSBlbmNyeXB0KEFsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGht
LCBLZXkga2V5LCBzZXF1ZW5jZTxDcnlwdG9PcGVyYXRpb25EYXRhPiBkYXRhKTsKLSAgICBbQ3Vz
dG9tXSBQcm9taXNlIGRlY3J5cHQoQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEtleSBr
ZXksIHNlcXVlbmNlPENyeXB0b09wZXJhdGlvbkRhdGE+IGRhdGEpOwotICAgIFtDdXN0b21dIFBy
b21pc2Ugc2lnbihBbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgS2V5IGtleSwgc2VxdWVu
Y2U8Q3J5cHRvT3BlcmF0aW9uRGF0YT4gZGF0YSk7Ci0gICAgW0N1c3RvbV0gUHJvbWlzZSB2ZXJp
ZnkoQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEtleSBrZXksIENyeXB0b09wZXJhdGlv
bkRhdGEgc2lnbmF0dXJlLCBzZXF1ZW5jZTxDcnlwdG9PcGVyYXRpb25EYXRhPiBkYXRhKTsKLSAg
ICBbQ3VzdG9tXSBQcm9taXNlIGRpZ2VzdChBbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwg
c2VxdWVuY2U8Q3J5cHRvT3BlcmF0aW9uRGF0YT4gZGF0YSk7Ci0gICAgW0N1c3RvbV0gUHJvbWlz
ZSBnZW5lcmF0ZUtleShBbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgb3B0aW9uYWwgYm9v
bGVhbiBleHRyYWN0YWJsZSwgb3B0aW9uYWwgc2VxdWVuY2U8S2V5VXNhZ2U+IGtleVVzYWdlcyk7
Ci0gICAgW0N1c3RvbV0gUHJvbWlzZSBpbXBvcnRLZXkoS2V5Rm9ybWF0IGZvcm1hdCwgQ3J5cHRv
T3BlcmF0aW9uRGF0YSBrZXlEYXRhLCBBbGdvcml0aG1JZGVudGlmaWVyPyBhbGdvcml0aG0sIG9w
dGlvbmFsIGJvb2xlYW4gZXh0cmFjdGFibGUsIG9wdGlvbmFsIHNlcXVlbmNlPEtleVVzYWdlPiBr
ZXlVc2FnZXMpOwotICAgIFtDdXN0b21dIFByb21pc2UgZXhwb3J0S2V5KEtleUZvcm1hdCBmb3Jt
YXQsIEtleSBrZXkpOwotICAgIFtDdXN0b21dIFByb21pc2Ugd3JhcEtleShLZXlGb3JtYXQgZm9y
bWF0LCBLZXkga2V5LCBLZXkgd3JhcHBpbmdLZXksIEFsZ29yaXRobUlkZW50aWZpZXIgd3JhcEFs
Z29yaXRobSk7Ci0gICAgW0N1c3RvbV0gUHJvbWlzZSB1bndyYXBLZXkoS2V5Rm9ybWF0IGZvcm1h
dCwgQ3J5cHRvT3BlcmF0aW9uRGF0YSB3cmFwcGVkS2V5LCBLZXkgdW53cmFwcGluZ0tleSwgQWxn
b3JpdGhtSWRlbnRpZmllciB1bndyYXBBbGdvcml0aG0sIEFsZ29yaXRobUlkZW50aWZpZXI/IHVu
d3JhcHBlZEtleUFsZ29yaXRobSwgb3B0aW9uYWwgYm9vbGVhbiBleHRyYWN0YWJsZSwgb3B0aW9u
YWwgc2VxdWVuY2U8S2V5VXNhZ2U+IGtleVVzYWdlcyk7Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjY4YWY5Y2M1YzMzZTE2
ODRmOWViZTdjODU0YTAyMzU5MmI0OTI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRTdWJ0bGVDcnlwdG8u
aCIKKworI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXZWJLaXRTdWJ0bGVDcnlwdG86OldlYktpdFN1YnRs
ZUNyeXB0byhEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNl
cnZlcigmZG9jdW1lbnQpCit7Cit9CisKK0RvY3VtZW50KiBXZWJLaXRTdWJ0bGVDcnlwdG86OmRv
Y3VtZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vV2ViS2l0U3VidGxlQ3J5cHRvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDk5Yjg1MGM5YTY4N2QwNDQ5MGFj
NGRiNDlmYWIzY2QxMmJkOWNkYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIiAK
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKwor
I2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IERvY3VtZW50OworCitjbGFzcyBXZWJLaXRTdWJ0bGVDcnlwdG8gOiBwdWJsaWMgQ29udGV4dERl
c3RydWN0aW9uT2JzZXJ2ZXIsIHB1YmxpYyBSZWZDb3VudGVkPFdlYktpdFN1YnRsZUNyeXB0bz4g
eworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViS2l0U3VidGxlQ3J5cHRvPiBjcmVhdGUoRG9j
dW1lbnQmIGRvY3VtZW50KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYktpdFN1YnRsZUNyeXB0
byhkb2N1bWVudCkpOyB9CisKKyAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsKKworcHJp
dmF0ZToKKyAgICBXZWJLaXRTdWJ0bGVDcnlwdG8oRG9jdW1lbnQmKTsKK307CisKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRv
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjE1NTczODM0OTI4MDNhZWY0YmMyNDY3NmVkNTdkYjBlYWRhYzUwNTUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmlkbApA
QCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVNVQlRMRV9D
UllQVE8sCisgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsRG9jdW1lbnQsCisgICAgTm9JbnRl
cmZhY2VPYmplY3QsCitdIGludGVyZmFjZSBXZWJLaXRTdWJ0bGVDcnlwdG8geworICAgIFtDdXN0
b21dIFByb21pc2UgZW5jcnlwdChBbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgS2V5IGtl
eSwgc2VxdWVuY2U8Q3J5cHRvT3BlcmF0aW9uRGF0YT4gZGF0YSk7CisgICAgW0N1c3RvbV0gUHJv
bWlzZSBkZWNyeXB0KEFsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBLZXkga2V5LCBzZXF1
ZW5jZTxDcnlwdG9PcGVyYXRpb25EYXRhPiBkYXRhKTsKKyAgICBbQ3VzdG9tXSBQcm9taXNlIHNp
Z24oQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEtleSBrZXksIHNlcXVlbmNlPENyeXB0
b09wZXJhdGlvbkRhdGE+IGRhdGEpOworICAgIFtDdXN0b21dIFByb21pc2UgdmVyaWZ5KEFsZ29y
aXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBLZXkga2V5LCBDcnlwdG9PcGVyYXRpb25EYXRhIHNp
Z25hdHVyZSwgc2VxdWVuY2U8Q3J5cHRvT3BlcmF0aW9uRGF0YT4gZGF0YSk7CisgICAgW0N1c3Rv
bV0gUHJvbWlzZSBkaWdlc3QoQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIHNlcXVlbmNl
PENyeXB0b09wZXJhdGlvbkRhdGE+IGRhdGEpOworICAgIFtDdXN0b21dIFByb21pc2UgZ2VuZXJh
dGVLZXkoQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIG9wdGlvbmFsIGJvb2xlYW4gZXh0
cmFjdGFibGUsIG9wdGlvbmFsIHNlcXVlbmNlPEtleVVzYWdlPiBrZXlVc2FnZXMpOworICAgIFtD
dXN0b21dIFByb21pc2UgaW1wb3J0S2V5KEtleUZvcm1hdCBmb3JtYXQsIENyeXB0b09wZXJhdGlv
bkRhdGEga2V5RGF0YSwgQWxnb3JpdGhtSWRlbnRpZmllcj8gYWxnb3JpdGhtLCBvcHRpb25hbCBi
b29sZWFuIGV4dHJhY3RhYmxlLCBvcHRpb25hbCBzZXF1ZW5jZTxLZXlVc2FnZT4ga2V5VXNhZ2Vz
KTsKKyAgICBbQ3VzdG9tXSBQcm9taXNlIGV4cG9ydEtleShLZXlGb3JtYXQgZm9ybWF0LCBLZXkg
a2V5KTsKKyAgICBbQ3VzdG9tXSBQcm9taXNlIHdyYXBLZXkoS2V5Rm9ybWF0IGZvcm1hdCwgS2V5
IGtleSwgS2V5IHdyYXBwaW5nS2V5LCBBbGdvcml0aG1JZGVudGlmaWVyIHdyYXBBbGdvcml0aG0p
OworICAgIFtDdXN0b21dIFByb21pc2UgdW53cmFwS2V5KEtleUZvcm1hdCBmb3JtYXQsIENyeXB0
b09wZXJhdGlvbkRhdGEgd3JhcHBlZEtleSwgS2V5IHVud3JhcHBpbmdLZXksIEFsZ29yaXRobUlk
ZW50aWZpZXIgdW53cmFwQWxnb3JpdGhtLCBBbGdvcml0aG1JZGVudGlmaWVyPyB1bndyYXBwZWRL
ZXlBbGdvcml0aG0sIG9wdGlvbmFsIGJvb2xlYW4gZXh0cmFjdGFibGUsIG9wdGlvbmFsIHNlcXVl
bmNlPEtleVVzYWdlPiBrZXlVc2FnZXMpOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ3J5cHRvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmNwcAppbmRleCA1
YWFhNzA5YmQxZmQ0MjU1MzBkNDdhNTgyNDA1ZWYwYWUzYWEwNGE3Li4wYTk0ZmQ5YWU4Yzk4YWRl
YmE5NzNmMDYzMmYyZGVjMGU1ODg3YmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NyeXB0by5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uY3BwCkBAIC0zMyw3
ICszMyw3IEBACiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNv
ZGUuaCIKLSNpbmNsdWRlICJTdWJ0bGVDcnlwdG8uaCIKKyNpbmNsdWRlICJXZWJLaXRTdWJ0bGVD
cnlwdG8uaCIKICNpbmNsdWRlIDxydW50aW1lL0FycmF5QnVmZmVyVmlldy5oPgogI2luY2x1ZGUg
PHd0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oPgogCkBAIC02NywxMyArNjcsMTMg
QEAgdm9pZCBDcnlwdG86OmdldFJhbmRvbVZhbHVlcyhBcnJheUJ1ZmZlclZpZXcqIGFycmF5LCBF
eGNlcHRpb25Db2RlJiBlYykKIH0KIAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotU3VidGxl
Q3J5cHRvKiBDcnlwdG86OnN1YnRsZSgpCitXZWJLaXRTdWJ0bGVDcnlwdG8qIENyeXB0bzo6d2Vi
a2l0U3VidGxlKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIGlmICghbV9z
dWJ0bGUpCi0gICAgICAgIG1fc3VidGxlID0gU3VidGxlQ3J5cHRvOjpjcmVhdGUoKmRvY3VtZW50
KCkpOworICAgIGlmICghbV93ZWJraXRTdWJ0bGUpCisgICAgICAgIG1fd2Via2l0U3VidGxlID0g
V2ViS2l0U3VidGxlQ3J5cHRvOjpjcmVhdGUoKmRvY3VtZW50KCkpOwogCi0gICAgcmV0dXJuIG1f
c3VidGxlLmdldCgpOworICAgIHJldHVybiBtX3dlYmtpdFN1YnRsZS5nZXQoKTsKIH0KICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DcnlwdG8uaAppbmRleCBhZjBmYzA0Njg3MWU5MmVmZTYxYmQ2MDNjZjI1ZjU3
ZTc5ZWE5NDgyLi45NmQ5MmQzMjczYjllNGFmNjM0ZDg1ZTExZjUxZWI4OTY5ZmU1ZTNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ3J5cHRvLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdHlw
ZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAogY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBTdWJ0bGVD
cnlwdG87CitjbGFzcyBXZWJLaXRTdWJ0bGVDcnlwdG87CiAKIGNsYXNzIENyeXB0byA6IHB1Ymxp
YyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciwgcHVibGljIFJlZkNvdW50ZWQ8Q3J5cHRvPiB7
CiBwdWJsaWM6CkBAIC01NywxNCArNTcsMTQgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0UmFuZG9t
VmFsdWVzKEpTQzo6QXJyYXlCdWZmZXJWaWV3KiwgRXhjZXB0aW9uQ29kZSYpOwogCiAjaWYgRU5B
QkxFKFNVQlRMRV9DUllQVE8pCi0gICAgU3VidGxlQ3J5cHRvKiBzdWJ0bGUoKTsKKyAgICBXZWJL
aXRTdWJ0bGVDcnlwdG8qIHdlYmtpdFN1YnRsZSgpOwogI2VuZGlmCiAKIHByaXZhdGU6CiAgICAg
Q3J5cHRvKERvY3VtZW50Jik7CiAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLSAgICBSZWZQ
dHI8U3VidGxlQ3J5cHRvPiBtX3N1YnRsZTsKKyAgICBSZWZQdHI8V2ViS2l0U3VidGxlQ3J5cHRv
PiBtX3dlYmtpdFN1YnRsZTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DcnlwdG8uaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uaWRsCmluZGV4
IGNmZTYwZmM4N2Y0NzQ0ZGMyYzJiOWUwOTFjOWFhNzJmM2IwNTYyYjIuLjYzYTFlMzBmZDc4MjA3
NWY4MTMyNmIyYTYwMjlmYmQxMGEyYmE2ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ3J5cHRvLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5pZGwKQEAgLTMy
LDUgKzMyLDUgQEAKIF0gaW50ZXJmYWNlIENyeXB0byB7CiAgICAgW0N1c3RvbSwgUmFpc2VzRXhj
ZXB0aW9uXSBBcnJheUJ1ZmZlclZpZXcgZ2V0UmFuZG9tVmFsdWVzKEFycmF5QnVmZmVyVmlldyBh
cnJheSk7CiAKLSAgICBbQ29uZGl0aW9uYWw9U1VCVExFX0NSWVBUTywgSW1wbGVtZW50ZWRBcz1z
dWJ0bGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTdWJ0bGVDcnlwdG8gd2Via2l0U3VidGxlOworICAg
IFtDb25kaXRpb25hbD1TVUJUTEVfQ1JZUFRPXSByZWFkb25seSBhdHRyaWJ1dGUgV2ViS2l0U3Vi
dGxlQ3J5cHRvIHdlYmtpdFN1YnRsZTsKIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODJiODMyM2E5MmU4MTc1MTg5Y2M4
ZThkNDIxZDdiZTY1ZGI0ODliMC4uYjUwM2JlYmRhODE3YWIwZmNkOTQ3MTU2NzM3OTJlZjNhYTli
NDZjOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE2LTA3LTIyICBKaWV3ZW4gVGFuICA8amll
d2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFN1YnRsZUNyeXB0byB0byBXZWJL
aXRTdWJ0bGVDcnlwdG8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2MDA2NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjc0ODM2MTc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0ZXN0cyBpbnZv
bHZpbmcgY3J5cHRvLndlYmtpdFN1YnRsZSBmcm9tIGNyeXB0by9zdWJ0bGUgdG8gY3J5cHRvL3dl
YmtpdFN1YnRsZS4KKworICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvZ2MtMi1leHBlY3Rl
ZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLTItZXhwZWN0
ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvZ2MtMi5odG1sOiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy0yLmh0bWwuCisgICAgICAgICogY3J5
cHRvL3dlYmtpdFN1YnRsZS9nYy0zLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL2NyeXB0by9zdWJ0bGUvZ2MtMy1leHBlY3RlZC50eHQuCisgICAgICAgICogY3J5cHRvL3dl
YmtpdFN1YnRsZS9nYy0zLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL2djLTMuaHRtbC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2djLWV4cGVjdGVk
LnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MtZXhwZWN0ZWQu
dHh0LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvZ2MuaHRtbDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MuaHRtbC4KKyAgICAgICAgKiBwbGF0Zm9ybS9l
ZmwvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMS9UZXN0RXhwZWN0YXRp
b25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE2LTA3
LTIwICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHRp
bWVvdXQgb2YgaW1wb3J0ZWQvdzNjL1dlYkNyeXB0b0FQSS9pZGxoYXJuZXNzLmh0bWwKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MtMi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLTItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBiOTFlMTk2MjcwNDgwM2FiMzRmMGQxOWY1ZjdmNjdmNDRiNjlmMmFjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2NyeXB0by9zdWJ0bGUvZ2MtMi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiAr
MCwwIEBACi1UZXN0IHRoYXQgd2luZG93LmNyeXB0by5zdWJ0bGUgd3JhcHBlciBwcmVzZXJ2ZXMg
Y3VzdG9tIHByb3BlcnRpZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNT
IFtvYmplY3QgQ3J5cHRvXSBpcyBkZWZpbmVkLgotUEFTUyBbb2JqZWN0IFdlYktpdFN1YnRsZUNy
eXB0b10gaXMgZGVmaW5lZC4KLVBBU1MgYW5vdGhlcldpbmRvd0NyeXB0by53ZWJraXRTdWJ0bGUu
Zm9vIGlzICJiYXIiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09N
UExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy0yLmh0bWwg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLTIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOTEyOTkyMDY4MmI4OTA3YTM1M2I1NmZjOGMyMzgxYjUwZTA0MjU3OC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9j
cnlwdG8vc3VidGxlL2djLTIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHk+Ci08c2NyaXB0PgotCi1kZXNjcmlwdGlvbigiVGVzdCB0aGF0IHdpbmRvdy5j
cnlwdG8uc3VidGxlIHdyYXBwZXIgcHJlc2VydmVzIGN1c3RvbSBwcm9wZXJ0aWVzLiIpOwotanNU
ZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBhbm90aGVyV2luZG93Q3J5cHRvOwotCi1mdW5jdGlv
biBzdGFydFRlc3QoKQotewotICAgIGFub3RoZXJXaW5kb3dDcnlwdG8gPSBmcmFtZXNbMF0uY3J5
cHRvOwotICAgIHNob3VsZEJlRGVmaW5lZChhbm90aGVyV2luZG93Q3J5cHRvKTsKLSAgICBzaG91
bGRCZURlZmluZWQoYW5vdGhlcldpbmRvd0NyeXB0by53ZWJraXRTdWJ0bGUpOwotCi0gICAgYW5v
dGhlcldpbmRvd0NyeXB0by53ZWJraXRTdWJ0bGUuZm9vID0gImJhciI7Ci0gICAgZG9jdW1lbnQu
Ym9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIilb
MF0pOwotICAgIGdjKCk7Ci0gICAgc2V0VGltZW91dChjb250aW51ZVRlc3QsIDEwKTsKLX0KLQot
ZnVuY3Rpb24gY29udGludWVUZXN0KCkKLXsKLSAgICBnYygpOwotICAgIHNldFRpbWVvdXQoZmlu
aXNoVGVzdCwgMTApOwotfQotCi1mdW5jdGlvbiBmaW5pc2hUZXN0KCkKLXsKLSAgICBnYygpOwot
ICAgIHNob3VsZEJlKCdhbm90aGVyV2luZG93Q3J5cHRvLndlYmtpdFN1YnRsZS5mb28nLCAnImJh
ciInKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQotd2luZG93Lm9ubG9hZCA9IHN0YXJ0VGVz
dDsKLQotPC9zY3JpcHQ+Ci08aWZyYW1lIHNyYz0iYWJvdXQ6YmxhbmsiPjwvaWZyYW1lPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy0z
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MtMy1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIwNGMxYTU3M2JhM2VkNmY3MWU0N2Zm
YTMxZThlY2E2NTc5YmIyZDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy0zLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLVRlc3QgdGhhdCB3aW5kb3cuY3J5cHRvIHdyYXBw
ZXIgcHJvdGVjdHMgYWxsIGRlcGVuZGVuY2llcywgc28gaXQgY2FuIGFsd2F5cyBiZSB1c2VkIHRv
IGNyZWF0ZSBjcnlwdG8uc3VidGxlLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQot
UEFTUyBbb2JqZWN0IENyeXB0b10gaXMgZGVmaW5lZC4KLVBBU1MgW29iamVjdCBXZWJLaXRTdWJ0
bGVDcnlwdG9dIGlzIGRlZmluZWQuCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0K
LVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9n
Yy0zLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLTMuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYjZlMDc0MGE5YjZmMGE4OWY0NmRkMTNmNDBiMGEyYzVlY2Rm
NzU0Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLTMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQzICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0PgotCi1kZXNjcmlwdGlvbigiVGVzdCB0aGF0
IHdpbmRvdy5jcnlwdG8gd3JhcHBlciBwcm90ZWN0cyBhbGwgZGVwZW5kZW5jaWVzLCBzbyBpdCBj
YW4gYWx3YXlzIGJlIHVzZWQgdG8gY3JlYXRlIGNyeXB0by5zdWJ0bGUuIik7Ci1qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKLQotdmFyIGFub3RoZXJXaW5kb3dDcnlwdG87Ci0KLWZ1bmN0aW9uIHN0YXJ0
VGVzdCgpCi17Ci0gICAgYW5vdGhlcldpbmRvd0NyeXB0byA9IGZyYW1lc1swXS5jcnlwdG87Ci0g
ICAgc2hvdWxkQmVEZWZpbmVkKGFub3RoZXJXaW5kb3dDcnlwdG8pOwotICAgIGRvY3VtZW50LmJv
ZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpWzBd
KTsKLSAgICBnYygpOwotICAgIHNldFRpbWVvdXQoY29udGludWVUZXN0LCAxMCk7Ci19Ci0KLWZ1
bmN0aW9uIGNvbnRpbnVlVGVzdCgpCi17Ci0gICAgZ2MoKTsKLSAgICBzZXRUaW1lb3V0KGZpbmlz
aFRlc3QsIDEwKTsKLX0KLQotZnVuY3Rpb24gZmluaXNoVGVzdCgpCi17Ci0gICAgZ2MoKTsKLSAg
ICBzaG91bGRCZURlZmluZWQoYW5vdGhlcldpbmRvd0NyeXB0by53ZWJraXRTdWJ0bGUpOwotICAg
IGZpbmlzaEpTVGVzdCgpOwotfQotCi13aW5kb3cub25sb2FkID0gc3RhcnRUZXN0OwotCi08L3Nj
cmlwdD4KLTxpZnJhbWUgc3JjPSJhYm91dDpibGFuayI+PC9pZnJhbWU+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBjNTlkMGExZTUyMGVlZTJhNjhmYThkOGQ5Nzk3MWFmZjA3YWU4
NDdlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MTAgKzAsMCBAQAotVGVzdCB0aGF0IHdpbmRvdy5jcnlwdG8uc3VidGxlIHdyYXBwZXIgcHJlc2Vy
dmVzIGN1c3RvbSBwcm9wZXJ0aWVzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQot
UEFTUyB3aW5kb3cuY3J5cHRvLndlYmtpdFN1YnRsZS5mb28gaXMgImJhciIKLVBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L2djLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyMzViMGJkZTlkY2U3MGM2
MDg4YTZhMDliODY5ZjI1MDNlNGQ0ZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMzggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgot
PG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci0KLWRlc2Ny
aXB0aW9uKCJUZXN0IHRoYXQgd2luZG93LmNyeXB0by5zdWJ0bGUgd3JhcHBlciBwcmVzZXJ2ZXMg
Y3VzdG9tIHByb3BlcnRpZXMuIik7Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZnVuY3Rpb24g
c3RhcnRUZXN0KCkKLXsKLSAgICB3aW5kb3cuY3J5cHRvLndlYmtpdFN1YnRsZS5mb28gPSAiYmFy
IjsKLSAgICBnYygpOwotICAgIHNldFRpbWVvdXQoY29udGludWVUZXN0LCAxMCk7Ci19Ci0KLWZ1
bmN0aW9uIGNvbnRpbnVlVGVzdCgpCi17Ci0gICAgZ2MoKTsKLSAgICBzZXRUaW1lb3V0KGZpbmlz
aFRlc3QsIDEwKTsKLX0KLQotZnVuY3Rpb24gZmluaXNoVGVzdCgpCi17Ci0gICAgZ2MoKTsKLSAg
ICBzaG91bGRCZSgnd2luZG93LmNyeXB0by53ZWJraXRTdWJ0bGUuZm9vJywgJyJiYXIiJyk7Ci0g
ICAgZmluaXNoSlNUZXN0KCk7Ci19Ci0KLXdpbmRvdy5vbmxvYWQgPSBzdGFydFRlc3Q7Ci0KLTwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9nYy0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJr
aXRTdWJ0bGUvZ2MtMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjkxZTE5NjI3MDQ4MDNhYjM0
ZjBkMTlmNWY3ZjY3ZjQ0YjY5ZjJhYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvZ2MtMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVz
dCB0aGF0IHdpbmRvdy5jcnlwdG8uc3VidGxlIHdyYXBwZXIgcHJlc2VydmVzIGN1c3RvbSBwcm9w
ZXJ0aWVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBbb2JqZWN0IENy
eXB0b10gaXMgZGVmaW5lZC4KK1BBU1MgW29iamVjdCBXZWJLaXRTdWJ0bGVDcnlwdG9dIGlzIGRl
ZmluZWQuCitQQVNTIGFub3RoZXJXaW5kb3dDcnlwdG8ud2Via2l0U3VidGxlLmZvbyBpcyAiYmFy
IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvZ2MtMi5odG1sIGIvTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy0yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTEyOTky
MDY4MmI4OTA3YTM1M2I1NmZjOGMyMzgxYjUwZTA0MjU3OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvZ2MtMi5odG1sCkBAIC0wLDAgKzEsNDYgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IHdpbmRv
dy5jcnlwdG8uc3VidGxlIHdyYXBwZXIgcHJlc2VydmVzIGN1c3RvbSBwcm9wZXJ0aWVzLiIpOwor
anNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBhbm90aGVyV2luZG93Q3J5cHRvOworCitmdW5j
dGlvbiBzdGFydFRlc3QoKQoreworICAgIGFub3RoZXJXaW5kb3dDcnlwdG8gPSBmcmFtZXNbMF0u
Y3J5cHRvOworICAgIHNob3VsZEJlRGVmaW5lZChhbm90aGVyV2luZG93Q3J5cHRvKTsKKyAgICBz
aG91bGRCZURlZmluZWQoYW5vdGhlcldpbmRvd0NyeXB0by53ZWJraXRTdWJ0bGUpOworCisgICAg
YW5vdGhlcldpbmRvd0NyeXB0by53ZWJraXRTdWJ0bGUuZm9vID0gImJhciI7CisgICAgZG9jdW1l
bnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1l
IilbMF0pOworICAgIGdjKCk7CisgICAgc2V0VGltZW91dChjb250aW51ZVRlc3QsIDEwKTsKK30K
KworZnVuY3Rpb24gY29udGludWVUZXN0KCkKK3sKKyAgICBnYygpOworICAgIHNldFRpbWVvdXQo
ZmluaXNoVGVzdCwgMTApOworfQorCitmdW5jdGlvbiBmaW5pc2hUZXN0KCkKK3sKKyAgICBnYygp
OworICAgIHNob3VsZEJlKCdhbm90aGVyV2luZG93Q3J5cHRvLndlYmtpdFN1YnRsZS5mb28nLCAn
ImJhciInKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKword2luZG93Lm9ubG9hZCA9IHN0YXJ0
VGVzdDsKKworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0iYWJvdXQ6YmxhbmsiPjwvaWZyYW1lPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1
YnRsZS9nYy0zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUv
Z2MtMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjA0YzFhNTczYmEzZWQ2ZjcxZTQ3ZmZhMzFl
OGVjYTY1NzliYjJkOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJr
aXRTdWJ0bGUvZ2MtMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCB0aGF0IHdp
bmRvdy5jcnlwdG8gd3JhcHBlciBwcm90ZWN0cyBhbGwgZGVwZW5kZW5jaWVzLCBzbyBpdCBjYW4g
YWx3YXlzIGJlIHVzZWQgdG8gY3JlYXRlIGNyeXB0by5zdWJ0bGUuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIFtvYmplY3QgQ3J5cHRvXSBpcyBkZWZpbmVkLgorUEFTUyBb
b2JqZWN0IFdlYktpdFN1YnRsZUNyeXB0b10gaXMgZGVmaW5lZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL2djLTMuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJr
aXRTdWJ0bGUvZ2MtMy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2ZTA3NDBhOWI2ZjBhODlmNDZkZDEzZjQw
YjBhMmM1ZWNkZjc1NDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL2djLTMuaHRtbApAQCAtMCwwICsxLDQzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3QgdGhhdCB3aW5kb3cuY3J5cHRvIHdyYXBwZXIgcHJv
dGVjdHMgYWxsIGRlcGVuZGVuY2llcywgc28gaXQgY2FuIGFsd2F5cyBiZSB1c2VkIHRvIGNyZWF0
ZSBjcnlwdG8uc3VidGxlLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBhbm90aGVy
V2luZG93Q3J5cHRvOworCitmdW5jdGlvbiBzdGFydFRlc3QoKQoreworICAgIGFub3RoZXJXaW5k
b3dDcnlwdG8gPSBmcmFtZXNbMF0uY3J5cHRvOworICAgIHNob3VsZEJlRGVmaW5lZChhbm90aGVy
V2luZG93Q3J5cHRvKTsKKyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUiKVswXSk7CisgICAgZ2MoKTsKKyAgICBzZXRUaW1l
b3V0KGNvbnRpbnVlVGVzdCwgMTApOworfQorCitmdW5jdGlvbiBjb250aW51ZVRlc3QoKQorewor
ICAgIGdjKCk7CisgICAgc2V0VGltZW91dChmaW5pc2hUZXN0LCAxMCk7Cit9CisKK2Z1bmN0aW9u
IGZpbmlzaFRlc3QoKQoreworICAgIGdjKCk7CisgICAgc2hvdWxkQmVEZWZpbmVkKGFub3RoZXJX
aW5kb3dDcnlwdG8ud2Via2l0U3VidGxlKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKword2lu
ZG93Lm9ubG9hZCA9IHN0YXJ0VGVzdDsKKworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0iYWJvdXQ6
YmxhbmsiPjwvaWZyYW1lPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL2djLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNTlkMGExZTUyMGVl
ZTJhNjhmYThkOGQ5Nzk3MWFmZjA3YWU4NDdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAor
VGVzdCB0aGF0IHdpbmRvdy5jcnlwdG8uc3VidGxlIHdyYXBwZXIgcHJlc2VydmVzIGN1c3RvbSBw
cm9wZXJ0aWVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB3aW5kb3cu
Y3J5cHRvLndlYmtpdFN1YnRsZS5mb28gaXMgImJhciIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL2djLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L2djLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTIzNWIwYmRlOWRjZTcwYzYwODhhNmEwOWI4NjlmMjUwM2U0
ZDRlYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUv
Z2MuaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKworZGVz
Y3JpcHRpb24oIlRlc3QgdGhhdCB3aW5kb3cuY3J5cHRvLnN1YnRsZSB3cmFwcGVyIHByZXNlcnZl
cyBjdXN0b20gcHJvcGVydGllcy4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitmdW5jdGlv
biBzdGFydFRlc3QoKQoreworICAgIHdpbmRvdy5jcnlwdG8ud2Via2l0U3VidGxlLmZvbyA9ICJi
YXIiOworICAgIGdjKCk7CisgICAgc2V0VGltZW91dChjb250aW51ZVRlc3QsIDEwKTsKK30KKwor
ZnVuY3Rpb24gY29udGludWVUZXN0KCkKK3sKKyAgICBnYygpOworICAgIHNldFRpbWVvdXQoZmlu
aXNoVGVzdCwgMTApOworfQorCitmdW5jdGlvbiBmaW5pc2hUZXN0KCkKK3sKKyAgICBnYygpOwor
ICAgIHNob3VsZEJlKCd3aW5kb3cuY3J5cHRvLndlYmtpdFN1YnRsZS5mb28nLCAnImJhciInKTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKword2luZG93Lm9ubG9hZCA9IHN0YXJ0VGVzdDsKKwor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDYzYTE0MDcwZjk2NWEwMDc5YTUyOGY1ZjQ1NzY4ODM5Y2FlOTNh
ZDEuLjQ3ZmIzODgzMWU0NzU1YzIyOGY2YmIxMmFmNjUxYjBkZjdmMWQ1OGIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBAIC0xODE1LDYgKzE4MTUsNyBAQCB3
ZWJraXQub3JnL2IvMTE5NzgyIGZhc3QvZm9ybXMvc2VhcmNoLXN0eWxlZC5odG1sIFsgRmFpbHVy
ZSBdCiAjIGNyeXB0by5zdWJ0bGUgaXMgbm90IHlldCBlbmFibGVkLCBidXQgZGlnZXN0IGFsZ29y
aXRobXMgYXJlIGFscmVhZHkgaW1wbGVtZW50ZWQKICMgYW5kIHRoZWlyIHRlc3RzIGFyZSB3aGl0
ZWxpc3RlZAogd2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vc3VidGxlIFsgU2tpcCBdCit3ZWJr
aXQub3JnL2IvMTMzMTIyIGNyeXB0by93ZWJraXRTdWJ0bGUgWyBTa2lwIF0KIHdlYmtpdC5vcmcv
Yi8xMzMzMTkgY3J5cHRvL3N1YnRsZS9zaGEtMS5odG1sIFsgUGFzcyBdCiB3ZWJraXQub3JnL2Iv
MTMzMzE5IGNyeXB0by9zdWJ0bGUvc2hhLTIyNC5odG1sIFsgUGFzcyBdCiB3ZWJraXQub3JnL2Iv
MTMzMzE5IGNyeXB0by9zdWJ0bGUvc2hhLTI1Ni5odG1sIFsgUGFzcyBdCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGY5OTA4N2Q0NmY2MWIwZDMxNzMxNjc2
ZTQxNDJlODMwY2NiZjBjNDAuLmUyNTEzYjc0MDNhMzEzYzkwZTI3MDdhNWQ0MzQwYWE5M2IzNjMw
NDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC00MDYs
NiArNDA2LDcgQEAgQnVnKEdUSykgZWRpdGluZy9zZWN1cmUtaW5wdXQgWyBGYWlsdXJlIF0KICMg
Y3J5cHRvLnN1YnRsZSBpcyBub3QgeWV0IGVuYWJsZWQsIGJ1dCBkaWdlc3QgYWxnb3JpdGhtcyBh
cmUgYWxyZWFkeSBpbXBsZW1lbnRlZAogIyBhbmQgdGhlaXIgdGVzdHMgYXJlIHdoaXRlbGlzdGVk
CiB3ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by9zdWJ0bGUgWyBTa2lwIF0KK3dlYmtpdC5vcmcv
Yi8xMzMxMjIgY3J5cHRvL3dlYmtpdFN1YnRsZSBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzEzMzMx
OSBjcnlwdG8vc3VidGxlL3NoYS0xLmh0bWwgWyBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xMzMzMTkg
Y3J5cHRvL3N1YnRsZS9zaGEtMjI0Lmh0bWwgWyBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xMzMzMTkg
Y3J5cHRvL3N1YnRsZS9zaGEtMjU2Lmh0bWwgWyBQYXNzIF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Itd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGE0
NmZhZmI0MzU3NTRhNjg4N2JlYjkxN2E0NjdiODIwOTAxMzEwMjUuLjc3ZDExNGFmY2FhNzg2MWVi
NDA0NzEzNzU4NTJhMGI3ZDVjMmU4ZDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy1zaW11bGF0b3Itd2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zLXNpbXVsYXRvci13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTAwNSw3ICsxMDA1
LDkgQEAgYW5pbWF0aW9ucy9zdXNwZW5kLXJlc3VtZS1hbmltYXRpb24tZXZlbnRzLmh0bWwgWyBQ
YXNzIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIKIGltcG9ydGVkL3czYy9JbmRleGVkREIt
cHJpdmF0ZS1icm93c2luZwogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIKK2NyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS1wcml2YXRlLmh0
bWwKIGNyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS5odG1sCitjcnlw
dG8vc3VidGxlL3JzYS1pbmRleGVkZGItcHJpdmF0ZS5odG1sCiBjcnlwdG8vc3VidGxlL3JzYS1p
bmRleGVkZGIuaHRtbAogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtaW5kZXhlZC1jbG9zZWQtZGIu
aHRtbAogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtaW5kZXhlZC1vcGVuZWQtZGIuaHRtbApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhOTk1NDQzNDNjODk5
NzJjM2NhNTUzMTFmZThkOGMzMjFjMTBkYmVhLi4xNDA2NzRlMzZkYmUzOWIwNGY0NjUyYjAzOWM2
OGJlMWJiMTE3ZjFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9u
cwpAQCAtMjU5LDYgKzI1OSw5IEBAIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWlu
ZGV4ZWRkYi5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13
b3JrZXItaW5kZXhlZGRiLWFsbG93ZWQuaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L25vLWluZGV4ZWRkYi1mcm9tLXNhbmRib3guaHRtbCBbIFNraXAgXQorY3J5cHRv
L3N1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLXByaXZhdGUuaHRtbCBbIFNraXAg
XQorY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLmh0bWwgWyBTa2lw
IF0KK2NyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1wcml2YXRlLmh0bWwgWyBTa2lwIF0KIGNy
eXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi5odG1sIFsgU2tpcCBdCiBmYXN0L2hpc3RvcnkvcGFn
ZS1jYWNoZS1pbmRleGVkLWNsb3NlZC1kYi5odG1sIFsgU2tpcCBdCiBmYXN0L2hpc3RvcnkvcGFn
ZS1jYWNoZS1pbmRleGVkLW9wZW5lZC1kYi5odG1sIFsgU2tpcCBdCkBAIC01OTMsNiArNTk2LDcg
QEAgd2Via2l0Lm9yZy9iLzk4Njk2IHBsdWdpbnMvc25hcHNob3R0aW5nIFsgU2tpcCBdCiB3ZWJr
aXQub3JnL2IvMTE2NTU5IHN0b3JhZ2Uvd2Vic3FsLyBbIFNraXAgXQogCiAjIFRPRE8gY3J5cHRv
LnN1YnRsZSBpcyBub3QgeWV0IGVuYWJsZWQKK2NyeXB0by93ZWJraXRTdWJ0bGUvIFsgU2tpcCBd
CiBjcnlwdG8vc3VidGxlLyBbIFNraXAgXQogCiAjIFRPRE8gTWlzc2luZyBXZWJTcGVlY2ggaW1w
bGVtZW50YXRpb24K
</data>
<flag name="review"
          id="308001"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
    <flag name="commit-queue"
          id="308135"
          type_id="3"
          status="-"
          setter="bfulgham"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284500</attachid>
            <date>2016-07-25 10:46:33 -0700</date>
            <delta_ts>2016-07-25 13:36:22 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-160067-20160725104526.patch</filename>
            <type>text/plain</type>
            <size>115927</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDEzMjVmMWU5NTIwZDI4
ZjQ4MGVkMjE5MWMzZWIyZDU4ODdmODZiMi4uNzY3ZGM2NjNjYTU0ZTNhM2NlODQ4NGViN2FkYjBi
OTI1MDIxZmExYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE2LTA3LTI1ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFN1YnRsZUNy
eXB0byB0byBXZWJLaXRTdWJ0bGVDcnlwdG8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2MDA2NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjc0ODM2
MTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAgICBUZXN0
czogY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy0yLmh0bWwKKyAgICAgICAgICAgICAgIGNyeXB0by93
ZWJraXRTdWJ0bGUvZ2MtMy5odG1sCisgICAgICAgICAgICAgICBjcnlwdG8vd2Via2l0U3VidGxl
L2djLmh0bWwKKworICAgICAgICBSZW5hbWUgQ2xhc3MgU3VidGxlQ3J5cHRvIHRvIFdlYktpdFN1
YnRsZUNyeXB0bywgYW5kIENyeXB0by5zdWJ0bGUgdG8gQ3J5cHRvLndlYmtpdFN1YnRsZSBpbiBv
cmRlcgorICAgICAgICB0byBsZXQgdGhlIG5ldyBpbXBsZW1lbnRhdGlvbiB0byByZXVzZSB0aGUg
bmFtZSBTdWJ0bGVDcnlwdG8uIFRoaXMgcmVuYW1pbmcgc2hvdWxkIG1hdGNoIHdoYXQgb3VyCisg
ICAgICAgIGN1cnJlbnQgSlNCaW5kaW5ncyB1c2UsIGFuZCB0aGVyZWZvcmUgc2hvdWxkIG5vdCBp
bnRyb2R1Y2UgYW55IGNoYW5nZSBvZiBiZWhhdm9pci4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICBSZXZpc2UgcHJvamVjdCBmaWxlcyBmb3IgZm9yIG5ldyBmaWxlIG5hbWVz
LgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3Jt
R1RLLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgUmV2aXNlIHByb2plY3QgZmls
ZXMgZm9yIGZvciBuZXcgZmlsZSBuYW1lcy4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dlYktp
dFN1YnRsZUNyeXB0b0N1c3RvbS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAuCisgICAgICAgICogY3J5cHRvL1dlYktp
dFN1YnRsZUNyeXB0by5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3Vi
dGxlQ3J5cHRvLmNwcC4KKyAgICAgICAgKiBjcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmg6IFJl
bmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmguCisgICAgICAg
ICogY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5pZGw6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmlkbC4KKyAgICAgICAgKiBwYWdlL0NyeXB0by5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG86OndlYmtpdFN1YnRsZSk6CisgICAgICAgIChXZWJD
b3JlOjpDcnlwdG86OnN1YnRsZSk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9DcnlwdG8uaDoK
KyAgICAgICAgKiBwYWdlL0NyeXB0by5pZGw6CisKIDIwMTYtMDctMjAgIEJyYWR5IEVpZHNvbiAg
PGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBzb21lICJtb2Rlcm5Gb28icyBm
cm9tIEluZGV4ZWREQiBjb2RlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3YTY2MWQ2Mzc5ZWUw
NGJjOWRiOTlmZjFiNDAwMzljMzZiNzdmZGYzLi4wNGU3OWI5NWY0MGM3Mjg1MmU5YjAwOTQ3MDYw
OGU2YmUwZGViMThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzE1LDcgKzMxNSw3IEBAIHNl
dChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAKICAgICBjcnlwdG8vQ3J5cHRvS2V5LmlkbAog
ICAgIGNyeXB0by9DcnlwdG9LZXlQYWlyLmlkbAotICAgIGNyeXB0by9TdWJ0bGVDcnlwdG8uaWRs
CisgICAgY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5pZGwKIAogICAgIGNzcy9DU1NDaGFyc2V0
UnVsZS5pZGwKICAgICBjc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsCkBAIC0xMjExLDcgKzEy
MTEsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNTdG9yYWdlQ3Vz
dG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTU3R5bGVTaGVldEN1c3RvbS5jcHAKICAgICBiaW5k
aW5ncy9qcy9KU1N0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcAotICAgIGJpbmRpbmdzL2pzL0pTU3Vi
dGxlQ3J5cHRvQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTVGV4dEN1c3RvbS5jcHAKICAg
ICBiaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1ZUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9K
U1RleHRUcmFja0N1c3RvbS5jcHAKQEAgLTEyMjUsNiArMTIyNCw3IEBAIHNldChXZWJDb3JlX1NP
VVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2VDdXN0b20u
Y3BwCiAgICAgYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCiAg
ICAgYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAKKyAgICBiaW5kaW5ncy9qcy9K
U1dlYktpdFN1YnRsZUNyeXB0b0N1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckN1
c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKICAg
ICBiaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMuY3BwCmluZGV4IGRmMmZkOTkyYTNlN2NkNjAwYTZiMDkwMDcwYWQ5YTAzMzJlODM5
MGMuLjkwNjA5ZGNlNmZmZjQ1ZTUyZjg1NzgxYzA0ZDE0YjQzMzE3MzhkYzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5jcHAKQEAgLTQyNyw3ICs0MjcsNiBAQAogI2luY2x1ZGUgIkpTU3BlZWNo
U3ludGhlc2lzRXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNl
LmNwcCIKICNpbmNsdWRlICJKU1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmNwcCIKLSNpbmNsdWRlICJK
U1N1YnRsZUNyeXB0by5jcHAiCiAjaW5jbHVkZSAiSlNTUUxFcnJvci5jcHAiCiAjaW5jbHVkZSAi
SlNTUUxFeGNlcHRpb24uY3BwIgogI2luY2x1ZGUgIkpTU1FMUmVzdWx0U2V0LmNwcCIKQEAgLTY0
Niw2ICs2NDUsNyBAQAogI2luY2x1ZGUgIkpTV2ViS2l0TmFtZXNwYWNlLmNwcCIKICNpbmNsdWRl
ICJKU1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuY3BwIgogI2luY2x1ZGUg
IkpTV2ViS2l0UG9pbnQuY3BwIgorI2luY2x1ZGUgIkpTV2ViS2l0U3VidGxlQ3J5cHRvLmNwcCIK
ICNpbmNsdWRlICJKU1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNXZWJT
b2NrZXQuY3BwIgogI2luY2x1ZGUgIkpTV2hlZWxFdmVudC5jcHAiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQppbmRleCA5ZDQ4OWUyODExOTg4YTUxZmRjODdiYWU2MzJjYmI1MDIwNDQ5NmFm
Li43MTM2NWJkNTRhMDcyN2IzMzRlZjM5NjIxMGI1OGZkMzBkMDVjN2JmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKQEAgLTIzNSw3ICsyMzUsNyBAQCBOT05fU1ZHX0JJTkRJTkdfSURM
UyA9IFwKICAgICAkKFdlYkNvcmUpL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9jcnlwdG8vQ3J5cHRvS2V5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9jcnlw
dG8vQ3J5cHRvS2V5UGFpci5pZGwgXAotICAgICQoV2ViQ29yZSkvY3J5cHRvL1N1YnRsZUNyeXB0
by5pZGwgXAorICAgICQoV2ViQ29yZSkvY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5pZGwgXAog
ICAgICQoV2ViQ29yZSkvY3NzL0NTU0NoYXJzZXRSdWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9j
c3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9DU1NGb250
RmFjZVJ1bGUuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNt
YWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggNTE0NTA0ZTZlYzI1
YWE1ZTQzYjk5Mzk4ZDVlMzVjZWVlYTc2NmFhNC4uMmQzNjk4NjBmMGEzNTczODU4MjlkN2FkNGJm
YjA3OTI1NjQ3YmIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21h
a2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTQwMyw3ICs0MDMs
NyBAQCBpZiAoRU5BQkxFX1NVQlRMRV9DUllQVE8pCiAgICAgICAgIGNyeXB0by9DcnlwdG9BbGdv
cml0aG1SZWdpc3RyeS5jcHAKICAgICAgICAgY3J5cHRvL0NyeXB0b0tleS5jcHAKICAgICAgICAg
Y3J5cHRvL0NyeXB0b0tleVBhaXIuY3BwCi0gICAgICAgIGNyeXB0by9TdWJ0bGVDcnlwdG8uY3Bw
CisgICAgICAgIGNyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uY3BwCiAKICAgICAgICAgY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5jcHAKICAgICAgICAgY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFr
ZQppbmRleCA2NDVhZGQxY2UzODg4OGIwNGQ0YTJkODlhZGEwYTdjNmRlMTk5ODZiLi5hYWJkMzA1
ZWQxZWJkMmFlMWUxMWYxYzAzYzk0Y2IzMWQ4Y2E4NDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5j
bWFrZQpAQCAtNzk3LDcgKzc5Nyw3IEBAIGlmIChFTkFCTEVfU1VCVExFX0NSWVBUTykKICAgICAg
ICAgY3J5cHRvL0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcAogICAgICAgICBjcnlwdG8vQ3J5
cHRvS2V5LmNwcAogICAgICAgICBjcnlwdG8vQ3J5cHRvS2V5UGFpci5jcHAKLSAgICAgICAgY3J5
cHRvL1N1YnRsZUNyeXB0by5jcHAKKyAgICAgICAgY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5j
cHAKIAogICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNw
cAogICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IDlmNmY0OTZiNmNjNGVmNmU0Yjc0ZDg0YWMwYWE5
ZGVhNTVhMDIzN2IuLjMzMTAyNThmMDEyZjlkY2ZhYTUyY2JiY2I0ZTgxM2Y5YTU0NWRiMzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC0xOTYsNyArMTk2LDcgQEAgbGlzdChBUFBFTkQg
V2ViQ29yZV9TT1VSQ0VTCiAgICAgY3J5cHRvL0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcAog
ICAgIGNyeXB0by9DcnlwdG9LZXkuY3BwCiAgICAgY3J5cHRvL0NyeXB0b0tleVBhaXIuY3BwCi0g
ICAgY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKKyAgICBjcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRv
LmNwcAogCiAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5jcHAK
ICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMGNl
NjdhYjU2M2YyZDNkYzBjOTA2MmY0YmUwZDNlNzgyNzc0NzkwMS4uMmRhNWI0Y2M1YjNlZWFjYWJh
ZTU0YWVhZDFmNmYxYjEzOTQzY2FmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjMzOCw2ICsyMzM4LDExIEBACiAJCTU1MEEw
QkNBMDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NTBBMEJDODA4NUY2MDM5MDA3MzUzRDYgLyog
UXVhbGlmaWVkTmFtZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTU1NUI4N0VDMUNBQUYwQUIwMDM0OTQyNSAvKiBJbWFnZURlY29kZXJDRy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NTVCODdFQTFD
QUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cuY3BwICovOyB9OwogCQk1NTVCODdFRDFD
QUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1NUI4N0VCMUNBQUYwQUIwMDM0OTQyNSAvKiBJbWFn
ZURlY29kZXJDRy5oICovOyB9OworCQk1NzA5RThDRDFENDEzRDQ3MDAzMjQ0QUMgLyogV2ViS2l0
U3VidGxlQ3J5cHRvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU3MDlFOENBMUQ0MTNDRTMwMDMyNDRBQyAvKiBXZWJLaXRTdWJ0bGVDcnlwdG8uY3Bw
ICovOyB9OworCQk1NzA5RThDRTFENDEzRDVCMDAzMjQ0QUMgLyogSlNXZWJLaXRTdWJ0bGVDcnlw
dG9DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTFGRjhGNjYxODA3NDYwODAwMTMyNjc0IC8qIEpTV2ViS2l0U3VidGxlQ3J5cHRvQ3VzdG9t
LmNwcCAqLzsgfTsKKwkJNTcwOUU4Q0YxRDQxM0Q5QTAwMzI0NEFDIC8qIFdlYktpdFN1YnRsZUNy
eXB0by5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcw
OUU4Q0IxRDQxM0NFMzAwMzI0NEFDIC8qIFdlYktpdFN1YnRsZUNyeXB0by5oICovOyB9OworCQk1
NzBBOTlEQTFENDE3NDA4MDA0RUM2MzAgLyogSlNXZWJLaXRTdWJ0bGVDcnlwdG8uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRjhGNjIxODA3NDVE
ODAwMTMyNjc0IC8qIEpTV2ViS2l0U3VidGxlQ3J5cHRvLmNwcCAqLzsgfTsKKwkJNTcwQTk5REIx
RDQxQTJGMzAwNEVDNjMwIC8qIEpTV2ViS2l0U3VidGxlQ3J5cHRvLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2MzE4MDc0NUQ4MDAxMzI2NzQg
LyogSlNXZWJLaXRTdWJ0bGVDcnlwdG8uaCAqLzsgfTsKIAkJNTcyQTdGMjExQzZFNTcxOTAwOUM2
MTQ5IC8qIFNpbXVsYXRlZENsaWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1NzJBN0YyMDFDNkU1NzE5MDA5QzYxNDkgLyogU2ltdWxhdGVkQ2xpY2su
aCAqLzsgfTsKIAkJNTcyQTdGMjMxQzZFNUE2NjAwOUM2MTQ5IC8qIFNpbXVsYXRlZENsaWNrLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkE3RjIy
MUM2RTVBNjYwMDlDNjE0OSAvKiBTaW11bGF0ZWRDbGljay5jcHAgKi87IH07CiAJCTU3RUY1RTYw
MUQyMEM4MzkwMDE3MUU2MCAvKiBUZXh0Q29kZWNSZXBsYWNlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdFRjVFNUYxRDIwQzgzOTAwMTcxRTYw
IC8qIFRleHRDb2RlY1JlcGxhY2VtZW50LmggKi87IH07CkBAIC02NjM4LDExICs2NjQzLDYgQEAK
IAkJRTFGRTEzN0UxODREMjcwMjAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobUFFU19LV01hYy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZFMTM3
QzE4NEQyNzAyMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0tXTWFjLmNwcCAqLzsgfTsK
IAkJRTFGRjU3QTMwRjAxMjU1QjAwODkxRUJCIC8qIFRocmVhZEdsb2JhbERhdGEuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY1N0EyMEYwMTI1NUIw
MDg5MUVCQiAvKiBUaHJlYWRHbG9iYWxEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTFGRjU3QTYwRjAxMjU2QjAwODkxRUJCIC8qIFRocmVh
ZEdsb2JhbERhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTFGRjU3QTUwRjAxMjU2QjAwODkxRUJCIC8qIFRocmVhZEdsb2JhbERhdGEuY3BwICov
OyB9OwotCQlFMUZGOEY1RjE4MDc0NDIxMDAxMzI2NzQgLyogU3VidGxlQ3J5cHRvLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4RjVEMTgwNzQ0
MjEwMDEzMjY3NCAvKiBTdWJ0bGVDcnlwdG8uY3BwICovOyB9OwotCQlFMUZGOEY2MDE4MDc0NDIx
MDAxMzI2NzQgLyogU3VidGxlQ3J5cHRvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY1RTE4MDc0NDIxMDAxMzI2NzQgLyogU3VidGxlQ3J5cHRv
LmggKi87IH07Ci0JCUUxRkY4RjY0MTgwNzQ1RDgwMDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0by5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2
MjE4MDc0NUQ4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlwdG8uY3BwICovOyB9OwotCQlFMUZGOEY2
NTE4MDc0NUQ4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlwdG8uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4RjYzMTgwNzQ1RDgwMDEzMjY3NCAvKiBK
U1N1YnRsZUNyeXB0by5oICovOyB9OwotCQlFMUZGOEY2ODE4MDc0NjA4MDAxMzI2NzQgLyogSlNT
dWJ0bGVDcnlwdG9DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTFGRjhGNjYxODA3NDYwODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvQ3Vz
dG9tLmNwcCAqLzsgfTsKIAkJRTFGRjhGNkMxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29y
aXRobVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxRkY4RjZBMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3Ry
eS5jcHAgKi87IH07CiAJCUUxRkY4RjZEMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0
aG1SZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTFGRjhGNkIxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5Lmgg
Ki87IH07CiAJCUUzODgzODk4MUJBRDE0NUYwMEQ2MkVFMyAvKiBKU01vZHVsZUxvYWRlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg4Mzg5NDFC
QUQxNDVGMDBENjJFRTMgLyogSlNNb2R1bGVMb2FkZXIuY3BwICovOyB9OwpAQCAtMTAwMTQsNiAr
MTAwMTQsOSBAQAogCQk1NTVCODdFQTFDQUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VEZWNvZGVyQ0cu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTVCODdFQjFDQUFGMEFCMDAzNDk0
MjUgLyogSW1hZ2VEZWNvZGVyQ0cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW1hZ2VEZWNvZGVyQ0cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVENDA4Rjcx
QTdDNjMxODAwQzc4NDUwIC8qIFNWR0ltYWdlQ2xpZW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTVkdJbWFnZUNsaWVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTcwOUU4Q0ExRDQxM0NFMzAwMzI0NEFDIC8qIFdlYktpdFN1YnRsZUNyeXB0by5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLaXRTdWJ0bGVDcnlwdG8u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzA5RThDQjFENDEzQ0UzMDAzMjQ0
QUMgLyogV2ViS2l0U3VidGxlQ3J5cHRvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYktpdFN1YnRsZUNyeXB0by5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
NzA5RThDQzFENDEzQ0UzMDAzMjQ0QUMgLyogV2ViS2l0U3VidGxlQ3J5cHRvLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRTdWJ0bGVDcnlwdG8uaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1NzJBN0YyMDFDNkU1NzE5MDA5QzYxNDkgLyogU2ltdWxhdGVkQ2xpY2su
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2ltdWxhdGVkQ2xpY2suaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyQTdGMjIxQzZFNUE2NjAwOUM2MTQ5IC8qIFNp
bXVsYXRlZENsaWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNp
bXVsYXRlZENsaWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdFRjVFNUYx
RDIwQzgzOTAwMTcxRTYwIC8qIFRleHRDb2RlY1JlcGxhY2VtZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRDb2RlY1JlcGxhY2VtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMzQwOCw4ICsxMzQxMSw4IEBACiAJCUI1N0NCNTJDMTgyQTNFRUQw
MDc5QTY0NyAvKiBJbmxpbmVFbGVtZW50Qm94LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IElubGluZUVsZW1lbnRCb3guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCNTk1RkY0NjE4MjRDRUUzMDBGRjUxQ0QgLyogUmVuZGVySXRlcmF0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVySXRlcmF0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjU5Q0E1OUFGMTcwRDhGQUE1QjhDOUFEIC8qIE1hdGhNTFNj
cmlwdHNFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1h
dGhNTFNjcmlwdHNFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjU5
Q0E4NDlENDFFNkY2NUQ4MTE5N0FCIC8qIE1hdGhNTFNjcmlwdHNFbGVtZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhNTFNjcmlwdHNFbGVtZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1OUNBNTlBRjE3MEQ4RkFBNUI4Q0FCRSAvKiBNYXRoTUxQ
YWRkZWRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1h
dGhNTFBhZGRlZEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCNTlD
QTg0OUQ0MUU2RjY1RDgxMTk3QUIgLyogTWF0aE1MU2NyaXB0c0VsZW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF0aE1MU2NyaXB0c0VsZW1lbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjU5Q0E4NDlENDFFNkY2NUQ4MTE5OEJDIC8qIE1hdGhNTFBh
ZGRlZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF0aE1MUGFk
ZGVkRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNTlERDY5NzExOTAy
OUU1MDA3RTk2ODQgLyogSlNEYXRhYmFzZUNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTRGF0YWJhc2VDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCNTlERDY5ODExOTAyOUU1MDA3RTk2ODQgLyogSlNEYXRhYmFzZUNhbGxiYWNrLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRGF0YWJhc2VDYWxsYmFj
ay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDc4MiwxMiArMTQ3ODUsOSBA
QAogCQlFMUZFMTM3QzE4NEQyNzAyMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0tXTWFj
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRo
bUFFU19LV01hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkY1N0EyMEYw
MTI1NUIwMDg5MUVCQiAvKiBUaHJlYWRHbG9iYWxEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFRocmVhZEdsb2JhbERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTFGRjU3QTUwRjAxMjU2QjAwODkxRUJCIC8qIFRocmVhZEdsb2JhbERhdGEuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGhyZWFkR2xvYmFsRGF0YS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxRkY4RjVDMTgwNzM2NEIwMDEzMjY3NCAv
KiBTdWJ0bGVDcnlwdG8uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFN1YnRsZUNyeXB0by5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUUxRkY4RjVEMTgwNzQ0MjEwMDEzMjY3NCAvKiBTdWJ0bGVDcnlwdG8u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3VidGxlQ3J5cHRvLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFGRjhGNUUxODA3NDQyMTAwMTMyNjc0
IC8qIFN1YnRsZUNyeXB0by5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdWJ0
bGVDcnlwdG8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFGRjhGNjIxODA3NDVE
ODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTU3VidGxlQ3J5cHRvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJRTFGRjhGNjMxODA3NDVEODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3VidGxlQ3J5cHRvLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUUxRkY4RjY2MTgwNzQ2MDgwMDEzMjY3NCAvKiBKU1N1YnRsZUNy
eXB0b0N1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1N1
YnRsZUNyeXB0b0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRkY4
RjYyMTgwNzQ1RDgwMDEzMjY3NCAvKiBKU1dlYktpdFN1YnRsZUNyeXB0by5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdFN1YnRsZUNyeXB0by5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxRkY4RjYzMTgwNzQ1RDgwMDEzMjY3NCAvKiBK
U1dlYktpdFN1YnRsZUNyeXB0by5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1dlYktpdFN1YnRsZUNyeXB0by5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMUZG
OEY2NjE4MDc0NjA4MDAxMzI2NzQgLyogSlNXZWJLaXRTdWJ0bGVDcnlwdG9DdXN0b20uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXRTdWJ0bGVDcnlwdG9D
dXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUZGOEY2QTE4MERCNUJF
MDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMUZGOEY2QjE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRv
QWxnb3JpdGhtUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5
cHRvQWxnb3JpdGhtUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4
ODM4OTQxQkFEMTQ1RjAwRDYyRUUzIC8qIEpTTW9kdWxlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTW9kdWxlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTIyNzY0LDcgKzIyNzY0LDYgQEAKIAkJCQlCQzk4QTI3QzBDMEM5
OTUwMDA0QkVCRjcgLyogSlNTdHlsZVNoZWV0Q3VzdG9tLmNwcCAqLywKIAkJCQlBRDcyNkZFQzE2
RDlGNEI5MDAzQTRFNkQgLyogSlNTdHlsZVNoZWV0Q3VzdG9tLmggKi8sCiAJCQkJQTg0RUJENzcw
Q0I4Qzg5MjAwMDc5NjA5IC8qIEpTU3R5bGVTaGVldExpc3RDdXN0b20uY3BwICovLAotCQkJCUUx
RkY4RjY2MTgwNzQ2MDgwMDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAgKi8sCiAJ
CQkJMDhFNEZFNDUwRTJCRDQxNDAwRjRDQUUwIC8qIEpTU1ZHTGVuZ3RoQ3VzdG9tLmNwcCAqLywK
IAkJCQlCMkM5NkQ4QzBCM0FGMkI3MDA1RTgwRUMgLyogSlNTVkdQYXRoU2VnQ3VzdG9tLmNwcCAq
LywKIAkJCQkwN0UxMTcwNjE0ODlFQkVCMDBFQzVBQ0UgLyogSlNUZXh0VHJhY2tDdWVDdXN0b20u
Y3BwICovLApAQCAtMjI3ODAsNiArMjI3NzksNyBAQAogCQkJCUQzRjNEMzU5MUE2OUEzQjAwMDU5
RkMyQiAvKiBKU1dlYkdMMlJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwICovLAogCQkJCUQzRjNE
MzVBMUE2OUEzQjAwMDU5RkMyQiAvKiBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2VDdXN0b20u
Y3BwICovLAogCQkJCTQ5RUVEMTRDMTA1MTk3MUEwMDA5OUZBQiAvKiBKU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEN1c3RvbS5jcHAgKi8sCisJCQkJRTFGRjhGNjYxODA3NDYwODAwMTMyNjc0IC8qIEpT
V2ViS2l0U3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCAqLywKIAkJCQlCQzI3NUI3ODExQzVEMUMzMDBD
OTIwNkMgLyogSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAgKi8sCiAJCQkJRTFDQTVDQkIwRThDRENB
RjAwRThFRjkwIC8qIEpTV29ya2VyQ3VzdG9tLmNwcCAqLywKIAkJCQlFMTgyNThBQjBFRjNDRDcw
MDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAgKi8sCkBAIC0yMzc4OSw5
ICsyMzc4OSw5IEBACiAJCQkJRTE5NzI3MTUxODIwNTQ5RTAwNTkyRDUxIC8qIENyeXB0b0tleVR5
cGUuaCAqLywKIAkJCQlFMTcyQUY2RjE4MEYyODk1MDBGQkFEQjkgLyogQ3J5cHRvS2V5VXNhZ2Uu
aCAqLywKIAkJCQlFMThERjMzNDE4QUFGMTJDMDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0b0tl
eVdyYXAuaCAqLywKLQkJCQlFMUZGOEY1RDE4MDc0NDIxMDAxMzI2NzQgLyogU3VidGxlQ3J5cHRv
LmNwcCAqLywKLQkJCQlFMUZGOEY1RTE4MDc0NDIxMDAxMzI2NzQgLyogU3VidGxlQ3J5cHRvLmgg
Ki8sCi0JCQkJRTFGRjhGNUMxODA3MzY0QjAwMTMyNjc0IC8qIFN1YnRsZUNyeXB0by5pZGwgKi8s
CisJCQkJNTcwOUU4Q0ExRDQxM0NFMzAwMzI0NEFDIC8qIFdlYktpdFN1YnRsZUNyeXB0by5jcHAg
Ki8sCisJCQkJNTcwOUU4Q0IxRDQxM0NFMzAwMzI0NEFDIC8qIFdlYktpdFN1YnRsZUNyeXB0by5o
ICovLAorCQkJCTU3MDlFOENDMUQ0MTNDRTMwMDMyNDRBQyAvKiBXZWJLaXRTdWJ0bGVDcnlwdG8u
aWRsICovLAogCQkJKTsKIAkJCXBhdGggPSBjcnlwdG87CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpAQCAtMjM4MDMsOCArMjM4MDMsOCBAQAogCQkJCUUxNTdBOERGMTgxNzMzMUMwMDlGODIx
RCAvKiBKU0NyeXB0b0tleS5oICovLAogCQkJCUUxRjgwQjhCMTgzMTcyQjUwMDc4ODVDMyAvKiBK
U0NyeXB0b0tleVBhaXIuY3BwICovLAogCQkJCUUxRjgwQjhDMTgzMTcyQjUwMDc4ODVDMyAvKiBK
U0NyeXB0b0tleVBhaXIuaCAqLywKLQkJCQlFMUZGOEY2MjE4MDc0NUQ4MDAxMzI2NzQgLyogSlNT
dWJ0bGVDcnlwdG8uY3BwICovLAotCQkJCUUxRkY4RjYzMTgwNzQ1RDgwMDEzMjY3NCAvKiBKU1N1
YnRsZUNyeXB0by5oICovLAorCQkJCUUxRkY4RjYyMTgwNzQ1RDgwMDEzMjY3NCAvKiBKU1dlYktp
dFN1YnRsZUNyeXB0by5jcHAgKi8sCisJCQkJRTFGRjhGNjMxODA3NDVEODAwMTMyNjc0IC8qIEpT
V2ViS2l0U3VidGxlQ3J5cHRvLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IENyeXB0bzsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNjU3Miw2ICsyNjU3Miw4IEBACiAJCQkJQTg3MUQ0
NTYwQTEyN0NCQzAwQjEyQTY4IC8qIEhUTUxQbHVnSW5FbGVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQk0NDE1MjkyRTBFMUFFOEEwMDBDNEEyRDAgLyogSFRNTFBsdWdJbkltYWdlRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTdDQjAwQTE5MkI5QzAwQThFRjVGIC8qIEhUTUxQcmVF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk1NzBBOTlEQjFENDFBMkYzMDA0RUM2MzAgLyog
SlNXZWJLaXRTdWJ0bGVDcnlwdG8uaCBpbiBIZWFkZXJzICovLAorCQkJCTU3MDlFOENGMUQ0MTNE
OUEwMDMyNDRBQyAvKiBXZWJLaXRTdWJ0bGVDcnlwdG8uaCBpbiBIZWFkZXJzICovLAogCQkJCTk3
N0IzODczMTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MUHJlbG9hZFNjYW5uZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE0M0JGNTk5MTE0OTI5MEEwMEM2NDNDQSAvKiBIVE1MUHJvZ3Jlc3NFbGVtZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENGRjdBMzBBMTU2OTc4MDAwQTQyMzQgLyogSFRNTFF1
b3RlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzEzOCw3ICsyNzE0MCw2IEBACiAJCQkJ
QkNFMDEzOUIwQzBCRUYxODAwNDM4NjBBIC8qIEpTU3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQUQ3MjZGRUUxNkRBMTFCQzAwM0E0RTZEIC8qIEpTU3R5bGVTaGVldEN1c3RvbS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTg0RUJEODMwQ0I4Qzk3NzAwMDc5NjA5IC8qIEpTU3R5bGVTaGVl
dExpc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCUUxRkY4RjY1MTgwNzQ1RDgwMDEzMjY3NCAvKiBK
U1N1YnRsZUNyeXB0by5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIwMTExMDgwQUI3NzQwNTAwREIw
RTY4IC8qIEpTU1ZHQUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTI0RDkxMjkyMTNDQTk1
MUUwMEQyMTkxNSAvKiBKU1NWR0FsdEdseXBoRGVmRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNjUxNUVDOTIwRDk3MjNGRjAwNjNENDlBIC8qIEpTU1ZHQWx0R2x5cGhFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKQEAgLTI4MzY2LDcgKzI4MzY3LDYgQEAKIAkJCQkxQUU5NkE5MzFEMUEwRERE
MDBCODY3NjggLyogSlNBcHBsZVBheVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUE4RjZCMDIwREI1MzAwNjAwMURCNzk0IC8qIFN1YnN0aXR1dGVSZXNv
dXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFOTZBOEIxRDFBMERERDAwQjg2NzY4IC8qIEpT
QXBwbGVQYXlQYXltZW50QXV0aG9yaXplZEV2ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlFMUZG
OEY2MDE4MDc0NDIxMDAxMzI2NzQgLyogU3VidGxlQ3J5cHRvLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5M0IyRDgxNjBGOTkyMEQyMDA2QUU2QjIgLyogU3VkZGVuVGVybWluYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk3QzA3ODUwMTE2NUQ1QkUwMDNBMzJFRiAvKiBTdWZmaXhUcmVlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5NzYyN0I5ODE0RkI1NDI0MDAyQ0RDQTEgLyogU3VwcGxlbWVudGFi
bGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjkzMTMsNiArMjkzMTMsOCBAQAogCQkJaXNhID0gUEJY
U291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJ
ZmlsZXMgPSAoCisJCQkJNTcwOUU4Q0UxRDQxM0Q1QjAwMzI0NEFDIC8qIEpTV2ViS2l0U3VidGxl
Q3J5cHRvQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTU3MDlFOENEMUQ0MTNENDcwMDMy
NDRBQyAvKiBXZWJLaXRTdWJ0bGVDcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFFMUIx
RDAwRkY1OTg2OTAwNTc2QjNCIC8qIEFic3RyYWN0V29ya2VyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTM3RjU3QUI5MUE1MDcyNjkwMDg3NkY5OCAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzdGNTdBQkExQTUwNzI2RjAwODc2Rjk4IC8qIEFjY2Vzc2li
aWxpdHlBUklBR3JpZENlbGwuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDMzNiw2ICszMDMzOCw3
IEBACiAJCQkJMDcwNzU2OEIxNDIyNjJENjAwNDE0MTYxIC8qIEhUTUxUcmFja0VsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJOTc3QjM3MjUxMjI4NzIxNzAwQjgxRkY4IC8qIEhUTUxUcmVl
QnVpbGRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEVBNzlGMzBBMTkxNkRGMDBBOEVGNUYg
LyogSFRNTFVMaXN0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1NzBBOTlEQTFENDE3
NDA4MDA0RUM2MzAgLyogSlNXZWJLaXRTdWJ0bGVDcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRTQ0NjEzQUEwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxWaWRlb0VsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJODM5QUFGRUMxQTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBCOEM1NkQ0MEYyODYyN0YwMDA1MDJFMSAvKiBIVFRQ
SGVhZGVyTWFwLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzA5NDksOCArMzA5NTIsNiBAQAogCQkJ
CUJDOThBMjdEMEMwQzk5NTAwMDRCRUJGNyAvKiBKU1N0eWxlU2hlZXRDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTg0RUJEODQwQ0I4Qzk3NzAwMDc5NjA5IC8qIEpTU3R5bGVTaGVldExp
c3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg0RUJENzgwQ0I4Qzg5MjAwMDc5NjA5IC8qIEpT
U3R5bGVTaGVldExpc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRTFGRjhGNjQxODA3
NDVEODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUUx
RkY4RjY4MTgwNzQ2MDgwMDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCMjAxMTEwNzBBQjc3NDA1MDBEQjBFNjggLyogSlNTVkdBRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyNEQ5MTI5MTEzQ0E5NTFFMDBEMjE5MTUgLyogSlNTVkdB
bHRHbHlwaERlZkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjUxNUVDOTEwRDk3MjNG
RjAwNjNENDlBIC8qIEpTU1ZHQWx0R2x5cGhFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MzIwMDcsNyArMzIwMDgsNiBAQAogCQkJCTkzRTIyN0U0MEFGNTg5QUQwMEQ0ODMyNCAvKiBTdWJy
ZXNvdXJjZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3RTM3RUYyRTEzMzkyMDg4MDBC
MjkyNTAgLyogU3VicmVzb3VyY2VMb2FkZXJDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3RThG
QURDNDE5OUE5NUIxMDA3MTQ5NjggLyogU3VicmVzb3VyY2VMb2FkZXJDb2NvYS5tbSBpbiBTb3Vy
Y2VzICovLAotCQkJCUUxRkY4RjVGMTgwNzQ0MjEwMDEzMjY3NCAvKiBTdWJ0bGVDcnlwdG8uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCMkQ4MTgwRjk5MjBFRTAwNkFFNkIyIC8qIFN1ZGRlblRl
cm1pbmF0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMDg3NTU4QzUxM0I0QTU3RDAwRjQ5MzA3
IC8qIFN1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk2MkMxMjE3QzExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3VidGxl
Q3J5cHRvQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5
cHRvQ3VzdG9tLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjllMTU3OGRjY2I0
ZGY3NWNkNGE4NTA5OGE5MGI4MzY0N2Y0Mzg4YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N1YnRsZUNy
eXB0b0N1c3RvbS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4MDUgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU1N1YnRsZUNyeXB0by5oIgotCi0j
aWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0KLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG0uaCIK
LSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmgiCi0jaW5jbHVkZSAiQ3J5cHRv
QWxnb3JpdGhtUmVnaXN0cnkuaCIKLSNpbmNsdWRlICJDcnlwdG9LZXlEYXRhLmgiCi0jaW5jbHVk
ZSAiQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0j
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgotI2luY2x1ZGUgIkpTQ3J5cHRvQWxnb3JpdGhtRGlj
dGlvbmFyeS5oIgotI2luY2x1ZGUgIkpTQ3J5cHRvS2V5LmgiCi0jaW5jbHVkZSAiSlNDcnlwdG9L
ZXlQYWlyLmgiCi0jaW5jbHVkZSAiSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLLmgiCi0jaW5j
bHVkZSAiSlNDcnlwdG9PcGVyYXRpb25EYXRhLmgiCi0jaW5jbHVkZSAiSlNET01Qcm9taXNlLmgi
Ci0jaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWVudW0gY2xhc3MgQ3J5cHRvS2V5Rm9ybWF0IHsKLSAgICAv
LyBBbiB1bmZvcm1hdHRlZCBzZXF1ZW5jZSBvZiBieXRlcy4gSW50ZW5kZWQgZm9yIHNlY3JldCBr
ZXlzLgotICAgIFJhdywKLQotICAgIC8vIFRoZSBERVIgZW5jb2Rpbmcgb2YgdGhlIFByaXZhdGVL
ZXlJbmZvIHN0cnVjdHVyZSBmcm9tIFJGQyA1MjA4LgotICAgIFBLQ1M4LAotCi0gICAgLy8gVGhl
IERFUiBlbmNvZGluZyBvZiB0aGUgU3ViamVjdFB1YmxpY0tleUluZm8gc3RydWN0dXJlIGZyb20g
UkZDIDUyODAuCi0gICAgU1BLSSwKLQotICAgIC8vIFRoZSBrZXkgaXMgcmVwcmVzZW50ZWQgYXMg
SlNPTiBhY2NvcmRpbmcgdG8gdGhlIEpTT04gV2ViIEtleSBmb3JtYXQuCi0gICAgSldLCi19Owot
Ci1zdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFs
dWUoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyIGFsZ29yaXRobUlkZW50aWZpZXI7Ci0gICAgaWYgKCFKU0NyeXB0b0FsZ29y
aXRobURpY3Rpb25hcnk6OmdldEFsZ29yaXRobUlkZW50aWZpZXIoJnN0YXRlLCB2YWx1ZSwgYWxn
b3JpdGhtSWRlbnRpZmllcikpIHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigp
KTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgYXV0byByZXN1bHQgPSBD
cnlwdG9BbGdvcml0aG1SZWdpc3RyeTo6c2luZ2xldG9uKCkuY3JlYXRlKGFsZ29yaXRobUlkZW50
aWZpZXIpOwotICAgIGlmICghcmVzdWx0KQotICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRl
LCBOT1RfU1VQUE9SVEVEX0VSUik7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotc3RhdGljIGJv
b2wgY3J5cHRvS2V5Rm9ybWF0RnJvbUpTVmFsdWUoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2
YWx1ZSwgQ3J5cHRvS2V5Rm9ybWF0JiByZXN1bHQpCi17Ci0gICAgU3RyaW5nIGtleUZvcm1hdFN0
cmluZyA9IHZhbHVlLnRvU3RyaW5nKCZzdGF0ZSktPnZhbHVlKCZzdGF0ZSk7Ci0gICAgaWYgKHN0
YXRlLmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKGtleUZv
cm1hdFN0cmluZyA9PSAicmF3IikKLSAgICAgICAgcmVzdWx0ID0gQ3J5cHRvS2V5Rm9ybWF0OjpS
YXc7Ci0gICAgZWxzZSBpZiAoa2V5Rm9ybWF0U3RyaW5nID09ICJwa2NzOCIpCi0gICAgICAgIHJl
c3VsdCA9IENyeXB0b0tleUZvcm1hdDo6UEtDUzg7Ci0gICAgZWxzZSBpZiAoa2V5Rm9ybWF0U3Ry
aW5nID09ICJzcGtpIikKLSAgICAgICAgcmVzdWx0ID0gQ3J5cHRvS2V5Rm9ybWF0OjpTUEtJOwot
ICAgIGVsc2UgaWYgKGtleUZvcm1hdFN0cmluZyA9PSAiandrIikKLSAgICAgICAgcmVzdWx0ID0g
Q3J5cHRvS2V5Rm9ybWF0OjpKV0s7Ci0gICAgZWxzZSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9y
KCZzdGF0ZSwgQVNDSUlMaXRlcmFsKCJVbmtub3duIGtleSBmb3JtYXQiKSk7Ci0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXN0YXRpYyBib29sIGNy
eXB0b0tleVVzYWdlc0Zyb21KU1ZhbHVlKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUs
IENyeXB0b0tleVVzYWdlJiByZXN1bHQpCi17Ci0gICAgaWYgKCFpc0pTQXJyYXkodmFsdWUpKSB7
Ci0gICAgICAgIHRocm93VHlwZUVycm9yKCZzdGF0ZSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICB9Ci0KLSAgICByZXN1bHQgPSAwOwotCi0gICAgSlNBcnJheSogYXJyYXkgPSBhc0FycmF5
KHZhbHVlKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFycmF5LT5sZW5ndGgoKTsgKytp
KSB7Ci0gICAgICAgIEpTVmFsdWUgZWxlbWVudCA9IGFycmF5LT5nZXRJbmRleCgmc3RhdGUsIGkp
OwotICAgICAgICBTdHJpbmcgdXNhZ2VTdHJpbmcgPSBlbGVtZW50LnRvU3RyaW5nKCZzdGF0ZSkt
PnZhbHVlKCZzdGF0ZSk7Ci0gICAgICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKLSAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKHVzYWdlU3RyaW5nID09ICJlbmNyeXB0
IikKLSAgICAgICAgICAgIHJlc3VsdCB8PSBDcnlwdG9LZXlVc2FnZUVuY3J5cHQ7Ci0gICAgICAg
IGVsc2UgaWYgKHVzYWdlU3RyaW5nID09ICJkZWNyeXB0IikKLSAgICAgICAgICAgIHJlc3VsdCB8
PSBDcnlwdG9LZXlVc2FnZURlY3J5cHQ7Ci0gICAgICAgIGVsc2UgaWYgKHVzYWdlU3RyaW5nID09
ICJzaWduIikKLSAgICAgICAgICAgIHJlc3VsdCB8PSBDcnlwdG9LZXlVc2FnZVNpZ247Ci0gICAg
ICAgIGVsc2UgaWYgKHVzYWdlU3RyaW5nID09ICJ2ZXJpZnkiKQotICAgICAgICAgICAgcmVzdWx0
IHw9IENyeXB0b0tleVVzYWdlVmVyaWZ5OwotICAgICAgICBlbHNlIGlmICh1c2FnZVN0cmluZyA9
PSAiZGVyaXZlS2V5IikKLSAgICAgICAgICAgIHJlc3VsdCB8PSBDcnlwdG9LZXlVc2FnZURlcml2
ZUtleTsKLSAgICAgICAgZWxzZSBpZiAodXNhZ2VTdHJpbmcgPT0gImRlcml2ZUJpdHMiKQotICAg
ICAgICAgICAgcmVzdWx0IHw9IENyeXB0b0tleVVzYWdlRGVyaXZlQml0czsKLSAgICAgICAgZWxz
ZSBpZiAodXNhZ2VTdHJpbmcgPT0gIndyYXBLZXkiKQotICAgICAgICAgICAgcmVzdWx0IHw9IENy
eXB0b0tleVVzYWdlV3JhcEtleTsKLSAgICAgICAgZWxzZSBpZiAodXNhZ2VTdHJpbmcgPT0gInVu
d3JhcEtleSIpCi0gICAgICAgICAgICByZXN1bHQgfD0gQ3J5cHRvS2V5VXNhZ2VVbndyYXBLZXk7
Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCi1KU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjpl
bmNyeXB0KEV4ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQo
KSA8IDMpCi0gICAgICAgIHJldHVybiBzdGF0ZS52bSgpLnRocm93RXhjZXB0aW9uKCZzdGF0ZSwg
Y3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7Ci0KLSAgICBhdXRvIGFsZ29y
aXRobSA9IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRB
cmd1bWVudCgwKSk7Ci0gICAgaWYgKCFhbGdvcml0aG0pIHsKLSAgICAgICAgQVNTRVJUKHN0YXRl
LmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQot
Ci0gICAgYXV0byBwYXJhbWV0ZXJzID0gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVh
dGVQYXJhbWV0ZXJzRm9yRW5jcnlwdCgmc3RhdGUsIGFsZ29yaXRobS0+aWRlbnRpZmllcigpLCBz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7Ci0gICAgaWYgKCFwYXJhbWV0ZXJzKSB7Ci0gICAg
ICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwotICAgIH0KLQotICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5
Ojp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpOwotICAgIGlmICgha2V5KQot
ICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlKTsKLQotICAgIGlmICgha2V5LT5h
bGxvd3MoQ3J5cHRvS2V5VXNhZ2VFbmNyeXB0KSkgewotICAgICAgICB3cmFwcGVkKCkuZG9jdW1l
bnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6
RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiS2V5IHVzYWdlcyBkbyBub3QgaW5jbHVkZSAnZW5jcnlwdCci
KSk7Ci0gICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIE5PVF9TVVBQT1JURURfRVJSKTsK
LSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgQ3J5cHRvT3BlcmF0
aW9uRGF0YSBkYXRhOwotICAgIGlmICghY3J5cHRvT3BlcmF0aW9uRGF0YUZyb21KU1ZhbHVlKCZz
dGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMiksIGRhdGEpKSB7Ci0gICAgICAgIEFTU0VS
VChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwot
ICAgIH0KLQotICAgIAotICAgIEpTUHJvbWlzZURlZmVycmVkKiBwcm9taXNlRGVmZXJyZWQgPSBK
U1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCkpOwotICAgIERl
ZmVycmVkV3JhcHBlciB3cmFwcGVyKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHByb21pc2VEZWZl
cnJlZCk7Ci0gICAgYXV0byBzdWNjZXNzQ2FsbGJhY2sgPSBbd3JhcHBlcl0oY29uc3QgVmVjdG9y
PHVpbnQ4X3Q+JiByZXN1bHQpIG11dGFibGUgewotICAgICAgICBmdWxmaWxsUHJvbWlzZVdpdGhB
cnJheUJ1ZmZlcih3cmFwcGVyLCByZXN1bHQuZGF0YSgpLCByZXN1bHQuc2l6ZSgpKTsKLSAgICB9
OwotICAgIGF1dG8gZmFpbHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAg
ICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOwotICAgIH07Ci0KLSAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKLSAgICBhbGdvcml0aG0tPmVuY3J5cHQoKnBhcmFtZXRlcnMsICprZXksIGRhdGEs
IFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7
Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIGVjKTsKLSAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHByb21pc2VE
ZWZlcnJlZC0+cHJvbWlzZSgpOwotfQotCi1KU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjpkZWNyeXB0
KEV4ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDMp
Ci0gICAgICAgIHJldHVybiBzdGF0ZS52bSgpLnRocm93RXhjZXB0aW9uKCZzdGF0ZSwgY3JlYXRl
Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7Ci0KLSAgICBhdXRvIGFsZ29yaXRobSA9
IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVu
dCgwKSk7Ci0gICAgaWYgKCFhbGdvcml0aG0pIHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4
Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAg
YXV0byBwYXJhbWV0ZXJzID0gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJh
bWV0ZXJzRm9yRGVjcnlwdCgmc3RhdGUsIGFsZ29yaXRobS0+aWRlbnRpZmllcigpLCBzdGF0ZS51
bmNoZWNrZWRBcmd1bWVudCgwKSk7Ci0gICAgaWYgKCFwYXJhbWV0ZXJzKSB7Ci0gICAgICAgIEFT
U0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwotICAgIH0KLQotICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b1dy
YXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpOwotICAgIGlmICgha2V5KQotICAgICAg
ICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlKTsKLQotICAgIGlmICgha2V5LT5hbGxvd3Mo
Q3J5cHRvS2V5VXNhZ2VEZWNyeXB0KSkgewotICAgICAgICB3cmFwcGVkKCkuZG9jdW1lbnQoKS0+
YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3Is
IEFTQ0lJTGl0ZXJhbCgiS2V5IHVzYWdlcyBkbyBub3QgaW5jbHVkZSAnZGVjcnlwdCciKSk7Ci0g
ICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIE5PVF9TVVBQT1JURURfRVJSKTsKLSAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgQ3J5cHRvT3BlcmF0aW9uRGF0
YSBkYXRhOwotICAgIGlmICghY3J5cHRvT3BlcmF0aW9uRGF0YUZyb21KU1ZhbHVlKCZzdGF0ZSwg
c3RhdGUudW5jaGVja2VkQXJndW1lbnQoMiksIGRhdGEpKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0
ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0K
LQotICAgIEpTUHJvbWlzZURlZmVycmVkKiBwcm9taXNlRGVmZXJyZWQgPSBKU1Byb21pc2VEZWZl
cnJlZDo6Y3JlYXRlKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCkpOwotICAgIERlZmVycmVkV3JhcHBl
ciB3cmFwcGVyKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHByb21pc2VEZWZlcnJlZCk7Ci0gICAg
YXV0byBzdWNjZXNzQ2FsbGJhY2sgPSBbd3JhcHBlcl0oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBy
ZXN1bHQpIG11dGFibGUgewotICAgICAgICBmdWxmaWxsUHJvbWlzZVdpdGhBcnJheUJ1ZmZlcih3
cmFwcGVyLCByZXN1bHQuZGF0YSgpLCByZXN1bHQuc2l6ZSgpKTsKLSAgICB9OwotICAgIGF1dG8g
ZmFpbHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHdyYXBwZXIu
cmVqZWN0KG51bGxwdHIpOwotICAgIH07Ci0KLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAg
ICBhbGdvcml0aG0tPmRlY3J5cHQoKnBhcmFtZXRlcnMsICprZXksIGRhdGEsIFdURk1vdmUoc3Vj
Y2Vzc0NhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7Ci0gICAgaWYgKGVj
KSB7Ci0gICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIGVjKTsKLSAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHByb21pc2VEZWZlcnJlZC0+cHJv
bWlzZSgpOwotfQotCi1KU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjpzaWduKEV4ZWNTdGF0ZSYgc3Rh
dGUpCi17Ci0gICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDMpCi0gICAgICAgIHJldHVy
biBzdGF0ZS52bSgpLnRocm93RXhjZXB0aW9uKCZzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1l
bnRzRXJyb3IoJnN0YXRlKSk7Ci0KLSAgICBhdXRvIGFsZ29yaXRobSA9IGNyZWF0ZUFsZ29yaXRo
bUZyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7Ci0gICAgaWYg
KCFhbGdvcml0aG0pIHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgYXV0byBwYXJhbWV0ZXJz
ID0gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yU2lnbigm
c3RhdGUsIGFsZ29yaXRobS0+aWRlbnRpZmllcigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgw
KSk7Ci0gICAgaWYgKCFwYXJhbWV0ZXJzKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNl
cHRpb24oKSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIFJl
ZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQoc3RhdGUudW5jaGVj
a2VkQXJndW1lbnQoMSkpOwotICAgIGlmICgha2V5KQotICAgICAgICByZXR1cm4gdGhyb3dUeXBl
RXJyb3IoJnN0YXRlKTsKLQotICAgIGlmICgha2V5LT5hbGxvd3MoQ3J5cHRvS2V5VXNhZ2VTaWdu
KSkgewotICAgICAgICB3cmFwcGVkKCkuZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVz
c2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiS2V5IHVz
YWdlcyBkbyBub3QgaW5jbHVkZSAnc2lnbiciKSk7Ci0gICAgICAgIHNldERPTUV4Y2VwdGlvbigm
c3RhdGUsIE5PVF9TVVBQT1JURURfRVJSKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
Ci0gICAgfQotCi0gICAgQ3J5cHRvT3BlcmF0aW9uRGF0YSBkYXRhOwotICAgIGlmICghY3J5cHRv
T3BlcmF0aW9uRGF0YUZyb21KU1ZhbHVlKCZzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MiksIGRhdGEpKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIEpTUHJvbWlzZURlZmVycmVk
KiBwcm9taXNlRGVmZXJyZWQgPSBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKCZzdGF0ZSwgZ2xv
YmFsT2JqZWN0KCkpOwotICAgIERlZmVycmVkV3JhcHBlciB3cmFwcGVyKCZzdGF0ZSwgZ2xvYmFs
T2JqZWN0KCksIHByb21pc2VEZWZlcnJlZCk7Ci0gICAgYXV0byBzdWNjZXNzQ2FsbGJhY2sgPSBb
d3JhcHBlcl0oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiByZXN1bHQpIG11dGFibGUgewotICAgICAg
ICBmdWxmaWxsUHJvbWlzZVdpdGhBcnJheUJ1ZmZlcih3cmFwcGVyLCByZXN1bHQuZGF0YSgpLCBy
ZXN1bHQuc2l6ZSgpKTsKLSAgICB9OwotICAgIGF1dG8gZmFpbHVyZUNhbGxiYWNrID0gW3dyYXBw
ZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOwotICAgIH07
Ci0KLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBhbGdvcml0aG0tPnNpZ24oKnBhcmFt
ZXRlcnMsICprZXksIGRhdGEsIFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgV1RGTW92ZShmYWls
dXJlQ2FsbGJhY2spLCBlYyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIHNldERPTUV4Y2VwdGlv
bigmc3RhdGUsIGVjKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0g
ICAgcmV0dXJuIHByb21pc2VEZWZlcnJlZC0+cHJvbWlzZSgpOwotfQotCi1KU1ZhbHVlIEpTU3Vi
dGxlQ3J5cHRvOjp2ZXJpZnkoRXhlY1N0YXRlJiBzdGF0ZSkKLXsKLSAgICBpZiAoc3RhdGUuYXJn
dW1lbnRDb3VudCgpIDwgNCkKLSAgICAgICAgcmV0dXJuIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRp
b24oJnN0YXRlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKLQotICAg
IGF1dG8gYWxnb3JpdGhtID0gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRl
LnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKLSAgICBpZiAoIWFsZ29yaXRobSkgewotICAgICAgICBB
U1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKLSAgICB9Ci0KLSAgICBhdXRvIHBhcmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rp
b25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JWZXJpZnkoJnN0YXRlLCBhbGdvcml0aG0tPmlkZW50
aWZpZXIoKSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwotICAgIGlmICghcGFyYW1ldGVy
cykgewotICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBK
U0NyeXB0b0tleTo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKLSAgICBp
ZiAoIWtleSkKLSAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSk7Ci0KLSAgICBp
ZiAoIWtleS0+YWxsb3dzKENyeXB0b0tleVVzYWdlVmVyaWZ5KSkgewotICAgICAgICB3cmFwcGVk
KCkuZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3Nh
Z2VMZXZlbDo6RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiS2V5IHVzYWdlcyBkbyBub3QgaW5jbHVkZSAn
dmVyaWZ5JyIpKTsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgTk9UX1NVUFBPUlRF
RF9FUlIpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBDcnlw
dG9PcGVyYXRpb25EYXRhIHNpZ25hdHVyZTsKLSAgICBpZiAoIWNyeXB0b09wZXJhdGlvbkRhdGFG
cm9tSlNWYWx1ZSgmc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpLCBzaWduYXR1cmUp
KSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIENyeXB0b09wZXJhdGlvbkRhdGEgZGF0YTsK
LSAgICBpZiAoIWNyeXB0b09wZXJhdGlvbkRhdGFGcm9tSlNWYWx1ZSgmc3RhdGUsIHN0YXRlLnVu
Y2hlY2tlZEFyZ3VtZW50KDMpLCBkYXRhKSkgewotICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhj
ZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBK
U1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZURlZmVycmVkID0gSlNQcm9taXNlRGVmZXJyZWQ6OmNy
ZWF0ZSgmc3RhdGUsIGdsb2JhbE9iamVjdCgpKTsKLSAgICBEZWZlcnJlZFdyYXBwZXIgd3JhcHBl
cigmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCBwcm9taXNlRGVmZXJyZWQpOwotICAgIGF1dG8gc3Vj
Y2Vzc0NhbGxiYWNrID0gW3dyYXBwZXJdKGJvb2wgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAg
d3JhcHBlci5yZXNvbHZlKHJlc3VsdCk7Ci0gICAgfTsKLSAgICBhdXRvIGZhaWx1cmVDYWxsYmFj
ayA9IFt3cmFwcGVyXSgpIG11dGFibGUgewotICAgICAgICB3cmFwcGVyLnJlamVjdChudWxscHRy
KTsKLSAgICB9OwotCi0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgYWxnb3JpdGhtLT52
ZXJpZnkoKnBhcmFtZXRlcnMsICprZXksIHNpZ25hdHVyZSwgZGF0YSwgV1RGTW92ZShzdWNjZXNz
Q2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKLSAgICBpZiAoZWMpIHsK
LSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgZWMpOwotICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcHJvbWlzZURlZmVycmVkLT5wcm9taXNl
KCk7Ci19Ci0KLUpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OmRpZ2VzdChFeGVjU3RhdGUmIHN0YXRl
KQotewotICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPCAyKQotICAgICAgICByZXR1cm4g
c3RhdGUudm0oKS50aHJvd0V4Y2VwdGlvbigmc3RhdGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKCZzdGF0ZSkpOwotCi0gICAgYXV0byBhbGdvcml0aG0gPSBjcmVhdGVBbGdvcml0aG1G
cm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwotICAgIGlmICgh
YWxnb3JpdGhtKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIGF1dG8gcGFyYW1ldGVycyA9
IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRpZ2VzdCgm
c3RhdGUsIGFsZ29yaXRobS0+aWRlbnRpZmllcigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgw
KSk7Ci0gICAgaWYgKCFwYXJhbWV0ZXJzKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNl
cHRpb24oKSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIENy
eXB0b09wZXJhdGlvbkRhdGEgZGF0YTsKLSAgICBpZiAoIWNyeXB0b09wZXJhdGlvbkRhdGFGcm9t
SlNWYWx1ZSgmc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLCBkYXRhKSkgewotICAg
ICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKLSAgICB9Ci0KLSAgICBKU1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZURlZmVycmVk
ID0gSlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSgmc3RhdGUsIGdsb2JhbE9iamVjdCgpKTsKLSAg
ICBEZWZlcnJlZFdyYXBwZXIgd3JhcHBlcigmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCBwcm9taXNl
RGVmZXJyZWQpOwotICAgIGF1dG8gc3VjY2Vzc0NhbGxiYWNrID0gW3dyYXBwZXJdKGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgZnVsZmlsbFByb21pc2VX
aXRoQXJyYXlCdWZmZXIod3JhcHBlciwgcmVzdWx0LmRhdGEoKSwgcmVzdWx0LnNpemUoKSk7Ci0g
ICAgfTsKLSAgICBhdXRvIGZhaWx1cmVDYWxsYmFjayA9IFt3cmFwcGVyXSgpIG11dGFibGUgewot
ICAgICAgICB3cmFwcGVyLnJlamVjdChudWxscHRyKTsKLSAgICB9OwotCi0gICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7Ci0gICAgYWxnb3JpdGhtLT5kaWdlc3QoKnBhcmFtZXRlcnMsIGRhdGEsIFdU
Rk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7Ci0g
ICAgaWYgKGVjKSB7Ci0gICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIGVjKTsKLSAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHByb21pc2VEZWZl
cnJlZC0+cHJvbWlzZSgpOwotfQotCi1KU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjpnZW5lcmF0ZUtl
eShFeGVjU3RhdGUmIHN0YXRlKQotewotICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPCAx
KQotICAgICAgICByZXR1cm4gc3RhdGUudm0oKS50aHJvd0V4Y2VwdGlvbigmc3RhdGUsIGNyZWF0
ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwotCi0gICAgYXV0byBhbGdvcml0aG0g
PSBjcmVhdGVBbGdvcml0aG1Gcm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1l
bnQoMCkpOwotICAgIGlmICghYWxnb3JpdGhtKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0ZS5oYWRF
eGNlcHRpb24oKSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAg
IGF1dG8gcGFyYW1ldGVycyA9IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFy
YW1ldGVyc0ZvckdlbmVyYXRlS2V5KCZzdGF0ZSwgYWxnb3JpdGhtLT5pZGVudGlmaWVyKCksIHN0
YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKLSAgICBpZiAoIXBhcmFtZXRlcnMpIHsKLSAgICAg
ICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7Ci0gICAgfQotCi0gICAgYm9vbCBleHRyYWN0YWJsZSA9IGZhbHNlOwotICAgIGlmIChz
dGF0ZS5hcmd1bWVudENvdW50KCkgPj0gMikgewotICAgICAgICBleHRyYWN0YWJsZSA9IHN0YXRl
LnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvQm9vbGVhbigmc3RhdGUpOwotICAgICAgICBpZiAoc3Rh
dGUuaGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAg
ICB9Ci0KLSAgICBDcnlwdG9LZXlVc2FnZSBrZXlVc2FnZXMgPSAwOwotICAgIGlmIChzdGF0ZS5h
cmd1bWVudENvdW50KCkgPj0gMykgewotICAgICAgICBpZiAoIWNyeXB0b0tleVVzYWdlc0Zyb21K
U1ZhbHVlKHN0YXRlLCBzdGF0ZS5hcmd1bWVudCgyKSwga2V5VXNhZ2VzKSkgewotICAgICAgICAg
ICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgSlNQcm9taXNlRGVmZXJyZWQqIHBy
b21pc2VEZWZlcnJlZCA9IEpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoJnN0YXRlLCBnbG9iYWxP
YmplY3QoKSk7Ci0gICAgRGVmZXJyZWRXcmFwcGVyIHdyYXBwZXIoJnN0YXRlLCBnbG9iYWxPYmpl
Y3QoKSwgcHJvbWlzZURlZmVycmVkKTsKLSAgICBhdXRvIHN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFw
cGVyXShDcnlwdG9LZXkqIGtleSwgQ3J5cHRvS2V5UGFpcioga2V5UGFpcikgbXV0YWJsZSB7Ci0g
ICAgICAgIEFTU0VSVChrZXkgfHwga2V5UGFpcik7Ci0gICAgICAgIEFTU0VSVCgha2V5IHx8ICFr
ZXlQYWlyKTsKLSAgICAgICAgaWYgKGtleSkKLSAgICAgICAgICAgIHdyYXBwZXIucmVzb2x2ZShr
ZXkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB3cmFwcGVyLnJlc29sdmUoa2V5UGFpcik7
Ci0gICAgfTsKLSAgICBhdXRvIGZhaWx1cmVDYWxsYmFjayA9IFt3cmFwcGVyXSgpIG11dGFibGUg
ewotICAgICAgICB3cmFwcGVyLnJlamVjdChudWxscHRyKTsKLSAgICB9OwotCi0gICAgRXhjZXB0
aW9uQ29kZSBlYyA9IDA7Ci0gICAgYWxnb3JpdGhtLT5nZW5lcmF0ZUtleSgqcGFyYW1ldGVycywg
ZXh0cmFjdGFibGUsIGtleVVzYWdlcywgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3Zl
KGZhaWx1cmVDYWxsYmFjayksIGVjKTsKLSAgICBpZiAoZWMpIHsKLSAgICAgICAgc2V0RE9NRXhj
ZXB0aW9uKCZzdGF0ZSwgZWMpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9
Ci0KLSAgICByZXR1cm4gcHJvbWlzZURlZmVycmVkLT5wcm9taXNlKCk7Ci19Ci0KLXN0YXRpYyB2
b2lkIGltcG9ydEtleShFeGVjU3RhdGUmIHN0YXRlLCBDcnlwdG9LZXlGb3JtYXQga2V5Rm9ybWF0
LCBDcnlwdG9PcGVyYXRpb25EYXRhIGRhdGEsIFJlZlB0cjxDcnlwdG9BbGdvcml0aG0+IGFsZ29y
aXRobSwgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IHBhcmFtZXRlcnMsIGJvb2wg
ZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIGtleVVzYWdlcywgQ3J5cHRvQWxnb3JpdGhtOjpL
ZXlDYWxsYmFjayBjYWxsYmFjaywgQ3J5cHRvQWxnb3JpdGhtOjpWb2lkQ2FsbGJhY2sgZmFpbHVy
ZUNhbGxiYWNrKQotewotICAgIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9LZXlTZXJpYWxpemF0aW9u
PiBrZXlTZXJpYWxpemF0aW9uOwotICAgIHN3aXRjaCAoa2V5Rm9ybWF0KSB7Ci0gICAgY2FzZSBD
cnlwdG9LZXlGb3JtYXQ6OlJhdzoKLSAgICAgICAga2V5U2VyaWFsaXphdGlvbiA9IENyeXB0b0tl
eVNlcmlhbGl6YXRpb25SYXc6OmNyZWF0ZShkYXRhKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBDcnlwdG9LZXlGb3JtYXQ6OkpXSzogewotICAgICAgICBTdHJpbmcgandrU3RyaW5nID0gU3Ry
aW5nOjpmcm9tVVRGOChkYXRhLmZpcnN0LCBkYXRhLnNlY29uZCk7Ci0gICAgICAgIGlmIChqd2tT
dHJpbmcuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgQVND
SUlMaXRlcmFsKCJKV0sgSlNPTiBzZXJpYWxpemF0aW9uIGlzIG5vdCB2YWxpZCBVVEYtOCIpKTsK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBrZXlTZXJpYWxpemF0aW9u
ID0gc3RkOjptYWtlX3VuaXF1ZTxKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0s+KCZzdGF0ZSwg
andrU3RyaW5nKTsKLSAgICAgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgZGVmYXVsdDoKLSAgICAgICAg
dGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBBU0NJSUxpdGVyYWwoIlVuc3VwcG9ydGVkIGtleSBmb3Jt
YXQgZm9yIGltcG9ydCIpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIEFTU0VSVChr
ZXlTZXJpYWxpemF0aW9uKTsKLQotICAgIE9wdGlvbmFsPENyeXB0b0FsZ29yaXRobVBhaXI+IHJl
Y29uY2lsZWRSZXN1bHQgPSBrZXlTZXJpYWxpemF0aW9uLT5yZWNvbmNpbGVBbGdvcml0aG0oYWxn
b3JpdGhtLmdldCgpLCBwYXJhbWV0ZXJzLmdldCgpKTsKLSAgICBpZiAoIXJlY29uY2lsZWRSZXN1
bHQpIHsKLSAgICAgICAgaWYgKCFzdGF0ZS5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHRo
cm93VHlwZUVycm9yKCZzdGF0ZSwgQVNDSUlMaXRlcmFsKCJBbGdvcml0aG0gc3BlY2lmaWVkIGlu
IGtleSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIG9uZSBwYXNzZWQgdG8gaW1wb3J0S2V5IGFzIGFy
Z3VtZW50IikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmIChzdGF0ZS5oYWRFeGNl
cHRpb24oKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYWxnb3JpdGhtID0gcmVjb25jaWxlZFJl
c3VsdC0+YWxnb3JpdGhtOwotICAgIHBhcmFtZXRlcnMgPSByZWNvbmNpbGVkUmVzdWx0LT5wYXJh
bWV0ZXJzOwotICAgIGlmICghYWxnb3JpdGhtKSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9yKCZz
dGF0ZSwgQVNDSUlMaXRlcmFsKCJOZWl0aGVyIGtleSBub3IgZnVuY3Rpb24gYXJndW1lbnQgaGFz
IGNyeXB0byBhbGdvcml0aG0gc3BlY2lmaWVkIikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
ICAgIEFTU0VSVChwYXJhbWV0ZXJzKTsKLQotICAgIGtleVNlcmlhbGl6YXRpb24tPnJlY29uY2ls
ZUV4dHJhY3RhYmxlKGV4dHJhY3RhYmxlKTsKLSAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIGtleVNlcmlhbGl6YXRpb24tPnJlY29uY2lsZVVzYWdl
cyhrZXlVc2FnZXMpOwotICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgYXV0byBrZXlEYXRhID0ga2V5U2VyaWFsaXphdGlvbi0+a2V5RGF0YSgpOwot
ICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRXhj
ZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgYWxnb3JpdGhtLT5pbXBvcnRLZXkoKnBhcmFtZXRlcnMs
ICprZXlEYXRhLCBleHRyYWN0YWJsZSwga2V5VXNhZ2VzLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RG
TW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7Ci0gICAgaWYgKGVjKQotICAgICAgICBzZXRET01F
eGNlcHRpb24oJnN0YXRlLCBlYyk7Ci19Ci0KLUpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OmltcG9y
dEtleShFeGVjU3RhdGUmIHN0YXRlKQotewotICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkg
PCAzKQotICAgICAgICByZXR1cm4gc3RhdGUudm0oKS50aHJvd0V4Y2VwdGlvbigmc3RhdGUsIGNy
ZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwotCi0gICAgQ3J5cHRvS2V5Rm9y
bWF0IGtleUZvcm1hdDsKLSAgICBpZiAoIWNyeXB0b0tleUZvcm1hdEZyb21KU1ZhbHVlKHN0YXRl
LCBzdGF0ZS5hcmd1bWVudCgwKSwga2V5Rm9ybWF0KSkgewotICAgICAgICBBU1NFUlQoc3RhdGUu
aGFkRXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0K
LSAgICBDcnlwdG9PcGVyYXRpb25EYXRhIGRhdGE7Ci0gICAgaWYgKCFjcnlwdG9PcGVyYXRpb25E
YXRhRnJvbUpTVmFsdWUoJnN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSwgZGF0YSkp
IHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgUmVmUHRyPENyeXB0b0FsZ29yaXRobT4gYWxn
b3JpdGhtOwotICAgIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBwYXJhbWV0ZXJz
OwotICAgIGlmICghc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikuaXNOdWxsKCkpIHsKLSAgICAg
ICAgYWxnb3JpdGhtID0gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLnVu
Y2hlY2tlZEFyZ3VtZW50KDIpKTsKLSAgICAgICAgaWYgKCFhbGdvcml0aG0pIHsKLSAgICAgICAg
ICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKLSAgICAgICAgfQotICAgICAgICBwYXJhbWV0ZXJzID0gSlNDcnlwdG9BbGdv
cml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9ySW1wb3J0S2V5KCZzdGF0ZSwgYWxn
b3JpdGhtLT5pZGVudGlmaWVyKCksIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpKTsKLSAgICAg
ICAgaWYgKCFwYXJhbWV0ZXJzKSB7Ci0gICAgICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0
aW9uKCkpOwotICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgICAgIH0KLSAg
ICB9Ci0KLSAgICBib29sIGV4dHJhY3RhYmxlID0gZmFsc2U7Ci0gICAgaWYgKHN0YXRlLmFyZ3Vt
ZW50Q291bnQoKSA+PSA0KSB7Ci0gICAgICAgIGV4dHJhY3RhYmxlID0gc3RhdGUudW5jaGVja2Vk
QXJndW1lbnQoMykudG9Cb29sZWFuKCZzdGF0ZSk7Ci0gICAgICAgIGlmIChzdGF0ZS5oYWRFeGNl
cHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAg
IENyeXB0b0tleVVzYWdlIGtleVVzYWdlcyA9IDA7Ci0gICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291
bnQoKSA+PSA1KSB7Ci0gICAgICAgIGlmICghY3J5cHRvS2V5VXNhZ2VzRnJvbUpTVmFsdWUoc3Rh
dGUsIHN0YXRlLmFyZ3VtZW50KDQpLCBrZXlVc2FnZXMpKSB7Ci0gICAgICAgICAgICBBU1NFUlQo
c3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBKU1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZURlZmVy
cmVkID0gSlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSgmc3RhdGUsIGdsb2JhbE9iamVjdCgpKTsK
LSAgICBEZWZlcnJlZFdyYXBwZXIgd3JhcHBlcigmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCBwcm9t
aXNlRGVmZXJyZWQpOwotICAgIGF1dG8gc3VjY2Vzc0NhbGxiYWNrID0gW3dyYXBwZXJdKENyeXB0
b0tleSYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgd3JhcHBlci5yZXNvbHZlKHJlc3VsdCk7
Ci0gICAgfTsKLSAgICBhdXRvIGZhaWx1cmVDYWxsYmFjayA9IFt3cmFwcGVyXSgpIG11dGFibGUg
ewotICAgICAgICB3cmFwcGVyLnJlamVjdChudWxscHRyKTsKLSAgICB9OwotCi0gICAgV2ViQ29y
ZTo6aW1wb3J0S2V5KHN0YXRlLCBrZXlGb3JtYXQsIGRhdGEsIFdURk1vdmUoYWxnb3JpdGhtKSwg
V1RGTW92ZShwYXJhbWV0ZXJzKSwgZXh0cmFjdGFibGUsIGtleVVzYWdlcywgV1RGTW92ZShzdWNj
ZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjaykpOwotICAgIGlmIChzdGF0ZS5o
YWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0KLSAgICByZXR1
cm4gcHJvbWlzZURlZmVycmVkLT5wcm9taXNlKCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGV4cG9ydEtl
eShFeGVjU3RhdGUmIHN0YXRlLCBDcnlwdG9LZXlGb3JtYXQga2V5Rm9ybWF0LCBjb25zdCBDcnlw
dG9LZXkmIGtleSwgQ3J5cHRvQWxnb3JpdGhtOjpWZWN0b3JDYWxsYmFjayBjYWxsYmFjaywgQ3J5
cHRvQWxnb3JpdGhtOjpWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrKQotewotICAgIGlmICgh
a2V5LmV4dHJhY3RhYmxlKCkpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBBU0NJ
SUxpdGVyYWwoIktleSBpcyBub3QgZXh0cmFjdGFibGUiKSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBzd2l0Y2ggKGtleUZvcm1hdCkgewotICAgIGNhc2UgQ3J5cHRvS2V5Rm9ybWF0
OjpSYXc6IHsKLSAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHJlc3VsdDsKLSAgICAgICAgaWYgKENy
eXB0b0tleVNlcmlhbGl6YXRpb25SYXc6OnNlcmlhbGl6ZShrZXksIHJlc3VsdCkpCi0gICAgICAg
ICAgICBjYWxsYmFjayhyZXN1bHQpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBmYWlsdXJl
Q2FsbGJhY2soKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2UgQ3J5cHRvS2V5Rm9y
bWF0OjpKV0s6IHsKLSAgICAgICAgU3RyaW5nIHJlc3VsdCA9IEpTQ3J5cHRvS2V5U2VyaWFsaXph
dGlvbkpXSzo6c2VyaWFsaXplKCZzdGF0ZSwga2V5KTsKLSAgICAgICAgaWYgKHN0YXRlLmhhZEV4
Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBDU3RyaW5nIHV0ZjhTdHJp
bmcgPSByZXN1bHQudXRmOChTdHJpY3RDb252ZXJzaW9uKTsKLSAgICAgICAgVmVjdG9yPHVpbnQ4
X3Q+IHJlc3VsdEJ1ZmZlcjsKLSAgICAgICAgcmVzdWx0QnVmZmVyLmFwcGVuZCh1dGY4U3RyaW5n
LmRhdGEoKSwgdXRmOFN0cmluZy5sZW5ndGgoKSk7Ci0gICAgICAgIGNhbGxiYWNrKHJlc3VsdEJ1
ZmZlcik7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBkZWZhdWx0OgotICAgICAgICB0aHJv
d1R5cGVFcnJvcigmc3RhdGUsIEFTQ0lJTGl0ZXJhbCgiVW5zdXBwb3J0ZWQga2V5IGZvcm1hdCBm
b3IgZXhwb3J0IikpOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KLUpTVmFsdWUgSlNTdWJ0
bGVDcnlwdG86OmV4cG9ydEtleShFeGVjU3RhdGUmIHN0YXRlKQotewotICAgIGlmIChzdGF0ZS5h
cmd1bWVudENvdW50KCkgPCAyKQotICAgICAgICByZXR1cm4gc3RhdGUudm0oKS50aHJvd0V4Y2Vw
dGlvbigmc3RhdGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwotCi0g
ICAgQ3J5cHRvS2V5Rm9ybWF0IGtleUZvcm1hdDsKLSAgICBpZiAoIWNyeXB0b0tleUZvcm1hdEZy
b21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS5hcmd1bWVudCgwKSwga2V5Rm9ybWF0KSkgewotICAgICAg
ICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKLSAgICB9Ci0KLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6
dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKLSAgICBpZiAoIWtleSkKLSAg
ICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSk7Ci0KLSAgICBKU1Byb21pc2VEZWZl
cnJlZCogcHJvbWlzZURlZmVycmVkID0gSlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSgmc3RhdGUs
IGdsb2JhbE9iamVjdCgpKTsKLSAgICBEZWZlcnJlZFdyYXBwZXIgd3JhcHBlcigmc3RhdGUsIGds
b2JhbE9iamVjdCgpLCBwcm9taXNlRGVmZXJyZWQpOwotICAgIGF1dG8gc3VjY2Vzc0NhbGxiYWNr
ID0gW3dyYXBwZXJdKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAg
ICAgICAgZnVsZmlsbFByb21pc2VXaXRoQXJyYXlCdWZmZXIod3JhcHBlciwgcmVzdWx0LmRhdGEo
KSwgcmVzdWx0LnNpemUoKSk7Ci0gICAgfTsKLSAgICBhdXRvIGZhaWx1cmVDYWxsYmFjayA9IFt3
cmFwcGVyXSgpIG11dGFibGUgewotICAgICAgICB3cmFwcGVyLnJlamVjdChudWxscHRyKTsKLSAg
ICB9OwotCi0gICAgV2ViQ29yZTo6ZXhwb3J0S2V5KHN0YXRlLCBrZXlGb3JtYXQsICprZXksIFdU
Rk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spKTsKLSAgICBp
ZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwot
Ci0gICAgcmV0dXJuIHByb21pc2VEZWZlcnJlZC0+cHJvbWlzZSgpOwotfQotCi1KU1ZhbHVlIEpT
U3VidGxlQ3J5cHRvOjp3cmFwS2V5KEV4ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgaWYgKHN0YXRl
LmFyZ3VtZW50Q291bnQoKSA8IDQpCi0gICAgICAgIHJldHVybiBzdGF0ZS52bSgpLnRocm93RXhj
ZXB0aW9uKCZzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7Ci0K
LSAgICBDcnlwdG9LZXlGb3JtYXQga2V5Rm9ybWF0OwotICAgIGlmICghY3J5cHRvS2V5Rm9ybWF0
RnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLmFyZ3VtZW50KDApLCBrZXlGb3JtYXQpKSB7Ci0gICAg
ICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwotICAgIH0KLQotICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5
Ojp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpOwotICAgIGlmICgha2V5KQot
ICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlKTsKLQotICAgIFJlZlB0cjxDcnlw
dG9LZXk+IHdyYXBwaW5nS2V5ID0gSlNDcnlwdG9LZXk6OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNr
ZWRBcmd1bWVudCgyKSk7Ci0gICAgaWYgKCFrZXkpCi0gICAgICAgIHJldHVybiB0aHJvd1R5cGVF
cnJvcigmc3RhdGUpOwotCi0gICAgaWYgKCF3cmFwcGluZ0tleS0+YWxsb3dzKENyeXB0b0tleVVz
YWdlV3JhcEtleSkpIHsKLSAgICAgICAgd3JhcHBlZCgpLmRvY3VtZW50KCktPmFkZENvbnNvbGVN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVy
YWwoIktleSB1c2FnZXMgZG8gbm90IGluY2x1ZGUgJ3dyYXBLZXknIikpOwotICAgICAgICBzZXRE
T01FeGNlcHRpb24oJnN0YXRlLCBOT1RfU1VQUE9SVEVEX0VSUik7Ci0gICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIGF1dG8gYWxnb3JpdGhtID0gY3JlYXRlQWxnb3Jp
dGhtRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDMpKTsKLSAgICBp
ZiAoIWFsZ29yaXRobSkgewotICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwot
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBhdXRvIHBhcmFtZXRl
cnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JFbmNy
eXB0KCZzdGF0ZSwgYWxnb3JpdGhtLT5pZGVudGlmaWVyKCksIHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDMpKTsKLSAgICBpZiAoIXBhcmFtZXRlcnMpIHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLmhh
ZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0g
ICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VEZWZlcnJlZCA9IEpTUHJvbWlzZURlZmVycmVk
OjpjcmVhdGUoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSk7Ci0gICAgRGVmZXJyZWRXcmFwcGVyIHdy
YXBwZXIoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgcHJvbWlzZURlZmVycmVkKTsKLQotICAgIGF1
dG8gZXhwb3J0U3VjY2Vzc0NhbGxiYWNrID0gW2tleUZvcm1hdCwgYWxnb3JpdGhtLCBwYXJhbWV0
ZXJzLCB3cmFwcGluZ0tleSwgd3JhcHBlcl0oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBleHBvcnRl
ZEtleURhdGEpIG11dGFibGUgewotICAgICAgICBhdXRvIGVuY3J5cHRTdWNjZXNzQ2FsbGJhY2sg
PSBbd3JhcHBlcl0oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBlbmNyeXB0ZWREYXRhKSBtdXRhYmxl
IHsKLSAgICAgICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEFycmF5QnVmZmVyKHdyYXBwZXIsIGVu
Y3J5cHRlZERhdGEuZGF0YSgpLCBlbmNyeXB0ZWREYXRhLnNpemUoKSk7Ci0gICAgICAgIH07Ci0g
ICAgICAgIGF1dG8gZW5jcnlwdEZhaWx1cmVDYWxsYmFjayA9IFt3cmFwcGVyXSgpIG11dGFibGUg
ewotICAgICAgICAgICAgd3JhcHBlci5yZWplY3QobnVsbHB0cik7Ci0gICAgICAgIH07Ci0gICAg
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgICAgICBhbGdvcml0aG0tPmVuY3J5cHRGb3JX
cmFwS2V5KCpwYXJhbWV0ZXJzLCAqd3JhcHBpbmdLZXksIHN0ZDo6bWFrZV9wYWlyKGV4cG9ydGVk
S2V5RGF0YS5kYXRhKCksIGV4cG9ydGVkS2V5RGF0YS5zaXplKCkpLCBXVEZNb3ZlKGVuY3J5cHRT
dWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGVuY3J5cHRGYWlsdXJlQ2FsbGJhY2spLCBlYyk7Ci0g
ICAgICAgIGlmIChlYykgewotICAgICAgICAgICAgLy8gRklYTUU6IFJlcG9ydCBmYWlsdXJlIGRl
dGFpbHMgdG8gY29uc29sZSwgYW5kIHBvc3NpYmx5IHRvIGNhbGxpbmcgc2NyaXB0IG9uY2UgdGhl
cmUgaXMgYSBzdGFuZGFyZGl6ZWQgd2F5IHRvIHBhc3MgZXJyb3JzIHRvIFdlYkNyeXB0byBwcm9t
aXNlIHJlamVjdCBmdW5jdGlvbnMuCi0gICAgICAgICAgICB3cmFwcGVyLnJlamVjdChudWxscHRy
KTsKLSAgICAgICAgfQotICAgIH07Ci0KLSAgICBhdXRvIGV4cG9ydEZhaWx1cmVDYWxsYmFjayA9
IFt3cmFwcGVyXSgpIG11dGFibGUgewotICAgICAgICB3cmFwcGVyLnJlamVjdChudWxscHRyKTsK
LSAgICB9OwotCi0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgV2ViQ29yZTo6ZXhwb3J0
S2V5KHN0YXRlLCBrZXlGb3JtYXQsICprZXksIFdURk1vdmUoZXhwb3J0U3VjY2Vzc0NhbGxiYWNr
KSwgV1RGTW92ZShleHBvcnRGYWlsdXJlQ2FsbGJhY2spKTsKLSAgICBpZiAoZWMpIHsKLSAgICAg
ICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgZWMpOwotICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcHJvbWlzZURlZmVycmVkLT5wcm9taXNlKCk7Ci19
Ci0KLUpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OnVud3JhcEtleShFeGVjU3RhdGUmIHN0YXRlKQot
ewotICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPCA1KQotICAgICAgICByZXR1cm4gc3Rh
dGUudm0oKS50aHJvd0V4Y2VwdGlvbigmc3RhdGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKCZzdGF0ZSkpOwotCi0gICAgQ3J5cHRvS2V5Rm9ybWF0IGtleUZvcm1hdDsKLSAgICBpZiAo
IWNyeXB0b0tleUZvcm1hdEZyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS5hcmd1bWVudCgwKSwga2V5
Rm9ybWF0KSkgewotICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBDcnlwdG9PcGVyYXRpb25EYXRh
IHdyYXBwZWRLZXlEYXRhOwotICAgIGlmICghY3J5cHRvT3BlcmF0aW9uRGF0YUZyb21KU1ZhbHVl
KCZzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSksIHdyYXBwZWRLZXlEYXRhKSkgewot
ICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiB1bndyYXBwaW5nS2V5
ID0gSlNDcnlwdG9LZXk6OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSk7Ci0g
ICAgaWYgKCF1bndyYXBwaW5nS2V5KQotICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0
YXRlKTsKLQotICAgIGlmICghdW53cmFwcGluZ0tleS0+YWxsb3dzKENyeXB0b0tleVVzYWdlVW53
cmFwS2V5KSkgewotICAgICAgICB3cmFwcGVkKCkuZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIEFTQ0lJTGl0ZXJhbCgi
S2V5IHVzYWdlcyBkbyBub3QgaW5jbHVkZSAndW53cmFwS2V5JyIpKTsKLSAgICAgICAgc2V0RE9N
RXhjZXB0aW9uKCZzdGF0ZSwgTk9UX1NVUFBPUlRFRF9FUlIpOwotICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBhdXRvIHVud3JhcEFsZ29yaXRobSA9IGNyZWF0ZUFs
Z29yaXRobUZyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgzKSk7Ci0g
ICAgaWYgKCF1bndyYXBBbGdvcml0aG0pIHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2Vw
dGlvbigpKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotICAgIGF1dG8g
dW53cmFwQWxnb3JpdGhtUGFyYW1ldGVycyA9IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6
Y3JlYXRlUGFyYW1ldGVyc0ZvckRlY3J5cHQoJnN0YXRlLCB1bndyYXBBbGdvcml0aG0tPmlkZW50
aWZpZXIoKSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMykpOwotICAgIGlmICghdW53cmFwQWxn
b3JpdGhtUGFyYW1ldGVycykgewotICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkp
OwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBSZWZQdHI8Q3J5
cHRvQWxnb3JpdGhtPiB1bndyYXBwZWRLZXlBbGdvcml0aG07Ci0gICAgUmVmUHRyPENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnM+IHVud3JhcHBlZEtleUFsZ29yaXRobVBhcmFtZXRlcnM7Ci0gICAg
aWYgKCFzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCg0KS5pc051bGwoKSkgewotICAgICAgICB1bndy
YXBwZWRLZXlBbGdvcml0aG0gPSBjcmVhdGVBbGdvcml0aG1Gcm9tSlNWYWx1ZShzdGF0ZSwgc3Rh
dGUudW5jaGVja2VkQXJndW1lbnQoNCkpOwotICAgICAgICBpZiAoIXVud3JhcHBlZEtleUFsZ29y
aXRobSkgewotICAgICAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICAg
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICB9Ci0gICAgICAgIHVud3JhcHBl
ZEtleUFsZ29yaXRobVBhcmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNy
ZWF0ZVBhcmFtZXRlcnNGb3JJbXBvcnRLZXkoJnN0YXRlLCB1bndyYXBwZWRLZXlBbGdvcml0aG0t
PmlkZW50aWZpZXIoKSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoNCkpOwotICAgICAgICBpZiAo
IXVud3JhcHBlZEtleUFsZ29yaXRobVBhcmFtZXRlcnMpIHsKLSAgICAgICAgICAgIEFTU0VSVChz
dGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
LSAgICAgICAgfQotICAgIH0KLQotICAgIGJvb2wgZXh0cmFjdGFibGUgPSBmYWxzZTsKLSAgICBp
ZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpID49IDYpIHsKLSAgICAgICAgZXh0cmFjdGFibGUgPSBz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCg1KS50b0Jvb2xlYW4oJnN0YXRlKTsKLSAgICAgICAgaWYg
KHN0YXRlLmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
Ci0gICAgfQotCi0gICAgQ3J5cHRvS2V5VXNhZ2Uga2V5VXNhZ2VzID0gMDsKLSAgICBpZiAoc3Rh
dGUuYXJndW1lbnRDb3VudCgpID49IDcpIHsKLSAgICAgICAgaWYgKCFjcnlwdG9LZXlVc2FnZXNG
cm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUuYXJndW1lbnQoNiksIGtleVVzYWdlcykpIHsKLSAgICAg
ICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAgICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEpTUHJvbWlzZURlZmVycmVk
KiBwcm9taXNlRGVmZXJyZWQgPSBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKCZzdGF0ZSwgZ2xv
YmFsT2JqZWN0KCkpOwotICAgIERlZmVycmVkV3JhcHBlciB3cmFwcGVyKCZzdGF0ZSwgZ2xvYmFs
T2JqZWN0KCksIHByb21pc2VEZWZlcnJlZCk7Ci0gICAgU3Ryb25nPEpTRE9NR2xvYmFsT2JqZWN0
PiBkb21HbG9iYWxPYmplY3Qoc3RhdGUudm0oKSwgZ2xvYmFsT2JqZWN0KCkpOwotCi0gICAgYXV0
byBkZWNyeXB0U3VjY2Vzc0NhbGxiYWNrID0gW2RvbUdsb2JhbE9iamVjdCwga2V5Rm9ybWF0LCB1
bndyYXBwZWRLZXlBbGdvcml0aG0sIHVud3JhcHBlZEtleUFsZ29yaXRobVBhcmFtZXRlcnMsIGV4
dHJhY3RhYmxlLCBrZXlVc2FnZXMsIHdyYXBwZXJdKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgcmVz
dWx0KSBtdXRhYmxlIHsKLSAgICAgICAgYXV0byBpbXBvcnRTdWNjZXNzQ2FsbGJhY2sgPSBbd3Jh
cHBlcl0oQ3J5cHRvS2V5JiBrZXkpIG11dGFibGUgewotICAgICAgICAgICAgd3JhcHBlci5yZXNv
bHZlKGtleSk7Ci0gICAgICAgIH07Ci0gICAgICAgIGF1dG8gaW1wb3J0RmFpbHVyZUNhbGxiYWNr
ID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICB3cmFwcGVyLnJlamVjdChudWxs
cHRyKTsKLSAgICAgICAgfTsKLSAgICAgICAgRXhlY1N0YXRlJiBzdGF0ZSA9ICpkb21HbG9iYWxP
YmplY3QtPmdsb2JhbEV4ZWMoKTsKLSAgICAgICAgV2ViQ29yZTo6aW1wb3J0S2V5KHN0YXRlLCBr
ZXlGb3JtYXQsIHN0ZDo6bWFrZV9wYWlyKHJlc3VsdC5kYXRhKCksIHJlc3VsdC5zaXplKCkpLCB1
bndyYXBwZWRLZXlBbGdvcml0aG0sIHVud3JhcHBlZEtleUFsZ29yaXRobVBhcmFtZXRlcnMsIGV4
dHJhY3RhYmxlLCBrZXlVc2FnZXMsIFdURk1vdmUoaW1wb3J0U3VjY2Vzc0NhbGxiYWNrKSwgV1RG
TW92ZShpbXBvcnRGYWlsdXJlQ2FsbGJhY2spKTsKLSAgICAgICAgaWYgKHN0YXRlLmhhZEV4Y2Vw
dGlvbigpKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogUmVwb3J0IGV4Y2VwdGlvbiBkZXRhaWxz
IHRvIGNvbnNvbGUsIGFuZCBwb3NzaWJseSB0byBjYWxsaW5nIHNjcmlwdCBvbmNlIHRoZXJlIGlz
IGEgc3RhbmRhcmRpemVkIHdheSB0byBwYXNzIGVycm9ycyB0byBXZWJDcnlwdG8gcHJvbWlzZSBy
ZWplY3QgZnVuY3Rpb25zLgotICAgICAgICAgICAgc3RhdGUuY2xlYXJFeGNlcHRpb24oKTsKLSAg
ICAgICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOwotICAgICAgICB9Ci0gICAgfTsKLQot
ICAgIGF1dG8gZGVjcnlwdEZhaWx1cmVDYWxsYmFjayA9IFt3cmFwcGVyXSgpIG11dGFibGUgewot
ICAgICAgICB3cmFwcGVyLnJlamVjdChudWxscHRyKTsKLSAgICB9OwotCi0gICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7Ci0gICAgdW53cmFwQWxnb3JpdGhtLT5kZWNyeXB0Rm9yVW53cmFwS2V5KCp1
bndyYXBBbGdvcml0aG1QYXJhbWV0ZXJzLCAqdW53cmFwcGluZ0tleSwgd3JhcHBlZEtleURhdGEs
IFdURk1vdmUoZGVjcnlwdFN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZGVjcnlwdEZhaWx1cmVD
YWxsYmFjayksIGVjKTsKLSAgICBpZiAoZWMpIHsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZz
dGF0ZSwgZWMpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBy
ZXR1cm4gcHJvbWlzZURlZmVycmVkLT5wcm9taXNlKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dlYktpdFN1YnRsZUNyeXB0b0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dlYktpdFN1YnRsZUNyeXB0b0N1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWU4YmJjMGJhNWIz
NTRkZWU2ZDk2ZjhkZmE3ZmFjMDBhNTBkNDEwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0U3VidGxlQ3J5cHRvQ3VzdG9tLmNwcApAQCAtMCww
ICsxLDgwNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJK
U1dlYktpdFN1YnRsZUNyeXB0by5oIgorCisjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCisKKyNp
bmNsdWRlICJDcnlwdG9BbGdvcml0aG0uaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzLmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCIKKyNpbmNsdWRl
ICJDcnlwdG9LZXlEYXRhLmgiCisjaW5jbHVkZSAiQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5o
IgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2lu
Y2x1ZGUgIkpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5oIgorI2luY2x1ZGUgIkpTQ3J5cHRv
S2V5LmgiCisjaW5jbHVkZSAiSlNDcnlwdG9LZXlQYWlyLmgiCisjaW5jbHVkZSAiSlNDcnlwdG9L
ZXlTZXJpYWxpemF0aW9uSldLLmgiCisjaW5jbHVkZSAiSlNDcnlwdG9PcGVyYXRpb25EYXRhLmgi
CisjaW5jbHVkZSAiSlNET01Qcm9taXNlLmgiCisjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgor
Cit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xh
c3MgQ3J5cHRvS2V5Rm9ybWF0IHsKKyAgICAvLyBBbiB1bmZvcm1hdHRlZCBzZXF1ZW5jZSBvZiBi
eXRlcy4gSW50ZW5kZWQgZm9yIHNlY3JldCBrZXlzLgorICAgIFJhdywKKworICAgIC8vIFRoZSBE
RVIgZW5jb2Rpbmcgb2YgdGhlIFByaXZhdGVLZXlJbmZvIHN0cnVjdHVyZSBmcm9tIFJGQyA1MjA4
LgorICAgIFBLQ1M4LAorCisgICAgLy8gVGhlIERFUiBlbmNvZGluZyBvZiB0aGUgU3ViamVjdFB1
YmxpY0tleUluZm8gc3RydWN0dXJlIGZyb20gUkZDIDUyODAuCisgICAgU1BLSSwKKworICAgIC8v
IFRoZSBrZXkgaXMgcmVwcmVzZW50ZWQgYXMgSlNPTiBhY2NvcmRpbmcgdG8gdGhlIEpTT04gV2Vi
IEtleSBmb3JtYXQuCisgICAgSldLCit9OworCitzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRo
bT4gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2
YWx1ZSkKK3sKKyAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobUlkZW50aWZp
ZXI7CisgICAgaWYgKCFKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmdldEFsZ29yaXRobUlk
ZW50aWZpZXIoJnN0YXRlLCB2YWx1ZSwgYWxnb3JpdGhtSWRlbnRpZmllcikpIHsKKyAgICAgICAg
QVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgfQorCisgICAgYXV0byByZXN1bHQgPSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeTo6c2luZ2xl
dG9uKCkuY3JlYXRlKGFsZ29yaXRobUlkZW50aWZpZXIpOworICAgIGlmICghcmVzdWx0KQorICAg
ICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBOT1RfU1VQUE9SVEVEX0VSUik7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGJvb2wgY3J5cHRvS2V5Rm9ybWF0RnJvbUpTVmFsdWUo
RXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSwgQ3J5cHRvS2V5Rm9ybWF0JiByZXN1bHQp
Cit7CisgICAgU3RyaW5nIGtleUZvcm1hdFN0cmluZyA9IHZhbHVlLnRvU3RyaW5nKCZzdGF0ZSkt
PnZhbHVlKCZzdGF0ZSk7CisgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgaWYgKGtleUZvcm1hdFN0cmluZyA9PSAicmF3IikKKyAgICAgICAg
cmVzdWx0ID0gQ3J5cHRvS2V5Rm9ybWF0OjpSYXc7CisgICAgZWxzZSBpZiAoa2V5Rm9ybWF0U3Ry
aW5nID09ICJwa2NzOCIpCisgICAgICAgIHJlc3VsdCA9IENyeXB0b0tleUZvcm1hdDo6UEtDUzg7
CisgICAgZWxzZSBpZiAoa2V5Rm9ybWF0U3RyaW5nID09ICJzcGtpIikKKyAgICAgICAgcmVzdWx0
ID0gQ3J5cHRvS2V5Rm9ybWF0OjpTUEtJOworICAgIGVsc2UgaWYgKGtleUZvcm1hdFN0cmluZyA9
PSAiandrIikKKyAgICAgICAgcmVzdWx0ID0gQ3J5cHRvS2V5Rm9ybWF0OjpKV0s7CisgICAgZWxz
ZSB7CisgICAgICAgIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgQVNDSUlMaXRlcmFsKCJVbmtub3du
IGtleSBmb3JtYXQiKSk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJu
IHRydWU7Cit9CisKK3N0YXRpYyBib29sIGNyeXB0b0tleVVzYWdlc0Zyb21KU1ZhbHVlKEV4ZWNT
dGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUsIENyeXB0b0tleVVzYWdlJiByZXN1bHQpCit7Cisg
ICAgaWYgKCFpc0pTQXJyYXkodmFsdWUpKSB7CisgICAgICAgIHRocm93VHlwZUVycm9yKCZzdGF0
ZSk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXN1bHQgPSAwOworCisg
ICAgSlNBcnJheSogYXJyYXkgPSBhc0FycmF5KHZhbHVlKTsKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGFycmF5LT5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgIEpTVmFsdWUgZWxlbWVudCA9
IGFycmF5LT5nZXRJbmRleCgmc3RhdGUsIGkpOworICAgICAgICBTdHJpbmcgdXNhZ2VTdHJpbmcg
PSBlbGVtZW50LnRvU3RyaW5nKCZzdGF0ZSktPnZhbHVlKCZzdGF0ZSk7CisgICAgICAgIGlmIChz
dGF0ZS5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
aWYgKHVzYWdlU3RyaW5nID09ICJlbmNyeXB0IikKKyAgICAgICAgICAgIHJlc3VsdCB8PSBDcnlw
dG9LZXlVc2FnZUVuY3J5cHQ7CisgICAgICAgIGVsc2UgaWYgKHVzYWdlU3RyaW5nID09ICJkZWNy
eXB0IikKKyAgICAgICAgICAgIHJlc3VsdCB8PSBDcnlwdG9LZXlVc2FnZURlY3J5cHQ7CisgICAg
ICAgIGVsc2UgaWYgKHVzYWdlU3RyaW5nID09ICJzaWduIikKKyAgICAgICAgICAgIHJlc3VsdCB8
PSBDcnlwdG9LZXlVc2FnZVNpZ247CisgICAgICAgIGVsc2UgaWYgKHVzYWdlU3RyaW5nID09ICJ2
ZXJpZnkiKQorICAgICAgICAgICAgcmVzdWx0IHw9IENyeXB0b0tleVVzYWdlVmVyaWZ5OworICAg
ICAgICBlbHNlIGlmICh1c2FnZVN0cmluZyA9PSAiZGVyaXZlS2V5IikKKyAgICAgICAgICAgIHJl
c3VsdCB8PSBDcnlwdG9LZXlVc2FnZURlcml2ZUtleTsKKyAgICAgICAgZWxzZSBpZiAodXNhZ2VT
dHJpbmcgPT0gImRlcml2ZUJpdHMiKQorICAgICAgICAgICAgcmVzdWx0IHw9IENyeXB0b0tleVVz
YWdlRGVyaXZlQml0czsKKyAgICAgICAgZWxzZSBpZiAodXNhZ2VTdHJpbmcgPT0gIndyYXBLZXki
KQorICAgICAgICAgICAgcmVzdWx0IHw9IENyeXB0b0tleVVzYWdlV3JhcEtleTsKKyAgICAgICAg
ZWxzZSBpZiAodXNhZ2VTdHJpbmcgPT0gInVud3JhcEtleSIpCisgICAgICAgICAgICByZXN1bHQg
fD0gQ3J5cHRvS2V5VXNhZ2VVbndyYXBLZXk7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQor
CitKU1ZhbHVlIEpTV2ViS2l0U3VidGxlQ3J5cHRvOjplbmNyeXB0KEV4ZWNTdGF0ZSYgc3RhdGUp
Cit7CisgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDMpCisgICAgICAgIHJldHVybiBz
dGF0ZS52bSgpLnRocm93RXhjZXB0aW9uKCZzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRz
RXJyb3IoJnN0YXRlKSk7CisKKyAgICBhdXRvIGFsZ29yaXRobSA9IGNyZWF0ZUFsZ29yaXRobUZy
b21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgaWYgKCFh
bGdvcml0aG0pIHsKKyAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgYXV0byBwYXJhbWV0ZXJzID0g
SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRW5jcnlwdCgm
c3RhdGUsIGFsZ29yaXRobS0+aWRlbnRpZmllcigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgw
KSk7CisgICAgaWYgKCFwYXJhbWV0ZXJzKSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNl
cHRpb24oKSk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIFJl
ZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQoc3RhdGUudW5jaGVj
a2VkQXJndW1lbnQoMSkpOworICAgIGlmICgha2V5KQorICAgICAgICByZXR1cm4gdGhyb3dUeXBl
RXJyb3IoJnN0YXRlKTsKKworICAgIGlmICgha2V5LT5hbGxvd3MoQ3J5cHRvS2V5VXNhZ2VFbmNy
eXB0KSkgeworICAgICAgICB3cmFwcGVkKCkuZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiS2V5
IHVzYWdlcyBkbyBub3QgaW5jbHVkZSAnZW5jcnlwdCciKSk7CisgICAgICAgIHNldERPTUV4Y2Vw
dGlvbigmc3RhdGUsIE5PVF9TVVBQT1JURURfRVJSKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CisgICAgfQorCisgICAgQ3J5cHRvT3BlcmF0aW9uRGF0YSBkYXRhOworICAgIGlmICgh
Y3J5cHRvT3BlcmF0aW9uRGF0YUZyb21KU1ZhbHVlKCZzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoMiksIGRhdGEpKSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7
CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIAorICAgIEpTUHJv
bWlzZURlZmVycmVkKiBwcm9taXNlRGVmZXJyZWQgPSBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRl
KCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCkpOworICAgIERlZmVycmVkV3JhcHBlciB3cmFwcGVyKCZz
dGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHByb21pc2VEZWZlcnJlZCk7CisgICAgYXV0byBzdWNjZXNz
Q2FsbGJhY2sgPSBbd3JhcHBlcl0oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiByZXN1bHQpIG11dGFi
bGUgeworICAgICAgICBmdWxmaWxsUHJvbWlzZVdpdGhBcnJheUJ1ZmZlcih3cmFwcGVyLCByZXN1
bHQuZGF0YSgpLCByZXN1bHQuc2l6ZSgpKTsKKyAgICB9OworICAgIGF1dG8gZmFpbHVyZUNhbGxi
YWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxw
dHIpOworICAgIH07CisKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBhbGdvcml0aG0t
PmVuY3J5cHQoKnBhcmFtZXRlcnMsICprZXksIGRhdGEsIFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNr
KSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CisgICAgaWYgKGVjKSB7CisgICAgICAg
IHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIGVjKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7CisgICAgfQorCisgICAgcmV0dXJuIHByb21pc2VEZWZlcnJlZC0+cHJvbWlzZSgpOworfQor
CitKU1ZhbHVlIEpTV2ViS2l0U3VidGxlQ3J5cHRvOjpkZWNyeXB0KEV4ZWNTdGF0ZSYgc3RhdGUp
Cit7CisgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDMpCisgICAgICAgIHJldHVybiBz
dGF0ZS52bSgpLnRocm93RXhjZXB0aW9uKCZzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRz
RXJyb3IoJnN0YXRlKSk7CisKKyAgICBhdXRvIGFsZ29yaXRobSA9IGNyZWF0ZUFsZ29yaXRobUZy
b21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgaWYgKCFh
bGdvcml0aG0pIHsKKyAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgYXV0byBwYXJhbWV0ZXJzID0g
SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRGVjcnlwdCgm
c3RhdGUsIGFsZ29yaXRobS0+aWRlbnRpZmllcigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgw
KSk7CisgICAgaWYgKCFwYXJhbWV0ZXJzKSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNl
cHRpb24oKSk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIFJl
ZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQoc3RhdGUudW5jaGVj
a2VkQXJndW1lbnQoMSkpOworICAgIGlmICgha2V5KQorICAgICAgICByZXR1cm4gdGhyb3dUeXBl
RXJyb3IoJnN0YXRlKTsKKworICAgIGlmICgha2V5LT5hbGxvd3MoQ3J5cHRvS2V5VXNhZ2VEZWNy
eXB0KSkgeworICAgICAgICB3cmFwcGVkKCkuZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiS2V5
IHVzYWdlcyBkbyBub3QgaW5jbHVkZSAnZGVjcnlwdCciKSk7CisgICAgICAgIHNldERPTUV4Y2Vw
dGlvbigmc3RhdGUsIE5PVF9TVVBQT1JURURfRVJSKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CisgICAgfQorCisgICAgQ3J5cHRvT3BlcmF0aW9uRGF0YSBkYXRhOworICAgIGlmICgh
Y3J5cHRvT3BlcmF0aW9uRGF0YUZyb21KU1ZhbHVlKCZzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoMiksIGRhdGEpKSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7
CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIEpTUHJvbWlzZURl
ZmVycmVkKiBwcm9taXNlRGVmZXJyZWQgPSBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKCZzdGF0
ZSwgZ2xvYmFsT2JqZWN0KCkpOworICAgIERlZmVycmVkV3JhcHBlciB3cmFwcGVyKCZzdGF0ZSwg
Z2xvYmFsT2JqZWN0KCksIHByb21pc2VEZWZlcnJlZCk7CisgICAgYXV0byBzdWNjZXNzQ2FsbGJh
Y2sgPSBbd3JhcHBlcl0oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiByZXN1bHQpIG11dGFibGUgewor
ICAgICAgICBmdWxmaWxsUHJvbWlzZVdpdGhBcnJheUJ1ZmZlcih3cmFwcGVyLCByZXN1bHQuZGF0
YSgpLCByZXN1bHQuc2l6ZSgpKTsKKyAgICB9OworICAgIGF1dG8gZmFpbHVyZUNhbGxiYWNrID0g
W3dyYXBwZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOwor
ICAgIH07CisKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBhbGdvcml0aG0tPmRlY3J5
cHQoKnBhcmFtZXRlcnMsICprZXksIGRhdGEsIFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgV1RG
TW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CisgICAgaWYgKGVjKSB7CisgICAgICAgIHNldERP
TUV4Y2VwdGlvbigmc3RhdGUsIGVjKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cisg
ICAgfQorCisgICAgcmV0dXJuIHByb21pc2VEZWZlcnJlZC0+cHJvbWlzZSgpOworfQorCitKU1Zh
bHVlIEpTV2ViS2l0U3VidGxlQ3J5cHRvOjpzaWduKEV4ZWNTdGF0ZSYgc3RhdGUpCit7CisgICAg
aWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDMpCisgICAgICAgIHJldHVybiBzdGF0ZS52bSgp
LnRocm93RXhjZXB0aW9uKCZzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0
YXRlKSk7CisKKyAgICBhdXRvIGFsZ29yaXRobSA9IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVl
KHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgaWYgKCFhbGdvcml0aG0p
IHsKKyAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgYXV0byBwYXJhbWV0ZXJzID0gSlNDcnlwdG9B
bGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yU2lnbigmc3RhdGUsIGFsZ29y
aXRobS0+aWRlbnRpZmllcigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgaWYg
KCFwYXJhbWV0ZXJzKSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Cisg
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIFJlZlB0cjxDcnlwdG9L
ZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MSkpOworICAgIGlmICgha2V5KQorICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRl
KTsKKworICAgIGlmICgha2V5LT5hbGxvd3MoQ3J5cHRvS2V5VXNhZ2VTaWduKSkgeworICAgICAg
ICB3cmFwcGVkKCkuZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6
SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiS2V5IHVzYWdlcyBkbyBub3Qg
aW5jbHVkZSAnc2lnbiciKSk7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIE5PVF9T
VVBQT1JURURfRVJSKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisg
ICAgQ3J5cHRvT3BlcmF0aW9uRGF0YSBkYXRhOworICAgIGlmICghY3J5cHRvT3BlcmF0aW9uRGF0
YUZyb21KU1ZhbHVlKCZzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMiksIGRhdGEpKSB7
CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIEpTUHJvbWlzZURlZmVycmVkKiBwcm9taXNlRGVm
ZXJyZWQgPSBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCkp
OworICAgIERlZmVycmVkV3JhcHBlciB3cmFwcGVyKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHBy
b21pc2VEZWZlcnJlZCk7CisgICAgYXV0byBzdWNjZXNzQ2FsbGJhY2sgPSBbd3JhcHBlcl0oY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBmdWxmaWxsUHJv
bWlzZVdpdGhBcnJheUJ1ZmZlcih3cmFwcGVyLCByZXN1bHQuZGF0YSgpLCByZXN1bHQuc2l6ZSgp
KTsKKyAgICB9OworICAgIGF1dG8gZmFpbHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJs
ZSB7CisgICAgICAgIHdyYXBwZXIucmVqZWN0KG51bGxwdHIpOworICAgIH07CisKKyAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDsKKyAgICBhbGdvcml0aG0tPnNpZ24oKnBhcmFtZXRlcnMsICprZXks
IGRhdGEsIFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2sp
LCBlYyk7CisgICAgaWYgKGVjKSB7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIGVj
KTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgcmV0dXJuIHBy
b21pc2VEZWZlcnJlZC0+cHJvbWlzZSgpOworfQorCitKU1ZhbHVlIEpTV2ViS2l0U3VidGxlQ3J5
cHRvOjp2ZXJpZnkoRXhlY1N0YXRlJiBzdGF0ZSkKK3sKKyAgICBpZiAoc3RhdGUuYXJndW1lbnRD
b3VudCgpIDwgNCkKKyAgICAgICAgcmV0dXJuIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0
YXRlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKKworICAgIGF1dG8g
YWxnb3JpdGhtID0gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDApKTsKKyAgICBpZiAoIWFsZ29yaXRobSkgeworICAgICAgICBBU1NFUlQo
c3RhdGUuaGFkRXhjZXB0aW9uKCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAg
ICB9CisKKyAgICBhdXRvIHBhcmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6
OmNyZWF0ZVBhcmFtZXRlcnNGb3JWZXJpZnkoJnN0YXRlLCBhbGdvcml0aG0tPmlkZW50aWZpZXIo
KSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIGlmICghcGFyYW1ldGVycykgewor
ICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOworICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0
b0tleTo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKKyAgICBpZiAoIWtl
eSkKKyAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSk7CisKKyAgICBpZiAoIWtl
eS0+YWxsb3dzKENyeXB0b0tleVVzYWdlVmVyaWZ5KSkgeworICAgICAgICB3cmFwcGVkKCkuZG9j
dW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZl
bDo6RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiS2V5IHVzYWdlcyBkbyBub3QgaW5jbHVkZSAndmVyaWZ5
JyIpKTsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgTk9UX1NVUFBPUlRFRF9FUlIp
OworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBDcnlwdG9PcGVy
YXRpb25EYXRhIHNpZ25hdHVyZTsKKyAgICBpZiAoIWNyeXB0b09wZXJhdGlvbkRhdGFGcm9tSlNW
YWx1ZSgmc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpLCBzaWduYXR1cmUpKSB7Cisg
ICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOworICAgIH0KKworICAgIENyeXB0b09wZXJhdGlvbkRhdGEgZGF0YTsKKyAgICBp
ZiAoIWNyeXB0b09wZXJhdGlvbkRhdGFGcm9tSlNWYWx1ZSgmc3RhdGUsIHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDMpLCBkYXRhKSkgeworICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9u
KCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBKU1Byb21p
c2VEZWZlcnJlZCogcHJvbWlzZURlZmVycmVkID0gSlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSgm
c3RhdGUsIGdsb2JhbE9iamVjdCgpKTsKKyAgICBEZWZlcnJlZFdyYXBwZXIgd3JhcHBlcigmc3Rh
dGUsIGdsb2JhbE9iamVjdCgpLCBwcm9taXNlRGVmZXJyZWQpOworICAgIGF1dG8gc3VjY2Vzc0Nh
bGxiYWNrID0gW3dyYXBwZXJdKGJvb2wgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgd3JhcHBl
ci5yZXNvbHZlKHJlc3VsdCk7CisgICAgfTsKKyAgICBhdXRvIGZhaWx1cmVDYWxsYmFjayA9IFt3
cmFwcGVyXSgpIG11dGFibGUgeworICAgICAgICB3cmFwcGVyLnJlamVjdChudWxscHRyKTsKKyAg
ICB9OworCisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgYWxnb3JpdGhtLT52ZXJpZnko
KnBhcmFtZXRlcnMsICprZXksIHNpZ25hdHVyZSwgZGF0YSwgV1RGTW92ZShzdWNjZXNzQ2FsbGJh
Y2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKKyAgICBpZiAoZWMpIHsKKyAgICAg
ICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgZWMpOworICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gcHJvbWlzZURlZmVycmVkLT5wcm9taXNlKCk7Cit9
CisKK0pTVmFsdWUgSlNXZWJLaXRTdWJ0bGVDcnlwdG86OmRpZ2VzdChFeGVjU3RhdGUmIHN0YXRl
KQoreworICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPCAyKQorICAgICAgICByZXR1cm4g
c3RhdGUudm0oKS50aHJvd0V4Y2VwdGlvbigmc3RhdGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKCZzdGF0ZSkpOworCisgICAgYXV0byBhbGdvcml0aG0gPSBjcmVhdGVBbGdvcml0aG1G
cm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIGlmICgh
YWxnb3JpdGhtKSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIGF1dG8gcGFyYW1ldGVycyA9
IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRpZ2VzdCgm
c3RhdGUsIGFsZ29yaXRobS0+aWRlbnRpZmllcigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgw
KSk7CisgICAgaWYgKCFwYXJhbWV0ZXJzKSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNl
cHRpb24oKSk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIENy
eXB0b09wZXJhdGlvbkRhdGEgZGF0YTsKKyAgICBpZiAoIWNyeXB0b09wZXJhdGlvbkRhdGFGcm9t
SlNWYWx1ZSgmc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLCBkYXRhKSkgeworICAg
ICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOworICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKKyAgICB9CisKKyAgICBKU1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZURlZmVycmVk
ID0gSlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSgmc3RhdGUsIGdsb2JhbE9iamVjdCgpKTsKKyAg
ICBEZWZlcnJlZFdyYXBwZXIgd3JhcHBlcigmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCBwcm9taXNl
RGVmZXJyZWQpOworICAgIGF1dG8gc3VjY2Vzc0NhbGxiYWNrID0gW3dyYXBwZXJdKGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgZnVsZmlsbFByb21pc2VX
aXRoQXJyYXlCdWZmZXIod3JhcHBlciwgcmVzdWx0LmRhdGEoKSwgcmVzdWx0LnNpemUoKSk7Cisg
ICAgfTsKKyAgICBhdXRvIGZhaWx1cmVDYWxsYmFjayA9IFt3cmFwcGVyXSgpIG11dGFibGUgewor
ICAgICAgICB3cmFwcGVyLnJlamVjdChudWxscHRyKTsKKyAgICB9OworCisgICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7CisgICAgYWxnb3JpdGhtLT5kaWdlc3QoKnBhcmFtZXRlcnMsIGRhdGEsIFdU
Rk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7Cisg
ICAgaWYgKGVjKSB7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3RhdGUsIGVjKTsKKyAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgcmV0dXJuIHByb21pc2VEZWZl
cnJlZC0+cHJvbWlzZSgpOworfQorCitKU1ZhbHVlIEpTV2ViS2l0U3VidGxlQ3J5cHRvOjpnZW5l
cmF0ZUtleShFeGVjU3RhdGUmIHN0YXRlKQoreworICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50
KCkgPCAxKQorICAgICAgICByZXR1cm4gc3RhdGUudm0oKS50aHJvd0V4Y2VwdGlvbigmc3RhdGUs
IGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOworCisgICAgYXV0byBhbGdv
cml0aG0gPSBjcmVhdGVBbGdvcml0aG1Gcm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVja2Vk
QXJndW1lbnQoMCkpOworICAgIGlmICghYWxnb3JpdGhtKSB7CisgICAgICAgIEFTU0VSVChzdGF0
ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0K
KworICAgIGF1dG8gcGFyYW1ldGVycyA9IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3Jl
YXRlUGFyYW1ldGVyc0ZvckdlbmVyYXRlS2V5KCZzdGF0ZSwgYWxnb3JpdGhtLT5pZGVudGlmaWVy
KCksIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBpZiAoIXBhcmFtZXRlcnMpIHsK
KyAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgYm9vbCBleHRyYWN0YWJsZSA9IGZhbHNlOworICAg
IGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPj0gMikgeworICAgICAgICBleHRyYWN0YWJsZSA9
IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvQm9vbGVhbigmc3RhdGUpOworICAgICAgICBp
ZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKKyAgICB9CisKKyAgICBDcnlwdG9LZXlVc2FnZSBrZXlVc2FnZXMgPSAwOworICAgIGlmIChz
dGF0ZS5hcmd1bWVudENvdW50KCkgPj0gMykgeworICAgICAgICBpZiAoIWNyeXB0b0tleVVzYWdl
c0Zyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS5hcmd1bWVudCgyKSwga2V5VXNhZ2VzKSkgeworICAg
ICAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOworICAgICAgICB9CisgICAgfQorCisgICAgSlNQcm9taXNlRGVmZXJy
ZWQqIHByb21pc2VEZWZlcnJlZCA9IEpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoJnN0YXRlLCBn
bG9iYWxPYmplY3QoKSk7CisgICAgRGVmZXJyZWRXcmFwcGVyIHdyYXBwZXIoJnN0YXRlLCBnbG9i
YWxPYmplY3QoKSwgcHJvbWlzZURlZmVycmVkKTsKKyAgICBhdXRvIHN1Y2Nlc3NDYWxsYmFjayA9
IFt3cmFwcGVyXShDcnlwdG9LZXkqIGtleSwgQ3J5cHRvS2V5UGFpcioga2V5UGFpcikgbXV0YWJs
ZSB7CisgICAgICAgIEFTU0VSVChrZXkgfHwga2V5UGFpcik7CisgICAgICAgIEFTU0VSVCgha2V5
IHx8ICFrZXlQYWlyKTsKKyAgICAgICAgaWYgKGtleSkKKyAgICAgICAgICAgIHdyYXBwZXIucmVz
b2x2ZShrZXkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB3cmFwcGVyLnJlc29sdmUoa2V5
UGFpcik7CisgICAgfTsKKyAgICBhdXRvIGZhaWx1cmVDYWxsYmFjayA9IFt3cmFwcGVyXSgpIG11
dGFibGUgeworICAgICAgICB3cmFwcGVyLnJlamVjdChudWxscHRyKTsKKyAgICB9OworCisgICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgYWxnb3JpdGhtLT5nZW5lcmF0ZUtleSgqcGFyYW1l
dGVycywgZXh0cmFjdGFibGUsIGtleVVzYWdlcywgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBX
VEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKKyAgICBpZiAoZWMpIHsKKyAgICAgICAgc2V0
RE9NRXhjZXB0aW9uKCZzdGF0ZSwgZWMpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
KyAgICB9CisKKyAgICByZXR1cm4gcHJvbWlzZURlZmVycmVkLT5wcm9taXNlKCk7Cit9CisKK3N0
YXRpYyB2b2lkIGltcG9ydEtleShFeGVjU3RhdGUmIHN0YXRlLCBDcnlwdG9LZXlGb3JtYXQga2V5
Rm9ybWF0LCBDcnlwdG9PcGVyYXRpb25EYXRhIGRhdGEsIFJlZlB0cjxDcnlwdG9BbGdvcml0aG0+
IGFsZ29yaXRobSwgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IHBhcmFtZXRlcnMs
IGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIGtleVVzYWdlcywgQ3J5cHRvQWxnb3Jp
dGhtOjpLZXlDYWxsYmFjayBjYWxsYmFjaywgQ3J5cHRvQWxnb3JpdGhtOjpWb2lkQ2FsbGJhY2sg
ZmFpbHVyZUNhbGxiYWNrKQoreworICAgIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9LZXlTZXJpYWxp
emF0aW9uPiBrZXlTZXJpYWxpemF0aW9uOworICAgIHN3aXRjaCAoa2V5Rm9ybWF0KSB7CisgICAg
Y2FzZSBDcnlwdG9LZXlGb3JtYXQ6OlJhdzoKKyAgICAgICAga2V5U2VyaWFsaXphdGlvbiA9IENy
eXB0b0tleVNlcmlhbGl6YXRpb25SYXc6OmNyZWF0ZShkYXRhKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBDcnlwdG9LZXlGb3JtYXQ6OkpXSzogeworICAgICAgICBTdHJpbmcgandrU3RyaW5n
ID0gU3RyaW5nOjpmcm9tVVRGOChkYXRhLmZpcnN0LCBkYXRhLnNlY29uZCk7CisgICAgICAgIGlm
IChqd2tTdHJpbmcuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKCZzdGF0
ZSwgQVNDSUlMaXRlcmFsKCJKV0sgSlNPTiBzZXJpYWxpemF0aW9uIGlzIG5vdCB2YWxpZCBVVEYt
OCIpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBrZXlTZXJpYWxp
emF0aW9uID0gc3RkOjptYWtlX3VuaXF1ZTxKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0s+KCZz
dGF0ZSwgandrU3RyaW5nKTsKKyAgICAgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBBU0NJSUxpdGVyYWwoIlVuc3VwcG9ydGVkIGtl
eSBmb3JtYXQgZm9yIGltcG9ydCIpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFT
U0VSVChrZXlTZXJpYWxpemF0aW9uKTsKKworICAgIE9wdGlvbmFsPENyeXB0b0FsZ29yaXRobVBh
aXI+IHJlY29uY2lsZWRSZXN1bHQgPSBrZXlTZXJpYWxpemF0aW9uLT5yZWNvbmNpbGVBbGdvcml0
aG0oYWxnb3JpdGhtLmdldCgpLCBwYXJhbWV0ZXJzLmdldCgpKTsKKyAgICBpZiAoIXJlY29uY2ls
ZWRSZXN1bHQpIHsKKyAgICAgICAgaWYgKCFzdGF0ZS5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAg
ICAgIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgQVNDSUlMaXRlcmFsKCJBbGdvcml0aG0gc3BlY2lm
aWVkIGluIGtleSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIG9uZSBwYXNzZWQgdG8gaW1wb3J0S2V5
IGFzIGFyZ3VtZW50IikpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChzdGF0ZS5o
YWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYWxnb3JpdGhtID0gcmVjb25j
aWxlZFJlc3VsdC0+YWxnb3JpdGhtOworICAgIHBhcmFtZXRlcnMgPSByZWNvbmNpbGVkUmVzdWx0
LT5wYXJhbWV0ZXJzOworICAgIGlmICghYWxnb3JpdGhtKSB7CisgICAgICAgIHRocm93VHlwZUVy
cm9yKCZzdGF0ZSwgQVNDSUlMaXRlcmFsKCJOZWl0aGVyIGtleSBub3IgZnVuY3Rpb24gYXJndW1l
bnQgaGFzIGNyeXB0byBhbGdvcml0aG0gc3BlY2lmaWVkIikpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIEFTU0VSVChwYXJhbWV0ZXJzKTsKKworICAgIGtleVNlcmlhbGl6YXRpb24tPnJl
Y29uY2lsZUV4dHJhY3RhYmxlKGV4dHJhY3RhYmxlKTsKKyAgICBpZiAoc3RhdGUuaGFkRXhjZXB0
aW9uKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGtleVNlcmlhbGl6YXRpb24tPnJlY29uY2ls
ZVVzYWdlcyhrZXlVc2FnZXMpOworICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgYXV0byBrZXlEYXRhID0ga2V5U2VyaWFsaXphdGlvbi0+a2V5RGF0
YSgpOworICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgYWxnb3JpdGhtLT5pbXBvcnRLZXkoKnBhcmFt
ZXRlcnMsICprZXlEYXRhLCBleHRyYWN0YWJsZSwga2V5VXNhZ2VzLCBXVEZNb3ZlKGNhbGxiYWNr
KSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spLCBlYyk7CisgICAgaWYgKGVjKQorICAgICAgICBz
ZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7Cit9CisKK0pTVmFsdWUgSlNXZWJLaXRTdWJ0bGVD
cnlwdG86OmltcG9ydEtleShFeGVjU3RhdGUmIHN0YXRlKQoreworICAgIGlmIChzdGF0ZS5hcmd1
bWVudENvdW50KCkgPCAzKQorICAgICAgICByZXR1cm4gc3RhdGUudm0oKS50aHJvd0V4Y2VwdGlv
bigmc3RhdGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOworCisgICAg
Q3J5cHRvS2V5Rm9ybWF0IGtleUZvcm1hdDsKKyAgICBpZiAoIWNyeXB0b0tleUZvcm1hdEZyb21K
U1ZhbHVlKHN0YXRlLCBzdGF0ZS5hcmd1bWVudCgwKSwga2V5Rm9ybWF0KSkgeworICAgICAgICBB
U1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKKyAgICB9CisKKyAgICBDcnlwdG9PcGVyYXRpb25EYXRhIGRhdGE7CisgICAgaWYgKCFjcnlw
dG9PcGVyYXRpb25EYXRhRnJvbUpTVmFsdWUoJnN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVu
dCgxKSwgZGF0YSkpIHsKKyAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgUmVmUHRyPENyeXB0b0Fs
Z29yaXRobT4gYWxnb3JpdGhtOworICAgIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
PiBwYXJhbWV0ZXJzOworICAgIGlmICghc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikuaXNOdWxs
KCkpIHsKKyAgICAgICAgYWxnb3JpdGhtID0gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoc3Rh
dGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpKTsKKyAgICAgICAgaWYgKCFhbGdvcml0aG0p
IHsKKyAgICAgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICAgICAgfQorICAgICAgICBwYXJhbWV0ZXJzID0g
SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9ySW1wb3J0S2V5
KCZzdGF0ZSwgYWxnb3JpdGhtLT5pZGVudGlmaWVyKCksIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50
KDIpKTsKKyAgICAgICAgaWYgKCFwYXJhbWV0ZXJzKSB7CisgICAgICAgICAgICBBU1NFUlQoc3Rh
dGUuaGFkRXhjZXB0aW9uKCkpOworICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBib29sIGV4dHJhY3RhYmxlID0gZmFsc2U7CisgICAgaWYg
KHN0YXRlLmFyZ3VtZW50Q291bnQoKSA+PSA0KSB7CisgICAgICAgIGV4dHJhY3RhYmxlID0gc3Rh
dGUudW5jaGVja2VkQXJndW1lbnQoMykudG9Cb29sZWFuKCZzdGF0ZSk7CisgICAgICAgIGlmIChz
dGF0ZS5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwor
ICAgIH0KKworICAgIENyeXB0b0tleVVzYWdlIGtleVVzYWdlcyA9IDA7CisgICAgaWYgKHN0YXRl
LmFyZ3VtZW50Q291bnQoKSA+PSA1KSB7CisgICAgICAgIGlmICghY3J5cHRvS2V5VXNhZ2VzRnJv
bUpTVmFsdWUoc3RhdGUsIHN0YXRlLmFyZ3VtZW50KDQpLCBrZXlVc2FnZXMpKSB7CisgICAgICAg
ICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOworICAgICAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBKU1Byb21pc2VEZWZlcnJlZCog
cHJvbWlzZURlZmVycmVkID0gSlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSgmc3RhdGUsIGdsb2Jh
bE9iamVjdCgpKTsKKyAgICBEZWZlcnJlZFdyYXBwZXIgd3JhcHBlcigmc3RhdGUsIGdsb2JhbE9i
amVjdCgpLCBwcm9taXNlRGVmZXJyZWQpOworICAgIGF1dG8gc3VjY2Vzc0NhbGxiYWNrID0gW3dy
YXBwZXJdKENyeXB0b0tleSYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgd3JhcHBlci5yZXNv
bHZlKHJlc3VsdCk7CisgICAgfTsKKyAgICBhdXRvIGZhaWx1cmVDYWxsYmFjayA9IFt3cmFwcGVy
XSgpIG11dGFibGUgeworICAgICAgICB3cmFwcGVyLnJlamVjdChudWxscHRyKTsKKyAgICB9Owor
CisgICAgV2ViQ29yZTo6aW1wb3J0S2V5KHN0YXRlLCBrZXlGb3JtYXQsIGRhdGEsIFdURk1vdmUo
YWxnb3JpdGhtKSwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgZXh0cmFjdGFibGUsIGtleVVzYWdlcywg
V1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjaykpOworICAg
IGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CisKKyAgICByZXR1cm4gcHJvbWlzZURlZmVycmVkLT5wcm9taXNlKCk7Cit9CisKK3N0YXRpYyB2
b2lkIGV4cG9ydEtleShFeGVjU3RhdGUmIHN0YXRlLCBDcnlwdG9LZXlGb3JtYXQga2V5Rm9ybWF0
LCBjb25zdCBDcnlwdG9LZXkmIGtleSwgQ3J5cHRvQWxnb3JpdGhtOjpWZWN0b3JDYWxsYmFjayBj
YWxsYmFjaywgQ3J5cHRvQWxnb3JpdGhtOjpWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrKQor
eworICAgIGlmICgha2V5LmV4dHJhY3RhYmxlKCkpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3Io
JnN0YXRlLCBBU0NJSUxpdGVyYWwoIktleSBpcyBub3QgZXh0cmFjdGFibGUiKSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBzd2l0Y2ggKGtleUZvcm1hdCkgeworICAgIGNhc2UgQ3J5
cHRvS2V5Rm9ybWF0OjpSYXc6IHsKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHJlc3VsdDsKKyAg
ICAgICAgaWYgKENyeXB0b0tleVNlcmlhbGl6YXRpb25SYXc6OnNlcmlhbGl6ZShrZXksIHJlc3Vs
dCkpCisgICAgICAgICAgICBjYWxsYmFjayhyZXN1bHQpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBmYWlsdXJlQ2FsbGJhY2soKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2Ug
Q3J5cHRvS2V5Rm9ybWF0OjpKV0s6IHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IEpTQ3J5cHRv
S2V5U2VyaWFsaXphdGlvbkpXSzo6c2VyaWFsaXplKCZzdGF0ZSwga2V5KTsKKyAgICAgICAgaWYg
KHN0YXRlLmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBDU3Ry
aW5nIHV0ZjhTdHJpbmcgPSByZXN1bHQudXRmOChTdHJpY3RDb252ZXJzaW9uKTsKKyAgICAgICAg
VmVjdG9yPHVpbnQ4X3Q+IHJlc3VsdEJ1ZmZlcjsKKyAgICAgICAgcmVzdWx0QnVmZmVyLmFwcGVu
ZCh1dGY4U3RyaW5nLmRhdGEoKSwgdXRmOFN0cmluZy5sZW5ndGgoKSk7CisgICAgICAgIGNhbGxi
YWNrKHJlc3VsdEJ1ZmZlcik7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0Ogor
ICAgICAgICB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIEFTQ0lJTGl0ZXJhbCgiVW5zdXBwb3J0ZWQg
a2V5IGZvcm1hdCBmb3IgZXhwb3J0IikpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK0pT
VmFsdWUgSlNXZWJLaXRTdWJ0bGVDcnlwdG86OmV4cG9ydEtleShFeGVjU3RhdGUmIHN0YXRlKQor
eworICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPCAyKQorICAgICAgICByZXR1cm4gc3Rh
dGUudm0oKS50aHJvd0V4Y2VwdGlvbigmc3RhdGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKCZzdGF0ZSkpOworCisgICAgQ3J5cHRvS2V5Rm9ybWF0IGtleUZvcm1hdDsKKyAgICBpZiAo
IWNyeXB0b0tleUZvcm1hdEZyb21KU1ZhbHVlKHN0YXRlLCBzdGF0ZS5hcmd1bWVudCgwKSwga2V5
Rm9ybWF0KSkgeworICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOworICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBSZWZQdHI8Q3J5cHRvS2V5PiBr
ZXkgPSBKU0NyeXB0b0tleTo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsK
KyAgICBpZiAoIWtleSkKKyAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSk7CisK
KyAgICBKU1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZURlZmVycmVkID0gSlNQcm9taXNlRGVmZXJy
ZWQ6OmNyZWF0ZSgmc3RhdGUsIGdsb2JhbE9iamVjdCgpKTsKKyAgICBEZWZlcnJlZFdyYXBwZXIg
d3JhcHBlcigmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCBwcm9taXNlRGVmZXJyZWQpOworICAgIGF1
dG8gc3VjY2Vzc0NhbGxiYWNrID0gW3dyYXBwZXJdKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgcmVz
dWx0KSBtdXRhYmxlIHsKKyAgICAgICAgZnVsZmlsbFByb21pc2VXaXRoQXJyYXlCdWZmZXIod3Jh
cHBlciwgcmVzdWx0LmRhdGEoKSwgcmVzdWx0LnNpemUoKSk7CisgICAgfTsKKyAgICBhdXRvIGZh
aWx1cmVDYWxsYmFjayA9IFt3cmFwcGVyXSgpIG11dGFibGUgeworICAgICAgICB3cmFwcGVyLnJl
amVjdChudWxscHRyKTsKKyAgICB9OworCisgICAgV2ViQ29yZTo6ZXhwb3J0S2V5KHN0YXRlLCBr
ZXlGb3JtYXQsICprZXksIFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJl
Q2FsbGJhY2spKTsKKyAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOworCisgICAgcmV0dXJuIHByb21pc2VEZWZlcnJlZC0+cHJvbWlzZSgp
OworfQorCitKU1ZhbHVlIEpTV2ViS2l0U3VidGxlQ3J5cHRvOjp3cmFwS2V5KEV4ZWNTdGF0ZSYg
c3RhdGUpCit7CisgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDQpCisgICAgICAgIHJl
dHVybiBzdGF0ZS52bSgpLnRocm93RXhjZXB0aW9uKCZzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJn
dW1lbnRzRXJyb3IoJnN0YXRlKSk7CisKKyAgICBDcnlwdG9LZXlGb3JtYXQga2V5Rm9ybWF0Owor
ICAgIGlmICghY3J5cHRvS2V5Rm9ybWF0RnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLmFyZ3VtZW50
KDApLCBrZXlGb3JtYXQpKSB7CisgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7
CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIFJlZlB0cjxDcnlw
dG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1l
bnQoMSkpOworICAgIGlmICgha2V5KQorICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0
YXRlKTsKKworICAgIFJlZlB0cjxDcnlwdG9LZXk+IHdyYXBwaW5nS2V5ID0gSlNDcnlwdG9LZXk6
OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSk7CisgICAgaWYgKCFrZXkpCisg
ICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUpOworCisgICAgaWYgKCF3cmFwcGlu
Z0tleS0+YWxsb3dzKENyeXB0b0tleVVzYWdlV3JhcEtleSkpIHsKKyAgICAgICAgd3JhcHBlZCgp
LmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdl
TGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwoIktleSB1c2FnZXMgZG8gbm90IGluY2x1ZGUgJ3dy
YXBLZXknIikpOworICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBOT1RfU1VQUE9SVEVE
X0VSUik7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIGF1dG8g
YWxnb3JpdGhtID0gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDMpKTsKKyAgICBpZiAoIWFsZ29yaXRobSkgeworICAgICAgICBBU1NFUlQo
c3RhdGUuaGFkRXhjZXB0aW9uKCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAg
ICB9CisKKyAgICBhdXRvIHBhcmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6
OmNyZWF0ZVBhcmFtZXRlcnNGb3JFbmNyeXB0KCZzdGF0ZSwgYWxnb3JpdGhtLT5pZGVudGlmaWVy
KCksIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDMpKTsKKyAgICBpZiAoIXBhcmFtZXRlcnMpIHsK
KyAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VEZWZl
cnJlZCA9IEpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSk7
CisgICAgRGVmZXJyZWRXcmFwcGVyIHdyYXBwZXIoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgcHJv
bWlzZURlZmVycmVkKTsKKworICAgIGF1dG8gZXhwb3J0U3VjY2Vzc0NhbGxiYWNrID0gW2tleUZv
cm1hdCwgYWxnb3JpdGhtLCBwYXJhbWV0ZXJzLCB3cmFwcGluZ0tleSwgd3JhcHBlcl0oY29uc3Qg
VmVjdG9yPHVpbnQ4X3Q+JiBleHBvcnRlZEtleURhdGEpIG11dGFibGUgeworICAgICAgICBhdXRv
IGVuY3J5cHRTdWNjZXNzQ2FsbGJhY2sgPSBbd3JhcHBlcl0oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+
JiBlbmNyeXB0ZWREYXRhKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0
aEFycmF5QnVmZmVyKHdyYXBwZXIsIGVuY3J5cHRlZERhdGEuZGF0YSgpLCBlbmNyeXB0ZWREYXRh
LnNpemUoKSk7CisgICAgICAgIH07CisgICAgICAgIGF1dG8gZW5jcnlwdEZhaWx1cmVDYWxsYmFj
ayA9IFt3cmFwcGVyXSgpIG11dGFibGUgeworICAgICAgICAgICAgd3JhcHBlci5yZWplY3QobnVs
bHB0cik7CisgICAgICAgIH07CisgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgICAg
ICBhbGdvcml0aG0tPmVuY3J5cHRGb3JXcmFwS2V5KCpwYXJhbWV0ZXJzLCAqd3JhcHBpbmdLZXks
IHN0ZDo6bWFrZV9wYWlyKGV4cG9ydGVkS2V5RGF0YS5kYXRhKCksIGV4cG9ydGVkS2V5RGF0YS5z
aXplKCkpLCBXVEZNb3ZlKGVuY3J5cHRTdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGVuY3J5cHRG
YWlsdXJlQ2FsbGJhY2spLCBlYyk7CisgICAgICAgIGlmIChlYykgeworICAgICAgICAgICAgLy8g
RklYTUU6IFJlcG9ydCBmYWlsdXJlIGRldGFpbHMgdG8gY29uc29sZSwgYW5kIHBvc3NpYmx5IHRv
IGNhbGxpbmcgc2NyaXB0IG9uY2UgdGhlcmUgaXMgYSBzdGFuZGFyZGl6ZWQgd2F5IHRvIHBhc3Mg
ZXJyb3JzIHRvIFdlYkNyeXB0byBwcm9taXNlIHJlamVjdCBmdW5jdGlvbnMuCisgICAgICAgICAg
ICB3cmFwcGVyLnJlamVjdChudWxscHRyKTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICBhdXRv
IGV4cG9ydEZhaWx1cmVDYWxsYmFjayA9IFt3cmFwcGVyXSgpIG11dGFibGUgeworICAgICAgICB3
cmFwcGVyLnJlamVjdChudWxscHRyKTsKKyAgICB9OworCisgICAgRXhjZXB0aW9uQ29kZSBlYyA9
IDA7CisgICAgV2ViQ29yZTo6ZXhwb3J0S2V5KHN0YXRlLCBrZXlGb3JtYXQsICprZXksIFdURk1v
dmUoZXhwb3J0U3VjY2Vzc0NhbGxiYWNrKSwgV1RGTW92ZShleHBvcnRGYWlsdXJlQ2FsbGJhY2sp
KTsKKyAgICBpZiAoZWMpIHsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgZWMpOwor
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gcHJvbWlz
ZURlZmVycmVkLT5wcm9taXNlKCk7Cit9CisKK0pTVmFsdWUgSlNXZWJLaXRTdWJ0bGVDcnlwdG86
OnVud3JhcEtleShFeGVjU3RhdGUmIHN0YXRlKQoreworICAgIGlmIChzdGF0ZS5hcmd1bWVudENv
dW50KCkgPCA1KQorICAgICAgICByZXR1cm4gc3RhdGUudm0oKS50aHJvd0V4Y2VwdGlvbigmc3Rh
dGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOworCisgICAgQ3J5cHRv
S2V5Rm9ybWF0IGtleUZvcm1hdDsKKyAgICBpZiAoIWNyeXB0b0tleUZvcm1hdEZyb21KU1ZhbHVl
KHN0YXRlLCBzdGF0ZS5hcmd1bWVudCgwKSwga2V5Rm9ybWF0KSkgeworICAgICAgICBBU1NFUlQo
c3RhdGUuaGFkRXhjZXB0aW9uKCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAg
ICB9CisKKyAgICBDcnlwdG9PcGVyYXRpb25EYXRhIHdyYXBwZWRLZXlEYXRhOworICAgIGlmICgh
Y3J5cHRvT3BlcmF0aW9uRGF0YUZyb21KU1ZhbHVlKCZzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoMSksIHdyYXBwZWRLZXlEYXRhKSkgeworICAgICAgICBBU1NFUlQoc3RhdGUuaGFkRXhj
ZXB0aW9uKCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBS
ZWZQdHI8Q3J5cHRvS2V5PiB1bndyYXBwaW5nS2V5ID0gSlNDcnlwdG9LZXk6OnRvV3JhcHBlZChz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSk7CisgICAgaWYgKCF1bndyYXBwaW5nS2V5KQorICAg
ICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlKTsKKworICAgIGlmICghdW53cmFwcGlu
Z0tleS0+YWxsb3dzKENyeXB0b0tleVVzYWdlVW53cmFwS2V5KSkgeworICAgICAgICB3cmFwcGVk
KCkuZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3Nh
Z2VMZXZlbDo6RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiS2V5IHVzYWdlcyBkbyBub3QgaW5jbHVkZSAn
dW53cmFwS2V5JyIpKTsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgTk9UX1NVUFBP
UlRFRF9FUlIpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBh
dXRvIHVud3JhcEFsZ29yaXRobSA9IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0YXRlLCBz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgzKSk7CisgICAgaWYgKCF1bndyYXBBbGdvcml0aG0pIHsK
KyAgICAgICAgQVNTRVJUKHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CisgICAgfQorICAgIGF1dG8gdW53cmFwQWxnb3JpdGhtUGFyYW1ldGVycyA9
IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRlY3J5cHQo
JnN0YXRlLCB1bndyYXBBbGdvcml0aG0tPmlkZW50aWZpZXIoKSwgc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoMykpOworICAgIGlmICghdW53cmFwQWxnb3JpdGhtUGFyYW1ldGVycykgeworICAgICAg
ICBBU1NFUlQoc3RhdGUuaGFkRXhjZXB0aW9uKCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKKyAgICB9CisKKyAgICBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtPiB1bndyYXBwZWRLZXlB
bGdvcml0aG07CisgICAgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IHVud3JhcHBl
ZEtleUFsZ29yaXRobVBhcmFtZXRlcnM7CisgICAgaWYgKCFzdGF0ZS51bmNoZWNrZWRBcmd1bWVu
dCg0KS5pc051bGwoKSkgeworICAgICAgICB1bndyYXBwZWRLZXlBbGdvcml0aG0gPSBjcmVhdGVB
bGdvcml0aG1Gcm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoNCkpOwor
ICAgICAgICBpZiAoIXVud3JhcHBlZEtleUFsZ29yaXRobSkgeworICAgICAgICAgICAgQVNTRVJU
KHN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKyAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OworICAgICAgICB9CisgICAgICAgIHVud3JhcHBlZEtleUFsZ29yaXRobVBhcmFtZXRlcnMgPSBK
U0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JJbXBvcnRLZXko
JnN0YXRlLCB1bndyYXBwZWRLZXlBbGdvcml0aG0tPmlkZW50aWZpZXIoKSwgc3RhdGUudW5jaGVj
a2VkQXJndW1lbnQoNCkpOworICAgICAgICBpZiAoIXVud3JhcHBlZEtleUFsZ29yaXRobVBhcmFt
ZXRlcnMpIHsKKyAgICAgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAg
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGJv
b2wgZXh0cmFjdGFibGUgPSBmYWxzZTsKKyAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpID49
IDYpIHsKKyAgICAgICAgZXh0cmFjdGFibGUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCg1KS50
b0Jvb2xlYW4oJnN0YXRlKTsKKyAgICAgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQorICAg
ICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgQ3J5cHRvS2V5VXNh
Z2Uga2V5VXNhZ2VzID0gMDsKKyAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpID49IDcpIHsK
KyAgICAgICAgaWYgKCFjcnlwdG9LZXlVc2FnZXNGcm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUuYXJn
dW1lbnQoNiksIGtleVVzYWdlcykpIHsKKyAgICAgICAgICAgIEFTU0VSVChzdGF0ZS5oYWRFeGNl
cHRpb24oKSk7CisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIEpTUHJvbWlzZURlZmVycmVkKiBwcm9taXNlRGVmZXJyZWQgPSBKU1Byb21p
c2VEZWZlcnJlZDo6Y3JlYXRlKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCkpOworICAgIERlZmVycmVk
V3JhcHBlciB3cmFwcGVyKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHByb21pc2VEZWZlcnJlZCk7
CisgICAgU3Ryb25nPEpTRE9NR2xvYmFsT2JqZWN0PiBkb21HbG9iYWxPYmplY3Qoc3RhdGUudm0o
KSwgZ2xvYmFsT2JqZWN0KCkpOworCisgICAgYXV0byBkZWNyeXB0U3VjY2Vzc0NhbGxiYWNrID0g
W2RvbUdsb2JhbE9iamVjdCwga2V5Rm9ybWF0LCB1bndyYXBwZWRLZXlBbGdvcml0aG0sIHVud3Jh
cHBlZEtleUFsZ29yaXRobVBhcmFtZXRlcnMsIGV4dHJhY3RhYmxlLCBrZXlVc2FnZXMsIHdyYXBw
ZXJdKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgYXV0
byBpbXBvcnRTdWNjZXNzQ2FsbGJhY2sgPSBbd3JhcHBlcl0oQ3J5cHRvS2V5JiBrZXkpIG11dGFi
bGUgeworICAgICAgICAgICAgd3JhcHBlci5yZXNvbHZlKGtleSk7CisgICAgICAgIH07CisgICAg
ICAgIGF1dG8gaW1wb3J0RmFpbHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7Cisg
ICAgICAgICAgICB3cmFwcGVyLnJlamVjdChudWxscHRyKTsKKyAgICAgICAgfTsKKyAgICAgICAg
RXhlY1N0YXRlJiBzdGF0ZSA9ICpkb21HbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKKyAgICAg
ICAgV2ViQ29yZTo6aW1wb3J0S2V5KHN0YXRlLCBrZXlGb3JtYXQsIHN0ZDo6bWFrZV9wYWlyKHJl
c3VsdC5kYXRhKCksIHJlc3VsdC5zaXplKCkpLCB1bndyYXBwZWRLZXlBbGdvcml0aG0sIHVud3Jh
cHBlZEtleUFsZ29yaXRobVBhcmFtZXRlcnMsIGV4dHJhY3RhYmxlLCBrZXlVc2FnZXMsIFdURk1v
dmUoaW1wb3J0U3VjY2Vzc0NhbGxiYWNrKSwgV1RGTW92ZShpbXBvcnRGYWlsdXJlQ2FsbGJhY2sp
KTsKKyAgICAgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICAvLyBG
SVhNRTogUmVwb3J0IGV4Y2VwdGlvbiBkZXRhaWxzIHRvIGNvbnNvbGUsIGFuZCBwb3NzaWJseSB0
byBjYWxsaW5nIHNjcmlwdCBvbmNlIHRoZXJlIGlzIGEgc3RhbmRhcmRpemVkIHdheSB0byBwYXNz
IGVycm9ycyB0byBXZWJDcnlwdG8gcHJvbWlzZSByZWplY3QgZnVuY3Rpb25zLgorICAgICAgICAg
ICAgc3RhdGUuY2xlYXJFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIHdyYXBwZXIucmVqZWN0KG51
bGxwdHIpOworICAgICAgICB9CisgICAgfTsKKworICAgIGF1dG8gZGVjcnlwdEZhaWx1cmVDYWxs
YmFjayA9IFt3cmFwcGVyXSgpIG11dGFibGUgeworICAgICAgICB3cmFwcGVyLnJlamVjdChudWxs
cHRyKTsKKyAgICB9OworCisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgdW53cmFwQWxn
b3JpdGhtLT5kZWNyeXB0Rm9yVW53cmFwS2V5KCp1bndyYXBBbGdvcml0aG1QYXJhbWV0ZXJzLCAq
dW53cmFwcGluZ0tleSwgd3JhcHBlZEtleURhdGEsIFdURk1vdmUoZGVjcnlwdFN1Y2Nlc3NDYWxs
YmFjayksIFdURk1vdmUoZGVjcnlwdEZhaWx1cmVDYWxsYmFjayksIGVjKTsKKyAgICBpZiAoZWMp
IHsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgZWMpOworICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gcHJvbWlzZURlZmVycmVkLT5wcm9t
aXNlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
OGQ4MjBjM2FkYzU4NmVkMzc1YTU4OTFkOGMyNmQ4YTQzZDlhYTUzLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0
bGVDcnlwdG8uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTdWJ0bGVDcnlwdG8uaCIKLQotI2lmIEVO
QUJMRShTVUJUTEVfQ1JZUFRPKQotCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1TdWJ0bGVDcnlwdG86OlN1YnRsZUNyeXB0byhEb2N1bWVudCYgZG9jdW1l
bnQpCi0gICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmZG9jdW1lbnQpCi17Ci19Ci0K
LURvY3VtZW50KiBTdWJ0bGVDcnlwdG86OmRvY3VtZW50KCkgY29uc3QKLXsKLSAgICByZXR1cm4g
ZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci19Ci0KLX0KLQot
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGVkNmNjYjdmOTExMTE4NWViNzQwYjQzMDVhZGYyYWVmOGI2OTM4OWIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL1N1YnRsZUNyeXB0by5oCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpZm5kZWYgU3VidGxlQ3J5cHRvX2gKLSNkZWZpbmUgU3VidGxlQ3J5cHRv
X2gKLQotI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiIAotI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi0jaWYgRU5BQkxF
KFNVQlRMRV9DUllQVE8pCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRG9jdW1lbnQ7
Ci0KLWNsYXNzIFN1YnRsZUNyeXB0byA6IHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZl
ciwgcHVibGljIFJlZkNvdW50ZWQ8U3VidGxlQ3J5cHRvPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxTdWJ0bGVDcnlwdG8+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpIHsgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU3VidGxlQ3J5cHRvKGRvY3VtZW50KSk7IH0KLQotICAgIERvY3VtZW50KiBk
b2N1bWVudCgpIGNvbnN0OwotCi1wcml2YXRlOgotICAgIFN1YnRsZUNyeXB0byhEb2N1bWVudCYp
OwotfTsKLQotfQotCi0jZW5kaWYKLQotI2VuZGlmIC8vIFN1YnRsZUNyeXB0b19oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBjZjhmZjhiNjk3ODM1ODkyNWI1MTFkZmVmZjQ1NWNmNTVlN2I0ZTJkLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9T
dWJ0bGVDcnlwdG8uaWRsCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLVsKLSAgICBDb25kaXRpb25hbD1TVUJUTEVfQ1JZUFRPLAotICAgIEludGVyZmFjZU5hbWU9
V2ViS2l0U3VidGxlQ3J5cHRvLAotICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbERvY3VtZW50
LAotICAgIE5vSW50ZXJmYWNlT2JqZWN0LAotXSBpbnRlcmZhY2UgU3VidGxlQ3J5cHRvIHsKLSAg
ICBbQ3VzdG9tXSBQcm9taXNlIGVuY3J5cHQoQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0s
IEtleSBrZXksIHNlcXVlbmNlPENyeXB0b09wZXJhdGlvbkRhdGE+IGRhdGEpOwotICAgIFtDdXN0
b21dIFByb21pc2UgZGVjcnlwdChBbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgS2V5IGtl
eSwgc2VxdWVuY2U8Q3J5cHRvT3BlcmF0aW9uRGF0YT4gZGF0YSk7Ci0gICAgW0N1c3RvbV0gUHJv
bWlzZSBzaWduKEFsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBLZXkga2V5LCBzZXF1ZW5j
ZTxDcnlwdG9PcGVyYXRpb25EYXRhPiBkYXRhKTsKLSAgICBbQ3VzdG9tXSBQcm9taXNlIHZlcmlm
eShBbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgS2V5IGtleSwgQ3J5cHRvT3BlcmF0aW9u
RGF0YSBzaWduYXR1cmUsIHNlcXVlbmNlPENyeXB0b09wZXJhdGlvbkRhdGE+IGRhdGEpOwotICAg
IFtDdXN0b21dIFByb21pc2UgZGlnZXN0KEFsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBz
ZXF1ZW5jZTxDcnlwdG9PcGVyYXRpb25EYXRhPiBkYXRhKTsKLSAgICBbQ3VzdG9tXSBQcm9taXNl
IGdlbmVyYXRlS2V5KEFsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBvcHRpb25hbCBib29s
ZWFuIGV4dHJhY3RhYmxlLCBvcHRpb25hbCBzZXF1ZW5jZTxLZXlVc2FnZT4ga2V5VXNhZ2VzKTsK
LSAgICBbQ3VzdG9tXSBQcm9taXNlIGltcG9ydEtleShLZXlGb3JtYXQgZm9ybWF0LCBDcnlwdG9P
cGVyYXRpb25EYXRhIGtleURhdGEsIEFsZ29yaXRobUlkZW50aWZpZXI/IGFsZ29yaXRobSwgb3B0
aW9uYWwgYm9vbGVhbiBleHRyYWN0YWJsZSwgb3B0aW9uYWwgc2VxdWVuY2U8S2V5VXNhZ2U+IGtl
eVVzYWdlcyk7Ci0gICAgW0N1c3RvbV0gUHJvbWlzZSBleHBvcnRLZXkoS2V5Rm9ybWF0IGZvcm1h
dCwgS2V5IGtleSk7Ci0gICAgW0N1c3RvbV0gUHJvbWlzZSB3cmFwS2V5KEtleUZvcm1hdCBmb3Jt
YXQsIEtleSBrZXksIEtleSB3cmFwcGluZ0tleSwgQWxnb3JpdGhtSWRlbnRpZmllciB3cmFwQWxn
b3JpdGhtKTsKLSAgICBbQ3VzdG9tXSBQcm9taXNlIHVud3JhcEtleShLZXlGb3JtYXQgZm9ybWF0
LCBDcnlwdG9PcGVyYXRpb25EYXRhIHdyYXBwZWRLZXksIEtleSB1bndyYXBwaW5nS2V5LCBBbGdv
cml0aG1JZGVudGlmaWVyIHVud3JhcEFsZ29yaXRobSwgQWxnb3JpdGhtSWRlbnRpZmllcj8gdW53
cmFwcGVkS2V5QWxnb3JpdGhtLCBvcHRpb25hbCBib29sZWFuIGV4dHJhY3RhYmxlLCBvcHRpb25h
bCBzZXF1ZW5jZTxLZXlVc2FnZT4ga2V5VXNhZ2VzKTsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiNjhhZjljYzVjMzNlMTY4
NGY5ZWJlN2M4NTRhMDIzNTkyYjQ5MjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktpdFN1YnRsZUNyeXB0by5o
IgorCisjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dlYktpdFN1YnRsZUNyeXB0bzo6V2ViS2l0U3VidGxl
Q3J5cHRvKERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2Vy
dmVyKCZkb2N1bWVudCkKK3sKK30KKworRG9jdW1lbnQqIFdlYktpdFN1YnRsZUNyeXB0bzo6ZG9j
dW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9XZWJLaXRTdWJ0bGVDcnlwdG8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTliODUwYzlhNjg3ZDA0NDkwYWM0
ZGI0OWZhYjNjZDEyYmQ5Y2RhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL1dlYktpdFN1YnRsZUNyeXB0by5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiIAor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCisj
aWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
RG9jdW1lbnQ7CisKK2NsYXNzIFdlYktpdFN1YnRsZUNyeXB0byA6IHB1YmxpYyBDb250ZXh0RGVz
dHJ1Y3Rpb25PYnNlcnZlciwgcHVibGljIFJlZkNvdW50ZWQ8V2ViS2l0U3VidGxlQ3J5cHRvPiB7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJLaXRTdWJ0bGVDcnlwdG8+IGNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViS2l0U3VidGxlQ3J5cHRv
KGRvY3VtZW50KSk7IH0KKworICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OworCitwcml2
YXRlOgorICAgIFdlYktpdFN1YnRsZUNyeXB0byhEb2N1bWVudCYpOworfTsKKworfQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8u
aWRsIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTU1NzM4MzQ5MjgwM2FlZjRiYzI0Njc2ZWQ1N2RiMGVhZGFjNTA1NQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uaWRsCkBA
IC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1VCVExFX0NS
WVBUTywKKyAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxEb2N1bWVudCwKKyAgICBOb0ludGVy
ZmFjZU9iamVjdCwKK10gaW50ZXJmYWNlIFdlYktpdFN1YnRsZUNyeXB0byB7CisgICAgW0N1c3Rv
bV0gUHJvbWlzZSBlbmNyeXB0KEFsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBLZXkga2V5
LCBzZXF1ZW5jZTxDcnlwdG9PcGVyYXRpb25EYXRhPiBkYXRhKTsKKyAgICBbQ3VzdG9tXSBQcm9t
aXNlIGRlY3J5cHQoQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEtleSBrZXksIHNlcXVl
bmNlPENyeXB0b09wZXJhdGlvbkRhdGE+IGRhdGEpOworICAgIFtDdXN0b21dIFByb21pc2Ugc2ln
bihBbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgS2V5IGtleSwgc2VxdWVuY2U8Q3J5cHRv
T3BlcmF0aW9uRGF0YT4gZGF0YSk7CisgICAgW0N1c3RvbV0gUHJvbWlzZSB2ZXJpZnkoQWxnb3Jp
dGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEtleSBrZXksIENyeXB0b09wZXJhdGlvbkRhdGEgc2ln
bmF0dXJlLCBzZXF1ZW5jZTxDcnlwdG9PcGVyYXRpb25EYXRhPiBkYXRhKTsKKyAgICBbQ3VzdG9t
XSBQcm9taXNlIGRpZ2VzdChBbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgc2VxdWVuY2U8
Q3J5cHRvT3BlcmF0aW9uRGF0YT4gZGF0YSk7CisgICAgW0N1c3RvbV0gUHJvbWlzZSBnZW5lcmF0
ZUtleShBbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgb3B0aW9uYWwgYm9vbGVhbiBleHRy
YWN0YWJsZSwgb3B0aW9uYWwgc2VxdWVuY2U8S2V5VXNhZ2U+IGtleVVzYWdlcyk7CisgICAgW0N1
c3RvbV0gUHJvbWlzZSBpbXBvcnRLZXkoS2V5Rm9ybWF0IGZvcm1hdCwgQ3J5cHRvT3BlcmF0aW9u
RGF0YSBrZXlEYXRhLCBBbGdvcml0aG1JZGVudGlmaWVyPyBhbGdvcml0aG0sIG9wdGlvbmFsIGJv
b2xlYW4gZXh0cmFjdGFibGUsIG9wdGlvbmFsIHNlcXVlbmNlPEtleVVzYWdlPiBrZXlVc2FnZXMp
OworICAgIFtDdXN0b21dIFByb21pc2UgZXhwb3J0S2V5KEtleUZvcm1hdCBmb3JtYXQsIEtleSBr
ZXkpOworICAgIFtDdXN0b21dIFByb21pc2Ugd3JhcEtleShLZXlGb3JtYXQgZm9ybWF0LCBLZXkg
a2V5LCBLZXkgd3JhcHBpbmdLZXksIEFsZ29yaXRobUlkZW50aWZpZXIgd3JhcEFsZ29yaXRobSk7
CisgICAgW0N1c3RvbV0gUHJvbWlzZSB1bndyYXBLZXkoS2V5Rm9ybWF0IGZvcm1hdCwgQ3J5cHRv
T3BlcmF0aW9uRGF0YSB3cmFwcGVkS2V5LCBLZXkgdW53cmFwcGluZ0tleSwgQWxnb3JpdGhtSWRl
bnRpZmllciB1bndyYXBBbGdvcml0aG0sIEFsZ29yaXRobUlkZW50aWZpZXI/IHVud3JhcHBlZEtl
eUFsZ29yaXRobSwgb3B0aW9uYWwgYm9vbGVhbiBleHRyYWN0YWJsZSwgb3B0aW9uYWwgc2VxdWVu
Y2U8S2V5VXNhZ2U+IGtleVVzYWdlcyk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DcnlwdG8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uY3BwCmluZGV4IDVh
YWE3MDliZDFmZDQyNTUzMGQ0N2E1ODI0MDVlZjBhZTNhYTA0YTcuLjBhOTRmZDlhZThjOThhZGVi
YTk3M2YwNjMyZjJkZWMwZTU4ODdiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q3J5cHRvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5jcHAKQEAgLTMzLDcg
KzMzLDcgQEAKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29k
ZS5oIgotI2luY2x1ZGUgIlN1YnRsZUNyeXB0by5oIgorI2luY2x1ZGUgIldlYktpdFN1YnRsZUNy
eXB0by5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvQXJyYXlCdWZmZXJWaWV3Lmg+CiAjaW5jbHVkZSA8
d3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmg+CiAKQEAgLTY3LDEzICs2NywxMyBA
QCB2b2lkIENyeXB0bzo6Z2V0UmFuZG9tVmFsdWVzKEFycmF5QnVmZmVyVmlldyogYXJyYXksIEV4
Y2VwdGlvbkNvZGUmIGVjKQogfQogCiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi1TdWJ0bGVD
cnlwdG8qIENyeXB0bzo6c3VidGxlKCkKK1dlYktpdFN1YnRsZUNyeXB0byogQ3J5cHRvOjp3ZWJr
aXRTdWJ0bGUoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgaWYgKCFtX3N1
YnRsZSkKLSAgICAgICAgbV9zdWJ0bGUgPSBTdWJ0bGVDcnlwdG86OmNyZWF0ZSgqZG9jdW1lbnQo
KSk7CisgICAgaWYgKCFtX3dlYmtpdFN1YnRsZSkKKyAgICAgICAgbV93ZWJraXRTdWJ0bGUgPSBX
ZWJLaXRTdWJ0bGVDcnlwdG86OmNyZWF0ZSgqZG9jdW1lbnQoKSk7CiAKLSAgICByZXR1cm4gbV9z
dWJ0bGUuZ2V0KCk7CisgICAgcmV0dXJuIG1fd2Via2l0U3VidGxlLmdldCgpOwogfQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NyeXB0by5oCmluZGV4IGFmMGZjMDQ2ODcxZTkyZWZlNjFiZDYwM2NmMjVmNTdl
NzllYTk0ODIuLjk2ZDkyZDMyNzNiOWU0YWY2MzRkODVlMTFmNTFlYjg5NjlmZTVlM2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9DcnlwdG8uaApAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB0eXBl
ZGVmIGludCBFeGNlcHRpb25Db2RlOwogCiBjbGFzcyBEb2N1bWVudDsKLWNsYXNzIFN1YnRsZUNy
eXB0bzsKK2NsYXNzIFdlYktpdFN1YnRsZUNyeXB0bzsKIAogY2xhc3MgQ3J5cHRvIDogcHVibGlj
IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLCBwdWJsaWMgUmVmQ291bnRlZDxDcnlwdG8+IHsK
IHB1YmxpYzoKQEAgLTU3LDE0ICs1NywxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXRSYW5kb21W
YWx1ZXMoSlNDOjpBcnJheUJ1ZmZlclZpZXcqLCBFeGNlcHRpb25Db2RlJik7CiAKICNpZiBFTkFC
TEUoU1VCVExFX0NSWVBUTykKLSAgICBTdWJ0bGVDcnlwdG8qIHN1YnRsZSgpOworICAgIFdlYktp
dFN1YnRsZUNyeXB0byogd2Via2l0U3VidGxlKCk7CiAjZW5kaWYKIAogcHJpdmF0ZToKICAgICBD
cnlwdG8oRG9jdW1lbnQmKTsKIAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotICAgIFJlZlB0
cjxTdWJ0bGVDcnlwdG8+IG1fc3VidGxlOworICAgIFJlZlB0cjxXZWJLaXRTdWJ0bGVDcnlwdG8+
IG1fd2Via2l0U3VidGxlOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NyeXB0by5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5pZGwKaW5kZXgg
Y2ZlNjBmYzg3ZjQ3NDRkYzJjMmI5ZTA5MWM5YWE3MmYzYjA1NjJiMi4uNjNhMWUzMGZkNzgyMDc1
ZjgxMzI2YjJhNjAyOWZiZDEwYTJiYTZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DcnlwdG8uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmlkbApAQCAtMzIs
NSArMzIsNSBAQAogXSBpbnRlcmZhY2UgQ3J5cHRvIHsKICAgICBbQ3VzdG9tLCBSYWlzZXNFeGNl
cHRpb25dIEFycmF5QnVmZmVyVmlldyBnZXRSYW5kb21WYWx1ZXMoQXJyYXlCdWZmZXJWaWV3IGFy
cmF5KTsKIAotICAgIFtDb25kaXRpb25hbD1TVUJUTEVfQ1JZUFRPLCBJbXBsZW1lbnRlZEFzPXN1
YnRsZV0gcmVhZG9ubHkgYXR0cmlidXRlIFN1YnRsZUNyeXB0byB3ZWJraXRTdWJ0bGU7CisgICAg
W0NvbmRpdGlvbmFsPVNVQlRMRV9DUllQVE9dIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJLaXRTdWJ0
bGVDcnlwdG8gd2Via2l0U3VidGxlOwogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4MmI4MzIzYTkyZTgxNzUxODljYzhl
OGQ0MjFkN2JlNjVkYjQ4OWIwLi4zM2RiOTNlYTVlY2RkNTE1OTQzNjQ0MDA4Mjg5ZTZkNzFkZDJl
OWRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTYtMDctMjUgIEppZXdlbiBUYW4gIDxqaWV3
ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgU3VidGxlQ3J5cHRvIHRvIFdlYktp
dFN1YnRsZUNyeXB0bworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTYwMDY3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNzQ4MzYxNz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgIE1vdmUgdGVzdHMgaW52b2x2
aW5nIGNyeXB0by53ZWJraXRTdWJ0bGUgZnJvbSBjcnlwdG8vc3VidGxlIHRvIGNyeXB0by93ZWJr
aXRTdWJ0bGUuCisKKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2djLTItZXhwZWN0ZWQu
dHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy0yLWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2djLTIuaHRtbDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MtMi5odG1sLgorICAgICAgICAqIGNyeXB0
by93ZWJraXRTdWJ0bGUvZ2MtMy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL2djLTMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by93ZWJr
aXRTdWJ0bGUvZ2MtMy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRs
ZS9nYy0zLmh0bWwuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy1leHBlY3RlZC50
eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLWV4cGVjdGVkLnR4
dC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2djLmh0bWw6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLmh0bWwuCisgICAgICAgICogcGxhdGZvcm0vZWZs
L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlv
bnM6CisgICAgICAgICogcGxhdGZvcm0vaW9zLXNpbXVsYXRvci13azEvVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxNi0wNy0y
MCAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0aW1l
b3V0IG9mIGltcG9ydGVkL3czYy9XZWJDcnlwdG9BUEkvaWRsaGFybmVzcy5odG1sCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy0yLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYjkxZTE5NjI3MDQ4MDNhYjM0ZjBkMTlmNWY3ZjY3ZjQ0YjY5ZjJhYy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9j
cnlwdG8vc3VidGxlL2djLTItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAs
MCBAQAotVGVzdCB0aGF0IHdpbmRvdy5jcnlwdG8uc3VidGxlIHdyYXBwZXIgcHJlc2VydmVzIGN1
c3RvbSBwcm9wZXJ0aWVzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBb
b2JqZWN0IENyeXB0b10gaXMgZGVmaW5lZC4KLVBBU1MgW29iamVjdCBXZWJLaXRTdWJ0bGVDcnlw
dG9dIGlzIGRlZmluZWQuCi1QQVNTIGFub3RoZXJXaW5kb3dDcnlwdG8ud2Via2l0U3VidGxlLmZv
byBpcyAiYmFyIgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBM
RVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MtMi5odG1sIGIv
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy0yLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDkxMjk5MjA2ODJiODkwN2EzNTNiNTZmYzhjMjM4MWI1MGUwNDI1NzguLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9nYy0yLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPHNjcmlwdD4KLQotZGVzY3JpcHRpb24oIlRlc3QgdGhhdCB3aW5kb3cuY3J5
cHRvLnN1YnRsZSB3cmFwcGVyIHByZXNlcnZlcyBjdXN0b20gcHJvcGVydGllcy4iKTsKLWpzVGVz
dElzQXN5bmMgPSB0cnVlOwotCi12YXIgYW5vdGhlcldpbmRvd0NyeXB0bzsKLQotZnVuY3Rpb24g
c3RhcnRUZXN0KCkKLXsKLSAgICBhbm90aGVyV2luZG93Q3J5cHRvID0gZnJhbWVzWzBdLmNyeXB0
bzsKLSAgICBzaG91bGRCZURlZmluZWQoYW5vdGhlcldpbmRvd0NyeXB0byk7Ci0gICAgc2hvdWxk
QmVEZWZpbmVkKGFub3RoZXJXaW5kb3dDcnlwdG8ud2Via2l0U3VidGxlKTsKLQotICAgIGFub3Ro
ZXJXaW5kb3dDcnlwdG8ud2Via2l0U3VidGxlLmZvbyA9ICJiYXIiOwotICAgIGRvY3VtZW50LmJv
ZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpWzBd
KTsKLSAgICBnYygpOwotICAgIHNldFRpbWVvdXQoY29udGludWVUZXN0LCAxMCk7Ci19Ci0KLWZ1
bmN0aW9uIGNvbnRpbnVlVGVzdCgpCi17Ci0gICAgZ2MoKTsKLSAgICBzZXRUaW1lb3V0KGZpbmlz
aFRlc3QsIDEwKTsKLX0KLQotZnVuY3Rpb24gZmluaXNoVGVzdCgpCi17Ci0gICAgZ2MoKTsKLSAg
ICBzaG91bGRCZSgnYW5vdGhlcldpbmRvd0NyeXB0by53ZWJraXRTdWJ0bGUuZm9vJywgJyJiYXIi
Jyk7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19Ci0KLXdpbmRvdy5vbmxvYWQgPSBzdGFydFRlc3Q7
Ci0KLTwvc2NyaXB0PgotPGlmcmFtZSBzcmM9ImFib3V0OmJsYW5rIj48L2lmcmFtZT4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MtMy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLTMtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMDRjMWE1NzNiYTNlZDZmNzFlNDdmZmEz
MWU4ZWNhNjU3OWJiMmQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MtMy1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1UZXN0IHRoYXQgd2luZG93LmNyeXB0byB3cmFwcGVy
IHByb3RlY3RzIGFsbCBkZXBlbmRlbmNpZXMsIHNvIGl0IGNhbiBhbHdheXMgYmUgdXNlZCB0byBj
cmVhdGUgY3J5cHRvLnN1YnRsZS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBB
U1MgW29iamVjdCBDcnlwdG9dIGlzIGRlZmluZWQuCi1QQVNTIFtvYmplY3QgV2ViS2l0U3VidGxl
Q3J5cHRvXSBpcyBkZWZpbmVkLgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1U
RVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2Mt
My5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy0zLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGI2ZTA3NDBhOWI2ZjBhODlmNDZkZDEzZjQwYjBhMmM1ZWNkZjc1
NDYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy0zLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdD4KLQotZGVzY3JpcHRpb24oIlRlc3QgdGhhdCB3
aW5kb3cuY3J5cHRvIHdyYXBwZXIgcHJvdGVjdHMgYWxsIGRlcGVuZGVuY2llcywgc28gaXQgY2Fu
IGFsd2F5cyBiZSB1c2VkIHRvIGNyZWF0ZSBjcnlwdG8uc3VidGxlLiIpOwotanNUZXN0SXNBc3lu
YyA9IHRydWU7Ci0KLXZhciBhbm90aGVyV2luZG93Q3J5cHRvOwotCi1mdW5jdGlvbiBzdGFydFRl
c3QoKQotewotICAgIGFub3RoZXJXaW5kb3dDcnlwdG8gPSBmcmFtZXNbMF0uY3J5cHRvOwotICAg
IHNob3VsZEJlRGVmaW5lZChhbm90aGVyV2luZG93Q3J5cHRvKTsKLSAgICBkb2N1bWVudC5ib2R5
LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUiKVswXSk7
Ci0gICAgZ2MoKTsKLSAgICBzZXRUaW1lb3V0KGNvbnRpbnVlVGVzdCwgMTApOwotfQotCi1mdW5j
dGlvbiBjb250aW51ZVRlc3QoKQotewotICAgIGdjKCk7Ci0gICAgc2V0VGltZW91dChmaW5pc2hU
ZXN0LCAxMCk7Ci19Ci0KLWZ1bmN0aW9uIGZpbmlzaFRlc3QoKQotewotICAgIGdjKCk7Ci0gICAg
c2hvdWxkQmVEZWZpbmVkKGFub3RoZXJXaW5kb3dDcnlwdG8ud2Via2l0U3VidGxlKTsKLSAgICBm
aW5pc2hKU1Rlc3QoKTsKLX0KLQotd2luZG93Lm9ubG9hZCA9IHN0YXJ0VGVzdDsKLQotPC9zY3Jp
cHQ+Ci08aWZyYW1lIHNyYz0iYWJvdXQ6YmxhbmsiPjwvaWZyYW1lPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYzU5ZDBhMWU1MjBlZWUyYTY4ZmE4ZDhkOTc5NzFhZmYwN2FlODQ3
ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL2djLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEw
ICswLDAgQEAKLVRlc3QgdGhhdCB3aW5kb3cuY3J5cHRvLnN1YnRsZSB3cmFwcGVyIHByZXNlcnZl
cyBjdXN0b20gcHJvcGVydGllcy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBB
U1Mgd2luZG93LmNyeXB0by53ZWJraXRTdWJ0bGUuZm9vIGlzICJiYXIiCi1QQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9n
Yy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMjM1YjBiZGU5ZGNlNzBjNjA4
OGE2YTA5Yjg2OWYyNTAzZTRkNGViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDM4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0PgotCi1kZXNjcmlw
dGlvbigiVGVzdCB0aGF0IHdpbmRvdy5jcnlwdG8uc3VidGxlIHdyYXBwZXIgcHJlc2VydmVzIGN1
c3RvbSBwcm9wZXJ0aWVzLiIpOwotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWZ1bmN0aW9uIHN0
YXJ0VGVzdCgpCi17Ci0gICAgd2luZG93LmNyeXB0by53ZWJraXRTdWJ0bGUuZm9vID0gImJhciI7
Ci0gICAgZ2MoKTsKLSAgICBzZXRUaW1lb3V0KGNvbnRpbnVlVGVzdCwgMTApOwotfQotCi1mdW5j
dGlvbiBjb250aW51ZVRlc3QoKQotewotICAgIGdjKCk7Ci0gICAgc2V0VGltZW91dChmaW5pc2hU
ZXN0LCAxMCk7Ci19Ci0KLWZ1bmN0aW9uIGZpbmlzaFRlc3QoKQotewotICAgIGdjKCk7Ci0gICAg
c2hvdWxkQmUoJ3dpbmRvdy5jcnlwdG8ud2Via2l0U3VidGxlLmZvbycsICciYmFyIicpOwotICAg
IGZpbmlzaEpTVGVzdCgpOwotfQotCi13aW5kb3cub25sb2FkID0gc3RhcnRUZXN0OwotCi08L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93
ZWJraXRTdWJ0bGUvZ2MtMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL2djLTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0MGQ0ZDk1NmRlNTQ1MGY0ZTY0
MjNhM2EzNGU1ZTZmOTM3YTZjZjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL2djLTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3Qg
dGhhdCB3aW5kb3cuY3J5cHRvLndlYmtpdFN1YnRsZSB3cmFwcGVyIHByZXNlcnZlcyBjdXN0b20g
cHJvcGVydGllcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgW29iamVj
dCBDcnlwdG9dIGlzIGRlZmluZWQuCitQQVNTIFtvYmplY3QgV2ViS2l0U3VidGxlQ3J5cHRvXSBp
cyBkZWZpbmVkLgorUEFTUyBhbm90aGVyV2luZG93Q3J5cHRvLndlYmtpdFN1YnRsZS5mb28gaXMg
ImJhciIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2djLTIuaHRtbCBi
L0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvZ2MtMi5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNl
YjBkZGFiYmY5OWNkNTIwODlhMWNkZjZlZjhiZjZjN2EwZGRhYjgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2djLTIuaHRtbApAQCAtMCwwICsxLDQ2
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3QgdGhhdCB3
aW5kb3cuY3J5cHRvLndlYmtpdFN1YnRsZSB3cmFwcGVyIHByZXNlcnZlcyBjdXN0b20gcHJvcGVy
dGllcy4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIgYW5vdGhlcldpbmRvd0NyeXB0
bzsKKworZnVuY3Rpb24gc3RhcnRUZXN0KCkKK3sKKyAgICBhbm90aGVyV2luZG93Q3J5cHRvID0g
ZnJhbWVzWzBdLmNyeXB0bzsKKyAgICBzaG91bGRCZURlZmluZWQoYW5vdGhlcldpbmRvd0NyeXB0
byk7CisgICAgc2hvdWxkQmVEZWZpbmVkKGFub3RoZXJXaW5kb3dDcnlwdG8ud2Via2l0U3VidGxl
KTsKKworICAgIGFub3RoZXJXaW5kb3dDcnlwdG8ud2Via2l0U3VidGxlLmZvbyA9ICJiYXIiOwor
ICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoImlmcmFtZSIpWzBdKTsKKyAgICBnYygpOworICAgIHNldFRpbWVvdXQoY29udGludWVUZXN0
LCAxMCk7Cit9CisKK2Z1bmN0aW9uIGNvbnRpbnVlVGVzdCgpCit7CisgICAgZ2MoKTsKKyAgICBz
ZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDEwKTsKK30KKworZnVuY3Rpb24gZmluaXNoVGVzdCgpCit7
CisgICAgZ2MoKTsKKyAgICBzaG91bGRCZSgnYW5vdGhlcldpbmRvd0NyeXB0by53ZWJraXRTdWJ0
bGUuZm9vJywgJyJiYXIiJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3dpbmRvdy5vbmxv
YWQgPSBzdGFydFRlc3Q7CisKKzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9ImFib3V0OmJsYW5rIj48
L2lmcmFtZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0
by93ZWJraXRTdWJ0bGUvZ2MtMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL2djLTMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlMGM1YTJkMGI1YWI4ZGE1
Yjg3ZDM3NTFjOGM0YmUxZjViZTlhYjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9j
cnlwdG8vd2Via2l0U3VidGxlL2djLTMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rl
c3QgdGhhdCB3aW5kb3cuY3J5cHRvIHdyYXBwZXIgcHJvdGVjdHMgYWxsIGRlcGVuZGVuY2llcywg
c28gaXQgY2FuIGFsd2F5cyBiZSB1c2VkIHRvIGNyZWF0ZSBjcnlwdG8ud2Via2l0U3VidGxlLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBbb2JqZWN0IENyeXB0b10gaXMg
ZGVmaW5lZC4KK1BBU1MgW29iamVjdCBXZWJLaXRTdWJ0bGVDcnlwdG9dIGlzIGRlZmluZWQuCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy0zLmh0bWwgYi9MYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2djLTMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTA1MWNkOGUw
NjJhZGI4YTFmNmIwZjY1MmU4ZDM4MWQ5ZWU1YmY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy0zLmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgd2luZG93LmNy
eXB0byB3cmFwcGVyIHByb3RlY3RzIGFsbCBkZXBlbmRlbmNpZXMsIHNvIGl0IGNhbiBhbHdheXMg
YmUgdXNlZCB0byBjcmVhdGUgY3J5cHRvLndlYmtpdFN1YnRsZS4iKTsKK2pzVGVzdElzQXN5bmMg
PSB0cnVlOworCit2YXIgYW5vdGhlcldpbmRvd0NyeXB0bzsKKworZnVuY3Rpb24gc3RhcnRUZXN0
KCkKK3sKKyAgICBhbm90aGVyV2luZG93Q3J5cHRvID0gZnJhbWVzWzBdLmNyeXB0bzsKKyAgICBz
aG91bGRCZURlZmluZWQoYW5vdGhlcldpbmRvd0NyeXB0byk7CisgICAgZG9jdW1lbnQuYm9keS5y
ZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIilbMF0pOwor
ICAgIGdjKCk7CisgICAgc2V0VGltZW91dChjb250aW51ZVRlc3QsIDEwKTsKK30KKworZnVuY3Rp
b24gY29udGludWVUZXN0KCkKK3sKKyAgICBnYygpOworICAgIHNldFRpbWVvdXQoZmluaXNoVGVz
dCwgMTApOworfQorCitmdW5jdGlvbiBmaW5pc2hUZXN0KCkKK3sKKyAgICBnYygpOworICAgIHNo
b3VsZEJlRGVmaW5lZChhbm90aGVyV2luZG93Q3J5cHRvLndlYmtpdFN1YnRsZSk7CisgICAgZmlu
aXNoSlNUZXN0KCk7Cit9CisKK3dpbmRvdy5vbmxvYWQgPSBzdGFydFRlc3Q7CisKKzwvc2NyaXB0
PgorPGlmcmFtZSBzcmM9ImFib3V0OmJsYW5rIj48L2lmcmFtZT4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvZ2MtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uN2Q5YjNjNmQxOTFiMWE1ZmU1NmQ1YjVmMGJkNzcxM2RlNzg4MWVmMgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvZ2MtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgdGhhdCB3aW5kb3cuY3J5cHRvLndlYmtpdFN1YnRs
ZSB3cmFwcGVyIHByZXNlcnZlcyBjdXN0b20gcHJvcGVydGllcy4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1Mgd2luZG93LmNyeXB0by53ZWJraXRTdWJ0bGUuZm9vIGlzICJi
YXIiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy5odG1sIGIvTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4MDNlYjVk
MzQ5ZGM2YmU2NmFkMzU3NjBkNTQyOGY2ZDk3MjI4ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2djLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgd2luZG93LmNy
eXB0by53ZWJraXRTdWJ0bGUgd3JhcHBlciBwcmVzZXJ2ZXMgY3VzdG9tIHByb3BlcnRpZXMuIik7
Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gc3RhcnRUZXN0KCkKK3sKKyAgICB3
aW5kb3cuY3J5cHRvLndlYmtpdFN1YnRsZS5mb28gPSAiYmFyIjsKKyAgICBnYygpOworICAgIHNl
dFRpbWVvdXQoY29udGludWVUZXN0LCAxMCk7Cit9CisKK2Z1bmN0aW9uIGNvbnRpbnVlVGVzdCgp
Cit7CisgICAgZ2MoKTsKKyAgICBzZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDEwKTsKK30KKworZnVu
Y3Rpb24gZmluaXNoVGVzdCgpCit7CisgICAgZ2MoKTsKKyAgICBzaG91bGRCZSgnd2luZG93LmNy
eXB0by53ZWJraXRTdWJ0bGUuZm9vJywgJyJiYXIiJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9
CisKK3dpbmRvdy5vbmxvYWQgPSBzdGFydFRlc3Q7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2M2Ex
NDA3MGY5NjVhMDA3OWE1MjhmNWY0NTc2ODgzOWNhZTkzYWQxLi40N2ZiMzg4MzFlNDc1NWMyMjhm
NmJiMTJhZjY1MWIwZGY3ZjFkNThiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9l
ZmwvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMTgxNSw2ICsxODE1LDcgQEAgd2Via2l0Lm9yZy9iLzExOTc4MiBmYXN0
L2Zvcm1zL3NlYXJjaC1zdHlsZWQuaHRtbCBbIEZhaWx1cmUgXQogIyBjcnlwdG8uc3VidGxlIGlz
IG5vdCB5ZXQgZW5hYmxlZCwgYnV0IGRpZ2VzdCBhbGdvcml0aG1zIGFyZSBhbHJlYWR5IGltcGxl
bWVudGVkCiAjIGFuZCB0aGVpciB0ZXN0cyBhcmUgd2hpdGVsaXN0ZWQKIHdlYmtpdC5vcmcvYi8x
MzMxMjIgY3J5cHRvL3N1YnRsZSBbIFNraXAgXQord2Via2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8v
d2Via2l0U3VidGxlIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTMzMzE5IGNyeXB0by9zdWJ0bGUv
c2hhLTEuaHRtbCBbIFBhc3MgXQogd2Via2l0Lm9yZy9iLzEzMzMxOSBjcnlwdG8vc3VidGxlL3No
YS0yMjQuaHRtbCBbIFBhc3MgXQogd2Via2l0Lm9yZy9iLzEzMzMxOSBjcnlwdG8vc3VidGxlL3No
YS0yNTYuaHRtbCBbIFBhc3MgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCBmOTkwODdkNDZmNjFiMGQzMTczMTY3NmU0MTQyZTgzMGNjYmYwYzQwLi5lMjUx
M2I3NDAzYTMxM2M5MGUyNzA3YTVkNDM0MGFhOTNiMzYzMDQzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDA2LDYgKzQwNiw3IEBAIEJ1ZyhHVEspIGVk
aXRpbmcvc2VjdXJlLWlucHV0IFsgRmFpbHVyZSBdCiAjIGNyeXB0by5zdWJ0bGUgaXMgbm90IHll
dCBlbmFibGVkLCBidXQgZGlnZXN0IGFsZ29yaXRobXMgYXJlIGFscmVhZHkgaW1wbGVtZW50ZWQK
ICMgYW5kIHRoZWlyIHRlc3RzIGFyZSB3aGl0ZWxpc3RlZAogd2Via2l0Lm9yZy9iLzEzMzEyMiBj
cnlwdG8vc3VidGxlIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93ZWJraXRT
dWJ0bGUgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xMzMzMTkgY3J5cHRvL3N1YnRsZS9zaGEtMS5o
dG1sIFsgUGFzcyBdCiB3ZWJraXQub3JnL2IvMTMzMzE5IGNyeXB0by9zdWJ0bGUvc2hhLTIyNC5o
dG1sIFsgUGFzcyBdCiB3ZWJraXQub3JnL2IvMTMzMzE5IGNyeXB0by9zdWJ0bGUvc2hhLTI1Ni5o
dG1sIFsgUGFzcyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxh
dG9yLXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVs
YXRvci13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhNDZmYWZiNDM1NzU0YTY4ODdiZWI5MTdh
NDY3YjgyMDkwMTMxMDI1Li43N2QxMTRhZmNhYTc4NjFlYjQwNDcxMzc1ODUyYTBiN2Q1YzJlOGQ5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMS9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Itd2sx
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEwMDUsNyArMTAwNSw5IEBAIGFuaW1hdGlvbnMvc3VzcGVu
ZC1yZXN1bWUtYW5pbWF0aW9uLWV2ZW50cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIHN0b3JhZ2Uv
aW5kZXhlZGRiCiBpbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcKIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCCitjcnlwdG8vc3VidGxlL3JzYS1p
bmRleGVkZGItbm9uLWV4cG9ydGFibGUtcHJpdmF0ZS5odG1sCiBjcnlwdG8vc3VidGxlL3JzYS1p
bmRleGVkZGItbm9uLWV4cG9ydGFibGUuaHRtbAorY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRi
LXByaXZhdGUuaHRtbAogY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLmh0bWwKIGZhc3QvaGlz
dG9yeS9wYWdlLWNhY2hlLWluZGV4ZWQtY2xvc2VkLWRiLmh0bWwKIGZhc3QvaGlzdG9yeS9wYWdl
LWNhY2hlLWluZGV4ZWQtb3BlbmVkLWRiLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggYTk5NTQ0MzQzYzg5OTcyYzNjYTU1MzExZmU4ZDhjMzIxYzEw
ZGJlYS4uMTQwNjc0ZTM2ZGJlMzliMDRmNDY1MmIwMzljNjhiZTFiYjExN2YxYyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI1OSw2ICsyNTksOSBAQCBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVkZGIuaHRtbCBbIFNraXAgXQog
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi1hbGxvd2Vk
Lmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1p
bmRleGVkZGIuaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9zZWN1cml0eS9uby1pbmRleGVkZGIt
ZnJvbS1zYW5kYm94Lmh0bWwgWyBTa2lwIF0KK2NyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1u
b24tZXhwb3J0YWJsZS1wcml2YXRlLmh0bWwgWyBTa2lwIF0KK2NyeXB0by9zdWJ0bGUvcnNhLWlu
ZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS5odG1sIFsgU2tpcCBdCitjcnlwdG8vc3VidGxlL3JzYS1p
bmRleGVkZGItcHJpdmF0ZS5odG1sIFsgU2tpcCBdCiBjcnlwdG8vc3VidGxlL3JzYS1pbmRleGVk
ZGIuaHRtbCBbIFNraXAgXQogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtaW5kZXhlZC1jbG9zZWQt
ZGIuaHRtbCBbIFNraXAgXQogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtaW5kZXhlZC1vcGVuZWQt
ZGIuaHRtbCBbIFNraXAgXQpAQCAtNTkzLDYgKzU5Niw3IEBAIHdlYmtpdC5vcmcvYi85ODY5NiBw
bHVnaW5zL3NuYXBzaG90dGluZyBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzExNjU1OSBzdG9yYWdl
L3dlYnNxbC8gWyBTa2lwIF0KIAogIyBUT0RPIGNyeXB0by5zdWJ0bGUgaXMgbm90IHlldCBlbmFi
bGVkCitjcnlwdG8vd2Via2l0U3VidGxlLyBbIFNraXAgXQogY3J5cHRvL3N1YnRsZS8gWyBTa2lw
IF0KIAogIyBUT0RPIE1pc3NpbmcgV2ViU3BlZWNoIGltcGxlbWVudGF0aW9uCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>